常用激活函数

1
2
3
4
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10, 10)
fig = plt.figure()

1. sigmoid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
y_sigmoid = 1/(1+np.exp(-x))

ax = fig.add_subplot(221)

plt.xlim(-11, 11)
plt.ylim(0, 1)

ax = plt.gca() # 获得当前axis坐标轴对象
ax.spines['right'].set_color('none') # 去除右边界线
ax.spines['top'].set_color('none') # 去除上边界线

# 指定data 设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0)) # 指定y轴绑定到x轴的0这个点上
ax.set_title('Sigmoid')

plt.plot(x, y_sigmoid, label='sigmoid', linestyle='-', color='darkviolet')
plt.legend(['sigmoid'])
plt.savefig('figs/sigmoid.png')

png

2.tanh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
y_tanh = (np.exp(x)-np.exp(-x))/(np.exp(x)+np.exp(-x))

ax = fig.add_subplot(222)

plt.xlim(-11, 11)
plt.ylim(-1, 1)

ax = plt.gca() # 获得当前axis坐标轴对象
ax.spines['right'].set_color('none') # 去除右边界线
ax.spines['top'].set_color('none') # 去除上边界线

# 指定data 设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0)) # 指定y轴绑定到x轴的0这个点上
ax.set_title('tanh')

plt.plot(x, y_tanh, label='tanh', linestyle='-', color='darkviolet')
plt.legend(['tanh'])
plt.savefig('figs/tanh.png')

png

3.ReLU

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
y_relu = np.array([0*item if item < 0 else item for item in x])

ax = fig.add_subplot(223)

plt.xlim(-11, 11)
plt.ylim(0, 10)

ax = plt.gca() # 获得当前axis坐标轴对象
ax.spines['right'].set_color('none') # 去除右边界线
ax.spines['top'].set_color('none') # 去除上边界线

# 指定data 设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0)) # 指定y轴绑定到x轴的0这个点上
ax.set_title('ReLU')

plt.plot(x, y_relu, label='ReLU', linestyle='-', color='darkviolet')
plt.legend(['ReLU'])
plt.savefig('figs/ReLU.png')

png

4. LeakyReLU

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
y_leakyrelu = np.array([0.2*item if item < 0 else item for item in x])

ax = fig.add_subplot(224)

plt.xlim(-11,11)
plt.ylim(-2,10)

ax = plt.gca() # 获得当前axis坐标轴对象
ax.spines['right'].set_color('none') # 去除右边界线
ax.spines['top'].set_color('none') # 去除上边界线

ax.spines['bottom'].set_position(('data',0)) # 指定data 设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
ax.spines['left'].set_position(('data',0)) # 指定y轴绑定到x轴的0这个点上
ax.set_title('LeakyReLU')

plt.plot(x,y_leakyrelu,label = 'LeakyReLU',linestyle='-',color='darkviolet')
plt.legend(['LeakyReLU'])
plt.savefig('figs/LeakyReLU.png')

png