Stanford에서 2018년 가을학기에 열린 Andrew Ng 교수의 CS229 머신러닝 강의의 대부분의 내용을 번역 정리한 글입니다.
Course : Stanford CS229: Machine Learning Full Course taught by Andrew Ng | Autumn 2018
Course 소개 : CS229는 기계 학습과 통계적 패턴 인식에 대한 포괄적인 소개를 제공합니다. 지도 학습(생성적/판별적 학습, 모수/비모수 학습, 신경망, 서포트 벡터 머신); 비지도 학습(클러스터링, 차원 축소, 커널 메소드); 학습 이론(편향/분산 트레이드오프, 실용적인 조언); 강화 학습 및 적응 제어에 대한 강의를 다룹니다. 또한 기계 학습의 최근 응용에 대해 논의되며, 로봇 제어, 데이터 마이닝, 자율 항법, 생명 정보학, 음성 인식, 텍스트 및 웹 데이터 처리 등이 포함됩니다.
강의 제목 : Locally Weighted & Logistic Regression | Stanford CS229: Machine Learning - Lecture 3 (Autumn 2018)
강의 영상: https://www.youtube.com/watch?v=het9HFqo1TQ&t=114s
강의 자료 (복원): https://github.com/maxim5/cs229-2018-autumn
강의 syllabus : http://cs229.stanford.edu/syllabus-autumn2018.html
강의를 듣기 전에 알고 있어야 하는 내용
선형대수학 : https://cs229.stanford.edu/notes2022fall/cs229-linear_algebra_review.pdf
확률이론 : https://cs229.stanford.edu/notes2022fall/cs229-probability_review.pdf
Outline
- Linear regression (Recap)
- Locally weighted regression
- Probabilistic interpretation
- Logistic regression
- Newton's method
Intro
저번 강의에서 gradient descnt와 normal equation을 포함한 linear regression에 대해 다뤄보았다. 이번 강의에선 linear regression을 변형하여 직선을 fitting 하는 것이 아닌 non-linear한 함수를 fitting 하는 방법인 Locally weighted regression을 다룰 것이다. 또한 Linear regression의 확률적 해석을 다룰 것인데 이것은 Logistic regression이라고 불리는 첫번째 classification algorithm으로 이어진다. 그리고 Newton's method라고 불리는 logistic regression을 위한 알고리즘에 대해 다룰 것이다.
Parametric learning algorithms and non-parametric learning algorithms
Parametric learning algorithm에서는 θi와 같은 고정된 parameters들의 집합을 data에 fitting 한다. 고정된 parameter를 사용하기 때문에 parametric 이라고 한다. 학습 시 사용한
training set이 컴퓨터 메모리에 없어도 parameters를 가지고 predictions을 만들 수 있다.
Non-parametric learning algorithm은 parameters가 data의 크기에 따라 성장해야 한다. dataset을 컴퓨터 메모리에 저장하고 있거나 보관해야한다. 따라서 굉장히 큰 dataset에 대해서는 좋지 않다. Locally weighted regression이 Non-parametric learning algorithm에 속한다.
Locally weighted regression

다음과 같은 dataset이 있다고 한다면 h를 특정 x에 대해 계산해보자

Linear regression은 12∑mi=1(y(i)−θTx(i))2를 최소화하도록 θ를 fitting 한 후 θTx를 구하면 된다.

Locally weighted regression은 그림과 같이 예측값을 만들고 싶은 x값과 가까운 training examples에 집중하여 직선을 만든다. 가깝다는 의미는 x값이 비슷하다는 것이다. 이것을 수식화 하면 아래와 같다.
- Fit θ to minimize 12∑mi=1w(i)(y(i)−θTx(i))2
- where w(i) is weight function w(i)=exp(−(x(i)−x)22)
- If |x(i)−x| is small, w(i)≈1
- If |x(i)−x| is large, w(i)≈0
cost function의 주요 변화는 weighted term이 추가 되었다는 것이다. x(i)가 예측값을 만들고 싶은 x와 멀다면 error term이 0과 매우 가까운 상수와 곱해진다. 반대로 가까운 경우 1과 가까운 상수가 곱해진다. 따라서 필요한 squared error들만(x와 가까운 값) 더해지는 효과를 볼 수 있다. weight function은 가우시안 분포와 같은 모양이다. (아래 넓이가 1이 아니기 때문에 확률 분포가 아니다.)

