電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>PyTorch教程19.1之什么是超參數(shù)優(yōu)化

PyTorch教程19.1之什么是超參數(shù)優(yōu)化

2023-06-05 | pdf | 0.29 MB | 次下載 | 免費

資料介紹

正如我們在前幾章中所見,深度神經(jīng)網(wǎng)絡(luò)帶有大量在訓(xùn)練過程中學(xué)習的參數(shù)或權(quán)重。除此之外,每個神經(jīng)網(wǎng)絡(luò)都有額外的 超參數(shù)需要用戶配置。例如,為了確保隨機梯度下降收斂到訓(xùn)練損失的局部最優(yōu)(參見第 12 節(jié)),我們必須調(diào)整學(xué)習率和批量大小。為了避免在訓(xùn)練數(shù)據(jù)集上過度擬合,我們可能必須設(shè)置正則化參數(shù),例如權(quán)重衰減(參見第 3.7 節(jié))或 dropout(參見 第 5.6 節(jié))). 我們可以通過設(shè)置層數(shù)和每層單元或過濾器的數(shù)量(即權(quán)重的有效數(shù)量)來定義模型的容量和歸納偏差。

不幸的是,我們不能簡單地通過最小化訓(xùn)練損失來調(diào)整這些超參數(shù),因為這會導(dǎo)致訓(xùn)練數(shù)據(jù)過度擬合。例如,將正則化參數(shù)(如 dropout 或權(quán)重衰減)設(shè)置為零會導(dǎo)致較小的訓(xùn)練損失,但可能會損害泛化性能。

https://file.elecfans.com/web2/M00/AA/48/pYYBAGR9PUqAbQbSAAB0OkZMfC0966.svg

圖 19.1.1機器學(xué)習中的典型工作流程,包括使用不同的超參數(shù)多次訓(xùn)練模型。

如果沒有不同形式的自動化,就必須以反復(fù)試驗的方式手動設(shè)置超參數(shù),這相當于機器學(xué)習工作流程中耗時且困難的部分。例如,考慮在 CIFAR-10 上訓(xùn)練 ResNet(參見第 8.6 節(jié)g4dn.xlarge),這需要在 Amazon Elastic Cloud Compute (EC2)實例上訓(xùn)練 2 個多小時。即使只是依次嘗試十個超參數(shù)配置,這也已經(jīng)花費了我們大約一天的時間。更糟糕的是,超參數(shù)通常不能直接跨架構(gòu)和數(shù)據(jù)集傳輸 Bardenet等人,2013 年,Feurer等人,2022 年Wistuba等人,2018 年,并且需要針對每個新任務(wù)重新優(yōu)化。此外,對于大多數(shù)超參數(shù),沒有經(jīng)驗法則,需要專業(yè)知識才能找到合理的值。

超參數(shù)優(yōu)化 (HPO)算法旨在以一種有原則的和自動化的方式解決這個問題 Feurer 和 Hutter,2018 年,將其定義為一個全局優(yōu)化問題。默認目標是保留驗證數(shù)據(jù)集上的錯誤,但原則上可以是任何其他業(yè)務(wù)指標。它可以與次要目標結(jié)合或受其約束,例如訓(xùn)練時間、推理時間或模型復(fù)雜性。

最近,超參數(shù)優(yōu)化已擴展到神經(jīng)架構(gòu)搜索 (NAS) Elsken等人,2018 年,Wistuba等人,2019 年,目標是找到全新的神經(jīng)網(wǎng)絡(luò)架構(gòu)。與經(jīng)典 HPO 相比,NAS 在計算方面的成本更高,并且需要額外的努力才能在實踐中保持可行性。HPO 和 NAS 都可以被視為 AutoML 的子領(lǐng)域 ( Hutter et al. , 2019 ),旨在自動化整個 ML 管道。

在本節(jié)中,我們將介紹 HPO 并展示我們?nèi)绾巫詣诱业降?4.5 節(jié)介紹的邏輯回歸示例的最佳超參數(shù)。

19.1.1. 優(yōu)化問題

我們將從一個簡單的玩具問題開始:搜索第 4.5 節(jié)SoftmaxRegression中 的多類邏輯回歸模型的學(xué)習率,以最小化 Fashion MNIST 數(shù)據(jù)集上的驗證錯誤。雖然批量大小或輪數(shù)等其他超參數(shù)也值得調(diào)整,但為簡單起見,我們只關(guān)注學(xué)習率。

