本文主要是介绍论文笔记:How transferable are features in deep neural networks?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://blog.csdn.net/weixin_37904412/article/details/80984405
典型的神经网络:第一层通用,最后一层具体
对于神经网络中层的表示,有以下问题:
- 我们可以量化模型的某一层的特征到底是通用的还是具体的吗?
- 转换是在某一层上突然发生,还是在几层上展开?
- 这种转换发生在网络的什么地方:网络顶端,网络中间,还是网络底端?
如果网络中的特征是通用的,我们能够将它们用于迁移学习。
通常,迁移学习的方法是首先训练基础网络,然后将其前n层的参数复制到目标网络的前n层中。然后,目标网络中剩余的层进行随机初始化,并针对目标任务进行训练。这里有两种选择:
a)在目标任务中对目标网络所有的参数进行微调;
b)将迁移过来的参数固定,在训练期间不发生更改,仅仅对随机初始化的参数进行训练。
是否需要微调目标网络前n层的参数取决于目标数据集的大小和前n层中的参数数量。如果目标数据集很小且参数数量很大,那么微调可能会导致过拟合,因此前n层的这些参数通常会被固定;如果目标数据集很大或参数数量很少,那么过拟合不是问题,可以微调网络的所有参数到新任务上,以提高性能。当然,如果目标数据集非常大,则几乎不需要迁移学习,因为可以在目标数据集上从头开始学习低层次的特征。
论文将比较两种技术:
对所有参数(包括前n层的参数)进行微调
固定前n层的参数不变
论文的工作:
- 定义了一种方法来衡量某一层是通用的或具体的程度,即该层的特征从一个任务迁移到另一个任务的程度
- 当使用迁移的特征,而没有进行微调时会导致网络性能下降。这一现象有两个原因:(i)特征本身的特异性;(ii)在相邻层上的神经元之间存在共适应性,从基础网络中将它们分离会导致难以优化。
- 当基本任务和目标任务的差异很大时,发现迁移的特征会降低网络的性能
- 在相对较大的ImageNet数据集中,对低层的网络权重进行随机初始化 VS 迁移低层网络的权重 后者的表现更好
- 用迁移的特征初始化网络,可以在微调后的新数据集上提高泛化性能。即使经过大量微调,基数据集的效果仍然存在
Gabor filter:Gabor函数是一个用于边缘提取的线性滤波器
https://www.cnblogs.com/arxive/p/4990754.html
color blobs:色斑
论文的结论是通过实验来得到的,实验是通过固定前n层网络来判断第n层是通用还是特有。
这篇关于论文笔记:How transferable are features in deep neural networks?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!