독서 리마인더/핸즈온 머신러닝

4장

hwijin97 2021. 9. 13. 14:39

모델 훈련

 

4.1 선형 회귀

선형 모델 : 입력 특성과 가중치의 곱의 합과, 편향bias(상수)를 더한다.

 

y_hat : 예측값

n : 특성의 수

x_i : i번째 특성값

theta_j : j번째 모델 파라미터

간단하게 표현 가능

Theta : theta_0 ~ theta_n 까지의 특성 가중치를 담은 모델 파라미터 배열

x : x_0 ~ x_n 까지 샘플을 담은 특성 벡터 x_0 = 1 ( theta_0 * x_0 )

h_theta = 모델 파라미터 Theta 를 사용하는 가설 함수

 

열벡터를 사용하는 경우 : theta n x 1 의 열백터 => theta T 와 x의 행렬 곱 => 1 x 1의 행렬

내적을 사용하는 경우 : 스칼라

 

선형 회귀 모델 훈련 => 성능지표를 RMSE로 설정할 경우, RMSE를 최소화하는 theta 를 찾는 과정.

MSE와 RMSE는 찾는과정이 동일함.

 

4.1.1 정규방정식

비용함수를 최소화하는 theta를 찾기위한 해석적인 방법, 즉 수학공식인 정규방정식이 있다.

theta_hat : 비용함수를 최소화하는 theta

y : y^(1) ~ y(m) 까지 포함하는 타겟 벡터

 

 

특잇값분해(SVD) :

유사 역행렬 (무어-펜로즈 역행렬) :

정규 방정식에서 유사 역행렬을 이용하는 이유 : 정규방정식을 계산하는 것보다 효율적이고, 극단적인 경우 역행렬이 없는 경우 정규방정식은 작동하지 않지만, 유사 역행렬은 구할 수 있다.

 

4.1.2 계산 복잡도

역행렬 계산복잡도 : O(n^2.4) ~ O(n^3) 사이

SVD 방법 : O(n^2) // n = 특성의 수

 

 

4.2 경사 하강법 Gradient Descent(GD)

 

파라미터 벡터 theta에 대해서 비용 함수의 현재 그레디언트를 계산후, 감소한는 방향으로 진행한다.

-> 그레디언트가 0 이 되는 최소값을 찾는다.

 

theta 를 무작위 초기화(random initialization)후, 학습률(learning rate)에 따라 점진적으로 최소값에 수렴할 때까지 수행한다.

 

문제점 : 

비용 함수의 그래프 특징에 따라서 무작위 초기화는 전역 최소값 보다는, 지역 최소값에 수렴할 가능성이 있고,

평탄한 지역에서 수행할 경우, 시간이 오래걸리고 최소값에 도달하지 못한채로 일찍 멈추게 된다.

 

MSE 비용함수 : 볼록함수 convec function

 

주의 사항 : 

특성별 스케일이 매우 다르면 스케일이 커다란 특성쪽으로 길쭉한 모양이 될 수 있다.

이는 특성 값을 최소값에 수렴하는데 훨씬 오래걸린다.

 

비용 함수를 최소화하는 모델 파라미터 조합을 찾는 것을 파라미터 공간에서 찾는 다고 말한다.

 

4.2.1 배치 경사 하강법

 

각 모델 파라미터 theta_j 에 대해서 비용함수의 그레디언트를 구해야 한다.

theta_j 가 조금 변경될 때, 비용함수가 얼마나 변하는지 => 편도함수partial dervative 라고한다.

각 파라미터의 비용함수의 편도함수
비용 함수의 그레디언트 벡터

이 경사 하강법에서 X는 훈련데이터 전체를 의미하고, 각 스텝마다 훈련 데이터 전체를 계산하기 때문에, 매우 큰 훈련세트에서는 아주 느리다.

경사하강법은 특성수에 민감하지 않다. 수십만 개의 특성에서 선형 회귀훈련은 정규 방정식이나 SVD 보다, 경사 하강법이 훨신 빠르다.

 

경사 하강볍의 각 스텝

eta : 학습률

적절한 학습률을 찾기 위해서 그리드 탐색을 수행한다.

그리드 수행에 수렴하는 데 너무 오래걸리는 모델을 막기 위해 반복 횟수를 제한한다.

 

반복횟수가 너무 작으면 : 최적점에 도착하기전에 알고리즘이 멈춤

너무 크면 : 더는 변하지 않는 파라미터 스텝을 낭비

