머신러닝/머신러닝 TIL

5월14일 TIL(논리회귀, Logistic regression)

khw7876 2022. 5. 15. 00:42

선형회귀로 풀기 힘든 문제들이 등장한다.

 

이 문제에서 입력값은 [공부한 시간] 그리고 출력값은 [이수 여부]가 된다. 우리는 이수 여부를 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