快速sigmoid函数进行改进
深度学习经常要用到sigmoid函数,这里对fast sigmoid进行了改进的
sigmoid的公式:
sigmoid(x)=1/(1+exp(-1))
exp的计算耗时较长,这里改用快速sigmoid fast sigmoid
fast_sigmoid(x)=0.5*(x/(1+|x|) + 1)
可见差距还是挺大的,这里可以再次改进,进一步拟合曲线
改进以后的就是
fast_sigmoid_v2(x)=0.5*(x/((0.99/|x|)+|x|) + 1)
可以发现拟合结果变得更好了,几乎重合了的
显示
import numpy as np import matplotlib.pyplot as plt def showfile(): x = np.linspace(-10, 10, 1000) y1=[1/(1+np.exp(-i)) for i in x] y2=[] y3=[] for i in x: y2.append(0.5*(i/(0.99/np.abs(i)+np.abs(i)) + 1 )) for i in x: y3.append(0.5*(i/(1+np.abs(i)) + 1)) plt.plot(x, y1,c='b') plt.plot(x, y2,c='m') plt.plot(x, y3,c='#FF8C00') plt.legend(loc='upper left', labels=['common sigmoid','fastv2 sigmoid','fast sigmoid']) plt.axhline(y=0.5, xmin=-10, xmax=10,color="grey", line) plt.axvline(x=0, ymin=0, ymax=1,color="grey", line) plt.show() if __name__ == '__main__': showfile()
neural network - Fast sigmoid algorithm - Stack Overflowhttps://stackoverflow.com/questions/10732027/fast-sigmoid-algorithm
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)