5.1 神经元模型
-
神经网络的定义
- 神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的反应
-
神经元模型:即上述定义中的“简单单元”是神经网络的基本成分
-
M-P 神经元模型
- 输入:来自其他 n 个神经元传递过来的输入信号
- 处理:输入信号通过带权重的连接进行传递,神经元接受到总输入值将与神经元的阈值进行比较
- 输出:通过激活函数的处理以得到输出
- 激活函数:sgn 阶跃函数(没办法求导)、Sigmoid 函数【y’ = y(1-y),优点:求导简单,可以求无穷次导数;缺点:y(1-y) 值会变小】
5.2 感知机与多层网络
-
感知机能够容易实现逻辑与、或、非运算
-
wi←wi+ΔwiΔwi=η(y−y^)xi其中,η∈(0,1)称为学习率(learningrate)若感知机对训练样例(x,y)预测正确,即y^=y,则感知机不发生变化
-
XOR 异或问题:不能用单层感知机划分(但是可以用两层感知机解决)
-
多层前馈神经网络
-
要有隐层(隐藏层 hidden layer)
-
定义:每层神经元与下一层神经元全互联,神经元之间不存在同层连接也不存在跨层连接
-
前馈:输入层接受外界输入,隐含层与输出层神经元对信号进行加工,最终结果由输出层神经元输出
-
f(w1,2x−θ)把上面的值当成新的x,进行相同运算,f(w2,3x−θ)
-
学习:根据训练数据来调整神经元之间的“连接权”(connection weight)以及每个功能神经元的阈值
-
5.3 误差逆传播算法(Error BackPropagation,简称 BP)
-
链导法则:参数往自己梯度的方向往前走【网上有个推导:神经网络BP算法推导】
-
所有因子都被存好了
-
3 层有 2 个嵌套
-
v←v+Δv
-
BP 算法基于梯度下降(gradient descent)策略,以目标的负梯度方向对参数进行调整
-
-
梯度消失:没有办法学参数(就是传递到前面时,导数消失了,没办法更新)
-
ReLU 函数:梯度要么是 0,要么是 1,所以不会出现梯度消失的问题
-
如果激活函数用线性函数,那么就相当于 x 乘一个个矩阵,最后还是线性函数,最后学到的是一个线性分类器,不能解决 XOR 问题
-
标准 BP 算法
- 每次针对单个训练样例更新权重与阈值(每来一个样本,进行更新)
- 参数更新频繁,不同样例可能抵消,需要多次迭代
-
累计 BP 算法
-
一堆样本放进去,求平均误差,用平均误差更新
-
其优化的目标是最小化整个训练集上的累计误差
-
E=m1k=1∑mEk
-
读取整个训练集一遍才对参数进行更新,参数更新频率较低
-
-
实际应用
- 累计误差下降到一定程度后,进一步下降会非常缓慢,这时标准 BP 算法往往会获得较好的解,尤其当训练集非常大时效果更明显
-
多层前馈网络局限
- 过拟合:训练误差持续降低,但测试误差却可能上升
- 如何设置隐层神经元的个数仍然是个未决问题,实际应用中通常使用“试错法”调整
-
缓解过拟合的策略
- 早停:若训练误差降低,但验证误差升高,则停止训练
- 正则化:在误差目标函数中增加一项描述网络复杂程度的部分,例如连接权值与阈值的平方和
5.4 全局最小与局部极小
-
梯度下降,一定找到的是局部最优
-
”跳出“局部最小的策略
- 模拟退火技术:每一步都以一定的概率接受比当前解更差的结果,从而有助于跳出局部极小
- 随机梯度下降:在计算梯度时加入了随机因素
- 遗传算法:遗传算法也常用来训练神经网络以更好地逼近全局极小
5.5 其他常见神经网络
-
RBF 网络
-
单隐层前馈神经网络:和输入向量有关,一定是非线性
-
φ(x)=i=1∑qwiρ(x,ci)q为隐层神经元的个数,ci和wi分别是第i神经元对应的中心和权重,ρ(x,ci)是径向基函数
-
RBF 网络性质
- 以任意精度逼近任意连续函数(最基本条件)
-
RBF 网络训练
- Step1:确定神经元中心,常用方式(随机采样,聚类)
- Step2:利用 BP 算法等确定参数
-
-
ART 网络
- 竞争学习:无监督学习
- 适合在线学习,在线更新
- ART 网络由比较层、识别层、识别阈值和重置模块构成
- 比较层负责接收输入样本,并将其传送给识别层神经元
- 识别层每个神经元对应一个模式类,神经元的数目可在训练过程中动态增长以增加新的模式类
-
SMO 网络
- 无监督学习
-
级联相关网络
-
Elman 网络
- 递归神经网络:输出的神经元继续作为下一时刻的输入神经元
-
RNN
-
LSTM
-
Boltzmann 机