regularization이란 무엇일까?
1. regularization이 무엇일까?
누군가가 regularization이 뭐에요?라고 물어보면 뭐라고 대답해야할까
쉽지 않다.. 당장 대답해보라하면 그냥 과적합을 방지하기 위해 loss function에 항을 추가하는 일?
여기서 조금 더 떠들어본다면
모형이 train data를 너무 잘 배워서 loss를 빠르게 줄이는 것을 막고자 penalty로 항을 추가한다. 그러면 loss를 빠르게 줄이는 것을 막아 과적합을 방지하게 된다
위키피디아의 정의를 가져와봤다
regularization is the process of adding information in order to solve an ill-posed problem or to prevent overfitting.
‘과적합을 방지하기 위해 무언가 정보를 추가하는 과정’
<참고로 well-posed problem은 해가 유일하게 존재하고 초기 조건에서 연속적으로 변할 수 있는 문제를 말하는데 이것이 아니면 ill-posed problem이다.
보통 ML 문제는 해가 유일하게 존재한다고 하기 어려우니 ill-posed problem일 듯? 중요한 것은 아니다>
The regularization term, or penalty, imposes a cost on the optimization function for overfitting the function or to find an optimal solution.
regularization term 혹은 penalty라고 부르는 것은 최적해를 찾거나 과적합을 방지하기 위해 optimization function인 loss function에 비용을 부과하는 것이다.
In machine learning, regularization is any modification one makes to a learning algorithm that is intended to reduce its generalization error but not its training error
regularization은 train error를 줄이는 것이 아닌 일반화 에러(generalization error)를 줄이기 위해 학습 알고리즘에 어떠한 변경을 하는 것
일반화 에러는 당연히 test error를 말할 것이고 일반화 에러를 줄인다는 것은 결국 과적합을 방지한다는 이야기
이게 가장 적절한 설명같다.
단순히 페널티 항을 loss function에 더하는 것 외에도 dropout이나 early stopping나 noisy input 등등도 학습알고리즘에 일종의 변경을 가하는 regularization에 속한다
2. overfitting은 왜 일어나는가?
train data에 너무 잘맞아서 train 성능은 좋으나 test data에서는 성능이 매우 떨어지는 모델 적합 현상
모형이 train data를 너무 잘 익혀서 새로운 데이터인 test data에는 오히려 잘 맞추지 못하는 것. 그래서 지겹도록 나오는 그림이 이거다
underfitting은 모델이 너무 간단하거나 학습을 너무 조금하여 학습데이터에도 잘 안맞는 상태
보통 overfitting은 train data의 noise까지 학습해버린 것이라고 표현한다.
여기까지는 누구나 할 수 있는 이야기이고 noise를 학습한다는 것이 왜 안좋은가?
noise는 데이터의 근본에 존재하는 무언가를 뜻한다고 볼 수 있는데
쉽게 말하면 그 데이터에만 존재하는 것. 여기서는 train data에만 존재하는 것이라고 말할 수 있다.
그러니까 이것까지 학습해버린 모델은 새로운 데이터인 test data를 보면 test data에는 train data의 noise가 존재하지 않으니 이해를 못하는 것. 그러면서 성능이 급격하게 떨어진다.
기본적으로 모델이 너무 복잡하면 overfitting이 일어나는 경향이 있다고 한다
사실 overfitting은 1차 회귀문제를 풀기 위해 나온 굉장히 이론적인 말이다.
실제로는 overfitting 모형이 우리가 원하는 target 모형일 수도 있지 않은가?
아무튼 지금까지 배워온 바에 의하면 성능을 높이려면 모델을 복잡하게 하는 것은 어쩔 수 없는 일
그래서 과적합을 피하기 위해, 일반화 성능을 높이기 위해 모형의 학습 알고리즘에서 약간의 변경을 가하는 많은 regularization 기법들이 제안되었다.
'딥러닝 > 딥러닝 기초' 카테고리의 다른 글
L1(Lasso)과 L2 regularization(Ridge)에 대한 고찰 (0) | 2021.12.17 |
---|---|
L1 regularization(Lasso)과 L2 regularization(Ridge) (0) | 2021.12.15 |
가장 좋은 loss function은? (0) | 2021.11.22 |
MSE loss 와 MAE loss의 비교 (0) | 2021.11.22 |
cross entropy loss(=log loss)에 대한 고찰 (0) | 2021.11.20 |