Max Pechyonkin作者丁楠雅校对黄继彦编辑和中华翻译

如何创造性地应用深度学习视觉模型于非视觉任务(附代码)

本文将介绍3个非视觉领域的应用实例。

导读

众所周知,目前深度学习计算机视觉领域已经有很好的应用落地,再加上迁移学习,可以很容易的训练出一个用于视觉任务的模型。但是现实中还有很多任务的原始数据是非视觉类型的,面对这样的问题,我们还可以借用强大的深度学习视觉模型吗,本文作者将用3个具体案例来展示这一切都是可能的。 

介绍

近年来,深度学习已经彻底改变了计算机视觉。由于有迁移学习和优秀的学习资源,任何人都可以在数天甚至数小时内,利用预先训练好的模型并将其应用于自己的领域从而获得最先进的结果。随着深度学习变得商品化,人们的需求也随之变成了它在不同领域的创造性应用。

迁移学习教程:

https://machinelearningmastery.com/transfer-learning-for-deep-learning/

深度学习教程:

https://course.fast.ai/

今天,计算机视觉领域的深度学习已经在很大程度上解决了视觉对象分类、目标检测和识别问题。在这些领域,深度神经网络的表现优于人类。

即使数据不是可视化的,你仍然可以利用深度学习视觉模型,主要是指CNN。要做到这一点,你必须将数据从非视觉型转换为图像,然后使用某个针对图像预训练过的模型来处理你的数据。你将会对这种方法的强大感到惊讶!

在本文中,我将介绍3个创造性地使用深度学习的案例,展示一些公司如何将深度学习视觉模型应用于非视觉领域。在每个案例中,都会对一个非计算机视觉问题进行转换和说明,以便利用适于图像分类深度学习模型。

案例一:石油工业

在石油工业中,“磕头机”常用于从地下开采石油和天然气。它们由一个连接在游梁上的发动机提供动力。游梁将发动机的旋转运动转化为抽油杆的垂直往复运动,使得抽油杆像泵一样将油输送到表面。

磕头机,也称为抽油机。来源:https://commons.wikimedia.org

像任何复杂的机械系统一样,抽油机也容易发生故障。为了帮助诊断,人们在抽油机上安装一个测功计,用于测量杆上的负载。测量后,绘制出一张测功计泵卡,其显示发动机旋转周期各部分的负载。

测功计泵卡样例。来源:https://www.researchgate.net/

当抽油机出故障时,测功计泵卡的形状会改变。通常会邀请专业技术人员来检查卡,并就泵的哪个部位出现故障以及需要采取什么措施来修复它作出判断。这个过程非常耗时,并且需要非常狭窄的专业知识才能有效解决。

另一方面,这个过程看起来像是可以自动化的,这就是之前为什么传统的机器学习系统被试过,只是没有取得好的效果,准确率仅为60%左右。

深度学习应用到这个领域的公司之一是贝克休斯(Baker Hughes)。在他们的案例中,测功计泵卡被转换成图像,然后作为输入传给ImageNet预训练好的模型中。结果令人印象深刻——只需采用预训练好的模型并用新数据对其进行微调,准确率就从60%上升到了93%。对模型进一步优化,其准确率可达97%。

贝克休斯部署的系统示例。左侧是输入图像,右侧是故障模式的实时分类。系统在便携式设备上运行,其分类时间显示在右下角。来源:https://www.youtube.com

它不仅击败了以前基于传统机器学习的方法,而且现在该公司不需要抽油机技术人员花时间来诊断问题,从而可以提高效率。他们可以立即开始修复机械故障。

要了解更多信息,你还可以阅读一篇讨论类似方法的论文。

案例二:在线欺诈检测

计算机用户在使用计算机时有独特的模式和习惯。当你浏览一个网站时你使用鼠标的方式或者编写邮件时你在键盘上敲击的方式都是独一无二的。

