回覆列表
  • 1 # 小學生線上學

    初學者入門深度學習需要了解Python基礎,以優就業深度學習課程為例,內容包括AI概述及前沿應用成果介紹,人工神經網路及卷積神經網路原理及TensorFlow實戰,迴圈神經網路原理及專案實戰,生成式對抗網路原理及專案實戰,深度學習的分散式處理及專案實戰,深度強化學習及專案實戰,企業級專案實戰-車牌識別專案實戰,深度學習最新前沿技術簡介八個階段。

    開啟深度學習, 對於大部分小白, 程式設計已然令人生畏, 而更加令人難以接受的,那麼,深度學習裡的數學到底難在哪裡? 尋常人等又有如何路徑走通, 請聽慢慢解析。

    線性代數:

    想要學習深度學習, 你第一個需要理解透徹的學問是線性代數。 為什麼? 因為深度學習的根本思想就是把任何事物轉化成高維空間的向量, 強大無比的神經網路, 說來歸齊就是無數的矩陣運算和簡單的非線性變換的結合。 這樣把影象啊, 聲音啊這類的原始資料一層層轉化為我們數學上說的向量。

    什麼image to vector, word to vector 這些, 都在說的一件事情就是這類數學轉化, 不同型別(我們通常稱為非結構化資料)的資料最終成為數學上不可區分的高維空間的向量,所謂萬類歸宗。 線性代數,就是對於這一類高維空間運算做的預設操作模式,可謂上帝的魔術之手。

    因此你要駕駛深度學習這個跑車, 線性代數關係你到是否理解發動機的原理。

    線性代數核心需要掌握的是線性空間的概念和矩陣的各項基本運算,對於線性組合, 線性空間的各類概念, 矩陣的各種基本運算, 矩陣的正定和特徵值等等都要有非常深厚的功力。

    機率論:

    下一個我們需要講解的是什麼呢? 機率論基礎 。 機率論事整個機器學習和深度學習的語言 , 因為無論是深度學習還是機器學習所做的事情是均是預測未知。 預測未知你就一定要對付不確定性。 整個人類對不確定性的描述都包含在了機率論裡面。

    機率論你首先要知道的是關於機率來自頻率主義和貝葉斯主義的觀點, 然後你要了解機率空間這一描述描述不確定事件的工具, 在此基礎上, 熟練掌握各類分佈函式描述不同的不確定性。

    我們最常用的分佈函式是高斯, 但是你會發現高斯是數學書裡的理想, 而真實世界的資料, 指數分佈和冪函式分佈也很重要, 不同的分佈對機器學習和深度學習的過程會有重要的影響,比如它們影響我們對目標函式和正則方法的設定。懂得了這些操作, 會對你解決一些競賽或實戰裡很難搞定的corner case大有裨益。

    一個於機率論非常相關的領域-資訊理論也是深度學習的必要模組,理解資訊理論裡關於熵,條件熵, 交叉熵的理論, 有助於幫助我們瞭解機器學習和深度學習的目標函式的設計, 比如交叉熵為什麼會是各類分類問題的基礎。

    微積分:

    微積分和相關的最佳化理論算是第三個重要的模組吧,線性代數和機率論可以稱得上是深度學習的語言,那微積分和相關的最佳化理論就是工具了。 深度學習, 用層層迭代的深度網路對非結構資料進行抽象表徵, 這不是平白過來的,這是優化出來的,用比較通俗的話說就是調參。 整個調參的基礎,都在於最佳化理論, 而這又是以多元微積分理論為基礎的。這就是學習微積分也很重要的根源。

    最佳化理論:

    機器學習裡的最佳化問題,往往是有約束條件的最佳化,所謂帶著鐐銬的起舞 , 因此拉格朗日乘子法就成了你逃不過的魔咒。

    最佳化理論包含一階和二階最佳化,傳統最佳化理論最核心的是牛頓法和擬牛頓法。

    由於機器學習本身的一個重要內容是正則化,最佳化問題立刻轉化為了一個受限最佳化問題。這一類的問題,在機器學習裡通常要由拉格朗日乘子法解決。

    傳統模型往往遵循奧卡姆剃刀的最簡化原理,能不復雜就不復雜。 而深度學習與傳統統計模型的設計理念區別一個本質區別在於,深度模型在初始階段賦予模型足夠大的複雜度,讓模型能夠適應複雜的場合,而透過加入與問題本身密切相關的約束: 例如全職共享,和一些通用的正則化方法:例如dropout, 減少過擬合的風險。

    而正因為這種複雜度, 使得最佳化變得更加困難,主要由於:

    1, 維度災難, 深度學習動輒需要調整幾百萬的引數,是一個計算量超大的問題。

    2, 目標函式非凸, 具有眾多的鞍點和極小值。 我們無法直接應用牛頓法等凸最佳化中的常見方法,而一般用到一階最佳化(梯度下降),這看起來是比支援向量機裡的二階最佳化簡單,然而正是因為缺乏很好的系統理論, 邊角case變得特別多,反而最終更難。

    3, 深度, 由於深,造成反向傳播的梯度往往越來越弱, 而造成梯度消失問題。 各類深度學習的領先演算法往往是圍繞解決梯度消失問題。

    圖: 臭名昭著的區域性極小值問題。

    我們用一些非常簡單的例項說一下深度學習的幾個主要應用方向與數學的結合:

    階段1

    多層神經網路(DNN)的前傳與回傳(BP)演算法 。

    理解DNN的前向傳遞過程, 這個過程裡包含了線性代數的空間變換思想和簡單的高數。

    這算是第一難度梯級, 你需要掌握的是BP演算法, 這裡含有多元微積分一個最基本的法則: 鏈式求導和jacobian矩陣。 在此處你會對維度產生全新的認識。

    階段2:  

    深度學習的中流砥柱CNN卷積運算 : 這裡應用的數學是卷積本身, 你要透過高數掌握卷積的本質, 體會它與相關性, 傅立葉變換等運算之間的聯絡。 這部分也屬於高數內容, 而卷積運算本身也需要強大的線性代數基礎。

    階段3: RNN網路與微分方程。RNN似乎包含比別家演算法多很多的數學知識,因為RNN的運算和調參你需要理解一些非線性動力系統的基礎知識。如定點,邊緣穩定性和混沌。非線性動力學是物理的內容, 但是大部分講的是數學, 這點物理系的學的會很有優勢。

    階段4:

    深度強化學習。 這時候你的數學工具要包含bellaman 方程,控制論的一些基礎知識,更多關於馬爾可夫過程和時間序列的知識。簡單的控制論你看看會很好的助力你對整個機器學習用於機器人控制的理解,而馬爾科夫決策樹的基礎知識學了你會覺得什麼阿爾法狗阿爾法元都挺簡單的。

    階段5: 

    生成式模型與GAN對抗網路。這部分的數學難度應該與深度強化學習在同一難度上。 需要對機率論有比較深的理解。 最基礎的生成模型你要理解玻爾茲曼機這個與統計物理淵源很深的模型,需要較深的機率統計知識。 GAN生成對抗模型的目標函式含有了大名鼎鼎的博弈論思想。納什均衡都進來了啊, 雖然這時候的最佳化理論已經飛一樣的難, 你還是會有一種融匯貫通的感覺。

    階段6:

    資訊瓶頸理論? 計算神經科學前沿? 鐵哥恭喜你此處要告別塵緣了。 深度學習的盡頭必然要與我們對認知和資訊本質的基礎認識相連。 此處針對希望做深度學習研究的人員。

    基礎教材推薦:

    龔升的《簡明微積分》。這本教材是我見過的最與眾不同的寫作結構,不是按常規教材那樣講導數、微分、微分的應用然後是不定積分、定積分。如果覺得難, 入門從同濟大學的微積分教材入手也不錯。

    線性代數: Introduction to Linear Algebra (Gilbert Strang) MIT的教授,網上還有影片。

  • 2 # 縱觀影視集

    至少有學過Java或者Python這兩種程式語言之一,因為這個課程本來就要求有程式設計基礎的人學習,難度也是比較高的,走的是人工智慧,機器學習這一個領域

  • 3 # 使用者5074441081519

    建議有一些開發基礎,做過Python等相關開發

    或者掌握一定的開發語言,有過相關行業經驗

    或者研究生,有一定的相關知識基礎等等

    想學深度學習的話可以去中公問下,最近中公和中科院聯合推出的一款深度學習課程,比較適合有一定基礎,想進入這個行業的人學習,具體可以去了解下。

  • 中秋節和大豐收的關聯?
  • 怎麼處理夫妻間的關係?