
m 개의 훈련 세트를 효과적으로 계산하기 위해 Vetorization

번째 Mini-batch
번쨰 training set :
미니 배치 경사 하강법에서는 전체적으로 봤을떄는 비용 함수가 감소하는 경향을 보이지만 많은 노이즈가 발생한다.
mini batch 하나가 전체 X 를 대변하진 못하기 떄문에 예를 들어서 mini batch 하나를 가지고 계산한 1번이
J 를 minimize 하기 위해서 w 의 값을 떨어뜨렸는데 다음 mini batch 2번을 봤더니 1번에서 했던 업데이트 방향이 2번에서는 결코 좋은 방향은 아닐 수 있기 떄문에 다소 지저분한 그래프 모양이 나올 수 있는 것이다.
미니 배치 사이즈를 어떻게 선택하는지에 따라 학습 속도의 차이가 나기에 최적의 값을 찾아내는 것이 중요하다.

Exploitation (사용)
Exploration (탐색)
우리의 Loss function 은 더이상 convex 가 아닌 험난한 산. 험난한 산에서 끝까지 내려가 global optima 를 발견해야 한다. 단순 GD 만으로는 이것이 불가능하기 때문에 학자들이 GD 를 개선하여는 연구 (Optimazation algo) 를 많이 해왔다. 따라서 이 두가지를 동시에 갖고 균형을 맞춰 사용하여 GD (Gradient Descent) 를 개선할 수 있다.
미니 배치 사이즈 결정
일반적인 최적화 문제
contraint 가 없는 이 문제를 gradient descnet 알고리즘으로 NN 를 풀었다.
이는 는 convex 일떄만 적용되었다, 하지만 우리가 풀 문제는 convex 하지 않은 경우가 많기 떄문에
1년 동안의 온도 변화를 구해서 평균을 구하면 다음 모양이 나온다.
이렇게 되면 빨간색 선처럼 평균값을 나타낼 수 있다.

(현재 평균값) (weight) (바로 이전 step 의 평균값) (weight) (현재 관찰값)
는 하이퍼 파라미터로 최적의 값을 찾아야 하는데, 보통
는 기간 동안 기온의 평균을 의미
과거 평균값에 큰 weight 를 줄수록 오랜시간의 평균을 나타낸다.
과거 평균에 적은 weight 를 줄수록, 현재 관찰값에 더 많은 weight 를 주는 것과 같기 떄문에, 짧은 기간의 평균

의 식을 전부 풀어서 정리하면,
weight 가 예를 들어서 0.9 라면, 과거로 가면 갈 수록 weight 가 작아짐
그래프상에서 만약 현재값이 이라면 과거에서 현재로 갈수록 weight 들이 증가하는 것을 볼 수 있다.

repeat {
Get next
}
왜 moving average 말고 이 식을 사용해서 평균값을 구하는지?
moving average 의 경우 예를 들어서 5일 평균을 구하라 했을 때 5일의 관찰값 들을 다 저장하고 있어야 하지만
의 경우 과거 평균값 하나()만 계속 저장하면 되기 떄문에
지수 가중 이동 평균의 장점은 구현 시 적은 메모리를 사용한다는 것이다.
즉, 어떤 초반 부분에 어떤 데이터가 충분히 모이기 전에 이 값이 평균값보다 현저히 떨어지는 경향을 보이기 때문에 다음 식 사용
는 0.9 정도로 생각했을때 분모를 살펴보자
t 가 적을떄는 가 크기 때문에 분모가 작아지게 되어 값이 커지게 된다
따라서, 초반에 v 값을 boosting 하는 역할을 한다.
그런데 만약 t 가 크다면 (t=50), 가 굉장히 0에 가까워지게 되면 결국 이 식은 로 회귀 하게 된다.

모멘텀이 있는 알고리즘은 일반 경사하강법보다 빠르다
최적화를 위해 기존의 GD 식 를 구하는 방법을 바꾸고자 한다.
이 부분을 gradient 를 쓰는게 아니라 gradient 의 평균값을 사용할 것이다.
알고리즘은 다음과 같다.
모멘텀의 장점은 매 단계의 경사 하강 정도를 부드럽게 만들어준다.
설명

알고리즘
업데이트
RMSProp 의 장점은 미분값(gradient)이 큰 곳에서는 업데이트 시 큰 값으로 나누어 주기 떄문에 기존 학습률 보다 작은 값으로 업데이트 된다.
따라서 진동을 줄이는데 도움이된다.
반면 미분값이 작은 곳에서는 업데이트시 작은 값으로 나누어 주기 떄문에 기존 학습률 보다 큰 값으로 업데이트 된다.
이는 더 빠르게 수렴하는 효과를 불러온다.


작은 미니 배치 일수록 잡음이 심해서 일정한 학습률이라면 최적값에 수렴하기 어려운 현상을 볼 수 있다.
학습률 감쇠 기법을 사용하는 이유는 점점 학습률을 작게 줘서 최적값을 더 빨리 찾도록 만드는 것이다
다양한 학습률 감쇠 기법들이 존재.
1 epoch 전체 데이터를 1번 훑고 지나가는 횟수
(exponential dacay 라 부름)
step 별로 를 다르게 설정.

