Sigmoid 与 Softmax 详解
Sigmoid是什么?
首先看一下sigmoid的函数表达式和对应函数图像,会发现sigmoid函数的可以将输入的值限定在(0,1)之间。
下面是sigmoid的函数表达式:
这里只用python实现sigmoid函数图形:
实现代码如下:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-10,10,0.2)
y = 1.0 /(1.0 + np.exp(-x))
plt.plot(x,y)
plt.show()
Softmax是什么?
softmax函数的意义是将事件Y转换为概率P
下面是softmax的函数表达式:
具体过程如图所示:
图中过程简述为:
—>输入一个数组[0.2, 0.4, 0.3]
—>经过softmax计算后
—>得出0.2、0.4,0.3三个事件发送的概率
softmax实现相关代码如下:
import numpy as np
# 按照softmax的函数表达式,构造一个自定义函数
def softmax(y):
# y为列表,[0.2, 0.4, 0.3]
# y中元素依次取对数,放入列表exps中
exps = [np.exp(logit) for logit in y]
# 指数求和
sum_of_exps = sum(exps)
#分别计算概率
softmax = [j / sum_of_exps for j in exps]
return softmax
if __name__ == '__main__':
y = [0.2, 0.4, 0.3] # 这里可以更改输入列表的值
softmax = softmax(y)
print(softmax)