迁移学习(Transfer Learning)是机器学习中的一个重要研究话题,也是在实践中具有重要价值的一类技术。Transfer learning focuses on storing knowledge gained while solving one problem and applying it to a different but related problem. 举例来说,在之前的文章中,我们曾经介绍过VGG16,它是由来自牛津大学的研究团队训练的一个针对ImageNet进行图像识别与分类的深度CNN网络。在ImageNet中,图像的中物体的类别多达1000种。当面对另外一个image dataset时,我们能否最大程度地利用已经训练好的VGG16来完成我们的任务,或者说是将VGG16中已经学到的经验“迁移”到新到问题中呢?本文就来带你一探究竟。
一、问题介绍
首先来看一下我们要解决的问题。这个问题源自于Kaggle网站曾经举行过的一项竞赛,如下图所示,竞赛的主题是设计能够分辨图像中的动物是猫还是狗的方法,你可以从【3】中获得我们实验所需的数据集。
原始数据集中包含12,500张猫的图片和12,500张狗的图片,我们仅从中各取前1000张