간단 해결책 : 큰 반복횟수를 지정 -> 그레디언트 벡터가 매우작아지면, 벡터의 노름이 어떤 값(허용오차tolerance) 보다 작아지면 알고리즘을 중지한다.

 

4.2.2 확률적 경사 하강법

Stochastic Gradient Descent : 각 스텝에서 하나의 샘플을 무작위 샘플을 하나 선택하고 그 샘플에 대한 그레디언트를 이번 스텝에 적용한다.

장점 : 매스텝 다뤄야할 데이터가 매우적어 매우 빠르다, 한번에 한 샘플의 메모리를 필요로 하므로 메모리 제한도 적다.

단점 : 기존 경사하강법 보다 훨씬 불안정하다. 시간이 지나 최소값에 근접하지만, 불안정으로 인해 최솟값에 안착하지 못한다.

특징 : 무작위성으로 인해 지역 최소값을 탈출시킬 확률이 커지지만, 전역 최소값에 다다르게 하지 못한다.

이를 해결하기위해 학습률을 점진적으로 감소시켜 전역 최소값에 도달하게 만든다.

담금질 기법simulated annealing 알고리즘와 유사하다.

이 학습률을 결정하는 함수를 학습 스케쥴learning schedule 이라고 한다.

 

학습률이 너무 빨리 줄어들면 지역 최소값에 갇히거나, 최소값에 가는 길에 멈춘다.

학습률이 너무 천천히 줄어들면 오랫동안 최소값 주변을 맴돌거나 훈련을 너무 일찍 중지해서 지역최소값에 갇힐수있다

 

샘플을 무작위로 선택하기 때문에 starvation 문제가 발생할 수 있다. 따라서 각 에폭마다 훈련 세트를 섞은 후 차례대로 하나씩 선택하고 다음 에폭에서 다시 섞는 식의 방법을 사용한다. sklaern의 SGDClassifier, SGDRegressor 의 구현법

IID 훈련 세트 : independent and identically distributed

 

4.2.3 미니배치 경사 하강법

mini-batch gradient descent : 전체의 훈련세트를 기준으로 하거나, 무작위 하나의 샘플을 기준으로 하는 그레디언트 계산이 아닌 미니배치라고 부르는 작은 샘플 세트에 대해 그레디언트를 계산한다.

GPU연산에 있어 성능향상 장점을 가진다.

 

미니배치 크기를 어느정도 크게하면 SGD보다 덜 불규칙하게 움직여 최소값에 더 근접하겠지만, 지역최소값에서 탈출하는 확률은 더 줄어든다.

 

정리

알고리즘 m이 클때(샘플 개수) 외부 메모리 학습 지원 n이 클때(특성 개수) 하이퍼 파라미터수 스케일 조정 필요 사이킷런
정규 방정식 빠름 No 느림 0 No N/A
SVD(특이값 분해) 빠름 No 느림 0 No LinearRegression
배치 경사 하강법 느림 No 빠름 2 Yes SGDRegressior
확률적 경사 하강법 빠름 Yes 빠름 >=2 Yes SGDRegressior
미니배치 경사 하강법 빠름 Yes 빠름 >=2 Yes SGDRegressior

 

 

4.3 다항 회귀

비선형 데이터, 단순한 직선보다 복잡한 형태일 경우, 훈련하는데 선형 모델의 도움을 받는다.

간단히 각 특성의 거듭 제곱을 새로운 특성으로 추가하고, 이 특성을 포함해 선형모델을 훈련시킨다. 즉, 2차원 형태의 비선형 데이터를 훈련시킨다. 이 방법을 다항 회귀polynomial regression 이라고 한다.

 

4.4 학습 곡선

훈련데이터 모델을 1차 다항, 2차다항, 300차 다항모델로 훈련 시켰을때, 1차는 과소, 300차는 과대, 2차가 가장 일반화가 잘되었다고 본다.

모델의 과소 적합과 과대 적합 여부, 얼마나 복잡한 모델을 선택할지 여부 판단은 교차 검증을 통해, 훈련점수가 높고 검증 점수가 낮으면 과대, 둘다 낮으면 과소적합이라고 본다.

또는, 학습 곡선을 이용한다. 이는 훈련세트와 검증세트의 모델 성능을 훈련세트 크기(또는 훈련 반복)의 함수 그래프로 나타낸다.

 

