主要内容

创建简单的序列分类网络使用深层网络设计师

这个例子展示了如何创建一个简单的长短期记忆(LSTM)分类网络使用深网络设计师。

训练一个深层神经网络分类序列数据,您可以使用一个LSTM网络。LSTM网络是一种递归神经网络(RNN)学习长期时间步骤的序列数据之间的依赖关系。

这个例子演示了如何:

  • 加载序列数据。

  • 构建网络体系结构。

  • 指定培训选项。

  • 培训网络。

  • 预测新数据和计算的标签分类精度。

加载数据

加载日本元音的数据集,描述[1][2]。预测因子是细胞数组包含可变长度的序列的特征维度12。标签的标签分类向量1,2,…,9。

[XTrain, YTrain] = japaneseVowelsTrainData;[XValidation, YValidation] = japaneseVowelsTestData;

视图的大小头几个训练序列。序列矩阵有12行(每个功能一行)和不同数量的列(每个时间步一列)。

XTrain (1:5)
ans =5×1单元阵列{12×20双}{12×26双}{12×22双}{12×20双}{12×21双}

定义网络体系结构

打开深层网络设计师。

deepNetworkDesigner

暂停上Sequence-to-Label并点击开放。这将打开一个预先构建的网络适合于序列的分类问题。

深度网络设计师显示预先构建的网络。

您可以很容易地适应这个序列对日本元音的网络数据集。

选择sequenceInputLayer和检查InputSize设置为12维度匹配特性。

选择lstmLayer并设置NumHiddenUnits到100年。

选择fullyConnectedLayer和检查OutputSize设置为9,类的数量。

检查网络体系结构

检查网络并检查更多的细节层,点击分析

出口网络体系结构

出口工作空间的网络体系结构,在设计师选项卡上,单击出口。深度网络设计师可以节省网络的变量layers_1

你也可以生成代码来构建网络体系结构的选择出口>生成代码

列车网络的

指定培训方案和培训网络。

因为mini-batches小短序列,CPU更适合培训。集“ExecutionEnvironment”“cpu”。火车在GPU,如果可用,集“ExecutionEnvironment”“汽车”(默认值)。

miniBatchSize = 27个;选择= trainingOptions (“亚当”,“ExecutionEnvironment”,“cpu”,“MaxEpochs”,100,“MiniBatchSize”miniBatchSize,“ValidationData”{XValidation, YValidation},“GradientThreshold”2,“洗牌”,“every-epoch”,“详细”假的,“阴谋”,“训练进步”);

培训网络。

网= trainNetwork (XTrain YTrain、layers_1选项);

你也可以训练该网络使用深层网络设计师和数据存储对象。为一个例子,演示如何训练sequence-to-sequence回归网络深陷网络设计师,看看列车网络的时间序列预测使用深层网络设计师

测试网络

分类分类精度的测试数据和计算。为培训指定mini-batch大小一样。

XValidation YPred =分类(净,“MiniBatchSize”,miniBatchSize);acc =意味着(YPred = = YValidation)
acc = 0.9405

为下一个步骤,你可以试着提高精度通过使用双向LSTM (BiLSTM)层或通过创建一个更深层次的网络。有关更多信息,请参见短期记忆神经网络

为一个例子,演示如何使用卷积网络分类序列数据,看看使用深度学习训练语音命令识别模型

引用

[1]奖赏,Mineichi,小君富山,学者Shimbo。“多维曲线分类使用通过区域。“模式识别字母20,不。11 - 13日(1999年11月):1103 - 11所示。https://doi.org/10.1016/s0167 - 8655 (99) 00077 - x。

[2]奖赏,Mineichi,小君富山,学者Shimbo。日本元音UCI机器学习库。分发的数据集。https://archive.ics.uci.edu/ml/datasets/Japanese +元音

另请参阅

相关的话题