最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

人工智能學(xué)習(xí)Pytorch梯度下降優(yōu)化示例詳解

 更新時(shí)間:2021年11月11日 16:02:16   作者:Swayzzu  
這篇文章主要為大家介紹了人工智能學(xué)習(xí)Pytorch梯度下降優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

一、激活函數(shù)

1.Sigmoid函數(shù)

函數(shù)圖像以及表達(dá)式如下:

通過(guò)該函數(shù),可以將輸入的負(fù)無(wú)窮到正無(wú)窮的輸入壓縮到0-1之間。在x=0的時(shí)候,輸出0.5

通過(guò)PyTorch實(shí)現(xiàn)方式如下:

2.Tanh函數(shù)

在RNN中比較常用,由sigmoid函數(shù)變化而來(lái)。表達(dá)式以及圖像如下圖所示:

該函數(shù)的取值是-1到1,導(dǎo)數(shù)是:1-Tanh**2。

通過(guò)PyTorch的實(shí)現(xiàn)方式如下:

3.ReLU函數(shù)

該函數(shù)可以將輸入小于0的值截?cái)酁?,大于0的值保持不變。因此在小于0的地方導(dǎo)數(shù)為0,大于0的地方導(dǎo)數(shù)為1,因此求導(dǎo)計(jì)算非常方便。

通過(guò)PyTorch的實(shí)現(xiàn)方式如下:

二、損失函數(shù)及求導(dǎo)

通常,我們使用mean squared error也就是均方誤差來(lái)作為損失函數(shù)。

1.autograd.grad

torch.autograd.grad(loss, [w1,w2,...])

輸入的第一個(gè)是損失函數(shù),第二個(gè)是參數(shù)的列表,即使只有一個(gè),也需要加上中括號(hào)。

我們可以直接通過(guò)mse_loss的方法,來(lái)直接創(chuàng)建損失函數(shù)。

在torch.autograd.grad中輸入損失函數(shù)mse,以及希望求導(dǎo)的對(duì)象[w],可以直接求導(dǎo)。

注意:我們需要在創(chuàng)建w的時(shí)候,需要添加requires_grad=True,我們才能對(duì)它求導(dǎo)。

也可以通過(guò)w.requires_grad_()的方法,為其添加可以求導(dǎo)的屬性。

2.loss.backward()

該方法是直接在損失函數(shù)上面調(diào)用的

這個(gè)方法不會(huì)返回梯度信息,而是將梯度信息保存到了參數(shù)中,直接用w.grad就可以查看。

3.softmax及其求導(dǎo)

該函數(shù)將差距較大的輸入,轉(zhuǎn)換成處于0-1之間的概率,并且所有概率和為1。

對(duì)softmax函數(shù)的求導(dǎo):

設(shè)輸入是a,通過(guò)了softmax輸出的是p

注意:當(dāng)i=j時(shí),偏導(dǎo)是正的,i != j時(shí),偏導(dǎo)是負(fù)的。

通過(guò)PyTorch實(shí)現(xiàn)方式如下:

三、鏈?zhǔn)椒▌t

1.單層感知機(jī)梯度

單層感知機(jī)其實(shí)就是只有一個(gè)節(jié)點(diǎn),數(shù)據(jù)*權(quán)重,輸入這個(gè)節(jié)點(diǎn),經(jīng)過(guò)sigmoid函數(shù)轉(zhuǎn)換,得到輸出值。根據(jù)鏈?zhǔn)椒▌t可以求得梯度。

通過(guò)PyTorch可以輕松實(shí)現(xiàn)函數(shù)轉(zhuǎn)換以及求導(dǎo)。

2. 多輸出感知機(jī)梯度

輸出值變多了,因此節(jié)點(diǎn)變多了。但求導(dǎo)方式其實(shí)是一樣的。

通過(guò)PyTorch實(shí)現(xiàn)求導(dǎo)的方式如下:

3. 中間有隱藏層的求導(dǎo)

中間加了隱藏層,只是調(diào)節(jié)了輸出節(jié)點(diǎn)的輸入內(nèi)容。原本是數(shù)據(jù)直接輸給輸出節(jié)點(diǎn),現(xiàn)在是中間層的輸出作為輸入,給了輸出節(jié)點(diǎn)。使用PyTorch實(shí)現(xiàn)方式如下:

4.多層感知機(jī)的反向傳播

依舊是通過(guò)鏈?zhǔn)椒▌t,每一個(gè)結(jié)點(diǎn)的輸出sigmoid(x)都是下一個(gè)結(jié)點(diǎn)的輸入,因此我們通過(guò)前向傳播得到每一個(gè)結(jié)點(diǎn)的sigmoid函數(shù),以及最終的輸出結(jié)果,算出損失函數(shù)后,即可通過(guò)后向傳播依次推算出每一個(gè)結(jié)點(diǎn)每一個(gè)參數(shù)的梯度。

下面的DELTA(k)只是將一部分內(nèi)容統(tǒng)一寫(xiě)作一個(gè)字母來(lái)表示,具體推導(dǎo)不再詳述。

四、優(yōu)化舉例

通過(guò)以下函數(shù)進(jìn)行優(yōu)化。

