경사 하강법과 문제점 (feat. 오차 역전파법)
경사 하강법
신경망을 학습하는 과정은 다음과 같다.
파라미터를 변경할 때마다 오차의 값이 달라진다. 이 값들을 모아서 그래프로 만든다.

그래서 이 과정을 평평한 부분에 도달할 때까지(미분값이 0이 될 때까지) 반복한다.
문제점
그런데 미분값이 0인 평평한 곳에 도달했는데, 그곳이 최소 오차 값이 아닌 곳일 수도 있지 않은가?
Momentum 방식
그래서 사용하는 것 중 하나가 Mementum 방식으로 관성을 이용하는 방식입니다.
유리구슬을 예시로 들자면, 이미 가속도가 붙은 구슬은 상승하는 경사를 마주해도 가속도가 남아있는 한 올라갈 수 있을 것입니다. 이러한 방식으로 골짜기를 벗어나는 방법을 사용합니다.
오차 역전파법
오파 역전파법에서 크게 두 단계로 나뉘는데, 첫번째 단계인 순방향 계산에서는 일반적으로 신경망을 따라 계산하여 예측 값을 출력합니다. 이때 다음 단계를 위해 중간 계산 결과를 각 뉴런에 저장해둡니다.
두번째 단계인 역방향 계산에서는 순방향 계산으로 얻은 예측 값과 실제 정답 간 오차를 구한 후 이를 바탕으로 미분을 계산합니다. 이렇게 계산한 미분 값은 신경망 화살표를 따라 역방향으로 전달됩니다. 각 뉴런은 순방향에서 저장되니 중간 계산 결과와 출력 뉴런에서 전달된 값을 사용하여 각 뉴런별로 파라미터에 대한 미분 값을 비교적 간단하게 계산할 수 있습니다. 그리고 이 결과를 다시 이전 뉴런으로 전달합니다.
정규화
신경망을 학습하는 과정에서 모델의 복잡성 때문에 과적합, 경사 소실, 경사 폭발 등 문제가 발생할 수 있습니다. 이러한 문제를 해결하는 방법 중 하나가 바로 정규화입니다.
드롭아웃
머신러닝에서 과적합 문제를 해결하려고 모델이나 손실 함수에 적용하는 모든 방법을 정규화라고 합니다. 신경망 방식은 일반적인 머신러닝보다 많은 파라미터를 가지고 있어 기존 정규화 방법만으로는 효과적으로 학습하기 어려웠습니다.
이 해결책으로 드롭아웃이 사용되기 시작했습니다. 드롭아웃은 학습 중에 뉴런을 무작위로 차단하는 방법입니다.
과적합은 학습 데이터에 과도하게 적응하여 입력의 작은 차이로 출력이 크게 변하는 현상입니다. 드롭아웃은 신경망 연결을 무작위로 차단함으로써 같은 데이터로 학습해도 뉴런 입력에 변동을 줍니다. 이렇게 하면 입력 데이터 변화에 대해 출력이 크게 변하지 않게 되어 과적합을 억제하는 효과를 얻을 수 있습니다.
- 과적합: 다리로만 걷는 법을 배운 사람, 다리가 없으면 못 걸음
- 드롭아웃: 다리가 없어져도 팔로 물구나무 서서 걸어다니는 사람
이렇게 입력 데이터가 변화해도 대응할 수 있는 것을 견고성이 있다고 합니다.
출처
https://compmath.korea.ac.kr/deeplearning/BackPropagation.html#id3
댓글 1개
테스트