Sigmoid를 이용한 이진 분류, Logistic Regression
해당 게시물은 "혁펜하임의 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 : 입력과 출력의 관계를 선형으로 놓고 추정하는 것)