Notice
Recent Posts
Today
Total
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
관리 메뉴

나름개발블로그

Hands-On ML 4장 본문

A/ML

Hands-On ML 4장

성남개발자 2020. 9. 12. 14:45

Chapter 4

선형 회귀

특성 가중치, 편향(상수)의 합을 가지고 예측

정규방정식

비용 함수를 최소화 하는 값을 찾기 위한 해석적인 방법 ( 수학공식)

계산복잡도

O(n^2) 시간이 걸린다

경사 하강법

gradient descent는 여러 종류의 문제에서 최적의 해법을 찾을 수 있는 일반적인 최적화 알고리즘.

 

 

 

경사 하강법에서 중요한 파라미터는 스텝의 크기로 , 학습률 (learning rate) 하이퍼 파라미터로 결정 된다.

학습률이 너무작으면 수렵하기 위해 많은 반복이 필요하므로 시간이 오래걸림

학습률이 너무 크면 발산하여 적절한 값을 찾지 못하게 함

경사 하강법 사용시 모든 특성이 같은 스케일 되도록

배치 경사 하강법

매 경사 하강법 스텝에서 전체 훈련 세트에 대해 계산한다.

적절한 학습률을 찾으려면 그리드 탐(grid search)를 사용 한다.

반복횟수를 크게 늘리고 ,허용오차보다 작아지면 알고리즘을 중지

확률적 경사 하강법(SGD)

매 스텝에서 한개의 샘플을 무작위로 선택하고 그하나의 샘플에 대한 그레디언트를 계산

속도면에서는 배치보다 빠르나, 훨씬 불안하다

사용 할때 IID(independent and identically distributed)를 만족해야 한다. 간단하게 만드는 방법은 각 epoch 시작 시 훈련세트를 섞는 것

미니배치 경사 하강법

미니 배치라고 부르는 작은 셈플 세트에 대해서 gradient를 계산

SGD 보다 덜 불규칙 적으로 움직임

다항 회귀(polynomial regression)

학습 곡선

훈련 세트와 검증 세트의 모델 성능을 훈련 세트 크기의 함수로 나타낸것.

과대적합 모델을 개선하는 한 방법은 검증 오차가 훈련 오차에 접근할때까지 더 많은 훈련 데이터를 추가

규제가 있는 선형 모델

과대적합을 감소시키는 좋은 방법은 모델을 규제하는것( 모델 제한 )

릿지 회귀 (ridge regression)

규제가 추가된 선형 회귀 버전

규제항은 훈련하는동안에만 비용함수에 추가

from sklearn.linear_model import Ridge

ridge_reg = Ridge(alpha=1, solver="cholesky")
ridge_reg.fit(X,y)
ridge_reg.predict(([1.5]))

sgd_reg = SGDRegressor(penalty ="l2")
sgd_reg.fit(X,y)
sgd_reg.predict([[1.5]])

라쏘 회귀 (Lasso regression)

중요한 특징 중 하나는 덜 중요한 특성의 가중치를 제거 하려고 한다는 점

자동으로 특성 선택을 하고 희소 모델(sparse model)을 만든다.

 

from sklearn.linear_model import Lasso

lasso_reg = Ridge(alpha=0.1)
lasso_reg.fit(X,y)
lasso_reg.predict(([1.5]))

sgd_reg = SGDRegressor(penalty ="l1")
sgd_reg.fit(X,y)
sgd_reg.predict([[1.5]])

엘라스틱넷(elastic net)

릿지와 라쏘 회귀를 절출한 모델

특성 수가 훈련 샘플 수보다 많거나 특성 몇 개가 강하게 연관되어 있을때는 라쏘보다 엘라스틱넷을 선호

from sklearn.linear_model import ElasticNet

ela_net = ElasticNet(alpha=0.1 ,l1_ratio=0.5)

조기 종료(early stopping)

검증 에러가 최솟값에 도달하면 바로 훈련을 중지시키는 것

로지스틱 회귀

로지스틱 회귀(logistic regression)

샘플이 특정 클래스에 속할 확률을 추정하는데 널리 사용된다.

확률 추정

선형 회귀 모델과 같이 입력 특성의 가중치 합을 계산 ,대신 선형 회귀처럼 결과를 바로 출력 하지 않고 로지스틱(logistic)을 출력함

훈련과 비용 함수

로지스틱 회귀의 비용함수는 최소값을 계산하는 알려진 해가 없다. 하지만 볼록 함수 이므로 경사 하강법등을 이용하여 전역 최소값을 찾는 것을 보장 한다.

결정 경계

소프트맥스 회귀(softmax regression)

로지스틱 회귀는 여러개의 이진 분류기를 훈련시켜 연결하지 않고 ,직접 다중 클래스를 지원하도록 일반화 될수 있다

from sklearn.linear_model import LogisticRegression

softmax_reg = LogisticRegression(multi_class="multinomial",solver="lbfgs",C=10)

sklearn 의 LogisticRegression 은 클래스가 둘 이상을 때 (OvA) 전략을 사용 . 하지만 multi_class 매개변수를 multinomial로 바꾸면 소프트맥스 회귀를 사용! solver 도 lbfgs 와 같은 알고리즘으로 ...

'A > ML' 카테고리의 다른 글

Hands-On ML 6장  (0) 2020.09.14
Hands-On ML 5장  (0) 2020.09.13
Hands-On ML 3장  (0) 2020.09.11
Hands-On ML 2장  (0) 2020.09.10
Hands-on ML 1장  (0) 2020.09.09
Comments