Python-阶跃函数与激活函数
阶跃函数
给一个阈值如果超过这个阈值,就返回1,没有超过这个阈值,就返回0,这就叫做阶跃函数
以下面的代码为例,>3就是阶(台阶的意思),只要迈过这个台阶,就认为是真(1),否则就认为是假(0)
list=[-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10]
for item in list:if(item > 3):print(1) # 阶级跃迁了else:print(0) # 水平太菜,没跃迁上去,笑死
阶跃函数的图形(图1)
阶跃函数的图形,如果你学过电子的话,应该知道高电平低电平这个词,它的图形如下,很明显,阶跃函数的图像是上蹿下跳的(尤其是在010101交替出现的时候)
阶跃函数不够平滑(图2)
由于阶跃函数跳动太大,我们希望0到1之间能够平滑过渡,而不是一跳一跳的,所以我们希望它应该是下面这样子
激活函数
如何将图1,变成图2这样子呢?代码如下
import numpy as nplist=[-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10]
for item in list:print(1/(1+np.exp(-item)))
打印结果如下
0.01798620996209156
0.04742587317756678
0.11920292202211755
0.2689414213699951
0.5
0.7310585786300049
0.8807970779778823
0.9525741268224334
0.9820137900379085
0.9933071490757153
0.9975273768433653
0.9990889488055994
0.9996646498695336
0.9998766054240137
0.9999546021312976
可以发现,激活函数没有了阶跃函数中的阶(阈值),但是很神奇,数越大,结果越接近1,数越小,结果越接近0,所以激活函数的返回结果,显得更加的平滑
图形演示
下面这段代码是画图用的,对于本文来说,我还没有想好如何画,暂时留在这里了,没什么需要看的
import matplotlib.pylab as pltplt.ylim(-1,10) # Y轴显示范围
plt.yticks([0,1,2,3,4,5,6,7,8,9,10]) # Y轴显示范围内的刻度
plt.xlim(-1,10) # X轴显示范围
plt.xticks([0,1,2,3,4,5,6,7,8,9,10]) # X轴显示范围内的刻度plt.plot([0,1,1,2],[0,0,1,1]) # 1参表示横轴数据 2参表示Y轴数据
plt.show()