본문 바로가기
Study/DL

[밑시딥1] Chapter 6. 학습 관련 기술들

by hyeon827 2024. 1. 10.
  • 최적화 : 손실 함수의 값을 가능한 한 낮추는 매개변수의 최적값을 찾는 문제를 푸는 것

[SGD의 단점]

  • 해당 함수의 기울기 = y축 방향은 가파른데 x축 방향은 완만
  • 기울기 대부분은 최솟값 (x,y) = (0,0) 방향을 가리키지 X

  • 해당 함수에 SGD 적용
  • 상당히 비효율적인 움직임
  • 즉, 비등방성 함수에선은 탐색 경로가 비효율적 (방향에 따라 기울기가 달라지는 함수)

*가장 가파르게 내려가는 방향은 수직 방향! 

 

[모멘텀(Momentum)]

*Gradient 누적함으로써 관성을 가지게 됨

  • v = 속도 
  • αv = 물체가 아무런 힘을 받지 않을 때 서서히 하강시키는 역할(α는 0.9등의 값으로 설정)
  • 기울기 방향으로 힘을 받아 물체가 가속된다는 물리법칙 

  • local minimum에서 빠져나올 수 있음
  • But, 큰 폭으로 인해 global minimum 도달 못할 가능성 O

  • SGD와 비교하면 '지그재그 정도'가 덜함
  • x축의 힘은 아주 작지만 방향은 변하지 않아서 한 방향으로 일정하게 가속
  • y축의 힘은 크지만 위아래로 번갈아 받아서 상충하여 y축 방향의 속도는 안정적이지 X

 

[AdaGrad]

  • 개별 매개변수에 적응적으로 학습률 조정하면서 학습 진행
  • h = 기존 기울기 값을 제곱하여 계속 더함
  • 매개변수의 원소 중에서 많이 움직인 원소는 학습률이 낮아짐

  • Momentum 단점 보완
  • But, 학습이 오래 진행되면 학습률이 너무 작아져서 모델의 학습이 거의 이루어지지 않는 상황이 발생할 수 있음

  • y축 방향은 기울기가 커서 처음에는 크게 움직이지만, 그 큰 움직임에 비례해 갱신 정도도 큰 폭으로 작아짐
  • y축 방향으로 갱신 강도가 빠르게 약해지고, 지그재그 움직임이 줄어듦

 

[Adam]

  • 직관적으로 Momentum + Adagrad 융합한 기법
  • 하이퍼파리미터의 '편향 보정'이 진행

 

  • 가중치 감소 기법 : 오버비팅을 억제해 범용 성능을 높이는 테크닉

[가중치의 초깃값을 0으로 하면 안되는 이유]

  • 순전파 때 입력층의 가중치 0이면 두 번째 층의 뉴런에 모두 같은 값이 전달
  • 역전파 때 두 번째 층의 가충치가 모두 똑같이 갱신
  • 이는 가중치를 여러 개 갖는 의미가 사라짐
  • 즉, 초기값을 무작위로 설정해야 함

[은닉층의 활성화값 분포]

 

가중치를 표준편차가 1인 정규분포로 초기화할 때의 각 층의 활성화값 분포(시그모이드 함수)

  • 0과 1에 치우쳐 분포
  • 시그모이드 함수는 그 출력이 0에 가까워지자(또는 1에 가까워지자) 그 미분은 0에 다가감
  • 결국 역전파의 기울기 값이 점점 사라짐(기울기 소실)

 

가중치를 표준편차가 0.01인 정규분포로 초기화할 때의 각 층의 활성화값 분포(시그모이드 함수)

  • 0.5 부근에 집중 (기울기 소실 문제 X)
  • But, 활성화 값들이 치우침 -> 다수의 뉴런이 거의 같은 값을 출력하여 뉴런을 여러 개 둔 의미 X 
  • 표현력 제한

 

[Xavier 초깃값] - 활성화 값들을 광범위하게 분포시킬 목적

  • 초깃값의 표준편차가 1/√n이 되도록 설정(n은 앞 층의 노드 수)
  • 앞 층에 노드가 많을수록 대상 노드의 초깃값으로 설정하는 가중치가 좁게 퍼짐

 

  • Xavier 초깃값은 활성화 함수가 선형인 것을 전제
  • sigmoid와 tanh 함수는 좌우 대칭이라 중앙 부근이 선형인 함수로 볼 수 있음

