ML 모델의 관점에서 generalization error는 보통 다음과 같이 정의됩니다.
y 는 ground truth 값을, x는 input, 그리고 h( ) 는 우리 모델의 hypothesis를 나타냅니다.
헌데 대부분의 경우 x의 true distribution을 전체 다 사용해서 모델을 학습하기는 어렵습니다.
그렇기 때문에 어떤 데이터를 사용해서 학습하냐에 따라 h( ) 함수의 bias 와 variance가 나타나게 됩니다.
1) Bias
Bias 는 다음과 같이 정의됩니다.
h_bar( ) 함수는 다양한 x의 distribution을 통해 학습시킨 h( ) 함수의 mean 값입니다.
결국 h( ) 함수가 평균적으로 true function 인 f( )와 얼마나 떨어져있는지 계산합니다.
y 와 f( ) 가 헷갈릴 수 있는데, 여기서의 가정은 y = f(x) + e 입니다. Ground Truth 인 y 가 f( )로만 설명되지 않고,
noise 인 e가 존재한다는 것이지요. 관측 오차라고 생각하면 편할 것 같습니다.
2) Variance
Variance 는 다음과 같이 정의됩니다.
이번에는 우리가 다양한 x의 partial distribution 를 가지고 h( )를 학습시켰을 때, h( )가 얼마나 큰 차이를 보이는지를 측정합니다.
마지막으로 Noise는 다음과 같이 정의됩니다.
3) Noise
아까 언급한 것처럼, y는 true function f( ) 로 온전히 설명되지 않고, 그 설명되지 않는 정도를 나타냅니다.
4) Bias - Variance Decomposition
모델의 Generalization Error는 다음과 같이 소개됩니다.
임의의 x distribution 을 사용해서 학습했을 때, 얼마나 잘 y 에 대하여 generalize 하는지 확인합니다.
이 generalization을 수식으로 풀어쓰면,
즉 결국, generalization error는 variance, bias**2, 그리고 noise로 설명됨을 알 수 있습니다.
generalization error를 고정했을 때, 모델의 variance 가 높다면 필연적으로 bias 가 낮고,
모델의 bias가 높다면 variance가 작아짐을 보일 수 있습니다.
예를 들어 regression 문제를 풀 때, polynomial degree가 높다면 bias가 낮은 대신 variance가 높은 모델이 되죠.
반대로 polynomial degree 가 낮다면 bias가 높은 대신 variance가 낮은 모델이 됩니다.
'새우의 테크 > 랜덤' 카테고리의 다른 글
[ML] RNN 에서의 gradient 계산 (0) | 2022.10.11 |
---|---|
[Dockerhub] Dockerhub 사용하여 쉽고 빠르게 환경 옮기기 (2) | 2022.08.16 |
Anaconda3 설치부터 사용까지 - 왜 사용해야 할까요? (0) | 2022.08.16 |
[AI Tech] 요새 핫한 Dall-E 2 사용해보기 (12) | 2022.08.08 |
댓글