AI

Sigmoid를 이용한 이진 분류, Logistic Regression

pullwall 2024. 9. 4. 18:23
728x90
해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.

강아지 사진을 y=1, 고양이 사진을 y=0이라고 하고

강아지 사진이 나올 확률을 q=1 고양이 사진이 나올 확률을 q=0이라고 정의하자.

 

그렇다면 강아지 사진이 나올 확률을 구하는 수식은 아래와 같다.

  • $q^{y}(1-q)^{(1-y)}$

만약 사진을 100장 준다면 수식은 아래와 같다. 사진을 주는 행위는 독립시행이기때문에 곱한다.

  • $q_1^{y_1}(1-q_1)^{(1-y_1)}q_2^{y_2}(1-q_2)^{(1-y_2)} \cdots q_{100}^{y_{100}}(1-q_{100})^{(1-y_{100})}$

 

하지만 이렇게 계속 0과 1사이의 값을 계속 곱하면 숫자가 너무 작아져 대소구별을 할 수 없는 underflow 문제가 발생한다.

 

따라서 $\log$를 취한다.

 

곱이 합으로 바뀌었기 때문에 underflow 문제는 발생하지 않는다.

 

우리는 강아지 사진이 나올 확률을 maximize 할 것이기 때문에 로그를 취하나, 취하지 않나 그 결과는 동일하다.

 

MSE에서 에러를 다 squared해서 더한 후 전체 데이터의 개수로 나누지 않는 것과 같다.

해당 경우 나누나 나누지 않나 어차피 에러를 minimize 할 것이기 때문에 결과는 동일하다.

 

$loss$를 maximize 하는 것과 $\log{loss}$를 maximize 하는 것의 방향은 같기 때문에, ($\log$함수가 "단조증가"하기 때문)

$loss$를 maximize하나 $\log{loss}$를 maximize하나 상관이 없다.

 


 

위와 같은 행위를 logistic regression이라고 한다.

 

logit이란, $l=\log{odds}$이다.

 

$odds$는 승산 이라고 하는데, 쉽게 말해 $\frac{이길 확률}{질 확률}$이다.

 

이길 확률을 $q$라고 한다면 logit은 아래와 같이 수식으로 나타낼 수 있다.

  • $l=\log{\frac{q}{1-q}}$

위 수식을 잘 정리하면 sigmoid fuction이 나오는데,

따라서 sigmoid는 "logit을 가지고 확률을 구하는 식" 이라고 할 수 있다.

 

해당 logit을 linear regression 한게 logistic regression이다.

 

즉, 어떤 입력값이 linear activation fuction을 통과했고, 그 통과한 값에 log를 씌운다고 하자. 그리고 이걸 sigmoid에 통과시킨다. 그럼 결과는 logit이 나오게 된다. 우리는 이 logit을 linear regression으로 구했으니 우리는 logistic regression을 한 것이다.

 

(linear regression : 입력과 출력의 관계를 선형으로 놓고 추정하는 것)

 

 

728x90