你好。我的名字是乔希克林。我在MathWorks公司的高级开发人员。我要告诉你如何做迁移学习。迁移学习可以是深度学习应用到你的问题很实际的方式。
在迁移学习中,你取一个已经存在的神经网络,对它稍加修改,然后在你的图像上对它进行再训练。这可以产生非常好的结果,而且比从头设计一个网络并自己训练它要简单得多。
在我的工作,我需要能够从热狗和蛋糕和苹果馅饼和冰淇淋区分汉堡包。据我所知,没有网络,它会为我做的。所以我要开始一个已经存在的网络,亚历克斯网。亚历克斯网一直在训练,1000个不同类型的图像进行分类,并且它已经已经培训了超过一万张图片。
所以我在这里。我要开始加载Alex net,我要把图层取出来这样我就能看到各个部分了。如果你往下看,你会看到Alex net有25层。大多数层做有用的图像处理事情会工作为我的系统以及亚历克斯净的。我不去管它们。
但第23层中有1000元,因为亚历克斯网1000个进行分类不同的图像。我只打算做五种不同类型的图像,所以我要替换与只拥有五个图像的网络。最后,我要代替输出层为好。亚历克斯网的最后一层了解到亚历克斯网的分类,那些1000个不同的类别。我不希望出现这种情况。我要与那将学习矿井空层来代替它。
所以,现在我已经得到了我的网络设置。它的时间来处理数据。你不需要一百万相似图片亚历克斯网被训练,但你做他们的需要1000取得好成绩。我做了一个文件夹中包含五个子文件夹,每一个我的课的。因此,有一个叫苹果馅饼,一个叫蛋糕,等等。而内部的每个这些文件夹中的相应主题的1000倍的图像。
我的尺寸这些图像是大小亚历克斯网预计,227 227,你就必须做到这一点,太。如果你安排你的数据是这样,你可以使用MATLAB的图像数据存储对象,因为它知道的结构,它会加载所有图像和正确标记它们。所以,这就是我在这里做什么。
一旦我有了我的图像,我需要把它们分成两组。它们中的大多数我将用于训练,但我将保留一些,以便稍后测试准确性。我们来做一下。现在我已经准备好训练我的社交网络了。我需要设置一些网络参数。我已经选择了一些有效的参数。
如果你喜欢,并看看会发生什么你可以改变这些。然后,我已经准备好对网络进行训练。开始的。这是要采取五六分钟来完成其工作。我在我的电脑一个相当强大的GPU,所以这是相当快。你的旅费可能会改变。好吧,网络的完成训练。我们现在要做的第一件事是看它是如何准确。
我们要问网络的测试图像,我们离开了我们的训练集出来的图像进行分类。然后,我们只是去看看那些小部分的它得到正确的。我们是84%准确。相当不错的工作的五分钟。现在,让我们尝试与一些真正的食品摄像头。我刚好在我的办公桌上放一些食物。有汉堡包,苹果派,热狗,冰淇淋。
所以总的来说,它工作得很好,而且它对很多这些都是相当健壮的。不同的角度。好了。这比我预期的效果要好,真的。我尽可能地简化了这个演示,但是在下载中,我们将包含第二个文件,它将有更多的注释,并且它将有更多的代码来处理可能出现的一些情况。
我已经展示了如何做迁移学习的分类,但如果你需要真正的数字出来,你也可以做回归与迁移学习。嗯,我希望我展示了足以让你在传输的学习兴趣,所以抓住一些小吃,并给它一展身手。
您也可以从以下列表中选择一个网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。