Concept of bias and variance
ML model의 hypotheses를 평가하는 기준은 무엇인가?
단순히 모델의 정확도만을 가지고 판단하기엔 불안하다. 99개의 참인 데이터와 단 1개의 거짓인 데이터에 대하여 항상 참밖에 모르는 바보같은 모델을 평가한다고 상상해보라!
모델의 성능을 평가하는 또하나의 기준으로 우리는 모델을 평가하는 기준의 하나로 실제값과 예측치 간의 에러를 평가 기준으로 삼을 수 있다. 이때 에러는 두 가지의 관점에서 발현된다.
1. Approximation 2. Generalization
Approximation 근사에 의한 에러
ML는 현실의 데이터를 예측하기 위해 SVM이나 logistic 등 특정한 learning algorithm을 사용한다. 그러나 algorithm을 사용한다는 것은 결코 현실을 있는 그대로 반영할 수 없다. 이는 알고리즘 자체의 한계점이다.
bias는 여기에서 발생하는 에러를 의미한다.
Generalization 일반화에 의한 에러
세상의 모든 데이터를 데이터셋 D로 만드는 것은 거의 불가능한데다가 만약 만들 수 있다고 하더라도 D를 이용하여 학습하는 것은 거의 불가능하다. 어쩔 수 없이 ML 모델은 한번 학습할 때 batch size로 자른 일부의 데이터를 사용한다. 데이터를 각 batch size로 나누면 각각의 batch에 대하여 hypothesis가 만들어지게 된다. 그렇게 만들어진 수많은 hypotheses의 평균이 우리가 최종적으로 사용할 hypothesis가 될텐데, 이는 모든 데이터셋 D를 이용한 hypothesis(D)와 다를 수밖에 없다. 여기에서 오는 에러가 바로 generalization 에러이다.
variance는 여기에서 발생하는 에러를 의미한다.
Bias와 Variance 사이에는 Dilemma가 존재한다.
(1) bias를 줄이기 위해 complex한 모델을 사용한다면 variance가 높아진다.
(2) variance를 줄이기 위해 simple한 모델을 사용한다면 bias가 높아진다!
Occam's Razor
따라서 같은 성능을 보인다면 가장 simple한 모델 성능이 가장 좋다고 볼 수 있다!
'오늘의 코딩 > 머신러닝,Deep Learning' 카테고리의 다른 글
[NLP] 단어임베딩 정리 (0) | 2020.04.17 |
---|---|
자연어 처리 시작! word embedding (0) | 2020.03.31 |
재밌는 분야[적대적 훈련(Adversarial training)] (0) | 2020.03.26 |
pytorch transfer learning 모델 설정 중 에러.. (0) | 2020.02.04 |
[pytorch] 데이터 불러오기 (0) | 2020.02.04 |