长短期记忆(LSTM)层
LSTM层学习时间序列中时间步长与序列数据之间的长期依赖关系。
该层进行添加剂相互作用,这有助于改善训练期间长序列上的梯度流动。
numhidandunits.
- - - - - -隐藏单元的数量(也称为隐藏大小),指定为正整数。 隐藏单元的数量对应于时间步骤(隐藏状态)之间所记忆的信息量。隐藏状态可以包含所有以前的时间步骤的信息,而不管序列的长度。如果隐藏单元的数量太大,那么该层可能会过度适合训练数据。这个值从几十个到几千个不等。 隐藏状态不限制迭代中处理的时间步骤的数量。将你的序列分割成更小的序列进行训练,使用 例子:“SequenceLength”
培训选项
OutputMode
- - - - - -“序列”
(默认)|“最后一次”
输出格式,指定为下列格式之一:
“序列”
“最后一次”
InputSize
- - - - - -“汽车”
(默认)|输入大小,指定为正整数或 例子:
StateActivationFunction
- - - - - -的双曲正切
(默认)|“softsign”
激活函数来更新单元格和隐藏状态,指定为如下之一: 图层使用这个选项作为函数
的双曲正切
“softsign”
GateActivationFunction
- - - - - -“乙状结肠”
(默认)|“hard-sigmoid”
激活功能,以适用于门,指定为以下之一:
图层使用这个选项作为函数
“乙状结肠”
“hard-sigmoid”
CellState
- - - - - -单元格状态的初始值,指定为 设置此属性后,调用
HiddenState
- - - - - -隐藏状态的初始值,指定为a 设置此属性后,调用
InputWeightsInitializer
- - - - - -“glorot”
(默认)|“他”
'正交'
'窄正常'|“零”|“的”|函数处理
函数初始化输入权值,指定为以下其中之一: 函数句柄——用自定义函数初始化输入权重。如果指定函数句柄,则该函数必须是这种形式的 属性时,该层才初始化输入权重 数据类型:
“glorot”
“他”
'正交'
'窄正常'
“零”
“的”
字符
经常性的重量初始化器
- - - - - -'正交'
(默认)|“glorot”
“他”
'窄正常'|“零”|“的”|函数处理
函数初始化递归权值,指定为: 函数句柄——用自定义函数初始化递归权值。如果指定函数句柄,则该函数必须是这种形式的 该层只初始化递归权值 数据类型:
'正交'
“glorot”
“他”
'窄正常'
“零”
“的”
字符
偏见初始化器
- - - - - -“unit-forget-gate”
(默认)|'窄正常'
“的”
函数初始化偏差,指定为以下任意一个: 函数句柄——用自定义函数初始化偏差。如果指定函数句柄,则该函数必须是这种形式的 该层仅在 数据类型:
“unit-forget-gate”
'窄正常'
“的”
字符
InputWeights
- - - - - -[]
(默认)|输入权值,指定为一个矩阵。 输入权矩阵是LSTM层中组件(门)的四个输入权矩阵的串联。这四个矩阵按以下顺序垂直连接: 输入门 忘记门 细胞候选人 输出门 输入权值是可学习的参数。当训练一个网络时,如果 在培训时,
trainNetwork
RecurrentWeights
- - - - - -[]
(默认)|递归权值,用矩阵表示。 递归权矩阵是LSTM层中各分量(门)的四个递归权矩阵的串联。这四个矩阵按以下顺序垂直连接: 输入门 忘记门 细胞候选人 输出门 经常性重量是可学习的参数。当训练一个网络时,如果 在训练时间
trainNetwork
偏见
- - - - - -[]
(默认)|LSTM层的层偏差,指定为数值向量。 偏置载体是LSTM层中的组件(门)的四个偏置矢量的串联。四个载体按以下顺序垂直连接: 输入门 忘记门 细胞候选人 输出门 层偏差是可学习的参数。当训练一个网络时,如果 在培训时,
trainNetwork
InputWeightsLearnRateFactor
- - - - - -输入权值的学习率因子,指定为数字标量或1 × 4数字向量。 该软件将该因子乘以全局学习率,以确定该层的输入权值的学习率因子。例如,如果 控制中四个独立矩阵的学习率因子的值 输入门 忘记门 细胞候选人 输出门 要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:培训选项
2
[1 2 1 1]
RecurrentWeightsLearnRateFactor
- - - - - -递归权值的学习率因子,指定为数值标量或1 × 4数值向量。 该软件通过全局学习率乘以此因素来确定层的复发权重的学习率。例如,如果 控制中四个独立矩阵的学习率因子的值 输入门 忘记门 细胞候选人 输出门 要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:培训选项
2
[1 2 1 1]
BiasLearnRateFactor
- - - - - -偏差的学习率因子,指定为非负标量或1 × 4数字向量。 该软件通过全局学习率乘以此因素来确定该层中偏差的学习率。例如,如果 控制中四个独立向量的学习率因子的值 输入门 忘记门 细胞候选人 输出门 要为所有向量指定相同的值,请指定一个非负标量。 例子: 例子:培训选项
2
[1 2 1 1]
InputWeightsL2Factor
- - - - - -L2正则化因子的输入权值,指定为一个数字标量或1 × 4数字向量。 该软件通过全局L2正则化因子乘以此因素,以确定图层的输入权重的L2正则化因子。例如,如果 控制L2正则化因子的值为四个独立的矩阵 输入门 忘记门 细胞候选人 输出门 要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:培训选项
2
[1 2 1 1]
复发重量2.
- - - - - -L2正则化因子的循环权值,指定为一个数字标量或1乘4的数字向量。 该软件通过全局L2正则化因子乘以该系数,以确定层的复发权重的L2正则化因子。例如,如果 控制L2正则化因子的值为四个独立的矩阵 输入门 忘记门 细胞候选人 输出门 要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:培训选项
2
[1 2 1 1]
BiasL2Factor
- - - - - -L2正则化因子的偏差,指定为一个非负标量或1乘4的数字向量。 该软件将该因子乘以L2的全局正则化因子,以确定该层偏差的L2正则化。例如,如果 以控制L2正则化因子的值为四个独立的向量 输入门 忘记门 细胞候选人 输出门 要为所有向量指定相同的值,请指定一个非负标量。 例子: 例子:培训选项
2
[1 2 1 1]
的名字
- - - - - -''
(默认)|层名,指定为字符向量或字符串标量。如果 数据类型:字符
NumInputs
- - - - - -层的输入数。这一层只接受单个输入。 数据类型:双
InputNames
- - - - - -{'在'}
(默认)输入层名。这一层只接受单个输入。 数据类型:细胞
NumOutputs
- - - - - -层输出的数量。这一层只有一个输出。 数据类型:双
OutputNames
- - - - - -{'出去'}
(默认)图层的输出名称。这一层只有一个输出。 数据类型:细胞
使用名称创建一个LSTM层 包含一个LSTM层layer = lstmlayer(100,
layer = LSTMLayer with properties: Name: 'lstm1' Hyperparameters InputSize: 'auto' NumHiddenUnits: 100 OutputMode: 'sequence' StateActivationFunction: 'tanh' GateActivationFunction: 'sigmoid' Learnable Parameters inputwights: [] recurrentwights: [] Bias: [] State Parameters HiddenState: [] CellState:[]显示所有属性
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [
Layer = 5x1 Layer array with layers: 1 " Sequence Input Sequence Input with 12 dimensions 2 " LSTM LSTM with 100 hidden units 3 " Fully Connected 9 Fully Connected Layer 4 " Softmax Softmax 5 " Classification Output crossentropyex . LSTM与100个隐藏单元
培训深度学习LSTM网络,用于序列到标签分类。 如[1]和[2]中所述加载日语元音数据集。 想象情节中的第一个时间序列。每一行对应一个特征。 定义LSTM网络架构。指定输入大小为12(输入数据的特征数量)。指定一个LSTM层有100个隐藏单元,并输出序列的最后一个元素。最后,通过包含大小为9的完全连接层、softmax层和分类层来指定9个类。 指定培训选项。指定求解器为 因为迷你批很小,序列很短,所以CPU更适合于训练。集 使用指定的训练选项训练LSTM网络。 加载测试集并将序列分类为扬声器。 对测试数据进行分类。指定与培训相同的小批量大小。 计算预测的分类精度。[XTrain, YTrain] = japaneseVowelsTrainData;
图绘制(XTrain{1}”)标题(
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [
Layer = 5×1 Layer array with layers: 1 " Sequence Input Sequence Input with 12 dimensions 2 " LSTM LSTM with 100 hidden units 3 " Fully Connected 9 Fully Connected Layer 4 " Softmax Softmax 5 " Classification Output crossentropyex . jpg
maxEpochs = 70;miniBatchSize = 27个;选择= trainingOptions (
网= trainNetwork (XTrain、YTrain层,选择);
[XTest,欧美]= japaneseVowelsTestData;
XTest YPred =分类(净,
acc = sum(YPred == YTest)./numel(YTest)
acc = 0.9514
为了创建一个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;numhiddentunits1 = 125;numhidendunits2 = 100;numClasses = 9;层= [
numFeatures = 12;numhiddentunits1 = 125;numhidendunits2 = 100;numClasses = 9;层= [
LSTM层学习时间序列中时间步长与序列数据之间的长期依赖关系。
层的状态包括 下面的组件控制层的单元格状态和隐藏状态。 此图说明了时间步长的数据流 LSTM层的可读权重是输入权重
在哪里 单元格在时间步长的状态
在哪里 时间步长的隐藏状态
在哪里 以下公式在时间步骤描述了组件 在这些计算,
组件 目的
输入门( 单元格状态更新的控制级别
忘记门( 单元格状态重置的控制级别(忘记)
细胞的候选人( 向单元格状态添加信息
输出门( 添加到隐藏状态的单元格状态的控制级别
组件 公式
输入门
忘记门
细胞候选人
输出门
行为在R2019a中改变
从R2019a开始,软件默认使用gloria初始化器初始化该层的层输入权值。这种行为有助于稳定训练,通常减少深度网络的训练时间。 在以前的版本中,默认情况下,该软件从均值为零、方差为0.01的正态分布中使用by抽样初始化层输入权值。要重现这种行为,请设置
行为在R2019a中改变
从R2019a开始,软件默认初始化该层的层循环权值 在以前的版本中,默认情况下,该软件使用平均值为零、方差为0.01的正态分布的by抽样初始化层循环权值。要重现这种行为,请设置
[1] M. Kudo,J. Toyama和M. Shimbo。“使用过度区域的多维曲线分类。”
[2]
[3] Hochreiter,S和J. Schmidhuber,1997年。长期记忆。
[4]格洛洛,泽维尔,还有约书亚·本吉奥。“理解训练深度前馈神经网络的难度。”在
何开明,张翔宇,任少青,孙健《深入整流器:在图像网分类上超越人类水平的表现》在
Saxe, Andrew M., James L. McClelland和Surya Ganguli。深度线性神经网金宝搏官方网站络中学习的非线性动力学的精确解
使用注意事项及限制: 对于代码生成, 对于代码生成,
Bilstmlayer.
|classifyAndUpdateState
|flattenLayer
|gruLayer
|predictandanddatestate.
|resetState
|sequenceFoldingLayer
|sequenceInputlayer.
|sequenceUnfoldingLayer
你点击一个链接对应于这个MATLAB命令: 通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:
您还可以从以下列表中选择一个网站: 选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。如何获得最佳的网站性能
欧洲