第五章
神经元模型
-
神经网络
- 由具有适应性的简单单元组成的广泛、并行、互连的网络,它的组织能够模拟生物神经系统,对真实世界物体所作出的交互反应
-
神经元模型(简单单元)
- M-P 神经元模型
- 神经元接收到来自 n 个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递。神经元接收到的总输入值将与神经元的阀值进行比较,然后通过“激活函数”处理以产生神经元的输出
- M-P 神经元模型
感知机与多层网络
-
感知机
- 由两层神经元组成。输入层接收外界输入信号后传递给输出层, 输出层是 M-P 神经元,亦称“阔值逻辑单元”
- 感知机能容易地实现逻辑与、或、非运算(线性可分)
- 缺点:
- 感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限
- 不能解决非线性可分问题
-
多层前馈神经网络
- 每层神经元与下一层神经元全互连,神经元之间不存在同层连接, 也不存在跨层连接
- 输入:输入层神经元接收外界输入
- 过程:隐层(输出层与输入层之间的一层神经元)与输出层神经元对信号进行加工
- 输出:最终结果由输出层神经元输出
- 神经网络“学”到的东西,蕴涵在连接权与阙值中
误差逆传播算法(BP)
-
输入:训练集 D,学习率 η
-
过程:
在(0, 1) 范围内随机初始化网络中所有连接权和阈值 repeat for all $(x_k, y_k) ∈ D$ do 计算当前样本的输出 计算输出层神经元的梯度项 计算隐层神经元的梯度项 更新连接权与阈值 end for until 达到停止条件
-
输出:连接权与阈值确定的多层前馈神经网络
-
标准 BP 算法与累积 BP 算法
-
标准 BP 算法:
- 每次仅针对一个训练样例更新连接权与阈值
- 参数更新非常频繁,而且对不同样例进行更新的效果可能出现“抵消”现象
-
累积 BP 算法:
- 针对累积误差最小化,它在读取整个训练集 D 一遍后才对参数进行更新
- 参数更新的频率低得多
-
-
缓和 BP 网络的过拟合策略
-
早停
- 将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值
-
正规则
- 在误差目标函数中增加一个用于描述网络复杂度的部分
-
全局最小与局部极小
-
局部极小解
- 参数空间中的某个点,其邻域点的误差函数值均不小于该点的函数值
- 可能存在多个
-
全局最小解
- 参数空间中所有点的误差函数值均不小于该点的误差函数值
- 全局唯一
其他常见神经网络
-
RBF网络
- 单隐层前馈神经网络
- 使用径向基函数作为隐层神经元激活函数,输出层则是对隐层神经元输出的线性组合
- 过程
- 确定神经元中心,常用的方式包括随机采样、聚类等
- 利用 BP 算法等来确定参数连接权和阈值
-
ART网络
- 无监督学习策略
- 在使用该策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被撤活,其他神经元的状态被抑制。这种机制亦称“胜者通吃”原则。
- 组成
- 比较层:负责接收输入样本,并将其传递给识别层神经元
- 识别层:识别层每个神经元对应一个模式类
- 识别阈值:
- 若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别,同时,网络 连接权将会更新,使得以后在接收到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元有更大可能获胜
- 若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量
- 重置模块
-
SOM网络
- 竞争学习型的无监督神经网络
- 能将高维输入数据映射到低维空间,同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。
- 过程:
- 接收到一个训练样本后
- 每个输出层神经元会计算该样本与自身携带的权向量之间的距离
- 距离最近的神经元成为竞争获胜者,称为最佳匹配单元
- 最佳匹配单元及其邻近神经元的权向量将被调整,以使得这些权向量与当前输入样本的距离缩小
- 这个过程不断迭代,直至收敛
-
级联相关网络
- 结构自适应网络(将网络结构也当做学习目标的模型)
- 级联:建立层次连接的层级结构
- 相关:通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数
- 区别:与一般的前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经元数目,且训练速度较快,但其在数据较小时易陷入过拟合
-
Elman网络
- 递归神经网络(允许网络中出现环形结构,从而可让一些神经元的输出反馈回来作为输入信号)
-
Boltzmann机
- 基于能量的模型(能量最小化时网络达到理想状态)
- 其神经元分为两层:显层与隐层
- 显层:表示数据的输入与输出
- 隐层:数据的内在表达
- Boltzmann 机中的神经元都是布尔型的