0. Introduction
- 우린 Lecture 2 에서 다음과 같은 데이터를 예측하는데 일차 함수를 이용하여 예측하였다.
- 과연 일차함수로 다음과 같은 데이터를 예측하는게 가장 적합할까?
- 다음과 같이 예측하는 건 어떨까?
- 일차 함수로 예측했던것보다 더 데이터를 잘 예측하는 모습을 보인다.
- 즉, 이번 챕터에서 배워볼것은 일차 함수로 예측을 하는것이 아닌,
- 더 고차원적인 함수로 예측하는 것을 배워볼 것이다.
1. Locally Weighted
- 머신러닝은 parameter learning algorithms과 nonparameter learning algorithms으로 나뉜다.
1.1. parameter learning algoritmhs
- Lecture 2에서 배웠던 선형회귀가 대표적 예시가 될 수 있다.
- 즉, theta처럼 고정된 크기의 theta를 사용하여 모델을 만드는 것을 의미한다.
1.2. nonparameter learning algorithms
- theta처럼 변수가 고정되어 있지 않고
- 데이터가 늘어나면 늘어날수록, 변수가 늘어나는 방식이다.
- 이중 이번엔 대표적 예시중 하나인 Locally Weighted Regression에 대해서 알아볼 것이다.
1.3. Locally Weighted Regression
- Locally Weighted Regression을 자세히 알기 전에 다음 데이터를 선형회귀한다고 생각해보자.
- 해당 데이터를 선형회귀하기 위해서 normal equation을 통해 생각해주면 다음과 같은 직선(임의로 그림)이 나올것이다.
- 제대로 예측하진 못하는 것처럼 느껴진다.
- 그러면 예측하고자 하는 x값 근처의 데이터만 이용해서 Linear regression을 하면 어떨까?
- 다음과 같이 예측하고자 하는 x값을 기준으로 3개의 데이터만 생각하여 Linear regression을 하니까 더 정확해진것을 확인할 수 있다.
- 이걸 수식으로 다음과 같다.
- 기존의 선형회귀 식에서 w_i 즉 가중치함수만 곱해졌다.
- 이 w_i는 다음과 같다.
- 즉 다시말해, 예측하고자 하는 값이랑 가까우면 가까울수록 1,
- 멀면 멀수록 0으로 가중치가 설정되어 예측하고자 하는 주변의 값들만 선택할 수 있게 된다.
- 아래 Plot에서 검정색이 w_i를 나타낸것이다. (이해를 돕고자 함수값을 키움)
- 여기서 우리는 한가지 욕심이 생길 것이다. 더 많은 변수를 생각하고 싶을땐 어떻게해야할까?
- 이땐 tau라는 'bandwidth'을 조정해주는 즉, 너비를 조정해주는 hyperparameter을 추가해주면 된다.
- tau가 커지면 커질수록 너비는 커지고, tau가 작아지면 작아질수록 너비는 작아진다.
cf) 여기서 weight function은 이것뿐만 아니라 다양하게 존재가 가능함을 알아주길 바란다.
2. Probabilistic interpretation
- 이번 챕터에선 linear regression을 확률적 해석하는 파트라고 알아주면 된다.
- 여기서 우리는 linear regression을 하기위해 오차를 제곱했었는데 왜 세제곱,네제곱이 아닌 제곱이 효율적인지 알게된다.
- 다음식이 있다고 가정해보자.
- 여기서 엡실론은 모델의 학습에 영향을 주지 않는 Random noise/Error를 의미한다.(부동산업자의 기분, 날씨, 등등)
- 또 여기서 "엡실론 ~ N(0,sigma^2)"을 따른다고 가정해보자. (+ IID라고 가정하자., 서로 독립적이지만 같은 분포)
- 엡실론의 확률밀도함수를 나타내면 다음과 같다.
- y_i의 분포는 다음과 같을것이다. 왜냐하면 예측값은 theta^T*x_i인데 여기서 정규분포를 보이는 error를 더했기 때문이다.
- 이것의 확률밀도함수를 나타내면 다음과 같다.
2.1. Likelihood
- 이제 각 데이터에 따른 확률밀도함수(pdf)을 알아봤다면
- 모든 데이터 즉, 전체 데이터에 대한 확률을 정의해야한다.
- likelihood는 고정된 data을 통해 theta를 찾아내는 것을 의미한다.
- 전체 데이터에 대한 확률을 다음과 같이 정의해보자.
- 각각의 error들은 전부 IID이기 때문에 다음과 같이 곱사건으로 전개가능하다.
- 이와같은 L의 값이 가장 크도록하는 theta를 찾는게 maximum likelihood이다.
- 어차피 최대값이 되도록하는 theta를 찾는것이기에 log를 취해줘도 상관없다.
- 이에 따라서, 우리는 최종적으로 다음 식을 minimize하면 된다는 것을 알 수 있다.
- 즉, least-square를 최소화하는게 효율적이라는 것을 알 수 있다.
3. Logistic Regression
- 다음과 같은 가정을 하고 시작한다.
- y 는 {0,1}을 갖는 데이터고, 즉 (binary classification을 의미)
0 <= h() <= 1 즉, 예측값이 0,1사이에 있다고 가정하자.
- 그러면 우리는 다음과 같은 가설을 새울수 있다.
- 여기서 g(z)는 sigmoid function 또는 logistic function이라고 불린다.(굳이 이함수를 이용하는 이유는 lecture4에서 나온다.)
- 그러면 다음과 같이 확률을 나타낼 수 있다.
- 이걸 한번에 식으로 나타내면 다음과 같다.
- 이를 토대로 maximum likelihood를 구하면 다음과 같다.(x는 IID라고 가정)
- 이 식에 log를 취해주면 다음과 같아진다.
- 여기서 l(theta)를 극대화하는 값을 찾기위해
- gradient ascent를 해주게 된다.
4. Newton's method
- gradient descent에 비해서 Newton's method은 훨씬 적은 반복으로 좋은 근사값을 얻을 수 있다.
- Newton's method은 특이한게, f(theta)=0을 만족하는 theta을 찾는다. 즉, 해를 찾는다는 것을 의미한다.
- 이걸 활용하면 f'(theta) = 0을 만족하는 즉, lost function을 minimize하는 점을 찾는 알고리즘으로도 사용가능할수도 있다.
- 단, Newton's method는 중근이나 사중근처럼 관통하지 않는 해를 구하는건 불가능하고, 무조건 관통하는 해여야한다.
- 다음과 같이 접선의 방정식을 구해서 그 방정식의 x 절편을 구하고
- 다시 그 x절편을 기준으로 접선의 방정식을 구해서 이와같은 방식을 반복하는 것이다.
- 이를 식으로 나타내면 다음과 같다.
- 여기서 Newton's method는 "Quadratic convergence"의 특징을 가지고 있다.
- 이는, 오차가 0.01, 0.0001, 0.00000001... 제곱의 단위로 줄어든다는 것을 의미한다.
4.1. 다변수함수일때
- 여기서 H는 Hessian Matrix라고 하는데 Hessian Matrix는 다음과 같다.
'DS Study > CS 229(Machine Learning)' 카테고리의 다른 글
[CS 229] [6] Lecture 6 - Support Vector Machines (1) | 2025.01.20 |
---|---|
[CS229] [5] Lecture 5 - GDA & Naive Bayes (0) | 2025.01.17 |
[CS229] [4] Lecture 4 - Perceptron & Generalized Linear Model (0) | 2025.01.14 |
[CS229] [2] Lecture 2 - Linear Regression and Gradient Descent (1) | 2025.01.07 |
[CS229] [1] Lecture 1 - Introduction (1) | 2025.01.04 |