[문제]
우리는 AI모델 학습을 위해 학습 파라미터의 초기값
을 설정해야 합니다.
사실 학습 과정에서 변경될 값이기 때문에 그리 중요하지 않다고 생각하실지도 모르지만,
피어세션에서 언급된 것처럼 이러한 초기값
설정은 gradent descent
상황에서 출발 위치를 선정하는 것과도 같습니다.
다른 건 몰라도, 극소 값과 가까운 위치에서 초기화 된다면 학습이 빨리 끝나겠죠?!
물론 비용 함수가 극소 값이 되는 가중치 조합을 알고 학습을 시작하지는 않으니 이런 방법을 초기값 설정에 적용할 수는 없습니다만,
분명한 것은 초기값을 잘 설정하면 학습 비용을 줄일 수 있고, 이를 잘 설정하기 위한 연구들도 다양하게 존재합니다 (●'◡'●)
**그렇다면, 다음 중 초기값을 가장 잘 설정한 Case는 어떤 것일까요?
그리고 잘못된 Case에는 어떤 문제점이 있을까요?**
Case1 : 초기 가중치 벡터 값 설정을 모두 '0'
으로 설정하는 경우
Case2 : 초기 가중치 벡터 값 설정을 모두 '상수'
로 설정하는 경우
Case3 : 초기 가중치 벡터 값 설정을 모두 '무작위 값'
으로 설정하는 경우
Hint : 경사하강법(순한맛) pdf 27p에서는 초기값을 np.random.uniform(-2,2)
으로 주었습니다.
이것은 좋은 방법일까요!?
딥러닝 모델의 학습 과정
step 1 : 가중치 벡터 초기화
step 2 : 순전파 계산 및 예측값 출력
step 3 : 비용 함수 계산
step 4 : 오차 역전파 및 가중치 갱신
step 5 : 비용 함수 최소화까지 step2~4 반복
딥러닝 모델 학습이란?
가중치가 결과에 미치는 영향 = 기울기 = 미분값
을 계산하여
더 옳은 방향 = 모델 결과와 실제 값이 근사하도록 = loss/cost를 줄이는 방향
= 목적식을 최대(ascent)/최소화(descent) 하는 방향
으로 가중치를 업데이트하는 과정
[해설]
Case1 : 초기 가중치 벡터 값 설정을 모두 '0'
으로 설정하는 경우
Case2 : 초기 가중치 벡터 값 설정을 모두 '상수'
로 설정하는 경우
⇒ 만약 2층 신경망 가중치가 모두 '0'
이나 '상수'
라면?
모든 노드의 출력 결과가 같아짐 = 동일한 기울기를 갖게됨 = 오차 역전파 때 모든 가중치가 동일하게 갱신됨
Case3 : 초기 가중치 벡터 값 설정을 모두 '무작위 값'
으로 설정하는 경우 ⇒ 3개 case 중 Best
활성화 함수에 따른 초기값 설정
- 가중치 분포에서 표준 편차가 1인 정규분포를 사용,
활성화 함수로시그모이드 함수
를 사용하는 5층 신경망에 무작위로 생성한 입력데이터를 흘리며 각 층의 활성화값 분포를 그린 히스토그램
- 각 층의 활성화 값들이
0
과1
에 치우쳐 분포 - sigmoid 함수는 0과 1부근에서
기울기
소실
⇒ 가중치 표준편차를 0.01로 바꿈
0
과1
로 치우쳐지지는 않아기울기 소실
문제는 없음- but, 활성화 값이
0.5
부근에 치우쳐서 분포
⇒ **활성화 값들이 치우쳐졌다는 것**은 다수의 뉴런이 거의 같은 값을 출력하고 있으니 <br>뉴런을 여러개 둔 의미가 없어지게 된다는 의미 ⇒ `표현력 제한`
solution : 권장되는 가중치 초깃값
Xavier 초깃값
: 앞 계층의 노드 수가 $n$일 때 표준 편차가 ($1/√n$)인 가중치 분포
⇒ 앞 층에 노드가 많을수록 다음 노드의 초깃값으로 설정되는 가중치 표준 편차가 작아져서 가중치들이 중앙에 집중
⇒시그모이드 함수
, $tanh$ 함수
(좌우대칭, 중앙부근이 선형인 함수)일 때 사용
층이 깊어질 수록 형태가 일그러지긴 하지만, 뉴런들이 확실히 넓게 분포됨 ⇒ 표현력 증가
He 초깃값
: 앞 계층의 노드 수가 n일 때, 표준 편차가 √(2/n)인 가중치 정규 분포를 사용
⇒ 활성화 함수가렐루(ReLU)
함수일 때에 특화된 가중치 초깃값
1,2의 경우 0 부근에 활성화 값이 쏠림, He 초깃값은 모든 층에서 균일하게 분포
결론과 예시
활성화함수로 ReLU
를 사용할 때는 He 초깃값
을, sigmoid
나 tanh
함수를 쓴다면 Xavier 초깃값
을 쓰면 좋다 😎
MNIST 세트에 가중치 초깃값 지정 방식을 다르게 하여 학습 성능을 비교
- 표준 편차가 0.01인 정규분포 형태의 가중치 초깃값 모델은 기울기 소실 문제로 인해 아예 학습이 이루어지지 않음
Xavier
나He 초깃값
의 경우는 학습이 제대로 이루어지고 있는 것을 볼 수 있다.- 속도 면에서
He 초깃값
이 조금 더 빠르게 나타남
레퍼런스
'Undergraduate > ML & DL' 카테고리의 다른 글
[Research] 문헌조사① : Face Mask Detection (0) | 2020.09.19 |
---|---|
[winSCP] 서버 사용 시 유용한 프로그램 (0) | 2020.05.20 |
[Face Recognition] 얼굴 인식 출입, 어떻게 하는걸까? (0) | 2020.05.20 |
[PyTorch tutorial] 컴퓨터 비전(Vision)을 위한 전이학습(Transfer Learning) (0) | 2020.05.14 |
[GPU] 다수의 GPU 중 원하는 GPU 타겟팅하기 (0) | 2020.05.13 |