We-Co

[We-Co] Softmax Regression, Cross-Entropy, One-Hot-Encoding - TensorFlow 본문

Python/Tensorflow

[We-Co] Softmax Regression, Cross-Entropy, One-Hot-Encoding - TensorFlow

위기의코딩맨 2021. 9. 27. 17:17
반응형

안녕하세요. 위기의코딩맨입니다.

오늘은 TensorFlow의 소프트맥스 회귀, 크로스엔트로피, 원핫인코딩의 의미에 대해 간단하게 알아보도록 하겠습니다.

 

[ Softmax Regression ]

다중분류를 위한 기법이며, 소프트맥스 회귀기법은 앞에서 알아보았던 Linear Regression에 결과 값에서 Softmax함수를 적용해서 모델의 출력 값을 각각의 확신의 정도로 출력할 수 있도록 만들어주는 기법입니다.

 

결과 (logits) Softmax함수는 Normalization함수로 결과 값들의 합을 1(확신의 정도) 변경해줍니다.

 

[출처]: https://blog.naver.com/PostView.naver?blogId=tjgml1343&logNo=222117714538&categoryNo=15&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView

[ Cross-Entropy ]

분류에 대한 문제에서는 크로스 엔트로피 손실함수도 많이 사용되는데

평균제곱오차, 즉 MSE와 같이 모델의 예측 값이 참값과 비슷하면 작은값, 참값과 다르면 큰값의 형태를 제공합니다.

 

크로스엔트로피 손실함수 수식

해당 수식으로 나타내는데, q(xi)는 참값, x는 모델의 예측 값을 나타내며, MSE보다 학습이 더 잘되는것으로 나타납니다.

그래서 대부분 MSE보다 크로스엔트로피 함수를 사용합니다.

 

[ One-Hot-Encoding ]

자연어 처리에서는 문자를 숫자로 바꾸는 여러가지 기법들이 있습니다. 그중 대표적인 기법이며,

범주형 값을 이진화된 값으로 바꿔 표현하는 기법을 의미합니다.

사자, 호랑이, 표범의 범주형 데이터가 있을때 Intger Encoding의 방식으로 표현하면

 

[“사자” =1, “호랑이”=2,”표범”=3]  

 

One-Hot-Encoding 기법으로 표현하면

“사자”=[1,0,0],”호랑이”=[0,1,0],”표범”=[0,0,1]으로 표현하게 됩니다.

 

예제에서 나타나듯이 해당하는 레이블에 인덱스 1로 나타내고 나머지는 0으로 표현됩니다.

One-Hot-Encoding을 사용하는 이유로는 Intger Encoding의 문제점인 머신러닝 알고리즘의 정수 값으로부터 잘못된 경향성을 학습할 수있기 때문에 조금 더 정확하게 학습할수 있도록 도움을 주기 위해 One-Hot-Encoding을 사용합니다.

 

 

오늘은 소프트맥스 회귀, 크로스엔트로피 손실함수, 원핫인코딩의 의미와 표현을 간단하게 알아보았습니다.

조금씩 배워나가보도록 하겠습니다.

 

반응형