神经元
数学模型推导公式:
y
k
_k
k=
φ
\varphi
φ(
Σ
i
=
1
n
ω
i
x
i
+
b
\Sigma_{i=1}^n \omega_ix_i+b
Σi=1nωixi+b)
人工神经网络包括三部分:输入层,隐藏层,输出层
根据神经网络信息的传播方式可将其分为前馈网络、反馈网络和图网络
前馈网络的信息总是向前传播,从不反向回馈,如卷积神经网络(CNN)
反馈网络的神经元具有一定的记忆功能,可记录神经元之前的一些状态,如循环神经网络(RNN)
图网络的神经元之间的信号无固定方向,通常用来记录非结构化数据,如知识图谱
感知机
单层感知机本质上是一个二分类器,它只有输入层和输出层,无隐藏层,本质上是一种线性模型,无法处理非线性数据(如“异或”问题)
二分类问题求解示例(以“或”运算为例):
x1 | x2 | OR |
---|---|---|
1 | 0 | 1 |
1 | 1 | 1 |
0 | 1 | 1 |
0 | 0 | -1 |
代入感知机:
ϕ
(
ω
1
×
1
+
ω
2
×
0
+
b
)
=
1
\phi(\omega_1\times1+\omega_2\times0+b)=1
ϕ(ω1×1+ω2×0+b)=1
ϕ
(
ω
1
×
1
+
ω
2
×
1
+
b
)
=
1
\phi(\omega_1\times1+\omega_2\times1+b)=1
ϕ(ω1×1+ω2×1+b)=1
ϕ
(
ω
1
×
0
+
ω
2
×
1
+
b
)
=
1
\phi(\omega_1\times0+\omega_2\times1+b)=1
ϕ(ω1×0+ω2×1+b)=1
ϕ
(
ω
1
×
0
+
ω
2
×
0
+
b
)
=
−
1
\phi(\omega_1\times0+\omega_2\times0+b)=-1
ϕ(ω1×0+ω2×0+b)=−1
获得权重和偏重范围:
ω
1
>
0
\omega_1>0
ω1>0
ω
2
>
0
\omega_2>0
ω2>0
b
<
0
b<0
b<0
若想要利用感知机解决“异或”问题,则需要在感知机中增加“隐藏层”,或是在“隐藏层”中增加几条神经元,则可以解决非线性问题
隐藏层层数对神经网络的影响
- 在分类能力上,隐藏层层数越多,神经网络的分辨能力越强
- 在特征表达能力上,隐藏层层数越多,提取特征的层次越深
神经网络在感知机模型上的扩张
- 增加网络层数
- 增加每条网络的神经元数量
- 调整激活函数
激活函数
输入值与输出值之间的函数关系,即激活函数
Sigmoid函数对中央区信号增益较大,类似于人脑神经元兴奋状态;对两侧区信号增益较小,类似于人脑神经元抑制状态。该函数输出值在0到1之间,但不以0为中心,实际运用中将重点特征推向中央区
优点:单调连续,求导容易,输出有界
缺点:远离中心点两侧位置导数趋于0,网络较深时较多梯度落入饱和区,梯度的模较小,产生梯度退化,难以训练,即梯度消失现象
Tanh函数中间区域变化更加敏感,超出区间则进入饱和状态,失去敏感性,影响神经网络预测精度。输出值在-1到1之间,且关于零点对称。优势在于容错性好
Softsign函数曲线更加平坦,变化更慢,更容易解决梯度消失现象。缺点是导数较为复杂
ReLU函数优点在于梯度下降中可快速收敛,导数简单,能够有效缓解梯度消失现象;缺点是无上界,训练相对发散,在零点处不可导,在某些回归问题中不够平滑
Softplus函数可以看作是ReLU函数的平滑型,两者相对于前几种激活函数更加接近于人脑神经元模型
传播算法及损失函数
前向传播
- 输入信号从输入层传输到输出层
- 对于每个神经元:
(1)计算上层输入的加权平均值: θ ′ = W X + b \theta'=WX+b θ′=WX+b
(2)计算激活函数值: θ = f ( θ ′ ) \theta=f(\theta') θ=f(θ′) - 输出模型预测值( f ( x , θ ′ ) f(x,\theta') f(x,θ′))
损失函数
功能:估量模型预测值
f
(
x
)
f(x)
f(x)与真实值
Y
Y
Y的不一致程度
特征:
- 非实数函数
- 损失函数越小,模型鲁棒性越好
均方误差:
E = ∑ d ∈ D ( t d − O d ) 2 E=\sum_{d\in D}(t_d-O_d)^2 E=∑d∈D(td−Od)2
交叉熵误差:
E = − ∑ d ∈ D O d ln t d E=-\sum_{d\in D}O_d\ln t_d E=−∑d∈DOdlntd
一般情况下,均方误差更多用于回归问题;交叉熵误差更多用于分类问题,刻画两个概率事件分布之间的距离
损失函数极值
目的:搜索使
E
(
W
)
E(W)
E(W)最小的权值向量
W
W
W
思路:在曲面的任何一点,我们都能够定义一个与其相切的平面。在更高的维度,我们总能够定义一个超平面,在这个平面上有无限个方向。其中,准确来说只有一个使函数上升最快的方向,这个方向由梯度给出,与之相反的方向就是下降最快的方向。我们沿着梯度的方向进行下降,即梯度下降法
梯度下降方法
- 全局梯度下降。收敛过程非常慢,每次更新权值都需要计算所有训练样例
- 随机梯度下降。难以收敛到极值
- 小批量梯度下降。兼顾了效率和梯度的稳定性,容易冲过局部极小值
反向传播
链式求导法,将输出层误差反向传回神经网络,权重计算较为简单
- 从最后一层开始,计算误差对于该层节点参数的梯度
- 基于上一层的梯度值,对当前层参数的梯度值进行计算,重复该步骤,将参数传播至第一层
误差反向传播
权重更新
卷积神经网络(CNN)
卷积神经网络是一种前馈神经网络,由三部分组成:卷积层,池化层,全连接层。可响应一部分覆盖范围内的周围单元,可用于图像处理,避免了对图像的复杂前期预处理,可直接输入原始图像,如实现棋盘阴影错觉
卷积运算
注:d为图像通道数
单核卷积
输入图像与其所覆盖的卷积核内的数值进行相乘再相加
多核卷积
各通道单核卷积后乘以偏置再求和
局部感知
一般认为人对外界的认知是从局部到全局的,图像像素点的空间联系也是局部的像素联系较为紧密,而距离较远的像素则较弱
在CNN中,每个神经元只需要收集局部信息
实现方式:使kernel的尺寸远小于输入图像的尺寸
优点:
- 减少内存需求
- 模拟视觉皮层中的神经元,每个神经元一次只收集局部信息
参数共享
实现方式:用参数相同的kernel去扫描图像
优点:
- 解决图像位置不变性问题(同一图像在不同状态下会被识别为同一物体,如移动、旋转、尺度改变)
- 减少计算和内存需求
多核卷积层
通过不同的卷积核提取图像的局部特征信息
输入层图像信息经过6层卷积得到6个特征图
多层卷积层
池化层
池化一般分为最大池化和平均池化
作用:降低特征图参数量,保留图像显著特征,降低过拟合,扩大感知野,解决图形不变性
全连接层
将最后得到的特征映射到线性可分的空间,在整个卷积神经网络中起到“分类器”的作用
综上所述,可知CNN适用于处理图像、序列等信息,即与时间无强相关的信息
循环神经网络(RNN)
通过隐藏节点周期性链接,捕捉序列化数据中的动态信息
双向循环神经网络
解决了信息记忆问题,但对于长时间记忆的信息会衰减且易梯度消失、梯度爆炸