본 포스팅은 Ian Goodfellow 등 2인이 저술한 심층학습(Deep Learning Adaptive Computation and Machine Learning)및 오일석 저술의 기계학습 을 기반으로 작성합니다.
선형회귀는 말 그대로 선형으로 된 회귀 문제를 푸는 과정입니다. 즉 입력벡터 x값으로부터 스칼라 y값을 추정하는 과정인데, 이는 일차함수(선형)의 형태를 띕니다.
자 집값을 결정하는 선형 회귀 모델을 생각해봅시다. 집값을 결정하는데에는 집의 크기, 방의 개수, 층수, 집의 나이 등 다양한 요소가 집값을 결정지을 겁니다. 이 네 가지 요소들은 Input값, x가 될 것이고, 이를 통해 찾아내고자 하는 Output y값은 집의 가격이 될 것입니다. 이 모델은 아래와 같은 수식으로 표현할 수 있을 것입니다.
이 식에서의 θ는 각 특징이 예측에 미치는 영향, 즉 가중치를 나타냅니다. 즉 가중치가 크면 클 수록 특징이 예측에 미치는 영향 정도가 커지겠고, 또한 가중치가 음수일 경우에는 그 특징과 예측값이 반비례 관계이겠군요. 자 그러면 이 식을 여러 개의 훈련 샘플에 맞게 어떻게 대응시킬 수 있을까요? 이 과정은 행렬을 사용하면 됩니다.
다음과 같이 m개의 데이터에 대응시켜 행렬로 나타낼 수 있습니다. 자 그러면 이 모델의 성능을 평가해봅시다.
평균제곱오차(MSE, Mean Squared Error)
모델에 대한 비용함수로는 평균제곱오차를 활용합니다.
복잡해 보이지만 이해하면 간단합니다. 먼저 각 샘플에 대해서 모델이 평가한 값과 실제 정답과의 차이를 구합니다. 그리고 차이값에 제곱을 취한 뒤, 모든 샘플의 차이 제곱값을 더합니다. 그리고는 샘플의 개수로 나눕니다.
(여기서 2m으로 나눈 이유는 미분의 편의성을 위해 임의로 설정한 것입니다.)
그러면 모든 샘플의 예측값과 정답이 완전히 같다고 할때, 이 오차는 0이 될 것입니다.
자 그러면, 가장 작은 비용함수값을 찾으면 그 값이 최적값이 되겠네요. 이를 최소화하기 위해서는 두 가지 방법을 씁니다. 경사하강법(Gradient Descent)을 이용하거나, 표준방정식으로 풀거나.
표준방정식(Normal Equation)
이해하기는 간단합니다. 목적함수의 Gradient를 구해 그 값이 0인 점을 찾아내면 됩니다. 특징을 정규화할 필요도 없고 반복할 필요도 없습니다. 다만 문제가 있습니다. 역행렬을 구해야 하고, Feature 수가 많아지면 많아질 수록 계산속도가 급격히 떨어집니다.
경사하강법(Gradient Descent)
앞서서 평균제곱오차를 이용해 선형회귀의 비용함수를 결정했었죠, 우리는. 그런데 식을 좀 잘 째려보죠.
일단 우리가 정립한 비용함수가 이차식의 형태의 함수임을 알 수 있고, 이차함수의 개형은 우리 모두가 알듯이 Convex, 혹은 Concave하다는 특징이 있습니다. 오케이, 그러면 경사하강법을 이용해서 최적점을 찾는 방법에 대해서 고민해봅시다.
경사하강법은 함수의 랜덤한 한 위치에서의 기울기를 구하고, 그 기울기가 0이 되는 지점까지 학습률(Learning Rate)를 곱해서 최적값을 찾는 방식입니다.
가장 먼저 기울기를 찾기 위해서 위 식을 편미분해봅니다.
그리고 이 편미분한 값을 학습률과 곱해서 수렴할 때까지 θ의 값을 수정하는 겁니다.
둘 간의 특징을 나열하면 다음과 같습니다.
경사하강법 | 표준방정식 |
학습률(alpha)를 결정해야 함 | 학습률 결정 필요 없음 |
많은 반복이 필요함 | 반복 필요 없음 |
Feature Space가 많을 때 유리 | Feature Space가 적으면 유리 |
표준 방정식에서는 역행렬을 계산할 때 O(n^3)의 복잡도가 필요합니다. 그래서 Feature가 많아지면 많아질 수록 계산속도가 엄청나게 차이가 나죠. 재밌는 포인트는 n은 특징공간을 의미하지 데이터의 양과는 상관없다는 점입니다.
선형회귀는 이정도로 이야기를 해보고, 다음에 추가적으로 이야기해봅시다. 일단은 다음은 Overfitting과 UnderFitting 그리고 Model Capacity에 대해서 이야기해봅시다.
'심층학습 > Deep Learning' 카테고리의 다른 글
6장 심층 순방향 신경망 - 6.0 퍼셉트론의 이해 (0) | 2022.01.24 |
---|---|
5장 기계학습의 기초 - 5.3 초매개변수와 검증집합 (0) | 2022.01.18 |
5장 기계학습의 기초 - 5.2 수용력, 과대 및 과소적합 (0) | 2022.01.17 |
5장 기계학습의 기초 - 5.1 학습 알고리즘 (0) | 2022.01.14 |