https://youtu.be/4IJ9NmQSh0E
- 이전에 들었던 유사한 부분이 많기 때문에 간략히 정리. 상세 내용은 아래 페이지 참조
- 머신러닝은 Data-Driven 접근 방식이다.
- 활성화 함수에는 Sigmoid, tanh, ReLU를 많이 사용한다.
- Sigmoid는 처음에 많이 썼었고, 작은 네트워크에서는 잘 동작 함
- 그러나 Deep Neural Network 시대가 오면서 아래와 같은 이유로 잘 안 쓰임.
- gradient를 죽임
- zero가 center가 아님
- exp 연산이 비쌈
- 시그모이드 함수에서 input이 5이상의 큰 값이 들어오면 gradient가 0이 되게 됨.
- (이미지 중간의 분포도 참고, -5 ~ 5 사이의 분포는 적절한 값을 갖지만 그 범위를 벗어나게 되면 0에 가까운 값이 나옴)
- 엄밀히 말해 0에 가까운 값이 되지만 layer가 겹겹이 쌓여 있기 때문에 layer를 지나가면서 점점 0으로 수렴하게 됨.
- 때문에 layer를 점점 지나면서 학습이 이루어지지 않음
- sigmoid가 0-1 사이의 양수만 나오기 때문에 학습이 항상 양수 방향으로만 진행이 됨
- 오른쪽 아래 그래프와 같이 최적점이 우하향하는 경우 (파란 화살표) 학습은 우하향하는 방향으로 못가고 (+, +), (-, -)를 반복해서 학습이 됨 (빨간 화살표)
- 비효율적인 상황 발생
- 비효율적인 문제이므로 앞의 gradient를 죽이는 것보다는 덜 치명적인 문제