小样本学习(1)--概论

目录

一、概述

二、小样本学习的数据集

1、Omniglot

2、MiniimageNet

三、孪生网络

四、三元组损失函数

五、余弦相似度

六、Some Tricks

1、余弦相似度与Softmax分类器结合

2、熵正则化

3、初始化权重 


一、概述

        小样本学习用于处理训练数据集中样本数量少的情况,一般来说,小样本学习流程是这样的,从一个多种类少量样本的巨大数据集中训练一个Pretrained网络模型(这一步不需要做),之后可以基于预训练模型根据微调、元学习或度量方法进行fine-tune,做到对查询集的一个分类和识别。

小样本学习的LibFewShot库:https://github.com/RL-VIG/LibFewShot

        小样本学习与传统神经网络的区别:

        假设训练猫狗分类问题,传统神经网络会从大量带标签的猫狗训练集中进行充分训练,得到较好的模型,然后测试集也是猫狗数据集,只不过是训练集中没有的图片,模型将对测试集进行分类。

        小样本学习首先在一个较大的较多类别,每个类别较少数据的数据集(即辅助集,不包含猫狗类别)中进行预训练,通过迁移学习对预训练模型进行微调,微调时会利用一个Support set(支持集),支持集包含猫狗的图片和标签,根据支持集的类别共K类和每个类别的图片数量n张,又叫做K-way n-shot小样本问题,通常K取5或10,n取1或5。通过在支持集进行微调,达到少量样本完成对查询集(测试集,猫狗测试集)的分类。

        小样本学习,不需要传统神经网络的过高层数,过多的融合来寻找分类的特征从而知道如何分类,而是通过有限的支持集进行相似度匹配,来达到分类的效果。

        小样本学习例子:

        下图的Query:兔子就是测试集,而辅助集在训练时没有见过兔子类,那么他是如何分类的呢?

        通过依赖支持集Support Set对于预训练模型进行微调,来获得水獭与测试图片相似度最高的标签。

        另外 K-way n-shot的举例如下:

         K-way n-shot与测试集的Accuracy的关系:

(1)支持集类别数越多,测试集Accuracy越低,因为测试图片占测试种类的比例下降了。

(2)支持集图片越多,测试集Accuracy越高,这个很好理解,图片越多学的越好。

二、小样本学习的数据集

1、Omniglot

        Omniglot是全语言文字数据集,包含50种语言的字母表,共计1623个类,每个字母由20个不同的人书写,也就是每个字母仅有20张图片,每个图片的像素为105*105。Omniglot数据集分为训练集和测试集,训练集有30个字母表,964个字符,测试集有20个字母表,659个字符,训练集和测试集类别不同,也就是说预训练也是进行的小样本学习,Omniglot数据集一般用作小样本训练。

2、MiniimageNet

        MiniimageNet是一个从ImageNet数据集中抽取的数据集,一共100个类别,每个类别600张图片,共计6万张图片。MiniimageNet数据集的训练集64个类别,验证集16个类别,测试集20个类别。Miniimagenet用于针对各种生物、物品的小样本学习数据集。

三、孪生网络

        孪生网络,利用相同样本和不同样本之间的区别,训练出一个能够分类的神经网络。

        首先将训练集分成正负样本,且样本数量相等的三元组形式,类别相同的图片为正样本,类别不同的图片(首先选取一张图片a,再找从不属于a的图片中随机取样b图片)为负样本。

        孪生网络前向传播输入两张图片,经过映射得到两个列向量,向量作差得到z层,经过全连接网络和激活函数,与所给target计算损失函数,并进行反向传播修改权重。

        注意这个网络只是简单的一个解释,内部的网络已经更新换代,但大体依旧是输入两张图片与一个Target训练该模型。如下图这种就是图片映射的列向量进入网络层,而没有直接做差。

        测试模型时,根据测试集与支持集的不同类别计算相似度,相似度最大的记为本次测试的类别。一般来说孪生网络的相似度计算使用余弦相似度作为度量,余弦相似度可以衡量两个向量之间的夹角余弦值,来反映两者的相似程度。