優(yōu)化流程:初始化參數(shù)→前向傳播算出預(yù)測(cè)值→得到損失函數(shù)→​​​​​​​反向傳播得到梯度→​​​​​​​對(duì)參數(shù)更新→​​​​​​​再次前向傳播→......

在此案例中,優(yōu)化流程有一些不同:

優(yōu)化之前先選擇優(yōu)化器,并直接把參數(shù),以及梯度輸入進(jìn)去。

①pred = f(x)根據(jù)函數(shù)給出預(yù)測(cè)值,用以后面計(jì)算梯度。

②optimizer.zero_grad()梯度歸零。因?yàn)榉聪騻鞑ブ螅荻葧?huì)自動(dòng)帶到參數(shù)上去(上面有展示,可以調(diào)用查看)。

③pred.backward()用預(yù)測(cè)值計(jì)算梯度。

④pred.step()更新參數(shù)。

以上步驟循環(huán)即可。

以上就是人工智能學(xué)習(xí)Pytorch梯度下降優(yōu)化示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Pytorch梯度下降優(yōu)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python人臉識(shí)別之微笑檢測(cè)

    Python人臉識(shí)別之微笑檢測(cè)

    Python可以從圖像或視頻中檢測(cè)和識(shí)別你的臉,人臉檢測(cè)與識(shí)別也是計(jì)算機(jī)視覺(jué)領(lǐng)域的研究熱點(diǎn)之一。本文主要為大家介紹通過(guò)Python實(shí)現(xiàn)人臉識(shí)別之微信檢測(cè),需要的同學(xué)可以參考一下
    2021-12-12
  • 如何在scrapy中捕獲并處理各種異常

    如何在scrapy中捕獲并處理各種異常

    這篇文章主要介紹了如何在scrapy中捕獲并處理各種異常,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python爬蟲(chóng)爬取新浪微博內(nèi)容示例【基于代理IP】

    Python爬蟲(chóng)爬取新浪微博內(nèi)容示例【基于代理IP】

    這篇文章主要介紹了Python爬蟲(chóng)爬取新浪微博內(nèi)容,結(jié)合實(shí)例形式分析了Python基于代理IP實(shí)現(xiàn)的微博爬取與抓包分析相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • 在pytorch中查看可訓(xùn)練參數(shù)的例子

    在pytorch中查看可訓(xùn)練參數(shù)的例子

    今天小編就為大家分享一篇在pytorch中查看可訓(xùn)練參數(shù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Python爬蟲(chóng)獲取基金變動(dòng)信息

    Python爬蟲(chóng)獲取基金變動(dòng)信息

    這篇文章主要介紹了Python爬蟲(chóng)獲取基金變動(dòng)信息,問(wèn)基于上一篇文章得內(nèi)容介紹圍繞python的相關(guān)資料展開(kāi)全文,需要的小伙伴可以參考一下
    2022-05-05
  • numpy中數(shù)組拼接、數(shù)組合并方法總結(jié)(append(),?concatenate,?hstack,?vstack,?column_stack,?row_stack,?np.r_,?np.c_等)

    numpy中數(shù)組拼接、數(shù)組合并方法總結(jié)(append(),?concatenate,?hstack,?vstack

    numpy庫(kù)是一個(gè)高效處理多維數(shù)組的工具,可以在進(jìn)行邊寫(xiě)的數(shù)組計(jì)算上進(jìn)行一系列的操作,下面這篇文章主要給大家介紹了關(guān)于numpy中數(shù)組拼接、數(shù)組合并方法(append(),?concatenate,?hstack,?vstack,?column_stack,?row_stack,?np.r_,?np.c_等)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • python中字典dict常用操作方法實(shí)例總結(jié)

    python中字典dict常用操作方法實(shí)例總結(jié)

    這篇文章主要介紹了python中字典dict常用操作方法,實(shí)例總結(jié)了Python針對(duì)字典操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的驗(yàn)證碼程序

    Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的驗(yàn)證碼程序

    這篇文章主要介紹了Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的驗(yàn)證碼程序,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 基于Python編寫(xiě)windows電腦用戶操作記錄查看器

    基于Python編寫(xiě)windows電腦用戶操作記錄查看器

    這篇文章主要為大家詳細(xì)介紹了如何基于Python編寫(xiě)一個(gè)windows電腦用戶操作記錄查看器,可以讀取系統(tǒng)現(xiàn)有的日志記錄用戶,感興趣的小伙伴可以了解下
    2025-02-02
  • 一個(gè)Python最簡(jiǎn)單的接口自動(dòng)化框架

    一個(gè)Python最簡(jiǎn)單的接口自動(dòng)化框架

    這篇文章主要為大家詳細(xì)介紹了一個(gè)Python最簡(jiǎn)單的接口自動(dòng)化框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評(píng)論

航空| 古交市| 清流县| 连江县| 通州区| 湖州市| 海原县| 建阳市| 察雅县| 淳化县| 花莲县| 南开区| 秦安县| 日土县| 乐东| 思茅市| 高陵县| 黄冈市| 阳山县| 新源县| 泸溪县| 黑山县| 静海县| 永平县| 阳西县| 恭城| 白沙| 灵山县| 明溪县| 轮台县| 繁昌县| 城固县| 多伦县| 无棣县| 德钦县| 元江| 遂平县| 涞源县| 商城县| 阆中市| 中西区|