ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [확률적 경사 하강법(SGD)] 4. 과적합 완화(규제화)
    전공공부/Deep Learning 2021. 8. 2. 23:00

     

    안녕하세요. 개알못입니다~

    어느덧 8월입니다...허허 시간 참 빠릅니다 :)

     

    오늘은 저번시간에 배운 과적합을 줄이는 방법에 대해 알아보겠습니다.


     

    1. 규제화

    저번 시간에 살펴본 '과적합'은 학습 시 오차함수 값이 local minimum에 갇힌 상황이라고 볼 수 있습니다. 주로 가중치의 수가 많고, 신경망의 자유도가 높을 수록 그럴 확률이 높습니다. 고로 가중치의 자유도를 제약하는 규제화(Regularization)에 의해 과적합을 안화시킬 수 있습니다. 앞으로 '가중치 감쇠', '가중치 상한', '드롭아웃'이라는 3가지 규제화 방법에 대해 알아보겠습니다.

     

     

    2. 가중치 감쇠

    3가지 방법 중 가장 간단한 것이 바로 '가중치 감쇠'입니다. 가중치 감쇠란, 이름 그대로 가중치에 어떠한 제약을 가하는 것입니다. 오차함수에 가중치의 norm의 제곱(=제곱합)을 더한 뒤, 이를 최소화하는 방법입니다.

     

     

     

     λ는 규제화의 정도를 제어하는 파라미터입니다. 주로 0.01~0.00001 사이의 값을 가집니다. 이 람다를 이용하여 더 작은 가중치를 만들 수 가 있습니다. 이를 적용한 경사 하강법의 업데이트 식은

     

     

    위에 처럼 표현합니다. 그러기에 w는 본인 크기에 비례하는 만큼 속도가 감소하면서 갱신됩니다. 이런 현상 때문에 가중치 감쇠(weight decay)라고 부릅니다. 여기서 감쇠는 가중치인 W에서만 적용되고, b 바이어스에는 적용되지 않습니다. 허나 바이어스 전체 수가 적기 때문에 위에 식에서는 적당히 간략화 한 것입니다.

     

     

    3. 가중치 상한

    비슷하게 별도로 가중치 값의 상한을 통해 가중치를 제약하는 법을 가중치 상한이라고 합니다. 이 방법은 각 유닛의 입력 측 결합의 가중치에 대해서 그 제곱합의 최댓값을 제약하는 방법입니다.

     

    위에 그림처럼 layer l-1에는 1부터 I까지 노드로부터 가중치 값을 layer l의 노드 j에게 줍니다. 이러한 가중치 값이 아래 식을 만족하도록 가중치를 제약하는게 '가중치 상한' 입니다.

     

     

    만약 위 부등식이 만족하지 않을 때는 각각 가중치에 1보다 작은 상수를 곱하여 부등식이 만족하도록 합니다. 최근 연구에 따르면 가중치 감쇠보다 뛰어난 효과를 가진다고 보고됩니다.

     

     

    4. 드롭아웃(drop-out)

    드롭아웃은 Multi-Layer 신경망의 노드 중 일부를 '확률적'으로 선택하여 학습하는 방법입니다.

     

    학습 시 : 중간층과 입력층 각 층의 노드 중 미리 정해 둔 비율(=p)만큼 선택하고, 선택하지 않은 노드는 무효화 합니다. 선택된 노도만으로 구성된 가상의 신경망에서 훈련 샘품에 관해 오차를 구합니다. 그 뒤 역전파를 계산하고, 오차의 기울기를 통해 가중치를 갱신합니다. 갱신할때마다 가상의 신경망을 구성하는 노드는 '랜덤'으로 선택되어 집니다. 참고로 노드를 선택하는 p는 층마다 달라도 괜찮습니다.

     

    학습 후 : 추론을 할때에는 모든 노드를 사용하여 앞먹임 계산을 합니다. 다만 학습 시 무효화된 노드는 일률적으로 출력측의 가중치를 p배 해줍니다. 왜나하면 추론 시의 유닛수가 학습 시에 비해 1/p배 된 것과 같기 때문에 이를 통해 보상할 수 있습니다.

     

    정리하자면, 학습 시에 신경망의 자유도를 강제적으로 낮추고 과적합을 회피하는 것입니다. 또한 노드가 무작위로 선택되어 무효화되는 신경망을 여러 개 훈련한 후, 이 여러 개의 신경망으로부터 얻은 결과값의 평균과 같은 효과를 볼 수 있습니다.

    다수의 신경망의 평균을 내면 추론의 정확도가 일반적으로 좋아진다고 알려져 있습니다. 그러기에 드롭아웃은 같은 효과를 적은 비용으로 계산할 수 있습니다. 특히 클래스 분류의 출력층에 사용되는 softmax 층에 대해서는 출력의 기하평균을 내는 것과 같습니다.

     

     

    5. 정확도 비교 (참고)
    규제화 종류 테스트 데이터분류 오차 (%)
    가중치 감쇠 1.62
    가중치 상한 1.35
    드롭아웃 + 가중치 감쇠 1.25
    드롭아웃 + 가중치 상한 1.05

    source : A simple way to prevent nerual networks from overfitting. Journal of Machine Learning Research, 15:1929-1959, 2014. N. Srivastava, G.E.Hinton

     

    위 자료는 서로 다른 규제화 방법을 사용하여 손글씨 인식(MNIST)의 정확도를 비교한 것입니다. 앞서 말한거와 같이 드롭아웃과 가중치 상한을 적용하는 것이 가장 효과적임을 볼 수 있습니다.

     


    다음 시간에는 과적합을 방지하는 또다른 방법인 학습을 위한 트릭에 대해 이야기 하겠습니다.

    질문과 댓글은 언제나 환영입니다 :)

     

    댓글

Designed by Tistory.