20221122【深度学习】学习笔记

今日学习

日后肯定会需要回头复习的。所有的新概念都只是找了些入门链接进行汇总学习。哎,还需要深入学习啊,不然很多细节还是不会……

目录

  • 今日学习
    • 1.迁移学习
        • 一、基础知识
        • 二、基于实例的迁移
        • 三、基于特征的迁移
        • 四、基于共享参数的迁移
        • 五、deep learning和transfer learning结合
    • 2.元学习
        • 一、基础知识
        • 二、Meta Learning实施——以MAML(Model-Agnostic Meta-Learning)为例
        • 三、Reptile
        • 四、小结
    • 3.CV中上游任务、下游任务是什么?
    • 4.Few-Shot Learning
        • 一、问题定义
        • 二、算法介绍
        • 三、算法种类
        • 四、Meta Learning
        • 五、经典的Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks论文解读
    • 6.零次学习 Zero-Shot Learning
        • 一、基本概念
        • 2.算法介绍
        • 3.ZSL中存在的问题、以及相应的解决方法
          • 1.domain shift problem 领域漂移问题
          • 2.hubness problem 枢纽点问题
          • 3.semantic gap 语义间隔
        • 4.有关ZSL的一些其他概念
        • 5.一些推荐的paper
    • 7.后续需要看的

1.迁移学习

参考博客:迁移学习概述

一、基础知识

1.定义
Ability of a system to recognize and apply knowledge and skills learned in previous domains/tasks to novel domains/tasks.
将先前学习到的知识应用在新任务/新领域上
2.目标
将某个领域或任务上学习到的知识或模式应用到不同但相关的领域或问题中
3.主要思想
从相关领域中迁移标注数据或者知识结构,完成或改进目标领域或目标任务的学习效果
4.两个重要概念
(1)domain 域:理解为某个时刻的某个特定领域,比如书本评论和电视剧评论可以看作是两个不同的domain
(2)task 任务:即要做的事情,比如情感分析和实体识别就是不同的两个task
5.迁移学习的形式定义及一种分类方式
20221122【深度学习】学习笔记_第1张图片

6.transfer learning的关键:What、How、When to transfer?
20221122【深度学习】学习笔记_第2张图片

7.负迁移问题
domain间的概率分布差异很大,我们的假设通常难以成立,旧知识对新知识学习具有阻碍作用(like学习了三轮车之后对骑自行车的影响,和学习汉语拼音对学英文字母的影响)。因此要避免负迁移。

二、基于实例的迁移

1.研究what?
如何从源领域中挑选出,对目标领域的训练有用的实例。
一个IDEA:对源领域的有标记数据实例进行有效的权重分配,让源域实例分布接近目标域的实例分布,从而在目标领域中建立一个分类精度较高的、可靠地学习模型。
2.戴文渊等人提出的TrAdaBoost算法就是典型的基于实例的迁移
3.图示基于实例的迁移
20221122【深度学习】学习笔记_第3张图片

三、基于特征的迁移

1.基于特征选择的迁移学习算法
研究what?
如何找出源领域与目标领域之间共同的特征表示,然后利用这些特征进行知识迁移
2.基于特征映射的迁移学习算法
研究what?
如何将源领域和目标领域的数据从原始特征空间映射到新的特征空间中去

四、基于共享参数的迁移

研究what?
如何找到源数据和目标数据的空间模型之间的共同参数或者先验分布,从而可以通过进一步处理,达到知识迁移的目的。
假设前提:
学习任务中的每个相关模型都会共享一些相同的参数或先验分布。

五、deep learning和transfer learning结合

1.二者的相关点
20221122【深度学习】学习笔记_第4张图片
“深度学习需要大量的高质量标注数据,Pre-training + fine-tuning 是现在深度学习中一个非常流行的trick,尤其是以图像领域为代表,很多时候会选择预训练的ImageNet对模型进行初始化。”
(个人理解:fine-tune就相当于transfer操作,将预训练模型迁移到我们的模型上,对我们的模型初始化)
2.Pre-training+Fine-tuning
Paper:《How transferable are features in deep neural networks》
3.DANN (Domain-Adversarial Neural Network 领域对抗神经网络)
paper:《Domain-Adversarial Training of Neural Networks》