四、三元组损失函数

        三元组损失(Triplet Loss),是基于度量的小样本学习中的损失函数方法。首先从训练集中随机选择一张图片作为anchor,如下图中第一张老虎图片,再根据anchor的类别寻找该类的随机一张图片作为Positive,最后从trainset除去老虎类,随机抽取一张图片记为Negative。

        根据三张图片计算各自的特征向量f(x),正样本和负样本去计算与anchor的2-范数,也就是几何距离,记作d+和d-,d+越小越好,正样本越接近anchor,d-越大越好,负样本越远离anchor。

        如果d+=d-那么相当于随机模型,所以训练好的模型必须满足d^-\geqslant d^++\alpha,我们定义三元组损失为   Loss(x^a,x^+,x^-)=max{0,d^++\alpha-d^-}

        根据三元组损失计算预测图片与支持集中图片的距离dist,通过比较距离中最短的一个,就可以确定预测图片所属的类别。 

五、余弦相似度

        余弦相似度假设两个向量的范数都为1,那么余弦相似度可以等于

cos(A,B)=cos\theta =\frac{A \cdot B}{||A||\times ||B||}=A \cdot B=A^TB 

        如果两个向量的范数不为1,那么需要做归一化处理,或者直接计算余弦相似度:

cos(A,B)=cos\theta =\frac{A \cdot B}{||A||\times ||B||}=\frac{A^T B}{||A||\times ||B||}

        在小样本学习中,对于已经训练好的神经网络f,输入3-Way 2-Shot的支持集(松鼠、斗牛犬、海鹦)提取特征向量,由于每个类别有两张图片,所以对其取均值,再进行归一化(Softmax层执行)输出0~1的向量组。

        下面进行测试,输入一张测试图片(松鼠),经过神经网络后得到特征向量,经过Softmax层进行归一化得到测试图片对应的归一化向量。计算q与μ1,μ2,μ3之间的余弦相似度,余弦相似度最高的为输出分类类别。

         最终的概率分布为:p=Softmax(M^T q)

六、Some Tricks

1、余弦相似度与Softmax分类器结合

        一般的Softmax分类器,是对于神经网络输出的特征向量进行的Softmax分类获得概率分布,而在小样本学习中,由于样本量较少而导致在训练中很难捕获的相似性,通过先进行余弦相似度计算,再求解Softmax层,可以增加鲁棒性,并且通过归一化操作也可以降低噪声对特征向量的影响。

2、熵正则化

         熵正则化(Entropy regularization)是防止小样本学习中的过拟合问题,对于损失函数加以正则化来优化网络结构。

        对于Softmax层输出的概率分布,如果概率分布能呈现很明显的趋向性,也就是具有很强的混乱性,那么他的分类效果很好,如果概率分布趋向均衡分布,则混乱度低,分类效果差。

        熵正则化原理:根据上面解释,如果信息熵绝对值越大(\sum_{i=1}^{k} -p_ilogp_i),我们加正则化的损失函数等于loss=originloss+regularization,可以保证对于高混乱度的分类效果具有趋向性。

3、初始化权重 

        微调时的初始化权重方面,因为微调一般训练的就是Softmax层,对于Softmax层一般设置权重w为多个类别的特征向量的均值,b设置为0,一般可以达到很好的训练效果。

相关视频:Siamese Network (孪生网络) (2/3)_哔哩哔哩_bilibili

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小样本学习是指在具有非常有限的样本数的情况下进行学习和分类任务的一种机器学习方法。在传统的机器学习算法中,通常需要大量的样本来训练模型,以便对新的样本进行准确的分类。然而,在现实生活中,获得大量样本是非常昂贵和困难的,因此需要一种能够有效利用有限样本的学习方法。 小样本学习的主要挑战是如何在缺少大量标记样本的情况下进行模型训练和泛化。为了解决这个问题,研究人员提出了许多不同的方法。其中一种主流的方法是使用元学习(meta-learning),它通过从一系列相关任务中进行学习,来提高在新任务上的性能。这种方法可以将已有的知识迁移到新任务上,而无需大量样本。 另一种常用的方法是基于生成模型的方法,它通过生成新的样本来扩充训练集。这些生成的样本可以从现有样本中学习到数据的分布规律,从而提高模型的泛化能力。 此外,还有一些其他的小样本学习方法,如基于度量学习的方法、基于关系学习的方法等。这些方法都试图通过学习样本之间的相似性或关系来提高模型的学习能力。 总而言之,小样本学习是一种在样本稀缺的情况下进行机器学习和分类任务的方法。通过使用元学习、生成模型、度量学习以及关系学习等方法,小样本学习可以有效地利用有限的样本来提高模型的性能和泛化能力,为实际应用中的样本稀缺问题提供了解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值