日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

自动微分方法(auto diff)

發布時間:2023/12/15 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 自动微分方法(auto diff) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習機器學習的同學在學習過程中會經常遇到一個問題,那就是對目標函數進行求微分,線性回歸這類簡單的就不說、復雜的如神經網絡類那些求導過程的酸爽。像我還是那種比較粗心的人往往有十九錯,所以說自動求導就十分有必要了,本文主要介紹幾種求導的方式。假設我們的函數為(f(x,y)=x^2y+y+2),目標是求出偏導(frac{partial{f}}{partial{x}})和(frac{partial{f}}{partial{y}})。求導的方式主要分為以下幾種

手動求導法(Manual Differentiation)###

首先準備一張紙和一支筆,根據上學時候學到的求導法則,開始計算。最終得到的結果
(frac{partial{f}}{partial{x}}=2xy)
(frac{partial{f}}{partial{y}}=x^2+1)
上面這個小例子比較簡單,口算即可得到答案,但如果方程比較復雜那就難說了。幸好有自動求導的方法,例如符號求導方法。

符號求解法(Symbolic Differentiation)###

符號求導是根據一些求導法則,進行求導。例如我們大學高數學習的((uv)prime=u'v+v'u),((u+v)'=u'+v'),((frac{u}{v})'=frac{u'v-v'u}{v^2})等等,下圖是(g(x,y)=5+xy)的符號求導工作流程。

原公式在圖的左邊,求導公式在圖的右半部分,求導的過程是先求葉子節點,自下向上。最終對節點進行見之得到求導結果(frac{partial{g}}{partial{x}}=y),這個例子固然簡單,但是對于一個更復雜的公式,那么求導符號圖將會十分的龐大(表達式膨脹),另外對于一些變化的公式(硬代碼)這種方法就無能為力了:

def fun(a,b):
    z=0
    for i in range(100):
        z = a * np.cos(z + i) + z * np.sin(b - i)
    return z

數值求導法(Numerical Differentiation)###

導數的定義是當自變量的增量趨于零時,因變量的增量與自變量的增量之商的極限。

