主要内容

转移与Pretrained音频网络学习深陷网络设计师

这个例子展示了如何交互地调整pretrained网络分类新音频信号使用深层网络设计师。

在深度学习应用程序转移学习是常用的。pretrained网络,可以使用它作为一个起点,学习一个新任务。微调网络转移学习通常比训练一个网络快得多,也更容易与随机初始化权重从零开始。您可以快速学习功能转移到一个新的任务使用较少的训练信号。

这个例子通过YAMNet, pretrained卷积神经网络,对一套新的音频信号进行分类。

加载数据

下载并解压缩空气压缩机数据集[1]。这个数据集由空气压缩机的录音在健康状态或错误的7个州之一。

zipFile = matlab.internal.examples.download金宝appSupportFile (“音频”,“AirCompressorDataset / AirCompressorDataset.zip”);dataFolder = fileparts (zipFile);解压缩(zipFile dataFolder);

创建一个audioDatastore对象来管理数据。

广告= audioDatastore (dataFolder IncludeSubfolders = true, LabelSource =“foldernames”);

将数据分为训练、验证和使用的测试集splitEachLabel函数。

[adsTrain, adsValidation adsTest] = splitEachLabel(广告,0.7,0.2,0.1);

使用变换使用函数函数将数据进行预处理audioPreprocess最后发现,这个例子。对于每一个信号:

  • 使用yamnetPreprocess(音频工具箱)生成梅尔·色适合使用YAMNet培训。每个音频信号产生多个谱图。

  • 重复的类标签为每个色。

tdsTrain =变换(adsTrain、@audioPreprocess IncludeInfo = true);tdsValidation =变换(adsValidation、@audioPreprocess IncludeInfo = true);tdsTest =变换(adsTest、@audioPreprocess IncludeInfo = true);

选择Pretrained网络

准备和训练网络交互使用深层网络设计师。打开深层网络设计师,应用程序选项卡,在机器学习和深度的学习,点击应用程序图标。另外,您也可以从命令行打开应用程序。

deepNetworkDesigner

深层网络设计师提供了一个选择pretrained音频分类网络。这些模型需要音频工具箱™和深度学习工具箱™。

音频网络中,选择YAMNet从pretrained网络的列表并点击开放。如果音频YAMNet工具箱模型没有安装,点击安装代替。深层网络设计师提供了一个链接到网络权值的位置。将文件解压缩到一个位置在MATLAB的道路。现在关闭深层网络设计师开始页面并重新打开它。当网络是正确安装路径,你可以点击开放YAMNet按钮。YAMNet模型可以音频分类成一个521年的声音类别。有关更多信息,请参见yamnet(音频工具箱)

深层网络设计师显示缩放视图的整个网络设计师窗格。放大用鼠标,使用Ctrl+滚轮。锅,使用箭头键或按住并拖动鼠标的滚轮。选择一个图层查看其属性。清除所有层来查看网络总结属性窗格。

网络传输学习做好准备

准备转移学习网络设计师窗格中,取代过去可学的层和最后分类层。

取代最后可学的层

使用pretrained传输网络学习,你必须改变类的数量来匹配你的新数据集。首先,在网络找到最后一个可学的层。YAMNet,最后可学的层是最后完全连接层,密集的

拖动一个新的fullyConnectedLayer到画布上。的OutputSize属性定义了类的数量分类问题。改变OutputSize在新数据类的数量,在这个例子中,8。

改变利率,这样学习是学习更快的新层的传输层的设置WeightLearnRateFactorBiasLearnRateFactor10

删除最后一个完全连接层和连接你的新层。

替换输出层

迁移学习,你需要替换输出层。滚动到结束的层的图书馆并拖动一个新的classificationLayer到画布上。删除原来的分类层和连接你的新层。

对于一个新的输出层,您不需要设置OutputSize。在训练时,深层网络设计师自动设置输出类层的数据。

检查网络

检查网络是否准备好培训,点击分析。如果深度学习网络分析仪报告零错误,然后编辑网络准备培训。

导入数据

将数据加载到深层网络设计师,在数据选项卡上,单击导入数据>导入自定义数据。选择tdsTrain作为训练数据,tdsValidation验证数据。

使用深度网络设计师,您可以检查的培训和验证数据数据选项卡。可以看到,数据如预期前培训。

选择培训选项

指定训练选项,选择培训选项卡并单击培训方案。设置初始学习速率减缓学习一个较小的值在传输层。结合学习速率因子完全连接层,增加学习是现在快只有在新的层和较慢的其他层。

对于这个示例,集解算器亚当,InitialLearnRate0.0001,MaxEpochs2。

列车网络的

训练的网络培训指定选项,点击好吧然后点击火车

深层网络设计师允许您可视化和监控培训的进展。然后您可以编辑培训选项和培训网络,如果需要的话。找到最优训练选项,使用实验管理器创建一个深度学习的实验。您可以创建一个深陷网络设计师通过点击深度学习实验出口>创建实验

出口培训的结果,培训选项卡上,选择出口>出口网络和训练的结果。深层网络设计师出口训练网络的变量trainedNetwork_1和培训信息的变量trainInfoStruct_1

你也可以生成MATLAB代码,再现了网络和使用培训选项。在培训选项卡上,选择出口>生成代码的训练。检查MATLAB代码来学习如何编程的数据准备培训,创建网络体系结构,和培训网络。

测试网络

分类使用导出的网络和测试数据分类函数。

data = readall (tdsTest);欧美={:2}][数据;YPred =分类(trainedNetwork_1 tdsTest);精度=总和(YPred = =次')/元素个数(欧美)
精度= 0.9830

金宝app支持函数

这个函数audioPreprocess使用yamnetPreprocess(音频工具箱)生成梅尔谱图audioIn你可以喂YAMNet pretrained网络。每个输入信号生成多个色,所以标签必须复制创建一个一一对应的谱图。

函数(数据、信息)= audioPreprocess (audioIn信息)类= info.Label;fs = info.SampleRate;特点= yamnetPreprocess (audioIn, fs);numSpectrograms =大小(功能,4);data =细胞(numSpectrograms 2);指数= 1:numSpectrograms数据{指数1}=特性(:,:,:,索引);数据{指数,2}=类;结束结束

引用

[1]Verma Nishchal K。,Rahul Kumar Sevakula, Sonal Dixit, and Al Salour. “Intelligent Condition Based Monitoring Using Acoustic Signals for Air Compressors.” IEEE Transactions on Reliability 65, no. 1 (March 2016): 291–309. https://doi.org/10.1109/TR.2015.2459684.

另请参阅

|

相关的话题