从系列:基于MATLAB的深度学习
Gabriel Ha,Mathworks
这个演示使用matlab®培养一个美国有线电视新闻网从零开始对四种不同动物类型的图像进行分类:猫、狗、鹿和青蛙。图像来自CIFAR-10数据集(https://www.cs.toronto.edu/~kriz/cifar.html).
录音时间:2017年4月12日
你好。我的名字是Gabriel Ha,我在这里向您展示Matlab如何开始从头开始创建一个深度神经网络。我们的演示具有特定的应用程序到图像处理和识别,但我们觉得图像非常容易与之相关。而且它是一种相当众名人的神经网络应用。最重要的是,我们希望为每个人提供深入的学习,您将能够掌握您向您展示的一切以及构建它们,并开始使用自己的网络。
所以对于那些非常熟悉培训网络,随着技术使他们更准确,MATLAB对你将是伟大的,因为如你所愿,我们为您提供直观的语法和功能将让你轻松实现改进。你们新深度学习领域,想感受这个技术,你可以马上做的程度可能是有限的图像识别,但我相信它会为你提供足够多的资料开始,与神经网络有很多的乐趣。
所以这就是我们要做的事。我们希望培训网络来识别四种不同的动物:猫,狗,青蛙和鹿。为此,我们将将每个动物的图像引入我们的网络,定义我们网络的图层,然后使用单行代码,告诉MATLAB从头开始培训并创建我们的网络。然后,我们将通过显示它之前没有看到的新图像并检查其准确性来测试我们的网络。
要设置事项,我们将进入此目录并将每个动物的5,000个图像绘制到单独的文件夹中。现在,如果您正在进行数学,那是2万张图片。而对于那些刚刚对尝试这一点的人来说,你可能会思考,“等等,所以你希望我能观看这个视频,然后在我甚至开始之前去策划20,000个图像?”嗯,如果你愿意,你可以做到,或者你可以做到这一点 - 利用已经完成的工作。
在这种情况下,我们从公开的CiFar-10数据集中获取了我们的所有图像,这实际上只是涉及下载和提取一个大ZIP文件。如此值谢地地,设置此演示仅依赖于您的网络速度和处理器电源。据说,从头划伤训练网络确实需要相当多的数据,所以总是寻找适应以前的工作的机会,如这种演示。
让我们看看执行培训所需的核心代码。你可以看到这个部分,它指定了动物的名字,然后是这个部分,将MATLAB指向包含训练数据的文件夹。就准备工作而言,就是这样。
所以现在我们要告诉Matlab我们希望如何培训深网络。每个神经网络都有一系列层,并且具有更多的层,网络更深。现在每个图层都从上一层中获取数据,转换数据,然后通过它。因此,第一层采用原始输入图像,并且随着我们到达最后一层的时间,它将希望吐出原始图像中动物的正确名称。
这里是我们为这个例子选择的实现层。对于这个领域的新手来说,你不可能从头开始设计所有这些层。另一方面,如果你是一个深度学习专家,我们会为你提供精确实现层次的工具。
但在这两种情况下,如果你想建立这个例子,只是将训练数据替换为你自己的,如果你觉得调整层你任务,一行代码,MATLAB将给你一个神经网络训练在任何你想要的,不管是动物还是面对你的朋友,这完全不是我在上班时间做的可怕的事情。
当然,训练需要一些时间。如果你只有CPU,这需要一段时间,但如果你有一个像这台机器一样的精心装饰的GPU,这只需要大约45秒。一旦完成,我们就可以开始测试我们的网络。
让我们开始超级基础。我们具有一组测试集,其中每只动物中的1,000个 - 再次,方便地从CiFar-10获得。正如您所看到的,它将设置与培训集的完全相同的方式。但最重要的是,网络没有接受这些图像培训。
我们将显示一个图像以及网络认为它是什么。这是一只鹿。正确的。这是一只狗。也是正确的。这是一只青蛙。电视台认为那是一只猫。
我很确定你现在已经明白是怎么回事了,所以我们加快进度吧。我们将让MATLAB运行这段代码,它将测试我们测试集上的所有图像。然后它会告诉我们整个网络的百分比表现。数字是——请击鼓——大约75%的准确性。对于45秒的训练来说,还不错。
作为一种警告,您会注意到CiFar-10图像非常小,并且我们的第一层需要32到32〜32的图像。虽然我们的代码调整图像大小,但您必须确定是否这对您的数据有意义。但是如果您有一堆与神经网络分类的一系列图像,那么如何使用Matlab进行操作,您可以立即开始使用。
点击下面描述中的链接,获取代码并查看有关使用神经网络工具箱的文档。请不要犹豫,给我们留下问题或评论。一如既往,感谢收看。
看看加布里尔创建的这个应用。对着我。
老兄,这是令人毛骨悚然的。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。