[ML ]지도학습(supervised learning) - 분류(classification)

미남로그·2022년 4월 10일
0

지도학습의 분류를 살펴보려고 합니다.

다룰 내용 목차는 아래와 같습니다!

목차

  1. Classification
  2. Maximum likelihood estimation
  3. Logistic regression
  4. Cross entropy error
  5. Multinomial logistic regression
  6. Softmax function

분류(classification)

  • 분류(classification): 입력에 대해 순서가 없는 클래스(라벨)을 대응시키는 문제
  • 목표 데이터의 분류를 위해 확률을 출력하는 함수를 사용하여 정량적으로 다룸

1차원 입력일 때 2개의 클래스 분류

  • 무게(xnx_n)를 통해 성별(tnt_n)을 예측하는 모델
  • tnt_n은 0 또는 1을 갖는 변수
    - 0: 암컷
    - 1: 수컷

결정경계(decision boundary)

  • 클래스를 ‘0’과 ‘1’의 값으로 해석하여 데이터의 분포에 직선을 맞추는 것
  • 경계선을 그으면 새로운 질량 x에 대해 암수를 예상할 수 있다.
  • 경계선이 정해지면 새로운 질량 데이터 x가 결정 경계보다 작으면 ‘암컷’으로 예상하고, ‘수컷’으로 예측한다.

선형 회귀 모델로 분류 문제

  • 문제점: 확실하게 수컷이라고 말할 수 있는
    질량이 큰 데이터 점에서 와가 커진다.
  • 오차를 해소하려고 하므로, 경계선이 수컷 측에 끌려간다.

확률로 나타내는 클래스 분류

데이터의 분포가 균일 분포로 알고 있고, 그 분포 범위도 알고 있다면
이 확률 함수는 모호함까지 포함하여 완벽히 수컷인지를 예측하고 있는 것이 됩니다.

로지스틱 회귀 모델에서는 계수 W를 추정하기 위해서 MLE(Maximum Likelihood Estimation) 개념을 사용하는데요.

로지스틱 회귀의 Y는 이진 분류(0 or 1)이므로, 베르누이 시행을 전제로 하는 모델입니다.


확률로 나타내는 클래스 분류

  • 질량 x에 대한 '수컷일 확률': P(t=1x)P(t=1|x)
  • 질량 x에 대한 '암컷일 확률': P(t=0}x)=1-P(t=1|x)

최대우도추정(Maximum likelihood estimation)

주어진 입력 데이터 x에 대해 라벨 데이터 t가 생성될 확률(가능도)이 가장 커지는 w를 추정치로 합니다.

최적헤가 관측 데이터를 잘 설명할 수 있는 함수의 파라미터 값이 되도록 정의됩니다.

회귀와 분류는 각각의 관점에서 접근 할 수 있는데 첫 번째는 오차 최소화(error minimization)이고 두 번째는 최대 우도 추정(maximum likelihood estimation)입니다.

오차 최소화는 모델이 오차가 최소화 되도록 정의하는 방법입니다.
최대 우도 추정은 모델이 추정하는 관측 데이터의 확률이 최대화 되도록 정의하는 방법


우도(likelihood)란?

모델이 추정하는 관측 데이터의 확률을 말합니다.

Likelihood function은 위와 같습니다.

모델은 손실 함수의 목표를 관측 데이터의 확률이 최대화되는 확률분포 함수를 표현해야 합니다.

이 방법은 확률 모델인 경우에만 적용할 수 있으며, 최대우도추정(MLE) 방식이라고 합니다.

대부분의 신경망 모델은 확률 모델을 가정하기 때문에 최대우도추정 방식으로 손실 함수를 유도할 수 있습니다.

두 방식은 손실 함수를 정의하는 관점은 다르지만, 손실 함수를 유도하면 동일한 최적해를 갖습니다.

위의 식은 전체 표본집합의 결합확률밀도 함수를 likelihood function이라고 합니다.

식의 결과 값이 가장 커지는 θ를 추정값 θ(hat)로 보는 것이 가장 그럴듯합니다.

결국 Maximum Likelihood Estimation은 Likelihood 함수의 최대값을 찾는 방법이라 할 수 있습니다.

여기서 중요한 것은 결국 likelihood function이 최대가 되어야 하며, 최대화 할 파라미터 θ를 찾는 문제라는 점입니다.


