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