其中(varepsilon)是一個無窮小的數,所以我們可以計算在x=3,y=4這一點對x的偏導數,(f'(x=3,y)=frac{f(3+varepsilon,4)-f(3,4)}{varepsilon}),對應的代碼如下:

def f(x, y):
    return x**2*y + y + 2 
def derivative(f, x, y, x_eps, y_eps):
    return (f(x + x_eps, y + y_eps) - f(x, y)) / (x_eps + y_eps) 
df_dx = derivative(f, 3, 4, 0.00001, 0)
df_dy = derivative(f, 3, 4, 0, 0.00001) 
>>print(df_dx) 
24.000039999805264 
>>print(df_dy)  
10.000000000331966 

通過上面的結果我們發現,得出的結果不是十分的精確,并且在對x和y求偏導的整個過程中,至少需要計算3次(f()),也就是說如果有1000個參數,那么至少需要計算1001次(f()),在神經網絡中,參數巨多,這樣計算效率會比較差。不過這種方法常被用到進行檢驗得到的求導結果是否正確。

前向自動求導法(Forward-Mode Autodiff)###

前向求導是依賴于數值求導和符號求導的一種求解方法,給定公式(a+{varepsilon}b),這種被稱作dual number,其中ab是實數,(varepsilon)是一個無窮小的數,并且({varepsilon}^2=0),舉個栗子,(42 + 24varepsilon),我們可以把它看成42.00000000...24的數值.我們可以通過這種方法(42.0,24.0)來表示,dual number滿足以下的運算法則:

1.(lambda(a+bvarepsilon) = avarepsilon + b{lambda}varepsilon)
2.((a+bvarepsilon)+(c+dvarepsilon) = (a+c)+(b+d)varepsilon)
3.((a+bvarepsilon) imes(c+dvarepsilon) = ac+(ad+bc)varepsilon+(bd){varepsilon}^2=ac+(ad+bc)varepsilon)

還有一點就是(h(a+bvarepsilon)=h(a)+b{ imes}h'(a)varepsilon)。

上圖給出了使用前向求導方法計算出(f(x,y))在x=3,y=4這一點(frac{partial{f}}{partial{x}}(3,4))的偏導,同理求出(frac{partial{f}}{partial{y}}(3,4)),圖中的思路很清晰就不贅述。前向求導方法相對數值求導來說準確率較高,當和數值求導方法一樣如果參數過多的時候效率會比較差,因為這種方法需要遍歷整個圖。

逆向自動求導法(Reverse-Mode Atuodiff)###

TensorFlow采用的是逆向自動求導方法,該方法首先正向遍歷整個圖,計算出每個節點的值;然后逆向(從上到下)遍歷整個圖,計算出節點的偏導值,步驟如下圖所示;節點內藍色的數值表示正向計算出的結果,為了方便表達,我們從下到上,從左到右依次標注為(n_1)到(n_7),可以看到最后的值(n_7)(頂部節點)為42。

在逆向求導過程中使用鏈式求導方法:
(frac{partial{f}}{partial{x}}=frac{partial{f}}{partial{n_i}}{ imes}frac{partial{n_i}}{partial{x}})
先看節點(n_7),作為輸出節點(f=n_7),所以導數值為(frac{partial{f}}{partial{n_7}}=1),
接著向下計算(n_5),(frac{partial{f}}{partial{n_5}}=frac{partial{f}}{partial{n_7}}{ imes}frac{partial{n_7}}{partial{n_5}}),上一步計算出(frac{partial{f}}{partial{n_7}}=1),現在我們只需要計算(frac{partial{n_7}}{partial{n_5}}),從圖中我們知道(n_7=n_5+n_6),可以得出(frac{partial{f}}{partial{x}}=1)。所以(frac{partial{f}}{partial{n_5}}=1),接下來的步驟可以看上面的圖,這里就不贅述了。
逆向自動求導法這種方法十分強大且準確率較高,尤其是有卻多的輸入。這種發方法僅需要正向和逆向遍歷一次即可,這種方法更強大的地方在于能夠解決符號求解法硬代碼的問題。

總結

以上是生活随笔為你收集整理的自动微分方法(auto diff)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野结衣中文字幕一区 | 国产一区二区在线视频 | 亚洲熟悉妇女xxx妇女av | 国产97在线观看 | 日韩精品在线一区二区三区 | 青青草这里只有精品 | 久久精品视频免费 | 熟女少妇内射日韩亚洲 | 五月激情六月丁香 | 福利社午夜影院 | 久久嫩| 欧美日韩成人在线视频 | 欧亚在线视频 | 波多野结衣50连登视频 | av大片网址 | 太久av| 国产又粗又猛又爽又黄的视频在线观看动漫 | 黑人激情视频 | 中文在线字幕免费观 | 国产男男chinese网站 | 原创露脸88av | 亚洲人成无码www久久久 | 亚洲性夜| 欧美日韩一区二区综合 | 免费无毒av | 美女a视频| 日韩精品久久久久久免费 | 国产午夜av| 国产区二区 | 伊人黄 | 精品亚洲一区二区三区 | 四虎免费影视 | 欧美成人自拍视频 | www.中文字幕av | 精品无码人妻一区二区三区 | 久久国产精品综合 | 丰满秘书被猛烈进入高清播放在 | 天堂va欧美ⅴa亚洲va一国产 | 久草免费av | 大桥未久视频在线观看 | 写真福利片hd在线播放 | 日韩在线观看精品 | 午夜一本 | 亚洲福利久久 | 日韩精品1区2区3区 欧美一本 | 337p粉嫩大胆色噜噜狠狠图片 | 亚洲av无码国产在丝袜线观看 | 久久99免费视频 | 国产乱码精品一区二区三区五月婷 | 亚洲啪av永久无码精品放毛片 | 一区二区三区四区在线播放 | 自拍色图| 黄色免费视屏 | 欧美日韩亚洲一区二区 | 欧美一级夜夜爽 | 美女三级网站 | www.成人国产 | 国产三级中文字幕 | 老司机午夜剧场 | 在线三区 | 香蕉av777xxx色综合一区 | 精品蜜桃av| 在线观看视频福利 | 国产精品18久久久 | jizz在线看| 99视频这里有精品 | 久久影片 | 法国空姐电影在线观看 | 日本色悠悠 | 日韩和欧美一区二区 | 日朝毛片 | 懂色av一区二区三区免费 | 欧美综合在线一区 | 亚洲中文字幕视频一区 | 超碰在线小说 | 国产美女明星三级做爰 | 日本中文字幕在线播放 | 无码国产精品一区二区高潮 | 另类第一页 | 在线观看亚洲大片短视频 | 国产av一区不卡 | 久久国产中文字幕 | 国产精品久久久久久久久岛 | 男女草逼视频 | 性欧美8khd高清极品 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 精品国产午夜福利 | 大尺码肥胖女系列av | 成人18视频免费69 | 免费网站看av | 又欲又污又肉又黄短文 | 久久久久99精品成人片直播 | 萌白酱喷水视频 | 中文字幕一区二区在线老色批影视 | 成人国产精品入口免费视频 | 人民的名义第二部 | 日产精品久久久久久久 | 中文字幕一区二区三区乱码在线 | 天天插天天干天天操 |