在这个案例中,Splunk解决了一个问题,即通过使用计算机鼠标的方式对用户进行分类。如果你的系统能够根据鼠标使用模式唯一地识别用户,那它就可以用于欺诈检测。想象一下:欺诈者窃取某人的登录名和密码,然后登录并在网上商店购物。欺诈者使用电脑鼠标的方式是独一无二的,系统将很容易检测到这种异常情况,并防止欺诈交易发生,同时也会通知账户的真正所有者。

使用一段特殊的javascript代码,就可以收集所有的鼠标活动。该软件每5-10毫秒记录一次鼠标活动。因此,每个用户每页面大约会产生5000–10000个数据点。该数据有两大挑战:首先,这对每个用户来说都是大量的数据;第二,每个用户的数据集将包含不同数量的数据点,这不是很方便,因为通常而言,不同长度的序列需要用到更精巧的深度学习架构。

他们的解决办法是将每个用户在每个网页上的鼠标活动转换为单个图像。在每幅图像中,鼠标移动由一条线表示,颜色编码了鼠标移动的速度,而左击和右击则由绿色和红色圆圈表示。这种处理初始数据的方法解决了上述两个问题:首先,所有图像的大小都相同;其次,可以使用处理图像的深度学习模型了。

在每幅图像中,鼠标移动由一条颜色编码鼠标速度的线表示,而左击和右击则由绿色和红色圆圈表示。来源:https://www.splunk.com

Splunk使用TensorFlow加Keras构建了一个分类用户的深度学习系统。他们做了两个实验:

实验一:某个金融服务网站用户的组别分类——访问类似页面时,区分他们是普通客户还是非客户。

仅用了一个由2000张图片组成的较小的训练集,在对基于VGG16修改的网络结构进行了2分钟的训练后,系统就能以80%以上的准确率识别这两个类别。

实验二:单个用户分类。

该任务是对于给定的用户,通过鼠标活动预测它是此用户的还是模仿者的。这回仅有一个360张图片的小训练集。基于VGG16,但考虑到数据集更小和过拟合(可能使用了dropout和batch normalization),他们对网络结构进行了修改。经过3分钟的训练,准确率就达到了78%左右,考虑到该任务的挑战性,这个结果令人印象非常深刻。

想了解更多信息,请参阅下面这篇描述系统和实验的完整文章。

文章链接:

https://www.splunk.com/blog/2017/04/18/deep-learning-with-splunk-and-tensorflow-for-security-catching-the-fraudster-in-neural-networks-with-behavioral-biometrics.html

案例三:鲸鱼的声音检测

在这个例子中,谷歌使用卷积神经网络来分析录音并检测其中的座头鲸。这对研究而言很有用,例如跟踪单个鲸鱼的运动、歌曲的特性、鲸鱼的数量等。有趣的不是研究目的,而是谷歌如何处理数据以用于需要图像的卷积神经网络

将音频数据转换成图像的方法是使用时频谱。时频谱是音频数据基于频率特征的视觉表示。

一个男性声音说“十九世纪”的时频谱例子。来源:https://commons.wikimedia.org

在将音频数据转换成时频谱之后,谷歌的研究人员使用了Resnet-50架构来训练这个模型。达到的性能如下:

  • 精度90%:90%被模型归类为鲸鱼歌声的音频剪辑被正确归类

  • 召回率90%:如果有一首鲸鱼歌声的录音,有90%的几率它会被贴上这样的标签。

这一结果令人印象深刻,对鲸鱼的研究也一定有帮助。

让我们把焦点从鲸鱼转到处理音频数据上。创建时频谱时,根据音频数据的类型,你可以选择要使用的频率。针对人类语音、座头鲸歌声或工业设备录音等将需要不同的频率,因为在这些不同场景下,最重要的信息包含在不同的频段中。必须使用领域知识来选择该参数。例如,如果你使用的是人类语音数据,那么第一选择应该是梅尔倒频谱

