전공공부/인공지능

Softmax Classification

prefer_all 2022. 7. 27. 16:46

https://wikidocs.net/59427

<목차>
- 3개 이상의 선택지 중에서 1개를 고르는 다중 클래스 분류(Multi-Class Classification)
- Linear regression <-> Softmax regression

- softmax function
- cost function : cross entropy

 

  • Logistic Regression

sigmoid 함수는 예측값을 0과 1 사이의 값으로 만듦

스팸 메일 분류기를 로지스틱 회귀로 구현하였을 때, 출력이 0.75이라면 이는 이메일이 스팸일 확률이 75%라는 의미임. 반대로, 스팸 메일이 아닐 확률은 25%임. 이 두 확률의 총 합은 1

 

  • Softmax Regression

각 class (선택지)마다 소수 확률을 할당하고 이때 총 확률의 합이 1이 되어야함

즉, 선택지의 개수만큼의 차원을 가지는 벡터를 만들고, 벡터의 모든 원소의 합이 1이 되도록 원소의 값을 변환시키는 함수(softmax 함수)를 사용


Softmax function

  • 분류해야하는 정답지(클래스)의 총 개수를 k라고 할 때, k차원의 벡터를 입력받아 각 클래스에 대한 확률을 추정

p1: 1번 클래스가 정답일 확률 / p2: 2번 클래스가 정답일 확률 / p3: 3번 클래스가 정답일 확률

 

 

 

  • softmax 함수의 입력

위 경우 4개의 독립변수 x가 어떤 가중치 연산을 통해 3차원 벡터로 변환되어야 함

차원 축소

-> 결과값이 softmax 함수의 입력벡터 z의 차원 수만큼 나오도록 가중치 곱 진행

 

  • 오차 계산 방법

one-hot vector 사용

Linear regression, Logistic regression과 마찬가지로 오차로부터 가중치, 편향 업데이트


Cost function : Cross Entrophy

c가 실제값 one-hot vector에서 1을 가진 원소의 index라고 한다면 pc = 1은 y hat이 y를 정확하게 예측한 경우임 -> -1log(1) =  0이므로 cross entrophy의 값은 0으로 최소화됨

 

n개의 전체 데이터의 평균을 구한 최종 비용함수는 아래와 같음


로지스틱 회귀 비용함수로부터 cross entrophy 함수 도출하기

logistic regression cost

y를 y1으로, y-1을 y2로, H(x)를 p로, 1-H(x)를 p2로 치환

아래와 동일
softmax regression에서 k는 고정된 값이 아니므로 2를 k로 변경

 

마찬가지로 softmax regression에서 k=2라고 가정하면 logistic regression의 cost함수와 같다