Mish激活函数: f ( x ) = x ⋅ tanh ( s o f t p l u s ( x ) ) = x ⋅ tanh ( ln ( 1 + e x ) ) f(x)=x\cdot \tanh(softplus(x))=x\cdot \tanh(\ln(1+e^x)) f(x)=x⋅tanh(softplus(x))=x⋅tanh(ln(1+ex))
relu激活函数: f ( x ) = m a x { 0 , x } f(x)=max\{0,x\} f(x)=max{0,x}
Softplus函数: f ( x ) = ln ( 1 + e x ) f(x)=\ln(1+e^x) f(x)=ln(1+ex)
画图为:
三个激活函数的曲线如下图:
python 的实现代如下:import numpy as np import matplotlib.pyplot as plt plt.annotate("", xy=(4.1, 0), xycoords='data', xytext=(-4.1, 0), textcoords='data', arrowprops=dict(arrowstyle="->", connectionstyle="arc3")) # 画x轴 plt.annotate("", xy=(0, 4.1), xycoords='data', xytext=(0, -1.1), textcoords='data', arrowprops=dict(arrowstyle="->", connectionstyle="arc3")) # 画y轴 plt.text(3.9, 0.1, 'x') # 标x plt.text(0.1, 3.9, 'y') # 标y plt.xlim(-4.1, 4.1) # 箭头 plt.ylim(-1.1, 4.1) #箭头 X = np.linspace(-4, 4, 1024) Y1 = np.log(1 + np.exp(X)) Y2 = X * np.tanh(np.log(1 + np.exp(X))) Y3 = np.maximum(X, 0) # plt.title('$f(x)=softplus$') # plt.title('$f(x)=relu$') # plt.title('$f(x)=Mish$') plt.plot(X, Y1, c = 'g') plt.plot(X, Y2, c = 'b') plt.plot(X, Y3, c = 'r') plt.show()