目前有很好的软件包可用于音频。librosa是一个免费的音频分析python库,可以使用CPU生成时频谱。如果你在TensorFlow上开发并且想在GPU上做时频谱计算,也是可以的。

librosa相关链接:

https://librosa.github.io/librosa/

请参考下面这篇谷歌人工智能的原始博客文章,以了解更多关于谷歌如何处理座头鲸数据的信息。

谷歌博客文章:

https://ai.googleblog.com/2018/10/acoustic-detection-of-humpback-whales.html

总而言之,本文概述的一般方法遵循两个步骤。

  • 首先,找到一种将数据转换成图像的方法;

  • 第二,使用经过预训练的卷积网络或从头训练一个。

第一步要比第二步更难,需要思考你的数据是否可以转换成图像,这是你展现创造性的地方。我希望上述提供的示例对解决你的问题有帮助。如果你还有其他的例子或问题,请写在下面的评论中。

参考引用

  • IoT for Oil & Gas — The Power of Big Data and ML (Cloud Next ’18)

    https://www.youtube.com/watch?v=6_kdEguYwwg&feature=youtu.be&t=1692

  • Beam Pump Dynamometer Card Prediction Using Artificial Neural Networks

    https://www.knepublishing.com/index.php/KnE-Engineering/article/download/3083/6587

  • Splunk and Tensorflow for Security: Catching the Fraudster with Behavior Biometrics

    https://www.splunk.com/blog/2017/04/18/deep-learning-with-splunk-and-tensorflow-for-security-catching-the-fraudster-in-neural-networks-with-behavioral-biometrics.html

  • Acoustic Detection of Humpback Whales Using a Convolutional Neural Network

    https://ai.googleblog.com/2018/10/acoustic-detection-of-humpback-whales.html

本文最初发表在作者网站pechyonkin.me上。

作者联系方式

Twitter:

https://twitter.com/max_pechyonkin

LinkdIn:

https://www.linkedin.com/authwall?trk=gf&trkInfo=AQFpHL3mlkPKnQAAAWiThnDAgtn1tdrvz57ag0PVaE7smdQF3iJOA2Eapss4-q9395VIOxi_DSeBALr0q2KXAxHqmEkhqzFKFdkMWgCcWSkILT7gOlMbd9XT5Jqctr4d-DFLHGk=&originalReferer=&sessionRedirect=https%3A%2F%2Fwww.linkedin.c

原文标题:

Deep Learning Vision for Non-Vision Tasks

原文链接:

https://towardsdatascience.com/deep-learning-vision-non-vision-tasks-a809df74d6f



THU数据派
THU数据派

THU数据派"基于清华,放眼世界",以扎实的理工功底闯荡“数据江湖”。发布全球大数据资讯,定期组织线下活动,分享前沿产业动态。了解清华大数据,敬请关注姐妹号“数据派THU”。

工程图像分类计算机视觉深度学习
3
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

360机构

奇虎360科技有限公司,是中国领先的互联网和手机安全产品及服务供应商。据第三方统计,按照用户数量计算,360是中国领先的互联网安全公司,用户6亿,市场渗透率96.6%;中国领先的移动互联网安全公司,用户数近8亿,市场渗透率近70%;中国领先的浏览器公司之一,活跃用户达到4亿,渗透率超过70%。 360致力于通过提供高品质的免费安全服务,为中国互联网用户解决上网时遇到的各种安全问题。面对互联网时代木马、病毒、流氓软件、钓鱼欺诈网页等多元化的安全威胁,360以互联网的思路解决网络安全问题。360是免费安全的首倡者,认为互联网安全像搜索、电子邮箱、即时通讯一样,是互联网的基础服务,应该免费。为此,360安全卫士、360杀毒等系列安全产品免费提供给中国数亿互联网用户。同时,360开发了全球规模和技术均领先的云安全体系,能够快速识别并清除新型木马病毒以及钓鱼、挂马恶意网页,全方位保护用户的上网安全。

https://www.360.cn/
暂无评论
暂无评论~