반응형
3. Linear Regression with multiple variables
목차
3-1. 다항 선형 회귀
1. 다항 선형 회귀란?
2. 2개 이상의 특성
3. 경사하강법
4. 특성과 다항 회귀
3-2. 정규 방정식
3-1. 다항 선형 회귀
1. 다항 선형 회귀란?
단항 선형 회귀(이전 게시글 참고)
https://codingsmu.tistory.com/111
[핸즈온 머신러닝] 2장. 단항 선형 회귀
2. Linear Regression with one variable 목차 1. 선형회귀란? 2. 모델설계 3. 비용 함수 4. 경사 하강법 1. 선형회귀란? 회귀(Regression) 연속적인 종속 변수와 한 개 이상의 독립 변수 사이의 관계를 추정하..
codingsmu.tistory.com
다항 선형 회귀란?
- Multivariate linear regression
- 두 개 이상의 특성을 추가하고, 확장된 특성을 포함한 데이터셋에 선형 모델을 훈련시키는 것
- 단항 선형 회귀(hθ(x)=θ0+θ1xhθ(x)=θ0+θ1x) vs. 다항 선형 회귀(아래 식)
- hθ(x)=θ0+θ1x+θ2x2hθ(x)=θ0+θ1x+θ2x2
- hθ(x)=θ0+θ1x+θ2x21hθ(x)=θ0+θ1x+θ2x21
- hθ(x)=θ0+θ1x+θ2x2+θ3x3+...hθ(x)=θ0+θ1x+θ2x2+θ3x3+...
2. 두 개 이상의 특성
기호 정리
- n = 특성의 개수
- x(i)x(i) = i번째 학습 예제의 입력(특성) 1<=i<=m1<=i<=m
- x(i)jx(i)j = i번째 학습 예제의 j번째 특성의 값 1<=j<=n1<=j<=n
- 예시
-
집면적(제곱피트) 방 개수 층 수 연식 매매가(1000달러) 1500 4 25 1 2500 2500 8 26 1 3500 - 특성 개수(n) : 4개 -> x1(집면적), x2(방 개수), x3(층 수), x4(연식)
- x(2)x(2) = [150042512500]
- x(2)3=26
-
Hypothesis
- 단항 선형 회귀: hθ(x)=θ0+θ1x
- 다항 선형 회귀: hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4
- 예시(위의 테이블 참고)
- hθ(x)=80+0.1x+0.01x2+3x3−2x4
행렬과 벡터 곱으로 표현하기
- hθ(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4=θTx
- 즉, hθ(x)=θTx
- 유도과정은 아래 참고
- 더보기
3. 경사하강법
다항 선형 회귀에 대한 경사 하강법
- 가설(Hypothesis): hθ(x)=θ0+θ1x+...+θnxn
- 파라미터(Parameter): θ0,θ1,...,θn
- 비용함수(Cost function)
- J(θ0,θ1,...,θn)=12m∑mi=1(hθ(xi)−yi)2
- J(θ)로도 표현
- 경사하강법(Gradient descent)
- 수렴할 때까지 아래 식을 반복
- θj=θj−α∂∂θjJ(θ0,θ1,...,θn)
n=1일 때 경사하강법(단항선형회귀) vs. n>=1일 때 경사하강법(다항)
경사하강법에 대한 조언
- Feature scaling(feature normalization)
- 여러 특성들을 유사한 크기로 맞추자
scaling 전(좌), scaling 후(우) - 예1) 모든 특성 값의 범위를 대략 −1<=xi<=1 범위로 만들자
- x1: 면적(0~2000ft2) , x2: 방 개수(1~5개)
- x1=area(ft2)2000, x2=rooms5
- 예2) Mean Normalization: xi 대신 xi−μ로 대체하여, 특성들의 평균을 대략 0으로 만들자
- 단, x0=1에는 적용하지 않음
- x1=area−10002000, x2=rooms−25
- 단, μi는 xi의 평균
- 따라서 −0.5<=xi<=0.5,−0.5<=x2<=0.5
- 경사하강법 디버깅하기
- 경사하강법 디버깅이란, 경사하강법이 잘 작동하는지 확인하는 것으로 학습율(learning rate)을 결정하는 방법이다
- θj=θj−α∂∂θjJ(θ)
- J(θ)는 매반복마다 줄어들어야 함
- 수렴했음을 감지하는 규칙의 예) 1회 반복시 J(θ)의 감소폭이 10−3이하면 수렴했다고 봄
- 경사하강법이 잘 작동하고 있지 않은 경우
- learning rate α가 너무 큰 경우-> 수렴하지 못함 -> 더 작은 α를 사용하자
- 충분히 작은 α를 사용하고 있는 경우, J(θ)는 매 반복마다 줄어드는건 확실함
- 그러나 α가 너무 작은 경우, 경사하강법은 너무 느리게 수렴하게 됨
- α에 따른 반복횟수-J의 관계
- 너무 작은 α: 느린 수렴
- 너무 큰 α: J(θ)가 줄어들지 않을 수 있고, 아예 수렴하지 않을 수도 있음
- 보통 주로 쓰는 α는 ..., 0.0001, 0.001, 0.01, 0.1, 1, ... 로 상황에 맞게 적절히 쓰면 된다
4. 특성과 다항 회귀
(예)집값 예측
- hθ(x)=θ0+θ1∗(width)+θ2∗(depth)
- 면적: x=(width)∗(depth)
- hθ(x)=θ0+θ1∗x
다항회귀
더 loose한 h(x) : 초록색/ 더 fit한 h(x): 파란색 - hθ(x)=θ0+θ1x1+θ2x2+θ3x3=θ0+θ1(size)+θ2(size)2+θ3(size)3
- 특성 선택하기
3-2. 정규 방정식
정규방정식(Normal equation)이란?
θ를 구하는 방법은 크게 수치적 방법(Numerical solution)과 해석적 방법(Analytical solution)이 있다. 앞서 배운 경사하강법은 수치적 방법에 해당하며, 지금부터 배울 정규 방정식은 해석적 방법에 해당한다 식은 아래와 같이 쓴다
NormalEquation=θ=(XTX)−1XTy
예제(m=4)
x0 | 집면적 (제곱피트) |
방 개수 | 층 수 | 연식 | 매매가(1000달러) |
1 | 1500 | 4 | 25 | 1 | 2500 |
1 | 2500 | 8 | 26 | 1 | 3500 |
1 | 2400 | 5 | 10 | 3 | 3000 |
1 | 1400 | 3 | 13 | 12 | 1500 |
... | ... | ... | ... | ... |
- y = [2500350030001500...]
- X = [11500425112500826112400510311400313121............]
- θ=(XTX)−1XTy 유도 과정
- Xθ=y , 양변에 XT 곱하기
- XTXθ=yXT, 좌변에 XTX를 없애기 위해 (XTX)−1양변에 곱하기
- (XTX)−1XTXθ=yXT(XTX)−1, 이 경우 (XTX)−1XTX=1임
- θ=(XTX)−1XTy
m개 학습 데이터, n개 특성인 경우
- y = [y(1)...y(m)]
- X = [1x(1)1x(1)2x(1)3...x(1)n..................1x(m)1x(m)2x(m)3...x(m)n]
- (XTX)−1 계산 시 시간복잡도
- XT=((n+1)∗m)이고, X=(m∗(n+1))이므로
- XTX=O((n+1)(n+1))=O(n2+2n+1)=O(n2)
- (XTX)−1 즉, inverse 계산까지 수행 시 총 시간복잡도는 O(n3)가 걸리게 된다
경사하강법 vs. 정규방정식(m개 학습 데이터, n개 특성인 경우)
경사하강법 | 정규방정식 | |
장점 |
|
|
단점 |
|
|
반응형
'인공지능(AI) > 머신러닝(ML)' 카테고리의 다른 글
[핸즈온 머신러닝] 6장. 서포트 벡터 머신 (0) | 2021.12.05 |
---|---|
[핸즈온 머신러닝] 4장. 로지스틱 회귀(분류) (0) | 2021.12.03 |
[핸즈온 머신러닝] 2장. 단항 선형 회귀 (0) | 2021.11.18 |
[핸즈온 머신러닝] 1장. 머신러닝 소개 (0) | 2021.11.16 |
경사하강법과 손실함수 (0) | 2021.05.21 |