과대적합방지 방법

+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.

- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,

- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc

- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.


+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.



1. 과대적합 (over-fitting) 개념

- 모델이 train data set의 패턴에 지나치게 특화되어, 새로운 데이터에 대한 예측에서는 오차가 커지는 현상이다.

- 모델의 매개변수가 많은 경우, train data set의 양이 부족한 경우 등의 상황에서 발생한다.



2. 과대적합 발생 원인

- Train data set은 실제 데이터의 부분집합이다. 따라서, tran data set은 실제 데이터의 모든 패턴을 가지고 있지 않을 수 있다. 예를 들어, train data set이 실제 데이터에서 편향된 부분만을 가지고 있을 수 있다. 또한 오류가 포함된 값을 가지고 있을 수도 있다. 이러한 상황은 과대적합의 원인이 된다.

- 모델이 과도하게 복잡한 경우, 변수가 지나치게 많은 경우도 과대적합의 원인이 된다.



3. 과대적합 방지 방법

3-1. Data augmentation

- Train data set의 절대적 양이 부족한 경우나 편향된 패턴만을 가질 때, 데이터를 적절히 변형하는 처리를 하여, 데이터의 양을 늘리거나, 노이즈를 추가하는 등의 방법을 통해 의도적으로 데이터가 더 다양한 패턴을 가지게 할 수 있다.

3-2. 모델의 복잡도 감소

- 인공신경망의 복잡도는 hidden layer의 개수나 모델의 trainable parameter의 개수 (capacity) 등에 비례하므로, over-fitting이 발생할 때, 이들의 사이즈를 줄여 볼 수 있다.

3-3. 가중치 규제 (weight regularization) 적용

- 개별 가중치 값의 범위를 제한하여 훈련되는 모델이 간단해지도록 유도하는 방법이다.

- 가중치 규체하는 항을 손실함수에 포함하여 모델을 훈련한다.

- 가중치 규제의 종류에는 아래와 같은 것들이 있다.

1) L1 norm regularization (LASSO)

- 손실함수식에 모든 가중치 $$$w$$$들의 절대값의 합계 항을 추가하고, 손실함수가 최소가 되도록 가중치를 조정 (훈련) 한다.

- 아래와 같은 식으로 표현할 수 있다. $$$\lambda$$$값을 크게하면, train data set 에 trainable parameter를 최대학 적합시키는 노력은 약해지고, 가중치를 규제의 강도는 강해진다.

$$$Loss = \dfrac{1}{N}\sum\limits_{i=1}^{N} (y_i - \hat{y}_i)^2 + \lambda \sum\limits_{j=1}^{M}|w_j|$$$

2) L2 norm regularization (Ridge)

- 손실함수식에 모든 가중치 $$$w$$$들의 제곱합을 추가하고, 손실함수가 최소가 되도록 가중치를 조정 (훈련) 한다. 가중치 감소 (weight decay) 기능을 하며, 가중치가 큰 값들에 패널티를 부과하여 과적합 발생 위험을 줄여준다.

$$$Loss = \dfrac{1}{N}\sum\limits_{i=1}^{N} (y_i - \hat{y}_i)^2 + \dfrac{\lambda}{2} \sum\limits_{j=1}^{M}|w_j|^2$$$

3) Elastic Net

- 손실함수식에 L1 norm regularization, L2 norm regularization 항을 추가하고, 손실함수가 최소가 되도록 가중치를 조정 (훈련) 한다. $$$\alpha$$$와 $$$\beta$$$값의 비율에 따라 L1 규제와 L2 규제 강도 비율을 조절할 수 있다.

$$$Loss = \dfrac{1}{N}\sum\limits_{i=1}^{N} (y_i - \hat{y}_i)^2 + \alpha \sum\limits_{j=1}^{M}|w_j| + \beta \sum\limits_{j=1}^{M}|w_j|^2$$$

3-4. Dropout

- 인공신경망 모델로 훈련 진행 시, 뉴런의 일부를 사용하지 않는 것이다. 즉, 의도적으로 손상시킨 모델로 학습을 하고, 테스트 (예측) 시 에는 모든 뉴런 (손상시키지 않은 모델)을 사용하여 과적합을 방지하는 방법이다.

- 어느정도의 뉴런을 사용하지 않을지는 하이퍼파라미터로 사용자가 지정할 수 있다.



+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.

- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,

- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc

- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.


+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.

댓글

이 블로그의 인기 게시물

[논문 full 번역 + 이해를 위한 추가설명] CRNN, An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

[논문 full 번역 + 이해를 위한 추가설명] DQN, Playing Atari with Deep Reinforcement Learning

CUDA 와 CuDNN 의 설치, 삭제 및 버전 변경