혼공단 13기 머신러닝+딥러닝

[혼공머신] 3주차_챕터4. 다양한 분류 알고리즘

짐꾸러기 2025. 1. 21. 01:18

 

혼자 공부하는 머신러닝+딥러닝

 

 

오늘은 3주차!

 

벌써 챕터4까지 오다니!

인공지능 짱짱이 되기까지도 얼마 멀지 않았꾼ㅋㅋ

(아닌거 압니다 더 노력해야죠 흑흑...ㅜㅜ)

 

 

 

 


 

숙제


 

Chapter 4 (04-1) 2번 문제: 로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요?

 

① 시그모이드 함수

② 소프트맥스 함수

③ 로그 함수

④ 지수 함수

 

풀이: 로지스틱 회귀에서 이진 분류일 경우에는 시그모이드 함수, 다중 분류일 경우에는 소프트맥스 함수를 사용한다. 이 문제에서는 이진 분류에서 확률을 출력하기 위해 사용하는 함수에 대해 물어 보았으므로 답은 ①번이다.

 

답: ①번

 


 

챕터 4에서는 로지스틱 회귀, 확률적 경사 하강법에 대한 내용에 대해 배운다.

 

 


 

 

로지스틱 회귀: 선형 방정식을 사용한 분류 알고리즘. 선형 회귀와 달리 시그모이드 함수나 소프트맥스 함수를 사용하여 클래스 확률을 출력할 수 있음.

다중 분류: 타깃 클래스가 2개 이상인 분류 문제. 로지스틱 회귀는 다중 분류를 위해 소프트맥스 함수를 사용하여 클래스를 예측함.

시그모이드 함수: 선형 방정식의 출력을 0과 1 사이의 값으로 압축하며 이진 분류를 위해 사용함.

소프트맥스 함수: 다중 분류에서 여러 선형 방정식의 출력 결과를 정규화하여 합이 1이 되도록 만든다.

 

 

scikit-learn, LogisticRegression(): 선형 분류 알고리즘인 로지스틱 회귀를 위한 클래스

 

 

predict_proba() 메서드는 예측 확률을 반환함. 이진 분류의 경우 샘플마다 음성 클래스와 양성 클래스에 대한 확률을, 다중 분류의 경우 샘플마다 모든 클래스에 대한 확률을 반환함.

**decision_function()**은 모델이 학습한 선형 방정식의 출력을 반환. 이진 분류의 경우 양성 클래스의 확률, 다중 분류의 경우 각 클래스마다 선형 방정식을 계산함. 가장 큰 값의 클래스가 예측 클래스가 됨.

 

 


 

 

 

시그모이드 함수는 대충 오른쪽으로 올라가는 지렁이처럼 생긴 함수이다.

 

화난 뱀? 같이 생김

 

 

0~1 사이의 값을 출력하며 이진 분류시에 사용된다고 한다.

 

 

 

 

 

소프트맥스 함수는 식이 뭔가 개짜증나게 생겼다.

 

무슨 함수일지 궁금해서 찾아본건데

정말 보기 싫게 생겼다..

모든 전체 확률에서 특정 클래스 ezi에 속할 확률을 구하는 느낌...............

이라고 한다.

 

 


 

 

확률적 경사 하강법: 훈련 세트에서 샘플 하나씩 꺼내 손실 함수의 경사를 따라 최적의 모델을 찾는 알고리즘. 샘플을 하나씩 사용하지 않고 여러 개를 사용하면 미니배치 경사 하강법이 됨. 한 번에 전체 샘플을 사용하면 배치 경사 하강법이 됨.

손실 함수: 확률적 경사 하강법이 최적화할 대상입니다. 대부분 문제에 잘 맞는 손실 함수가 의미 정의되어 있음. 이진 분류에는 로지스틱 회귀(또는 이진 크로스엔트로피) 손실 함수를 사용. 다중 분류에는 크로스엔트로피 손실 함수를 사용. 회귀 문제에는 평균 제곱 오차 손실 함수를 사용.

에포크: 확률적 경사 하강법에서 전체 샘플을 모두 사용하는 한 번 반복을 의미. 일반적으로 경사 하강법 알고리즘은 수십에서 수백 번의 에포크를 반복함.

 

 

scikit-learn, SGDClassifier는 확률적 경사 하강법을 사용한 분류 모델을 만든다. loss 매개변수는 최적화할 손실 함수를 지정. 기본값은 서포트 벡터 머신을 위한 ‘hinge’ 손실 함수. 로지스틱 회귀를 위해서는 ‘log’로 지정. penalty 매개변수에서 규제의 종류를 지정할 수 있다. 기본값은 L2 규제를 위한 ‘l2’. L1 규제를 적용하려면 ‘l1’로 지정. 규제 강도는 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에서 설명한 매개변수는 동일하게 사용됨.

 

 


 

 

확률적 경사 하강법, 손실 함수, 에포크도 머신러닝에 있어서

중요한 개념이기 때문에

머릿속에 꼭 꼭 넣어두어야만해!!

 

 

 

4장까지 공부를 마치고 나니

머신러닝에 대한 어느 정도의 공부를 마친듯한 느낌이 든다.

 

목차를 보아하니 챕터5, 챕터6에서는 머신러닝 알고리즘 종류?

에 대해 여러가지 소개되어 있는 것 같다.

 

4주차 5주차는 쉽지 않겠군...

 

 

 

 

이걸로 벌써 3주차라니, 시간이 너무 빠르다..

 

영원히 방학을 즐기는 대학생으로 남아있을 줄 알았는데...

 

 

그렇지만 정신차리고

 

남은 방학도 혼공머신과 함께

알찬 시간을 보내보자