神经网络由神经元组成广泛并行互联,神经元是最基本单元。
M-P神经元模型:与生物神经元类似,接受n个输入,不同输入权重不同,然后与阈值进行比较(如果超过则“兴奋”),经过激活函数处理产生输出。激活函数在前面有提到,我们常使用sigmiod作为激活函数。
由输入层和输出层组成(两层神经元),输出层是M-P神经元,其可以实现与或非的运算。只有一层功能神经元,因而学习能力有限。
其中“阈值”可以通过学习得到,也可看作一个固定输入未-1.0的“哑结点”所对应的连接权重的w(n+1)。
感知机权重更新公式:
其中,属于(0,1)称为学习率。
若两类样本线性可分(存在一个超平面将它们分开,两个都不行),则感知机的学习过程一定收敛,否则发散。
可解决非线性可分问题,插入隐含层:在输入层和输出层之间。隐含层和输出层神经元都拥有激活函数。
多层前馈神经网络:相邻层全连接,同层无连接,不存在跨层连接。其中,前馈的意思是指:网络拓扑结构上不存在环或者回路。
离散属性的处理参考3.2节。BP算法是一种迭代学习算法,每一轮迭代采用广义的感知机学习规则对参数进行更新估计。基于梯度下降法,以目标的负梯度方向对参数进行调整。
其目标是要最小化训练集D上的累计误差。
学习率太大导致振荡,太小步长小太慢。
一种一阶优化方法,用于求解无约束优化问题。对于一个连续可微函数,若有
(B.15)
则不断执行该过程可收敛到局部最小点,对上式由泰勒展开,
注:最后一个为倒,表示导数。
于是,为了满足,
选择
(后面的依然为倒)
其中步长是一个小常数,每步的步长可以不相等。
当二阶连续可微时,可以使用二阶泰勒展开,这样就是牛顿法。由于牛顿法涉及海森矩阵的求逆,所以其计算量大,若能找到海森矩阵的近似逆矩阵,则得到拟牛顿法。
标准BP算法每次仅针对一个训练样例更新连接权和阈值,如果类似地推出基于累计误差最小化的更新规则,便得到了累计误差逆传播算法。一般而言,利用累计BP算法在读取整个D后才对参数进行更新,其更新频率低,但累计误差下降到一定程度后,此时,标准BP算法往往会更快得到更优解,尤其在D特别大时。
利用“试错法”设置隐层神经元的个数。
由于强大的表示能力,BP神经网络常常过拟合,产生训练误差持续降低,但测试误差却可能上升。
注:
训练误差是指模型在训练集上的错分样本比率,就是在训练集上训练完毕后在训练集本身上进行预测得到了错分率(同样的测试误差就是模型在测试集上的错分率)。
泛化误差是指模型在未知记录上的期望误差,就是在训练集上没见过的数据的错分样本比率。
缓解BP网络过拟合,1:“早停”;2:“正则化”,在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权和阈值的平方和。将误差目标函数改为原误差函数与平方和的和,在这两项前面乘以系数和,进行这种,常通过交叉验证法来估计。
交叉验证法:在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和。这个过程一直进行,直到所有的样本都被预报了一次而且仅被预报一次。把每个样本的预报误差平方加和,称为PRESS(predicted Error Sum of Squares)。
”跳出“局部极小寻找全局最小:1:多组不同的参数初始化神经网络,即从多个不同的初始点开始搜索;2:模拟退火算法,模拟退火在每一步都以一定的概率接受比当前解更差的结果,并且在每次迭代中,接受“次优解”的概率不断变小,保持了算法的稳定;3:随机梯度下降,加入随机因素,即使处于局部最小点其计算的梯度仍然可能不为零;4:遗传算法
单隐层前馈神经网络,使用径向基函数作为隐层神经元的激活函数,输出层是对隐层神经单元输出的线性组合。
训练过程:确定神经元中心(随机采样,聚类),利用BP算法确定参数
竞争型学习:无监督学习,输出神经元之间互相竞争,每一时刻只有一个竞争获胜的神经元被激活,其他的被抑制。
由比较层(接受输入样本并传递给识别层),识别层(每个神经元对应一个模式类,可在训练过程中动态增加神经元以增加新的模式类),识别阈值,重置模块构成。
ART的增量学习和在线学习缓解了竞争学习中的”可塑性--稳定性窘境“,其中可塑性:学习新知识的能力;稳定性:学习新知识的同时保持旧知识。
增量学习:在学得模型后再接收到训练样本时,直接对模型更新,而不用重新学习所有样本,并且先前的学习有效知识不会删去。
在线学习:每获得一个新样本就进行一次模型更新(增量学习的特例)。
竞争型无监督学习,将高维输入数据映射到低维空间中(二维),同时保持数据在高维空间中的拓扑结构,即在高维空间中相似的样本点会被映射到网络输出层中邻近的神经元。
结构自适应网络:学习参数和网络的结构。
级联相关网络是一种结构自适应网络,其中,级联:建立层次连接的层次结构,随着训练的进行,新的隐层神经元加入,创建起层级结构,当新的隐层神经元加入时,其输入端连接权值时冻结固定的。相关:通过最大化新神经元的输出与网络误差之间的相关性来训练相关参数。
级联相关网络不需要设置网络层数,隐层神经元数目,且训练速度快,但在数据集小时易过拟合。
递归神经网络:允许出现环形结构,这意味着一些神经元的输出信号反馈回来作为输入信号,使得网络的输出状态与前一时间的网络状态有关,可处理与时间有关的动态变化。
基于能量的模型,神经元分为显层(用于表示数据的输入和输出)和隐层(数据的内在表达)。
标准Boltzmann机:
受限Boltzmann机:
参数越多的模型复杂度越高,容量越大,可完成更加复杂的任务,但易过拟合,训练效率低,这就需要超大计算能力和超大训练数据集。
从模型复杂度来看,增加隐层的数目比增加隐层的神经元数目更有效。