해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.
강아지 사진을 y=1, 고양이 사진을 y=0이라고 하고
강아지 사진이 나올 확률을 q=1 고양이 사진이 나올 확률을 q=0이라고 정의하자.
그렇다면 강아지 사진이 나올 확률을 구하는 수식은 아래와 같다.
- qy(1−q)(1−y)qy(1−q)(1−y)
만약 사진을 100장 준다면 수식은 아래와 같다. 사진을 주는 행위는 독립시행이기때문에 곱한다.
- qy11(1−q1)(1−y1)qy22(1−q2)(1−y2)⋯qy100100(1−q100)(1−y100)qy11(1−q1)(1−y1)qy22(1−q2)(1−y2)⋯qy100100(1−q100)(1−y100)
하지만 이렇게 계속 0과 1사이의 값을 계속 곱하면 숫자가 너무 작아져 대소구별을 할 수 없는 underflow 문제가 발생한다.
따라서 loglog를 취한다.
곱이 합으로 바뀌었기 때문에 underflow 문제는 발생하지 않는다.
우리는 강아지 사진이 나올 확률을 maximize 할 것이기 때문에 로그를 취하나, 취하지 않나 그 결과는 동일하다.
MSE에서 에러를 다 squared해서 더한 후 전체 데이터의 개수로 나누지 않는 것과 같다.
해당 경우 나누나 나누지 않나 어차피 에러를 minimize 할 것이기 때문에 결과는 동일하다.
lossloss를 maximize 하는 것과 loglosslogloss를 maximize 하는 것의 방향은 같기 때문에, (loglog함수가 "단조증가"하기 때문)
lossloss를 maximize하나 loglosslogloss를 maximize하나 상관이 없다.
위와 같은 행위를 logistic regression이라고 한다.
logit이란, l=logoddsl=logodds이다.
oddsodds는 승산 이라고 하는데, 쉽게 말해 이길확률질확률이길확률질확률이다.
이길 확률을 qq라고 한다면 logit은 아래와 같이 수식으로 나타낼 수 있다.
- l=logq1−ql=logq1−q
위 수식을 잘 정리하면 sigmoid fuction이 나오는데,
따라서 sigmoid는 "logit을 가지고 확률을 구하는 식" 이라고 할 수 있다.
해당 logit을 linear regression 한게 logistic regression이다.
즉, 어떤 입력값이 linear activation fuction을 통과했고, 그 통과한 값에 log를 씌운다고 하자. 그리고 이걸 sigmoid에 통과시킨다. 그럼 결과는 logit이 나오게 된다. 우리는 이 logit을 linear regression으로 구했으니 우리는 logistic regression을 한 것이다.
(linear regression : 입력과 출력의 관계를 선형으로 놓고 추정하는 것)
'AI' 카테고리의 다른 글
딥러닝 학습의 본질 (MLE) (0) | 2024.09.05 |
---|---|
MSE vs Likelihood (convex한 함수가 loss function으로 사용되는 이유) (0) | 2024.09.05 |
선형 분류 & 퍼셉트론 (2) | 2024.09.04 |
Backpropagation (0) | 2024.09.03 |
MLP를 행렬과 벡터로 나타내기, Non-linear activation의 중요성 (2) | 2024.09.02 |