Dataset의 종류

Training set: 학습을 위한 데이터셋

Validation set: validation을 위한 데이터셋 (for tuning hyperparameters 등)

Testing set: 정상적으로 학습되었는지 확인하기 위해 사용하는 데이터셋


Q. 왜 데이터셋을 나눈거지?

A. 교차검증을 위해서 나눔 (local minimum에 빠지는 등의 위험요소를 피하며 제대로 학습 했는지)

Q. Validation set을 Training set으로 써도 될까? (적당히 많은 학습이 성능 향상을 불러오므로)

A. 하지 않는게 원칙이며 가능하면 하지 않는게 좋다.


Training


Image features

 - 이미지의 feature를 뽑아낸다.


SURF/SIFT vector라던지, deep-learning feature라던지


Labels

 - human inputs, 이미지가 무엇인지 레이블링 하는 것.


  바이크를 찾고 싶으면 바이크의 이미지와 그 이름을, 바이크의 엔진, 체인 등을 찾고 싶으면 그것보다 더 많은 레이블링을 해야 함


Weakly supervised - 자동차의 위치를 파악하는 것 (있어요/없어요)

Fully supervised - 위치와 경계를 포함하여 동시에 여러개의 물체를 인식


Training

 - Training 결과가 weighted되지 않도록 균일하게 training


Trained Classifier: trained model (단위벡터, hyperparameter 등)


The machine learning framework


형태로 이루어져 있음


x = 이미지의 feature

y = label



trained model의 경우



의 값이 최소가 되는 f(x_i) 값을 찾으면 됨.


f(x_i) = estimation 

y = ground truth


Classification

  종류의 개수를 나눌 수 있는 만큼의 decision boundary들을 구성한다.


Classifiers



  단순히 classification 작업은 training을 요구하지 않음. input에 대해 가장 가까운 training example을 찾아내기 위함.


Q. 문제점은?

A. 가장 가까운 example을 찾아내기 때문에 잘못 학습된 데이터가 존재할 경우 잘못된 데이터가 만들어질 수 있음.

    해결 방법으로는 K-nearest neighborhood를 사용해서 여러개를 가지고 판단하면 됨.


Linear classifiers: SVM (Support vector machine)


f(x) = sgn(w*x+b) // 형태: y = ax+b (linear; 1차함수 형태)


Q. non-linear하게 분포되어 있지 않은 데이터들은 어떻게 하는가?

A. 한 차원 더 높여서 decision boundary를 생성한다.



  실제적으로 vector의 차원이 높아지는 것은 아니지만, 차원을 늘리는 kernel과 해당 kernel의 hyperparameter를 통해 데이터를 non-linear하게 mapping한다.


*Polynomial과 RBF가 대표적이다.


Q. 클래스가 2개가 아닌 3개 그 이상인 경우는 어떻게 해결하는가?

A. One vs the others(One vs one)로 해결하면 된다.


Multi-class SVM은 확실히 정해진 방법이 없으나, One vs the others로 해결할 수 있음.


  예를 들어 A, B, C라는 3개의 class가 있을 때 A를 제외한 B, C를 the others로 보고 2-class SVM으로 취급하여 classification하고, B와 C의 경우에도 A를 classification했던 것 처럼 진행하면 된다.


Q. One vs the others (one)의 문제점은 무엇인가?

A. 그림 내에 negative set(the others로 삼아지는 데이터들)이 많지 않은 경우 성능이 좋지 않음.


SVM의 좋은점과 나쁜점

최적화만 잘 하면 Support vector만 뽑아낼 수 있게 되어 작은 training sample size를 가지게 됨.

직접적인 multi-class SVM이 존재하지 않아서 two-class SVM의 조합으로 사용해야 함.

이때 발생하는 문제점으로 computing power와 memory가 더 많이 필요해짐. (Learning capacity가 좋은 편은 아니다)


Bias-Variance Trade-off

Bias(편향, underfitting): estimated된 평균 model과 true model의 차이

Variance(분산, overfitting): 서로 다른 training set들과 estimated된 model의 차이


  너무 적은 수의 parameter가 학습되는 모델일수록 bias가 심해져서 부정확하며, 너무 많은 수의 parameter가 학습되는 모델일수록 variance가 심해져 부정확해진다. (적당한 선의 학습이 필요함)


Testing


Image features: training할 때 feature extraction method에 의해 생성된 feature들을 의미