Learning to Learn without Gradient Descent by Gradient Descent論文解析(黑箱優化問題)

本篇論文屬於元學習和黑箱函數優化的交叉領域,其中將元學習的思想應用於黑箱函數優化。這篇論文發表於2017年。
對於黑箱函數優化方法我瞭解的不太多,因此本文的不可避免的會有一些理解不到位的地方。

想要了解貝葉斯優化和高斯過程的,可以看我翻譯的兩篇文章:

1 Introduction

發展心理學表明嬰兒具有多個針對核心知識的分散的系統,通過這些系統,他們可以更快地學習新知識和技能。目前最有說服力的觀點認爲,是進化過程導致了快速學習能力的出現。

因此,很多學者致力於打造能夠快速學習的模型。在本文的工作中,元學習的目標是爲全局黑箱優化(global black-box optimization)打造一個算法。特別地,這個算法設法解決爲一個未知的損失函數ff尋找全局最小值的問題。
x=argminxXf(x) x* = argmin_{x \in X}f(x)
對學習器來說,這個黑箱函數ff在測試階段是不可知的,但是可以使用一個query點xx來進行評估,從而輸出一個確定的或隨機的值yRy \in R, 使得 f(x)=E[yf(x)]f(x)=E[y|f(x)]。換句話說,我們只能通過無偏的有噪點觀測yy(逐點觀測)來觀測函數ff

貝葉斯優化通常被用於解決黑箱函數的全局優化問題,本文將用Meta-Learning的方法來解決這個問題,並用來與貝葉斯優化進行對比。

2 Learning Black-box Optimization

黑箱優化算法的一般步驟可以總結如下:

  1. 給定一個當前狀態hth_t,提出一個query點xtx_t
  2. 觀察到輸出yty_t
  3. 更新任何可更新的參數,從而得到新狀態ht+1h_{t+1}

在這工作中將使用RNN來定義一個更新參數的方法:
ht,xt=RNNθ(ht1,xt1,yt1), h_t, x_t = RNN_\theta(h_{t-1},x_{t-1},y_{t-1}),

ytp(yxt). y_t \sim p(y|x_t).
模型內部結構如圖所示。
在這裏插入圖片描述

2.1 Loss Function

本文用到的損失函數是Lsum(θ)=Ef,y1,T1[t=1Tf(xt)]L_{sum}(\theta)=E_{f, y_1, T-1}[\sum_{t=1}^Tf(x_t)],通過使用這個損失函數,我們可以在訓練優化器時考慮每個時間步上的信息。實際上對Lsum(θ)L_{sum}(\theta)進行優化是很困難的。如Figure 1所示, 在訓練優化器時,將使用RNN的參數θ\theta來計算Loss函數的倒數,然後使用SGD進行優化。

此外本文還對比了另外兩種損失函數,
LOI(θ)=Ef,y1,T1[t=1TEI(xty1:t1)] L_{OI}(\theta)=-E_{f, y_1, T-1}[\sum_{t=1}^TEI(x_t|y_{1:t-1})]

LOI(θ)=Ef,y1,T1[t=1Tmin{f(xt)mini<t(f(xi)),0}] L_{OI}(\theta)=E_{f, y_1, T-1}[\sum_{t=1}^T\min\{f(x_t) - \min_{i<t}(f(x_i)), 0 \}]

其中,EI(·)是給定從1到t-1的觀測值的情況下,query點xtx_t的預期後驗改進。後者是觀測改進(Observed Improvement, OI)。

2.2 Training Function Distribution

本文沒有對訓練函數的分佈做任何假設,本文的優化算法適用於通用目的的黑箱優化。因此,本文將使用高斯過程作爲訓練函數的分佈。

2.3 Parallel Function Evaluation

並行函數評估是貝葉斯優化中的一個通用技術,常備用於費時但是比較容易模擬的函數。比如,在尋找深度網絡的超參數時,我們可以很方便的訓練出多個並行的深度神經網絡。
在這裏插入圖片描述
不妨設我們有N個workers,同時推選待評估超參數點的過程比評估超參數要快得多。本文還爲我們的RNN優化器的輸入增加了一個二元變量oto_t
ht,xt=RNNθ(ht1,ot1,x~,y~t1) h_t, x_t = RNN_\theta(h_{t-1},o_{t-1}, \tilde{x}, \tilde{y}_{t-1})
對前t步中,ot1=0o_{t-1}=0,同時任意地將x~t1,y~t1\tilde{x}_{t-1},\tilde{y}_{t-1}設置爲0。只要一個query點被評估好,這個query點和它的評估結果將會通過將ot1=1o_{t-1}=1的形式被反饋給網絡,從而得到一個新的query點。Figure 2 展示了這個算法的單個循環過程。

一個訓練的很好的優化器必須學會何時生成初始的query點,以及何時生成基於過去的觀測結果生成的query點。需要注意的是,考慮到優化器的批處理性質,query點xt+1x_{t+1}有可能比xtx_{t}先評估好。

3 Experiments

本文用LSTM和differentiable neural computers (DNCs)來做實驗,因爲DNC的效果比LSTM要更好一點,所以本文所有的圖表中主要展示DNC模型的結果。本文將元學習的實驗結果與當前最先進的貝葉斯優化工具包進行了對比,包括:Spearmint, Hyperopt(TPE), and SMAC。

3.1 Performance on Functions Sampled from the Training Distribution

Figure 3中展示了最佳觀測函數值與搜索步驟t的關係,其中RNN取的是在10000個採樣的函數中的均值,其他方法取的是100個採樣出的函數中的均值。因爲RNN優化器的速度很快,所以本文做了10000次。從圖中可以看出當函數的維度超過6時,RNN的變現開始明顯優於其他優化方法。

Figure 4 展示了不同黑箱優化器在一維的情形下query點的軌跡。
在這裏插入圖片描述
在這裏插入圖片描述

3.2 Transfer to Global Optimization Benchmarks

本實驗在四個標準benchmark上進行。實驗結果如圖5所示。
在這裏插入圖片描述

3.3 Transfer to a Simple Control Problem

本文還考慮將此方法用於簡單的強化學習任務上。在此問題中,他們模擬了一個物理系統,該物理系統由許多排斥器組成,這些排斥器影響粒子通過2D空間的下落。目標是通過狀態空間的高獎勵區域來引導粒子的路徑,並使累積的折扣獎勵最大化。此問題中的四維狀態空間由粒子的位置和速度組成。可以通過設置排斥器來控制顆粒的路徑,該排斥器以與顆粒到顆粒的距離成反比的力將顆粒直接推開。在每個時間步,使用簡單的確定性物理正向模擬更新粒子的位置和速度。該問題的控制策略包括每個推斥極的3個學習參數:2d位置和推斥極的強度。

Figure 6是實驗結果。
在這裏插入圖片描述

3.4 Transfer to Machine Learning Hyper-parameter Tuning

這組實驗考慮的是機器學習中的調參問題。這組實驗使用了HPOLib包中的三個標準benchmarks:SVM,online LDA,logistic regression,同時還考慮了在CIFAR-100數據集上訓練的殘差網絡。實驗結果如Figure 7所示。
在這裏插入圖片描述

4 Conclusions

從實驗結果來看,RNN優化器的性能可以匹配上高度工程化的貝葉斯優化方案,包括:Spearmint, SMAC 和 TPE。同時這個RNN優化器適用於各類黑箱函數,比如:GP bandits, 控制, 全局優化benckmarks,以及超參數微調。

同時實驗結果表明,RNN優化器比貝葉斯優化方案要快得多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章