赞
踩
用 pretraining (预训练) + Fine Tuning解决小样本学习。虽然这类方法很简单,但是准确率与最好的方法相当。
在大规模数据上预训练模型,在小规模数据Support Set上做Fine Tuning。
计算两个向量的相似度
1.x和w向量长度相等都为1,cosθ等于x和w的内积,Cosine Similarity=cosθ=x与w的内积,表示x投影到w上的截距,范围是-1到1。
2.如果x和w的向量长度不为1,则需要归一化把长度变成1,计算Cosine Similarity的公式如下如下:
我们把query和Support Set中的图片都映射成特征向量,就可以比较二者在特征空间的相似度,计算两两的cosine similarity,选择相似度最高的类别作为分类结果。
是一个激活函数,把一个向量映射成一个概率分布
输入k维向量Φ,将Φ中每一个元素做指数变换得到k个大于0的数,然后对结果做归一化使k个数相加等于1,把得到的k个数记为向量p,即为函数的输出
Softmax函数会让大的值变大,让小的值变小。相比max更温和。
分类器的输入是特征向量x,把x乘到参数矩阵W上再加上向量b,得到的向量做softmax变换得到输出向量p,p中最大的值即为分类结果。
矩阵w和向量b是这一层的参数,他们可以从训练数据中学习。w有k行,代表类别的数量为k,每行对应一个类别。
神经网络有很多卷积层和pooling层以及一个flatten层,也可以有全连接层。神经网络f的输入是一张图片x,输出是提取的特征向量f(x)。
可以用不同的方法预训练神经网络,比如传统的监督学习,训练好之后把全连接层都可以去掉了,也可以用孪生网络。 神经网络的结构和训练方法都会对最终结果产生影响。
下图是一个3-way 2-shot Support Set。首先将Support Set中的图片输入神经网络,输出特征向量,对同一类别的两个特征向量取平均得到一个特征向量,将平均后的特征向量再进行归一化,方便接下来的softmax分类。
做预测时,将query图片提取特征向量并归一化后得到特征向量,设M为u1,u2,u3向量构成的矩阵。
令W=M,b=0,向量p中最大的值即为分类结果。
对神经网络完成预训练后,再做Fine-Tuning可以进一步提高预测准确率。
Fine-Tuning就是在support set上学习W和b,使损失函数的总和最小。yj是真实标签,pj是预测标签。
因为Support set比较小,为防止过拟合加上Regularization
1.初始化W和b
令W=M,b=0
2.Entropy Regularization
Entropy Regularization越小越好:
3.cosine similarity + softmax classifier
用cosine similarity替换内积,也就是内积做归一化,能够进一步提高准确率
替换后的softmax函数如下:
总结:
Step2即Fine-Tuning能大大提高预测准确率!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。