과소적합 그래프의 특징 : 훈련 오차와, 검증 오차곡선이 수평한 구간을 만들고 꽤 높은 오차에서 가까이 근접해 있다.

-> 훈련 데이터 추가에도 효과가 없다. 복잡한 모델 혹은 더 나은 특성 선택

과대적합 그래프의 특징 : 훈련 데이터의 오차가 비교적 훨씬 낮고, 훈련 오차와 검증 오차 곡선 사이에 공간이 있다. 

-> 곡선이 가까워질 때까지, 훈련 데이터 추가

 

편향 / 분산 트레이드 오프

편향 : 데이터가 실제는 높은 차원의 비선형 데이터인데, 이를 낮은 차원의 데이터로 가정하는 경우. -> 편향이 크다

분산 : 자그만 변동에 민감하게 반응하는 모델, 고차 다항 회귀모델의 경우, 훈련 데이터에 과대 적합 가능성이 있다. -> 분산이 크다

줄일 수 없는 오차irreducible error : 데이터 자체의 잡음 때문에, 오차를 줄일수 없는경우, 잡음을 제거한다.

 

4.5 규제가 있는 선형 모델

과대적합을 해소하는 좋은 방법은 모델을 규제하는 것이다. 

ex 다항회귀모델 : 차수를 낮춘다, 자유도를 줄인다, 분산을 줄인다.

 

4.5.1 릿지ridge 회귀 ( 티호노프Tikhonov 규제)

규제가 추가된 선형 회귀 버전이다. 

모델의 가중치가 가능한 한 작게 유지되도록 제한한다. 이 추가된항은 훈련 동안에만 비용함수에 추가한다.

하이퍼 파라미터 alpha 는 얼마나 많이 규제할 것인지 조절한다. alpha = 0 이면 규제가 없어지고,  alpha 가 매우크면 모든 가중치가 0에 가까워져 데이터의 평균을 지나는 수평선이 된다.

편향은 규제되지 않는다.(평균값을 나타내야하기 때문?)

규제항

4.5.2 라쏘Lasso(least absolute shrinkage and selection operator) 회귀

선형 회귀의 또다른 규제 버전이다.

가중치 벡터의 l1 norm을 사용한다.

라쏘 회귀

