해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.
https://welldonecode.tistory.com/123
선형 회귀 (Linear Regression)
해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.딥러닝을 하다 보면 "회귀"라는 말이 굉장히 많이 사용된다. 회귀란, "입력과 출력 간의 관계를 추정하는 것" 이다. 선형 회
welldonecode.tistory.com
지난 게시물에서 loss function을 최소화 하는 weight, bias 즉, a와 b를 경사하강법을 이용하여 찾는다고 했다.
경사 하강법은, 처음 a와 b는 아무렇게나 잡은 뒤, 조금씩 loss를 줄이는 방향으로 나아간다.
Gradient는 항상 가장 가파른 방향으로 향하기 때문에, $ \begin{bmatrix}
\frac{\partial L }{\partial a} \\ \frac{\partial L}{\partial b}
\end{bmatrix}|_{a=a_k, b=b_k}$ 라는 벡터의 방향은 가장 가파른 방향으로 향한다.
이 방향으로 가면 loss함수를 가장 크게 증가시킬 수 있는 방향으로 향하는 것이다.
그런데 우리는 loss함수를 최소로 하는 방향으로 가고 싶으므로, -만 붙여주면 된다.
따라서 $\begin{bmatrix}
a_{k+1} \\ b_{k+1}
\end{bmatrix}= \begin{bmatrix}
a_k \\ b_k
\end{bmatrix} - \alpha \begin{bmatrix}
\frac{\partial L }{\partial a} \\ \frac{\partial L}{\partial b}
\end{bmatrix}|_{a=a_k, b=b_k}$ 과 같이 다음 위치는 현재 위치에서 gradient를 빼주면 loss를 최소화 하는 방향으로 나아가는 것이다.
여기서 어느정도 보폭으로 나아갈지를 의미하는 $\alpha$를 Learning rate라고 한다.
이게 왜 필요하냐면, loss를 최소화 하는 방향으로 가고 싶은데, gradient가 너무 커서 그 점을 지나치는 경우가 생긴다. 그 다음 위치는 다시 loss를 최소화 하는 방향으로 가고자 해서 처음 위치로 돌아오게 될 것이다. 그래서 조금조금씩 가면서 원하는 위치에 딱 맞추기 위해 Learning rate가 필요하다.
gradient는 loss의 최저점에 갈수록 점점 작아지므로 (결국 0에 수렴하므로) 상수로 놓아도 무방하다. 물론 1보다는 작게 초기화해야 한다.
해당 경사하강법은 단점이 존재한다.
- 한번 업데이트 되는데 너무 신중하게 결정해서 오래걸린다.
- w 모양과 같이 울긋불긋한 함수인 경우, global minimum을 찾아야 하는데 local minimum을 찾아버리는 문제가 발생할 수 있다
'AI' 카테고리의 다른 글
SGD (Stochastic Gradient Descent) (0) | 2024.09.01 |
---|---|
가중치 초기화 기법 (Weight Initialization) (0) | 2024.09.01 |
선형 회귀 (Linear Regression) (2) | 2024.08.31 |
인공신경망, weight, bias (0) | 2024.08.31 |
강화 학습 (0) | 2024.08.31 |