MLb-005 46《机器学习》周志华 第五章:神经网络
第五章 神经网络
此系列文章旨在提炼周志华《机器学习》的核心要点,不断完善中…
5.1 神经元模型
-
基本概念
神经元(neuron)模型是神经网络最基本的成分
阈值(threshold),亦称bias -
M-P神经元模型
- 图解
- **函数(activation function)
- 理想中的**函数:阶跃函数
将输入映射为输出值"0"或"1" - 典型的**函数:Sigmoid函数(挤压函数 squashing function)
将可能在**范围内变化的输入值挤压到(0,1)输出值范围内
- 理想中的**函数:阶跃函数
5.2 感知机与多层网络
-
感知机(Perceptron):由两层神经元组成
输入层:接收信号后传递给输出层
输出层:M-P神经元(阈值逻辑神经元)
感知机能容易地实现逻辑与、或、非运算两个输入神经元的感知机网络结构示意图:
-
哑结点(dummy node)
- 统一权重和阈值的学习为权重的学习(把阈值看作固定值-1,0的哑结点所对应的连接权重)
- 感知机学习规则
对训练样例(x,y),当前感知机的输出
感知机权重调整规则:
- 学习率(learning rate)
过大:容易振荡
过小:收敛速度过慢
-
单层功能神经元网络
- 对线性可分(linearly separable)问题的学习过程一定会收敛(converge)
- 对线性不可分的问题的学习过程难以收敛,将会发生振荡(fluctuation)
-
多层功能神经元网络
- 隐含层(hidden layer)
与输出神经元都是拥有**函数的功能神经元 - 多层前馈神经网络(multi-layer feedforwaard neural networks)
- 隐含层(hidden layer)
5.3 误差逆传播算法
-
误差逆传播算法(BP: error BackPropagation)
- 图解
需要确定的参数:(d+r+1)*q+r
策略:梯度下降(gradient descent) - 算法过程
- 图解
-
积累误差逆传播算法(accumlated error backpropagation) 对比
- 标准BP算法
每次更新只针对单个样例
参数更新得非常频繁
对不同样例进行更新的效果可能出现“抵消”现象
往往需进行更多次数的迭代
在训练集非常大时标准BP往往更快获得较好的解 - 积累BP算法
直接针对累积误差最小化
参数更新的评率低得多
在读取整个训练集D一遍后才对参数进行更新
- 标准BP算法
-
试错法(trial-byerror)
证明:只需两个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数
解决如何设置隐层神经元的个数问题 -
过拟合防止策略
- 早停(early stopping)
训练集:计算梯度、更新连接权和阈值
验证集:估计误差
若训练集误差降低但验证集误差升高,则停止 - 正则化(regularization)
基本思想:在误差目标函数中增加一个用于描述网络复杂度的部分(如连接权与阈值的平方和)
加入正则项的误差目标函数(BP算法最小化训练集D积累误差):
- 早停(early stopping)
5.4 全局最小与局部最小
-
最为广泛的参数寻优方法:基于梯度的搜索
负梯度方向:函数值下降最快的方向
梯度下降法:沿着负梯度方向搜索最优解
若误差函数在当前点的梯度为零,则已达到局部极小,更新量降为零,参数的迭代更新在此停止 -
试图跳出局部极小策略
以多组不同参数值初始化多个神经网络
模拟退火(simulated annealing)
随机梯度下降(stochasitc gradient descent)
遗传算法(genetic algorithms)