主要内容

动态神经网络是如何工作的

前馈和递归神经网络

动态网络可以分为两类:仅具有前馈连接的网络,以及具有反馈(即循环连接)的网络。要理解静态网络、前馈-动态网络和循环-动态网络之间的区别,请创建一些网络,并查看它们如何对输入序列作出响应。(首先,你可能想回顾一下动态网络中序列输入的仿真.)

下面的命令创建一个脉冲输入序列并绘制它:

P = {0 0 1 1 1 0 0 0 0};阀杆(cell2mat (p))

现在创建一个静态网络并找到网络对脉冲序列的响应。下面的命令创建了一个简单的线性网络,一个神经元,无偏差,权重为2:

网= linearlayer;net.inputs{1}。大小= 1;net.layers{1}。尺寸= 1;网。biasConnect = 0;网。信息战{1,1} = 2; view(net)

您现在可以模拟网络对脉冲输入的响应,并绘制它:

一个=净(p);阀杆(cell2mat (a))

请注意,静态网络的响应持续时间与输入脉冲一样长。静态网络在任何时间点的响应只取决于同一时间点的输入序列的值。

现在创建一个动态网络,但它没有任何反馈连接(非循环网络)。您可以使用相同的网络动态网络中并发输入的仿真,这是一个线性网络,在输入端有一个抽头延迟线:

Net =线性层([0 1]);net.inputs{1}。大小= 1;net.layers{1}。尺寸= 1;网。biasConnect = 0;网。信息战{1,1} = [1 1]; view(net)

您可以再次模拟网络对脉冲输入的响应,并绘制它:

一个=净(p);阀杆(cell2mat (a))

动态网络的响应持续时间比输入脉冲长。动态网络具有内存。它在任何给定时间的响应不仅取决于当前输入,还取决于输入序列的历史。如果网络没有任何反馈连接,那么只有有限数量的历史会影响响应。在此图中,您可以看到对脉冲的响应超过脉冲持续时间一个时间步长。这是因为输入端的抽头延迟线的最大延迟为1。

现在考虑一个简单的递归动态网络,如下图所示。

您可以使用以下命令创建、查看和模拟网络。的narxnet命令在设计时间序列NARX反馈神经网络

网= narxnet (0, 1, [],“关闭”);net.inputs{1}。大小= 1;net.layers{1}。尺寸= 1;网。biasConnect = 0;网。LW{1} = .5; net.IW{1} = 1; view(net)

下面的命令绘制网络响应。

一个=净(p);阀杆(cell2mat (a))

请注意,循环动态网络通常比前馈动态网络有更长的响应。对于线性网络,前馈动态网络被称为有限脉冲响应(FIR),因为对一个脉冲输入的响应将在有限的时间后变成零。线性递归动态网络称为无限脉冲响应(IIR),因为一个脉冲的响应可以衰减到零(对于一个稳定的网络),但它永远不会完全等于零。一个非线性网络的脉冲响应是不能定义的,但是有限响应和无限响应的概念是可以保留下来的。

动态网络的应用

动态网络通常比静态网络更强大(尽管训练起来有些困难)。因为动态网络有记忆能力,所以可以训练它们学习顺序或时变模式。这在金融市场预测等不同领域有应用[RoJa96通信系统中的信道均衡[FeTs03],电力系统的相位检测[KaGr96),排序(JaRa04,故障检测[ChDa99,语音识别[Robin94,甚至是基因蛋白质结构的预测[GiPr02].你可以在[中找到更多动态网络应用程序的讨论。MeJa00].

动态神经网络的一个主要应用是在控制系统中。文中对该应用进行了详细讨论神经网络控制系统.动态网络也很适合过滤。你会看到使用一些线性动态网络来过滤其中的一些想法在这个主题中得到了扩展,使用非线性动态网络。

动态网络结构

Deep Learning Toolbox™软件旨在训练一类称为分层数字动态网络(LDDN)的网络。任何可以以LDDN形式安排的网络都可以用工具箱进行训练。下面是对LDDN的基本描述。

LDDN的每一层由以下部分组成:

  • 一组进入该层的权矩阵(可以从其他层或外部输入连接),相关的权函数规则用于将权矩阵与其输入组合(通常是标准的矩阵乘法,dotprod)和相关抽头延迟线

  • 偏差向量

  • 网络输入函数规则,用于将各种权函数的输出与偏置结合起来产生网络输入(通常是一个求和结,netprod

  • 传递函数

网络的输入被连接到特殊的权值,称为输入权值,用信息战我,我网。信息战{i,j}在代码中),其中j表示输入权值的输入向量的个数,和表示权值连接到的层数。连接一层到另一层的权值称为层权值,用表示LW我,我网。LW{i,j}在代码中),其中j表示入权重的层数和表示层数时输出的权重。

以三层LDDN为例。第一层有三个与之相关的权值:一个输入权值、来自第1层的一层权值和来自第3层的一层权值。这两层权值已经触发了与之相关的延迟线。

Deep Learning Toolbox软件可以用来训练任何LDDN,只要权函数、净输入函数和传递函数具有导数。大多数众所周知的动态网络架构都可以用LDDN形式表示。在本主题的其余部分中,您将看到如何使用一些简单的命令来创建和训练几个非常强大的动态网络。本主题中未涉及的其他LDDN网络可以使用通用network命令创建,如下文所述定义浅层神经网络架构

动态网络培训

动态网络在深度学习工具箱软件中使用相同的基于梯度的算法进行训练多层浅层神经网络与反向传播训练.您可以从该主题中介绍的任何培训功能中进行选择。以下部分提供了示例。

虽然动态网络可以使用与静态网络相同的基于梯度的算法进行训练,但在动态网络上的算法的性能可能有很大的不同,而且必须以更复杂的方式计算梯度。再次考虑图中所示的简单递归网络。

权重对网络输出有两种不同的影响。第一个是直接效应,因为权重的变化会导致当前时间步长的输出立即发生变化。(第一种效应可以用标准反向传播计算。)第二种是间接影响,因为一些输入层,如一个t−1),也是权值的函数。要考虑这种间接影响,必须使用动态反向传播来计算梯度,这是计算更密集的。(见[DeHa01a]、[DeHa01b]和[DeHa07]。)由于这个原因,动态反向传播需要更多的时间来训练。此外,动态网络的误差面可能比静态网络的更复杂。训练更容易陷入局部极小值。这表明您可能需要多次训练网络以获得最佳结果。参见[DHH01]和[HDH09]来讨论动态网络的训练。

本主题的其余部分展示了如何创建、训练和应用某些动态网络建模、检测和预测问题。一些网络需要动态反向传播来计算梯度,而另一些则不需要。作为用户,您不需要决定是否需要动态反向传播。这是由软件自动决定的,它还决定使用动态反向传播的最佳形式。您只需要创建网络,然后调用标准火车命令。