主要内容

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

此示例显示了如何使用Deep Network Designer创建简单的长期短期内存(LSTM)分类网络。

为了训练深层神经网络以对序列数据进行分类,您可以使用LSTM网络。LSTM网络是一种复发性神经网络(RNN),它在序列数据的时间步骤之间学习长期依赖性。

该示例演示了如何:

  • 加载序列数据。

  • 构建网络体系结构。

  • 指定培训选项。

  • 训练网络。

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

加载数据

如图所述,加载日本元音数据集[1][2]。预测因子是包含长度序列的细胞阵列,特征维度为12。标签是标签1,2,...,9的分类向量。

[Xtrain,Ytrain] = japanyvowelstraindata;[xvalidation,yvalidation] = japanyvowelstestdata;

查看前几个训练序列的尺寸。序列是矩阵,具有12行(每个功能为一行)和不同数量的列(每个时间步长的一列)。

Xtrain(1:5)
ans =5×1单元格数组{12×20 double} {12×26 double} {12×22 double} {12×20 double} {12×21 double}

定义网络体系结构

打开深网设计师。

DeepNetworkDesigner

暂停序列到标签然后单击打开。这开设了一个适合序列分类问题的预构建网络。

Deep Network Designer显示预制网络。

您可以轻松地为日本元音数据集适应此序列网络。

选择sequenceInputlayer并检查输入设置为12匹配特征维度。

选择lstmlayer并设置numhidendunits到100。

选择完整连接的layerer并检查输出尺寸设置为9,类的数量。

检查网络体系结构

要检查网络并检查各个层的更多详细信息,请单击分析

导出网络体系结构

将网络体系结构导出到工作区,设计师选项卡,单击出口。深网设计师将网络保存为变量层_1

您还可以通过选择来生成代码来构建网络体系结构出口>生成代码

火车网络

指定培训选项并培训网络。

由于迷你批次很小,序列短,因此CPU更适合训练。放“执行环境”'中央处理器'。在GPU上训练,如果有的话,请设置“执行环境”'汽车'(默认值)。

minibatchsize = 27;选项=训练('亚当',,,,...“执行环境”,,,,'中央处理器',,,,...“ maxepochs”,100,...“ MINIBATCHSIZE”,minibatchsize,...'验证data',{xvalidation,yvalidation},...“梯度阈值”,2,...“洗牌”,,,,“每个段”,,,,...“冗长”,错误的,...“绘图”,,,,“训练过程”);

训练网络。

net = trainnetwork(Xtrain,Ytrain,Layers_1,选项);

您还可以使用深网设计器和数据存储对象训练该网络。有关如何在深网设计师中训练序列到序列回归网络的示例,请参见使用深网设计师的时间序列预测时间序列的火车网络

测试网络

对测试数据进行分类并计算分类精度。指定与培训相同的迷你批量尺寸。

ypred =分类(net,xvalidation,“ MINIBATCHSIZE”,minibatchSize);acc =平均值(ypred == yvalidation)
ACC = 0.9405

对于下一步,您可以尝试使用双向LSTM(BILSTM)层或创建更深的网络来提高准确性。有关更多信息,请参阅长期短期存储网络

有关如何使用卷积网络对序列数据进行分类的示例,请参见使用深度学习的语音命令识别

参考

[1] Kudo,Mineichi,Jun Toyama和Masaru Shimbo。“使用传递区域的多维曲线分类。”图案识别字母20,否。11–13(1999年11月):1103–11。https://doi.org/10.1016/s0167-8655(99)00077-x。

[2] Kudo,Mineichi,Jun Toyama和Masaru Shimbo。日本元音数据集。由UCI机器学习存储库分发。https://archive.ics.uci.edu/ml/datasets/japanese+vowels

也可以看看

||

相关话题