목표
4회차: 7/27 14:00 ~ 17:00
계획: 딥러닝 교재 Chapter4 학습, (시간이 남을 시 파이썬 복습)
결과
4-1. 로지스틱 회귀
개념정리
로지스틱 회귀
- 선형 방정식을 사용한 분류 알고리즘
- 시그모이드 함수나 소프트맥스 함수를 사용하여 클래스 확률을 출력
다중 분류
- 타깃 클래스가 2개 이상인 분류 문제
- 로지스틱 회귀는 다중 분류를 위해 소프트맥스 함수를 사용해 클래스를 예측
시그모이드 함수
- 선형 방정식의 출력을 0과 1 사이의 값으로 압축해 이진 분류를 위해 사용
소프트맥스 함수
- 다중 분류에서 여러 선형 방정식의 출력 결과를 정규화해 합이 1이 되도록 만듦
패키지 및 함수
skiti-learn 패키지
LogisticRegression
- 로지스틱 회귀를 위한 클래스
- solver 매개변수에서 사용할 알고리즘을 선택, 기본 값은 '1bfgs', 'sag'(확률적 평균 경사 하강법) 및 'saga'('sag' 개선 버전) 존재
- penalty 매개변수에서 규제 방식을 선택, L1 규제(라쏘 방식) 및 L2 규제(릿지 방식) 존재, 기본값은 L2 규제를 의미하는 'l2'
- C 매개변수에서 규제의 강도를 제어, 기본값이 1.0, 값이 작을수록 규제가 강해짐
predict_proba()
- 예측 확률을 반환
- 이진 분류 경우에는 샘플마다 음성 클래스와 양성 클래스에 대한 확률을 반환
- 다중 분류 경우에는 샘플마다 모든 클래스에 대한 확률을 반환
decision_function()
- 모델이 학습한 선형 방정식의 출력을 반환
- 이진 분류 경우에는 클래스의 확률이 0보다 크면 양성 클래스, 작거나 같으면 음성 클래스로 예측
- 다중 분류 경우에는 각 클래스마다 선형 방정식을 계산, 가장 큰 값의 클래스가 예측 클래스가 됨
실습
Practice 4-1
3-2. 확률적 경사 하강법
개념정리
확률적 경사 하강법
- 훈련 세트에서 샘플 하나씩 꺼내 손실 함수의 경사를 따라 최적의 모델을 찾는 알고리즘
- 샘플을 하나씩 사용하지 않고 여러 개를 사용하면 미니배치 경사 하강법이 됨
- 한 번에 전체 샘플을 사용하면 배치 경사 하강법이 됨
손실 함수
- 확률적 경사 하강법이 최적화할 대상
- 이진 분류에는 로지스틱 회귀 손실 함수를 사용
- 다중 분류에는 크로스엔트로피 손실 함수를 사용
- 회귀 문제에는 평균 제곱 오차 손실 함수를 사용
에포크
- 확률적 경사 하강법에서 전체 샘플을 모두 사용하는 한 번 반복
- 일반적으로 경사 하강법 알고리즘은 수십에서 수백 번의 에포크를 반복
패키지 및 함수
skiti-learn 패키지
SGDClassifier
- 확률적 경사 하강법을 사용한 분류 모델을 만듦
- loss 매개변수는 확률적 경사 하강법으로 최적화할 손실 함수를 지정, 기본 값은 서포트 벡터 머신을 위한 'hinge' 손실 함수, 로지스틱 회귀를 위해선 'log'로 지정
- penalty 매개변수에서 규제의 종류를 지정, 이는 LogisticRegression에서와 같은 방법, 규제 강도는 alpha 매개변수에서 지정하며 기본값은 0.0001
- max_iter 매개변수는 에포크 횟수를 지정, 기본값은 1000
- tol 매개변수는 반복을 멈출 조건, n_iter_no_change 매개변수에서 지정한 에포크 동안 손실이 tol만큼 줄어들지 않으면 알고리즘이 중단됨, tol 매개변수의 기본값은 0.001이고 n_iter_no_change 매개변수의 기본값은 5
SGDRegressor
- 확률적 경사 하강법을 사용한 회귀 모델을 만듦
- loss 매개변수에서 손실 함수를 지정, 기본값은 제곱 오차를 나타내는 'squared_loss'
- SGDClassifier와 매개변수가 같음
실습
Practice 4-2