yun905.tistory.com/5?category=878116
Lecture 3에서도 다루었듯이 image의 raw pixels를 바로 linear classifier에 넣는 것은 좋은 생각은 아니었다.
이런 feature extraction 방법을 통해 얻은 feature를 neural network에 넣어주면 더 좋은 성능을 기대할 수 있다. 이번 과제는 이것에 대해 다룰 것이다.
HOG와 color histogram을 이용해 각각 feature를 뽑은 후 concatenate해서 사용할 것이다. HOG는 이미지의 전반적인 texture에 관한 정보를 뽑아낸다면 color histogram은 색 정보를 뽑아내니, 둘을 같이 사용하면 하나만 사용했을 때 보다 좋은 성능을 기대할 수 있다. 다행히 두 방식을 직접 구현하라고 하지는 않는다.
SVM의 hyperparameter를 grid search 하고 있다. Hyperparameter를 잘 고르면 0.44의 accuracy도 가능하다고 하는데, 0.419가 나왔다. 어차피 기존 svm보다 잘 나온다는걸 보이는게 포인트니까 더이상 건들지는 않았다. 기존에는 0.382가 나왔었다.
괜찮은 결과가 나왔다. Raw pixels를 넣었을 때 0.365가 나왔던걸 생각하면 상당히 좋아진 결과이다.
SVM이 잘못 분류한 이미지이다. 실수할 만 했다고 생각되는 이미지도 있지만, 전혀 다른 이미지를 오분류한 경우도 보인다.
이번엔 2 layer net에 적용할 것이다. 우선 bias trick을 풀고, hyperparameter를 최적화 한다. Learning rate와 regularization strength만 조절했다. 다른 hyperparameter도 건드려 보면 더 좋은 결과를 얻을 수 있을 것이다.
적당한 hyperparameter를 찾은 후 좋은 모델을 best_net에 저장하고 추가로 학습을 더 시킨다. Validation accuracy는 0.592, test 시에는 0.58이 나왔다. Raw pixels를 넣었을 때 validation에서 0.56, test시에 0.531이 나왔다. Hidden size라던가 decay를 더 만져줬다면 더 좋은 성능을 보였을 것이다.
이런 비교적 단순한 HOV나 color histogram이 5~6%정도의 성능 향상을 가져다 주는 걸 보면, cnn을 이용한 feature extraction을 적용했을 때 꽤나 좋은 결과를 기대할 수 있을 것 같다.
'수업 정리(개인용) > cs231n' 카테고리의 다른 글
CS231n 2017 Lecture 7 : Training Neural Networks II (0) | 2020.10.04 |
---|---|
CS231n 2017 Lecture 6 : Training Neural Networks I (0) | 2020.10.03 |
CS231N Spring 2020 Assignment1 : Two Layer Net (0) | 2020.09.27 |
CS231N Spring 2020 Assignment1 : Softmax (0) | 2020.09.26 |
CS231n 2017 Lecture 5 : Convolutional Neural Networks (0) | 2020.09.25 |