모든 강의내용은 김성훈 교수님의 ‘모두를 위한 딥러닝’을 기반으로 한다.
저번 시간에는 cost function 중 결과값과 예측값의 오차를 제곱하는 MSE loss function을 배웠다.
lec03에서는 이 cost를 어떻게 최소화 할 수 있는지를 알아본다.
이전에는 weight과 cost 두 가지의 변수를 가지는 hypothesis 배웠다.
하지만 이번 강의에서는 cost 최소화를 위해 hypothesis를 bias가 없는 형태로 단순화하여 배운다.
이전에 배웠던 데이터를 이용해본다.
위의 단순화된 가설을 이용하여 W=0, W=1, W=2 일 때 각각의 cost를 구해보자.
영상에는 나와있지 않지만 W=2일 때도 계산을 해보면 cost = 4.67이 된다.
x축을 W, y축을 cost로 두고 그래프를 그리면 다음과 같은 이차함수 형태의 그래프가 그려진다.
여기서 예측을 해보자면 우리가 원하는 모델은 cost 값이 최소가 되는 모델, 즉 weight 파라미터가 W=1 을 만족할 때일 것이다. 어떻게하면 저 부분을 찾아낼 수 있을까?
경사를 따라 내려가면서 경사도 즉, 미분값을 이용하면 될 것이다.
바로 이것이 경사하강법 (Gradient Descent Algorithm)이다.
경사하강법은 cost 최소화 뿐만 아니라 많은 다양한 최소화 문제에 이용이 되는 방법이다.
김성훈 교수님이 강의에서 직접 그리신 모습을 보면 대충 감이 잡힐 것 같다.
어떤 원리를 통해서 최소화가 이뤄지는지는 위에서 말한 미분을 생각해보면 된다.
제곱을 미분하기 때문에 cost를 2로 나눠서 미분을 편하게 만들어준다.
경사하강법의 기본 공식이다.
지금까지 배우지 않은 알파 값이 있는데, 이것은 learning rate에 해당하는 값이다.
이 상수가 커지면 경사를 하강하는 속도가 빨라지고, 상수가 작아지면 경사를 하강하는 속도가 느려진다.
나중에 배우겠지만 경사를 너무 빨리 하강하면 우리가 찾아야하는 cost의 최솟값을 건너뛸 수 있다는 단점이 존재하고,
경사를 너무 느리게 하강하면 최소 cost를 찾는데에 너무 많은 시간을 써야한다는 단점이 존재한다.
우리가 배운 cost function을 대입하면 위와 같다.
처음 봤을 때 알파 앞에 굳이 마이너스 부호를 붙인 이유에 대해서 생각해보았다. 이 공식은 경사하강법, 즉 어떤 값의 최소를 찾을 목적으로 만들어졌다. 위에서 예시로 든 cost function의 그래프를 보면 알 수 있듯이 미분값은 양수일 수도 있고 음수일 수도 있다.
최솟값은 미분값이 0인 부분에서 존재할 것이고 다시말해 우리는 W를 업데이트 하며 기울기가 0인 지점을 찾아나가는 것이다. 그러기 위해서는 기울기가 음수일 때는 양수를 더해서, 기울기가 양수인 경우에는 음수를 더해서 0에 가깝게 만들어야한다. 이것이 마이너스 부호의 이유라고 이해하였다.
마지막으로 경사하강법을 적절히 사용하기 위해서는 언제 써야하는지 잘 알아두는게 중요하다.
위와 같이 불규칙한 형태의 cost function을 가진다면, 시도할 때마다 다른 최솟값을 가질 수 있기에 경사하강법이 적절히 작동하지 않을 것이다.
따라서 어떤 지점에서 경사하강법을 적용하더라도 같은 최솟값에 도달하는 경우에 이것을 적절히 사용할 수 있다고 말할 수 있다. 그런 경우가 아래와 같은 Convex function이다. 밥그릇을 엎어둔 형태의 cost function을 가질 때 경사 하강법을 이용해야 우리가 원하는 결과를 얻을 수 있다.
이번 시간에는 Linear Regression에서 cost를 최소화하는 경사하강법 (Gradient Descent Algorithm)에 대해서 공부했다. 다음 시간에는 선형 모델들 중에서 지금까지 배운 것과 같이 H(x) = Wx + b와 같이 하나의 변수를 가지는 것이 아니라 여러 개의 변수를 가지는 multi-variable linear regression에 대해서 배울 것이다.
'딥러닝 > 모두를 위한 딥러닝 시즌1' 카테고리의 다른 글
[모두를 위한 딥러닝 시즌1] Lec05-2. Logistic Classification의 Cost (2) | 2024.02.07 |
---|---|
[모두를 위한 딥러닝 시즌1] Lec05-1. Logistic Classification의 Hypothesis (0) | 2024.02.07 |
[모두를 위한 딥러닝 시즌1] Lec04. Multi-Variable linear regression (3) | 2024.02.07 |
[모두를 위한 딥러닝 시즌1] Lec02. Linear Regression의 Hypothesis와 Cost (4) | 2024.02.04 |
[모두를 위한 딥러닝 시즌1] Lec01. 기본적인 ML 개념 및 용어 (0) | 2024.02.04 |