매개 변수의 갱신
신경망 학습의 목적은 손실함수의 값을 가능한 낮추는 매개변수를 찾는 것이다. 이는 곧 매개 변수의 최적 값을 찾는 문제이며, 이러한 문제를 푸는 것을 최적화(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
'Computer Science > Artificial Intelligence' 카테고리의 다른 글
신경망 학습이란 무엇인가?[밑바닥 딥러닝] (0) | 2018.10.06 |
---|---|
인공신경망이란 무엇인가 (0) | 2018.09.16 |
퍼셉트론이란 무엇인가 (0) | 2018.09.16 |