Definition
로지스틱 회귀의 목적은 일반적인 회귀 분석의 목표와 동일하게 종속 변수 와 독립 변수간의 관계를 구체적인 함수로 나타내어 향후 예측 모델에 사용하는 것이다.
이는 독립 변수의 선형 결합으로 종속 변수를 설명한다는 관점에서는 선형 회귀분석과 유사하다.
하지만 로지스틱 회귀는 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 실수 타입의 확률로 주어진다.
로지스틱함수(Logistic function)는 로지트함수의 역함수이다. 즉 음의 무한대(−∞)부터 양의 무한대(∞)까지의 값을 가지는 입력변수를 0부터 1사의 값을 가지는 출력변수로 변환한 것이다.
0 ≤ prediction ≤ 1 이 주어지면 특정한 확률을 기준으로 데이터를 구분할 수 있다. 새로운 값이 아니라 무엇인가를 뚜렷하게 구분하고 싶을 때 사용한다.
일종의 분류 (classification) 기법으로도 볼 수 있다.
모델의 예측 값이 확률이므로 Linear Regression과는 달리 선형 함수가 아닌 지수함수를 사용해 결과를 만들어야 할 것이다.
저렇게 지수를 이용해 모델의 결과 값으로 확률을 뱉어낼 수 있게 하는 함수를 sigmoid function이라고 한다.
Cost and Training
모델을 정의했다면 linear Regeression과 마찬가지로 우리는 모델에 적합한 Cost Function을 찾아야 한다.
Linear Regression 때와는 다르게 결과 값이 확률이라 위에서 배워본 MSE나 MAE를 사용하지 못한다.
또한, 모델 자체가 non-convex이기 때문에 이러한 상황에 적합한 함수를 찾아야 한다.
우리는 MLE라는 특별한 Cost Function을 사용해 볼 것이다.
MLE(Maximum Likelihood Estimation)
Likelihood란 주어진 관측값에서 이것이 해당 확률분포에서 나왔을 확률을 말한다.
(확률은 주어진 확률분포에서 해당 관측값이 나올 확률)
우리는 관측 값과 파라미터의 조합으로 다음과 같이 데이터가 있다고 하자
x = { 1, 4, 5, 6, 9 }
이때 데이터 x는 아래 그림의 주황색 곡선과 파란색 곡선 중 어떤 곡선으로부터 추출되었을 확률이 더 높은가?
눈으로만 봐도 파란색 곡선보다는 주황색 곡선에서 이 데이터들을 얻었을 가능성이 더 커보인다.
획득한 데이터들의 분포가 주황색 곡선의 중심에 더 일치하는 것처럼 보이기 때문이다.
→ 우리가 데이터를 관찰함으로써 이 데이터가 추출되었을 것으로 생각되는 분포의 특성을 추정할 수 있음을 알 수 있다. 여기서는 추출된 분포가 정규분포라고 가정했고, 우리는 분포의 특성 중 평균을 추정하려고 했다.
그렇다면 Maximum likelihood는 무엇일까? '최대 우도 추정'인란 각 관측값에 대한 총 가능도(모든 가능도의 곱)가 최대가 되게하는 분포를 찾는 것이라고 할 수 있다.
Likelihood Function(조금 더 자세히 )
먼저, 데이터의 likelihood 기여도에 대해 알아보자
여기서 주황색 분포에 대해 각 데이터들의 Likelihood 기여도를 점선의 높이로 나타냈다. likelihood는 한마디로 쉽게 표현하면, 지금 얻은 데이터가 이 분포로부터 나왔을 가능도를 말한다.
수치적으로 이 가능도를 계산하기 위해서는 각 데이터 샘플에서 후보 분포에 대한 높이(likelihood 기여도)를 계산해서 다 곱한 것을 이용할 수 있다. (이때, 계산된 높이를 더하지 않고 곱해주는 이유는 모든 데이터 추출이 독립적으로 연달아 일어나는 사건이기 때문이다)
이렇게 하여 계산된 가능도를 생각해볼 수 있는 모든 후보 분포들에 대해 계산하고 이것을 비교하면 우리는 지금 얻은 데이터를 가장 잘 설명할 수 있는 확률분포를 얻어낼 수 있게 된다.
여태껏 얘기한 likelihood를 조금 더 수학적으로 서술하면 다음과 같다.
전체 표본집합의 결합확률밀도 함수를 likelihood function 이라고 한다. 위 식의 결과 값이 가장 커지는 𝜃를 𝜃^로 보는 것이 가장 그럴듯하다. 위 식을 likelihood function이라고 하고, 보통은 자연로그를 이용해 아래와 같이 log-likelihood function L(𝜃||x)를 이용한다.
이제 원래 우리의 목적이었던 Likelihood function의 maximum값을 찾는 방법을 알아보자
어떤 함수의 최댓값을 찾는 방법 중 가장 보편적인 방법은 미분계수를 이용하는 것이다.
즉, 찾고자하는 파라미터 𝜃에 대하여 다음과 같이 편미분을 하고 그 값이 0이 되도록하는 𝜃를 찾는 과정을 통해 likelihood함수를 최대화 시켜줄 수 있는 𝜃를 찾을 수 있다.
log함수는 단조 증가 함수이기에 likelihood function의 최댓값을 찾으나, log-likelihood function의 최댓값을 찾으나 두 경우 모두의 최댓값을 갖게 해주는 정의역의 함수 입력은 동일하다.
→ 따라서, 보통은 계산의 편의를 위해 log-likelihood의 최댓값을 찾는다.
더 정확한 이해를 위해 우리가 구별해야할 정보가 2개라고 가정하자. 이 때 MLE를 구하기 위한 분포는 2개의 확률을 위해 정규 분포가 아닌 베르누이 분포(이항 분포)를 이용할 수 있다.
베르누이 분포를 likelihood에 적용시키면 다음과 같은 과정을 거쳐 Cost Function을 만들 수 있다.
이를 각 모델 f(w,x)와 그에 대응 하는 y 값 0,1을 고려하여 Cost Function 식을 정리해보면
만들어진 cost(f(x),y)는 non-convex하기 때문에 경사 하강법을 적용하여 Traning과정이 더 쉬워질 것임을 알 수 있다.
y가 1이라면 모델의 예측 값 y’ 또한 1인 것이 정답이므로, f(x)가 1일 때 cost는 0으로 최소값이고, 0일 때 무한대로 증가한다.
y가 1이라면 모델의 예측 값 y’ 또한 0인 것이 정답이므로, f(x)가 0일 때 cost는 0으로 최소값이고, 1일 때 무한대로 증가한다.
기울기를 구하기 위해 Cost Function C(w)를 미분한 식은 다음과 같다. 이는 전에 배운 MSE와 같은 함수임을 알 수 있다.
'ML Lecture > Supervised Learning' 카테고리의 다른 글
Decision Tree (0) | 2023.04.15 |
---|---|
Linear Regression / 선형 회귀 (0) | 2023.04.15 |