Few-Shot Learning小样本学习概述

观看王树森老师的课程之后的一些记录,视频地址如下:

ShusenWang的个人空间_哔哩哔哩_BilibiliShusenWang,Educator;ShusenWang的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。Few-Shot Learning小样本学习概述_第1张图片https://space.bilibili.com/1369507485?spm_id_from=333.788.b_765f7570696e666f.1讲解清晰透彻,推荐给大家(#^.^#)

基本概念

小样本学习与传统的监督学习有所不同,其目标不是让机器识别训练集里的图片并泛化到测试集,而是让机器自己学会学习。也就是说需要让机器学会理解事物间的异同,区分不同的事物。比如输入两张图片,不需要让模型识别出来两张图片是什么,而是要区分出这两张图片是相同的东西还是不同的东西。

Few-Shot Learning小样本学习概述_第2张图片

Few-Shot Learning小样本学习概述_第3张图片

 (训练集中没有松鼠这个类别,训练后模型并不知道识别出来的东西是松鼠,但是可以判断这两张图片很可能是相同的东西)

 Few-Shot Learning小样本学习概述_第4张图片

 support set是meta learning中的概念,将这些带标签的图片称作support set。

training set和support set的区别:training set的规模很大,每一个类别下面都有很多图片。由于训练集足够大,所以可以用来训练一个深度神经网络;相比之下,support set很小,每一个类别下面只有一张或者几张图片,不足以训练一个大的神经网络,因此support set只能在预测时提供一些额外信息。

用足够大的数据集来训练一个大模型,训练目的不是用来识别出目标类别,而是要知道事物间的异同。现在靠support set提供的少量信息,模型就可以判断出query图片是水獭,尽管训练集里没有水獭这个类别。

Few-shot Learning and Meta Learning

· 小样本学习可以看做是元学习的一种 

· 元学习的目标是“学会学习”

Few-Shot Learning小样本学习概述_第5张图片

 Supervised Learning vs. Few-shot Learning

监督学习: 

Few-Shot Learning小样本学习概述_第6张图片

小样本学习:

Few-Shot Learning小样本学习概述_第7张图片

Few-Shot Learning小样本学习概述_第8张图片

k-way  support set 中有k各类别;   n-shot 每个类别有n个样本

Few-Shot Learning小样本学习概述_第9张图片

 通常来说,类别数越多,样本数越少,分类准确度越低

 Few-Shot Learning小样本学习概述_第10张图片

 Few-Shot Learning小样本学习概述_第11张图片

 Idea:Learn a Similarity Function

Few-Shot Learning小样本学习概述_第12张图片

1. 在大数据集上学习一个相似度函数

2.用学习的相似度函数做预测,给一个query图片,与support图片逐一做对比计算相似度,扎弄出相似度最高的作为计算结果

Few-Shot Learning小样本学习概述_第13张图片

 Siamese Network

训练方法1:每次取两个样本,比较它们的相似度

每次取两张图片作为训练样本,标签为0(不同类)或1(同类),孪生网络输出一个介于0~1之间的相似度数值,把标签与预测之间的差别作为损失函数。训练目标是让预测尽量接近标签,这样训练出的网络可以判别两个样本间的相似度。两个图片越相似,神经网络的输出值越接近于1。

Few-Shot Learning小样本学习概述_第14张图片选取数据

 Few-Shot Learning小样本学习概述_第15张图片搭建神经网络

Few-Shot Learning小样本学习概述_第16张图片

(相同类别输出接近1,不同类别输出接近0)将标签与预测的差别作为损失函数

 Few-Shot Learning小样本学习概述_第17张图片

 训练方法2:Triplet Loss

每次选取三张图片作为输入样本,一个锚点(anchor) xa,正样本x+和负样本x-,用神经网络提取特征得到三个特征向量,将锚点与正样本间的距离记做d+,锚点与负样本之间的距离记做d-,训练目标是让d+尽量小,d+尽量大。有了这种神经网络就可以提取特征,比较图片在特征空间上的距离,从而做出小样本分类。

Few-Shot Learning小样本学习概述_第18张图片选取数据

Few-Shot Learning小样本学习概述_第19张图片Few-Shot Learning小样本学习概述_第20张图片

使d+尽量小,d-尽量大(使d-比d+大至少α)

 Few-Shot Learning小样本学习概述_第21张图片

使用神经网络提取特征得到每个类别的特征向量,给一个query图片,比较特征向量之间的距离。

 Few-Shot Learning小样本学习概述_第22张图片

 总结:

①用一个大的数据集来训练孪生网络,让网络知道事物间的异同

②训练结束后,可以用孪生网络做预测,解决小样本问题

③由于query的类别不在训练集中,所以还需要额外的信息来识别图片,也就是support set。将query与support set中的样本做对比,将距离最小或相似度最高的作为分类结果。

Pretraining and Fine Tuninig

在大规模数据集上预训练,在小数据集上微调

Cosine Similarity

Few-Shot Learning小样本学习概述_第23张图片

 Few-Shot Learning小样本学习概述_第24张图片

 softmax 函数

将向量映射成概率分布,让最大的值变大,最小的值变小。

Few-Shot Learning小样本学习概述_第25张图片

 Few-Shot Learning小样本学习概述_第26张图片

 softmax分类器:全连接层+softmax函数

Few-Shot Learning小样本学习概述_第27张图片

 (k是类别数量,d是特征数量)W的每一行对应一个类别

Few-shot Prediction Using Pretrained CNN

Pretraining

Few-Shot Learning小样本学习概述_第28张图片

 搭建一个神经网络用来提取特征,输入是一张图片x,输出是提取的特征向量f(x)

可以用传统的监督学习训练网络,训练完成后去掉全连接层;也可以使用孪生网络。

用训练的神经网络做小样本预测

Few-Shot Learning小样本学习概述_第29张图片

分类时,将query的特征向量分别与μ1μ2μ3做对比

Few-Shot Learning小样本学习概述_第30张图片

 Few-Shot Learning小样本学习概述_第31张图片

 Fine-Tuning

Few-Shot Learning小样本学习概述_第32张图片

Few-Shot Learning小样本学习概述_第33张图片 

 yj是真实标签,pj是分类器做出的预测

 Trick

1.初始化设置 W=M ; b=0

Few-Shot Learning小样本学习概述_第34张图片

2.正则化防止过拟合 Entropy Regularization

Few-Shot Learning小样本学习概述_第35张图片

 3.Cosine Similarity + Softmax Classfier

在求w与q的内积之前做一个归一化,把两个向量的二范数变为1

Few-Shot Learning小样本学习概述_第36张图片

 总结:

Few-Shot Learning小样本学习概述_第37张图片

 Few-Shot Learning小样本学习概述_第38张图片

 

你可能感兴趣的:(学习总结,机器学习,人工智能,小样本学习)