4장도 길었다…. 이번 장에서는 다중 분류에서 사용할 수 있는 로지스틱 회귀와 확률적 경사 하강법 분류기를 배웠다. 이후 딥러닝에 나오게 될 시그모이드 함수, 소프트맥스 함수, 경사 하강법에 대해서도 학습했다. 자주 듣던 이름들인데 정확히 어떻게 작동하는지, 어디서 어떤 역할을 하는지 배울 수 있어서 뿌듯했다. 😊
로지스틱 회귀
- 분류 문제에서 특정 클래스일 확률 구하기
- 다중 분류 문제(multi-class classification)에서 사용
- 선형회귀와 마찬가지로 선형 방정식을 학습
- z를 확률로 만들기 위해 시그모이드 함수 적용(0~1사이의 값으로..)
- 0.5일 때 판정은 라이브러리마다 다를 수 있다. 사이킷런은 음성으로 판정
- 이진 분류일 때 사용됨.
- 다중 분류
- 각 클래스에 대해서 선형 방정식을 학습함. 클래스가 7개면 7개의 모델은 7개의 선형 방정식이 됨.
- 소프트맥수 함수 적용. (scipy.special.softmax)
- 여러 개의 선형 방정식의 출력값을 0~1 사이로 압축하고 전체 합이 1이 되도록..
- 시그모이드와 소프트맥스 함수는 신경망(딥러닝)에서도 중요
확률적 경사 하강법
- 점진적 학습(온라인 학습)
- 모든 데이터를 한 번에 학습하지 말고..조금씩 떼어서..
- 경사 하강법 : 조금씩 학습하기
- 에포크(epoch) : 훈련 세트를 한번 모두 사용하는 과정, 수십 수백번..
- 학습률(Learning Rate)
- 확률적 경사 하강법(Stochastic Gradient Descent, SGD)
- 미니배치 경사 하강법 : 한 번에 여러 개
- 배치 경사 하강법 : 홀라당 한번에, 이게 적절할 때도..
- 어디서 하강하는 것인가? : 손실함수
- 손실함수는 미분 가능해야 함
- 틀린 답을 내면 값이 커져야 함
- 로지스틱 손실 함수(logistic loss or binary cross entropy loss)
- 이 함수로 로지스틱 회귀 모델을 만들 수 있다~!?!
- 이진 분류에서 사용
- 크로스 엔트로피 손실 함수(cross entropy loss) : 다중 분류
- 그럼 문제에 알맞은 손실 함수 고르면 되는건가?
- 에포크, 과대적합, 과소적합
- 에포크 횟수에 따라..과대적합, 과소적합 나타날 수 있다
- 에포크 많이 돌리면 훈련 세트에 너무 적합해짐
- 적정 횟수는? 찾아가면서..해야..
- 조기 종료(early stopping) : 과대적합되기 전에 멈추기
- ❓ partial_fit과 max_iter의 관계는?