序言
最近学习计划有些被打乱,想了半天还是该继续看完这本书。正好准备复现一篇有关CNN卷积神经网络论文 ,所以正好把学过的神经网络进行复习。
1神经元模型
这是最经典的M-P神经元模型,
x
1
,
x
2
,
x
3
.
.
.
x
n
x_1,x_2,x_3...x_n
x1,x2,x3...xn是其他神经元传递出来的信号。多个这样的神经元组合在一起就构成了神经网络。
来自其他地方的神经元输入信号
x
1
,
x
2
,
x
3
.
.
.
x
n
x_1,x_2,x_3...x_n
x1,x2,x3...xn,每一个输入值都要通过各自的权重相乘
w
i
w_i
wi;每个输入信号和各自的权值相乘后最后求和,和阈值
θ
\theta
θ进行比较,最后通过激活函数处理,最后输出。
那么什么是激活函数呢?
引入激活函数就是防止出现线性的情况:多个输入通过权值求和,最后的输出结果相比输入信号来讲依然是一个线性函数,没有任何价值。那么此时加入激活函数,可以让这个函数十分靠近每一个输入信号,成为一个非线性函数。在激活函数中最常用的就是Sigmoid函数,也称挤压函数:
2感知机与多层网络
2.1感知机
感知机就是有两层神经网络组成。如下图所示:
在给定训练集后,权重
w
i
w_i
wi以及阈值
θ
\theta
θ可以通过学习得到。
θ
\theta
θ可以当作一个固定值-1,对权重
w
i
w_i
wi进行学习调整:如果输出
y
r
e
s
u
l
t
y_{result}
yresult与当前前训练样例
(
x
,
y
)
(x,y)
(x,y)相同,则
w
i
w_i
wi不进行调整,如果不同,则:
w
i
=
w
i
+
△
w
u
w_i=w_i+△w_u
wi=wi+△wu
△
w
i
=
η
(
y
−
y
r
e
s
u
l
t
)
x
i
△w_i=\eta(y-y_{result})x_i
△wi=η(y−yresult)xi
其中
η
\eta
η称为学习率。
多层网络
在感知机中,无论如何进行求解都会产生一个平面可以将数据分开,但是如果出现不能进行线性划分的情况,就需要多层网络进行处理。
如图所示,与感知机不同的是它是由多层神经网络构成,在多层网络中,输入层并不具有激活函数;但在隐藏层和输出层具有激活函数。它可以处理“与或关系”等复杂的情况。
神经网络的学习过程,就是根据训练数据来调整数据之间的权值以及每个神经元的阈值,这是最关键的。
3误差逆传播算法
在感知机中的算法较为简单,但是要处理多层神经网络使用感知机的方法是行不通的。这就提出了误差逆传播算法(BP)。