본문 바로가기
DataScience/머신러닝

머신러닝 :: 논리 회귀(Logistic Regression) 개념

by 올커 2022. 10. 11.

머신러닝 논리 회귀(Logistic Regression)


1. 논리 회귀(Logistic Regression)

 1) Logistic Function(=Sigmoid Function)

 · 로지스틱 함수는 어떤 입력값(x)에도 출력결과(y)가 항상 0에서 1사이의 값이 된다.

   다시 말하면, x값이 음수방향으로 갈수록 출력값이 0에 수렴하고, 양수방향으로 커질 수록 출력값이 1에 수렴하는 함수이다.

※ 출처 : ResearchGate(https://www.researchgate.net/figure/An-illustration-of-the-signal-processing-in-a-sigmoid-function_fig2_239269767)

   아래 그림의 경우 초록색 선을 임계치(Threshold)로 사용하여 0.5를 통과하면 Pass, 통과하지 않으면 Fail 등과 같이 판단기준으로 사용할 수 있다. 경우에 따라서 임계치는 높이거나 낮추도록 조정할 수 있다.

※ 출처 : https://ursobad.tistory.com/44

 

 2) 논리회귀에서의 식

 · 시그모이드 함수에 선형회귀식을 대입하여 사용한다.

 · 이 때 손실함수는 아래와 같이 표현할 수 있다.

 · 위의 식보다 손실함수를 예측하는 것이 중요하다.

 · CrossEntropy함수는 다른 사건의 확률을 곱해서 Entropy를 계산한 것으로, 신경망의 손실함수로 활용되며, 머신러닝의 분류 모델의 수행능력을 측정하는 지표가 된다.

출처: https://machinelearningknowledge.ai/cost-functions-in-machine-learning/

 · Logistic regression에서는 손실함수를 최소화하는 방향으로 학습하여 확률분포그래프를 그리며, 이때의 손실함수가 Cross Entropy가 된다.

 · Keras에서 이진 논리 회귀의 경우 binary_crossentropy 손실함수를 사용한다.

 

2. 다항 논리 회귀(Multinomial Logistic Regression)

 1) 원 핫 인코딩(One-hot encoding)

 다항 분류(Multi-label classification) 문제를 풀 때 출력값의 형태를 표현하는 방법 중 하나.

 

※ 원 핫 인코딩 예시

성적 클래스(Class) One-hot encoded
A 0 [1, 0, 0, 0, 0]
B 1 [0, 1, 0, 0, 0]
C 2 [0, 0, 1, 0, 0]
D 3 [0, 0, 0, 1, 0]
E 4 [0, 0, 0, 0, 1]

 - 원 핫 인코딩을 만드는 방법

  1. 클래스(라벨)의 개수만큼 배열을 0으로 채운다.
  2. 각 클래스의 인덱스 위치를 정한다.
  3. 각 클래스에 해당하는 인덱스에 1을 넣는다.

 2) Softmax 함수와 손실함수

 · 다항 논리회귀에서는 여러개의 항이 있기 때문에 0과 1로만 결과를 표현하기 어렵다.

  Softmax는 선형 모델에서 나온 결과(Logit)를 모두가 더하면 1이 되도록 만들어주는 함수이다.

※ 출처: https://www.tutorialexample.com/implement-softmax-function-without-underflow-and-overflow-deep-learning-tutorial/
※ 출처: https://www.programmersought.com/article/62574848686/

 · 위의 그림에서 보면 알 수 있듯이, Logit에서 비슷한 가중치를 만들어주고

   전체 합이 1이 되도록 만들어주는 함수가 softmax함수이다.

   그리고 이 결과를 정답값과 비교하여 차이를 줄여주는 함수가 Cross Entropy가 된다.

   (*Keras에서는 다항논리 회귀의 경우 categorical_crossentropy 손실함수를 사용한다.)

 

 

반응형

댓글