반응형
일반 Softmax 함수
import tensorflow as tf import numpy as np z = [1,2,3,4,5,6] def softmax(a) : c = np.max(a) exp_a = np.exp(a-c) sum_exp_a = np.sum(exp_a) y = exp_a / sum_exp_a return y q = softmax(z)
Softmax with Temperature Parameter
def softmax_with_temperature(z, T) : z = np.array(z) z = z / T max_z = np.max(z) exp_z = np.exp(z-max_z) sum_exp_z = np.sum(exp_z) y = exp_z / sum_exp_z return y calibrated_q2 = softmax_with_temperature(z, 2) calibrated_q10 = softmax_with_temperature(z, 10)
Temperature 를 크게 줄 수록 각 확률 값들의 차이가 줄어듬을 확인할 수 있음
하지만, 순서는 변하지 않기 때문에 정확도에 영향을 주지 않음
fig = sns.barplot(x=np.array([0,1,2,3,4,5]), y=q) fig.set(ylim=(0,1)) plt.show() fig2 = sns.barplot(x=np.array([0,1,2,3,4,5]), y=calibrated_q2) fig2.set(ylim=(0,1)) plt.show() fig3 = sns.barplot(x=np.array([0,1,2,3,4,5]), y=calibrated_q10) fig3.set(ylim=(0,1)) plt.show()
반응형
'Data science > Machine Learning' 카테고리의 다른 글
AI 분야의 Top conference 리스트 (1) | 2019.11.16 |
---|---|
딥러닝 분야별 State-of-the-art (SOTA) 브라우저 (0) | 2019.11.16 |
[논문리뷰] 현대 딥러닝의 Calibration 에 대하여 (3) | 2019.11.14 |
예측값을 변수로 활용하는 앙상블 테크닉: Blending (0) | 2019.11.01 |
Label smoothing: 딥러닝 모델의 일반화와 Calibration 향상을 위한 테크닉 (1) | 2019.09.16 |