小样本学习(Few-Shot Learning)训练参数意义

一、常规参数

1.1 epoch

       是指所有的训练数据都要跑一遍。假设有6400个样本,在训练过程中,这6400个样本都跑完了才算一个epoch。一般实验需要训练很多个epoch,直到LOSS稳定后才停止。

1.2 batch_size

        中文名称是批大小,之前的6400个样本,如果送一个样本进去,就更新一次网络的权重,也就是在线学习。与之对应的,我们可以把一个epoch的数据,分批送进网络,可以加快训练时间。每次送多少进去,就是batch_size,假设把6400个样本,分成50次送进去,那么每一次就要送128个样本进去,即batch_size=128。

1.3 iteration

        把一个epoch的所有数据分成了很多批,批数就是iteration,按上面的假设,iteration=50,每经过一个iteration,参数更新一次,可以理解为batch的个数。

        样本总数=batch_size * iteration

二、小样本训练参数

2.1 episode

        (相当于传统训练中的batch)小样本学习在训练时,会分成很多次训练,每一次都要从所有类中随机选择一些类别来train(不放回抽样)。一般一个epoch含有多个episode,一个episode就是一次选择support set和query set类别的过程,即用选择的某几个类训练一次模型,下一个episode,再选择其他几个类训练模型。episode内部由两部分构成:support set和query set。

2.1.1 support set

        在构建episode时候,每个episode都会从全量数据中随机选择一些类别,比如C个类别;选定C个类别后,再具体在每个类别中随机选择K个样本,这便构成了support set,这样总共包含C * K个样本。一般而言模型会在这个上面进行一次训练。这样构造出来的任务便是C-way K-shot。

2.1.2 query set

        和support set类似,会在剩下的数据集样本中选择D个类(注意这里的类别是从对应的spport set类别选择,D≤C)采样一些样本作为query set,一般而言,模型在support set进行一次训练后,会在query set上求得loss。

2.2 task

        一个episode包含一个support set和一个query set,一个episode对应的便是让模型在support set上进行学习后能够在query set上有比较好的预测表现。因此一个episode便对应为一个task。

2.3 meta trainig set

        通常而言,根据训练数据的规模大小,可以构建出来多个训练的episode,这些episode便可以称为meta-training set。

2.4 meta test set

        因为在meta training set的若干个task(也就是若干个episode)上已经训练好了一个模型,那么希望模型在一些新的task上也能有比较好的表现。因此,meta test set在数据构成上和meta training set完全一致,也包含了support set和query set,基本思想就是希望模型能够基于新任务下的support set,迅速抓住问题的本质,从而能够快速在meta test set中的query set上取得比较好的效果。

三、总结

        总体而言,这种类型的meta-learning,其基本单元是一个task,或者是一个episode,和普通的训练方法需要进行区分。下图便是一个5-way 1-shot的图片分类问题,每一行便是一个task,也是训练的episode,在support set中有5个类,每个类有1个样本,在test set有两个类(test set的类别须是对应的training set的子集),每个类一个样本。在测试模型训练效果的时候,便是希望模型能够在meta test set中的task上也能够取得比较好的效果。

扫描二维码关注公众号,回复: 16810190 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_31112205/article/details/128617043