神经网络 初步
ANN整理
Last Modified: Sep. 9, 15
1.算法总结
ANN三要素:1)网络拓扑结构,2)传递函数,3)学习算法。
1)按结构类型分:层次型,互连型
按流向类型分:前馈型,反馈型
2)按函数类型分:阈值型变换函数,非线性变换函数(如Sigmod函数),分段线性变换函数,概率型变换函数
3)按有监督学习分:最小均方差规则(LMS),相关学习规则,离散感知器规则,连续感知器规则
1.1.BP(Error Back Propagation)算法
BP网络是1986年由RumelHart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。他的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑机结构包括输入层(input),隐层(hide layer)和输出层(output layer)。
多层感知器(包括BP神经网络)的隐节点基函数采用线性函数,激活函数则采用Sigmoid函数或硬极限函数。
BP算法主要缺点:收敛速度慢,局部极值,难以确定隐含层层数和各隐含层节点数。
改进方法:1)启发式学习算法,2)基于数值最优化理论的训练算法
1)有动量的梯度下降法,有动态自适应学习率的梯度下降法,能复位的BP训练法等;
2)共轭梯度法,牛顿法,Levenberg-Marquardt方法。
1.2.其它经典的神经网络算法
径向基函数网络:RBF网络的隐节点的基函数采用距离函数(如欧氏距离),并使用径向基函数(如Gaussian函数)作为激活函数。隐节点具有“局部特性”。
卷积神经网络(CNN):一种特殊的深层的神经网络模型,它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的, 另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的)。
2.流行工具包
Weka中的神经网络
BP神经网络对应的分类算法:weka.classifiers.functions.MultilayerPerceptron。(注:可以手工构造这个网络,用算法创建它,或者两者兼备。这个网络可以在训练的过程中被监视和修改。)
RBF神经网络对应的分类算法:weka.classifiers.functions.RBFNetwork。
其他的工具包
针对各个语言都有若干个工具包,如matlib神经网络工具箱,python的scikit-learn,Java的Joone,C++的Caffe等等。
3.应用领域
4.对输入数据的要求和参数选择
类似于SVM,输入数据需要尺度变换。
参数选择包括:激活函数f(·),权值初始化,权值衰减,学习率设置,隐含层数等。
5.略
6.主要参考文献
[1] Richard O. Duda, Peter E. Hart, David G. Stork: Pattern Classification, Second Edition, 2001.
[2] 漫谈ANN(2):BP神经网络, URL: http://hahack.com/reading/ann2/, 2011.
[3] Weka中BP神经网络的实践(参数调整以及结果分析), URL: http://www.cnblogs.com/flclain/archive/2012/12/26/2833434.html, 2012.
[4] 机器学习和深度学习资料, URL:https://github.com/ty4z2008/Qix/blob/master/dl.md, 2015.