softmax 常用于预测于伯努利分布相关联的概率,具体的数学表达为:
s o f t m a x ( x ) i = 1 ∑ j = 1 n e x p ( x j ) softmax(x)_i=\frac{1}{{\sum^n_{j=1}exp{(x_j)}}} softmax(x)i=∑j=1nexp(xj)1
也就是在机器学习中著名 的S型曲线,对数据下溢和上溢有很好的作用,具体的实现也就是如下的代码
import numpy as np
def softmax(x):
"""
input:x
output:softmax result
function:softmax
"""
exp_x = np.exp(x)
softmax_x = exp_x / np.sum(exp_x)
return softmax_x
如果是在tensorflow中使用的话可以直接使用如下
import tensorflow as tf
def softmax(A):
with tf.Session() as sess:
print sess.run(tf.nn.softmax(A))