wooing

과적합, 기울기 소실, 기울기 폭주 본문

인공지능/머신러닝

과적합, 기울기 소실, 기울기 폭주

우잉_ 2023. 1. 30. 00:47

과적합(Overfitting)이란?

과적합은 기계 학습 모델이 학습 데이터에 대한 정확한 예측을 제공하지만 새 데이터에 대해서는 제공하지 않을 때 발생하는 바람직하지 않은 기계 학습 동작한다. 데이터 과학자는 기계 학습 모델을 사용하여 예측을 수행할 때 먼저 알려진 데이터 세트에 대해 모델을 훈련시킨다. 그런 다음 이 정보를 기반으로 모델은 새 데이터 세트에 대한 결과를 예측하려고 시도한다. 과적합 모형은 부정확한 예측을 제공할 수 있으며 모든 유형의 새 데이터에 대해 제대로 수행되지는 않는다.


과적합을 막는 방법들

1. 데이터 양을 늘리기

모델은 데이터의 양이 적을 경우, 해당 데이터의 특정 패턴이나 노이즈까지 쉽게 암기하기 되므로 과적합 현상이 발생할 확률이 늘어난다. 그렇기 때문에 데이터의 양을 늘릴 수록 모델은 데이터의 일반적인 패턴을 학습하여 과적합을 방지할 수 있다.

2. 모델의 복잡도 줄이기

인공 신경망의 복잡도는 은닉층(hidden layer)의 수나 매개변수의 수 등으로 결정된다. 과적합 현상이 포착되었을 때, 인공 신경망 모델에 대해서 할 수 있는 한 가지 조치는 인공 신경망의 복잡도를 줄이는 것이다. 

3. 가중치 규제 적용하기

복잡한 모델이 간단한 모델보다 과적합될 가능성이 높다. 그리고 간단한 모델은 적은 수의 매개변수를 가진 모델을 말한다. 복잡한 모델을 좀 더 간단하게 하는 방법으로 가중치 규제(Regularizaiton)가 있다.

  • L1 규제 : 가중치 w들의 절대값 합계를 비용 함수에 추가한다. L1 노름이라고도 한다.
  • L2 규제 : 모든 가중치 w들의 제곱합을 비용 함수에 추가한다. L2 노름이라고도 한다.

이 두 식 모두 비용 함수를 최소화하기 위해서는 가중치 w들의 값이 작아져야 한다는 특징이 있다. L1규제의 경우 어떤 특성들이 모델에 영향을 주고있는지 정확히 판단하는데 유용하다. 그러나 가중치가 작은 경우 0으로 수렴할 수 있기때문에 모든 특징들이 유용하다고 판단되는 경우 L2 규제를 사용하면 된다. 일반적으로 L2규제를 사용한다고 한다.

4. 드롭아웃(Dropout)

드롭아웃은 신경망의 일부를 사용하지 않는 방법이다. 드롭아웃의 비율을 x로 지정한다면 학습 과정마다 랜덤으로 x비율 만큼의 뉴런을 사용하지 않는다.

드롭아웃0.5 를 적용한 예시


기울기 소실과 폭주(Gradient Vanishing, Exploding)

깊은 인공 신경망을 학습하다보면 역전파 과정에서 입력층으로 갈 수록 기울기(Gradient)가 점차적으로 작아지는 현상이 발생할 수 있다.  입력층에 가까운 층들에서 가중치들이 업데이트가 제대로 되지 않으면 결국 최적의 모델을 찾을 수 없게 된다. 이를 기울기 소실(Gradient Vanishing)이라고 한다.

반대의 경우로 기울기가 점차 커지더니 가중치들이 비정상적으로 큰 값이 되면서 결국 발산되기도 하는데, 이를 기울기 폭주(Gradient Exploding)이라고 한다.


배치 정규화(Batch Normalization)

배치 정규화는 인공 신경망의 각 층에 들어가는 입력을 평균과 분산으로 정규화하여 학습을 효율적으로 만든다. 

더보기

 

배치정규화 수정 필요

 

 

References:

https://wikidocs.net/60751

https://aws.amazon.com/ko/what-is/overfitting/