이준민1
2024. 6. 7. 20:00
회귀란 y= ax에서 a즉 기울기를 구하는 방정식이다
a=y/x이다
경사하강법 - 최솟값을 찾기위해 기울기를 학습하여 조절하여 파라미터 방향을 조절하는 방법
이 그림과 같을 때 기울기의 방향이 양이면 파라미터(x값)을 음의 방향으로가보고
기울기가 음의 방향이면 파라미터(x값)을 양의 방향으로 가 최솟값을 찾는 머신러닝 방법이다
경사하강법으론 크게 3가지가있다
- 배치 경사 하강법(모든 데이터를 일일히 계산하는방법)
- 확률적 경사 하강법(하나만 계산하는 방법)
- 미니 배치 경사 하강법(임의의 샘플을 정하여 확률적으로 계산하는 방법)
기울기보다는 그래디언트 (값이 여러개일때 수행하는 기울기) 라는 표현이 더 어울림
학습율 (머신러닝 하이퍼파라미터중 가장 중요!)
- 너무 작으면
-
- 시간이 오래거림, 전역최솟값(local minimum)에 빠질 수 있음
-
- 선형회귀는 괜찮을 수 있음! MSE에서는 local minimum이 없음
- 너무 크면
-
- 빠르긴 한데, 수렴할 수 있을까?
학습률이 너무작아 기울기가 0인값을 구해버리면 Local minima(국소적최솟값)를 최소값이라고 구할수있음
그래서 학습률을 잘 조절해서 Global minimum값을 구할 수 있어야함
선형회귀에서는 걱정하지않아도된다 MSE같은걸 쓰기떄문에 수학적으로 Local minima(국소적최솟값)이 나올수없다
확률적 경사 하강법
- 배치 경사하가업은 전체 학습데이터에 대해 다 그래디언트(미분)을 수행해야 하기 때문에 데이터가 많을 수록 시간이 오래걸림
- 확률적 경사 하강법은 랜덤하게 하나의 학습데이터만 골라서 그래디언트 수행
- 대신 불안정하 수 있음, 수렴을 잘 못할 수도 있음 -> 이를 해결하기 위해 갈수록 학습률을 줄이는 scheduler를 사용해볼 수 있음
- 대신, 지역 최소값(local minimum) 탈출 가능하고 시간이 빨리 걸림
미니배치 경사 하강법
- 미니 배치라고 부르는 임의의 작은 샘플 데이터들을 가지고 그래디언트 수행
- 덜 불규칙적이며 최적값에 잘 도달함
- 하지만 local minimum(지역 최솟값) 빠져나오기는 여전히 힘들수도... (그래도 MSE를 사용하는 선형회귀는 괜찮음!)