일반화는 쉽게이야기하면
Train과 Test의 차이를 줄이는 것이다.
딥러닝이나 머신러닝은 전체로 학습하는 것이아니라 "샘플링"을 해서 학습을 시킨다. (모든 통계가 그렇겠지만)
그래서 Train과 Test는 차이가 존재할 수 밖에 없고 이런 '차이'를 줄이는 것이 '일반화'이다.
Underfitting과 Overfitting이 문제가 되어 이런 일반화 개념이 나왔다.
여기서 나오는 개념중 하나가 Occam's razor라는 개념인데 쉽게 이야기하면 fitting정도가 비슷하다면 가장 단순한 모델이 좋은 모델이라는 것이다.
그 다음은 No Free Lunch이다.
모든 태스크에 최고의 효과를 내는 궁극의 모델은 존재하지 않는다는 것이다.
여러 타입의 문제에 평균적으로 해결하는 건 있을수 있지만
매우 특별한 문제를 잘 해결하는 모델은 다른 태스크에 대해 평균보다 낮은 성능을 보인다는 것이다.
다음 개념은 정규화(Regularization)이다.
이는 사람들이 Normalization, Standardization 와 많이 햇갈려 하는 개념일것 같다. 전부다 한국어로 '정규화'라고 번역이 되기 때문인데 이 차이를 아주 쉽게 설명한 글은 아래와 같다.
https://realblack0.github.io/2020/03/29/normalization-standardization-regularization.html
Regularization을 좀더 자세히 써보면
train error가 아닌 test error을 줄이기위한 모든 방법들을 이야기한다. 가장 유명한 예시에는 Weight decay가 있다.
여기서 하나 알고가야할 개념이 Norm인데 쉽게 이야기하면 '벡터의 크기'이고 이를 정의하는 방법에 따라 같은 데이터라도 Norm이 달라질수 있다. 예를들어 (3,4)벡터의 norm은 7이될수도 5가 될 수 도 있다. (L1과 L2를 검색해보자)
조금더 구체적인 예시다.
오른쪽의 예시를 보면 w1*x 와 w2*x가 같은 값이지만 L2의 크기는 다르다.
J(w) = MSE + lambda*w^t*w 라 할때 lambda값에따라 정규화 loss의 값이 달라지는다는 것이다.
왼쪽그림의 lambda값에 집중해보자. 그리고 왜그런지 생각해보자
참고:Artificial intelligence (COM3022) | Lecture 4 | Spring 2023 | 이장원
'컴퓨터 과학 > 인공지능' 카테고리의 다른 글
Maximum Likelihood Estimation (0) | 2023.07.13 |
---|---|
Estimation from the field of statistics (0) | 2023.07.12 |
Learning Algorithms (0) | 2023.07.12 |
Numerical computation (0) | 2023.07.02 |
Information Theory (0) | 2023.07.02 |