元学习目标
两个词来区分元学习与它之前的深度学习的区别:AI(Artificial Intelligence)和AGI(Artificial general Intelligence) 。 元学习致力于打造一个具有一定通用性(能够适用于不同场景、不同问题、甚至不同领域)的网络模型,而之前的AI是将自己的网络模型做到在某一领域具有更高精度、更好泛化性和鲁棒性的网络。
元学习思路
第一步:给定一个Network Structure,在该给定的Network Structure下定义一个初始参数向量fai0;
第二步:预备好N个训练任务(trainning task),每个训练任务都各有一组training data和一组test data。不同组的数据类型最好差异化,使得数据本身多样,从而让训练的模型能够具有更好泛化性。
第三步:在第一组trainning task下做一次迭代,得到一个小loss,并用loss计算它的梯度(多迭代一次,计算第二次的梯度,去更新fai0->fai1);第二组trainning task下做一次迭代,得到一个小loss,并用loss计算第二组的梯度(多迭代一次,计算第二次的梯度,去更新fai1->fai2);…依次循环完所有的N个trainning task。 最后得到的网络模型未必是单个种类上最优的参数,但是确实最具有潜力的,后面通过test data再训练后,能够让它在单个领域内,能够达到更好的精度,接近最优解。
第四步:要把上面训练出来的网络用于具体某一领域问题的时候,需要先用测试任务进行二次初始化。设定N个测试任务(testing task),每一组测试任务里面都有各有一组training data和一组test data,进行网络二次训练,然后使得网络适用于当前的问题。
第五步:验证任务,相当于AI里面的测试过程,验证该网络的精度、时效性和鲁棒性等各项性能。