小样本学习暂时可以理解为无监督或者半监督学习下面是引用一些其他人的话,不是很官方但是也基本可以解释什么是小样本学习。
人类非常擅长通过极少量的样本識别一个新物体比如小孩子只需要书中的一些图片就可以认识什么是“斑马”,什么是“犀牛”在人类的快速学习能力的启发下,研究人员希望机器学习模型在学习了一定类别的大量数据后对于新的类别,只需要少量的样本就能快速学习这就是 Few-shot Learning 要解决的问题。
阶段面对全新的类别,不需要变动已有的模型就可以完成分类。
形式化来说few-shot 的训练集中包含了很多的类别,每个类别中有多个样本在訓练阶段,会在训练集中随机抽取 C 个类别每个类别 K 个样本(总共 CK 个数据),构建一个 meta-task作为模型的支撑集(support set)输入;再从这 C 个类中剩余嘚数据中抽取一批(batch)样本作为模型的预测对象(batch set)。即要求模型从 C*K 个数据中学会如何区分这 C 个类别这样的任务被称为 C-way K-shot 问题。
所以实驗的中后期可以参考无监督学习中的一些方法来完成极客毕设题目,这里有几个不错的回答和文章可以参考
目前的任务还是把基本的这些代码跑通,后面再根据小样本学习做一下改进学习pytorch是一个重要的目标。
今天对数据进行了一些处理之前的理解真的很成问题,之前還想着如何把数据保存在数据库中我可真是一个数据库小王子,放在科研上这么搞就有点累了,不如本地数据库方便所以我把数据基本都按照pickle文件的处理方式存放在了pkl文件中,比如随机选取每个id的一张图片放在了probe剩下的放在了gallery,昨天和学姐的讨论时一般这个gallery数据集是比较大的,和英文的意思也基本相符然后probe是比较小的,所以每个选取了一张也和基本的测试流程一致,之后和学姐讨论一下如果可以后面的数据就先这么处理了。
另外在今天学到不少新知识比如对数组的处理中,pop() remove() 和extend()都是很好用的方法和下面的图一样
上午还学習了pytorch,对里面的一些基本数据类型有了了解总算是把dim,shape和size搞明白了dim为0表示标量,dim为1表示的是普通的向量比如one hot这种形式,dim为2是这样的[[1, 2]]这个tensor实际上就是1*2的一个tensor。
今天还算充实加油!