meta learning在 少量数据集上 可以达到很好的效果,其目标主要是 通过 对traindata的探索,从而制定出适合的学习策略。简而言之,meta learning要做的事就是 学习如何去学习。
meta learning将传统GANs的训练过程由:设计模型–>寻找数据–>验证模型(用数据去匹配模型),更改为了:寻找数据–>设计模型–>验证模型(用模型去匹配数据)。
meta learning 与 人工设计模型 流程差异见下图:
meta learning如下:
人工设计如下:
meta learning中主要element介绍如下:
meta learning的训练集为:train_data + f_instance
meta learning的目标函数为F,其目标为:F(train_data + f_instances) -> f*_best
meta learning的损失函数为:由f_instance得到的模型在 不同任务的测试数据集上 的 损失之和,即:L = sum(validationloss_task1, validationloss_task2, validationloss_task3, …, validationloss_taskn);
下面总结一下 【Meta Learning学习笔记】Meta Learning详解 的核心内容:
利用meta learning去 initialize parameter
meta learning训练集:
dataset:train_data + validation_data
f_set:series of f which is used to initialize parameter
meta learing函数F: F(dataset + f_set) -> f*
meta learning损失函数L:通过 f_instance 初始化parameter p以后,在各个task上训练一轮(即进行一次梯度下降)后,得到更新后的parameter p_updated,然后用p_updated_model 计算其 在 各个task validation_data上的损失loss_task_i。对于一个f_instance,其在meta learning上的损失L = sum(loss_task_1, loss_task_2, …, loss_task_n);
F的目标就是要选择一个 f_instance_best,使其损失函数L最小;
利用meta learning去 create the way of updating parameter
在设计好 parameter 的更新计算图以后,用RNN作为meta learning的F函数,来 获得一个最优的f_instance_best,使其拥有最佳的parameter更新策略。
博文中给出的parameter更新策略(分别给出了3种 optimizer 下的parameter updating strategy):
以sgd说明every icon代表的含义:
左下角blue circle:操作数1(operand1)
右下角blue circle:操作数2(operand2)
左中 yellow rectangle:操作运算1(unary ops1)
右中 yellow rectangle:操作运算2(unary ops2)
最上 purple rectangle:binary操作(binary ops)
meta learning中的F函数,以及 参数更新策略 各个step在RNN中的输入顺序:
值得一提的是,因为RNN第一个output是后续的input,所以,参数更新策略第一步 设计 非常重要,他直接影响后续策略的设计。
通过F获得的f_instance_best:
利用meta learning去 create active function
创造active function的方法和“更新参数策略设计” 大同小异,均是先给出一个 active function 计算图,然后,在利用F去找到一个 最好的f_instance,拥有最好的active function设计策略。
下边直接给出 active function计算图 和 F架构及active function设计各step在F中的输入顺序:
active function计算图:
F 及 策略各step输入顺序:
f_instance_best:
利用meta learning去 build the structure of model
以CNN为例,首先定义好CNN层数,各层的filter width, filter height, stride width, stride height,…,然后,将这些 “策略step” 输入 meta learning F中,获得一个最好的 f_instance,使其拥有最优的CNN架构。
F 以及 各个策略step 输入顺序:
meta learning未来发展趋势
1)learn to learn to learn
meta learning主要是 设计模型,使其能够学习 如何去学习,而 learn to learn to learn则是设计模型,使其能够学习如何去学习meta learning F,更进一步的,我们可以有 learn to N learn。
2)F函数黑盒化
上文讲述的meta learning ,f_instance已经给出了特定的实例(即:具体的一个模式),未来的发展目标,是将 F+f 黑盒化,使模型能够自动学习出一个 f_instance,包括其 structure mode。这个目标,可以借鉴 “强化学习”
的思路,来进行。