高效「煉丹」必備技能:一文實現深度學習數學原理入門,還有吳恩達...

2021-01-08 澎湃新聞

賈浩楠 發自 凹非寺

量子位 報導 | 公眾號 QbitAI

哪個程式設計師不想高效「煉丹」?

尤其是深度學習算法開發人員,追求模型結構優化和提高編程效率是永遠的目標。

但是,如果只做代碼「搬運工」,不了解神經網絡背後的數學原理,很難對項目有深刻全面的理解,debug反而會更難、耗時更長。

就以深度學習中常用的神經網絡來說,典型模型包括多層感知機(DLP)、卷積神經網絡(CNN)、循環神經網絡(RNN)等等,不同的項目,對神經網絡的調參需求也不相同。

下面的深度學習數學基礎詳解,以DLP為例,你讀完後會對它的數學基礎有全面的了解,並且熟悉用數學解釋算法的基本思路。

除了DLP,文末還一併為你準備了RNN、CNN數學原理,以及吳恩達老師的AI數學基礎課程。

一文實現AI數學基礎入門,還在等什麼?

多層感知機的數學表達

多層感知機的數學表達分為4個部分:學習算法、參數初始化、激活函數、優化函數。

學習算法

神經網絡的學習過程可以看做是參數的權重在網絡中經歷的不同回歸,也就是說我們的算法是要找出一個使參數得到最佳輸出的回歸方法,由此我們定義一個目標函數:損失函數L(loss function);還有一個參數J,它是訓練集真實與估計值的量化表示。

我們通過正向和反向傳播兩種方法來使J最小化,學習算法可以表示為:

正向傳播:

其中m是訓練集的大小,i是參數在網絡中的迭代次數,y是模型的輸出,θ是模型參數。

反向傳播:

參數初始化

零初始化:使所有參數的權重和偏差都為零。

隨機初始化:不斷將隨機噪音賦值給參數。如果噪音過大,可能會造成某些激活函數溢出,並影響到後續的梯度計算。

Xavier方法:取值於正態分布的中心變量:

Glorot方法:同樣取值於正態分布,方法不同。

激活函數

激勵函數的功能是選擇在網絡中被傳遞的具體參數,更深一層的理解是,允許網絡中被有效激活的神經元傳遞訓練數據。

一下是一些常用的激活函數:

優化函數

風險,是神經網絡中全部數據集的損失,是我們需要優化的對象,定義為:

其中,X是一個可觀測的連續空間中,與Y有關的元素,p(X,Y)是在這一空間中觀察到點(X,Y)的邊緣概率。

經驗風險

在沒有全部數據集,或全部數據集過大的情況下,我們不考慮參數分布情況,僅將風險估計的範圍限定在一個有代表性的數據集上,這種情況下,損失函數可以表示為:

m是代表數據集的大小。

於是可以得出:

梯度下降法

我們需要構造一個可微凸函數J,其任何一個局部的最小值都是整個函數的最小值,那麼求這個函數的最小值就相當於解一個方程∇J(θ)=0,設它的解為θ⋆,於是我們得到:

學習率遞減

實踐證明,隨著數據迭代次數增加,模型會逐漸降低學習率。現在已經有許多成熟地描述學習率遞減的公式。

優化函數還包含輸入優化、網絡數據丟失正則化、反向傳播正則化等,限於篇幅將連結放在文末。

其他有關深度學習的數學基礎的參考連結

DLP中的其他優化函數,以及參數正向、反向傳播時損失函數詳細推推導過程

https://www.ismailmebsout.com/deep-learning/

除了DLP,其他神經網絡RNN、CNN等也有詳細的數學表達推導過程

CNNhttps://www.ismailmebsout.com/Convolutional%20Neural%20Network%20-%20Part%201/

RNNhttps://www.ismailmebsout.com/recurrent-neural-networks/

deep learning數學基礎入門

http://deeploria.gforge.inria.fr/cours/cours1.html#/definitions

Deep Learning Specialization. Master Deep Learning, and Break into AI,吳恩達

https://fr.coursera.org/specializations/deep-learning

Antoine Henrot的優化算法課程

http://www.iecl.univ-lorraine.fr/~Antoine.Henrot/english.html

— 完 —

本文系網易新聞•網易號特色內容激勵計劃籤約帳號【量子位】原創內容,未經帳號授權,禁止隨意轉載。

