경사하강법 2

경사하강법(Gradient Descent) 구현(2)

저번 글에 이어서.. 조금 더 복잡한 선형 회귀 저번에는 정말 단순한 모양의 식을 세웠다. 미지수가 하나인 식에서 W와 b를 하나씩 찾아내면 되는 거였는데, 사실 이보다 더 거대하게 일을 키울 수도 있다. $\Large y = w_0x_0 + w_1x_1 + ... +w_dx_d + b$ 이런 식으로 x도 열라 많고, 그에 따른 가중치도 열라 많다면?! 보기만 해도 귀찮다.. 어디 보자.. w는 d+1개에 b 하나니까 우리가 구해야 하는 값의 갯수는 d+2개렷다. 그리고 이런 식으로 생긴 데이터가 대충 n개 들어오는 것이다.그러면 또 이 n개의 데이터를 오차 내서 제곱하고, 평균 내고.. 상상만 해도 귀찮다! 음, 실제로 계산해보면 매우 귀찮다. 그래도 차근차근 해봐야겠지. 일단 이러한 식들은 보통 행렬..

경사하강법(Gradient Descent) 구현(1)

1. 왜 필요한데? 머신 러닝(Machine Learning)에서 우리는 기계가 넣은 데이터를 토대로 우리가 원하는 예측값을 토해내길 바란다. 단순하게 표현하자면 이때의 기계는 함수다. \( y = f(x) \) 가령 우리가 고양이가 들어있는 사진을 마구 이 함수에 넣으면, 결과로 '고양이'라는 글자가 나오길 원한다는 것이다. 그러기 위해서 우리는 기계를 학습시켜야 한다. 일단 저 $f(x)$를 (사실 다양한 형태가 있을 수 있지만 기본을 위해 최대한 간단하게) $Wx + b$라는 일차함수 형태로 표현해보자. $ y = f(x) = Wx + b $ 고양이 사진을 마구 집어넣는데 그걸 곧이곧대로 '고양이'라고 뱉어주는 W와 b의 값을 우리가 이미 알고 있다면 우리는 머신러닝을 할 필요가 없다. 그러면 고양..