매개 변수의 갱신


신경망 학습의 목적은 손실함수의 값을 가능한 낮추는 매개변수를 찾는 것이다. 이는 곧 매개 변수의 최적 값을 찾는 문제이며, 이러한 문제를 푸는 것을 최적화(Optimization)라고 한다.




1. 확률적 경사 하강법(SGD)

1.1 개요

  


여기서 X는 갱신할 가중치 매개변수고

라운드 f / 라운드 x0 는 손실함수의 기울기 이다.


SGD는 기울어진 방향으로 일정 거리만 가겠다는 단순한 방법이다.

class SGD:
def __init__(self,lr=0.01):
self.lr=lr

def update(self,params,grads):
for key in params.keys():
params[key]-=self.lr*grads[key]

초기화 할때 받은 인수인 lr(learning rate)를 뜻한다.
이 학습률을 인스턴스 변수로 유지하고,
upgrade() 메서드로 SGD 과정에서 반복해서 불린다.


1.2 단점 

SGD는 단순하고 구현도 쉽지만, 문제에 따라서는 비효휼적일 때가 있다.


SGD의 단점은 비등방성(방향에 따라 성질, 즉 기울기가 달라지는 ) 함수에서는

탐색 경로가 비효율적이라는 것이다.




1.3 단점 개선 방법


1. 모멘텀




2. AdaGrad 





3. Adam



+ Recent posts