반응형
1. Regularization
1-1. Regularization의 정의
모델이 [[overfitting]]되지 않도록 일반성을 띄게 해 주는 기법.
1-2. Regularization의 목적
- 모델이 overfitting되는 것을 방지해서, 새로운 데이터에 대해서도 모델이 잘 작동하도록 하기 위해 Regularization을 사용한다.
- feature를 버리지 않고 모두 사용하면서 overfitting을 방지한다.
- local noise가 학습에 큰 영향을 미치지 않게 하여, outlier(특이점)의 영향을 적게 받도록 한다.
1-3. Regularization의 목표
- 우리가 기대하는 일반성을 띈 모델은, 가운데에 있는 2차함수 모양으로 생긴 함수이다.
- 왼쪽의 모델은, 함수의 차수가 너무 적어서 모델이 너무 간단하다.
- 오른쪽 모델은, 차수가 너무 커서 모델이 너무 복잡하다.
y = ax + bx^2 + cx^3 + dx^4
함수로 구성된 모델이 있다고 해 보자. 4차함수 모델이지만, 구불부불한 4차함수를 펴 주어 2차함수 꼴로 만들어 주면, 우리가 원하는 모델로 학습할 수 있다.
2차함수로 학습을 시키려면, 계수 c와 d가 0에 가까워지도록 학습을 시키면 된다. 모델은 loss 함수가 적어지는 방향으로 학습이 되는 만큼, 3차항 계수와 4차항 계수가 커지면 loss 함수가 커지도록 패널티를 줄 수 있다.
loss = (원래 loss 함수) + 1000c + 1000d
- 이런 식으로 c, d에 패널티를 먼저 부여할 수 있다.
- 각 항의 계수에 패널티 값을 부여하면, 그 항의 계수가 적은 방향으로 학습이 된다.
1000c + 1000d
와 같이, regularization을 위해 더해 준 항을 regularizer하고 한다.- 즉, 각 weight에 패널티 값을 부여하면 그 weight 또한 적은 방향으로 학습이 될 것이다.
1-4. Regularization의 효과
- 모델을 일반화할 수 있다.
- 모델의 bias를 크게 증가시키지 않으면서 variance를 크게 줄일 수 있다.
- data에 있는 중요한 property들을 빼먹지 않으면서, variance를 줄여서 overfitting을 방지하는 효과
- underfit 상태의 모델: bias가 크고 variance가 작은 모델
- overfit 상태의 모델: variance가 크가 bias가 작은 모델
- "Bias-variance tradeoff" 때문에, 일반적으로 bias와 variance를 동시에 최소화할 수는 없다.
1-5. Regularization의 특성
(1) Weight size penalty
- weight를 작게 유지하는 방식으로 네트워크를 학습하는 방법
- weight 값이 크면 클수록, loss 함수에 패널티 값을 추가하여, weight가 작아지는 방식으로 학습이 진행된다.
- Regularization Strength(λ): weight 값이 커서 받는 penalty 값의 강도를 의미한다.
- 이 값이 너무 크면, bias가 커져서 모델이 너무 간단해지므로, underfitting이 발생한다.
- 이 값이 너무 작으면, variance가 커져서 모델이 과하게 복잡해지므로, overfitting이 발생한다.
(2) variable selection
- variable 중 일부만 선택하는 방식으로 네트워크를 학습하는 방법
- variable selection, feature selection 등으로 불림
- feature가 너무 많을 경우 overfitting 위험이 있기 때문에 필요하다
(3) Ensemble
- 데이터를 여러 개의 training set으로 나누어서 동시에 학습을 진행해서 모든 training set에 대한 학습이 끝나면 결과를 통합하는 방법
- 통합 : 같은 모델을 여러 개 학습시킨 뒤, 각 모델의 출력값을 평균내어 결과로 사용한다.
- Neural Network에서도, 정확도가 최소 2~4% 개선되는 효과를 보인다
- Dropout 또한 앙상블 학습과 비슷한 효과를 줄 수 있다.
1-6. 종류
- [[L1,L2 regularization]]
- [[Batch Normalization]]
- [[Weight Normalization]]
- [[Layer Normalization]]
- [[Dropout]]: 학습 시 뉴런을 임의로 삭제하여 학습하는 방법.
- [[pruning]]
- [[Early Stopping]]: step 수가 늘어날수록, validation set의 loss가 증가하면 train을 종료하는 방법.
reference
- https://light-tree.tistory.com/125
- https://en.wikipedia.org/wiki/Taxicab_geometry
- https://bahnsville.tistory.com/1140
- https://mangkyu.tistory.com/37
- http://dmqm.korea.ac.kr/activity/seminar/273
- https://www.kaggle.com/harangdev/feature-selection
- https://towardsdatascience.com/regularization-in-machine-learning-76441ddcf99a
- https://untitledtblog.tistory.com/143
- https://www.geeksforgeeks.org/underfitting-and-overfitting-in-machine-learning/
- https://dailyheumsi.tistory.com/57
반응형
'Learning > Tuning' 카테고리의 다른 글
Regularization : L1, L2 regularization (0) | 2020.04.12 |
---|---|
Batch Normalization (0) | 2020.04.12 |
Dropout (0) | 2020.04.12 |
Hyperparameter (0) | 2020.04.12 |
Overfitting과 Underfitting 정의 및 해결 방법 (2) | 2020.04.12 |