机器学习第五周笔记(神经网络)
神经元模型
M-P神经元模型
简单的说,神经元就是存放数据的一个存储单元
过程关键词:输入、权重、阈值、**函数
**函数
理想的**函数是阶跃函数,但是数学特性不理想(在(0,1)点,不连续、不光滑、不可导),所以我们经常使用sigmoid函数来作为**函数。
感知机和多层网络
感知机
简单的感知机模型:由多个神经元组成,包含输入与输出层。
感知机的学习能力有限,仅在线性可分问题上收敛,可以解决与或非问题,无法解决异或问题
多层功能神经单元
多层网络
多层的意思就是除了输入和输出层之外,还在中间引入了隐含层的概念。而且隐含层和输出层都拥有**函数。
多层前馈神经网络
层级结构,神经元之间不存在同层连接,也不存在跨层连接。各层功能如下:
输入层:接受外界输入
隐含层:信号加工
输出层:信号加工+输出结果
优点:理想的多层前馈神经网络可以逼近任意复杂度的连续函数
未决问题:如何设置隐藏层的神经元数,在实际中采用“试错法”
神经网络的求解:BP算法(误差逆传播算法)
error BackPropagation网络
迄今为止最成功的的神经网络算法
主要参数
输入:d维特征向量xi
输出:l维输出值yj
阈值:输出层的第j个神经元的阈值记为θj,隐藏层第h个神经元的阈值为γh。(这里特别要注意,都是阈值,但是所在的层不同,他们的名字也是不用的)
输入层:d个输入神经元;注意第i个输入神经元和第h个隐藏神经元之间的连接权重为vih(注意v相当于输入级的权重)
隐藏层:q个隐藏神经元;注意输出层第j个神经元的阈值为θj,隐藏层第h个神经元的阈值为γh
输出层:l个输出神经元;注意第h个神经元的输出为bh
基本原理
通过学习确定基本参数,需要训练的参数包括权重值w和阈值θ,个数可以通过(d+l+1)q+l计算
学习策略:基于梯度下降策略,以目标为负梯度方向对参数进行调整。
调整方式:迭代 v += dv
经过一波推导(比较难,以后再看)之后,我们可以得到权重更新公式:
使用链式法则,我们可以展开:
我们按照如下的方法定义g,
我们可以得到以下更新公式:
其中的e为:
所以误差更新的算法如下:
1.初始化各链接参数
2.计算输出y
3.计算g
4.计算梯度项e
5.更新连接权重w/v/θ/γ
6.重复2-6,直到达到停止条件
简单的说,就是根据误差来更新权重。
累计BP算法
标准的BP算法下,每次训练一个单独的样本,就要更新一次,参数更新比较频繁。
累计BP算法读取整个训练集一遍之后再进行操作,参数的更新频率下降。但是达到一定的程度之后,进一步下降的速度会比较慢。所以标准BP算法往往能获得比较好的解。
BP算法解决过拟合问题
早停
训练集误差降低但是验证集误差升高,停止训练
正则化
在误差目标中增加一种描述网络复杂度,这使得模型更偏向比较小的连接权和阈值,使得网络输出更加光滑。
局部最优和全局最优
在学习过程中,可能落入局部最优解,跳出局部最小值的常见策略:
- 不同的初试参数(广泛撒网)
- 模拟退火
- 随机扰动
- 遗传算法
(不是很清楚细节,每一种都需要进一步研究)
其他常见神经网络
RBF
Radial Basis Function(径向基函数):隐含层的**函数不是sigmoid了,是一个径向基
函数,
训练方法:
1.确定神经元中心c
2.利用BP算法来确定参数wi和βi
ART
Adaptive Resonance Theory 自适应谐振理论,是一种典型的竞争学习,由比较层(输入层)、识别层(输出层)、识别阈值、重置模块等组成。
比较层接受输入样本,传递给识别层神经元,识别层每个神经元对应一个模式类。
SOM
自组织映射,高维的输入映射到低维的空间,同时保持数据在高维的拓扑结构。
级联相关网络
自适应的网络的代表,可以在训练过程中找到符合数据特点的网络结构;无需设置层数,训练速度也比较快;
Elman网络
递归神经网络,和之前时刻的网络状态也有关系,比如LSTM等
Boltzmann机
基于能量的模型,网络训练过程中最小化能量函数。神经元是布尔型的,只能取0和1两种状态。能量函数是目标函数。通过对比散度进行训练。
深度学习
鼻祖:Hinton;Nature文章;ImageNEt
本质上就是多隐层的网络训练。提升模型复杂度,增加隐层神经元数目、增加隐层数目(模型深度)、提升学习能力。带来的后果可能是增加过拟合风险,增加训练难度。
网络训练
预训练
微调
权共享:减少参数,用在CNN中
卷积神经网络(CNN)
卷积层:通过卷积滤波器提取
采样层:pooling层、池化层、汇合层,名字有很多;
连接层:实现与输出目标之间的映射