weight function은 x를 중심으로 종 모양으로 그려진다. xi에 대한 wight는 그 값에서 종 모양의 높이 즉 weight function의 값이다. 위의 그림에서 함수의 넓이에 따라 weight function의 값이 달라지는 것을 볼 수 있다. 이 넓이를 bandwidth, parameter τ라고 한다. τ는 직선을 fitting할 때 얼마나 가까운 examples까지 고려할 것인가를 나타낸다. 이것을 고려하여 weight function은 다음과 같이 쓸 수 있다.
w(i)=exp(−(x(i)−x)22τ2)
이뿐만 아니라 weight function은 많은 버전이 존재한다. bandwidth τ값은 overfitting과 underfitting에 영향을 준다. τ값이 너무 크다면 underfitting이 되고 너무 작다면 overfitting이 된다.
Probabilistic Interpretation
Assumption
- y(i)=θTx(i)+ϵ(i)
- ϵ(i)∼N(0,σ2) : error(unmodeled effects, random noise)
- P(ϵ(i))=1√2πσexp(−(ϵ(i))22σ2)
- error terms : IID(Independently and Identically Distributed)
- ex) 한 집의 error term은 다른 집의 error term과 독립인 같은 분포를 따른다.
위 assumption들로 아래 식을 얻어낼 수 있다.
P(y(i)|x(i);θ)=1√2πσexp(−(y(i)−θTx(i))22σ2)
이것은 평균이 θTx(i)이고 분산이 σ2인 가우시안 확률 분포이므로 같이 나타낼 수 있다.
y(i)|x(i);θ∼N(θTx(i),σ2)
위 식들에서 ;의 의미는 θ에 의해 parameterized 되었다는 것을 의미한다. P(y(i)|x(i),θ)로 쓴다면 θ에 conditioning 되었다는 의미인데 θ는 random variable이 아니기 때문에 θ에 conditioning 할 수 없다.
위에서 만든 Assumtion에서 θ의 likelihood는 아래와 같다.
L(θ)=p(→y|x;θ)=m∏i=1p(y(i)|x(i);θ)=m∏i=11√2πσexp(−(y(i)−θTx(i))22σ2)
Likelyhood와 probabillity의 차이에 대해 많이 헷갈려한다. parameters의 likelihood는 data의 probability와 같다. data가 고정되어 있을 때 parameter의 함수를 likelihood라고 한다. training set이 고정되어 있을 때 그 data에 대해 다양한 parameters를 확인해 보고 싶은 경우 likelihood를 사용한다. 반면 특정한 parameter θ를 다양한 data에 대해 확인해 보고 싶으면 probability를 사용한다.
아래의 식 likelihood(L(θ))에 log를 씌운 log likelihood(l(θ))이다. likelihood를 maximize 하는 것 보다 log likelihood를 maximize 하는 것이 계산이 더 쉽기 때문에 log likelihood를 사용한다.
l(θ)=logL(θ)=logm∏i=1p(y(i)|x(i);θ)=m∑i=1(log1√2πσ+logexp(−(y(i)−θTx(i))22σ2))=mlog1√2πσ+m∑i=1−(y(i)−θTx(i))22σ2
log likelihood를 미분하여 likelihood를 maximize하는 θ인 maximum likelihood estimation(MLE)를 구할 수 있다. 위 식에서 첫 항이 상수이기 때문에 likelihood를 maximize 하는 조건은 두번째 항에 σ2를 곱해준 12∑mi=1(y(i)−θTx(i))2를 최소화 하는 것과 같다. 이 식은 cost function J(θ)와 같은데 이것으로 MLE가 cost function을 최소화 한다는 것을 알 수 있다.
Logistic Regression
y∈{0,1} in binary classification에서는 linear regression을 사용하는 것은 바람직하지 않다. 가장 자주 쓰이는 classification algorithm은 logistic regression이다. 앤드류 교수는 linear regression과 logistic regression을 가장 자주 사용한다고 한다. logistic regression을 설계할 때 hθ(x)∈[0,1] 즉 output이 0과 1 사이인 hypothesis를 원한다. 따라서 hθ(x)를 아래와 같이 정의한다.
hθ(x)=g(θTx)=11+e−θTxg(z)=11+e−z는 “sigmoid function” 혹은 “logistic function”이라고 한다. linear regression은 hθ(x)=θTx 라고 hypothesis를 정의했었는데 이것은 0보다 작거나 1보다 큰 값을 output 하기도 한다. 이것에 sigmoid function을 취하면서 0과1사이 값으로 압축해준다. logistic regression model을 만들기 위해 y|x;θ의 분포에 대한 assumption을 만들면 다음과 같다.
P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1−hθ(x)
y∈{0,1}이기 때문에 위 식을 하나의 식으로 정리할 수 있다.
P(y|x;θ)=hθ(x)y(1−hθ(x))1−y
y가 1이면 오른쪽 제곱식이 0제곱이 되어 1이되고 0이면 왼쪽 제곱식이 1이 된다.
위의 assumption에서 likelihood를 적어보면 아래와 같다.
L(θ)=p(→y|x;θ)=m∏i=1p(y(i)|x(i);θ)=m∏i=1hθ(x(i))y(i)(1−hθ(x(i))1−y(i)
MLE는 likelihood를 maximize하는 θ값을 찾는 것이다. linear regression에서 했던 것과 같이 계산을 쉽게 하기 위해 log likelihood를 사용한다.
l(θ)=logL(θ)=m∑i=1y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))
l(θ)를 maximize하는 θ값을 구하기 위해 Batch gradient ascent 알고리즘을 사용한다.
θj:=θj+α∂∂θjl(θ)
J(θ)을 minimize하기 위한 gradient descent 알고리즘과 다르게 l(θ) maximize 해야하기 때문에 − 대신 +를 사용한다. 미분 계산을 해주면 아래와 같은 식이 나온다.
θj:=θj+α(y−hθ(x))xj
sigmoid function을 사용한다면 l(θ)는 local maximum이 없고 오직 하나의 global maximum이 존재한다. 이것이 sigmoid function을 사용하는 이유 중 하나이다.
Newton's method
gradient descent algorithm이나 gradient ascent algorithm은 수렴하는데 까지 많은 반복을 거쳐야한다. Newton's method는 더 크게 점프 할 수 있기 때문에 훨씬 적은 반복으로 좋은 값을 얻을 수 있다.
Newton's method에서는 살짝 다른 문제를 다룬다. 함수 f가 있을 때 f(θ)=0을 만족시키는 θ를 찾는다. logistic regression에서 l(θ)를 maximize 하는 θ를 찾을 때 l′(θ)=0을 만족시키는 θ를 찾기 때문에 newton's method를 사용할 수 있다.
θ(t+1):=θt−f(θ(t))f′(θ(t))
Newton's method는 "Quadratic convergence"의 특징을 가지고 있다. 이것은 에러가 0.01, 0.0001,0.00000001⋯ 에러의 제곱만큼 줄어든다는 것이다.
θ가 vector일 경우 위 식도 vector 형식으로 바꿔주어야 한다.
θ(t+1):=θt−H−1∇θl(θ)
H는 n-by-n 행렬로 Hessian이라고 불린다.
Hij=∂2l(θ)∂θi∂θj
Newton's method의 단점은 θ가 고차원 벡터일 때 Hessian의 역행렬을 구하는 것이 매우 힘들기 때문에 각 iteration이 매우 비싸진다는 것이다.
'Courses > CS229' 카테고리의 다른 글
Stanford CS229: Machine Learning | Lecture 7 강의 정리 (0) | 2024.11.06 |
---|---|
Stanford CS229: Machine Learning | Lecture 6 강의 정리 (0) | 2024.11.06 |
Stanford CS229: Machine Learning | Lecture 5 강의 정리 (0) | 2024.10.17 |
Stanford CS229: Machine Learning | Lecture 4 강의 정리 (0) | 2024.10.17 |
Stanford CS229: Machine Learning | Lecture 2 강의 정리 (0) | 2024.02.27 |