-
Gradient descent for multiple linear regression (다중 선형회귀의 경사 하강법) | Supervised Machine Learning: Regression and ClassificationMachine Learning/Stanford ML Specialization 2023. 10. 30. 21:34
지난번 배운 Gradient Descent와 Vectorization을 모두 이용해서 Multiple Linear Regression(다중 선형회귀)의 Gradient Descent(경사 하강법)에 대해서 알아보자.
Vector Notation
기존의 notation을 사용하면 w들을 표현할 때, feature가 여러개라면, w1, w2, ..., wn과 같은 방식으로 표현해야 했다. 또한 모델의 표현도 복잡하다. w들과 b는 아래와 같이 표현할 수 있다.
w1, w2, ..., wn b
Vector를 이용하면 간단하게 표현할 수 있다. b는 하나의 숫자이기 때문에 고정이다.
w = [w1, ..., wn] b
모델 또한 훨씬 간소화된다. 아래는 우리가 기존에 배웠던 다중 선형회귀의 모델이다.
f(x) = w1x1 + w2x2 + .. + wnxn + b
하지만, 벡터를 쓰고, 벡터의 dot product를 이용하면, 훨씬 표현도 간소화 된다. 아래와 같다. 아래 수식에서 w와 x는 각각의 벡터를 의미한다.
f(x) = w⋅x + b
Cost Function또한 훨씬 간단하다.
J(w1, w2, ..., wn, b)
이것을 벡터를 이용해서 아래와 같이 표현할 수 있다. 아래에서 w는 w 값들을 모두 가진 벡터를 의미한다.
J(w, b)
비교 정리하자면 아래와 같다.
https://youtu.be/YjpCQof9tI8 Gradient Descent
그렇다면 Gradient Descent(경사 하강법)은 어떨까? 역시 아래와 같이 w, b의 반복을 간소화 할 수 있다.
Derivitive를 수식으로 했을때도, Multiple Linear Regression의 Gradient Descent또한 Vector를 이용해서 아래와 같이 정리할 수 있다. j가 1에서부터 n까지, w, x 벡터들을 이용해서 새로운 w, b값을 계산해주면서 minimum을 찾아나가면 된다.
https://youtu.be/YjpCQof9tI8 Alternative to Gradient Descent
Gradient Descent를 이용하지 않고, Normal Equation을 이용하면, iteration을 이용하지 않고 Linear Regression에 한해서 대체할 수 있다. 하지만, Linear Regression을 제외한 다른 Learning Algorithms들에는 적용할 수 없고, feature가 10000개 이상이 되면 상당히 느리다.
하지만, ML(Machine Learning) 라이브러리를 사용할 때, Linear Regression을 호출하게 되면, 아마 이 백엔드에서 이 Normal Equation을 이용해서 계산이 될 가능성이 있다. 하지만, w, b를 찾기 위해서는 Gradient Descent를 이용하는것이 Recommended 한 방법이다.
Reference
https://www.datacamp.com/tutorial/tutorial-normal-equation-for-linear-regression
'Machine Learning > Stanford ML Specialization' 카테고리의 다른 글