CS231n-深度学习与计算机视觉-笔记-Lecture7.3 迁移学习
2018-02-04 11:23
931 查看
迁移学习transfer learning
我们看到使用正则化,加入不同正则策略可以帮助减小,训练误差和测试误差的间隙,过拟合的一个问题,有时候过拟合是由于数据不够,你希望得到一个大的、功能大的模型,一个大的功能强大网络在你使用,小数据集合时很容易过拟合,正则化是一种处理它的方法。另一种方法是使用迁移学习。使用迁移学习,你不需要超大的样本集,也能训练卷积神经网络。
它的思想很简单,首先找到一些卷积神经网络,这是VGG架构的网络,你首先使用你的卷积神经网络,在一个非常大的数据集训练,例如ImageNet,这时你有足够的数据去训练整个网络,现在你想尝试把从这个数据集中训练出的提取特征的能力,用到更感兴趣的小的数据集上,可能不需要像ImageNet分1000类,你可能只关注10个狗的品种分类,或者类似的分类,你只需要一个小的数据集,这里我们的数据集只有C个类别,接着你一般做法是修改,从最后一层的特征到最后的分类输出,之间的全连接层,你需要重新随机初始化这部分矩阵,对于ImageNet,它是4096乘以1000维的矩阵,对于你新的分类,矩阵大小变成4096乘以C,例如10或者任何一个数,重新随机初始化最后的矩阵,冻结前面层的权重,现在只需要训练一个线性分类器,只需要训练最后这层,让它在你的数据上收敛。当你只处理一个小的数据集的时候,这会让你的工作很完美,如果你的数据稍微充裕一点,另一件你可以尝试的事情是,微调整个网络,在最后一层收敛,在数据集上充分训练之后,你可以试着更新整个网络的权值,如果你有更多的数据,你可以更新网络的更大一部分,一个通用的策略是你更新网络时,将学习率调低,因为最初的网络参数可能,是在ImageNet上收敛的,泛化能力已经很强了,你只是希望让它们有微小的调整,来适应你的数据集。
当你使用迁移学习时,你可以想成是一个2乘以2的情景网络,在一侧的,你可能会有很小的数据集或者很大的数据集,可能你的数据和一些大数据集的图片很相似。例如ImageNet有很多动物、植物之类的图片,如果你只是想分类,动物植物或者其他类别的图片,就比较好办了。接下来要做的是,如果你的数据和ImageNet很像,但是你的数据量很少,你可以在ImageNet预训练模型的基础上,只训练最后一层线性分类器,如果你有更多的数据,你可以精调你的模型,但是你的数据和ImageNet不相似,情况就不乐观了。例如,你可能处理的是,例如,你处理X光或者CT图像时,或者一些和ImageNet的图片大相径庭的图片时,可能需要一些创造力。这种方法有时候可能还行得通,但最后一层提取的特征可能,没有太多信息量,你可以考虑是重新初始化大部分的网络,多做一些实验。在你的数据集数据量比较大的时候,这种情况会多少得到缓解,因为你可以精调大部分网络,另一点我想说的是,转移学习的思想是超级普遍的。
针对不同的任务,左边是目标检测,右边是图像加标志,所有的模型都有一个卷积神经网络,处理图像的模块。目前无论是计算机视觉的哪方面应用,大多数人都不会从头训练这些东西,大多数情况下卷积神经网络,在ImageNet上预训练,然后根据任务精调,同样的在图像加标的环境下。有时候可以预先训练一些,和一些语言相关的词向量,你可以在ImageNet上预训练卷积神经网络,在一些文本字典上预训练一些词向量,然后,针对你的网络精调,在加标任务中,预训练词向量的方法不太常见。
不管是课程的项目还是以后遇到的各种模型,无论什么时候对于你要处理的问题,你没有大数据集,你应该下载一些相关的预训练的模型,然后要么重新初始化部分模型,或者在你的数据上精调模型,即使你的训练数据有限,这种方法也能行得通,因为这是一个普遍的策略,在所有不同的深度学习软件包上,都提供了一个模型库,可以下载不同模型的预训练版本,
我们看到使用正则化,加入不同正则策略可以帮助减小,训练误差和测试误差的间隙,过拟合的一个问题,有时候过拟合是由于数据不够,你希望得到一个大的、功能大的模型,一个大的功能强大网络在你使用,小数据集合时很容易过拟合,正则化是一种处理它的方法。另一种方法是使用迁移学习。使用迁移学习,你不需要超大的样本集,也能训练卷积神经网络。
它的思想很简单,首先找到一些卷积神经网络,这是VGG架构的网络,你首先使用你的卷积神经网络,在一个非常大的数据集训练,例如ImageNet,这时你有足够的数据去训练整个网络,现在你想尝试把从这个数据集中训练出的提取特征的能力,用到更感兴趣的小的数据集上,可能不需要像ImageNet分1000类,你可能只关注10个狗的品种分类,或者类似的分类,你只需要一个小的数据集,这里我们的数据集只有C个类别,接着你一般做法是修改,从最后一层的特征到最后的分类输出,之间的全连接层,你需要重新随机初始化这部分矩阵,对于ImageNet,它是4096乘以1000维的矩阵,对于你新的分类,矩阵大小变成4096乘以C,例如10或者任何一个数,重新随机初始化最后的矩阵,冻结前面层的权重,现在只需要训练一个线性分类器,只需要训练最后这层,让它在你的数据上收敛。当你只处理一个小的数据集的时候,这会让你的工作很完美,如果你的数据稍微充裕一点,另一件你可以尝试的事情是,微调整个网络,在最后一层收敛,在数据集上充分训练之后,你可以试着更新整个网络的权值,如果你有更多的数据,你可以更新网络的更大一部分,一个通用的策略是你更新网络时,将学习率调低,因为最初的网络参数可能,是在ImageNet上收敛的,泛化能力已经很强了,你只是希望让它们有微小的调整,来适应你的数据集。
当你使用迁移学习时,你可以想成是一个2乘以2的情景网络,在一侧的,你可能会有很小的数据集或者很大的数据集,可能你的数据和一些大数据集的图片很相似。例如ImageNet有很多动物、植物之类的图片,如果你只是想分类,动物植物或者其他类别的图片,就比较好办了。接下来要做的是,如果你的数据和ImageNet很像,但是你的数据量很少,你可以在ImageNet预训练模型的基础上,只训练最后一层线性分类器,如果你有更多的数据,你可以精调你的模型,但是你的数据和ImageNet不相似,情况就不乐观了。例如,你可能处理的是,例如,你处理X光或者CT图像时,或者一些和ImageNet的图片大相径庭的图片时,可能需要一些创造力。这种方法有时候可能还行得通,但最后一层提取的特征可能,没有太多信息量,你可以考虑是重新初始化大部分的网络,多做一些实验。在你的数据集数据量比较大的时候,这种情况会多少得到缓解,因为你可以精调大部分网络,另一点我想说的是,转移学习的思想是超级普遍的。
针对不同的任务,左边是目标检测,右边是图像加标志,所有的模型都有一个卷积神经网络,处理图像的模块。目前无论是计算机视觉的哪方面应用,大多数人都不会从头训练这些东西,大多数情况下卷积神经网络,在ImageNet上预训练,然后根据任务精调,同样的在图像加标的环境下。有时候可以预先训练一些,和一些语言相关的词向量,你可以在ImageNet上预训练卷积神经网络,在一些文本字典上预训练一些词向量,然后,针对你的网络精调,在加标任务中,预训练词向量的方法不太常见。
不管是课程的项目还是以后遇到的各种模型,无论什么时候对于你要处理的问题,你没有大数据集,你应该下载一些相关的预训练的模型,然后要么重新初始化部分模型,或者在你的数据上精调模型,即使你的训练数据有限,这种方法也能行得通,因为这是一个普遍的策略,在所有不同的深度学习软件包上,都提供了一个模型库,可以下载不同模型的预训练版本,
相关文章推荐
- [深度学习与计算机视觉] 斯坦福 CS231n 2017 学习笔记 -1 (Lecture 1: Introduction;课程介绍)
- CS231n-深度学习与计算机视觉-笔记-Lecture3 损失函数和优化
- 深度学习与计算机视觉[CS231N] 学习笔记(3.2):Softmax Classifier(Loss Function)
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时8&&9
- 深度学习与计算机视觉[CS231N] 学习笔记(4.1):反向传播(Backpropagation)
- 深度学习与计算机视觉[CS231N] 学习笔记(3.3):函数优化(梯度下降法)
- 深度学习与计算机视觉[CS231N] 学习笔记(2.2):K-近邻算法(K-Nearest Neighbors)
- 深度学习与计算机视觉[CS231N] 学习笔记(3.1):损失函数(Loss Function)
- 计算机视觉学习笔记:深度学习基础——CS231n_assignment1
- 深度学习与计算机视觉[CS231N]学习笔记(2.1):图像分类
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时10
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时3
- CS231n 卷积神经网络与计算机视觉 11 卷积神经网络的 迁移学习 和微调
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时11
- 【计算机视觉】【神经网络与深度学习】论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时26&&27
- Udacity自动驾驶课程笔记(二)--计算机视觉和深度学习
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时5
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时6
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时24&&25