신경망을 이용하면 인공지능이 금방 완성될 것 같았지만 그건 아니었다.
가중치 수정 시엔 기울기가 필요하다. 하지만 층이 늘어나면서 역전파를 통해 전달되는 기울기의 값이 점점 작아져서 기울기 소실(vanishing gradient)문제가 발생하기 시작했다.
시그모이드 함수의 미분 값은 최대치가 0.25이다

그래서 기울기 소실을 막기 위해 활성화 함수를 여러 함수로 대체하기 시작했다
기울기가 여전히 1보다 작은 값이 존재하므로 기울기 소실 문제가 사라지지 않음
ReLU

토론토대의 제프리 힌튼 교수가 제안한 렐루 함수, 현재 가장 많이 사용되는 활성화 함수
은닉층을 거치더라도 x가 0보다 크다면 미분값이 1이 되기에 여러 은닉층을 거쳐도 문제 없음
softplus

렐루가 0이 되는 순간을 완화한 소프트플러수 함수
기존의 경사 하강법은 불필요하게 많은 계산량으로 속도를 느리게 만들었다. 또한 최적 해를 찾기 전에 최적화 과정이 멈출 수 있다. 이를 보완하기 위한 고급 경사 하강법이 등장했다
확률적 경사 하강법 (SGD)
Stochastic Gradient Descent
효과 : 속도 개선
랜덤하게 추출한 일부 데이터를 사용해 더 빨리, 자주 업데이트 하도록 해줌
전체 데이터를 사용하는 것이 아니라 랜덤하게 추출한 일부 데이터를 이용하여 경사 하강법의 단점을 보완할 수 있다. SGD는 중간 결과의 진폭이 크고 불안정해보일 수 있지만 빠른 속도로 최적 해에 근사한 값을 찾아내는 것이 가능하다.
모멘텀(momentum)
관성의 방향을 고려해 진동과 폭을 줄이는 효과를 보임
관성, 탄력, 가속도라는 뜻을 가진 단어
모멘텀 SGD는 경사 하강법에 탄력을 주는 것이다
경사 하강법에서 매번 구한 기울기로 오차를 수정하기 전에
바로 앞 수정 값과 방향(+, -)을 참고하여 같은 방향으로 일정한 비율만 수정할 수 있도록 하는 방법이다. 수정 방향이 양의 방향, 음의 방향 한 번 지그재그로 일어나는 현상이 줄어들 수 있다. 이전 이동 값을 고려하기에 '관성의 효과'를 낼 수 있다

네스테로프 모멘텀 (NAG)
nesterov
효과 : 정확도 개선
모멘텀이 이동시킬 방향으로 미리 이동해서 그레이디언트를 계산하고, 불필요한 이동을 줄이는 효과를 가져온다
아다그라드 (Adagrad)
효과 : 보폭 크기 개선
변수의 업데이트가 잦으면 학습률을 적게하여 이동 보폭을 조절하는 방법
RMSProp
효과 : 보폭 크기 개선
아다그라드(Adagrad)의 보폭 민감도를 보완한 방법
아담(Adam)
효과 : 정확도와 보폭 크기 개선
momentum + RMSProp
현재 아담이 가장 많이 사용되는 고급 경사 하강법이다