likelihood의 최댓값을 찾는 방법

로그로 변환 시켜주는 방법이 있다. 이를 로그 우도(log likelihood)라고 한다.

로그로 변환 시켜주는 이유는?

  1. 로그는 단조 증가 함수이므로 최대로 만드는 식은 바뀌지 않음
  2. 지수족 확률분포의 경우 로그를 취하면 지수 항이 상쇄되어 다항식으로 변환
  3. N개의 샘플에 대한 우도의 곱을 합산으로 바뀌면서 언더플로를 방지할 수 있음

정리하자면,

여기서 log 함수를 사용하는 이유는 log가 단조 증가 함수이기 때문이며, log-likelihood function의 최댓값을 찾으나 두 경우 모두 최댓값을 찾게 해주는 정의역의 함수 입력값은 동일하기 때문입니다.


로지스틱 회귀(logistic regression)

  • 선형 회귀(Linear Regression)는 범주형 변수를 예측하는 모델
  • 로지스틱 회귀(logistic regression)는 확률 추정이다.
    분류 모델인 로지스틱 회귀는 확률값으로 출력한다.
    - 이진 분류(binary classification)
    - 다중 분류(multiclass classification)

독립 변수의 선형 결합을 이용해 사건 발생 가능성을 예측하는데 사용되는 통계 기법으로 시그모이드 함수 안에 넣은 식이 된다.

<로지스틱 회귀 모델의 확률 추정(벡터 표현식)>


교차 엔트로피 오차(cross entropy error; CEE)

  • 로지스틱 회귀 모델을 이용해서 확률을 계산할 경우

우리가 구하려는 로지스틱 회귀의 Cost function이 나오게 됩니다.

기본적으로 Gradient descent를 통해 학습을 하므로 단순히 Maximize 문제를 Minimize로 바꾼 것인데요.

음수 부호를 붙인 것이므로 즉, Negative Log Likelihood = (binary) Cross Entropy = Logistic regression cost function가 성립합니다.


로지스틱 회귀 모델의 평균 교차 엔트로피 오차 함수

이 함수는 볼록 함수이므로 경사 하강법이 전역 최솟값을 찾는 것을 보장
→ 편미분을 통해 구할 수 있음

이 Cost function 즉 로지스틱 회귀의 Cross entropy가 Convex 한 이유는 어떤 함수의 Convex를 증명하기 위해선 2차 미분값이 > 0 증명하면 됩니다.

<경사 하강법에 의한 해>


입력 값이 여러 개일 경우


3개 이상 클래스 분류

그러면 이진분류(Binary classification)이 아니고 다항분류의 경우에는 어떻게 될까요?

일단 위에 정의한 로지스틱 함수를 이용해 K개의 Class가 있을 때 특정 Class로 분류 될 확률을 구해보겠습니다.

  • 3개 이상의 클래스를 분류하는 로지스틱 회귀 모델은 소프트맥스 함수를 모델의 출력에 사용한다.
  • 소프트맥스 회귀(softmax regression), 다항 로지스틱 회귀(multinomial logistic regression)이라 한다.
  • 샘플 x가 주어졌을 때 각 클래스 k에 대한 점수 sk(x)s_k(x)를 계산하고
    그 점수에 softmax function을 적용하여 각 클래스의 확률을 추정한다.

소프트맥스(softmax) 함수

<소프트맥스 함수>

  • kk : 클래스 수
  • s(x)s(x): 샘플 x에 대한 각 클래스의 점수를 담은 벡터
  • σ(s(x))k\sigma (s(x))_k: 샘플 x에 대한 각 클래스의 점수가 주어졌을 때 이 샘플이 클래스 k에 속할 추정 확률

샘플 x에 대해 각 클래스의 점수가 계산되면 소프트맥스 함수를 통과시켜 클래스 k에 속할 확률p^k\hat p_k를 추정할 수 있습니다.

이 함수는 각 점수에 지수 함수를 적용한 후 정규화합니다.

모든 지수 함수 결과의 합으로 나누고, 이 점수를 로짓 또는 로그-오즈라고 부릅니다.

이를 K개의 Class 중 Class 1에 대한 posterior 추정으로 확장하면, Bayes 정리에 의해 다시 위 식을 Likelihood와 Prior의 곱으로 식을 표현합니다.