라쏘 회귀의 특징 : 덜 중요한 특성의 가중체를 제거( 가중치가 0 이됨. 라쏘 회귀는 자동으로 특성을 선택하고, 희소 모델sqarse model을 만든다.

 

4.5.3 엘라스틱 넷elastic net

엘라스틱 넷은 릿지 회귀와 라쏘 회귀를 절충한 모델이다. 규제항을 릿지와 회귀의 단순 덧셈으로 사용하고, 혼합비율을 r 로 조절한다.

보통 선형 회귀에서 규제가없는 모델은 피해야하고, 릿지가 기본이되지만, 몇개의 특성에 집중된다고 의심되면 라소나 엘라스틱넷이 좋다. 그런데 라쏘는 불필요한 특성을 0으로 만들어 버리는 특징때문에, 특성수가 훈련수보다 많거나, 특성 몇개가 강하게 연관되어있을 때 문제를 일으켜, 엘라스틱 넷을 사용한다.

 

4.5.4 조기 종료early stopping

 

반복적인 학습 알고리즘을 규제하는 방식중 또다른 하나는 검증 에러가 최소값에 도달하면 훈련을 중지시키는 것이다.

경사하강법에서 검증에러는 훈련에러와 함께 줄어들었다가 과대적합으로 검증에러는 증가하게되는데,

확률적 경사하강법이나 미니배치 경사 하강법에서는 곡선이 매끄럽지않아 정확한 최소값을 찾기힘들다.

따라서 어느 기간동안 검증 에러가 최소값보다 클때 최소값의 모델파라미터로 되돌린다.

 

4.6 로지스틱 회귀logistic regression

로지스틱 회귀는 분류에도 사용가능하다. 샘플이 특정 클래스에 속할 확률을 추정하는데 널리 사용된다.

추정 확률이 50%가 넘으면 해당 클래스에 속한다고 예측한다.(레이블 '1'인 양성클래스positive class) 아니면,

클래스에 속하지 않는다고 예측한다.(레이블 '0'인 음성 클래스 negative class) 이를 이진 분류기 라고한다.

 

4.6.1 확률 추정

로지스틱 회귀는 선형 회귀 모델과 같이 입력 특성의 가중치 합을 계산하고 편향을 더한다. 대신, 선형회귀와 다르게 결과값의 로지스틱logistic을 출력한다. 

로지스틱은 0 과 1 사이 값을 출력하는 시그모이드 함수sigmoid function 이다.

 

시그모이드 함수식

t가 양수이면 함수값은 0.5보다 크고 1로 예측하고, 음수이면 0.5 보다 작고 0으로 예측한다.

t를 종종 로짓logit이라고하고,  logit(p) = log(p / (1 - p)) 으로 정의되는 로짓함수가 로지스틱 함수의 역함수이다.

 

4.6.2 훈련과 비용 함수

로지스틱 회귀 모델의 훈련 방식은, 양성 샘플에 대해서는 높은 확률을 추정하고, 음성 샘플에 대해서는 낮은 확률을 추정하는 모델 파라미터를 찾는다. 

비용함수

모델이 양성샘플을 0에 가까운 확률로 추정하면 비용이 크게 증가한다. 그 반대의 경우도 마찬가지.

 

전체 훈련 세트에 대한 비용함수는 모든 훈련 샘플의 비용을 평균한 것이다. 이를 로그 손실 이라고한다.

 

로그 손실

이 비용 함수의 최소값을 알려진 해는 존재하지 않지만, 볼록 함수이므로 경사 하강법을 통해서 전역 최소값을 보장한다.

 

j번째 모델 파라미터 theta_j 에 대한 편미분식

각 샘플에 대해 모든 특성값에 대한 그레디언트를 구해서 벡터를 만들어 계산한다.

 

4.6.3 결정 경계

분류기의 경우, 특성의 어떤 값이 두 극단 사이를 분리하는 결정 경계를 갖는다.

로지스틱 회귀도 l1, l2 페널티를 이용하여 규제가 가능하다.

 

4.6.4 소프트맥스 회귀

로지스틱 회귀는 선형 회귀와 다르게 여러 개의 이진 분류기를 훈련시켜 연결하지 않고, 직접 다중 클래스를 지원하도록 일반화 되었다. 이를 소프트맥스 회귀softmax regression, 다항 로지스틱 회귀multinomail logistic regression이라고 한다.

샘플 x 이 주어지면, 각 클래스 k 에 대한 점수 s를 계산하고, 그 점수에 소프트맥스 함수를 적용하여 각 확률을 구한다.

theta^k 는 클래스 k 의 파라미터 벡터이다. 이 벡터들은 파라미터 행렬parameter matrix 에 저장된다.

클래스 점수가 계산되면, 소프트 맥스 함수에 통과시켜 클래스 k 에 속할확률 p_hat_k를 추정 가능하다.

로지스틱 회귀는 추정확률이 가장 높은 클래스(점수가 가장 높은 클래스)를 선택한다.

소프트 맥스 회귀 분류기는 한번에 하나의 클래스를 출력한다. multiclass 이지, multioutput은 아니다.

 

훈련 방법.

목적 : 모델이 타깃 클래스에 대해서 높은 확률을 추정하도록 만드는 것

방법 : 크로스 엔트로피cross entropy 바용 함수를 최소화하는 것은 모델 클래스에 낮은 확률을 예측하는 것을 억제한다.

 

크로스 엔트로피는 추정된 클래스의 확률이 타깃 클래스에 얼마나 잘 맞는지 측정하는 용도로 사용된다.

 

클래스 k에 대한 크로스 엔트로피의 그레디언트 벡터

 

---크로스 엔트로피

예를 들어 날씨 정보를 인코딩할때, 맑음을 1비트 0으로 인코딩하고, 다른 7개의 정보를 0으로시작하는 4비트로 표현한다고 할때, 과연 효율적인가를 맑음의 확률에 의해서 판단하는 방식이다.

맑음의 확률이 80%라고 가정할때, 실제 맑음의 비율이 80%이면 크로스 엔트로피는 날씨자체의 엔트로피와 동일하다.

하지만 실제 비율과 가정의 비율이 다르다면, 크로스 엔트로피는 쿨백-라이블러 발선Kullback-Leibler divergence양만큼 커진다.

확률분포 p, q의 크로스 엔트로피

---

'독서 리마인더 > 핸즈온 머신러닝' 카테고리의 다른 글

6장  (0) 2021.09.30
5장  (0) 2021.09.25
3장  (0) 2021.09.05
2장  (0) 2021.08.26
1장  (0) 2021.08.23