原標題:《高效「煉丹」必備技能:一文實現深度學習數學原理入門,還有吳恩達老師親授課程》

閱讀原文

相關焦點

  • 吳恩達授課,斯坦福CS230深度學習課程資源開放
    課程簡介:深度學習是 AI 領域中最受歡迎的技能之一。這門課程將幫助你學好深度學習。你將學到深度學習的基礎,理解如何構建神經網絡,並學習如何帶領成功的機器學習項目。你將學到卷積神經網絡(CNN)、循環神經網絡(RNN)、長短期記憶網絡(LSTM)、Adam 優化器、Dropout 方法、BatchNorm 方法、Xavier/He 初始化方法等。
  • 想入門機器學習?機器之心為你準備了一份中文資源合集
    機器之心也介紹過許多數學基礎與概念:基礎入門:深度學習矩陣運算的概念和代碼實現想了解概率圖模型?你要先理解圖論的基本定義與形式深度神經網絡中的數學,對你來說會不會太難?Reddit 熱門話題:如何閱讀並理解論文中的數學內容?
  • 我在Google用AI研究基因,入門從吳恩達的課程開始
    但之後了解到機器學習的原理,毫無疑問,如果能夠將我們的研究與機器學習結合,必然能大大提升效率,所以我們決定將機器學習應用到基因工程研究中。起步階段,最關鍵的是進一步了解機器學習的原理。於是在Google員工的推薦下,我把Coursera上吳恩達(Andrew Ng)的機器學習課程學習了一遍,有了不少入門知識和樂趣,如果現在讓我推薦入門課程,我想沒有比吳恩達的課程更好的了。
  • 最熱門的深度學習框架TensorFlow入門必備書籍
    但進入機器學習和人工智慧領域並不是一件簡單的事情,目前市場上有許多大量的學習資源,許多開發者和想要進入的愛好者往往很難找到適合自己的發展路徑。其實,早在 2015 年底,谷歌就開源了內部使用的深度學習框架 TensorFlow 。眾多研究表明,Tensorflow 是研究深度學習的首選平臺。
  • 吳恩達 NIPS 2016:利用深度學習開發人工智慧應用的基本要點(含...
    今日,在第 30 屆神經信息處理系統大會(NIPS 2016)中,百度首席科學家吳恩達教授發表演講:《利用深度學習開發人工智慧應用的基本要點(Nuts and Bolts of Building Applications using Deep Learning)》。
  • 深度學習入門教程:手把手帶你用Numpy實現卷積神經網絡(一)
    本教程由深度學習中文社區(Studydl.com)持續發布與更新, 教程中完整代碼已上傳至github上, 可關注我百家號後發送消息"CNN代碼", 獲得地址.前言Numpy是一個非常好用的python科學計算的庫,CNN是現在視覺領域深度學習的基礎之一。
  • 吳恩達deeplearning.ai五項課程完整筆記了解一下?
    項目地址:https://github.com/mbadry1/DeepLearning.ai-Summary上周吳恩達在推特上展示了一份由 TessFerrandez 完成的深度學習專項課程信息圖,這套信息圖優美地記錄了深度學習課程的知識與亮點。這一份信息圖的詳細介紹請查看:這是一份優美的信息圖,吳恩達點讚的 deeplearning.ai 課程總結 。
  • 吳恩達NIPS2016:利用深度學習開發人工智慧應用的基本要點含唯一的...
    雷鋒網按:為了方便讀者學習和收藏,雷鋒網特地把吳恩達教授在NIPS 2016大會中的PPT做為中文版,由三川和亞峰聯合編譯並製作。今日,在第 30 屆神經信息處理系統大會(NIPS 2016)中,百度首席科學家吳恩達教授發表演講:《利用深度學習開發人工智慧應用的基本要點(Nuts and Bolts of Building Applications using Deep Learning)》。
  • 實踐入門NLP:基於深度學習的自然語言處理
    特別是最近兩年,基於深度學習的自然語言處理逐漸取得了一定進展,在人機對話、問答系統、語言翻譯等方向的應用也一直是自然語言處理中的熱門話題,而這些應用的實現,基本依賴於底層技術和模型的進步,再加上自然語言處理領域也算是一個多學科交叉的行業,自然語言處理的未來發展對於很多相關學科和方向都具有深遠的影響力。
  • 吳恩達演講直指AI落地三大挑戰,並提出解決方案
    隨著人工智慧的不斷發展,大量先進算法以及配套硬體設施不斷湧現,研究人員憑藉新算法等不斷刷新 SOTA 記錄,但是在科研中、論文中實現的高精度性能,很多卻不能應用於實際的生產中。AI 離真正的落地還有多遠?現階段,許多公司和研究團隊正在努力將研究轉化為實際的生產部署。
  • 想入門人工智慧? 這些優質的 AI 資源絕對不要錯過
    越來越多的企業都開始對人工智慧進行投資,並在尋找具有AI技能的人才。隨著市場對AI人才的需求不斷增長,許多機構都開始提供相應的培訓課程,而且價格和質量各不相同。與其他所有學習一樣,在投入大量精力和金錢後,你當然不希望發現浪費了時間卻沒學到應獲得的技能。那麼對於想入門人工智慧的人群來說,應該從哪兒開始呢?本文列出了一些優質AI學習資源。
  • 深度學習自學指南:6個月,從基礎知識到模型構建
    原作:Bargava安妮 編譯自 Medium量子位 出品 | 公眾號 QbitAI給你6個月的時間開始學習深度學習,能夠達到怎樣的程度?在這篇文章中,數據科學培訓老師Bargava就帶你半年入門深度學習。在這份攻略中,我將給大家講講零基礎入門深度學習可行性強的資料和學習方法。
  • 關於AI學習方法的思考——產品經理入門人工智慧
    下面我僅從【現有產業+機器學習】角度提出我對AI產品經理可能工作內容的幾點思考:觀點一:AI產品經理需要了解技術現狀這一觀點上,我認為目前AI技術相對是不夠成熟的,那麼了解好技術可能實現的能力範圍,技術本身所需要的成本還有當前存在的技術瓶頸,可能是AI產品經理需要具備的基礎。
  • 深度學習和機器學習的線性代數入門
    協方差矩陣特徵值與特徵向量正交性正交集擴張空間基主成分分析(PCA)矩陣分解總結引言機器學習和深度學習建立在數學原理和概念之上,因此AI學習者需要了解基本數學原理。神經元是深度學習的基本單位,該結構完全基於數學概念,即輸入和權重的乘積和。至於Sigmoid,ReLU等等激活函數也依賴於數學原理。
  • 一文弄清深度學習、TensorFlow和張量之間的關係
    原標題:一文弄清深度學習、TensorFlow和張量之間的關係 我們今天所用的許多深度學習系統都是基於張量代數的,比如谷歌的TensorFlow,但是張量代數與深度學習的關係到底如何?
  • 近年來深度神經網絡模型不斷迎來重大突破
    近年來深度神經網絡模型不斷迎來重大突破,由深度學習為代表的機器學習相關研究取得了長足進步。但對機器學習研究普及者和研究機構來說,由於對機器學習原理、應用實踐以及技術應用多方面的缺乏概念理解,這些機器學習技術發展存在顯著的「彎路」。
  • 一文讀懂深度學習中的矩陣微積分,fast.ai創始人&ANTLR之父出品
    這位ANTLR之父和fast.ai創始人Jeremy Howard一起推出了一篇免費教程,旨在幫你快速入門深度學習中的矩陣微積分。簡明,易懂。DeepMind研究科學家Andrew Trask評價說:如果你想跳過不相干的內容,一文看盡深度學習中所需的數學知識,那麼就是這份資源沒錯了。只需一點關於微積分和神經網絡的基礎知識,就能單刀直入,開始以下的學習啦。
  • 深度學習引爆下一次科技革命
    回到「海量數據到優秀產品」這一環節,這些數據處理效率的指數級增長其實是來源於我們對網際網路產品的每一次微小的使用以及相應的每次數據的貢獻,而這些匯集起來的數據再藉助深度學習算法就會為會我們輸出更加準確的結果,提供更好的服務,其產生的效果也會像滾雪球一樣越來越大。這就是吳恩達在今天的講座中提到的深度學習所促成的完整流程,也是他之前提到的人工智慧正循環。
  • 觀點| 我們該如何學習機器學習中的數學
    本文的寫作目的是介紹構建機器學習產品或進行相關學術研究所必需的數學背景,以及數學在工程和研究中的重要性。這些建議是根據我和機器學習工程師、研究者和教育者交流而得到的,當然也有我自己在機器學習研究和業界工作中的個人經驗。為了構建必備的數學背景,我首先提出不同的思維模式和策略,幫助大家在學校之外也可以接受數學教育。