어떻게 cost 가 낮은 weight를 구할 수 있을까?
0단계 Hypo 폼 결정 y = w1x + w0(bias)
1단계 초기값 설정 y = 7x + 3
2단계 cost 확인
3단계 weight update
weight update를 어떻게 하는지.
update 하는 방향이 있어야되지 않냐.
특정 weight가 특정 cost를 가지게 된다.
weight와 cost 간의 어떤 관계가 성립된다.
관계 -> 함수.
cost는 weight에 의한 함수다.
적절한 기울기일 때 cost가 최소이다.
그 순간의 cost와 weight 관계에서 기울기를 계산해서 이동할 방향을 알 수 있다.
cost가 감소해야되는 상황은 고정. 그게 목적이니까.
기울기가 양수일 경우 둘의 방향이 같다. cost가 감소해야되는 상황이니까 감소방향.
기울기가 음수일 경우 둘의 방향이 다르다. cost가 감소해야되는 상황이니까 증가방향.
Gradient 기울기 G
현재 weight: Wt
W(t+1) <- Wt - G
기울기를 뺄 때의 방향은 맞는데 크기가 문제일 경우가 있다.
기울기에 작은 수를 곱한다.
W t+1 <- W t - aG
a : learning rate 학습률
G = 0이 될 때까지 0~3단계가 반복된다.
적당한 힘을 가하면 이 시점에서의 기울기뿐 아니라 전체에서 봤을 때의 기울기가 0이 되는 지점까지 갈 수 있다. : momentum
힘을 준다는 것은 가속도를 준다는 것.
현재의 기울기를 새롭게 계산해서 간다. 그러다보면 멈추는 곳이 있다.
그래서 과거의 기록을 누적해놓는다.
원래 가던 기울기에 계속 누적해서 다음 기울기에 이전 기울기 값을 다운스케일해서 더해준다.
가던 방향에 얹어서 더 크게 가는 것. 뛰다보면 더 빨라지는 것처럼. 앞에서 전달받은 힘을 전달받아서 빨라지는 것.
지금 현재 경사를 만나도 지금까지 가던 게 있으니까 경사를 넘을 수 있는 것.
'개발' 카테고리의 다른 글
모델 정리할 때 (0) | 2022.11.08 |
---|---|
머신러닝 성능 개선 (0) | 2022.11.08 |
지도 비지도학습 차이 (0) | 2022.11.08 |
머신러닝 개요 (0) | 2022.11.08 |
N-gram (0) | 2022.11.03 |