本文所指:
機器學習開發的最終目標,是盡量提高已部署模型的實用性。
通常,您可以在任何機器學習問題上,使用本節中的相同基本步驟和原則。
本節假設您已完成下列事項:
- 您已擁有完整運作的訓練管道,以及可獲得合理結果的設定。
- 您有足夠的運算資源,可進行有意義的調校實驗,並至少並行執行多項訓練工作。
增量調整策略
建議:先從簡單的設定開始。接著,在深入瞭解問題的同時,逐步進行改善。請確保所有改善措施都有充分證據支持。
我們假設您的目標是找出可讓模型發揮最佳效能的設定。有時,您的目標是在固定期限內盡量提升模型。在其他情況下,您可以無限期地持續改良模型,例如持續改良用於實際工作環境的模型。
原則上,您可以使用演算法自動搜尋整個可能的設定空間,盡量提升成效,但這並非實用的選項。可能的設定空間非常大,目前還沒有足夠精密的演算法,能在沒有人為指引的情況下有效搜尋這個空間。大多數自動搜尋演算法都依賴手動設計的搜尋空間,定義要搜尋的設定集,而這些搜尋空間可能相當重要。
如要盡量提升效能,最有效的方法是從簡單的設定開始,然後逐步新增功能及進行改善,同時深入瞭解問題。
建議您在每一輪調整作業中使用自動搜尋演算法,並隨著瞭解程度加深,持續更新搜尋空間。探索過程中,您自然會找到越來越好的設定,因此「最佳」模型會不斷進步。
「發布」是指更新最佳設定 (可能或可能不對應於實際發布的正式版模型)。每次「啟動」時,您都必須確保變更是根據充分證據,而非只是根據幸運設定的隨機機率,以免在訓練管道中加入不必要的複雜性。
整體來說,我們的漸進式調整策略涉及重複下列四個步驟:
- 為下一輪實驗挑選目標。 請確認目標範圍是否適當。
- 設計下一輪實驗。 設計並執行一系列實驗,逐步達成這個目標。
- 從實驗結果中學習。 根據檢查清單評估實驗。
- 決定是否採用候選變更。
本節的其餘部分將詳細說明這項策略。
為下一輪實驗挑選目標
如果嘗試一次新增多項功能或回答多個問題,可能無法釐清結果中個別效果的影響。例如:
- 嘗試改善管道 (例如新的正規化器、前處理選項等)。
- 瞭解特定模型超參數 (例如啟動函式) 的影響
- 盡量減少驗證錯誤。
優先考慮長期進展,而非短期驗證錯誤改善
摘要:在大多數情況下,您的主要目標是深入瞭解調整問題。
建議您將大部分時間用於深入瞭解問題,並花較少時間貪婪地專注於盡可能提升驗證集的效能。換句話說,您的大部分時間都應用於「探索」,只有少量時間用於「開發」。瞭解問題是盡量提升最終成效的關鍵。優先取得洞察資料而非短期收益,有助於:
- 避免推出不必要的變更,這些變更只是因為歷史意外而存在於成效良好的執行中。
- 找出驗證錯誤最容易受到哪些超參數影響、哪些超參數互動最頻繁,因此需要一起重新調整,以及哪些超參數對其他變更相對不敏感,因此可在日後的實驗中修正。
- 建議可嘗試的新功能,例如在過度擬合問題發生時使用新的正規化器。
- 找出無助於實驗的功能並移除,降低日後實驗的複雜度。
- 辨識超參數調整的改善幅度何時可能達到飽和。
- 縮小最佳值附近的搜尋空間,提高調整效率。
最終您會瞭解問題。即使實驗無法提供有關微調問題結構的充分資訊,您也可以專注於驗證錯誤。
設計下一輪實驗
摘要:找出實驗目標的科學、干擾和固定超參數。建立一系列研究,比較科學超參數的不同值,同時最佳化干擾超參數。選擇干擾超參數的搜尋空間,在資源成本與科學價值之間取得平衡。
找出科學、干擾和固定超參數
針對特定目標,所有超參數都會歸類於下列其中一個類別:
- 科學超參數是指您想評估其對模型效能的影響。
- 干擾超參數是指需要最佳化的超參數,才能公平比較科學超參數的不同值。干擾超參數與統計學中的干擾參數類似。
- 固定超參數在目前的實驗回合中具有常數值。比較不同科學超參數的值時,固定超參數的值不應變更。為一組實驗修正特定超參數時,您必須接受實驗得出的結論可能不適用於固定超參數的其他設定。換句話說,如果超參數固定不變,您從實驗中得出的任何結論都會有但書。
舉例來說,假設您的目標如下:
判斷隱藏層較多的模型是否驗證錯誤較少。
在這種情況下:
- 學習率是惱人的超參數,因為只有在針對每個隱藏層數分別調整學習率後,才能公平比較隱藏層數不同的模型。(最佳學習率通常取決於模型架構)。
- 如果您在先前的實驗中判斷最佳啟動函式對模型深度不敏感,啟動函式可以是固定超參數。或者,您願意限制對隱藏層數量的結論,以涵蓋這個啟用函式。或者,如果您準備好為每個隱藏層數分別調整,這也可能成為干擾超參數。
特定超參數可能是科學超參數、干擾超參數或固定超參數;超參數的指定項目會根據實驗目標而異。舉例來說,活化函數可以是下列任一函數:
- 科學超參數:ReLU 或 tanh 哪個更適合我們的問題?
- 干擾超參數:如果允許使用多種可能的啟動函式,最佳五層模型是否優於最佳六層模型?
- 固定超參數:對於 ReLU 網路,在特定位置新增批次正規化是否有幫助?
設計新一輪實驗時:
- 找出實驗目標的科學超參數。 (在這個階段,您可以將所有其他超參數視為干擾超參數)。
- 將部分干擾超參數轉換為固定超參數。
如果資源充足,您可以將所有非科學超參數保留為干擾超參數,這樣一來,從實驗得出的結論就不會受到固定超參數值的限制。不過,您嘗試調整的干擾超參數越多,就越有可能無法針對科學超參數的每項設定充分調整這些參數,最終從實驗中得出錯誤的結論。如後續章節所述,您可以增加運算預算,降低這項風險。不過,您通常無法使用足夠的資源預算,調整所有非科學超參數。
如果固定超參數所造成的缺點,比將其納入擾人超參數的成本更低,建議將擾人超參數轉換為固定超參數。干擾超參數與科學超參數的互動越頻繁,固定干擾超參數的值就越有害。舉例來說,權重衰減強度的最佳值通常取決於模型大小,因此假設權重衰減的單一特定值,比較不同模型大小的洞察力不會很強。
部分最佳化工具參數
一般來說,部分最佳化工具超參數 (例如學習率、動量、學習率時間表參數、Adam beta 等) 是干擾超參數,因為這些超參數最容易與其他變更互動。這些最佳化工具超參數很少是科學超參數,因為「目前管道的最佳學習率是多少?」這類目標無法提供太多洞察資料。畢竟,最佳設定可能會隨著下一個管道變更而改變。
有時,您可能會因為資源限制或特別有力的證據,證明最佳化工具超參數不會與科學參數互動,而修正部分超參數。不過,一般來說,您應該假設必須分別調整最佳化工具超參數,才能公平比較科學超參數的不同設定,因此不應固定這些超參數。此外,沒有先驗理由可優先選擇某個最佳化工具超參數值,例如最佳化工具超參數值通常不會以任何方式影響正向傳遞或梯度運算的運算成本。
最佳化工具的選擇
最佳化工具的選擇通常是:
- 科學超參數
- 固定超參數
如果實驗目標是公平比較兩個或多個不同的最佳化工具,最佳化工具就是科學超參數。例如:
找出在指定步驟數中產生最低驗證錯誤的最佳化工具。
或者,您可能會基於各種原因將最佳化工具設為固定超參數,包括:
- 先前的實驗顯示,最佳化工具不適合您目前的調整問題,因為該工具對目前的科學超參數不敏感。
- 您偏好使用這個最佳化工具比較科學超參數的值,因為其訓練曲線較容易推論。
- 您偏好使用這個最佳化工具,因為它使用的記憶體比其他替代方案少。
正規化超參數
正規化技術導入的超參數通常是干擾超參數。不過,是否要納入正規化技術,是科學或固定的超參數。
舉例來說,Dropout 正則化會增加程式碼複雜度。因此,在決定是否要加入 Dropout 正規化時,您可以將「無 Dropout」與「Dropout」設為科學超參數,但 Dropout 率則設為干擾超參數。如果您決定根據這項實驗,在管道中加入 Dropout 正規化,Dropout 率就會成為日後實驗中的干擾超參數。
架構超參數
架構超參數通常是科學或固定超參數,因為架構變更可能會影響服務和訓練成本、延遲時間和記憶體需求。舉例來說,層數通常是科學或固定的超參數,因為層數往往會對訓練速度和記憶體用量造成重大影響。
科學超參數的依附元件
在某些情況下,干擾和固定超參數集取決於科學超參數的值。舉例來說,假設您想判斷 Nesterov 動量和 Adam 中的哪個最佳化工具會產生最低的驗證錯誤。在這種情況下:
- 科學超參數是最佳化工具,會採用
{"Nesterov_momentum", "Adam"}
值 - 值
optimizer="Nesterov_momentum"
會導入超參數{learning_rate, momentum}
,這可能是干擾或固定超參數。 - 值
optimizer="Adam"
會導入超參數{learning_rate, beta1, beta2, epsilon}
,這可能是干擾或固定超參數。
只有在科學超參數的特定值存在時才會出現的超參數,稱為條件超參數。請勿假設兩個條件式超參數相同,即使名稱相同也一樣!在上述範例中,名為 learning_rate
的條件式超參數是 optimizer="Nesterov_momentum"
的超參數,與 optimizer="Adam"
的超參數不同。在兩種演算法中,這個角色類似 (但並不相同),不過在每個最佳化工具中,效果良好的值範圍通常會相差幾個數量級。
建立一組研究
找出科學和干擾超參數後,您應設計一項或一系列研究,以達成實驗目標。研究會指定一組超參數設定,供後續分析執行。每項設定都稱為「試驗」。 建立研究通常需要選擇下列項目:
- 各項試驗的超參數。
- 超參數可採用的值 (搜尋空間)。
- 試驗次數。
- 自動搜尋演算法,可從搜尋空間取樣這麼多試驗。
或者,您也可以手動指定超參數設定集來建立研究。
這項研究的目的是同時:
- 使用不同的科學超參數值執行管道。
- 「最佳化排除」(或「最佳化涵蓋」) 擾亂超參數,盡可能公平地比較科學超參數的不同值。
在最簡單的情況下,您會為每個科學參數設定分別進行研究,並在每項研究中調整干擾超參數。舉例來說,如果您的目標是從 Nesterov 動量和 Adam 中選出最佳最佳化工具,可以建立兩項研究:
- 其中一項研究是
optimizer="Nesterov_momentum"
,而干擾超參數是{learning_rate, momentum}
- 另一項研究,其中
optimizer="Adam"
和干擾超參數為{learning_rate, beta1, beta2, epsilon}
。
從各項研究中選取成效最佳的試驗,即可比較這兩個最佳化工具。
您可以使用任何無梯度最佳化演算法 (包括貝氏最佳化或演化演算法等方法),針對干擾超參數進行最佳化。不過,由於準隨機搜尋在這項設定中具有多種優勢,我們偏好在微調的探索階段使用準隨機搜尋。探索結束後,建議使用最先進的貝氏最佳化軟體 (如有)。
假設您想比較大量科學超參數值,但進行這麼多獨立研究並不實際,這時情況就比較複雜。在這種情況下,您可以採取下列行動:
- 將科學參數納入與干擾超參數相同的搜尋空間。
- 在單一研究中,使用搜尋演算法對科學和干擾超參數的值進行取樣。
採用這種方法時,條件式超參數可能會導致問題。畢竟,除非所有科學超參數值的不相關超參數集都相同,否則很難指定搜尋空間。在這種情況下,我們更偏好使用準隨機搜尋,而非更精巧的黑箱最佳化工具,因為準隨機搜尋可確保科學超參數的不同值會以一致的方式取樣。無論使用哪種搜尋演算法,請務必確保演算法會統一搜尋科學參數。
在資訊豐富和經濟實惠的實驗之間取得平衡
設計研究或一系列研究時,請分配有限的預算,充分達成下列三項目標:
- 比較足夠的科學超參數值。
- 在足夠大的搜尋空間中調整干擾超參數。
- 對干擾超參數的搜尋空間進行足夠密集的取樣。
您越能達成這三項目標,就越能從實驗中取得深入分析資料。盡可能比較科學超參數的多個值,可擴大實驗洞察的範圍。
盡可能納入越多干擾超參數,並允許每個干擾超參數在盡可能廣泛的範圍內變動,可提高信心:對於科學超參數的每項設定,搜尋空間中都存在「良好」的干擾超參數值。否則,您可能會因為未搜尋干擾超參數空間中可能存在較佳值的區域,而對科學超參數的值進行不公平的比較。
盡可能密集地對干擾超參數的搜尋空間取樣。這樣做可提高信心,確保搜尋程序能為搜尋空間中存在的任何干擾超參數找到合適的設定。否則,由於某些值在干擾超參數的取樣中較為幸運,您可能會對科學參數的值進行不公平的比較。
很遺憾,如要改善這三項指標,必須採取下列任一做法:
- 增加測試次數,因此資源費用也會隨之提高。
- 在其他其中一個維度中尋找節省資源的方法。
每個問題都有自己的特質和運算限制,因此在上述三項目標之間分配資源時,需要具備一定程度的領域知識。執行研究後,請務必瞭解研究是否已充分調整干擾超參數。也就是說,這項研究已充分搜尋夠大的空間,可公平比較科學超參數 (詳情請參閱下一節)。
從實驗結果中學習
建議:除了嘗試達成每組實驗的原始科學目標外,請檢查其他問題的清單。如果發現問題,請修訂並重新執行實驗。
最終,每個實驗群組都有特定目標。 您應評估實驗提供的證據,是否能達成該目標。 不過,只要問對問題,通常就能找出問題並加以修正,讓特定實驗組合朝原定目標邁進。如果沒有提出這些問題,可能會得出錯誤的結論。
由於執行實驗的成本可能很高,因此即使這些洞察資料與目前目標沒有直接關聯,您也應從每組實驗中擷取其他實用洞察資料。
在分析一組實驗,以達成原始目標之前,請先思考下列額外問題:
- 搜尋空間是否夠大?如果研究的最佳點位於一或多個維度的搜尋空間邊界附近,搜尋範圍可能不夠廣。在這種情況下,請執行另一項研究,並擴大搜尋空間。
- 您是否已從搜尋空間取樣足夠的點? 如果沒有,請執行更多點,或降低調整目標的難度。
- 每項研究中有多少比例的試驗不可行?也就是說,哪些試驗會發散、損失值非常差,或因違反某些隱含限制而完全無法執行?如果研究中有很大一部分點不可行,請調整搜尋空間,避免對這類點進行取樣,有時需要重新參數化搜尋空間。在某些情況下,大量不可行的點可能表示訓練程式碼有錯誤。
- 模型是否出現最佳化問題?
- 您可以從最佳試驗的訓練曲線中學到什麼?舉例來說,最佳試驗的訓練曲線是否與有問題的過度擬合一致?
如有必要,請根據上述問題的答案,修正最近的研究或研究群組,以改善搜尋空間和/或取樣更多試驗,或採取其他修正措施。
回答完上述問題後,即可評估實驗提供的證據是否符合原始目標,例如評估變更是否有用。
找出錯誤的搜尋空間邊界
如果從搜尋空間取樣的最佳點接近邊界,則該搜尋空間有可疑之處。如果朝該方向擴大搜尋範圍,或許能找到更合適的點。
如要檢查搜尋空間界線,建議在所謂的基本超參數軸圖上繪製已完成的試驗。在這些圖表中,我們會繪製驗證目標值與其中一個超參數 (例如學習率) 的關係。圖上的每個點都代表一次試驗。
通常,每個試驗的驗證目標值應為訓練期間達成的最佳值。
圖 1:不良搜尋空間邊界和可接受搜尋空間邊界示例。
圖 1 中的繪圖顯示錯誤率 (越低越好) 與初始學習率。如果最佳點叢集趨向搜尋空間的邊緣 (在某些維度中),您可能需要擴展搜尋空間邊界,直到觀察到的最佳點不再靠近邊界為止。
研究通常會包含「不可行」的試驗,這些試驗會產生差異或結果非常不佳 (圖 1 中以紅色 X 標示)。如果所有試驗的學習率都大於某個門檻值,且表現最佳的試驗學習率位於該區域的邊緣,則模型可能會有穩定性問題,導致無法存取較高的學習率。
在搜尋空間中取樣的點不夠多
一般來說,很難判斷搜尋空間的取樣密度是否足夠。🤖 執行更多測試比執行較少測試好,但更多測試會產生明顯的額外費用。
由於很難判斷何時取樣足夠,因此建議:
- 試用你負擔得起的產品。
- 反覆查看各種超參數軸圖,並嘗試瞭解搜尋空間「良好」區域中的點數,校正直覺信賴度。
檢查訓練曲線
摘要:檢查損失曲線是找出常見故障模式的簡單方法,有助於排定潛在後續行動的優先順序。
在許多情況下,實驗的主要目標只需要考量每次測試的驗證錯誤。不過,將每次試驗縮減為單一數字時,請務必謹慎,因為這樣做可能會隱藏表面下發生的重要詳細資料。強烈建議您查看至少前幾次最佳試驗的損失曲線。即使這並非解決主要實驗目標的必要步驟,檢查損失曲線 (包括訓練損失和驗證損失) 仍是找出常見失敗模式的好方法,有助於判斷接下來應優先採取哪些行動。
檢查損失曲線時,請著重於下列問題:
是否有任何試驗出現過度擬合問題?當驗證錯誤在訓練期間開始增加時,就會發生有問題的過度擬合。在實驗設定中,您可以為每個科學超參數設定選取「最佳」試驗,藉此最佳化排除干擾超參數。請至少檢查每個最佳試驗中是否有過度擬合的問題,這些試驗對應的科學超參數設定是您要比較的。如果最佳試驗出現有問題的過度擬合,請執行下列一或多項操作:
- 使用其他正規化技術重新執行實驗
- 請先重新調整現有的正規化參數,再比較科學超參數的值。如果科學超參數包含正規化參數,則可能不適用此情況,因為如果這些正規化參數的強度設定較低,導致過度擬合問題,並不令人意外。
使用常見的正則化技術,通常就能輕鬆減少過度訓練,且只會增加極少的程式碼複雜度或額外運算量 (例如 Dropout 正則化、標籤平滑化、權重衰減)。因此,在下一輪實驗中新增一或多個這類項目通常很簡單。舉例來說,如果科學超參數是「隱藏層數量」,而使用最多隱藏層數的最佳試驗出現過度擬合問題,建議您使用額外的正規化重新嘗試,而不是立即選取較少的隱藏層數量。
即使「最佳」試驗都沒有過度擬合問題,但如果任何試驗發生過度擬合,可能還是有問題。選取最佳試驗可抑制出現問題的過度擬合設定,並偏好未出現問題的設定。換句話說,選取最佳試驗會偏好具有更多正規化的設定。不過,任何會導致訓練效果變差的因素,都可能成為正規化因子,即使並非有意為之。舉例來說,選擇較小的學習率可藉由阻礙最佳化程序來正規化訓練,但我們通常不會以這種方式選擇學習率。請注意,針對科學超參數的每項設定,「最佳」試驗的選取方式,可能會偏好某些科學或干擾超參數的「不良」值。
訓練或驗證錯誤在訓練後期是否出現高步進變異數?如果真是如此,可能會干擾下列兩項功能:
- 比較科學超參數的不同值。這是因為每次試用都會隨機在「幸運」或「不幸」的步驟結束。
- 您能否在正式環境中重現最佳試驗的結果。 這是因為生產模型可能不會在與研究中相同的「幸運」步驟結束。
造成步數差異的最可能原因如下:
- 由於系統會從每個批次的訓練集隨機取樣,因此批次之間會出現差異。
- 小型驗證集
- 在訓練後期使用過高的學習率。
可能的解決方法包括:
- 增加批次大小。
- 取得更多驗證資料。
- 使用學習率衰減。
- 使用 Polyak 平均。
訓練結束時,試驗是否仍在改善? 如果是這樣,您就處於「運算受限」狀態,增加訓練步驟數或變更學習率時間表可能會有幫助。
訓練和驗證集的效能是否在最終訓練步驟之前就已飽和?如果是,這表示您處於「非運算受限」狀態,可能可以減少訓練步驟數。
除了這份清單,您也可以透過檢查損失曲線,瞭解許多其他行為。舉例來說,訓練期間訓練損失增加,通常表示訓練管道有錯誤。
使用隔離圖判斷變更是否實用
圖 2:隔離圖,用於調查在 ImageNet 上訓練的 ResNet-50 權重衰減最佳值。
通常,一組實驗的目標是比較科學超參數的不同值。舉例來說,假設您想找出可產生最佳驗證錯誤的權重衰減值。隔離圖是基本超參數軸圖的特例。 隔離圖上的每個點,都代表在某些 (或所有) 擾亂超參數中,最佳試驗的成效。換句話說,在「最佳化掉」擾人的超參數後,繪製模型效能。
隔離圖可簡化科學超參數不同值之間的比較。舉例來說,圖 2 中的隔離圖顯示權重衰減值,可為在 ImageNet 上訓練的特定 ResNet-50 設定產生最佳驗證效能。
如果目標是判斷是否要納入權重衰減,請將這張圖中的最佳點與沒有權重衰減的基準進行比較。為求公平比較,基準的學習率也應經過同等程度的調整。
如果您有 (準) 隨機搜尋產生的資料,並考慮使用連續超參數製作隔離圖,可以將基本超參數軸圖的 x 軸值分組,並在各組定義的垂直切片中取最佳試驗,藉此近似隔離圖。
自動產生一般實用圖表
產生繪圖需要花費越多心力,您就越不可能經常查看繪圖。因此,建議您設定基礎架構,盡可能自動產生大量繪圖。建議您至少為實驗中所有變數超參數自動產生基本超參數軸圖。
此外,建議您為所有試驗自動產生損失曲線。此外,我們建議盡可能簡化每個研究的最佳幾次試驗,並檢查其損失曲線。
您可以新增許多其他實用的潛在繪圖和視覺化效果。套用 Geoffrey Hinton 的說法:
每次繪製新內容時,您都會學到新知識。
決定是否要採用候選變更
摘要:決定是否要變更模型或訓練程序,或是採用新的超參數設定時,請注意結果中不同的變異來源。
嘗試改善模型時,與現有設定相比,特定候選變更一開始可能達到較佳的驗證錯誤。但重複實驗可能無法證明有持續優勢。 從非正式的角度來看,結果不一致的最重要來源可歸類為下列廣泛類別:
- 訓練程序變異數、重新訓練變異數或試驗變異數:使用相同超參數但不同隨機種子的訓練執行之間的變異數。舉例來說,不同的隨機初始化、訓練資料隨機排序、捨棄遮罩、資料擴增作業模式,以及平行算術運算順序,都是可能造成試驗差異的來源。
- 超參數搜尋變異數或研究變異數:因超參數選取程序而導致的結果變異。舉例來說,您可能會使用特定搜尋空間執行相同的實驗,但使用兩個不同的準隨機搜尋種子,最後選取不同的超參數值。
- 資料收集和取樣變異數:隨機將資料分割為訓練、驗證和測試資料時產生的變異數,或一般而言,因訓練資料產生程序而產生的變異數。
沒錯,您可以使用嚴謹的統計檢定,比較在有限驗證集上估算的驗證錯誤率。不過,光是試驗變異,通常就能在兩個使用相同超參數設定的訓練模型之間,產生具有統計顯著性的差異。
嘗試在超參數空間中得出超出單一點層級的結論時,我們最擔心研究變異。研究變異數取決於試驗次數和搜尋空間。我們發現有些研究的變異數大於試驗的變異數,有些則小得多。因此,採用候選變更前,請考慮執行最佳試驗 N 次,以瞭解試驗的執行差異。通常,在管道發生重大變化後,您只需要重新描述試用差異即可,但在某些情況下,您可能需要較新的估計值。在其他應用程式中,試驗變異的特徵化成本過高,不值得。
雖然您只希望採用能帶來實質改善的變更 (包括新的超參數設定),但要求完全確定特定變更有所助益,也不是正確的做法。因此,如果新的超參數點 (或其他變更) 的結果優於基準 (盡可能考量新點和基準的重新訓練變異),您可能應採用該點做為日後比較的基準。不過,建議您只採用能帶來顯著改善的變更,因為這些變更的效益會大於新增的複雜度。
探索結束後
摘要:完成搜尋合適的搜尋空間,並決定要調整哪些超參數後,貝氏最佳化工具就是絕佳的選擇。
最終,您的優先事項會從深入瞭解微調問題,轉為產生單一最佳設定,以利推出或使用。此時,搜尋空間應已縮小範圍,可輕鬆涵蓋最佳觀察試驗周圍的區域,且已充分取樣。探索工作應已找出最重要且可調整的超參數,以及可用於建構搜尋空間的合理範圍,以便使用盡可能多的調整預算,進行最終的自動調整研究。
由於您不再重視盡可能深入瞭解微調問題,因此準隨機搜尋的許多優點不再適用。因此,您應使用貝氏最佳化工具,自動找出最佳超參數設定。開放原始碼 Vizier 實作了多種複雜的演算法,可調整機器學習模型,包括貝氏最佳化演算法。
假設搜尋空間包含大量發散點,也就是訓練損失為 NaN 的點,甚至是訓練損失比平均值差許多標準差的點。在這種情況下,建議使用黑箱最佳化工具,妥善處理發散的試驗。(如要瞭解處理這個問題的絕佳方法,請參閱「貝氏最佳化與未知限制」。)開放原始碼 Vizier 支援將試驗標示為不可行,藉此標示發散點,但視設定方式而定,可能不會使用 Gelbart 等人偏好的方法。
探索結束後,請考慮檢查測試集的成效。 原則上,您甚至可以將驗證集併入訓練集,並使用貝氏最佳化重新訓練找到的最佳設定。不過,如果日後不會再使用這項特定工作負載啟動服務 (例如一次性的 Kaggle 競賽),才適合採用這種做法。