赞
踩
感知机即阈值逻辑单元,通过阈值来进行判断类别,神经网络则是多个感知机的集合,可以应用于处理更复杂的问题
首先我们来介绍在神经网络网络中的激活函数,激活函数相当于在感知机中设置的阈值,不过感知机中的激活函数使用的是阶跃函数,而在神经网络中这样的激活函数明显是不够的
特征
公式为:
s
i
g
m
o
i
d
(
x
)
=
1
1
+
e
−
x
公式为:sigmoid(x)=\frac{1}{1+e^{-x}}
公式为:sigmoid(x)=1+e−x1
特征
t
a
n
h
(
x
)
=
2
1
+
e
−
2
x
−
1
tanh(x)=\frac{2}{1+e^{-2x}}-1
tanh(x)=1+e−2x2−1
特征
特征
m
i
s
h
(
x
)
=
x
⋅
t
a
n
h
(
l
n
(
1
+
e
x
)
)
mish(x)=x \cdot tanh(ln(1+e^x))
mish(x)=x⋅tanh(ln(1+ex))
特征
y = e x p ( a k ) ∑ i = 1 n e x p ( a i ) y = \frac{exp(a_k)}{\sum_{i=1}^{n}exp(ai)} y=∑i=1nexp(ai)exp(ak)
画图代码实现如下
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
def step_function(x):
return np.array(x > 0, dtype=np.int)
def sigmoid(x):
return 1 / (1 + np.e ** (-x))
def relu(x):
x[x<=0] = 0
return x
def softmax(x):
return np.e ** x / np.sum(np.e ** x)
def mish(x):
return x * np.tanh(np.log(1+np.e ** x))
def tanh(x):
return 2 / (1 + np.exp(-2 * x)) - 1
x = np.linspace(-10, 10, 100)
plt.plot(x, step_function(x.copy()), label='step_function')
plt.plot(x, sigmoid(x.copy()), label='sigmoid')
plt.plot(x, relu(x.copy()), label='relu')
plt.plot(x, softmax(x.copy()), label='softmax')
plt.plot(x, mish(x.copy()), label='mish')
plt.plot(x, tanh(x.copy()), label='tanh')
plt.title("激活函数")
plt.legend()
plt.savefig("激活函数.png")
plt.show()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。