https://youtu.be/mmk7dn2fIxE

- 머신러닝을 실제로 할 때 생각해 봐야 할 것들.

- 함수를 비선형으로 만들어주는 activation 함수들은 sigmoid, tanh, relu를 많이 씀.

- 뉴럴 네트워크에서는 sigmoid를 많이 썼음.
- 딥뉴럴 네트워크 들어오면서 gradient를 죽이는 문제로 인해 요즘은 잘 안 씀.
- 추가로 zero-centered output이 안 나오는게 문제

- sigmoid 함수 특성상 절대값이 5 정도만 넘어도 0에 가까운 결과가 나옴.
- 따라서 역전파 할 때 sigmoid 앞에 있는 레이어들은 학습이 잘 안되는 문제가 발생

- sigmoid가 zero-centered output이 안 나오기 때문에 결과의 부호를 못 바꿈
- 그렇기 때문에 오른쪽 아래 그래프처럼 optimal이 존재하는 경우 그 경로를 못 따라가고 지그재그로 따라가게 되서 비효율적.
- 물론 mini-batch로 묶고 평균 내서 하기 때문에 이런 경우는 많지 않음.
- 뉴럴 네트워크의 layer 깊이가 깊지 않을 때는 문제가 드러나지 않았는데, deep 뉴럴 네트워크가 되면서 문제가 드러남.
