선형회귀로 풀기 힘든 문제들이 등장한다.
이 문제에서 입력값은 [공부한 시간] 그리고 출력값은 [이수 여부]가 된다. 우리는 이수 여부를 0, 1이라는 이진 클래스(Binary class)로 나눌 수 있다. 이런 경우를 이진 논리 회귀(Binary logistic regression)로 해결할 수 있다.
선형 회귀를 사용하는 것이 아닌 Logistic function(=Sigmoid function)을 사용하면 아래와 같이 만들 수 있다.
1. 이진 논리 회귀
과목을 이수할 확률이라고 하면, 답은 0과1 둘중 하나가 나오게 된다.
만약 input 데이터가 공부한 시간이고, output이 이수할 확률 이라고 한다면.
x시간만큼 공부했을때 통과할 확률은 y%이야!!라고 한다.
임게치는 threshold 라고 말을 한다.
시그모이드 함수를 통과하면 0에서 1사이의 값이 출력이 된다.
logistic regression 에서는 crossEntropy(손실값이 작도록 만들어) 라는 손실함수를 사용한다.
- Binary Cross Entropy 그래프
실제 그래프를 cost function에서 나온 값을 최소화하는 방향으로 학습을 시켜야 함
2. 다항 논리 회귀
두개가 아닌 3개 이상의 클래스를 다룰 경우 사용
- one-hot-encoding
여러개의 항을 0과1로만 표현한다
0 = [1,0,0,0,0]
1 = [0,1,0,0,0]
2 = [0,0,1,0,0]
3 = [0,0,0,1,0]
0 = [0,0,0,0,1]
- SoftMax
모든 가중치를 0.x로 변환을 하여서 모두 더하면 1.0이 되도록 만듦
단항에서는 sigmoid를 사용했다면, 다항에서는 softmax를 사용한다.
각 가중치는 0에서 1사이를 가질 수 있으며, 모두 더하면 1이된다.
그 중 가장 확률이 높은 얘를 CrossEntropy(categorical_crossentropy를 이용하여 one-hot-encoding을 진행하게 된다.
이진 논리 회귀와 다항 논리 회귀의 차이
라벨의 개수 | 클래스의 개수 | 손실함수 | 사용 함수 | |
이진 논리 회귀 | 2개 이하 | 2개 이하 | Binary Cross Entropy | sigmoid |
다항 논리 회귀 | 3개 이상 | 3개 이상 | categorical_crossentropy | softmax |
'머신러닝 > 머신러닝 TIL' 카테고리의 다른 글
딥러닝이란? (0) | 2022.05.15 |
---|---|
5월 15일 TIL(머신러닝의 모델) (0) | 2022.05.15 |
5월 13일 TIL (cost function) (0) | 2022.05.14 |
5월12일 TIL (머신러닝 기초) (0) | 2022.05.12 |
5월11일 TIL (colab 실습) (0) | 2022.05.11 |