深度学习在各个领域有什么样的作用深度学习网络的使用示例分析

电子说

1.3w人已加入

描述

深度学习网络作为一个功能多样的工具,虽然最初仅用于图像分析,但它已逐渐被应用到各种不同的任务和领域中。高准确性和高处理速度,使得用户无需成为领域专家即可对大型数据集执行复杂分析。本文邀请 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™ 通过预定义层训练自己的网络,也可以训练完全自定义的降噪神经网络。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分