Bias
[1]는 Machine Learning에서 필수적인 개념 중 하나 입니다. Bias
는 어느 한쪽으로 치우쳐 있다는 상태를 나타내는 편향이라는 단어를 뜻합니다. 용어가 일상에서 사용될 때는 주로 생각이 치우쳐 있는 것을 나타내는데, Machine Learning에서는 어떤 게 치우쳐 있다는 것을 나타내는 것일까요? 이 포스팅에서는 머신러닝에서 치우쳐있는 편향에 대해서 알아보겠습니다.
Machine Learning의 목적
머신러닝은 데이터로부터 패턴을 익히고 관찰하지 못한 새로운 데이터에 대해서 예측하기 위한 모델을 훈련합니다. MNIST, Titanic과 같은 데이터셋은 각각 CNN, XGBoost와 같은 모델로 훈련하고 새로운 문자그림과 승객의 정보가 주어졌을 때, 훈련된 모델로 예측합니다.
조금더 정확하게 이야기 하자면, 데이터셋에 맞게 모델의 파라미터 $\theta$ 를 훈련하는 것 입니다. 이 값을 변형해서 주어진 모집단의 데이터를 가장 잘 설명하는 데이터를 찾습니다. Neural Network나 XGBoost 뿐만 아니라 모델은 다양하고, 모델에는 아주 많은 파라미터가 있을 수 있습니다. Naver Hyper-Clova는 204B(2040억)개의 모델 파라미터를 가지고 있습니다 [2]. 이렇게 많은 파라미터를 모두 이름을 붙일 수 없기에 Machine Learning에서는 그냥 통틀어서 파라미터를 $\theta$ 라고 합니다.
Definition of Bias
모델 파라미터까$\theta$지 이해했다면, 이제 Bias
가 지니는 의미를 살펴보겠습니다.
어떤 데이터 모집단에 대해서, 이 데이터를 만든 실제 모델의 파라미터 $\theta$ 를 알고 있다고 가정하겠습니다. 이 모델로부터 만든 데이터셋이 여러 개 있다고 할 때, $D={D_1, D_2, \cdots , D_N}$. 각 데이터 셋으로부터 모델의 파라미터를 추정 $\hat\theta_i$하고 평균 $\sum(\hat\theta_i)$ 을 냅니다. 그러면 이 값이 실제 모델의 파라미터와 같을수도 있고, 다를 수도 있습니다. 여기서 발생하는 차이가 Machine Learning에서 정의하는 Bias입니다.
$$
E(\hat\theta) = \theta + bias(\theta)
$$
예제를 통한 설명
$y = x^2$ 함수로부터 데이터를 생성합니다.
$D_1= {(1,1), (2,4), (3,9) , \cdots }$원래 함수는 모른다고 가정하고,
모델을 $c x^2$이라고 추측합니다.
데이터로부터 파라미터를 추정합니다. → $\theta_1$
또 다른 데이터셋을 생성하고 파라미터를 추정합니다.$D_2, \theta_2$
계속 반복합니다.
파라미터를 평균내고 차이를 구합니다.
Future works
- Bias-Variance Trade-off
- Biased Estimator and Unbiased Estimator
References
[1] Definition of Bias in wiki https://en.wikipedia.org/wiki/Bias_(statistics)
[2] 네이버 클로바 기사 https://smilegate.ai/2021/05/26/hyper-clova-ai/
사실 굳이 데이터셋이 필요하진 않습니다. 데이터 없이 아무렇게나 파라미터를 추정해도 추정은 추정이니까요. 대신 이 경우는 bias가 굉장히 큽니다.
'딥러닝 > 머신러닝(ML)' 카테고리의 다른 글
Overfitting을 해결하는 방법 3가지 (0) | 2021.07.21 |
---|---|
Machine Learning에서 Overfitting과 Underfitting은 뭘까..? (0) | 2021.07.20 |
[Essay] Deep learning으로 조합 문제를 풀 수 있을까? - Neural Combinatorial Optimization (0) | 2021.07.15 |
[Bias 3/3] Bias-Variance Trade-off 란 무엇인가? (0) | 2021.06.24 |
[Bias 2/3] Biased Estimator, Unbiased Estimator란 무엇인가? (0) | 2021.06.22 |