此示例显示如何通过提取激活来调查和可视化LSTM网络学习的特征。
加载预训练网络。日本世界新闻网
是在[1]和[2]中所述的日语元音数据集上训练的预训练LSTM网络。它根据序列长度排序的序列进行训练,最小批量为27。
负载日本世界新闻网
查看网络架构。
net.Layers
ans=5x1带层的层阵列:1“sequenceinput”带12维的序列输入序列输入2“lstm”带100个隐藏单元的lstm lstm 3“fc”完全连接9个完全连接的层4“softmax”softmax 5“classoutput”带“1”和8个其他类的分类输出crossentropyex
加载测试数据。
[XTest,YTest]=日本世界统计数据;
可视化绘图中的第一个时间序列。每条线对应一个特征。
X=XTest{1};图形绘图(XTest{1}')xlabel(“时间步长”)头衔(“试验观察1”)numFeatures=size(XTest{1},1);传奇(“功能”+字符串(1:numFeatures),“位置”,“东北外”)
对于序列的每个时间步,获取LSTM层(第2层)为该时间步输出的激活,并更新网络状态。
sequenceLength=size(X,2);idxLayer=2;outputSize=net.Layers(idxLayer).NumHiddenUnits;对于i=1:sequenceLength功能(:,i)=激活(net,X(:,i),idxLayer);[net,YPred(i)]=classifyAndUpdateState(net,X(:,i));终止
使用热图可视化前10个隐藏单位。
地物热图(特征(1:10,:);xlabel(“时间步长”)伊拉贝尔(“隐藏单位”)头衔(“LSTM激活”)
热图显示每个隐藏单元的激活强度,并突出显示激活如何随时间变化。
[1] M.Kudo,J.Toyama和M.Shimbo.“使用通过区域的多维曲线分类。”模式识别字母第20卷,第11-13号,第1103-1111页。
[2]UCI机器学习库:日语元音数据集. https://archive.ics.uci.edu/ml/datasets/Japanese+元音