久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    PyTorch(八)——梯度下降、優(yōu)化器、偏差方差與正則化

     taotao_2016 2019-09-19

    梯度

    在微積分中,對多元函數(shù)的參數(shù)求偏導(dǎo)數(shù),把求得的各個參數(shù)的偏導(dǎo)數(shù)以向量的形式表示出來,就是梯度。舉個例子,對于函數(shù)f(x, y),我們分別對自變量x和y求偏導(dǎo)數(shù)為?f/?x和?f/?y,那么梯度向量就是(?f/?x, ?f/?y),簡稱grad f(x, y)或者▽f(x, y)。

    從幾何上講,梯度其實(shí)就是函數(shù)變化增加最快的地方,沿著梯度向量的方向會更容易找到函數(shù)的最大值,沿著梯度向量的反方向會更容易找到函數(shù)的最小值。

    因此,最小化損失函數(shù)就可以通過梯度下降法來進(jìn)行不斷迭代求解,最終得到最小化的損失函數(shù)和模型參數(shù)值。

    梯度是微積分中的一個重要概念。

    1. 在單變量函數(shù)中,梯度就是函數(shù)的微分,代表著函數(shù)在某個給定點(diǎn)的切線的斜率。
    2. 在多變量函數(shù)中,梯度是一個向量,向量有方向,梯度的方向或反方向就指明了函數(shù)在給定點(diǎn)的上升或下降最快的方向。

    梯度下降法

    梯度下降是迭代法的一種,可以用于求解最小二乘問題(線性與非線性均可),是一個使損失函數(shù)越來越小的優(yōu)化算法。在無求解機(jī)器學(xué)習(xí)算法的模型參數(shù)問題(約束優(yōu)化問題)中,梯度下降是最常用的方法之一(另一種常用方法是最小二乘法),梯度下降法可以通過一步步的迭代求解得到最小化的損失函數(shù)和模型參數(shù)值。在機(jī)器學(xué)習(xí)中,基于基本的梯度下降法主要有隨機(jī)梯度下降法和批量梯度下降法。

    我們可以將梯度下降法比作下山,但是我們并不知道下山的路,只能通過一步一步的試探來下山。假設(shè)下山過程無安全性問題,那么每走到一個位置的時候,我們就會求當(dāng)前位置的梯度,并沿著梯度的負(fù)方向,也就是當(dāng)前最陡峭的位置(這樣走更接近山下)向下走一步。類似這種方法一步一步得走,直到我們感覺已經(jīng)到了山腳。這里為什么說是感覺,那是因?yàn)樯綍卸鄠€峰,這種走法不一定能到正真的山腳,而可能只是到了某個局部山峰的最低處,也就是局部最優(yōu)解。

    PyTorch(八)——梯度下降、優(yōu)化器、偏差方差與正則化

    梯度下降

    這個問題在特征較少的情況下可能會導(dǎo)致陷入某個局部最優(yōu)解,但當(dāng)特征足夠時,出現(xiàn)這種情況的概率就幾乎為0了,因此當(dāng)我們有成百上千萬甚至上億的特征時可以忽略這一問題。

    在梯度下降法調(diào)優(yōu)中,影響較大的三個因素為步長、初始值和歸一化。

    1. 步長:又稱學(xué)習(xí)率,決定了梯度下降迭代過程中每一步沿梯度負(fù)方向前進(jìn)的長度。也就是上述所說的沿最陡峭的位置走的那一步的長度。
    2. 初始值:隨機(jī)選取的值,當(dāng)損失函數(shù)是非凸函數(shù)時,找到的可能是局部最優(yōu)解,此時需要多測試幾次,從局部最優(yōu)解中找出最優(yōu)解。當(dāng)損失函數(shù)是凸函數(shù)時,得到的解就是最優(yōu)解。
    3. 歸一化:若不進(jìn)行歸一化,會導(dǎo)致收斂速度很慢,從而形成“之”字形的路線。

    Mini-batch的梯度下降法

    對整個訓(xùn)練集進(jìn)行梯度下降法時,我們需要處理整個訓(xùn)練數(shù)據(jù)集,然后才能進(jìn)行一步梯度下降,即每走一步梯度下降都需要對整個訓(xùn)練集進(jìn)行一次處理。可以預(yù)見的是,當(dāng)訓(xùn)練數(shù)據(jù)集很大的時候梯度下降處理速度會非常緩慢,并且我們也不可能將龐大的訓(xùn)練數(shù)據(jù)集全部一次性地載入到內(nèi)存或顯存中。基于這種情況,我們考慮將大數(shù)據(jù)集分割成小數(shù)據(jù)集,然后對每個小數(shù)據(jù)集進(jìn)行訓(xùn)練,這個訓(xùn)練子集就稱為Mini-batch,這種梯度下降法也叫小批量梯度下降。

    在PyTorch中,使用梯度下降法時就是使用Mini-batch來進(jìn)行訓(xùn)練的,例如在之前章節(jié)中介紹使用DataLoader進(jìn)行數(shù)據(jù)的加載與預(yù)處理中,其中的batch_size參數(shù)其實(shí)就是一個Mini-batch的大小。對于一般的梯度下降法而言,一個epoch只能進(jìn)行一次梯度下降,而對于Mini-batch的梯度下降法而言,有多少個Mini-batch,一個epoch就可以進(jìn)行多少次梯度下降。

    1. 當(dāng)訓(xùn)練數(shù)據(jù)集比較小時,能夠一次性讀入到內(nèi)存或顯存中時,不需要使用Mini-batch。
    2. 當(dāng)訓(xùn)練數(shù)據(jù)集比較大時,無法一次性讀入到內(nèi)存或顯存中時,只能使用Mini-batch來分批次進(jìn)行計(jì)算。
    3. Mini-batch的size計(jì)算規(guī)則如下:在內(nèi)存允許的最大情況下使用2的N次方個size。

    PyTorch中的常用優(yōu)化器

    在PyTorch中有專門提供優(yōu)化器的庫——torch.optim,其中實(shí)現(xiàn)了各種優(yōu)化算法,我們可以直接調(diào)用。

    • torch.optim.SGD

    SGD隨機(jī)梯度下降算法,除了模型參數(shù)外,還需要設(shè)置學(xué)習(xí)率lr。此外還可以設(shè)置momentum,表示帶有動量的SGD。

    optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)

    SGD的優(yōu)點(diǎn)是梯度計(jì)算快,缺點(diǎn)是隨機(jī)選擇梯度時會引入噪聲,使權(quán)值更新的方向不一定正確,但只要噪聲不是特別大,SGD還是能夠很好地收斂的。此外,帶有動量的SGD也是主要解決噪聲問題以及收斂過程中和正確梯度相比來回?cái)[動比較大的問題。

    • torch.optim.RMSprop

    RMSprop也是一種可以加快梯度下降的算法,可以減小某些維度更新波動較大的情況,使梯度下降的速度更快。RMSprop已經(jīng)被證明是一種有效且實(shí)用的深度神經(jīng)網(wǎng)絡(luò)優(yōu)化算法,在深度學(xué)習(xí)實(shí)用中非常常用。

    optimizer = torch.optim.RMSprop(model.parameters(), lr=0.01, alpha=0.99)
    • torch.optim.Adam

    Adam算法的基本思想就是將動量momentum和RMSprop結(jié)合起來形成的一種適用于不同深度學(xué)習(xí)結(jié)構(gòu)的優(yōu)化算法。在Adam中,動量直接并入了梯度-階矩的估計(jì)。Adam算法在實(shí)際操作中也是很常見的。

    optimizer = torch.optim.Adam(model.parameters(), lr=0.001, betas=(0.9, 0.999), eps=1e-08)

    Adam( )函數(shù)中l(wèi)r、betas、eps都可以直接使用默認(rèn)值,因此使用起來會更簡單。

    方差與偏差

    偏差度量了學(xué)習(xí)算法的期望預(yù)測與真實(shí)結(jié)果的偏離程序,即刻畫了學(xué)習(xí)算法本身的擬合能力。

    方差度量了同樣大小的訓(xùn)練集的變動所導(dǎo)致的學(xué)習(xí)性能的變換,即模型的泛化能力。

    正則化

    利用正則化可以解決高方差的問題,正則化是成本函數(shù)中加入的一項(xiàng)正則化項(xiàng)。

    • L1正則化

    損失函數(shù)基礎(chǔ)上加上權(quán)重參數(shù)的絕對值。

    PyTorch(八)——梯度下降、優(yōu)化器、偏差方差與正則化

    L1正則化

    • L2正則化

    損失函數(shù)基礎(chǔ)上加上權(quán)重參數(shù)的平方和。

    PyTorch(八)——梯度下降、優(yōu)化器、偏差方差與正則化

    L2正則化

    需要注意的是,L1正則化相比于L2正則化更容易獲得稀疏解。

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲天堂精品一区二区| 日本55丰满熟妇厨房伦| 国内少妇偷人精品免费| 日本高清在线天码一区播放| 四虎亚洲精品高清在线观看| 97无码人妻福利免费公开在线视频| 精品国产黑色丝袜高跟鞋| 波多野结衣一区二区三区AV高清 | 大帝AV在线一区二区三区| 精品少妇人妻AV无码久久| 少妇上班人妻精品偷人| 伊人色综合一区二区三区影院视频 | 免费无码黄十八禁网站| 中文乱码人妻系列一区二区| 精品偷拍一区二区三区| 久久精品毛片免费观看| 国产精品情侣呻吟对白视频| 精品中文字幕人妻一二| 精品久久久久久无码专区不卡 | 精品一区二区免费不卡| 乱码中字在线观看一二区| 国产AV无区亚洲AV麻豆| 日本怡春院一区二区三区| 超频97人妻在线视频| 无码人妻丰满熟妇啪啪网不卡| 国内精品自线在拍| 天干天干天啪啪夜爽爽色| 福利一区二区在线播放| 免费AV手机在线观看片| 国产性色的免费视频网站| 亚洲精品55夜色66夜色| 久久精品无码鲁网中文电影| 在线播放深夜精品三级| 欧美伊人久久大香线蕉综合| 秋霞人妻无码中文字幕| 免费午夜无码片在线观看影院| 亚洲av男人电影天堂热app| 久久99精品久久久久久动态图| 欧美亚洲人成网站在线观看| 国产成AV人片久青草影院| 无码国内精品久久人妻|