Why Linear Regression not work well?
우리가 머신러닝을 실습할 때 자주 보는 문제인 여러 요소$($집 위치, 크기, 집의 질 등등$)$를 가진 데이터가 있을 때 집의 가격을 예측하는 문제를 생각해보자. 우리는 전에 이 요소들을 파라미터화한 후, 적절하게 Linear Regression으로 풀어서 문제를 해결했을 것이다. 이와 같이 선형 회귀는 데이터셋이 주어질 때 1. 데이터들에 있는 요소들을 분석한 후, 2. 요소들을 적절한 기준에 따라 정량화하고, 3.이 정량화한 데이터셋으로 선형 회귀를 실행해서 적절한 예측 식을 얻는다.
하지만, 선형 회귀로 구한 예측은 잘 작동하지 않을 때도 많다. 부동산을 예시로 들자면 두 가지 이유가 있는데,
- 입력과 출력의 관계가 선형적인 관계가 아닐 수 있고,
- 가격은 negative가 아니라는 것이다.
1번과 2번은 활성화 함수의 도입으로 해결할 수 있다. linear regression으로 구한 함수가 $h = wx + b$일 때, prediction 함수 $p$를 $p = ReLU(h) = max(wx + b, 0)$으로 두면 비선형성을 주면서, 가격이 negative가 되지 않게 할 수 있다.
Stack Neurons!
활성화 함수의 Output을 다음의 Input으로 넣어보자!
위의 $h$를 구했던 것처럼 각 activation 함수의 output을 구하면 다음과 같다.
- $a_1 = ReLU(w_1x_1 + w_2x_2 + b_1)$
- $a_2 = ReLU(w_3x_3 + b_2)$
- $a_3 = ReLU(w_4x_3 + w_5x_4 + b_3)$
- $y = ReLU(w_6a_1 + w_7a_2 + w_8a_3 + b_4)$
But, If we don't have prior knowledge?
위의 신경망에서는 문제점이 있는데, $a_3$의 출력$($school quality$)$에 우리는 $x_1$$($size of house$)$이 개입하는 지 안하는 지 확신하지 못한다는 것이다. 그래서 해결책이라면, 두 층 사이를 full-connected하게 연결하는 것이다.
Why we need activation function?
간단하다. non-linearity를 잃기 때문이다. $h_1 = W_1x + b_1, h_2 = W_2h_1 + b_2$이라 하면 $h_2 = W_2W_1x + W_2b_1 + b_2$가 된다. $W_2W_1$을 $W$라 하고, $W_2b_1 + b_2$를 $b$라 하면 $h_2 = Wx + b$가 돼므로 선형 함수가 되버린다. 단지 그것 때문이다.
'CS229: Machine Learning' 카테고리의 다른 글
Lecture 10 - Feature/Model Selection (0) | 2025.03.11 |
---|---|
Lecture 9: Generalization & Regulazation (0) | 2025.03.10 |
Lecture 7: Kernel Method (0) | 2025.02.19 |
Lecture 6: Naive Bayes, Laplace smoothing (0) | 2025.02.18 |
Lecture 5: GDA (0) | 2025.01.30 |