Lec 03: Linear Regression and How to minimize cost

Ji·2021년 5월 28일
0

가설함수를 비용함수에 대입하여 그래프를 그린 뒤, 눈으로 Cost의 최솟값을 찾는 것은 쉬우나, 컴퓨터는 그렇지 않다.

Cost를 최소화 하는 것 = 학습하는 것

Gradient descent algorithm(경사 하강 알고리즘)

컴퓨터가 Cost가 최소가 되는 W와 b를 찾는 방법으로 널리 알려짐.

변수가 여러개(W1, W2)일 때도 사용가능.

  • 최초에 추정을 통해 W와 b값을 정한다.
  • cost가 줄어드는 방향으로 W와 b값을 조금씩 업데이트한다.
  • 기울기값을 구해서 cost가 최소화되는 방향으로 업데이트를 반복한다.
  • 최소점에 도달했다고 판단될때까지 과정을 반복한다.
  • 지훈 추가 내용
    • "미분계수가 0인 지점을 찾으면 되지 않냐?"
      • → 우리가 주로 실제 분석에서 맞딱드리게 되는 함수들은 닫힌 형태(closed form)가 아니거나 함수의 형태가 복잡해 (가령, 비선형함수) 미분계수와 그 근을 계산하기 어려운 경우가 많음
      • 실제 미분계수를 계산하는 과정을 컴퓨터로 구현하는 것에 비해 gradient descent는 컴퓨터로 비교적 쉽게 구현할 수 있음
    • 함수의 극대값 또는 극소값을 구하기 위해 현재 위치에서 함수값의 변화가 가장 큰 방향으로 이동한다는 것으로 설명 가능
    • Gradient descent 방법의 또 하나의 문제점은 해에 근접할수록 |∇f|가 0에 가까워지기 때문에 수렴속도가 느려짐
    • 수렴속도를 조절하는 step size 파라미터 λ를 너무 크게 하면 알고리즘이 발산할 수 있는 문제점이 있음
      • 요즘은 step size를 자동으로 adaptive하게 조절하는 기능을 추가해서 학습함

https://slid-capture.s3.ap-northeast-2.amazonaws.com/public/capture_images/d9b61b6dc5344633a74a05c9ba06a574/56128b06-86f0-4a41-b755-29e4216f9019.png

파란 선 : 비용함수

임의의 점에서 Gradient(기울기)를 구하고, learning rate에 Gradient를 곱해서 W값에서 뺀다.

그림에서 기울기가 양수이므로 W값은 그림과 같이 줄어들 것이다.

같은 과정을 반복하다가 기울기가 0이 되면 W값은 변하지 않는데, 이 점이 최소점이다.

반대쪽에서 진행하면, 기울기 자체가 -기 때문에 -를 빼주면 +이므로 w값이 증가한다. 즉, 증가하는 방향으로 이동한다.

Gradient를 구하기 위해서는 미분을 해야 한다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8684b288-8aa7-4d9a-988a-1456c03cae63/Untitled.png

https://slid-capture.s3.ap-northeast-2.amazonaws.com/public/capture_images/d9b61b6dc5344633a74a05c9ba06a574/12e4364c-a7e3-4891-85af-abc3b5fa6fe5.png

alpha : learning rate (학습률) : W값을 얼마나 빠르게 변화시키는지 결정함

alpha뒷부분, cost함수를 미분한 부분이 gradient이다. (초기에 cost함수에서 m 대신에 2m을 사용하여도 함수의 특성은 변하지 않기에 미분했을 때 약분이 되게 2m으로 해주었다)

다음과 같이 계산된 gradient에 learning rate를 곱하고 W에서 빼주면서 계속해서 W를 업데이트 한다. 이것이 바로 gradient descent algorithm임.

https://slid-capture.s3.ap-northeast-2.amazonaws.com/public/capture_images/d9b61b6dc5344633a74a05c9ba06a574/d3b65cce-6ad5-4d8a-b4b5-f9f882e84849.png

위 그림의 비용함수의 경우 시작점에 따라서 최저점을 찾지 못할수도 있음.

왼쪽의 경우 최저점에 도달했으나, 오른쪽은 도달하지 못함.

오른쪽의 경우 기울기는 0이고, 주변에 비해서 가장 낮은 지점(local minimum) 이지만, 전체적으로 최저점이 아님.

local minimum이 있는 경우, 가장 낮은 지점으로 도달할 것이라고 보장할 수 없으므로 gradient descent를 사용할 수 없다.

https://slid-capture.s3.ap-northeast-2.amazonaws.com/public/capture_images/d9b61b6dc5344633a74a05c9ba06a574/bd9924a8-3694-4c79-878a-1b87e6b7fff7.png

그림과 같이 볼록한 함수를 convex 함수라고 함.

local minimum과 global minimum이 일치함. 어디서 출발하든 항상 최저점에 도달할 수 있기 때문에 gradient descent를 사용하기에 용이함.

profile
공부방

0개의 댓글