主要内容

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

前馈和递归神经网络

动态网络可以分为两类:那些只有前馈连接,和那些有反馈,或复发,连接。理解静态的区别,feedforward-dynamic recurrent-dynamic网络,创建一些网络,看他们如何应对一个输入序列。(首先,你可能想要审查模拟与顺序输入动态网络。)

输入以下命令创建一个脉冲序列和情节:

p = {0 0 1 1 1 1 0 0 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))

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

现在创建一个动态的网络,但没有任何反馈连接(不再发生的网络)。您可以使用相同的网络中使用模拟与并发输入动态网络,这是一个线性网络抽头延迟线的输入:

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

你可以再次模拟网络响应脉冲输入和情节:

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

动态网络的反应持续的时间要比输入脉冲。动态网络的记忆。其响应在任何给定的时间不仅取决于当前的输入,而且还在输入序列的历史。如果网络没有任何反馈连接,那么只有有限的历史将会影响响应。在此图中可以看到,对脉冲持续一个脉冲持续时间以外的时间步。这是因为抽头延迟线对输入的最大延迟1。

现在考虑一个简单的recurrent-dynamic网络,如下图所示。

您可以创建网络,用以下命令把它和模拟它。的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))

请注意,recurrent-dynamic网络比feedforward-dynamic通常有较长的反应网络。线性网络,feedforward-dynamic网络被称为有限脉冲响应(杉木),因为一个脉冲输入的响应将成为零在一个有限的时间。线性recurrent-dynamic网络被称为无限脉冲响应(IIR),因为一个脉冲的响应可以衰减为零(为一个稳定的网络),但它永远不会成为完全等于零。脉冲响应的非线性网络不能被定义,但是有限和无限的想法反应做的延续。

动态网络的应用

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

的一个主要应用动态神经网络控制系统。这个应用程序将详细讨论神经网络控制系统。动态网络也适合过滤。你会看到一些线性动态网络的使用的过滤和其中的一些想法扩展这个话题,使用非线性动态网络。

动态网络结构

深度学习工具箱™软件旨在培养一种叫分层的网络数字动态网络(LDDN)。可以安排在任何网络的形式可以训练LDDN工具箱。这是一个基本的LDDN的描述。

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

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

  • 偏差向量

  • 净输入函数的规则,用于把各种权重函数的输出与偏见产生的净输入(通常一个求和结,netprod)

  • 传递函数

连接到的网络输入特殊的权重,称为输入权重,用信息战我,我(net.IW {i, j}在代码)j表示输入向量的数量进入体重,和表示数量的连接层的重量。权重连接一层到另一个称为层权重,用LW我,我(net.LW {i, j}在代码)j表示层的重量和数量表示数量的输出层的重量。

下面的图是一个三层LDDN的例子。第一层有三个与之关联的权重:一个输入重量,重量从一层图层1,从第三层和一层重量。两层权重抽头延迟线。

深度学习工具箱软件可以用来训练任何LDDN,只要权重函数,净输入函数和传递函数导数。最著名的动态网络架构可以用LDDN表示形式。在这个主题的其余部分,您将看到如何使用一些简单的命令来创建和培养几个非常强大的动态网络。其他LDDN网络中未涉及这个话题可以创建使用通用网络命令,作为解释定义浅神经网络架构

动态网络培训

动态网络训练的深度学习工具箱软件基于使用相同的梯度算法中描述多层浅神经网络和反向传播训练。你可以选择任何的训练函数,提出了主题。在下面几节中提供的例子。

尽管基于动态网络可以被训练使用相同的梯度算法,用于静态网络,算法在动态网络的性能会很不同,和梯度必须以更复杂的方式计算。考虑再一次简单的周期性网络这个图所示。

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

这一主题的其余部分展示如何创建、火车,并应用某些动态网络建模、检测和预测问题。的一些要求计算梯度动态反向传播网络和其他人没有。作为用户,您不需要决定是否需要动态反向传播。这是由软件自动决定的,这也决定使用动态反向传播的最好形式。你只需要创建网络,然后调用标准火车命令。