안녕하세요. 우리 빨간선을 어떻게 구하는지에 대해 알아보기로 합시다. 단순한 코드 안에 있는 복잡한 로직에 대한 공부 시작입니다.

 

강의보고오기

https://www.youtube.com/watch?v=vJ-DaRgfsZk

 

 

벡터식 표현

우선 두개의 벡터를 정의하겠습니다. 가중치를 뜻하는 w 벡터와 선형회귀 독립변수인 $ x $ 벡터를 정의하겠습니다.  종속변수 $ y $ 도 있습니다. .

 

$$  w = \begin{bmatrix}
w_{0} \\
w_{1}
\end{bmatrix}, \qquad   x = \begin{bmatrix}
1 \\
x_{1}
\end{bmatrix}$$

 

두 벡터를 사용하여 아래와 같이 나타낼 수 있습니다. 

 

$$ \hat{y} = w^{T} x $$

 

$$ \hat{y} = \begin{bmatrix}
w_{0} & w_{1}
\end{bmatrix}\begin{bmatrix}
1 \\
x_{1}
\end{bmatrix}$$

 

 

집값의 예시를 보겠습니다. 독립변수는 여러개가 될 수 있지만, 집의 면적 하나만 있다고 가정했습니다.  그리고 $y$ 는 집값입니다. 그럼 집의 면적에 대응하는 $ y $ 값(집값)이 있을겁니다. 우리는 이 데이터를 학습하여 예측값 $y$ 즉, $\hat{y}$에 대응하는 빨간선을 그리는게 목표입니다. . 

 

강의에서는 우선 독립변수가 하나인 예제를 설명하고, 독립변수를 늘려가며 설명합니다. 면적, 방의수, 주차공간... 계속해서 독립변수를 늘릴 수 있습니다. 

 

중요한 점은 독립변수가 아무리 늘어나도 선형회기라는 것입니다. 모든 인풋변수(독립변수)가 집값과 선형관계이기 때문입니다. 

 

Shallow Learning에서는 대부분 선형관계만 한다고 말씀드렸습니다. 그렇다고 진짜 선형만 하는 건 아닙니다. 선형같은 비선형도 합니다. 선형회귀 끝나면 바로 Logistic Regression을 할 예정인데, 얘는 비선형입니다.

 

왜 선형같은 비선형이냐고요? 거의 선형 모델인데 결과를 비선형적으로 분류하기 때문입니다. 선형회귀 끝내고 자세히 설명하겠습니다.(엄격히 말하면 비선형인데, 딥러닝은 아닙니다. 딥러닝에서만 비선형 문제를 풀 수 있는 건 아니니까요. 하지만 딥러닝은 훨씬 더 복잡한 비선형도 잘 풉니다.)

선을 구하기 위해 사용하는 방법: MSE, SSE

SSE(Sum Squared Error)  또는 MSE(Mean Squared Error) 를 사용하고 이를 Loss Function, Cost Function으로 부릅니다. Opimization 관점으로 목적함수라고 하고요. 같은 식에 이름이 여러 개여서 참 혼란스럽스니다. 

(Loss Function과 Cost Function은 작은 차이가 있습니다. $ \sum $이 없는게 Loss Function, $ \sum $이 있으면 Cost Function이라는데 이는 책마다 차이가 있는 거 같습니다. 굳이 구분한다면 이와 같이 구분하시고 그냥 아무거나 써도 무방할 듯 합니다.)

 

1. SSE: $$ L(w) = \sum_{i=1}^N (w^Tx_i - y_i)^2 $$

 

2. MSE: $$ L(w) = \frac{1}{N}\sum_{i=1}^N (w^Tx_{i} - y_{i})^{2} $$

 

수학식으로 보면 복잡해 보이지만, 사실 별 거 아닙니다.

 

SSE는 (예측 집값 - 실제 집값)의 제곱을 모두 더한 값입니다. MSE는 이 값을 데이터 수로 나눠준 것이죠. 이 값을 최소화하는 선이 우리가 찾고자 하는 빨간 선입니다.
 
모든 데이터와 그에 대한 예측값의 차이가 가장 작은 선을 구한다는 것입니다. 직관적으로 합리적인 방법이라고 느껴지시나요? 나중에 확률적 가정으로 이 방법이 합리적이라는 것도 보여드릴 예정입니다.
 
강의에서는 벡터로 바꾸는 과정과 데이터가 어떻게 식으로 표현되는지 더 자세하게 설명했으니 참고하세요. 그리고 omega라고 불리는 것도 그냥 $ w $(더블유)라고 생각하시면 됩니다. 감사합니다.
 
 
 
 
 

+ Recent posts