Reptile
优化算法:
U
τ
k
U_{\tau}^{k}
Uτk is the operator that updates
φ
φ
φ
τ
\tau
τ times using data sampled from
τ
τ
τ
算例
- The task τ = ( a , b ) \tau = (a,b) τ=(a,b) is defined by the amplitude a and phase ϕ \phi ϕ of a sine wave function f τ ( x ) = sin ( a x ) + cos ( b x ) + c ‘ f_{\tau}(x) = \sin(ax) +\cos(bx)+ c` fτ(x)=sin(ax)+cos(bx)+c‘. The task distribution by sampling a , b , c ∼ U ( [ 0 , r a n g e ] ) a,b,c ∼ U ([0,range]) a,b,c∼U([0,range]).
- Sample p p p points x 1 , x 2 , . . . , x p ∼ U ( [ − 5 , 5 ] ) x_1,x_2,...,x_p ∼ U([−5,5]) x1,x2,...,xp∼U([−5,5])
- Compute learner f f f
默认参数 | 学习率 | 优化器 | task | updata_step | 预训练样本数 | 网络结构 |
---|---|---|---|---|---|---|
- | 0.001 | adam | 1000 | 20 | 1000 | [1,64,64,1] |
测试函数
3.604427895224856 s i n ( x + 3.448296944257913 ) 3.604427895224856sin(x+3.448296944257913) 3.604427895224856sin(x+3.448296944257913)
实验1:使用Reptile方法与无Reptile预处理对比
- 相比于不预训练的情况,预训练了网络在少量样本点训练下能得到较好结果
实验2:不同task预训练
- 在不更改采样点个数情况下,task number越多,预训练效果大多情况是越好的,但是到随着预训练task增加,增加到一定值后,预训练效果改变不明显,需要调整预训练采样点个数,预训练梯度更新次数(k)来调整