账号:
密码:
智动化 / 文章 /

跨出影像分类:更多关於深度学习应用
[作者 Johanna Pingel]   2018年11月20日 星期二 浏览人次: [8933]


深度学习网路已被视为多功能的工具。虽然它最初主要被用来进行影像的分类,不过深度学习网路也渐渐被运用在其他各式各样的任务。深度学习网路具备精确度以及处理速度你不见得需要成为相关领域专家,它也能够帮助你执行庞大资料集的复杂分析。本文将列举几种可以考虑使用深度学习网路的任务案例。


文字分析

在这个范例,我们将分析推特(twitter)资料来判断某一个特定字词或片语所夹带的情绪是正面或负面。情绪分析可以被运用在许多实际的应用,比如品牌建立、政治活动、以及广告。


机器学习从以前到现在被普遍使用在情绪分析。一个机器学习模型能够分析个别字词,不过深度学习模型却可以用来完成句子,大幅地增加了精确度。


训练集之中包含了数以千计的推特讯息(tweets)范例,这些讯息被归类为正面或负面。以下为一个训练推特讯息的范例:


























推特讯息(Tweet



情绪(Sentiment



“I LOVE @Health4UandPets u guys r the best!!”



正面 Positive



“@nicolerichie: your picture is very sweet”



正面 Positive



“Back to work!”



负面 Negative



“Just had the worst presentation ever!”



负面 Negative



我们移除像是”the”和”and”等无法帮助演算法学习的停用词来清理资料。接下来,我们上传一个长短期记忆(long short-term memory,LSTM)网路,它是一种能够随着时间学习相依性的递归神经网络(recurrent neural network,RNN)。


LSTMs擅长分类顺序和时间序列资料。而在分析文字时,LSTM不仅考虑到个别的字词,也考虑到句子结构和字词的组合。


该网路的MATLAB程式码很简单:



layers = [ sequenceInputLayerinputSize


    lstmLayeroutputSize,'OutputMode','last'


    fullyConnectedLayernumClasses


    softmaxLayer


    classificationLayer ]



LSTM在GPU执行训练的速度很快,只需要6分钟就能处理完30个世代的资料(完整传递资料)。


我们所训练的模型也可以使用在新的资料。举例来说,我们可以利用模型来判断在情绪分数和股价之间是否存在相互关系。


语音辨识

在这个范例,我们想要把演说音讯档分类到相对应的字词类别。乍看之下,这项任务的问题与影像分类完全不同,不过实际上却相当类似。光谱图可以被视为把1D音讯档案中讯号转换为2D视觉化(图1)。我们可以使用它作为卷积神经网路(convolutional neural network,CNN)的输入,如同我们使用一个「真正」的影像。



图1 : (上)原始声音讯号;(下)对应光谱图。
图1 : (上)原始声音讯号;(下)对应光谱图。

spectrogram()函式是可以把音讯档案转换为对应的时间定位频率(time-localized frequency)的一种简单方法。然而,演说是一种音讯处理的特定格式,它的重要特点被定位在特定频率。由於想要让CNN集中在这些定点,所以我们使用被设计来把目标锁定在与演说最为相关的频率区域的梅尔频率倒频谱(Mel-frequency cepstral)系数。


我们把训练资料平均地分配到我们想要分类的字词类别中。


为了降低错误的机率,我们加入一个类别来放置可能与期??类别混淆的字词。比如说,期??的字词是”on”时,像是”mom”、”dawn”、以及”won”等字词会被放进”unknown”类别。这个网路并不需要知道这些字词,因为他们不是要被辨识的单词。


我们接下来定义一个CNN。由於我们以光谱图作为输入,因此我们可以把类似於影像CNN的架构用在这里。


模型在经过训练之後,它会将输入影像(光谱图)分类到适当的类别(图2)。确认资料集(validation set)的准确度约为96%。



图2 : 单字”yes”的分类结果
图2 : 单字”yes”的分类结果

影像降噪

小波和滤波器一直以来都是常见的降噪方法。在这段范例,我们将看到预训练(pretrained)影像降噪CNN(DnCNN)如何应用在一组包含高斯杂讯(Gaussian noise)的图片(图3)。


图3 : 加入高斯杂讯的原始影像
图3 : 加入高斯杂讯的原始影像

我们由下载一张内含高斯杂讯的图片开始。


imshow(noisyRGB);


由於这是一张彩色的图片,而网路是以灰阶图片训练,这项处理唯一比较棘手的地方是要把图片分离为三个单独的通道:红(red,R)、绿(green,G)、蓝(blue,B)。


noisyR = 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 : 放大後的部分图片。
图5 : 放大後的部分图片。

如果你考虑使用DnCNN来进行影像降噪,要记住它只能辨识被训练过的杂讯类型在这个范例是高斯杂讯。如需要更大的弹性,你可以使用MATLAB和深度学习工具箱(Deep Learning Toolbox),利用预先定义的层级来训练自己的网路,或者完全客制一个降噪神经网路。


(本文作者Johanna Pingel任职於MathWorks公司)


相关文章
以模型化基础设计流程开发测试AUTOSAR软体元件与复杂装置驱动
使机器学习推论满足实际效能需求
工业4.0步步进逼 新一代感测器持续升级
透过Simulink将模拟资料视觉化
如何利用数位分身进行预测性维护
comments powered by Disqus
  相关新闻
» 美国AUTOMATE SHOW 2019落幕 宾通智慧科技亲自与会获奖
» 2019鼎新高峰年会-企业数位化转型论坛圆满闭幕
» 工业资安潜在风险不容小黥 趋势科技呼吁业者应检视既有缺囗
» MathWorks携手??思科技举办『第一届MATLAB深度学习竞赛』
» Embraer采用ANSYS技术开发飞行系统 加速新世代飞机上市
  相关产品
» PTC产品生命周期管理SaaS前四季订单翻倍
» PTC推出新版ThingWorx制造业应用程式
» 西门子计画推出全新数位化零件制造平台
» MAKEVR将专业设计、模型制作、3D列印带入虚拟实境
» PTC新版PTC Mathcad Prime 4.0可提升产品开发计算效率与安全


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2019 远播信息股份有限公司版权所有 Powered by O3
地址:台北市中山北路三段29号11楼 / 电话 (02)2585-5526 / E-Mail: webmaster@hope.com.tw