河北都市网
河北都市网 > 金融 > 正文

人工神经网络四种算法,你有知道的吗?

导读: 

人工神经网络的许多算法已在智能信息处理系统中获得广泛采用,尤为突出是是以下4种算法:ART网络、LVQ网络、Kohonen网络Hopfield网络,下面就具体介绍一下这这四种算法:

人工神经网络的许多算法已在智能信息处理系统中获得广泛采用,尤为突出是是以下4种算法:ART网络、LVQ网络、Kohonen网络Hopfield网络,下面就具体介绍一下这这四种算法:

1.自适应谐振理论(ART)网络

自适应谐振理论(ART)网络具有不同的方案。一个ART-1网络含有两层一个输入层和一个输出层。这两层完全互连,该连接沿着正向(自底向上)和反馈(自顶向下)两个方向进行。

当ART-1网络在工作时,其训练是连续进行的,且包括下列算法步骤:

(1)对于所有输出神经元,如果一个输出神经元的全部警戒权值均置为1,则称为独立神经元,因为它不被指定表示任何模式类型。

(2)给出一个新的输入模式x。

(3)使所有的输出神经元能够参加激发竞争。

(4)从竞争神经元中找到获胜的输出神经元,即这个神经元的x·W值为最大;在开始训练时或不存在更好的输出神经元时,优胜神经元可能是个独立神经元。

(5)检查该输入模式x是否与获胜神经元的警戒矢量V足够相似。

(6)如果r≥p,即存在谐振,则转向步骤(7);否则,使获胜神经元暂时无力进一步竞争,并转向步骤(4),重复这一过程直至不存在更多的有能力的神经元为止。

ART网络

2.学习矢量量化(LVQ)网络

学习矢量量化(LVQ)网络,它由三层神经元组成,即输入转换层、隐含层和输出层。该网络在输入层与隐含层之间为完全连接,而在隐含层与输出层之间为部分连接,每个输出神经元与隐含神经元的不同组相连接。

最简单的LVQ训练步骤如下:

(1)预置参考矢量初始权值。

(2)供给网络一个训练输入模式。

(3)计算输人模式与每个参考矢量间的Euclidean距离。

(4)更新最接近输入模式的参考矢量(即获胜隐含神经元的参考矢量)的权值。如果获胜隐含神经元以输入模式一样的类属于连接至输出神经元的缓冲器,那么参考矢量应更接近输入模式。否则,参考矢量就离开输人模式。

(5)转至步骤(2),以某个新的训练输入模式重复本过程,直至全部训练模式被正确地分类或者满足某个终止准则为止。

LVQ网络

3.Kohonen网络

Kohonen网络或自组织特征映射网络含有两层,一个输入缓冲层用于接收输入模式,另一个为输出层,输出层的神经元一般按正则二维阵列排列,每个输出神经元连接至所有输入神经元。连接权值形成与已知输出神经元相连的参考矢量的分量。

训练一个Kohonen网络包含下列步骤:

(1)对所有输出神经元的参考矢量预置小的随机初值。

(2)供给网络一个训练输入模式。

(3)确定获胜的输出神经元,即参考矢量最接近输入模式的神经元。参考矢量与输入矢量间的Euclidean距离通常被用作距离测量。

(4)更新获胜神经元的参考矢量及其近邻参考矢量。这些参考矢量(被引至)更接近输入矢量。对于获胜参考矢量,其调整是最大的,而对于离得更远的神经元,减少调整个神经元邻域的大小随着训练的进行而相对减小,到训练结束,只有获胜神经元的参考矢量被调整。

Kohonen网络

4.Hopfield网络

Hopfield网络是一种典型的递归网络,这种网络通常只接受二进制输入(0或1)以及双极输入(+1或-1)。它含有一个单层神经元,每个神经元与所有其他神经元连接,形成递归结构。

来源:百家号                                                    时间:2019-01-11

人工神经网络,简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或者计算模型。其实是一种与贝叶斯网络很像的一种算法。之前看过一些内容始终云里雾里,这次决定写一篇博客。弄懂这个基本原理,毕竟现在深度学习太火了。

人工神经网络简单算法的原理

神经网络是一种方法,既可以用来做有监督的任务,如分类、视觉识别等,也可以用作无监督的任务。首先,我们看一个简单的例子。如下图所示(这个图网上有很多人引用了,但我找不到出处,欢迎指正),如果我们想训练一个算法可以使其识别出是猫还是狗,这是很简单的一个分类任务,我们可以找一条线(模型),在这个二元坐标中进行“一刀切”,把这两组数据分开。我们知道,在解析几何中,这条直线可以用如下的公式表达:

图1 猫狗数据

图1 猫狗数据

图2 一个简单的神经网络

图2 一个简单的神经网络

这里的W1和W2就是两个坐标轴上的系数,可以称为权重。W0可以称作截距,也叫做偏移。新来一个数据点,也就是一组输入值(X1,X2),如果在这条线的左边,那么它就是一只狗,如果在右边就是一只猫了。这就可以用一个简单的神经网络来表示。如图2所示,X1和X2分别是输入值,Y是输出值,两条边的权重分别是W1和W2。这是一个最简单的神经网络了。这就是使用神经网络定义了一个线性分类器了。这里的一个圆形的节点就是一个神经元。我们也可以采用另一种方式,即在输入输出之间加一个中间节点S,然后增加一个输出层,包括两个节点Y1和Y2,分别对应猫和狗,最后哪个输出节点的值大,那么这个数据就属于哪个类别(猫或者狗)。

人工神经网络简单算法的原理

人工神经网络简单算法的原理

对于简单的二分类问题这就可以解决了。但在实际情况中,有很多问题无法简单的使用“一刀切”的方式解决,如图3所示,假设猫和狗的数据分布如下图,那么这就无法用“一刀切”的方式来解决了,但是我们可以切两刀,横竖各一刀,然后把相同的“块”联合起来,这样就解决了比较复杂的分类问题了。也有些问题,需要用曲线来分割。在这种情况下,我们就需要比较复杂一点的神经网络了。以曲线为例,我们可以设计出一个三层的神经网络。这就是用神经网络设计的一个非线性分类器。理论上讲,如何一个分类器都可以设计一个神经网络来表征,也就是说,不管实际图形如何,我们都可以设计一个神经网络来拟合。到这里,可能有人问,每个节点的这个函数要如何选择?根据吴军老师《数学之美》第二版中的说法,为了提供人工神经网络的通用性,我们一般规定每个神经元的函数只能针对其输入的变量做一次非线性的变换。举个例子说就是假如某个神经元Y 的输入值是X1,X2,...Xn,它们的边的权重分别为W1,W2,...Wn,那么计算Y节点的值分两步进行,第一步是计算来自输入值的线性组合:

第二步是计算y=f(G),这里的f(⋅)可以使非线性的,,但因为里面的参数是一个具体的值,所以不会很复杂。这两个步骤的结合使得人工神经网络既灵活又不至于太复杂。这里的f(⋅)就是激活函数。线性模型的表达能力不够,它的作用就是来增强模型的表示能力。人工神经网络可以很多层连接在一起,因此在人工神经网络中,主要的工作就是设计结构(基层网络,每层几个节点等)和激活函数。我们常用的激活函数包括Sigmoid函数、ReLU函数、Tanh函数等等。如下图所示,这是几种简单的激活函数的示意图

人工神经网络简单算法的原理

来源:电子发烧友网                                                         时间: 2017年11月15日

推荐阅读:福建都市