본문 바로가기
DL(Deep Learning)

Logistic Regression

by 솩코딩 2022. 1. 15.

안녕하세요. 솩코딩입니다.

오늘은 로지스틱 회귀에 대해 알아보려 합니다. 정말 중요한 모델인 만큼 꼼꼼히 알아봅시다.

 

 

<로지스틱 회귀의 가설 함수 정의>

logistic classification은 classification 중에서 정확도가 높은 알고리즘으로 알려져 있습니다.

regression은 숫자 예측이라면, classification 특히, binary classification은 둘 중 하나를 고르는 모델입니다.

 

예를 들어  스팸메일인지(spam) 아닌지(ham), 페이스북에서 timeline에서 어떤 게시물을 보여줄지(show) 안 보여줄지(hide), 신용카드 거래에서 합법인지 사기인지 등의 예시가 있습니다.

이를 0,1로 인코딩을 시켜 학습하게 됩니다. spam:1, ham:0/ show:1, hide:0/ fraud:1, legal:0 

또한 주식시장에서 주식을 살지말지를 이전의 시장 동향을 학습하여 할 수도 있습니다.

 

logistic classification을 linear regression라는 아이디어를 이용해보자.

 

그러나 이러한 모델에는 다음의 문제가 있습니다.

점이 오른쪽으로 갈수록 직선의 경사가 더 완만해지는데 pass였었던 애가 fail로 되는 문제가 있으며,

또 다른 문제는 classification은 0 or 1이 나오는데 linear regression값은 그 이상이 나올수도 있다는 것입니다.

만약, 50이 나왔다면, 50은 1보다 훨씬 큰 수로 모양이 좋지 않게 된다는 단점이 있습니다.

 

그래서 이를 보완하여 0~1 사이의 값으로 압축해주는 함수가 있으면 좋겠다고 하여 S자 형태의 곡선인

Sigmoid function (logistic function)가 등장하게 되었습니다.

 

-------------------------------------------------------------------------------------

<로지스틱 회귀의 cost function>

logistic regression에서는 linear regression과 다른 cost function을 써야 합니다.

앞서 나온 cost function을 쓰게 되면, convex function이 되지 않기 때문입니다.(울퉁불퉁)

 

고로, hupothesis도 바꾸었으니 해당하는 cost function도 바꾸어야 하며 앞의 울퉁불퉁한 형태를 잡아주기 위해

exponentional과 상극인 log 함수를 이용하고자 합니다.

 

그럼, 로지스틱 회귀의 cost function이 의미하는 바에 대해 이야기 해봅시다.

 

 

cost function 식에 if문이 있으므로 복잡해지므로 if문을 제외시켜 둘을 통합해보면 convex function이 됩니다.

 

 

여기서, threshold(보통은 0.5)를 주어서 이것보다 크면 pass(1), 작으면 fail(0)이라 하여

예측값과 실제값의 loss function을 줄이는 방향으로 나아간다고 생각하면 됩니다.

 

모델의 성능을 높이기 위해 문제점을 보완해가는 과정이 앞으로 공부해야 할 부분인 듯합니다.

그 과정에서 수학이 이용되는 것이 많아서 앞으로 공부할 내용이 기대가 되네요.ㅎㅎ 

감사합니다 :>

 

 

모두를 위한 딥러닝 시즌1(김성훈 교수님)

https://www.youtube.com/watch?v=BS6O0zOGX4E&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm 

솩코딩 깃허브

https://github.com/lala991204/DL-self-study