深度学习

理解和使用深度学习网络

活动分类演示

每年1月,我们公司都会举办一年一度的“启动仪式”:销售、营销和客户相关人员有机会在波士顿会面,了解2020年相关产品领域的所有新功能。作为深度学习营销团队的一员,我们决定通过为每个人提供与神经网络互动的机会(有些是第一次!)

从深度学习文档的一个例子开始。

以下是我们希望演示的工作方式:每个团队竞赛,在10分钟内正确地分类尽可能多的活动。每队有一台笔记本电脑和网络摄像头。他们记录团队成员执行活动的小视频,然后将视频发送到网络进行分类。

演示要求

我承认,有时候我非常关注深度学习模型,而不是整个系统。这个项目为我提供了一个学习整合整个应用程序的机会:从前端到部署。
  • 与神经网络交互,无论技术背景
  • 许多人可以同时跑步
  • 网络预测速度相当快(可能需要GPU支持)金宝app
Heather (@heathergorr)和我从开始到结束花了大约1周的时间把这个演示集放在一起。我们从文档中的一个示例开始(链接)//www.tatmou.com/help/deeplearning/examples/classify-videos-using-deep-learning.html),并重新训练该网络识别30项活动。

创建模型

doc中的例子很好地说明了网络如何识别视频流中的活动,首先使用GoogleNet从视频文件中提取激活,然后使用LSTM网络将这些激活分类为它们的活动类。
激活代码看起来像这样:
对于i = 1:numfiles fprintf(“读取文件%d%d ... \ n”,i,numfiles)视频= readvideo(文件(i));Video = CenterCrop(视频,输入);序列{i,1} =激活(netcnn,视频,layername,'outputas','列');结尾
LSTM网络如下所示:
图层= [sequenceInputlayer(numfeatures,'name','seample')bilstmlayer(2000,'输出显示','last','name','bilstm')dropoutlayer(0.5,'name','drop')全连接列(numcrasses,'姓名','fc')softmaxlayer('name','softmax')分类层('name','分类')];
训练如下所示:
minibatchsize = 16;numobservations = numel(Sequencestain);numiterationsperepoch = bloor(numobservations / minibatchsize);选项= TrainingOptions('adam',...'minibatchsize',minibatchsize,...'italllearnrate',1e-4,...'gradientthreshold',2,...'shuffle','每个时代',...'validationdata',{semencesvalidation,labelsvalidation},...'validationfrequency',numiterationsperepoch,...'plots','培训 - 进展',...'verbose',false);[netlstm,Info] = Trainnetwork(Sequencestrain,Labelstrain,图层,选项);原始模型的准确性为51个活动留下了很多,精度为67.8%。查看培训数据集,您可以看到为什么:活动的表演者之间存在很多变化,并且可能有更多的数据。
侧面注意:通过HyperParameter调整,我们没有看到大量改进。似乎文档示例已经具有设置为提供最高精度模型的参数。
然后我们接受了20个活动培训,(71%),最后8项活动,最终达到了大约80%的准确性。我们根据我们认为在为游戏的10分钟内完成的方式选择了8项活动,并允许获得高分类准确性的最佳机会。

8级模型的准确性。过度拟合?

前端,在应用程序设计器中创建(视频概述链接://www.tatmou.com/videos/app-designer-overview-1510748719083.html),故意简化,允许用户快速选择一个活动,录制一个小视频,并接收分类结果。

Heather和Johanna向一屋子的演示参与者演示这个应用程序!

以下是运行中的应用程序和网络:

部署应用程序

现在 - 有300人的房间:你如何让他们访问文件并运行应用程序?
输入MATLAB在线:有关该产品的信息在此:https://www.mathwands.com/下载188bet金宝搏products/matlab-online.html.你可以在这里在线运行matlab:https://matlab.mathwands.com/
如果您可以访问MATLAB,您可以访问MATLAB Online,这是一种方便的方式来运行MATLAB远离您的标准设置。我们惊喜地发现网络预测非常快:每次预测不到5秒,而不需要非常适合我们需求的gpu。
我们也考虑了其他一些选择:
  • 一个MATLAB Web应用程序(链接://www.tatmou.com/help/compiler/webapps/install-matlab-web-app-server.html.),可以满足在您的办公室的每个人从浏览器运行web应用程序的需求-不管MATLAB访问。这非常适合在内部运行web应用程序。将它带到会议中心不是服务器的预期用例,我们不想冒需要VPN的风险。
  • 有MATLAB编译器(//www.tatmou.com/下载188bet金宝搏products/compiler.html) - 您可以创建一个可以在本地在每个人的计算机上运行的应用程序(无需互联网或最终计算机上的Matlab许可)。出于游戏的目的,我们不希望人们需要安装一个应用程序,因为这么短的时光。
因为我们决定使用MATLAB Online,所以我们可以分享应用程序的链接,这使得分享应用程序和代码变得更加容易。你也可以查看代码并运行应用程序!是指向只读代码的链接在这里
游戏很成功:我们有人们尝试活动的有趣图像。然而,这个模型相当挑剔(在第一个实验中,每个人都被认为是“吸烟”,而不管实际活动如何),但后来的实验能够在10分钟内正确地完成8项活动中的6项。我们还发现,当你把手放在脸旁时,通常会被归类为吸烟或梳头!对于不太熟悉深度学习的人来说,这是一个很好的机会,可以亲身体验与神经网络的互动,这也引发了一些参与者的讨论,为什么深度学习并不总是100%准确。

演示日成功! !我们有一屋子的人在表演这八种活动。

一般来说,很高兴考虑整个包裹。不仅模型,而且如何使用该模型:专注于人员与人互动的应用程序,以及人们将访问该模型的方式。我鼓励你本周在线尝试Matlab,让我知道你的想法。
P.S.R2020A就在这个春天的角落周围,从我们上周的会议,它看起来将作为一个伟大的释放来塑造。敬请关注!
|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。