电子说
深度学习网络作为一个功能多样的工具,虽然最初仅用于图像分析,但它已逐渐被应用到各种不同的任务和领域中。高准确性和高处理速度,使得用户无需成为领域专家即可对大型数据集执行复杂分析。本文邀请 MathWorks 产品经理 Johanna 分享一些深度学习网络的使用示例以供参考
文本分析
在本例中,我们将分析推特数据,了解针对特定词或短语的情感是积极的还是消极的。情感分析有很多实际的应用,如品牌推广、竞选活动和广告营销。
过去(目前仍然)进行情感分析通常使用机器学习。机器学习模型可分析单个词,但深度学习网络可应用于完整的句子,大大地提高了准确性。
训练组由数以千计正面或负面的推特样本组成。这里是训练示例:
我们通过去除“the”和“and”等“停滞词”对数据进行了清理,这些词对于算法的学习毫无用处。然后,我们上传了长短期记忆(longshort-term memory, LSTM)网络,它是一种递归神经网络(recurrent neural network, RNN),可学习时间上的依赖关系。
LSTM 擅长对序列和时序数据进行分类。当分析文本时,LSTM 不仅会考虑单个词,还会考虑句子结构和词的组合。
网络本身的 MATLAB 代码非常简单:
layers = [ sequenceInputLayer(inputSize)
lstmLayer(outputSize,'OutputMode','last')
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer ]
在 GPU 上运行时,它训练的非常快速,30 次迭代(完整遍历一次所有数据)只需 6 分钟。
完成对模型的训练后,我们就可对新数据使用该模型。例如:我们可用它确定情感分数与股票价格之间是否相关。
语音识别
在本例中,我们需要将语音音频文件分类到其对应的词类。初看上去,此问题与图像分类完全不同,但实则非常相似。频谱是 1D 音频文件中信号的二维显示(图 1)。我们可以将其用作对卷积神经网络(CNN)的输入,如同使用“真实”图像一样。
图1. 上部:原始音频信号。底部:对应频谱
spectrogram() 函数是一种将音频文件转换为其对应时频的简单方式。但是,语音是音频处理的一种特定形式,其中重要特征会包含在特定的频率处。由于我们希望 CNN 专注于这些特定的频率处,我们将使用美尔倒谱系数,该系数会锁定跟语音最相关的频率区域。
我们在希望分类的词类之间均匀地分配训练数据。
为减少伪正面情感,我们纳入了容易与目标类别混淆的词类。例如,如果目标词是“on”,则“mom”、“dawn”和“won”等词会放到“未知”类别中。网络不需要知道这些词是什么,只需要知道它们不是目标词。
我们随后定义了一个 CNN。由于我们使用频谱作为输入值,因此 CNN 的结构可以是类似于用于图像的结构。
模型训练完毕后,它会将输入图像(频谱图)分类到相应的类别(图 2)。验证集的准确性约为 96%。
图2. 词“yes”的分类结果
图像降噪
小波和滤波器是(仍然是)降噪的常见方法。在本例中,我们将了解到经过预训练的图像降噪 CNN(DnCNN) 将如何应用于包含高斯噪声的一组图像中(图 3)。
图3. 添加了高斯噪声的原始图像
我们首先下载一个包含高斯噪声的图像。
imshow(noisyRGB);
由于这是彩色图像,但网络是在灰阶图像上受训的,因此该过程的唯一难点是需要将图像分为三个不同通道:红(R)、绿(G)、蓝(B)。
oisyR = noisyRGB(:,:,1);
noisyG = noisyRGB(:,:,2);
noisyB = noisyRGB(:,:,3);
加载预先训练的 DnCNN 网络:
net= denoisingNetwork('dncnn');
现在我们可以使用它去除每个颜色通道中的噪声。
denoisedR = denoiseImage(noisyR,net);
denoisedG = denoiseImage(noisyG,net);
denoisedB =denoiseImage(noisyB,net);
重新组合经过降噪处理的颜色通道,形成降噪后的 RGB 图像。
denoisedRGB =cat(3,denoisedR,denoisedG,denoisedB);
imshow(denoisedRGB)
title('Denoised Image')
原始(非噪声)图像与降噪图像的快速视觉对比图说明结果是合理的(图 4)。
图4. 左:原始(非噪音)图像。右:已降噪图像
让我们放大几个细节:
rect = [120 440 130 130];
cropped_orig = imcrop(RGB,rect);
cropped_denoise = imcrop(denoisedRGB,rect);
imshowpair(cropped_orig,cropped_denoise,'montage');
图 5 中的放大视图显示降噪结果造成了一些负面影响。显而易见,原始(非噪声)图像具有更高的清晰度,尤其是屋顶和草地。这一结果可能是可接受的,或者图像需要进一步处理,这取决于它将用于哪些应用。
图5. 放大视图
如果考虑使用 DnCNN 进行图像降噪,请记住,它只能识别其接受过训练的噪声类型,在本例中是高斯噪声。为提高灵活性,您可以使用 MATLAB 和 Deep Learning Toolbox™ 通过预定义层训练自己的网络,也可以训练完全自定义的降噪神经网络。
全部0条评论
快来发表一下你的评论吧 !