人工神经网络


人工神经网络(Artificial Neural Network - ANN)的研究是由视图模拟生物神经系统而激发的。类似于人脑的结构,ANN由一组相互连接的结点和有项链构成。神经网络常用于解决分类问题。

感知器:

感知器是最简单的神经网络结构,其由两类结点组成:输入节点(用来表示输入属性);一个输出节点(用来提供模型输出)。如下图所示:


图1


神经网络结构中的结点通常叫做神经元或单元。在感知器中,每个输入结点经过一个加权链连接到输出结点。这个加权的链用来模拟神经元间神经键连接的强度。训练一个感知器模型就相当于不断调整链的权值,直到能拟合训练数据的输入输出关系为止。

感知器的输入结点简单地把接收到的值传送给输出链,而不做任何转换。输出结点则是一个数学装置,计算输入的加权和,减少偏置项,然后根据结果的符号产生输出。感知器的模型输出可用如下数学公式表示:


w是输入链的权值,x是输入属性值,sign()符号函数作为输出神经元的激活函数,t为偏置因子。(注:除了符号函数,网络还可以使用其他激活函数,如线性函数、S型(sigmoid)函数、双曲正切函数等)。

符号函数:


S型函数:



学习感知模型(训练模型)
在感知器的模型训练阶段,权值参数w不断调整直到输出和训练样例的实际输出一致。感知器学习算法概述如下:


对于线性可分的分类问题,感知器学习算法保证收敛到一个最优解。如果问题不是线性可分的,那么算法就不会收敛。针对图1中的数据,应用感知器学习算法,可以得到决策边界如下:


多层人工神经网络
相比感知器模型,多层人工神经网络可能包含多个中间层,称为隐藏层(hidden layer),隐藏层中的结点称为隐藏结点。在前馈(feed-forward)神经网络中,每一层的结点仅和下一层的结点相连。感知器就是一个单层的前馈神经网络。

一个多层前馈人工神经网络如下:


要学习ANN模型的权值,需要有一个有效的算法,该算法在训练数据充足时可以收敛到正确的解。这里介绍一种基于梯度下降的神经网络权值学习算法。

大多数情况下,由于激活函数的选择(如S型或双曲正切函数),ANN的输出是参数的非线性函数。这样就不能直接推导出w的全局最优解了。使用基于梯度下降的方法等贪心策略可以有效的求解优化问题。该种方法的权值更新公式可以写成:



ANN学习中的设计问题:
1.确定输入层的节点数目
2.确定输出层的节点数目
3.选择网络拓扑结构
4.初始化权值和偏置
5.去掉有遗漏值的训练样例,或者用最合理的值来代替。

最后,训练ANN是一个很耗时的过程,特别是当隐藏结点数量很大时。一种称为反向传播(back-propagation)的技术可以用来解决该问题。该算法的每一次迭代包括两个阶段:前向阶段和后向阶段。

神经网络分类如下图所示:




相关内容

    暂无相关文章