해결된 질문
작성
·
489
0
안녕하세요 교수님!
섹션 2의 딥러닝 모델에서 활성화 함수의 적용 강의에서 의문점이 생겨서 작성합니다.
Sigmoid 함수의 특성에서 평균값이 0.5, 즉 0이 아니라서 Gradient Update가 지그재그 형태로 발생한다고 하셨는데.. 이 부분이 이해가 잘 되지 않습니다.
입력값의 크기가 양으로 크거나 음으로 클 때 기울기가 0에 가까워서 Gradient Update가 적어진다는 것은 알겠습니다. 하지만 입력값을 넣었을 때의 시그모이드 출력값의 평균과 Gradient Update가 어떤 관계인지가 이해가 되지 않습니다ㅜ
시그모이드를 미분한 함수가 시그모이드 출력값을 입력값으로 넣는게 아닌데... 왜 지그재그로 발생하는 것인가요.....?
감사합니다!
답변 1
0
안녕하십니까,
음, 질문하신 부분이 글로 설명하기에는 좀 복잡한 부분이 있습니다.
입력값과 가중치가 결합된 출력 값에서 sigmoid가 적용된 결과 값이 0이 중심이 아닌 값들로( 예를 들어 0.5) 최종 출력이 되게 됩니다. 그러니까, sigmoid 입력 전 값이 0이 중심( 예를 들어-1 ~ 1 사이) 이더라도 sigmoid 출력값은 언제나 0 보다 크게 됩니다.
이렇게 sigmoid를 통과한 최종 출력값이 언제나 0보다 크게 되면 Backpropagation 시 Deep learning 의 가중치 Layer들의 업데이트 값들이 모두 동일한 부호, 즉 모두 + 이거나 모두 -가 되게 됩니다.
즉 2개의 가중치 layer가 있는 모델(w1, w1가)이라고 할 때 가중치 w1, w1의 업데이트가 모두 +이거나 모두 -가 되게 됩니다. 이걸 식으로 좀 보여드리면 좋을 텐데, 글로 답하기가 어려워서 아래 URL 사이트를 대신 참조해 보시면 좋을 것 같습니다.
https://nittaku.tistory.com/267
요약 드리면 Backpropagation으로 update 될 때마다 모든 가중치들이 + 방향성으로 업데이트 되거나, 또는 - 방향성으로 업데이트 됩니다. 이렇다보니 + 방향성으로 업데이트 될때는 우상향 방향으로, - 방향성으로 업데이트 될때는 좌하단 방향으로 가중치들이 업데이트 되다 보니까, Backpropagation 으로 가중치 값이 업데이트 될 때마다 큰 폭으로 왔다갔다 하는 방향성으로, 즉 지그재그 방향성으로 가중치 값들이 업데이트 되는 현상이 발생하게 됩니다.
감사합니다.
감사합니다!