第5章 神经网络(Neural Networks)
1.神经元模型
1.1 神经元(neuron)模型是神经网络最基本的成分
1.2 阈值(threshold),亦称bias
1.3 M-P神经元模型
- 激活函数(activation function),亦称响应函数
- 理想中的激活函数:阶跃函数
将输入值映射为输出值”0”或”1”
- 典型的激活函数:Sigmoid函数
将可能在较大范围内变化的输入值挤压到(0,1)输出值范围内
2.感知机与多层网络
2.1 感知机(perceptron)
2.1.1 由两层神经元组成
- 输入层:接收信号后传递给输出层
- 输出层:M-P神经元
2.1.2 感知机能容易地实现逻辑与、或、非运算
2.2 哑节点(dummy node)
2.2.1 统一权重和阈值的学习为权重的学习
2.2.2 感知机学习规则
- 对训练样例(x,y),若当前感知机的输出为
- 感知机权重调整规则
2.2.3 学习率(learning rate)
- 太大则容易振荡,太小则收敛速度又会过慢
2.3 单层功能神经元(functional neuron)网络
2.3.1 对线性可分(linearly sparable)问题的学习过程一定会收敛(converge)
2.3.2 对线性不可分问题的学习过程难以收敛,将会发生振荡(fluctuation)
2.4 多层功能神经元网络
2.4.1 隐层或隐含层(hidden layer)
2.4.2 多层前馈神经网络(multi-layer feedforward neural networks)
3.误差逆传播算法
3.1 误差逆传播(error BackPropagation,简称BP)算法
上图网络中有(d+l+1)*q+l个参数需要确定:
输入层到隐层的d*q个权值、隐层到输出层的q*l个权值、q个隐层神经元的阈值、l个输出层神经元的阈值。
- 策略:梯度下降(gradient descent)
算法过程:
3.2 累积误差逆传播(accumulated error backpropagation)
- 与标准BP算法的区别
- 标准BP算法
- 每次更新只针对单个样例
- 参数更新得非常频繁
- 对不同样例进行更新的效果可能出“现抵”消现象
- 往往需进行更多次数的迭代
- 在训练集D非常大时标准BP往往会更快获得较好的解
- 累积BP算法
- 直接针对累积误差最小化
- 参数更新的频率低得多
- 在读取整个训练集D一遍后才对参数进行更新
3.3 试错法(trial-by-error)
解决如何设置隐层神经元的个数问题
3.4 过拟合防止策略
3.4.1 早停(early stopping)
将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值
3.4.2 正则化(regularization)
基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和
加入正则项的误差目标函数
4.全局最小(global minimum)和局部最小(local minimum)
4.1 参考图
4.2 最为广泛的参数寻优方法
- 基于梯度的搜索
- 负梯度方向是函数值下降最快的方向,因此梯度下降法就是沿着负梯度方向搜索最优解
- 若误差函数在当前点的梯度为零,则已达到局部极小,更新量将为零,这意味着参数的迭代更新将在此停止
4.3 试图“跳出”局部极小策略
- 以多组不同参数值初始化多个神经网络
- 模拟退火(simulated annealing)
- 随机梯度下降(stochastic gradient descent)
- 遗传算法(genetic algorithms)
5.其他常见神经网络
- RBF(Radial Basis Function,径向基函数)
- ART(Adaptive Resonance Theory,自适应谐振理论)
- SOM(Self-Organizing Map,自组织映射)
- 级联相关网络
- Elman网络
- Boltzmann机
6.深度学习
7.阅读材料
- N-P神经元模型使用最为广泛,但还有一些神经元模型也受到关注,如考虑了电位脉冲发放时间而不仅是累积电位的脉冲神经元(spiking neuron)模型
- 神经网络是一种难解释的“黑箱模型”,但已有一些工作尝试改善神经网络的可解释性,主要途径是从神经网络中抽取易于理解的符号规则。