Notice
Recent Posts
Today
Total
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
관리 메뉴

나름개발블로그

Hands-On ML 11장 본문

A/ML

Hands-On ML 11장

성남개발자 2020. 9. 24. 15:49

Chapter 11

심층 신경망 훈련하기

훈련중에 그레이디언트 소실 , 폭주 등과 같은 문제에 직면 할 수 있다.

그레이디언트 소실과 폭주 문제

경사 하강법이 하위층의 연결 가중치를 변경되지 않은 채로 두는 문제 를 그레이디언트 소실이라고한다.

그레이디언트가 점점 커져서 여러층이 비정상적으로 큰 가중치로 갱신되는 현상을 그레이디언트 폭주라 고한다 (순환 신경망에서 주로 보임)

글로럿과 He 초기화

(앞쪽 수학적인 요소들은 한번쓱 읽어보고 넘어감 ...)

케라스는 기본적으로 균등분포의 글로럿 초기화를 사용한다.

#kernel_initailizer 값 조절로 He 초기화를 사용 할 수도 있다. 
keras.layers.Dense(10,activation='relu',kernel_initializer="he_normal")

수렴하지 않은 활성화 함수

글로럿과 벤지오의 2010년 논문에서 얻은 통찰 중 하나는 활성화 함수를 잘 못 선택하면 자칫 그레이디언트 소실이나 폭주로 이어질 수 있다는 것이다.

ReLU는 완벽하지 않다.ReLU 의 변종을 사용함LeackyReLUa(z)=max(az,z)LeackyReLU_a(z) = max(az,z)

  • LeakyReLU : 하이퍼 파라미터aa 가 leack 정도를 겨정하여 절대 죽지 않게 만들어줌
  • RReLU : 주어진 범위에서 무작위 a 를 선택
  • PReLU : a 가 후련하는동안 학습된다.

ELU(exponential linear unit)라는 새로운 활성화 함수 등장

  • 단점으로 ReLU나 그 변종들 보다 계산이 느리다. ( 지수함수 사용으로)
  • SELU , ELU 의 변종으로 다른 활성화 함수보다 종종 뛰어난 성능을 보여주나, 자기 정규화가 일어나기 위한 몇가지 조건들이 있다.

배치 정규화

ELU(또는 다른 ReLU 변종)와 함께 He 초기화를 사용하면 훈련 초기 단계에서 그레디언트 소실이나 폭주 문제를 크게 감소시킬 수는 있지만 훈련중에 발생하지 않으리란 보장이 없다.

그레이디언트 소실과 폭주 문제를 해결 학위 휘한 배치 정규화 기법이나옴 (batch nomalization)

각 층에서 활성화 함수를 통과하기 전이나 후에 모델에 입력을 원점에 맞추고 정규화한 다음 각 층에서 두개의 새로운 파라미터로 결과 값을 스케일 하고 조정하는 연산을 추가한다.

학습시 배치 정규화 층마다 네 개의 파라미터 벡터가 학습된다. (,.....)

눈문 저자들은 활성화 함수 이후 보다 활성화 함수 이전에 배치 정규화층을 추가하는 것이 좋다고 조안한다. (논란이 있다.)

그레이디언트 클리핑

그레이디언트 폭주 문제를 하기위헤 역전파 될때 일정 임계값을 넘지 못하게 그레이디언트를 잘라내는 것 ! 이것이 크레이디언트 클리핑(gradient clipping)

순한신경망은 배치노말을 적용하기 어려워 이방법을 많이쓴다.

케라스에서 쓰려면 clipcvalue, clipnorm 변수를 지정하면된다.

사전훈련된 층 재사용하기

전이 학습(transfer learning) 신경망의 층을 재사용하는 것

재사용할 층 개숫를 잘 선정하는 것이 필요하다.

비지도 사전 훈련

보조 작업에서 사전 훈련

고속 옵티마이져

큰 신경망 훈련 속도는 심각하게 느릴 수 있다.

모멘텀 최적화

이전 그레이디언트 값을 가지고 계산한다. 속도가 빠르다

단점으로는 튜닝할 하이퍼파라미터가 하나 늘어나는 것이다.

네스테로프 가속 경사

AdaGrad

가장 가파른 차원을 따라 그레이디언트 벡터의 스케일을 감소시키는 방식으로 작동

간단한 2차 방정식 문제에 대해서는 잘 작동하지만 신경망을 학습할때 일찍 멈추는 경우가 있다.

RMSProp

아주 간단한 문제를 제외하고는 한상 AdaGrad 보다 성능이 좋다.

Adam 과 Nadam 최적화

Adam 은 적응적 모멘텀 추정 (adaptive moment estimation) 을 의미 한다.

  • AdaMax
  • NAdam

     

     

학습률 스케줄링

일정한 학습률보다 , 큰 학습률로 시작하고 학습 속도가 느려질떄 학습률을 낮추는 전략을 학습스케줄이라고 한다.

  • 거듭제곱 기반 스케줄링
  • 지수기반 스케줄링
  • 구간별 구정 스케줄링
  • 성능 기반 스케줄링
  • 1 사이클 스케줄링

규제를 사용해 과대적합 피하기

l1,l2 규제

Dropout

매 훈련 스텝에서 각 뉴런은 임시적으로 드랍아웃 될 확률을 가진다.

훈련이 끝난후에는 드랍아웃을 적용하지 않는다

몬테 가를로 드롭아웃

맥스-노름 규제

요약 및 실용적인 가이드라인

 

 

'A > ML' 카테고리의 다른 글

Hands-ON ML 15장  (0) 2020.10.04
Hands-On ML 14장  (0) 2020.09.27
Hands-On ML 10장  (0) 2020.09.22
Hands-On ML 9장  (0) 2020.09.21
Hands-On ML 8장  (0) 2020.09.16
Comments