다항 논리 회귀(Multinomial logistic Regression)
다항 논리 회귀?
다수의 클래스를 나누어 푸는 논리 회귀 방법
원핫 인코딩
다항 분류(Multi-label classification) 문제를 풀 때 출력값의 형태를 가장 예쁘게 표현할 수 있는 방법.만드는 방법
1. 클래스(라벨)의 개수만큼 배열을 0으로 채운다. 2. 각 클래스의 인덱스 위치를 정한다. 3. 각 클래스에 해당하는 인덱스에 1을 넣는다.
다항 논리 회귀도 다항 분류에 속하기 때문에,
원핫 인코딩 방법을 사용한다.
Softmax 함수와 손실함수
Softmax
: 선형 모델에서 나온 결과(Logit)를 모두가 더하면
1이 되도록 만들어주는 함수- 1로 만드는 이유는 예측의 결과를 확률(=Confidence)로 표현하기 위함. - One-hot Encoding을 할때에도 라벨의 값을 전부 더하면 1이되기 때문.다항 논리 회귀에서 Softmax 함수를 통과한 결과 값의 확률 분포 그래프를 그려서 아래 그래프의 모양이라고 가정했을 때,
가로축은 클래스(라벨)이 되고, 세로축은 확률이 된다.
마찬가지로 확률 분포의 차이를 계산할때 crossentropy함수를 사용,
차이점은 시그모이드 / softmax 와 클래스의 개수이다.데이터셋의 정답 라벨과 우리가 예측한 라벨의 확률 분포 그래프를 구해서 Crossentropy로 두 확률 분포의 차이를 구한 다음 그 차이를 최소화하는 방향으로 학습시킨다.Keras에서 다항 논리 회귀의 경우 categorical_crossentropy 손실 함수를 사용한다.