2.元学习

参考博客:一文入门元学习
代码还没看、只是看了大概介绍。

一、基础知识

1.定义
学会学习,learn to learn
希望模型具有“学会学习”的能力,可以在获取已有“知识”的基础上快速学习新的任务
tips:与transfer learning是不同的
2.图示machine learning和meta learning的区别
20221122【深度学习】学习笔记_第5张图片
3.Meta Learning中希望把这些配置,如网络结构,参数初始化,优化器等由机器自行设计,使网络有更强的学习能力。
注意:区别于AutoML,Transfer Learning,Life Long Learning

二、Meta Learning实施——以MAML(Model-Agnostic Meta-Learning)为例

1.support set和query set设定
(1)数据集来源:Omniglot
(2)进行N-ways K-shot划分:
“如果我们要进行N-ways,K-shot(数据中包含N个字符类别,每个字符有K张图像)的一个图像分类任务。比如20-ways,1-shot分类的意思是说,要做一个20分类,但是每个分类下只有1张图像的任务。我们可以依据Omniglot构建很多N-ways,K-shot任务,这些任务将作为元学习的任务来源。构建的任务分为训练任务(Train Task),测试任务(Test Task)。特别地,每个任务包含自己的训练数据、测试数据,在元学习里,分别称为Support Set和Query Set。”
2.训练过程
见原文中的MAML算法流程。
tips:train task和test task都有support set和query set。train task的support set和query set都用于meta网络的训练过程。test task的support set用于对meta网络的参数进行fine-tuning,query set用于评估元学习后meta网络的效果。
3.在MAML中,meta网络与子任务的网络结构必须完全相同

三、Reptile

简单带过了,主要是与MAML的区别。在Reptile中:
训练任务的网络可以更新多次
reptile不再像MAML一样计算梯度(因此带来了工程性能的提升),而是直接用一个参数 乘以meta网络与训练任务的网络参数的差来更新meta网络参数
从效果上来看,Reptile效果与MAML基本持平

四、小结

从出发点上来看,元学习和model pretraining有点像,即,都是让网络具有一些先验知识。
从训练过程的设计来看,元学习更关注模型的潜力,而model pretraining更注重模型当下在多数情况下的表现,效果孰好孰坏很难直接判定。

3.CV中上游任务、下游任务是什么?

计算机视觉的上游任务和下游任务_Jumbo星的博客-CSDN博客

4.Few-Shot Learning

Few-shot learning(少样本学习)入门 - 知乎 (zhihu.com)
小样本学习(Few-shot Learning)在图像领域的研究现状
Few-shot Learning 小白入门笔记

一、问题定义

1.要解决什么问题?
机器学习模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习
2.Few-shot Learning是meta learning在监督学习领域的应用

二、算法介绍

1.重温N-way K-shot问题:详细内容见原链接相应部分
2.训练包含不同的类别组合,因此model可以学会不同meta-task中的共性部分。例如如何提取重要特征、比较样本相似等,因此面对新的未见过的meta-task,也可以较好地分类
3.meta-testing阶段的输入数据形式与meta-training阶段的输入数据一致,但是会在全新的类别(即训练和测试阶段所用数据的类别不能相同)构建support set和query set
【这里的算法没有过多解释,感觉和meta learning有点像】

三、算法种类

few-shot learning研究领域主要集中在图像领域,大致可分为三类:Mode Based,Metric Based 和 Optimization Based
1.Model Based
有待学习……
2.Metirc Based
有待学习……
3.Optimization Based
有待学习……

四、Meta Learning

元学习的分类标准有很多,为解决over-fitting,有常见以下3种方法:
1.学习微调(learning to Fine-Tune)
2.基于RNN的记忆(RNN memory based)
3.度量学习(metric learning)
以上3种方法日后需要深入学习……

