9장 오차 역전파에서 딥러닝으로
- 다층 퍼셉트론의 한계 : 은닉층에 포함된 가중치를 업데이트할 방법이 없다. → 오차 역전파 등장
9.1 딥러닝의 태동, 오차 역전파
- 실제값과 오차를 확인하여 가중치를 업데이트하는 방법은 경사 하강법
- 은닉층이 생김으로써 경사 하강법을 2번 이상 실행하게 되며 가중치를 두 번 이상 업데이트 해야 함
- 한 번의 순전파가 일어나고 이때 각 가중치의 초깃값이 정해짐, 실제값과 출력층값의 오차를 계산
- 오차를 최소화시키기 위해 첫 번째 가중치 수정
- 두 번째 가중치 수정
- 각 가중치를 업데이트하기 위해서는 오차 공식을 구하고 각 가중치에 대해서 편미분 해줘야 함
- 은닉층의 실제값은 알 수 없기 때문에 w11과 같은 가중치를 통한 계산된 값인 yh1과의 오차를 구할 수 없음
- w31의 가중치 값은 y01의 값과만 관련이 있지만, w11의 경우 y01, y02 둘 다 관여되어 있기 때문에 오차 두 개를 모두 계산해 편미분해야 함
- 'out(1-out)' 형태를 취한 식을 델타식이라고 함
9.2 활성화 함수와 고급 경사 하강법
- 시그모이드 함수의 특성으로 깊은 층의 경우 가중치 업데이트가 처음 층까지 전달되지 않는 현상 발생
- 시그모이드 함수의 미분 값은 0보다 작으므로 곱할수록 0에 가까워져 역전파를 진행할수록 기울기가 소실됨 → 렐루(ReLu) 함수 도입
- 렐루 함수는 0보다 큰 값에서는 미분하면 항상 1 값을 가짐
- 그 이후로도 하이퍼볼릭 탄젠트, 소프트플러스 함수 등 더 나은 활성화 함수 등장
9.3 속도와 정확도 문제를 해결하는 고급 경사 하강법
- 경사하강법의 단점은 계산량이 많아 속도가 느리고 최적 해를 찾기 전에 최적화 과정이 멈출 수 있음 → 확률적 경사 하강법 (Stocahstic Gradient Descent, SGD) 등장
- SGD는 랜덤하게 추출한 일부 데이터만 사용하여 빠르고 더 자주 업데이트 할 수 있음
- 모멘텀
- 경사하강법에 탄력을 더해주는 것
- 오차 수정 전 값과 방향을 참고해 같은 방향으로 일정한 비율만 수정되게 하는 방법
- 현재에는 정확도와 속도를 모두 향상시킨 아담(adam)이라는 고급 경사 하강법이 가장 많이 쓰이고 있음
'데이터 > 딥러닝' 카테고리의 다른 글
[모두의 딥러닝] Chapter 4 | 딥러닝 기본기 다지기 - 모델 성능 향상시키기 (0) | 2023.02.14 |
---|---|
[모두의 딥러닝] Chapter 4 | 딥러닝 기본기 다지기 - 모델 성능 검증하기 (0) | 2023.02.14 |
[모두의 딥러닝] Chapter 4 | 딥러닝 기본기 다지기 - 모델 설계, 다중분류 문제 해결 (0) | 2023.02.13 |
[모두의 딥러닝] Chapter 3 | 신경망의 이해 - MLP (0) | 2023.02.04 |
[모두의 딥러닝] Chapter 3 | 신경망의 이해 - 퍼셉트론 (1) | 2023.02.04 |