가설함수를 비용함수에 대입하여 그래프를 그린 뒤, 눈으로 Cost의 최솟값을 찾는 것은 쉬우나, 컴퓨터는 그렇지 않다.
Cost를 최소화 하는 것 = 학습하는 것
컴퓨터가 Cost가 최소가 되는 W와 b를 찾는 방법으로 널리 알려짐.
변수가 여러개(W1, W2)일 때도 사용가능.
파란 선 : 비용함수
임의의 점에서 Gradient(기울기)를 구하고, learning rate에 Gradient를 곱해서 W값에서 뺀다.
그림에서 기울기가 양수이므로 W값은 그림과 같이 줄어들 것이다.
같은 과정을 반복하다가 기울기가 0이 되면 W값은 변하지 않는데, 이 점이 최소점이다.
반대쪽에서 진행하면, 기울기 자체가 -기 때문에 -를 빼주면 +이므로 w값이 증가한다. 즉, 증가하는 방향으로 이동한다.
Gradient를 구하기 위해서는 미분을 해야 한다.
alpha : learning rate (학습률) : W값을 얼마나 빠르게 변화시키는지 결정함
alpha뒷부분, cost함수를 미분한 부분이 gradient이다. (초기에 cost함수에서 m 대신에 2m을 사용하여도 함수의 특성은 변하지 않기에 미분했을 때 약분이 되게 2m으로 해주었다)
다음과 같이 계산된 gradient에 learning rate를 곱하고 W에서 빼주면서 계속해서 W를 업데이트 한다. 이것이 바로 gradient descent algorithm임.
위 그림의 비용함수의 경우 시작점에 따라서 최저점을 찾지 못할수도 있음.
왼쪽의 경우 최저점에 도달했으나, 오른쪽은 도달하지 못함.
오른쪽의 경우 기울기는 0이고, 주변에 비해서 가장 낮은 지점(local minimum) 이지만, 전체적으로 최저점이 아님.
local minimum이 있는 경우, 가장 낮은 지점으로 도달할 것이라고 보장할 수 없으므로 gradient descent를 사용할 수 없다.
그림과 같이 볼록한 함수를 convex 함수라고 함.
local minimum과 global minimum이 일치함. 어디서 출발하든 항상 최저점에 도달할 수 있기 때문에 gradient descent를 사용하기에 용이함.