可视化激活LSTM网络

这个例子展示了如何通过提取激活来研究和可视化LSTM网络学习到的特性。

负载pretrained网络。JapaneseVowelsNet是一个预先训练的LSTM网络,它针对[1]和[2]中描述的日语元音数据集进行训练。对小批量大小为27的序列长度排序的序列进行训练。

负载JapaneseVowelsNet

查看网络架构。

net.Layers
ans x1 = 5层阵列层:1“sequenceinput”序列输入序列输入12维度2的lstm lstm lstm 100隐藏单位3 fc的完全连接9完全连接层4的softmax softmax softmax 5 classoutput的分类输出crossentropyex ' 1 ', 8其他类

加载测试数据。

[XTest,欧美]= japaneseVowelsTestData;

在一个情节中想象第一个时间序列。每一行对应一个特征。

X = XTest {1};图绘制(XTest{1}”)包含(“时间步”)标题(“测试观察1”) numFeatures = size(XTest{1},1);传奇(“特性”+字符串(1:numFeatures),“位置”,“northeastoutside”)

对于序列的每个时间步长,获取该时间步长的LSTM层(第2层)的激活输出,并更新网络状态。

sequenceLength =大小(X, 2);idxLayer = 2;outputSize = net.Layers (idxLayer) .NumHiddenUnits;i = 1:sequenceLength features(:,i) = activations(net,X(:,i),idxLayer);[net, YPred(i)] = classifyAndUpdateState(net,X(:,i));结束

使用热图可视化前10个隐藏单元。

图的热图(功能(1:10,:));包含(“时间步”)ylabel (“隐藏单位”)标题(“LSTM激活”)

热图显示了每个隐藏单元的激活强度,并强调了激活如何随时间变化。

参考文献

[1] M. Kudo, J. Toyama和M. Shimbo。“利用穿透区域进行多维曲线分类”。模式识别的字母。第20卷,第11-13号,第1103-1111页。

[2]UCI机器学习知识库:日语元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels

另请参阅

|||||

相关的话题