[ReLU를 사용할 때의 가중치 초깃값]

  • He 초깃값
  • 앞 계층 노드가 n개일 때, 표준편차가  2/n 인 정규분포 사용
  • std = 0.01일 때의 각 층의 활성화 값들을 아주 작은 값
  • 역전파 때 가중치의 기울기 역시 작아진다는 뜻 -> 학습이 거의 이루어지지 X
  • Xavier 초기값 결과를 보면 층이 깊어지면서 치우침이 조금씩 커짐
  • 기울기 소실 문제

 

  • He 초깃값은 모든 층에서 균일하게 분포

 

장점

  • 학습 속도 개선
  • 초깃값에 크게 의존하지 않는다
  • 오버피팅 억제
  • 데이터 분포가 평균이 0, 분산이 1이 되도록 정규화
  • '배치 정규화 계층'을 활성화 함수의 앞(혹은 뒤)에 삽입함으로써 데이터 분포가 덜 치우게 함

  • (미니배치) m개의 입력 데이터의 집합에 대해 평균과 분산을 구함
  • ε 기호는 작은 값(예컨대 10e-7 등)으로 0으로 나누는 사태를 예방

  • 배치 정규화 계층마다 이 정규화된 데이터에 고유한 확대와 이동 변환 수행
  • : 확대 ,  : 이동
  • 처음에는 γ =1, β=0 부터 시작하고, 학습하면서 적합한 값 조정

 

  • 배치 정규화를 이용하지 않은 경우엔 초기값이 잘 분포되어 있지 않으면 학습 전혀 진행되지 않은 경우O

 

 

오버피팅은 주로 다음의 두 경우에 일어남

  • 매개변수가 많고 표현력이 높은 모델
  • 훈련 데이터가 적음

[가중치 감소]

  • 오버피팅은 가중치 매개변수의 값이 커서 발생하는 경우 많음
  • 가중치의 제곱 노름을 손실 함수에 더함
  • λ = 정규화의 세기를 조절하는 하이퍼파라미터
  • 1/2 = 미분의 결과인 λW를 조정하는 역할
  • 오차역전파법에 따른 결과에 정규화 항을 미분한 를 더함

  • λ = 0.1 가중치 감소 적용
  • 훈련 데이터와 시험 데이터의 정확도 차이가 줄어듦(overfitting 억제)
  • 단, 훈련데이터 정확도 100% 도달 X

 

[드롭아웃]

  • 훈련 때 은닉층의 뉴런을 무작위로 골라 삭제
  • 시험 때는 모든 뉴런에 신호를 전달 (단, 각 뉴런의 출력에 훈련 때 삭제 안 한 비율을 곱합)

  • overfitting 억제 (단, 훈련데이터 정확도 100% 도달 X)

 

* 드롭아웃은 앙상블 학습과 밀접

  • 학습할 때 뉴런을 무작위로 삭제하는 행위를 매번 다른 모델을 학습시키는 것으로 해석
  • 추론 때는 뉴런의 출력에 삭제한 비율을 곱함으로써 앙상블 학습에서 여러 모델의 평균을 내는 것과 같은 효과

[검증 데이터 필요성]

  • 시험 데이터를 사용하여 하이퍼파리미터 조정하면 하이퍼파라미터 값이 시험 데이터에 오버피팅
  • 하이퍼파리미터 전용 확인 데이터 필요 = 검증 데이터

[하이퍼파라미터 최적화]

  • 핵심 = 하이퍼파라미터의 '최적 값'이 존재하는 범위를 조금씩 줄여간다는 것
  • grid search보다 무작위로 샘플링해 탐색하는 편이 좋은 결과를 낸다고 알려져 있음

 

[정리]

  • 매개변수 갱신 방법에는 확률적 경사 하강법(SGD) 외에도 모멘텀,AdaGrad, Adam 등이 있음
  • 가중치의 초깃값을 정하는 방법은 올바른 학습을 하는 데 매우 중요
  • 가중치의 초깃값으로는 'Xavier 초깃값'과 'He 초깃값'이 효과적
  • 배치 정규화를 이용하면 학습을 빠르게 진행할 수 있으며, 초깃값의 의존도가 덜함
  • 오버피팅을 억제하는 정규화 기술로는 가중치 감소와 드롭아웃이 있음
  • 하이퍼파라미터 값 탐색은 최적 값이 존재할 법한 범위를 점차 좁히면서 하는 것이 효과적임