신경망 학습 기술

m0ng5he1l·2022년 7월 6일
0

딥러닝 공부

목록 보기
5/7
post-thumbnail

매개변수 갱신 기법

  • 최적화(Optimization) : 신경망 학습의 목적인 손실 함수의 값을 최대한 낮추는 매개변수의 최적값을 찾는 것
  1. 확률적 경사 하강법(SGD) : 매개변수의 기울기를 갱신하며 최적값을 찾는 방법
    • SGD의 단점 : 비등방성(Anisotropy) - 방향에 따라 기울기가 달라져 탐색 경로가 비효율적
  2. 모멘텀(Momentum, 운동량)
    • W : 가중치 매개변수
    • ∂L/∂W : W에 대한 손실 함수의 기울기
    • η : 학습률
    • v : 속도
    • 기울기 방향으로 힘을 받아 물체가 가속된다는 물리법칙. 마치 공이 곡면을 따라 구르는 듯함
    • SGD보다 최적값에 x축 방향으로 빠르게 다가감
  3. AdaGrad : 학습률을 점차 줄여가기 위해 각각의 매개변수에 맞춤형 값을 만들어주는 것
    • ⊙ : 행렬의 원소별 곱셈
    • 매개변수의 원소 중에서 많이 움직인 원소는 학습률이 낮아짐. 즉, 학습률 감소가 매개변수의 원소마다 다르게 적용됨
    • 최적값으로의 y축 방향 갱신 강도가 빠르게 약해지며 효율적으로 움직임
  4. Adam : 모멘텀과 AdaGrad의 기법을 융합한 듯한 기법
    • 모멘텀처럼 곡면을 따라 움직이며, 학습의 갱신 강도는 AdaGrad처럼 적응적으로 조정됨
  • 갱신 방법 선택 : 각자의 장단점이 있어 상황을 고려하여 시도해야 함

가중치의 초깃값

  • 가중치 감소(Weight Decay) : 오버피팅을 억제해 범용 성능을 높이는 기술. 즉, 가중치 값을 작게 하여 가중치 매개변수의 값이 작아지도록 학습하는 방법
  • If 초깃값을 모두 0으로 설정하면? : 오차역전파법에서 모든 가중치의 값이 똑같이 갱신되기 때문에 안된다. (= 가중치를 균일한 값으로 설정하면 안됨) 그러므로 초깃값을 무작위로 설정해야 함
  • 은닉층의 활성화값 분포 : 활성화값이 한 곳으로 치우치면 표현혁을 제한하여 아무리 뉴런이 많아도 거의 같은 값을 출력함. 그러므로 적당히 고루 분포되어야 함
  1. Xavier 초깃값 : 일반적인 딥러닝 프레임워크들이 표준적으로 이용하는 가중치 초깃값.
    • 앞 계층의 노드가 n개일 때 표준편차가 1/n\sqrt{1/n}인 정규분포를 사용
    • 층이 깊어지면서 활성화값이 넓게 분포되어 학습이 효율적으로 이뤄짐
  2. He 초깃값 : ReLU에 특화된 초깃값.
    • 앞 계층의 노드가 n개일 때 표준편차가 2/n\sqrt{2/n}인 정규분포를 사용
    • ReLU에서 Xavier 초깃값을 사용할 시 활성화값의 치우침이 커지며, 기울기 소실 문제를 일으킬 수 있음
  • 초깃값 선택 : 활성화 함수에 따라 ReLU일 때는 He 초깃값, Sigmoid나 tanh 등의 S자 모양 곡선일 때는 Xavier 초깃값을 사용하는 것이 적절

배치 정규화 (Batch Normalization)

  • 배치 정규화 : 각 층에서의 활성화값이 적당히 분포되도록 함
    • 이를 위해 배치 정규화 계층을 신경망에 삽입
    • 학습 시 미니배치 단위(데이터 분포 평균 : 0, 분산 : 1)로 정규화함
  • 배치 정규화된 데이터에 고유한 확대(Scale)와 이동(Shift)을 수행하여 적합한 값으로 조정해감
  • 배치 정규화의 장점
    • 학습 속도 개선
    • 초깃값에 크게 의존하지 않음
    • 오버피팅 억제

오버피팅

  • 오버피팅 : 신경망이 훈련 데이터에만 지나치게 적응되어 그 외의 데이터에 제대로 대응하지 못하는 상태
  • 오버피팅이 주로 일어나는 경우
    • 매개변수가 많고 표현력이 높은 모델
    • 훈련 데이터가 적을 때
  • 오버피팅을 억제하는 방법
    • 가중치 감소 : 큰 가중치에 대해서 그에 따른 큰 페널티를 부과하는 방법
    • 드롭아웃(Dropout) : 훈련 때 은닉층의 뉴런을 임의(무작위)로 삭제하며 학습하는 방법. 시험 때에는 모든 뉴런에 신호를 전달하며 각 뉴런의 출력에 훈련 때 삭제 안 한 비율을 곱하여 출력

하이퍼파라미터

  • 하이퍼파라미터 - 각 층의 뉴런 수, 배치 크기, 매개변수 갱신 시 학습률과 가중치 등
  • 시험 데이터를 사용하여 하이퍼파라미터를 조정하면 하이퍼파라미터 값이 시험 데이터에 오버피팅되므로, 하이퍼파라미터의 성능을 평가할 때에는 시험 데이터를 사용하면 안됨
  • 검증 데이터(Validation Data) : 하이퍼파라미터 조정용 데이터로, 하이퍼파라미터의 적절성을 평가하는 데이터
    • 훈련 데이터 : 매개변수 학습
    • 검증 데이터 : 하이퍼파라미터 성능 평가
    • 시험 데이터 : 신경망 범용 성능 평가
  • 하이퍼파라미터 최적화 과정
    1. 하이퍼파라미터 값 범위 설정
    2. 설정한 범위 내에서 하이퍼파라미터 값을 무작위로 추출
    3. 추출한 값을 사용하여 학습하고, 검증 데이터로 정확도 평가 (단, 에폭은 작게 설정)
    4. 2, 3단계를 특정 횟수 반복하여 정확도를 보며 하이퍼파라미터의 범위를 좁혀나감
profile
통통

0개의 댓글

관련 채용 정보