eta 深度学习 参数_深度学习中的参数梯度推导(一)
必備的數學知識
矩陣微分與求導
前言
深度學習向來被很多人認為是“黑盒”,因為似乎很多人都不清楚深度學習的運作方式,本系列《深度學習中的數學》的連載文章主要目的就是向大家揭開深度學習背后工作的機理。
在正式開始之前,我想說一些題外話。我們經常能聽到關于神經網絡不具備解釋性的言論,而我個人對此的觀點是神經網絡是具有解釋性的,只是很多人在用神經網絡的時候,僅僅停留在調包的層面上,那又怎么可能知道神經網絡是如何運作的呢?這個問題需要從參數的梯度來窺探究竟的,如果你能手撕一遍神經網絡參數的梯度推導公式,再輔以深度學習計算框架,如tensorflow或pytorch的自動求導的驗證,那么原本所謂的黑盒在那時候的你看來就是個徹底的白盒了。
本系列的內容編排大致如下:
一些重要的數學預備知識:矩陣微分的數學準備 + 矩陣微分的應用demo,分為上下兩個部分
DNN的前向傳播算法與反向梯度推導
CNN的前向傳播算法與反向梯度推導
RNN的前向傳播算法與反向梯度推導 + RNN會引起梯度消失的原因分析
LSTM前向傳播算法與反向梯度推導 + LSTM能解決梯度消失的原因分析
借助tensorflow的自動求導工具,驗證上述所有導數推導結論的正確性
注意:
本系列默認讀者已具備梯度,導數,梯度下降等基礎的數學概念
本系列默認讀者已具備基本的線性代數知識
1.1
數學符號
1.2
矩陣導數的定義和布局
根據求導的自變量和因變量是標量,向量還是矩陣,我們有9種可能的矩陣求導定義,形式上如下所示:
-----------簡單難度-----------
總結一點就是,求導結果與因變量同形,這就是所謂的分母布局
總結一點就是,求導結果與自變量同形,這就是所謂的分子布局
感覺出一些東西了嗎,所謂矩陣求導,不過是逐元素進行標量層面的求導然后排列成向量/矩陣罷了。
--------------難度稍大一點----------
1.3
矩陣求導的優勢
之所以要搞矩陣微分,當然不是吃飽了撐著,而是為了在分析大量的神經網絡參數的時候不容易出錯。
由此可見,對于第一個例子,或許我們通過定義法尚且能又快又準地寫出求導結果,但對于第二例子,按照定義出發,從標量對標量求導的角度出發,計算出y后再對x求導就顯得有點繁瑣了,而且還容易出錯。但如果從矩陣求導的角度入手,因為是在向量/矩陣的維度上看待求導操作,所以求導的結果可以很容易寫成向量和矩陣的組合,這樣又高效,形式又簡潔。
1.4
矩陣微分與矩陣求導
上面這個式子左邊看著挺惡心的,但右邊的數學含義是非常明顯的,就是兩個矩陣對應元素相乘然后相加,跟向量的內積類似,這個叫矩陣的內積。
1.5
矩陣微分性質歸納
上篇小結
至此,我們已了解了為什么要學矩陣求導,以及各種常見情況下(向量對矩陣,矩陣對向量,以及矩陣對矩陣的導數沒提)的導數定義。此外,我們學習到矩陣微分和矩陣導數的關系,以及一些常見的矩陣微分性質。在下篇中,我們將介紹矩陣導數中的鏈式法則以及專門針對標量對矩陣/向量求導的核心方法-跡技巧。最后,我們將用一個2層多分類的神經網絡作為例子,演習一下如何用矩陣求導來得到神經網絡中的參數的梯度。
深度學習
TO BE CONTINUED
數學
文章作者:?中國電信研究院 | 劉心唯
文章內容系作者個人觀點,不代表融智未來公眾號的觀點或立場。
你們點點“分享”,給我充點兒電吧~
總結
以上是生活随笔為你收集整理的eta 深度学习 参数_深度学习中的参数梯度推导(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdfs user 连接_Python入
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习