few-shot 微调网络

​​​​​​https://www.youtube.com/watch?v=3zSYMuDm6RU&list=PLvOO0btloRnuGl5OJM37a8c6auebn-​​​​​​rH2&index=3

  • 预训练 + 微调

在大规模数据集上预训练,在support set上微调。方法简单,准确率高。

  1. 预备知识

1.1 cosine similarity

投影的长度,在-1 和1 之间。

如果长度不同,则就进行归一化。

    1. softmax function

可以将一个向量,映射为一个概率分布

    1. softmax classifier

是一个全连接层 + softmax函数

    1. 概述

大部分的few-shot都是类似的想法,都是用一个大数据集来预训练一个神经网络,用来从图像中提取特征。做few-shot预测的时候,需要用到这个网络。

我们将query和support set中的图像,都映射为特征向量。

这样就可以比较,query和support,在特征空间上的相似度。

比例,计算两两之间的cosine similarity,最后选中相似度高的,作为query的分类结果。

  1. 预训练

用什么方法训练该网络,都可以。但是神经网络的结构和训练方法,会对结果产生影响。

对特征向量最平均,得到表征松鼠的特征向量,然后是三个特征向量做归一化,得到μ1,μ3.他们的二范数,全部为1.

μ1,μ2,μ3就是对这三个类别的表征。

分类的时候,需要拿query的特征向量,分别和μ1,μ2,μ3做对比,

有了从support中各个类别的特征向量,可以对query进行分类。

此处p为三元素向量,分别表示三个类别的概率。

  1. Fine-tuning

Fine-turning,可以大幅提高few-shot的准确率。

假设support 有三个类别,则W为三行;p的维度也是3.

Support 中有几个或者几十个标注的样本,每个样本,都对应一个cross entropy。

用support中所有的样本和标签来学习分类器。

Support 很小,因此要加正则化。防止过拟合。

  1. 训练技巧

4.1 初始化

4.2正则化

可以用entropy来衡量概率p的信息量。

4.3  cosine similarity + softmax classifier

区别:在内积之前,先做归一化。

  1. 总结

猜你喜欢

转载自blog.csdn.net/gaotihong/article/details/124987488
今日推荐