
from Scratch
117
8.5
경사 하강법으로 모델 학습
앞으로 이 책에서는 경사 하강법으로 데이터에 적합한 모델의 파라미터를 구할
것이다. 대부분의 경우, 데이터셋과 (미분 가능한) 하나 이상의 파라미터로 구
성된 모델이 주어질 것이다. 또한,
손실 함수(
loss
function
)를 통해 모델이 얼마
나 주어진 데이터에 적합한지 계산할 것이다. (손실 함수의 값이 작을수록 더 좋
다.)
주어진 데이터가 더 이상 변하지 않는다고 가정하면, 손실 함수는 모델의 파
라미터가 얼마나 좋고 나쁜지 알려준다. 즉, 경사 하강법으로 손실을 최소화하
는 모델의 파라미터를 구할 수 있다는 것이다. 간단한 예시를 살펴보자.
# x
는
-50~49
사이의
값이며
, y
는
항상
20 * x + 5
inputs = [(x, 20 * x + 5) for x in range(-50, 50)]
이 경우에는
x
와
y
가 선형 관계라는 것을 이미 알고 있지만 데이터를 통해서 이
관계를 학습시켜보자. 경사 하강법으로 평균제곱오차를 최소화해주는 경사와
절편을 구해보자.
먼저 한 개의 데이터 포인트에서 오차의 그래디언트를 계산해 주는 함수를 만
들어보자.
def linear
_
gradient(x: float, y: float, theta: Vector) -> Vector: ...