소프트맥스 회귀 분류기의 예측

  • argmax 연산은 함수를 최대화하는 변수의 값을 반환합니다.
  • 이 식에서는 추정 확률 σ(s(x))k\sigma(s(x))_k가 최대인 k값을 반환합니다.
  • 소프트맥스 회귀 분류기는 한 번에 하나의 클래스만 예측합니다. 다중 클래스이지, 다중 출력은 아니라는 점을 유의해야 합니다. 따라서 상호 배타적인, 종류가 다른 클래스에서만 사용할 수 있습니다.

크로스 엔트로피 오차 최소화

크로스 엔트로피 오차를 최소화하는 것은 타깃 클래스에 대해 낮은 확률을 예측하는 모델을 억제하므로 목적 함수로 적절하다.

yk(i)y_k^(i)ii번째 샘플이 클래스 kk에 속할 타깃 확률이며, 일반적으로 샘플이 클래스에 속하는지 아닌지에 따라 1 또는 0이 된다.

딱 두 개의 클래스가 있을 때, 즉 k=2일 때 이 비용 함수는 로지스틱 회귀의 비용 함수와 같습니다.

따라서, Cross-entropy를 최소화하는 것은 실제 데이터의 분포와 모델이 예측한 결과의 분포의 차이를 최소화 하는 것이고, 이는 Log-Likelihood의 기대값이 최대인 세타를 찾는 것과 같습니다다.

이 때문에 Negative log-likelihood가 머신러닝 모델의 Cost functuon이 됩니다.


경사 하강법에 의한 해

각 클래스에 대한 gradient vector를 계산할 수 있으므로, 이 함수를 최소화하기 위한 파라미터 행렬 Θ\Theta를 찾기 위해 경사 하강법을 사용


Linear regression과 다른 점

  1. 이항 분류 데이터에 적용했을 때, 종속 변수 y의 결과가 범위 [0,1]로 제한된다.
  2. 종속 변수가 이진적이기 때문에 조건부 확률(P(yx))(P(y|x)) 분포가 정규분포 대신 이항 분포를 따름

로지스틱 회귀의 기본적인 접근은 이미 개발되어 있는 선형 회귀의 방식을 사용하는 것입니다.

독립 변수의 선형 결합과 회귀 계수에 관한 선형 예측 함수에서 비롯되었는데요.

하지만, 로지스틱 회귀의 모델은 종속 변수와 독립 변수 사이의 관계에 있어서 선형 모델과 차이점을 가집니다.

그래서 아까 로짓 변환을 시켜주었고, 따라서 대상이 되는 데이터의 종속 변수 y의 결과는 0과 1, 두 개의 경우만 존재하는 데 반해,

단순 선형 회귀를 적용하면 범위 [0,1]를 벗어나는 결과가 나오며 오히려 예측의 정확도만 떨어집니다.

이를 해결하기 위해 로지스틱 회귀는 연속이고 증가함수이며 [0,1]에서 값을 갖는 연결 함수 g(x) 형태로 변형 시켜주었습니다.


MLE 기반의 cost function 사용 이유

  • 만드는 모델에 다양한 확률 분포를 가정할 수 있게 되어 유연한 대응이 가능하다.
  • Backpropa 시행 시 Gradient가 죽는 문제가 해결
  • MLE 기반의 추정 모수는 consistency와 efficiency를 만족하는
    estimator가 된다.

정리

  1. 로지스틱 회귀
    선형 방정식을 사용한 분류 알고리즘. 선형 회귀와 달리 시그모이드, 소프트맥스 함수를 사용하여 클래스 확률을 출력함

  2. 다중 분류
    타깃 클래스가 3개 이상인 분류 문제. 로지스틱 회귀는 다중 분류를 위해 소프트맥스 함수를 사용하여 클래스를 예측함

  3. 시그모이드 함수
    로지스틱 함수라고도 함. 출력을 0과 1 사이의 값으로 압축하며 이진 분류를 위해 사용됨

  4. 소프트맥스 함수
    다중 분류에서 여러 선형 방정식의 출력 결과를 정규화하여 합이 1이 되도록 만듦

profile
미남이 귀엽죠

0개의 댓글