长短期记忆层
LSTM层学习时间序列和序列数据中时间步长之间的长期依赖关系。
该层执行加法相互作用,这可以帮助改善训练过程中长序列的梯度流动。
NumHiddenUnits
- - - - - -隐藏单元数(也称为隐藏大小),指定为正整数。 隐藏单元的数量对应于时间步骤之间记住的信息量(隐藏状态)。隐藏状态可以包含来自之前所有时间步骤的信息,而不管序列长度如何。如果隐藏单元的数量太大,那么该层可能会过度拟合训练数据。这个值可以从几十到几千不等。 隐藏状态不限制迭代中处理的时间步数。要将序列拆分为更小的序列进行训练,请使用 例子:“SequenceLength”
trainingOptions
OutputMode
- - - - - -“序列”
(默认)|“最后一次”
输出模式,指定为下列之一:
“序列”
“最后一次”
HasStateInputs
- - - - - -0(假)(默认)|1(真正的)
层的状态输入的标志,指定为 如果 如果
HasStateOutputs
- - - - - -0(假)(默认)|1(真正的)
层的状态输出的标志,指定为 如果 如果
InputSize
- - - - - -“汽车”
(默认)|输入大小,指定为正整数或 例子:
StateActivationFunction
- - - - - -的双曲正切
(默认)|“softsign”
激活函数更新单元格和隐藏状态,指定为以下之一: 该层使用该选项作为函数
的双曲正切
“softsign”
GateActivationFunction
- - - - - -“乙状结肠”
(默认)|“hard-sigmoid”
激活函数应用于门,指定为以下之一:
该层使用该选项作为函数
“乙状结肠”
“hard-sigmoid”
CellState
- - - - - -要在层操作中使用的单元格状态,指定为 属性手动设置此属性后,调用 如果
HiddenState
- - - - - -在层操作中使用的隐藏状态,指定为 属性手动设置此属性后,调用 如果
InputWeightsInitializer
- - - - - -“glorot”
(默认)|“他”
“正交”
“narrow-normal”|“零”|“的”|函数处理
函数初始化输入权重,指定为以下之一: 函数句柄——使用自定义函数初始化输入权重。如果指定了函数句柄,则该函数必须为 时,该层才初始化输入权重 数据类型:
“glorot”
“他”
“正交”
“narrow-normal”
“零”
“的”
字符
RecurrentWeightsInitializer
- - - - - -“正交”
(默认)|“glorot”
“他”
“narrow-normal”|“零”|“的”|函数处理
函数初始化循环权重,指定为以下之一: 函数句柄——使用自定义函数初始化循环权重。如果指定了函数句柄,则该函数必须为 时,层才初始化循环权重 数据类型:
“正交”
“glorot”
“他”
“narrow-normal”
“零”
“的”
字符
BiasInitializer
- - - - - -“unit-forget-gate”
(默认)|“narrow-normal”
“的”
函数初始化偏差,指定为以下之一: 函数句柄-使用自定义函数初始化偏置。如果指定了函数句柄,则该函数必须为 时,层才初始化偏差 数据类型:
“unit-forget-gate”
“narrow-normal”
“的”
字符
InputWeights
- - - - - -[]
(默认)|输入权重,以矩阵形式指定。 输入权值矩阵是LSTM层中组件(门)的四个输入权值矩阵的拼接。这四个矩阵垂直排列顺序如下: 输入门 忘记门 细胞的候选人 输出门 输入权重是可学习的参数。当训练一个网络时,如果 在训练时,
trainNetwork
RecurrentWeights
- - - - - -[]
(默认)|循环权值,用矩阵表示。 递归权矩阵是LSTM层中组件(门)的四个递归权矩阵的连接。这四个矩阵按以下顺序垂直连接: 输入门 忘记门 细胞的候选人 输出门 循环权值是可学习的参数。当训练一个网络时,如果 在训练时间
trainNetwork
偏见
- - - - - -[]
(默认)|LSTM层的层偏置,指定为数值向量。 偏置向量是LSTM层中组件(门)的四个偏置向量的拼接。这四个向量垂直连接的顺序如下: 输入门 忘记门 细胞的候选人 输出门 层偏差是可学习参数。当你训练一个网络时,如果 在训练时,
trainNetwork
InputWeightsLearnRateFactor
- - - - - -输入权重的学习率因子,指定为数值标量或1 × 4数值向量。 该软件将该因子乘以全局学习率,以确定该层输入权重的学习率因子。例如,如果 中四个单独矩阵的学习率因子的值 输入门 忘记门 细胞的候选人 输出门 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
RecurrentWeightsLearnRateFactor
- - - - - -循环权重的学习率因子,指定为数值标量或1 × 4数值向量。 该软件将该因子乘以全局学习率,以确定该层的循环权重的学习率。例如,如果 中四个单独矩阵的学习率因子的值 输入门 忘记门 细胞的候选人 输出门 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
BiasLearnRateFactor
- - - - - -偏差的学习率因子,指定为非负标量或1 × 4数值向量。 该软件将该因子乘以全局学习率,以确定该层偏差的学习率。例如,如果 来控制学习率因子的值为四个单独的向量 输入门 忘记门 细胞的候选人 输出门 若要为所有向量指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
InputWeightsL2Factor
- - - - - -输入权重的L2正则化因子,指定为数值标量或1 × 4数值向量。 该软件将该因子乘以全局L2正则化因子,以确定该层输入权重的L2正则化因子。例如,如果 中四个单独矩阵的L2正则化因子的值 输入门 忘记门 细胞的候选人 输出门 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
RecurrentWeightsL2Factor
- - - - - -用于循环权重的L2正则化因子,指定为数值标量或1 × 4数值向量。 该软件将该因子乘以全局L2正则化因子,以确定该层的循环权重的L2正则化因子。例如,如果 中四个单独矩阵的L2正则化因子的值 输入门 忘记门 细胞的候选人 输出门 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
BiasL2Factor
- - - - - -偏差的L2正则化因子,指定为非负标量或1 × 4数值向量。 软件将这个因子乘以全局 中四个单独向量的L2正则化因子的值 输入门 忘记门 细胞的候选人 输出门 若要为所有向量指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
的名字
- - - - - -”
(默认)|层名,指定为字符向量或字符串标量。为
数据类型:字符
NumInputs
- - - - - -1
|3.
该层的输入数量。 如果 如果 数据类型:双
InputNames
- - - - - -{'在'}
|{‘在’,‘隐藏’,‘细胞’}
输入层的名称。 如果 如果
NumOutputs
- - - - - -1
|3.
层的输出数量。 如果 如果 数据类型:双
OutputNames
- - - - - -{“出”}
|{‘出来’,‘隐藏’,‘细胞’}
输出层的名称。 如果 如果
创建一个LSTM层 中包含LSTM层层= lstmLayer(100,
layer = LSTMLayer with properties: Name: 'lstm1' InputNames: {'in'} OutputNames: {'out'} NumInputs: 1 NumOutputs: 1 HasStateInputs: 0 HasStateOutputs: 0 Hyperparameters InputSize: 'auto' NumHiddenUnits: 100 OutputMode: 'sequence' statactivationfunction: 'tanh' GateActivationFunction: 'sigmoid' Learnable Parameters inputwights: [] recurrentwights: [] Bias: [] State Parameters HiddenState: [] CellState:[]显示所有属性
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [
2”LSTM LSTM 100个隐藏单元3”全连接9全连接层4”Softmax Softmax 5”分类输出crossentropyex
训练深度学习LSTM网络进行序列到标签分类。 按照[1]和[2]中的描述加载Japanese Vowels数据集。 把第一个时间序列想象成一个图形。每一行对应一个特征。 定义LSTM网络体系结构。将输入大小指定为12(输入数据的特征数量)。指定一个LSTM层有100个隐藏单元,并输出序列的最后一个元素。最后,指定9个类,包括大小为9的全连接层,然后是softmax层和分类层。 指定培训选项。指定求解器为 因为迷你批的数量小,序列短,所以CPU更适合训练。集 使用指定的培训选项对LSTM网络进行培训。 加载测试集并将序列分类到扬声器中。 分类测试数据。指定用于训练的相同的小批大小。 计算预测的分类精度。[XTrain,YTrain] =日本evowelstraindata;
图形图(XTrain{1}')
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [
2”LSTM LSTM 100个隐藏单元3”全连接9全连接层4”Softmax Softmax 5”分类输出crossentropyex
maxEpochs = 70;miniBatchSize = 27;选项= trainingOptions(
net = trainNetwork(XTrain,YTrain,图层,选项);
[XTest,YTest] =日本evowelstestdata;
YPred = category (net,XTest,
acc = sum(YPred == YTest)./ nummel (YTest)
Acc = 0.9568
要创建用于序列到标签分类的LSTM网络,请创建一个层数组,其中包含序列输入层、LSTM层、全连接层、softmax层和分类输出层。 将序列输入层的大小设置为输入数据的特征数量。将全连接层的大小设置为类的数量。您不需要指定序列长度。 对于LSTM层,指定隐藏单元的数量和输出模式 有关演示如何训练LSTM网络进行序列到标签分类和对新数据进行分类的示例,请参见 如果要创建用于序列到序列分类的LSTM网络,请使用与序列到标签分类相同的架构,但将LSTM层的输出模式设置为numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [
numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [
要创建用于序列对一回归的LSTM网络,请创建一个包含序列输入层、LSTM层、全连接层和回归输出层的层数组。 将序列输入层的大小设置为输入数据的特征数量。将全连接层的大小设置为响应的数量。您不需要指定序列长度。 对于LSTM层,指定隐藏单元的数量和输出模式 要创建用于序列到序列回归的LSTM网络,请使用与序列到一回归相同的体系结构,但将LSTM层的输出模式设置为 有关演示如何训练LSTM网络进行序列到序列回归和对新数据进行预测的示例,请参见numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [
numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [
通过使用输出模式插入额外的LSTM层,可以使LSTM网络更深 对于序列到标签的分类网络,最后一层LSTM的输出模式必须为 对于序列到序列的分类网络,最后一层LSTM的输出模式必须为numFeatures = 12;numhiddenunit1 = 125;numhiddenunit2 = 100;numClasses = 9;层= [
numFeatures = 12;numhiddenunit1 = 125;numhiddenunit2 = 100;numClasses = 9;层= [
LSTM层学习时间序列和序列数据中时间步长之间的长期依赖关系。
层的状态由 下面的组件控制层的单元格状态和隐藏状态。 该图说明了时间步长的数据流 LSTM层的可学习权值就是输入权值
在哪里 单元格在时间步长的状态
在哪里 时间步长的隐藏状态
在哪里 下式描述了时间步长的分量 在这些计算中,
组件 目的
输入门( 单元格状态更新的控制级别
忘记大门( 单元格状态重置的控制级别(忘记)
候选单元( 向单元格状态添加信息
输出门( 添加到隐藏状态的单元格状态的控制级别
组件 公式
输入门
忘记门
细胞的候选人
输出门
层数组或层图中的层传递指定为格式化的数据 你可以与它们交互 支持的输入格式万博1manbetx 在 中使用这些输入格式 如果 如果
输入格式 OutputMode
输出格式
“认知行为治疗”
“序列”
“认知行为治疗”
“最后一次”
“CB”
输入格式 OutputMode
输出格式
“SCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
R2019a的行为发生了变化
从R2019a开始,默认情况下,软件使用Glorot初始化器初始化该层的层输入权重。这种行为有助于稳定训练,通常会减少深度网络的训练时间。 在以前的版本中,软件在默认情况下,使用从均值为零,方差为0.01的正态分布中采样来初始化层输入权重。要重现此行为,请设置
R2019a的行为发生了变化
从R2019a开始,默认情况下,软件初始化该层的层循环权值为 在以前的版本中,软件在默认情况下,通过从均值为零,方差为0.01的正态分布中采样来初始化层循环权重。要重现此行为,请设置
[1]工藤M.,富山J.,辛波M.。“使用穿过区域的多维曲线分类”
[2]
[3] Hochreiter, S .和J. Schmidhuber, 1997。长短期记忆。
格洛洛特,泽维尔,还有约书亚·本吉奥。《理解深度前馈神经网络训练的难度》在
[5]何开明,张翔宇,任少卿,孙健。“深入研究整流器:在ImageNet分类上超越人类水平的性能。”在
Saxe, Andrew M., James L. McClelland, Surya Ganguli。“深度线性神经万博 尤文图斯网络中非线性学习动力学的精确解。”
使用注意事项和限制:
当用Intel生成代码时 的 的 的
使用注意事项和限制: 对于GPU代码生成,使用 对于GPU代码生成,使用 的
trainingOptions
|trainNetwork
|sequenceInputLayer
|bilstmLayer
|gruLayer
|convolution1dLayer
|maxPooling1dLayer
|averagePooling1dLayer
|globalMaxPooling1dLayer
|globalAveragePooling1dLayer
|
你点击了一个对应于这个MATLAB命令的链接: 在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:
您也可以从以下列表中选择一个网站: 选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。如何获得最佳的网站性能
欧洲