机器学习初探(第四波~)
五、神经网络
1、神经元模型
神经网络的定义:
“神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的反应”
-
神经元模型 :上述定义中的“简单单元”是神经网络的基本成分。
-
生物神经网络:我们在生物中学过,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过某一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。
-
M-P神经元模型
- 输入:来自其他n个神经元传递过来的输入信号;
- 处理:输入信号通过带权重的连接进行传递,神经元接受到总输入值将与神经元的阈值进行比较;
- 输出:通过激活函数f(.)的处理以得到输出。
- 激活函数的作用是加入非线性因素,解决线性模型的表达、分类能力不足的问题
- 理想激活函数是阶跃函数,0表示抑制神经元而1表示激活神经元
- 阶跃函数具有不连续、不光滑等不好的性质,常用Sigmoid函数
- 若干个神经元按一定的层次结构连接起来,就构成了神经网络;
- 从计算机科学的角度来说,可以先不考虑神经网络是否真的模拟了生物的神经网络,只需将一个神经网络视为包含了许多参数的数学模型;
- 这个模型是若干个函数相互嵌套带入而得。
2、感知机与多层网络
-
感知机:
感知机由两层神经元组成,输入层接受外界输入信号传递给输出层,输出层是M-P神经元(阈值逻辑单元)
感知机能够容易地实现逻辑与、或、非运算
-
感知机学习
- 给定训练数据集,权重、阈值可以通过学习得到
- 感知机学习规则
-
感知机学习能力
- 若两类模式线性可分,则感知机的学习过程一定会收敛;否则感知机的学习过程将会发生震荡;
- 单层感知机的学习能力非常有限,只能解决线性可分问题
-
多层感知机
- 输出层与输入层之间的一层神经元,被称为隐层或隐含层,隐含层和输出层神经元都是具有激活函数的功能神经元
-
多层前馈神经网络
- 定义:每层神经元与下一层神经元全互联,神经元之间不存在同层连接也不存在跨层连接;
- 前馈:输入层接受外界输入,隐含层与输出层神经元对信号进行加工,最终结果由输出层神经元输出。“前馈”并不意味着网络中信号不能向后传,而是网络拓扑结构上不存在环或回路;
- 学习:根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的“阈值”。神经网络学到的东西,蕴含在连接权和阈值中;
- 多层网络:只要包含隐层,即可称为多层网络
3、误差逆传播算法
误差逆传播算法是最成功的训练多层前馈神经网络的学习算法。
-
标准BP算法
- 每次针对单个训练样类跟新权值与阈值
- 参数更新频繁,不同样例可能抵消,需要多次迭代
-
累计BP算法
- 其优化的目标是最小化整个训练集上的累计误差
- 读取整个训练集一遍才对参数进行更新,参数更新频率较低。
-
在实际应用的很多任务中,累计误差下降到一定程度后,进一步下降会非常缓慢,这时标准BP算法往往会取得较好的解,尤其当训练集非常大时效果更明显。
-
多层前馈网络表示能力
只需要一个包含足够多神经元的隐层,多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数。
-
多层前馈网络局限
- 神经网络由于强大的表示能力,经常遭遇过拟合.训练误差持续降低,但测试误差却可能上升
- 如何设置隐层神经元的个数仍是个未决问题
-
缓解过拟合的策略
- 早停
- 正则化
4 ,全局最小与局部最小
参数空间梯度为零的点,只要其误差函数值小于邻点的误差函数值,就是局部极小点;可能存在多个局部极小值,但只会有一个全局最小值.
现实任务中常跳出局部最小的策略,从而进一步达到全局最小.
- 多组不同的的初始参数优化神经网络,选取误差最小的解作为最终参数;
- 模拟退火技术
- 随机梯度下降
- 遗传算法
5, 其他常见神经网络
- 径向基网络
- 自适应共振网络
- 竞争学习—无监督学习
- 自组织映射网络
- 级联相关网络
- Elman网络
- 玻尔兹曼机
6, 深度学习
典型的深度学习模型就是很深层的神经网络.
-
模型复杂度
1)增加隐层神经元的数目(宽度)
2)增加隐层数目(深度,更有效)
-
复杂模型训练方法
- 预训练+微调--------深度信念网络
- 权共享
- 卷积神经网络