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"로 바꾸면 사용 가능
'인공지능(AI) > 머신러닝' 카테고리의 다른 글
[핸즈온 머신러닝] 7장 앙상블 학습과 랜덤 포레스트 (0) | 2022.01.22 |
---|---|
[핸즈온 머신러닝] 6장 결정 트리 (0) | 2022.01.18 |
[핸즈온 머신러닝] 5장 서포트 벡터 머신 (1) | 2022.01.18 |
[핸즈온 머신러닝] 3장 분류 (0) | 2022.01.11 |
[핸즈온 머신러닝] 2장 머신러닝 프로젝트 처음부터 끝까지 (0) | 2022.01.08 |
댓글