活动分类演示
每年1月,我们公司都会举办年度“揭幕式”:这是一个销售、营销和面向客户的人员在波士顿会面的机会,了解2020年相关产品领域所有令人兴奋的新功能。作为深度学习营销团队的一员,我们决定将语言转化为行动为每个人提供与神经网络互动的机会(有些是第一次!)
这是我们希望演示的工作方式:每个团队在10分钟内竞争正确分类尽可能多的活动。每队都有一台笔记本电脑和网络摄像头。他们录制一段团队成员进行活动的小视频,然后将视频发送到网络进行分类。
演示要求
我承认,有时候我非常关注深度学习模型,而不是整个系统。这个项目为我提供了一个学习整合整个应用程序的机会:从前端到部署。- 与神经网络交互,而不考虑技术背景
- 很多人可以同时跑
- 网络预测相当快(这可能需要GPU支持)金宝app
创建模型
doc中的示例很好地讨论了网络如何识别视频流中的活动,首先使用GoogleNet从视频文件中提取激活,然后使用LSTM网络将这些激活分类到它们的活动类中。激活代码看起来像这样:for i = 1:numFiles fprintf("读取文件%d的%d…"\n", i, numFiles) video = readVideo(files(i));视频= centerCrop(视频,inputSize);sequences{i,1} =激活(netCNN,视频,layerName,'OutputAs','columns');结束
LSTM网络是这样的:
layers = [sequenceInputLayer(numFeatures,'Name','sequence') bilstmLayer(2000,'OutputMode','last','Name','bilstm') dropoutLayer(0.5,'Name','drop') fullyConnectedLayer(numClasses,'Name','fc') softmaxLayer('Name','softmax') classificationLayer('Name','classification')];
训练是这样的:
miniBatchSize = 16;numObservations = numel(sequencesTrain);numIterationsPerEpoch = floor(numObservations / miniBatchSize);选项= trainingOptions('adam',…MiniBatchSize, MiniBatchSize,……“InitialLearnRate”,1的军医,…“GradientThreshold”,2,…“洗牌”、“every-epoch’,……ValidationData, {sequencesValidation, labelsValidation},…ValidationFrequency, numIterationsPerEpoch,…… 'Plots','training-progress', ... 'Verbose',false); [netLSTM,info] = trainNetwork(sequencesTrain,labelsTrain,layers,options);
原模型含有51个活动时的准确率有很大的不足,准确率为67.8%。看看训练数据集,你就能明白原因了:活动的执行者之间有很多差异,更多的数据可能也会有所帮助。
附注:我们没有看到超参数调优在精度上有很大的提高。文档示例似乎已经设置了交付最高精度模型的参数。
然后我们训练了20个活动(71%),最后训练了8个活动,最终达到了大约80%的准确率。我们根据我们认为在分配给游戏的10分钟内可以完成的内容选择了8个活动,并为高分类准确性提供了最佳机会。
前端,在应用程序设计器中创建(视频概述链接://www.tatmou.com/videos/app-designer-overview-1510748719083.html),目的是简单,让用户快速选择一个活动,录制一个小视频,并接收分类结果。
下面是应用程序和网络的运行情况:
部署应用程序
现在——在一个300人的房间里:你如何让他们访问文件并运行应用程序?输入MATLAB在线:有关产品的资料载于此://www.tatmou.com/下载188bet金宝搏products/matlab-online.html你可以运行MATLAB Online:https://matlab.mathworks.com/ 如果你能访问MATLAB,你就能访问MATLAB在线,这是一种方便的方式来运行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许可证)。出于游戏的目的,我们不希望人们需要在这么短的时间内安装应用。
- カテゴリ:
- 深度学习
コメント
コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。