从系列:深度学习与MATLAB
加布里埃尔哈,MathWorks公司
本演示使用MATLAB®从头训练CNN四种不同的动物类型的分类图片:猫,狗,鹿,和青蛙。图像从CIFAR-10使用的数据集(https://www.cs.toronto.edu/~kriz/cifar.html)。
你好。我的名字是加布里埃尔哈,我在这里向你展示如何MATLAB使得它可以直接从头创建一个深层神经网络。我们演示了具体应用到图像处理与识别,但我们感觉图像很容易涉及到。而且它的神经网络的一个相当知名的应用程序。最重要的是,我们要学习深所有人访问,你就可以得到的一切,我们向您展示,并建立您的手在他们头上,并开始使用你自己你自己的网络。
因此,对于那些你们谁是超级熟悉的培训网络,以技术一起,使其更加准确,MATLAB将是非常适合你,因为,正如你所期望的,我们为您提供了直观的语法和功能,让您轻松实现您的改进。对于那些新来的深度学习领域,并希望得到你的脚与此技术湿,什么你可以立即做的程度上可以被限制在图像识别,但我相信它会为你提供足够多的材料上手,有很多的乐趣与神经网络。
因此,这里就是我们打算做的。我们要培养网络识别四种不同的动物:猫,狗,青蛙和鹿。要做到这一点,我们要每个动物的图片介绍给我们的网络,定义我们的网络层,然后,用一个单一的代码行,告诉MATLAB训练和从头开始创建我们的网络。然后,我们将通过展示其新的图像,它以前没有见过测试我们的网络,并检查其准确性。
为了处理事情,我们要进入这个目录,并绘制每个动物的图像5000到单独的文件夹中。现在,如果你正在做数学题,这是20,000多张影像总数。而对于那些你们谁只是想尝试了这一点,你可能会想,“等一下,所以你指望我观看这部影片,然后去牧师20,000多张影像之前,我甚至可以开始了吗?”嗯,你可以,如果你想,或者你可以做到这一点,我们也走优势的工作包括已经完成。
在这种情况下,我们得到了我们所有的图像从可公开获得的CIFAR-10数据集,这真的只是需要下载和解压一个大的ZIP文件。所以,值得庆幸的是,设立这个演示只依赖于你的网络速度和处理器供电方面,分别。话虽这么说,培养一个从无到有的网络确实需要相当多的数据,所以总是找机会建立在这样的演示以前的工作。
让我们来看看核心代码需要执行我们的培训。你可以看到这部分,它指定的动物名称,然后这部分,指着MATLAB到包含训练数据的文件夹。并尽可能设置而言,仅此而已。
所以,现在我们要告诉MATLAB我们要如何深层网络的培训。每个神经网络具有一系列的层,它具有更多的层,更深层次的网络。现在,每个层取入数据从之前的层,转换成数据,然后将其传递。因此,第一层采用原始输入图像中,并通过我们获得了最后一层的时候,它会希望吐出动物的正确名称的原始形象。
因此,这里是我们选择来实现这个例子的层。对于那些完全不了解这个领域,你就不会被期望能够拿出从头所有这些层。在另一端,如果你是一个深度学习专家,我们为您提供的工具来实现精确的层。
但是,在这两种情况下,如果你想建立过这个例子,只是换成你自己的训练数据,调整图层,如果你觉得你能够胜任工作,并用一行代码,MATLAB会给你一个神经网络培训了任何你想要的,无论是动物还是你的朋友,这是完全没有,我没有在上班时间令人毛骨悚然的事情面孔。
所以,当然,它会需要一些时间来训练。如果你只是有CPU,它会需要一段时间,但如果你有一个邪恶的打扮出GPU喜欢这款机器,它需要大约45秒。一旦完成,我们可以继续测试我们的网络。
让我们先从基本超强。我们有一个测试组包含每个动物再次,方便地从CIFAR-10得到的1000图像。正如你所看到的,它的设置方式不尽相同目录明智作为训练集。但最重要的是,网络是没有经过培训的这些图像。
我们将用什么样的网络认为这是一起显示的图像。这是一个鹿。正确。这是一只狗。也是正确的。这是一只青蛙。网络还以为是一只猫。
我敢肯定,你得到什么的现在怎么回事,让我们加快这一进程。我们将有MATLAB运行这段代码,测试我们的测试集的所有图像。然后,它会告诉我们百分比明智的网络整体是如何做。并且这个数字,击鼓,请-约75%的准确率。哎,用于训练45秒,这不是太糟糕了。
作为一个警告,你会发现,CIFAR-10图像是非常小的,而我们网络的第一层,需要通过32 32由3图像,而我们的代码并调整图片的大小,你必须决定是否这是有道理的,你的数据。但是,如果你有一大堆要与神经网络图像分类的,这里是如何用MATLAB做到这一点,你可以马上开始。
单击说明下面的链接,得到的代码你的手,并检查了文档使用神经网络工具箱。不要犹豫,让我们提出问题或意见。和往常一样,感谢收看。
嘿,看看这个应用程序,加布里埃尔创建。我点它。
好家伙,这是令人毛骨悚然。
记录:2017年4月12日