嗨。我叫乔·希克林。我是数学工场的高级开发人员。我将向你们展示如何进行迁移学习。迁移学习是将深度学习应用于问题的一种非常实用的方法。
通过迁移学习,你把一个已经存在的神经网络,稍微修改一下,然后再把它训练到你的图像上。这可以产生极好的效果,而且比从头设计一个网络然后自己训练容易得多。
在我的工作中,我需要能够区分汉堡包和热狗、纸杯蛋糕、苹果派和冰淇淋。据我所知,没有电视网能帮我做这些。所以我将从一个既存的网络开始,亚历克斯网络。亚历克斯网被训练来分类一千种不同的图像,它已经训练过一百多万张图像。
所以我来了。我要开始加载Alex net,我要把它的图层取出来,这样我就能看到各个部分。如果你看这里,你可以看到亚历克斯网有25层。大部分的层是做有用的图像处理的东西,将工作为我的系统以及Alex net的。我不去管这些了。
但是第23层有1000个神经元,因为Alex net分类了1000个不同的图像。我只做五种不同的图像,所以我要用一个只有五幅图像的网络来代替它。最后,我也要替换输出层。Alex net的最后一层学习了Alex net的分类,那1000个不同的类。我不想那样。我要用一个空的层来代替它,让它学习我的。
所以现在我有我的网络设置。是时候处理数据了。您不需要像Alex Net培训的百万图像,但您确实需要1,000个以获得良好的结果。我已经用它的五个子文件夹制作了一个文件夹,每个类都是我的课程。所以有一个名叫苹果派,一个被称为蛋糕,等等。在这些文件夹中的每个文件夹中是一个适当主题的1,000个图像。
我大小大小是亚历克斯净的尺寸预期,227〜227,你也必须这样做。如果您可以如此安排数据,可以使用MATLAB的图像数据存储对象,因为它可以理解该结构,它将加载所有图像并为您提供适当的标记。所以这就是我在这里做的事。
一旦我收到了我的图像,我需要将它们分成两组。他们中的大多数人都会用于培训,但我会稍后将其中一些人节省一些来测试准确性。所以让我们这样做。现在我全都设定了训练我的网络。我必须在这里设置一些网络参数。我选择了要运行的参数。
如果你愿意,你可以改变这些,看看会发生什么。然后我就可以训练网络了。开始的。这需要五到六分钟才能完成。我的电脑有一个相当强大的GPU,所以它很快。你的里程可能会有所不同。好了,网络已经完成了训练。我们现在要做的第一件事是看看它有多准确。
我们将要求网络对测试图像进行分类,我们遗漏了我们的培训集。然后我们只是要看到它右转的部分。我们准确的84%。很善于五分钟的工作。让我们在一些真正的食物上使用网络摄像头尝试。我碰巧在我的桌子上有一些食物。有汉堡包,苹果派,热狗,冰淇淋。
所以总的来说,它工作得很好,对很多这些都是相当稳健的。不同的角度。好了。这比我预想的要好,真的。我尽可能地简化了这个演示,但是在下载中,我们将包含第二个文件,它将有更多的注释,它将有更多的代码来处理可能出现的一些情况。
我向您展示了如何通过传输学习进行分类,但如果您需要实数掉,您也可以使用转移学习进行回归。好吧,我希望我向你展示了足够的让你对转移学习感兴趣,所以抓住一些小吃并给予它。
您还可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。