(ML) Gradient Descent
728x90

이번 포스팅에서는 Gradient Descent에 대해 말 해보려고 한다.

 

모델 학습 (Training) => 모델 변수 값을 정하는 행위 라고 말할 수 있다.

 

=> 최적화 이론이라는 것이다.

 

알고있는 정도와 원하는 정보가 있으면 그 값을 에측하는 것이다.

 

만약, 정해진 형식이 있다면 사실 이를 예측할 필요가 없다.

 

하지만 우리가 원하는 것은 예측을 하여 그 예측 값을 최소화 시키는 것이다.

여기서 x의 값이 y라는 사실을 알고 있다고 하자.

 

우리는 x를 model안에 집어 넣어서 예측값인 y.pred값을 model로 부터 얻어낸다.

 

이를 우리는 loss라고 한다.

 

그렇다면 M/L(Machine Learning)의 Training 목표는 무엇일까?

 

"Training의 목표 => min(F(θ))가 되는 θ찾기" 라고 볼 수 있다.

위의 그림은 2차 함수의 예시이다.

 

단순히 기울기가 0이 되는 계산 방법 말고 Gradident Descent 방법을 적용해 보려고 한다.

이는 현재의 값인 θ0에 작은 값을 더하거나 뺴서 θ*을 만드는 방법이다.

(θ의 값이 목표치보다 크면 작게 만드고, 작으면 크게 만든다._loss값을 통해 결정)

 

작은 값은 learning rate의 비율을 통해 결정되는데 자신이 개발하고자 하는 모델에 따라 알맞게 쓰면 된다.

(lr = 0.001 을 주로 쓰기는 한다...)

 

그렇다면 당연히 learning rate가 올라갈 수록 수렴이 빨라 지지만, θ* 주변에서 진동하며 끝내 θ*에 도달하지 못할 수 있다.

 

learning rate가 낮아질 수록 수렴이 늦어지지만. 비교적 θ*에 근접해질 수 있다.

 

그렇다면 왜 G/D를 쓰는가?

 

M/L은 우리가 생각 할 수 있는 그런 2차원의 그래프가 거의 나오지 않는다.

 

수천가지의 차원 그래프가 나오게 되는데, 이를 계산하기 위해서는 너무나도 많은 계산량이 필요하기 때문이다.

 

이에 우리는 G/D를 택하게 된 것이다.

 

정리하자면,,,

하지만 문제점 또한 존재하게 된다.

 

1. local minimum 문제 : 최소값이 아닌 다른 곳에 빠지게 되는 문제이다. 글로 설명이 어려우니 밑에 그림을 봐주면 좋을 것 같다.

 

2. learning rate : trade off의 관계이다.

728x90

댓글

공지사항
업데이트
인기 글
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
최근댓글
250x250