저번 강의에서는 back-propagation 의 문제점이 어떻게 해결되었고,
그 결과 neural network 가 어떻게 발전하였는지 알아보았다.
이제 계속해서 인공 신경망의 결과를 더욱 좋게 만들기 위해
발전이 이루어지기 시작했다.
그 중 하나는 초깃값을 어떻게 잡는지에 관련되어있다.
Geoffrey Hinton은 당시 초깃값을 stupid way로 설정했다라고 말했다.
초깃값이 인공신경망의 학습에 시작이 되는만큼 얼마나
중요한 역할을 하는지를 나타내는 대목이다.
예를들어 특정 층의 초깃값을 0으로 설정한다면
역전파 시 어느 순간부터 0이 전달되기 시작할 것이다.
즉 역전파를 방해하는 요소가 된다.
그렇게 첫 번째로 고안된 것이
"Restricted Boatman Machine" 이다.
이 방법은 forward 방향으로 먼저 업데이트를 진행하고,
이후 backward 방향으로 또 업데이트를 하는 방식이다.
이런식으로 초깃값을 미리 구해두면 랜덤하게 설정하는
초깃값보다 더 좋은 모델을 만들어 낼 수 있을 것이다.
하지만 층이 늘어날수록 이 과정이 복잡해지기 때문에
더 간단한 새로운 방법들이 등장했다.
"Xavier initialization"
"He's initialization"
이 대표적이다.
예전 자료이기는 하지만, CIFAR-10 데이터 셋에
이전에 배운 activation function과 초깃값 설정 방법을 적용한 결과이다.
하지만 아직도 연구중인 분야이고 어떻게 초깃값을 설정하는 것이
가장 효율적인지는 확실하지 않다.
"Batch normalization" 이나 "Layer sequential uniform variance" 등과 같은
새로운 알고리즘도 만들어지고 있으니 여러 방법을 써보면서 특징같은 부분을
알아두는 것도 좋을 것 같다.
'딥러닝 > 모두를 위한 딥러닝 시즌1' 카테고리의 다른 글
[모두를 위한 딥러닝 시즌1] Lec11-01. ConvNet의 Conv 레이어 만들기 (2) | 2024.02.10 |
---|---|
[모두를 위한 딥러닝 시즌1] Lec10-03. Dropout과 앙상블 (3) | 2024.02.10 |
[모두를 위한 딥러닝 시즌1] Lec10-01. ReLU activation function (4) | 2024.02.10 |
[모두를 위한 딥러닝 시즌1] Lec09. XOR 문제 딥러닝으로 풀기 (1) | 2024.02.10 |
[모두를 위한 딥러닝 시즌1] Lec08. 딥러닝: 시작과 XOR 문제, Back-propagation (2) | 2024.02.10 |