神经网络 初步

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.

posted @ 2015-09-15 17:20  nuaalida  阅读(315)  评论(0编辑  收藏  举报