본문 바로가기
인공지능(AI)/머신러닝

[핸즈온 머신러닝] 4장 모델 훈련

by hyezzisss 2022. 1. 17.

1. 선형 회귀

  • 입력 특성의 가중치 합과 편향이라는 상수를 더해 예측을 만듦
  • 회귀에 가장 널리 사용되는 성능 측정 지표는 RMSE

정규 방정식 : 비용 함수를 최소화하는 Θ 값을 찾기 위한 해석적인 방법으로 바로 결과를 얻을 수 있는 수학 공식

from sklearn.linear_model import LinearRegression

lin_reg = LinearRegression()
lin_reg.fit(X, y)

2. 경사 하강법

  • 여러 종류의 문제에서 최적의 해법을 찾을 수 있는 일반적인 최적화 알고리즘
  • 기본 아이디어는 비용 함수를 최소화하기 위해 반복해서 파라미터를 조정
  • 파라미터 벡터 Θ에 대해 비용 함수의 현재 그레이디언트를 계산 후 감소하는 방향으로 진행하며 0이 되면 최솟값에 도달
  • 중요한 파라미터는 스텝의 크기로 학습률 하이퍼파라미터로 결정 -> 너무 작으면 오래 걸림
  • 경사 하강법을 사용할 때는 반드시 모든 특성이 같은 스케일을 갖도록 만들어야 함 -> 그렇지 않으면 수렴하는데 훨씬 오래 걸림
  • 특성 수에 민감하지 않으며 수십만 개의 특성에서 선형 회귀를 훈련시키려면 정규 방정식이나 SVD 분해보다 경사 하강법 사용하는 것이 훨씬 빠름

1) 배치 경사 하강법

  • 편도 함수 : Θj가 조금 변경될 때 비용 함수가 얼마나 바뀌는지 계산
  • 매 경사 하강법 스텝에서 전체 훈련 세트 X에 대해 계산 -> 매 스템에서 훈련 데이터 전체를 사용 -> 매우 큰 훈련 세트에서는 아주 느림

2) 확률적 경사 하강법

  • 매 스텝에서 한 개의 샘플을 무작위로 선택하고 그 하나의 샘플에 대한 그레이디언트를 계산
  • 매 반복에서 다뤄야 할 데이터가 매우 적기 때문에 한 번에 하나의 샘플을 처리하면 훨씬 알고리즘이 빠름
  • 매 반복에서 하나의 샘플만 메모리에 있으면 되므로 매우 큰 훈련 세트도 훈련 가능
  • 그러나 배치 경사 하강법보다 확률적이므로 훨씬 불안정
  • 무작위성은 지역 최솟값에서 탈출시켜줘서 좋지만 알고리즘을 전역 최솟값에 다다르지 못하게 함 -> 학습률을 점진적으로 감소시켜 해결하기

3) 미니 배치 경사 하강법

  • 각 스텝에서 미니배치라 부르는 임의의 작은 샘플 세트에 대해 그레이디언트를 계산
  • 행렬 연산에 최적화된 하드웨어, 특히 GPU를 사용해서 얻는 성능 향상의 장점이 있음

3. 다항 회귀

  • 비선형 데이터를 학습하는데 선형 모델을 사용하기 위해 각 특성의 거듭제곱을 새로운 특성으로 추가하고 이 확장된 특성을 포함한 데이터셋에 선형 모델을 훈련시키는 기법

4. 규제가 있는 선형 모델

  • 과대적합을 감소시키는 좋은 방법은 모델을 규제하는 것 -> 자유도를 줄이면 데이터에 과대적합되기 더 어려워짐

1) 릿지 회귀

  • 규제가 추가된 선형 회귀 버전으로 규제항이 비용 함수에 추가됨
  • 입력 특성의 스케일에 민감하기 때문에 수행하기 전에 데이터의 스케일을 맞추는 것이 중요

릿지 회귀의 비용 함수

2) 라쏘 회귀

  • 릿지 회귀처럼 비용 함수에 규제항을 더하지만 가중치 벡터의 l1 노름을 사용
  • 라쏘 회귀의 중요한 특징은 덜 중요한 특성의 가중치를 제거하려고 한다는 점 -> 가중치가 0이 됨 -> 자동으로 특성을 선택하고 희소 모델을 만듦

 

라쏘 회귀의 비용 함수

3) 엘라스틱넷

  • 릿지 회귀와 라쏘 회귀를 절충한 모델
  • 규제항은 릿지와 회귀의 규제항을 단순히 더해서 사용하며, 혼합 정도는 혼합 비율 r을 사용해 조절
    • r=0: 릿지 회귀, r=1: 라쏘 회귀

선택 방법

  • 약간의 규제는 있는 것이 좋으므로 평범한 선형 회귀는 피해야 함
  • 릿지 회귀가 기본이 되지만 쓰이는 특성이 몇 개뿐이라고 의심되면 라쏘나 엘라스틱넷이 나음
  • 특성 수가 훈련 샘플 수보다 많거나 특성 몇 개가 강하게 연관되어 있을 때는 엘라스틱 넷을 선호

4) 조기 종료

  • 반복 학습 알고리즘을 규제하는 방식 중 하나로 검증 에러가 최솟값에 도달하면 바로 훈련을 중지

5. 로지스틱 회귀

  • 분류 알고리즘에 사용

1) 확률 추정

  • 선형 회귀 모델과 같이 입력 특성의 가중치 합을 계산 후 결괏값의 로지스틱을 출력
  • 로지스틱 함수 : 시그모이드 함수로 0과 1 사이의 값을 출력

2) 훈련과 비용 함수

  • 양성 샘플에 대해서는 높은 확률을 추정하고 음성 샘플에 대해서는 낮은 확률을 추정하는 모델의 파라미터 벡터 Θ를 찾는 것이 훈련의 목적

3) 소프트맥스 회귀

  • 여러 개의 이진 분류기를 훈련시켜 연결하지 않고 직접 다중 클래스를 지원하도록 일반화된 모델
  • 샘플이 주어지면 먼저 소프트맥스 회귀 모델이 각 클래스 k에 대해 점수를 계산하고 그 점수에 대해 소프트맥스 함수를 적요하여 각 클래스의 확률을 추정
  • 크로스 엔트로피 비용 함수를 최소화하는 것은 타깃 클래스에 대해 낮은 확률을 예측하는 모델을 억제하므로 이 목적에 부합 
    • 크로스 엔트로피는 추정된 클래스의 확률이 타깃 클래스에 얼마나 잘 맞는지 측정하는 용도로 종종 사용됨
  • 사이킷런의 LogisticRegression의 multi_class 매개변수를 "multinomial"로 바꾸면 사용 가능

 

 

 

 

 

댓글