코딩복습장
Multiple Linear Regression, Logistic Regression 본문
이번 포스팅은 Logistic Regression에 대해서 다루려고 한다.
우리는 이전 포스팅에서 Linear Regression을 다뤘다.
Linear Regression에서 우리는 data에 모양 맞도록 선형 방정식을 수정해나가는 법을 배웠다.
이번시간에는 Linear Regression을 활용하여 Classification(분류)문제에 접근하는 방식에 대해 배워볼 것이다.
Regression model은 크게 다음과 같이 분류할 수 있다.
이전에 우리는 Linear Regression에서 Single Variable을 가진 선형방정식을 사용했다.
이번엔 Multiple Variable을 가진 Regression도 다뤄볼 것이다.
Multiple Linear Regression의 수식과 Single Linear Regression의 수식을 비교하면 다음과 같다.
위의 수식이 Single (W가 1개), 아래 수식이 Multiple(W가 2개 이상) 이다.
단순히 선형방정식의 variable만 늘어난 상태이고 Loss function은 모두 동일하게 사용한다.
하지만 데이터가 여러개 (축이 여러개) 이므로 예측하는 것은 직선이 아니라 평면이 될 수도, 그 이상의 차원 모형이 될 수도 있다.
이 상황에서도 이전과 동일하게 Gradient Descent를 사용하여 weight를 업데이트 한다.
업데이트하는 과정을 그림으로 다음과 같이 표현할 수 있다.
이때 weight에 대한 편미분을 하기 때문에 각각의 variable에 대한 기울기를 구하여 가중치를 업데이트 한다고 보면 된다.
(편미분 할때 다른 varialble은 상수취급하므로 아래 그림처럼 생각 가능)
자 이제 Multiple Linear Regression에 대한 설명이 모두 끝났다.
이제 Logistic Regression에 대해 설명을 해보겠다.
Logistic Regression은 Classification task를 풀기 위해 고안한 방법이다.
이때 분류할 대상은 2가지 이다.
ex) 강아지, 고양이 분류문제
Regression이 data를 가장 잘 나타내는 선을 찾는 과정이라면 Classification은 데이터를 가장 잘 분류하는 선을 찾는
과정이라고 생각할 수 있다.
우리는 지금까지 Cost function으로 MSE를 사용해왔다.
물론 MSE를 사용해도 될 것이다.
ex) 1과 0.9의 차이를 제곱한 값이 오차가 될 수 있음
그러나 우리는 정확한 확률값을 예측하는 모델을 만들고 싶다.
MSE의 단점이 무엇일까?
일단 정답값과 차이가 작아질 수록 기울기가 완만해진다.
-> convex함수의 특징
그렇다면 다른 방식을 사용해보자.
두 가지 조건을 만족하면 좋을 것 같다.
1. linear regression의 output이 실수 전체범위의 값을 가지기 때문에 이를 다루는 activation도 실수 전체 범위를 다뤄야 함
2. 확률값을 다루기 적절해야 함.
우리는 sigmoid라는 activation에 대해 생각해볼 수 있다.
일단 logit을 output으로 가정해보자.
logit이란 log odds의 줄임말이다.
odds는 승산이란 뜻으로 $\frac{p}{1-p}$ (event가 일어날 확률) 의 식으로 구할 수 있다.
이때 logit은 실수 전체 범위를 가진다. -> 1번조건 만족
그리고 sigmoid activation은 logit의 역함수이기 때문에 logit에 sigmoid를 적용하면 p( event가 일어날 확률)
가 나온다. -> 2번 조건 만족
따라서 우리는 이진 분류문제에서 model의 output을 logit으로 가정하고 activation으로 sigmoid를 사용한다.
그리고 모델의 cost function은 MSE말고 Cross Entropy를 사용한다.
왜 그럴까?
이전에 살펴본 MSE는 정답에 가까울수록 weight의 업데이트가 느려진다는 단점이 있었다.
확률값은 오차가 무조건 1보다 작음 -> 수렴이 느림
Cross Entropy는 log함수이므로 값이 정답에 가까울 수록 (log 1에 가까울수록) 기울기가 커진다.
-> 수렴속도가 빨라진다.
따라서 확률을 다루는 Classification 문제에서는 MSE대신에 Cross Entropy를 많이 사용하는 것이다.
그렇다면 이진분류 말고 다중 분류는 어떨까?
다중 분류에서는 Softmax를 사용한다.
Softmax도 마찬가지로 logit을 확률로 바꿔주는 역할을 한다.
Cost function은 동일하게 Cross Entropy를 사용한다.
사실 Regression Classification에서 다룬 activation과 cost function은 주어진 분포가 어떤 분포를 가지는지
가정을 하고 만들어낸 방식이다.
MAP, MLE를 적용하여 만들어낸 방식!
이후에 softmax와 sigmoid의 유도과정도 한번 다뤄보겠다.
이상 포스팅끝~!
'딥러닝 기초' 카테고리의 다른 글
Linear Regression (2) | 2025.04.09 |
---|