[Machine learning] One-hot encoding와 Softmax Regression, Cross-entropy란?
소프트맥스 회귀 (Softmax Regrssion) 란?
소프트맥스 회귀는 다중 분류에 대한 회귀이다.
사실상 일반적으로 회귀는 bool문과 같이 0 또는 1, true 또는 false 식으로 상반되는 값을 분류하는데 사용된다.
하지만 소프트맥스 회귀를 하게 될경우 분류할때 이중적 분류가 아닌 2개 이상의 분류를 하는데 사용될 수 있다.
대표적인 예로 아이리스 품종 분류가 있다.
위의 이미지에서 종속변수의 총 갯수는 3가지이다. ('setosa', 'versicolor', 'virginica')
하지만 예를 들어 첫번째 행의 독립변수로 미뤄 보았을때, 확률이 아래와 같다면?
Setosa | 0.6 |
virginica | 0.5 |
versicolor | 0.4 |
이 경우 3가지의 결과 값의 합이 1을 초과하게된다.
간단하게 말해 소프트맥스 회귀는 합이 아래와같이 1이 되는 확률분포를 만들어 주는것이다.
Setosa | 0.78 |
virginica | 0.12 |
versicolor | 0.1 |
이렇게 될 경우 총 합이 1일 경우 품종이 setosa의 확률이 78%가 된다 라고 알 수가 있다.
원핫엔코딩 (One - hot encoding) 이란?
원핫인코딩을 가장 쉽게 설명해주는 이미지가 아래 이미지이다.
위의 이미지의 첫번째 행을 보도록 하자.
앞의 독립변수들을 이용하여 종속변수인 품종이 setosa 인가 아닌가를 판단한다.
하지만 앞의 수치만으로 범주데이터를 판단할 수는 없기에, Integer Encoding 방식으로 표현 하는 것이다.
One-Hot-Encoding을 사용하는 이유는 Intger Encoding의 문제점인 머신러닝 알고리즘의 정수 값으로부터
잘못된 경향성을 학습할 수있기 때문에 조금 더 정확하게 학습할수 있도록 도움을 주기 위해 One-Hot-Encoding을 사용한다.
크로스 엔트로피 손실함수 (Cross-Entropy) 란?
분류에 대한 문제에서는 크로스 엔트로피 손실함수은 쉽게말해
머신 러닝의 분류 모델이 얼마나 잘 수행되는지 측정하기 위해 사용되는 지표이다.
아래는 크로스 엔트로피 손실함수 수식이다.
평균제곱오차, 즉 MSE와 같이 모델의 예측 값이 참값과비슷하면작은값,참값과다르면큰값의형태를제공한다.
q(xi)는 참값, x는 모델의 예측 값을 나타내며, MSE보다 학습이 더 잘되는것으로 나타난다.
하지만 경우에 따라 mse 방식과 cross-entropy 방식의 학습률이 달라진다.
분류의 경우는 크로스엔트로피 방식을 더 많이 사용한다.
자 요약해보자면 크로스 엔트로피 역시 마찬가지로 분류 모델이 얼마나 잘 수행되는지 측정하기 위한 지표이기에,
결국 동일하게 0과 1사이의 오차값의 제곱을 표현해주는 지표이다.