新闻中心

EEPW首页 > EDA/PCB > 设计应用 > Matlab语言的Neural Network Toolbox 及其在同步中

Matlab语言的Neural Network Toolbox 及其在同步中

作者:时间:2012-09-11来源:网络收藏

子对象结构中包含了网络单个对象的信息。神经元的每一层有相同的传输函数net.transferFcn和网络输入函数net.netInputFcn,对于创建感知机采用hardlim和netsum函数。如果神经元要有不同的传输函数,则将设计不同的层以满足要求。参数net.Input-Weights和net.layerWeights描述了被应用的训练函数以及它们的参数。

接下来叙述训练函数、初始化函数和性能函数。

trainFcn和adaptFcn是2种不同的训练方式,分别指批处理方式和增加方式或称在线方式。通过设置trainFcn的参数,就可以告诉哪种运算法被使用;在运用循环顺序增加方式时,多用trainc函数。ANN工具箱包含大约20个训练函数。性能函数用来测定ANN完成规定任务时的性能。对于感知机,它的平均差错性能测定用函数mae;对于线性衰退系统,它的均方根差错性能测定用函数mae。initFcn函数用来初始化网络的权重和偏置。神经网络工具箱包含在nnet目录中,键入help nnet可得到帮助主题。如果要将这些函数替换为工具箱里的其他函数或者是自己编写的函数,只需把这些函数名配置新的参数即可,例如:

通过改变参数,可以改变上面提到的函数的默认行为。最经常用到的函数的参数就是:trainParam,格式:net.trainParam.epochs,用来设置运算的时间点的最大数目;格式:net.trainParam.show,用来设置性能测定间隔的时间点的数目。可以通过输入帮助help获得更多信息。

网络的权重和偏置也被存储在下面的结构体里面:

IW(i,j)部分是一个二维的元胞矩阵,存储输入j与网络层i的连接的权重。LW(i,j)部分,用来存储网络层j和网络层i间连接的权重。元胞数组b存储每一层的偏置向量。

2.2 模式分类

如果一个问题可以被分解为多个模式级别,则可以用神经网络来解决这一问题。在大多数情况下,利用神经网络解决问题是可能的。神经网络的函数用来接收输入模式,然后输出适合这一级别的模式。

这方面的例子由产生和训练一个感知机对属于3个不同等级的点进行正确的分级。神经网络的输入数据被定义如下:

X矩阵的每一行代表一个采样点,采样点的等级用矩阵C的相应元素值来描述。因为想要对3个不同的等级进行区分,所以需要3个感知机,每一个等级有1个。相应的目标函数描述如下:

2.3 训练与泛化

神经网络是模式分级的,但并不是所有的模式分级都指的是神经网络。下面将讲述神将神经网络与其他分级的一些区别。它们的主要区别在2个属性上:学习与泛化。

在使用电子存储器解决数字分级器时,管理存储器,特别是完成输入的合并方面,花费很大精力。要求能够通过给它较少数目的简单且具有正确响应的例子来解决问题,这就指的是学习或称为训练:系统学习识别默写特定的模式,然后给出正确的输出响应。

某种程度上,这一部分已经被如今的电子存储器实现了。首先初始化设置存储器的所有值为0,然后,调用范例对存储器的值进行训练,将结果存入存储器的相应位置。在相应的位置用1替换原来的0。1显示了相应的输入模式等级。训练阶段结束后,进入实际操作。如果这些模式与训练阶段的模式是一样的,则输出结果就是正确的。

理想的,器件应该给出正确的响应,即使有些例子没有明确的显示。这部分被称为泛化。系统能够推断出例子给的不同模式等级的属性。神经网络能够做这种事,如果他们被正确操作,他们将对那些在训练阶段学习的模式非常相似的模式做出响应。那么,对于数字分级器来说,这意味着神经网络被数据范例进行训练,它就能正确地区分相似的数据,而以前这些都是次要的。这里设:

c++相关文章:c++教程




评论


相关推荐

技术专区

关闭