쉽게 배우는 경사하강 학습법
어떤 손실 함수를 사용하느냐에 따라서 학습이 어떻게 이루어질 것인지, 그리고 학습을 할 때 정답의 형태를 결정하기 때문에 손실 함수는 중요하다!
- Traning Data를 Model에 입력해 우리가 학습시키고자 하는 Trainable Parameters를 얻게 되는데
Trainable Parameters
들을inputs
으로 보고outputs
을 학습결과인Loss Function
으로 생각하면,알고리즘 학습은 입력을 바꿔가면서, 출력값이 점점 작아지게 하는 것이라고 볼 수 있다.
- 결국 알고리즘 학습은 입력을 바꿔가면서, 출력값이 점점 작아지게 하는 것이라는 관점에서
최적화 이론의 목표와 동일
하다는 사실을 알 수 있다.
경사 하강 학습법
무차별 대입법
은 범위를 알아야하고 범위를 안다해도 step을 촘촘히 조사해야 하므로계산 복잡도가 높다
.적게 대입해 보고 답을 찾을 수 있는 방법을 생각하다 최적화 알고리즘이 발전 하게 되었다.
최적화 이론과 수학적 표현
- 수치적 방법의 대표적인 방법이 경사하강법이다.
심화 경사 하강 학습법
- 경사하강 학습법의 단점들을 극복한 알고리즘에 대해서 알아보자.
- 경사하강법은 안장점에서 기울기가 0이 되므로 벗어나지 못하게 되는 문제점이 있다.
이동 벡터가 이전 기울기에 영향을 받도록 하는 방법 이전의 속도에 영향을 받는 방법이라고 할 수 있다.
장점 :
Local minimum과 noise에 대처 가능
단점 :
경사하강법은 단순히
xt−1이동벡터(
vt)를 추가로 사용하므로, 경사 하강법 대비 2배의 메모리를 사용
변수별로 learning rate가 달라지게 조절한다.
예를 들어서 x=[x1,x2,x3,…,xn]이 존재할때 어떤 변수는 기울기를 크게 가져가고 어떤 변수는 기울기를 작게 가져갈 경우처음에 기울기를 크게 가져가지 못한다면 local minimum에 빠지기 쉬운 문제점이 있다.
이런 문제점을 해결하고자 변수별로 learning rate를 다르게 가져가는 알고리즘인 Ada Grad 탄생된 것이다.장점 : gt가 누적되어 커진 것은 학습이 그만큼 많이 된 것이므로
학습이 많이 변수는 학습율을 감소시켜, 다른 변수들이 잘 학습되도록 한다.
단점 : gt
가 계속해서 커져서 학습이 오래 진행되면 learning rate가 0ㅇ에 가까워지므로 더이상 학습이 이루어지지 않는 단점이 있다.
- gradient의 크기를 제곱한 벡터(gradient벡터의 L2-norm)를 누적합을 해서 적게 학습되는 변수들을 더 학습시켜 주도록했지만
epoch나 batchsize등 반복 시키는 parameter의 value가 높아질수록 오래 진행되어 누적합이 커지게 되면 더 이상 학습이 되지 않는 문제점을 개선한 방법
이다. 위의 식에서 γ값은 0~1값을 갖게 되며, 이 값을 통해 이전의 gradient 누적합을 감소시키는 효과를 주면서 새로운 gradient의 값을 쫓아갈 수 있도록 개선하였다. 그러므로, 변수 간의 상대적인 학습율 차이는 유지하면서
gt가 무한정 커지지 않아 학습을 오래 할 수 있다.
RMSprop과 Momentum의 장점을 결합한 알고리즘이다. 대부분의 코드에 이 Adam optimization을 사용한다.
경사 하강법을 이용한 얕은 신경망 학습
1 | # 경사 하강법을 이용한 얕은 신경망 학습 |