import numpy as np
import torch
from scipy import stats
from torch import nn
from d2l import torch as d2l

在運行 HPO 之前,我們首先需要定義兩個要素:目標函數(shù)和配置空間。

19.1.1.1。目標函數(shù)

學(xué)習算法的性能可以看作是一個函數(shù) f:X→R從超參數(shù)空間映射x∈X到驗證損失。對于每一個評價f(x),我們必須訓(xùn)練和驗證我們的機器學(xué)習模型,對于在大型數(shù)據(jù)集上訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò),這可能是時間和計算密集型的。鑒于我們的標準f(x)我們的目標是找到 x?∈argminx∈Xf(x).

沒有簡單的方法來計算的梯度f關(guān)于 x,因為它需要在整個訓(xùn)練過程中傳播梯度。雖然最近有工作 Franceschi等人,2017 年,Maclaurin等人,2015 年通過近似“超梯度”驅(qū)動 HPO,但現(xiàn)有方法中沒有一種與最先進的方法具有競爭力,我們將不在這里討論它們。此外,評估的計算負擔f 要求 HPO 算法以盡可能少的樣本接近全局最優(yōu)。

神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是隨機的(例如,權(quán)重是隨機初始化的,mini-batches 是隨機采樣的),因此我們的觀察結(jié)果會很嘈雜:y~f(x)+?,我們通常假設(shè)?~N(0,σ) 觀察噪聲呈高斯分布。

面對所有這些挑戰(zhàn),我們通常會嘗試快速識別一小組性能良好的超參數(shù)配置,而不是準確地達到全局最優(yōu)值。然而,由于大多數(shù)神經(jīng)網(wǎng)絡(luò)模型的大量計算需求,即使這樣也可能需要數(shù)天或數(shù)周的計算時間。我們將在19.4 節(jié)中探討如何通過分布搜索或使用目標函數(shù)的評估成本更低的近似值來加快優(yōu)化過程。

我們從計算模型驗證誤差的方法開始。

class HPOTrainer(d2l.Trainer): #@save
  def validation_error(self):
    self.model.eval()
    accuracy = 0
    val_batch_idx = 0
    for batch in self.val_dataloader:
      with torch.no_grad():
        x, y = self.prepare_batch(batch)
        y_hat = self.model(x)
        accuracy += self.model.accuracy(y_hat, y)
      val_batch_idx += 1
    return 1 - accuracy / val_batch_idx

我們優(yōu)化了關(guān)于超參數(shù)配置的驗證錯誤config,由learning_rate. 對于每個評估,我們訓(xùn)練我們的模型max_epochsepochs,然后計算并返回其驗證錯誤:

def hpo_objective_softmax_classification(config, max_epochs=8):
  learning_rate = config["learning_rate"]
  trainer = d2l.HPOTrainer(max_epochs=max_epochs)
  data = d2l.FashionMNIST(batch_size=16)
  model = d2l.SoftmaxRegression(num_outputs=10, lr=learning_rate)
  trainer.fit(model=model, data=data)
  return trainer.validation_error().detach().numpy()

19.1.1.2。配置空間

隨著目標函數(shù)f(x),我們還需要定義可行集x∈X優(yōu)化過來,稱為配置空間搜索空間對于我們的邏輯回歸示例,我們將使用:

config_space = {"learning_rate": stats.loguniform(1e-4, 1)}

這里我們使用loguniformSciPy 中的對象,它表示對數(shù)空間中 -4 和 -1 之間的均勻分布。這個對象允許我們從這個分布中抽樣隨機變量。

每個超參數(shù)都有一個數(shù)據(jù)類型,例如floatfor learning_rate,以及一個封閉的有界范圍(即下限和上限)。我們通常為每個超參數(shù)分配一個先驗分布(例如,均勻分布或?qū)?shù)均勻分布)以從中進行采樣。一些正參數(shù)(例如learning_rate)最好用對數(shù)標度表示,因為最佳值可能相差幾個數(shù)量級,而其他參數(shù)(例如動量)則采用線性標度。

下面我們展示了一個配置空間的簡單示例,該配置空間由多層感知器的典型超參數(shù)組成,包括它們的類型和標準范圍。

表 19.1.1多層感知機配置空間示例

姓名

類型

超參數(shù)范圍

對數(shù)刻度

學(xué)習率

漂浮

[10?6,10?1]

是的

批量大小

整數(shù)

[8,256]

是的

勢頭

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費