앞서 설명했던 가중치 초깃값의 중요성은 결론적으로 활성화된 값들이 고르게 분포되기 위함이었다.

그렇다면 초기에 설정하는 가중치값 말고 또 활성화 값들을 고르게 만들 수는 없을까?

 

 

배치 정규화 (Batch Normalization)

이러한 생각에서 시작된 것이 배치 정규화(Batch Normalization)이다. 배치 정규화는 활성화 함수의 출력값(활성화값)을 정규화하는 작업을 뜻한다. 배치 정규화의 장점은 다음과 같다.

 

  • 학습을 빨리 진행할 수 있다. (학습 속도 개선)
  • 가중치 초깃값에 크게 의존하지 않는다.
  • 오버피팅을 억제한다.

장점이 너무 어마어마해서 다들 많이 쓰는것 같다. 앞에서 말했던 가중치 초깃값도 별로 중요치 않고, 오버피팅을 억제하기 위해 후에 기술할 드롭 아웃, 가중치 감소 등도 굳이 사용하지 않아도 되니 말이다. 이게 바로 3 in 1

 

배치 정규화를 사용한 신경망

 

위의 이미지가 배치 정규화를 사용한 신경망이다. 여기서 Batch Norm이 배치 정규화 계층으로, 학습 시 미니배치를 단위로 정규화를 한다. 구체적으로 데이터 분포가 평균이 0, 분산이 1이 되도록 정규화한다.

 

이 Batch Norm이 활성화 함수의 전에 있어야 하는지, 후에 있어야 하는지에 대한 것은 논의 중이라고 하는데 자세하게 알게 되면 추가하겠다. 우선 위의 신경망은 Batch Norm의 활성화 함수 이전에 넣었다. 이렇게 Batch Norm을 신경망 구현에 사용하게 되면 데이터가 덜 치우치게 분포하게 되고, 또한 배치 정규화 계층마다 이렇게 정규화된 데이터를 확대, 이동하기도 한다.

 

Batch Norm도 확대와 이동의 하이퍼파라미터를 설정해야하는데, 현재 대다수의 완성된 신경망은 적절한 Batch Norm 하이퍼파라미터를 내장하고 있기 때문에 크게 신경쓰지 않아도 된다. 하지만 직접 만들겠다면 다른 얘기

 

 

 

 

 

 


 

 

 

 

 

 

과적합, 오버피팅 (Overfitting)

오버피팅이란 신경망이 훈련 데이터에만 지나치게 적응되어 그 외의 데이터에는 제대로 대응하지 못하는 상태를 말한다. 오버피팅은 매객변수가 많고 표현력이 높은 모델일수록, 훈련 데이터가 적을수록 많이 일어난다.

 

train data에 대해서는 정확도가 높지만 test 데이터에서는 낮은 이러한 상황을 overfitting, 과적합이라고 한다.

 

 

 

가중치 감소 (Weight Decay)

오버피팅을 억제하는 방법으로 가중치 감소가 있다. 이는 학습 과정에서, 큰 가중치에 대해서는 그에 상응하는 큰 페널티를 부과하여 오버피팅을 억제하는 방법이다. 오버피팅은 가중치 매개변수의 값이 커서 발생하는 경우가 크기 때문에 가중치 감소는 예로부터 오래 써온 오버피팅 억제 방법이며 모든 가중치 각각의 손실함수에 L2노름(각 원소의 제곱들을 더해서 루트를 씌운 값)을 더하여 구한다.

 

 

 

드롭아웃 (Dropout)

가중치 감소는 간단하게 구현할 수 있고 어느정도 과적합을 방지할 수 있지만 신경망이 깊어지고 복잡해질수록 과적합을 막기 어려워진다. 이러한 경우, 드롭아웃을 사용한다.

 

드롭아웃이란 런을 임의로 삭제하면서 학습하는 방법으로 훈련 시 은닉층의 뉴런을 무작위로 골라 삭제한다. 삭제된 뉴런은 신호를 전달하지 않기 때문에 학습에 사용되지 않는다. 이렇게 학습을 반복할 때마다 무작위로 뉴런을 삭제하며 학습을 하다가 실제 시험 데이터에서는 모든 뉴런에 신호를 전달한다. 시험 때는 각 뉴런의 출력에 훈련 때 삭제 안 한 비율을 곱하여 출력한다.

 

 

드롭아웃은 기계학습의 앙상블 학습(Ensemble Learning)과 비슷하다. 앙상블 학습이란 개별적으로 학습시킨 여러 모델의 출력을 평균 내 추론하는 방식이다. 드롭아웃 또한 학습 때 뉴런을 무작위로 삭제하는 행위가 매번 다른 모델을 학습시키는 것과 같은 맥락으로 이해할 수 있다. 또한 추론 시, 뉴런의 출력에 삭제한 비율을 곱함으로써 앙상블 학습에서 여러 모델의 평균을 내는 것과 같은 효과를 얻을 수 있다. 따라서 드롭아웃은 앙상블과 같은 효과를 신경망에 적용했다고 볼 수 있다.

 

 

 

+ Recent posts