人工神经网络算法知识点总结

人工神经网络的许多算法已在智能信息处理系统中获得广泛采用,尤为突出是是以下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),重复这一过程直至不存在更多的有能力的神经元为止。

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

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

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

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

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

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

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

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

3.Kohonen网络

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

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

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

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

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

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

4.Hopfield网络

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

(0)

相关推荐

  • python实现简单神经网络算法

    python实现简单神经网络算法,供大家参考,具体内容如下 python实现二层神经网络 包括输入层和输出层 import numpy as np #sigmoid function def nonlin(x, deriv = False): if(deriv == True): return x*(1-x) return 1/(1+np.exp(-x)) #input dataset x = np.array([[0,0,1], [0,1,1], [1,0,1], [1,1,1]]) #out

  • python实现神经网络感知器算法

    现在我们用python代码实现感知器算法. # -*- coding: utf-8 -*- import numpy as np class Perceptron(object): """ eta:学习率 n_iter:权重向量的训练次数 w_:神经分叉权重向量 errors_:用于记录神经元判断出错次数 """ def __init__(self, eta=0.01, n_iter=2): self.eta = eta self.n_iter

  • Python实现的三层BP神经网络算法示例

    本文实例讲述了Python实现的三层BP神经网络算法.分享给大家供大家参考,具体如下: 这是一个非常漂亮的三层反向传播神经网络的python实现,下一步我准备试着将其修改为多层BP神经网络. 下面是运行演示函数的截图,你会发现预测的结果很惊人! 提示:运行演示函数的时候,可以尝试改变隐藏层的节点数,看节点数增加了,预测的精度会否提升 import math import random import string random.seed(0) # 生成区间[a, b)内的随机数 def rand(

  • Python编程实现的简单神经网络算法示例

    本文实例讲述了Python编程实现的简单神经网络算法.分享给大家供大家参考,具体如下: python实现二层神经网络 包括输入层和输出层 # -*- coding:utf-8 -*- #! python2 import numpy as np #sigmoid function def nonlin(x, deriv = False): if(deriv == True): return x*(1-x) return 1/(1+np.exp(-x)) #input dataset x = np.

  • Python实现的NN神经网络算法完整示例

    本文实例讲述了Python实现的NN神经网络算法.分享给大家供大家参考,具体如下: 参考自Github开源代码:https://github.com/dennybritz/nn-from-scratch 运行环境 Pyhton3 numpy(科学计算包) matplotlib(画图所需,不画图可不必) sklearn(人工智能包,生成数据使用) 计算过程 输入样例 none 代码实现 # -*- coding:utf-8 -*- #!python3 __author__ = 'Wsine' im

  • 神经网络(BP)算法Python实现及应用

    本文实例为大家分享了Python实现神经网络算法及应用的具体代码,供大家参考,具体内容如下 首先用Python实现简单地神经网络算法: import numpy as np # 定义tanh函数 def tanh(x): return np.tanh(x) # tanh函数的导数 def tan_deriv(x): return 1.0 - np.tanh(x) * np.tan(x) # sigmoid函数 def logistic(x): return 1 / (1 + np.exp(-x)

  • 人工神经网络算法知识点总结

    人工神经网络的许多算法已在智能信息处理系统中获得广泛采用,尤为突出是是以下4种算法:ART网络.LVQ网络.Kohonen网络Hopfield网络,下面就具体介绍一下这这四种算法: 1.自适应谐振理论(ART)网络 自适应谐振理论(ART)网络具有不同的方案.一个ART-1网络含有两层一个输入层和一个输出层.这两层完全互连,该连接沿着正向(自底向上)和反馈(自顶向下)两个方向进行. 当ART-1网络在工作时,其训练是连续进行的,且包括下列算法步骤: (1)对于所有输出神经元,如果一个输出神经元的

  • Python实现的人工神经网络算法示例【基于反向传播算法】

    本文实例讲述了Python实现的人工神经网络算法.分享给大家供大家参考,具体如下: 注意:本程序使用Python3编写,额外需要安装numpy工具包用于矩阵运算,未测试python2是否可以运行. 本程序实现了<机器学习>书中所述的反向传播算法训练人工神经网络,理论部分请参考我的读书笔记. 在本程序中,目标函数是由一个输入x和两个输出y组成, x是在范围[-3.14, 3.14]之间随机生成的实数,而两个y值分别对应 y1 = sin(x),y2 = 1. 随机生成一万份训练样例,经过网络的学

  • 基于Java实现的一层简单人工神经网络算法示例

    本文实例讲述了基于Java实现的一层简单人工神经网络算法.分享给大家供大家参考,具体如下: 先来看看笔者绘制的算法图: 2.数据类 import java.util.Arrays; public class Data { double[] vector; int dimention; int type; public double[] getVector() { return vector; } public void setVector(double[] vector) { this.vect

  • Python与人工神经网络:使用神经网络识别手写图像介绍

    人体的视觉系统是一个相当神奇的存在,对于下面的一串手写图像,可以毫不费力的识别出他们是504192,轻松到让人都忘记了其实这是一个复杂的工作. 实际上在我们的大脑的左脑和右脑的皮层都有一个第一视觉区域,叫做V1,里面有14亿视觉神经元.而且,在我们识别上面的图像的时候,工作的不止有V1,还有V2.V3.V4.V5,所以这么一看,我们确实威武. 但是让计算机进行模式识别,就比较复杂了,主要困难在于我们如何给计算机描述一个数字9在图像上应该是怎样的,比如我们跟计算机说,9的上面是一个圈,下右边是1竖

  • 70行Java代码实现深度神经网络算法分享

    对于现在流行的深度学习,保持学习精神是必要的--程序员尤其是架构师永远都要对核心技术和关键算法保持关注和敏感,必要时要动手写一写掌握下来,先不用关心什么时候用到--用不用是政治问题,会不会写是技术问题,就像军人不关心打不打的问题,而要关心如何打赢的问题. 程序员如何学习机器学习 对程序员来说,机器学习是有一定门槛的(这个门槛也是其核心竞争力),相信很多人在学习机器学习时都会为满是数学公式的英文论文而头疼,甚至可能知难而退.但实际上机器学习算法落地程序并不难写,下面是70行代码实现的反向多层(BP

  • python实现人工蜂群算法

    ABSIndividual.py import numpy as np import ObjFunction class ABSIndividual: ''' individual of artificial bee swarm algorithm ''' def __init__(self, vardim, bound): ''' vardim: dimension of variables bound: boundaries of variables ''' self.vardim = va

随机推荐