即使在中等規(guī)模的數(shù)據(jù)集上,訓(xùn)練神經(jīng)網(wǎng)絡(luò)也可能很昂貴。根據(jù)配置空間(第 19.1.1.2 節(jié)),超參數(shù)優(yōu)化需要數(shù)十到數(shù)百次函數(shù)評估才能找到性能良好的超參數(shù)配置。正如我們在19.3 節(jié)中看到的 ,我們可以通過利用并行資源顯著加快 HPO 的整體時鐘時間,但這并不會減少所需的總計算量。
在本節(jié)中,我們將展示如何加速超參數(shù)配置的評估。隨機(jī)搜索等方法為每個超參數(shù)評估分配相同數(shù)量的資源(例如,epoch 數(shù)、訓(xùn)練數(shù)據(jù)點)。圖 19.4.1 描繪了一組使用不同超參數(shù)配置訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)曲線。經(jīng)過幾個 epoch 之后,我們已經(jīng)能夠在視覺上區(qū)分性能良好和次優(yōu)的配置。然而,學(xué)習(xí)曲線是嘈雜的,我們可能仍然需要全部 100 個 epoch 來確定表現(xiàn)最好的一個。
圖 19.4.1隨機(jī)超參數(shù)配置的學(xué)習(xí)曲線
多保真超參數(shù)優(yōu)化將更多資源分配給有前途的配置,并盡早停止對性能不佳的配置的評估。這加快了優(yōu)化過程,因為我們可以為相同的資源總量嘗試更多的配置。
更正式地說,我們擴(kuò)展了第 19.1.1 節(jié)中的定義 ,這樣我們的目標(biāo)函數(shù) f(x,r)獲得額外的輸入 r∈[rmin,rmax], 指定我們愿意為配置評估花費的資源量x. 我們假設(shè)錯誤 f(x,r)隨著r,而計算成本c(x,r)增加。通常, r表示訓(xùn)練神經(jīng)網(wǎng)絡(luò)的時期數(shù),但它也可以是訓(xùn)練子集大小或交叉驗證折疊數(shù)。
19.4.1。連續(xù)減半
使隨機(jī)搜索適應(yīng)多保真度設(shè)置的最簡單方法之一是連續(xù)減半 (Jamieson 和 Talwalkar,2016 年,Karnin等人,2013 年)。基本思想是從N配置,例如從配置空間隨機(jī)采樣,并訓(xùn)練它們中的每一個 rmin只有時代。然后,我們丟棄一部分表現(xiàn)最差的試驗,并對其余試驗進(jìn)行更長時間的訓(xùn)練。重復(fù)這個過程,更少的試驗運(yùn)行更長時間,直到至少有一個試驗達(dá)到rmax時代。
更正式地說,考慮最低預(yù)算rmin(例如 1 個 epoch),最大預(yù)算rmax,例如 max_epochs
在我們之前的例子中,還有一個減半常數(shù) η∈{2,3,…}. 為簡單起見,假設(shè) rmax=rminηK, 和K∈I. 那么初始配置的數(shù)量是N=ηK. 讓我們定義一組梯級 R={rmin,rminη,rminη2,…,rmax}.
一輪連續(xù)減半的過程如下。我們從跑步開始N試驗到第一梯級rmin. 對驗證錯誤進(jìn)行排序,我們保持頂部1/η分?jǐn)?shù)(相當(dāng)于ηK?1配置)并丟棄所有其余的。幸存的試驗被訓(xùn)練用于下一個梯級(rminηepochs),然后重復(fù)該過程。在每個梯級,一個1/η部分試驗存活下來,他們的訓(xùn)練繼續(xù)進(jìn)行η倍大的預(yù)算。有了這個特別的選擇N, 只有一個試驗將被訓(xùn)練到全部預(yù)算rmax. 一旦這樣一輪連續(xù)的減半完成,我們就會用一組新的初始配置開始下一輪,迭代直到總預(yù)算用完。
圖 19.4.2隨機(jī)超參數(shù)配置的學(xué)習(xí)曲線。
我們將第 19.2 節(jié)HPOScheduler
的基類子類化 ,以實現(xiàn)連續(xù)減半,允許通用 對象對配置進(jìn)行采樣(在我們下面的示例中,它將是 a )。此外,用戶必須通過最少的資源HPOSearcher
RandomSearcher
rmin, 最大資源 rmax和η作為輸入。在我們的調(diào)度程序中,我們維護(hù)一個配置隊列,這些配置仍需要針對當(dāng)前梯級進(jìn)行評估ri. 每次我們跳到下一個梯級時,我們都會更新隊列。
評論