오늘은 4장 모델 훈련에 대해 정리하려고 한다. 수식적인 내용은 따로 더 알아보고 싶어서 이번엔 치대한 간결하게 내용만 정리했다.
는 예측된 값
은 feature 개수
는 i번째 feature 값
는 j번째 모델의 파라미터
이 식을 벡터화된 식으로 정리하면 아래와 같다
는 모델의 파라미터 벡터다.
편향인 를 포함하며 feature의 가중치 부터 을 포함한다
는 instance(데이터 인스턴스 또는 샘플)의 feature vector다.
부터 를 포함하며, 은 1이다
는 와 간의 외적이다.
값을 의미한다
는 hypothesis function(입력 데이터에 대한 예측을 수행하는 가설 함수)이며, 모델 파라미터 를 사용한다
모델을 훈련시키기 위해 RMSE 방식이나 MSE 방식을 사용한다
훈련 집합 에 대한 선형 회귀 가설 함수 를 계산하려면 아래 식을 이용할 수 있다.
파라미터 값을 담은 를 최소화 하는 비용함수를 구하기 위해 여러 방법이 있다. 명확한 수식으로 구하는 방법(닫힌 형태의 해)이 있다. 이 식을 Normal Equation(정규화 식)이라 한다.
Normal Equation
는 비용 함수를 최소화 한 값
는 부터 를 포함하는 타겟값
해를 구할 때 유사역행렬을 이용하는데, 이는 SVD를 이용하면 쉽게 구할 수 있음.
여러 종류에서 최적의 해법을 찾을 수 있는 일반적인 최적화 알고리즘
학습률 : 파라미터 스텝의 크기, 한 번에 내려가게 되는 정도라 생각하면 될 것 같다! 너무 작으면 전역 최솟값 도달 힘듦. 너무 크면 수렴안할 수 있어서 적당한 값 선택 필수
특성 스케일을 적용해야 빠르게 도달한다고 함
(x,y축을 같은 크기로 만들어준다 생각)
비용 함수가 얼마나 바뀌는지 계산 : 편도함수
적절한 학습률을 찾기 위해 그리드 서치 이용
하지만 그리드 서치는 수레기...느려
반복 횟수를 제한하면 되는데 이때 반복 횟루를 아주 크게 지정하고 그레이디언트 벡터가 아주 작아지면, 즉 벡터의 노름이 어떤 허용오차라 불리는 값보다 작아지면 중지하면 된다. 이렇게 허용오차보다 작아지면 경사 하강법이 거의 최솟값에 도달한 것이라 볼 수 있음.
매 스텝에서 한 개의 샘플을 랜덤으로 선택하고, 그 샘플에 대한 그레이디언트 계산한다. 랜덤으로 고르기에 훨씬 불안정하고 마구 요동치게 된다. 무엇보다 최솟값에 안착은 못한다. 하지만 전역 최솟값을 찾을 가능성이 높고 외부 메모리 학습이 가능한 등 장점이 많다
확률적 경사 하강법에서 한 개의 샘플이 아닌 미니 배치라 불리는 임의의 작은 샘플 세트를 고른다 보면 된다.
다항 함수를 그려서 예측을 할 수 있다고 보면 된다.
각 특성의 거듭제곱을 새로운 특성으로 추가하고, 이 확장된 특성을 포함한 데이터셋에 선형 모델 훈련시키면 된다.
고차 다항 회귀 → 훈련 데이터 과대적합 ↑
성능 ↑ 교착 검증 점수 ↓ → 과대적합
성능 ↓ 교착 검증 점수 ↓ → 과소적합
과대적합 모델 개선하려면 검증 오차가 훈련 오차에 근접할 때까지 더 많은 훈련 데이터를 추가하는 것!
규제가 추가된 선형 회귀 버전, 훈련하는 동안에만 비용 함수에 추가된다.
릿지 회귀의 정규 방정식
선형 회귀의 또 다른 규제 버전, 릿지 회귀처럼 비용 함수에 규제항을 더하지만 노름 대신 노름 사용
덜 중요한 특성의 가중치를 제거하려고 함.
즉 자동으로 특성을 수행하고 희소 모델을 만든다.
*라쏘의 비용 함수는 일 때 서브그레이디언트 벡트 를 사용하면 경사하강법을 적용하는데 문제가 안 든다.
릿지 회귀와 라쏘 회귀를 절충한 모델
규제항 : 릿지와 휘괴의 규제항을 더한 것, 혼합 정도는 혼합 비율 r을 이용해 조절
r=0 → 릿지 회귀
r=1 → 라쏘 회귀
일단 평범한 선형 모델은 피하고, 릿지기 기본이 되지만 몇 가지 특성만 유용해 보이면 라쏘나 엘라스틱넷 선택! 특성 수가 훈련 샘플 수보다 많거나 특성 몇 개가 강하게 연관되어 있을 때는 라쏘보다는 엘라스틱넷 이용!
검증 오차가 최솟값에 도달하면 바로 훈련을 중지시키는 것
제프리 힌턴이 '훌륭한 공짜 점심'이라고 부름
생각보다 효과가 크다고 한다.
샘플이 특정 클래스에 속할 확률을 추정하는데 이용
임곗값(보통 50%) 크면 양성 클래스(label=1), 작으면 음성 클래스(label=0)
선형 회귀 모델과 같이 입력 특성의 가중치 합 계산 + 편향
선형 회귀 처럼 바로 결과 출력이 아닌 로지스틱 출력
로지스틱 : 0과 1 사이의 값을 출력하는 시그모이드 함수
모델의 파라미터 벡터를 찾는 것
로그 손실 : 전체 훈련 세트에 대한 비용 함수는 모든 훈련 샘플의 비용을 평균한 것
로그 손실은 최적해가 없지만 convex라 경사 하강법으로 전역 최솟값을 구할 수 있음.
로지스틱 회귀 모델은 이진 분류기를 훈련시켜 연결하지 않고 직접 다중 클래스 지원하도록 일반화 가능
이를 소프트맥스 회귀 또는 다항 로지스틱 회귀라 부름
방법 : 샘플 x가 주어지면 소프트맥스 회귀 모델이 각 클래스에 대한 점수를 계산하고, 그 점수에 소프트맥스 함수(정규화된 지수 함수)를 적용하여 각 클래스의 확률을 추정함.
각 클래스는 자신만의 파라미터 벡터가 있고, 이 벡터들은 파라미터 행렬에 행으로 저장된다.
"모델이 타깃 클래스에 대해서는 높은 확률을, 다른 클래스에서는 낮은 확률이 추정되도록 만드는 것이 목적" → 크로스 엔트로피 비용 함수를 최소화 하는 것