지도학습의 분류를 살펴보려고 합니다.
다룰 내용 목차는 아래와 같습니다!
데이터의 분포가 균일 분포로 알고 있고, 그 분포 범위도 알고 있다면
이 확률 함수는 모호함까지 포함하여 완벽히 수컷인지를 예측하고 있는 것이 됩니다.
로지스틱 회귀 모델에서는 계수 W를 추정하기 위해서 MLE(Maximum Likelihood Estimation) 개념을 사용하는데요.
로지스틱 회귀의 Y는 이진 분류(0 or 1)이므로, 베르누이 시행을 전제로 하는 모델입니다.
주어진 입력 데이터 x에 대해 라벨 데이터 t가 생성될 확률(가능도)이 가장 커지는 w를 추정치로 합니다.
최적헤가 관측 데이터를 잘 설명할 수 있는 함수의 파라미터 값이 되도록 정의됩니다.
회귀와 분류는 각각의 관점에서 접근 할 수 있는데 첫 번째는 오차 최소화(error minimization)이고 두 번째는 최대 우도 추정(maximum likelihood estimation)입니다.
오차 최소화는 모델이 오차가 최소화 되도록 정의하는 방법입니다.
최대 우도 추정은 모델이 추정하는 관측 데이터의 확률이 최대화 되도록 정의하는 방법
모델이 추정하는 관측 데이터의 확률을 말합니다.
Likelihood function은 위와 같습니다.
모델은 손실 함수의 목표를 관측 데이터의 확률이 최대화되는 확률분포 함수를 표현해야 합니다.
이 방법은 확률 모델인 경우에만 적용할 수 있으며, 최대우도추정(MLE) 방식이라고 합니다.
대부분의 신경망 모델은 확률 모델을 가정하기 때문에 최대우도추정 방식으로 손실 함수를 유도할 수 있습니다.
두 방식은 손실 함수를 정의하는 관점은 다르지만, 손실 함수를 유도하면 동일한 최적해를 갖습니다.
위의 식은 전체 표본집합의 결합확률밀도 함수를 likelihood function이라고 합니다.
식의 결과 값이 가장 커지는 θ를 추정값 θ(hat)로 보는 것이 가장 그럴듯합니다.
결국 Maximum Likelihood Estimation은 Likelihood 함수의 최대값을 찾는 방법이라 할 수 있습니다.
여기서 중요한 것은 결국 likelihood function이 최대가 되어야 하며, 최대화 할 파라미터 θ를 찾는 문제라는 점입니다.
로그로 변환 시켜주는 방법이 있다. 이를 로그 우도(log likelihood)라고 한다.
로그로 변환 시켜주는 이유는?
정리하자면,
여기서 log 함수를 사용하는 이유는 log가 단조 증가 함수이기 때문이며, log-likelihood function의 최댓값을 찾으나 두 경우 모두 최댓값을 찾게 해주는 정의역의 함수 입력값은 동일하기 때문입니다.
독립 변수의 선형 결합을 이용해 사건 발생 가능성을 예측하는데 사용되는 통계 기법으로 시그모이드 함수 안에 넣은 식이 된다.
<로지스틱 회귀 모델의 확률 추정(벡터 표현식)>
우리가 구하려는 로지스틱 회귀의 Cost function이 나오게 됩니다.
기본적으로 Gradient descent를 통해 학습을 하므로 단순히 Maximize 문제를 Minimize로 바꾼 것인데요.
음수 부호를 붙인 것이므로 즉, Negative Log Likelihood = (binary) Cross Entropy = Logistic regression cost function가 성립합니다.
이 함수는 볼록 함수이므로 경사 하강법이 전역 최솟값을 찾는 것을 보장
→ 편미분을 통해 구할 수 있음
이 Cost function 즉 로지스틱 회귀의 Cross entropy가 Convex 한 이유는 어떤 함수의 Convex를 증명하기 위해선 2차 미분값이 > 0 증명하면 됩니다.
<경사 하강법에 의한 해>
그러면 이진분류(Binary classification)이 아니고 다항분류의 경우에는 어떻게 될까요?
일단 위에 정의한 로지스틱 함수를 이용해 K개의 Class가 있을 때 특정 Class로 분류 될 확률을 구해보겠습니다.
<소프트맥스 함수>
샘플 x에 대해 각 클래스의 점수가 계산되면 소프트맥스 함수를 통과시켜 클래스 k에 속할 확률를 추정할 수 있습니다.
이 함수는 각 점수에 지수 함수를 적용한 후 정규화합니다.
모든 지수 함수 결과의 합으로 나누고, 이 점수를 로짓 또는 로그-오즈라고 부릅니다.
이를 K개의 Class 중 Class 1에 대한 posterior 추정으로 확장하면, Bayes 정리에 의해 다시 위 식을 Likelihood와 Prior의 곱으로 식을 표현합니다.
크로스 엔트로피 오차를 최소화하는 것은 타깃 클래스에 대해 낮은 확률을 예측하는 모델을 억제하므로 목적 함수로 적절하다.
는 번째 샘플이 클래스 에 속할 타깃 확률이며, 일반적으로 샘플이 클래스에 속하는지 아닌지에 따라 1 또는 0이 된다.
딱 두 개의 클래스가 있을 때, 즉 k=2일 때 이 비용 함수는 로지스틱 회귀의 비용 함수와 같습니다.
따라서, Cross-entropy를 최소화하는 것은 실제 데이터의 분포와 모델이 예측한 결과의 분포의 차이를 최소화 하는 것이고, 이는 Log-Likelihood의 기대값이 최대인 세타를 찾는 것과 같습니다다.
이 때문에 Negative log-likelihood가 머신러닝 모델의 Cost functuon이 됩니다.
각 클래스에 대한 gradient vector를 계산할 수 있으므로, 이 함수를 최소화하기 위한 파라미터 행렬 를 찾기 위해 경사 하강법을 사용
로지스틱 회귀의 기본적인 접근은 이미 개발되어 있는 선형 회귀의 방식을 사용하는 것입니다.
독립 변수의 선형 결합과 회귀 계수에 관한 선형 예측 함수에서 비롯되었는데요.
하지만, 로지스틱 회귀의 모델은 종속 변수와 독립 변수 사이의 관계에 있어서 선형 모델과 차이점을 가집니다.
그래서 아까 로짓 변환을 시켜주었고, 따라서 대상이 되는 데이터의 종속 변수 y의 결과는 0과 1, 두 개의 경우만 존재하는 데 반해,
단순 선형 회귀를 적용하면 범위 [0,1]를 벗어나는 결과가 나오며 오히려 예측의 정확도만 떨어집니다.
이를 해결하기 위해 로지스틱 회귀는 연속이고 증가함수이며 [0,1]에서 값을 갖는 연결 함수 g(x) 형태로 변형 시켜주었습니다.
로지스틱 회귀
선형 방정식을 사용한 분류 알고리즘. 선형 회귀와 달리 시그모이드, 소프트맥스 함수를 사용하여 클래스 확률을 출력함
다중 분류
타깃 클래스가 3개 이상인 분류 문제. 로지스틱 회귀는 다중 분류를 위해 소프트맥스 함수를 사용하여 클래스를 예측함
시그모이드 함수
로지스틱 함수라고도 함. 출력을 0과 1 사이의 값으로 압축하며 이진 분류를 위해 사용됨
소프트맥스 함수
다중 분류에서 여러 선형 방정식의 출력 결과를 정규화하여 합이 1이 되도록 만듦