五、经典的Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks论文解读

后续先看paper在看这部分讲解。

6.零次学习 Zero-Shot Learning

参考链接:零次学习(Zero-Shot Learning)入门

一、基本概念

1.举个:
动物园中根据马、老虎、熊猫各自的特征➕目标描述(轮廓形状+条纹+黑白色),去判断哪个动物是斑马。
利用过去的知识(马老虎熊猫的特征➕斑马的描述),推理出新对象的具体形态。
ZSL就是希望学习到这个推理过程,使计算机具有辨识新事物的能力。
2.Zero-Shot:0次学习,即对于要分类的类别对象,一次也不学习。
3.模型需要知道的信息
以上面动物园例子来看,需要的信息有马的样本、老虎的样本、熊猫的样本和样本的标签,以及关于前三种动物和斑马的描述。
20221122【深度学习】学习笔记_第6张图片20221122【深度学习】学习笔记_第7张图片
4.一句话总结下什么是ZSL
利用训练集数据训练模型,使得模型能够对测试集的对象进行分类,但是训练集类别和测试集类别之间没有交集;期间需要借助类别的描述,来建立训练集和测试集之间的联系,从而使得模型有效。
训练集和测试集之间需要有密切的联系,不能毫不相关哦。
在这里插入图片描述

2.算法介绍

1.semantic space和visual feature space20221122【深度学习】学习笔记_第8张图片2.ridge regression 岭回归:均方误差加范数约束
20221122【深度学习】学习笔记_第9张图片
注释:为了建立语义空间和特征空间的联系,所以要将X投影到语义空间中去。

3.ZSL中存在的问题、以及相应的解决方法

1.domain shift problem 领域漂移问题
举个:猪和马都有尾巴,可是形状完全不一样啊,视觉特征相差很远。
最流行的做法是将映射到语义空间中的样本,再重建回去,这样学习到的映射就能够得到保留更多的信息。因此在ridge regression基础上,将目标函数更改为如下

在这里插入图片描述
在AwA上进行测试,可以得到83.2%的准确率,比简单的岭回归(1)提高了24.1%。自编码器的这个结构目前在ZSL方法中非常流行,稍后我们还会提到。

2.hubness problem 枢纽点问题
	“这其实是高维空间中固有的问题:在高维空间中,某些点会成为大多数点的最近邻点。这听上去有些反直观,细节方面可以参考[3]。由于ZSL在计算最终的正确率时,使用的是***K-NN***,所以会受到hubness problem的影响,并且[4]中,证明了***基于岭回归的方法会加重hubness problem问题。”
	主要有2种解决方法:
	(1)如果模型建立方式是岭回归,则*改为语义空间到特征空间的映射*。目标函数如下

在这里插入图片描述
(2)“可以使用生成模型,比如自编码器、GAN等,生成测试集的样本,这样就变成了一个传统的监督分类问题,不存在K-NN的操作,所以不存在hubness problem的影响。”

3.semantic gap 语义间隔
	“样本的特征往往是视觉特征,比如用深度网络提取到的特征,而语义表示却是非视觉的,这直接反应到数据上其实就是:样本在特征空间中所构成的流型与语义空间中类别构成的流型是不一致的。”
	解决方法:“语义间隔问题的本质是二者的流形结构不一致,因此,解决此问题的着手点就在于将两者的流形调整到一致,再学习两者之间的映射[8]。最简单的方法自然是将类别的语义表示调整到样本的流型上,即用类别语义表示的K近邻样本点,重新表示类别语义即可。”

4.有关ZSL的一些其他概念

  • transductive setting直推式学习
  • generalized ZSL泛化的ZSL

5.一些推荐的paper

7.后续需要看的

  • 记忆网络memory network。
  • 强化学习。
  • 自己还是不太懂元学习和few-shot learning的区别,感觉好像啊,再看看。
  • 岭回归
  • KNN是啥?

你可能感兴趣的:(小白学习之路,深度学习,学习,人工智能)