深度學習中的「深度」究竟怎麼理解?

2021-01-08 雷鋒網

雷鋒網按:本文原作者 YJango,本文原載於其知乎專欄——超智能體。雷鋒網(公眾號:雷鋒網)已獲得原作者授權。

介紹

為了研究神經網絡,我們必須要對什麼網絡是什麼有一個更直觀的認識。

一、基本變換:層

神經網絡是由一層一層構建的,那麼每層究竟在做什麼?

每層神經網絡的數學理解:用線性變換跟隨著非線性變化,將輸入空間投向另一個空間。

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/3ff9ebd942879748f95d91555321698f.jpg" data-rawwidth="144" data-rawheight="164" class="content_image" width="144" _src="https://static.leiphone.com/uploads/new/article/pic/201708/3ff9ebd942879748f95d91555321698f.jpg"/>

每層神經網絡的物理理解:通過現有的不同物質的組合形成新物質。二、理解視角:

現在我們知道了每一層的行為,但這種行為又是如何完成識別任務的呢?

數學視角:「線性可分」

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/4a29ebcdbc580732f249253dfd5c6325.jpg" data-rawwidth="370" data-rawheight="63" class="content_image" width="370" _src="https://static.leiphone.com/uploads/new/article/pic/201708/4a29ebcdbc580732f249253dfd5c6325.jpg"/>


<img src="https://static.leiphone.com/uploads/new/article/pic/201708/08662ec286aa83566fc02ad36b7ab184.jpg" data-rawwidth="197" data-rawheight="204" class="content_image" width="197" _src="https://static.leiphone.com/uploads/new/article/pic/201708/08662ec286aa83566fc02ad36b7ab184.jpg"/>

神經網絡的解決方法依舊是轉換到另外一個空間下,用的是所說的 5 種空間變換操作。比如下圖就是經過放大、平移、旋轉、扭曲原二維空間後,在三維空間下就可以成功找到一個超平面分割紅藍兩線 (同 SVM 的思路一樣)。

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/6d3997dcebb8b2d431a292c3bef44d97.jpg" data-rawwidth="197" data-rawheight="198" class="content_image" width="197" _src="https://static.leiphone.com/uploads/new/article/pic/201708/6d3997dcebb8b2d431a292c3bef44d97.jpg"/>

上面是一層神經網絡可以做到的,如果把 當做新的輸入再次用這 5 種操作進行第二遍空間變換的話,網絡也就變為了二層。最終輸出是。 設想網絡擁有很多層時,對原始輸入空間的 「扭曲力」 會大幅增加,如下圖,最終我們可以輕鬆找到一個超平面分割空間。

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/1a059f45f735f249b448c97280e550ef.gif" data-rawwidth="239" data-rawheight="233" data-thumbnail="https://static.leiphone.com/uploads/new/article/pic/201708/2e5cd18516c20235636108232aaf533e.jpg" class="content_image" width="239" _src="https://static.leiphone.com/uploads/new/article/pic/201708/1a059f45f735f249b448c97280e550ef.gif"/>


當然也有如下圖失敗的時候,關鍵在於 「如何扭曲空間」。所謂監督學習就是給予神經網絡網絡大量的訓練例子,讓網絡從訓練例子中學會如何變換空間。每一層的權重 W 就控制著如何變換空間,我們最終需要的也就是訓練好的神經網絡的所有層的權重矩陣。

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/eb7d8c68190405b4d0f7a65869c1b227.gif" data-rawwidth="239" data-rawheight="233" data-thumbnail="https://static.leiphone.com/uploads/new/article/pic/201708/adf56ee267562ede061b26adf997ef6f.jpg" class="content_image" width="239" _src="https://static.leiphone.com/uploads/new/article/pic/201708/eb7d8c68190405b4d0f7a65869c1b227.gif"/>


這裡有非常棒的可視化空間變換 demo,一定要打開嘗試並感受這種扭曲過程。更多內容請看 Neural Networks, Manifolds, and Topology。

線性可分視角:神經網絡的學習就是學習如何利用矩陣的線性變換加激活函數的非線性變換,將原始輸入空間投向線性可分 / 稀疏的空間去分類 / 回歸。
增加節點數:增加維度,即增加線性轉換能力。
增加層數:增加激活函數的次數,即增加非線性轉換次數。
物理視角:「物質組成」

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/3272533ad6055f6af84000f0d9483497.jpg" data-rawwidth="488" data-rawheight="340" class="origin_image zh-lightbox-thumb" width="488" data-original="https://pic1.zhimg.com/v2-3ec7216f7ab84dac089836b166c0ae28_r.jpg" _src="https://static.leiphone.com/uploads/new/article/pic/201708/3272533ad6055f6af84000f0d9483497.jpg"/>


<img src="https://static.leiphone.com/uploads/new/article/pic/201708/2645069b637ec0528082379f59f7ce4b.png" data-rawwidth="624" data-rawheight="218" class="origin_image zh-lightbox-thumb" width="624" data-original="https://pic4.zhimg.com/v2-82f05552fd2ddde28a0ef20814d7acbb_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/2645069b637ec0528082379f59f7ce4b.png"/>

物質組成視角:神經網絡的學習過程就是學習物質組成方式的過程。
增加節點數:增加同一層物質的種類,比如 118 個元素的原子層就有 118 個節點。
增加層數:增加更多層級,比如分子層,原子層,器官層,並通過判斷更抽象的概念來識別物體。
三、神經網絡的訓練

知道了神經網絡的學習過程就是學習控制著空間變換方式(物質組成方式)的權重矩陣後,接下來的問題就是如何學習每一層的權重矩陣

如何訓練:

既然我們希望網絡的輸出儘可能的接近真正想要預測的值。那麼就可以通過比較當前網絡的預測值和我們真正想要的目標值,再根據兩者的差異情況來更新每一層的權重矩陣(比如,如果網絡的預測值高了,就調整權重讓它預測低一些,不斷調整,直到能夠預測出目標值)。因此就需要先定義 「如何比較預測值和目標值的差異」,這便是損失函數目標函數(loss function or objective function),用于衡量預測值和目標值的差異的方程。loss function 的輸出值(loss)越高表示差異性越大。那神經網絡的訓練就變成了儘可能的縮小 loss 的過程。 所用的方法是梯度下降(Gradient descent):通過使 loss 值向當前點對應梯度的反方向不斷移動,來降低 loss。一次移動多少是由學習速率(learning rate)來控制的。

梯度下降的問題:

然而使用梯度下降訓練神經網絡擁有兩個主要難題。

1、局部極小值

梯度下降尋找的是 loss function 的局部極小值,而我們想要全局最小值。如下圖所示,我們希望 loss 值可以降低到右側深藍色的最低點,但 loss 有可能 「卡」 在左側的局部極小值中。

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/8d1f34de5b4492625d426cab466c9f8d.png" data-rawwidth="420" data-rawheight="250" class="content_image" width="420" _src="https://static.leiphone.com/uploads/new/article/pic/201708/8d1f34de5b4492625d426cab466c9f8d.png"/>

試圖解決 「卡在局部極小值」 問題的方法分兩大類:

調節步伐:調節學習速率,使每一次的更新 「步伐」 不同。常用方法有:

隨機梯度下降(Stochastic Gradient Descent (SGD):每次只更新一個樣本所計算的梯度

小批量梯度下降(Mini-batch gradient descent):每次更新若干樣本所計算的梯度的平均值

動量(Momentum):不僅僅考慮當前樣本所計算的梯度;Nesterov 動量(Nesterov Momentum):Momentum 的改進

Adagrad、RMSProp、Adadelta、Adam:這些方法都是訓練過程中依照規則降低學習速率,部分也綜合動量

優化起點:合理初始化權重(weights initialization)、預訓練網絡(pre-train),使網絡獲得一個較好的 「起始點」,如最右側的起始點就比最左側的起始點要好。常用方法有:高斯分布初始權重(Gaussian distribution)、均勻分布初始權重(Uniform distribution)、Glorot 初始權重、He 初始權、稀疏矩陣初始權重(sparse matrix)

2、梯度的計算

機器學習所處理的數據都是高維數據,該如何快速計算梯度、而不是以年來計算。 其次如何更新隱藏層的權重? 解決方法是:計算圖:反向傳播算法這裡的解釋留給非常棒的 Computational Graphs: Backpropagation需要知道的是,反向傳播算法是求梯度的一種方法。如同快速傅立葉變換(FFT)的貢獻。 而計算圖的概念又使梯度的計算更加合理方便。

基本流程圖:

下面就結合圖簡單瀏覽一下訓練和識別過程,並描述各個部分的作用。要結合圖解閱讀以下內容。但手機顯示的圖過小,最好用電腦打開。

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/1e3e67cb624a1d4ff378927325247bf3.png" data-rawwidth="734" data-rawheight="339" class="origin_image zh-lightbox-thumb" width="734" data-original="https://pic4.zhimg.com/v2-69c014a15afde18a4086950c30e97d1b_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/1e3e67cb624a1d4ff378927325247bf3.png"/>

收集訓練集(train data):也就是同時有 input 以及對應 label 的數據。每個數據叫做訓練樣本(sample)。label 也叫 target,也是機器學習中最貴的部分。上圖表示的是我的資料庫。假設 input 本別是 x 的維度是 39,label 的維度是 48。

設計網絡結構(architecture):確定層數、每一隱藏層的節點數和激活函數,以及輸出層的激活函數和損失函數。上圖用的是兩層隱藏層(最後一層是輸出層)。隱藏層所用激活函數 a() 是 ReLu,輸出層的激活函數是線性 linear(也可看成是沒有激活函數)。隱藏層都是 1000 節點。損失函數 L() 是用於比較距離 MSE:mean((output - target)^2)。MSE 越小表示預測效果越好。訓練過程就是不斷減小 MSE 的過程。到此所有數據的維度都已確定:

數據預處理(preprocessing):將所有樣本的 input 和 label 處理成能夠使用神經網絡的數據,label 的值域符合激活函數的值域。並簡單優化數據以便讓訓練易於收斂。比如中心化(mean subtraction)、歸一化(normalization)、主成分分析(PCA)、白化(whitening)。假設上圖的 input 和 output 全都經過了中心化和歸一化。

權重初始化(weights initialization):在訓練前不能為空,要初始化才能夠計算 loss 從而來降低。初始化決定了 loss 在 loss function 中從哪個點開始作為起點訓練網絡。上圖用均勻分布初始權重(Uniform distribution)。

訓練網絡(training):訓練過程就是用訓練數據的 input 經過網絡計算出 output,再和 label 計算出 loss,再計算出 gradients 來更新 weights 的過程。

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/cd1896d89059e20ecdc3d02446fda640.png" data-rawwidth="469" data-rawheight="227" class="origin_image zh-lightbox-thumb" width="469" data-original="https://pic4.zhimg.com/v2-0c0e7f5ffa98c2c1eb87763dd5d1d9a3_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/cd1896d89059e20ecdc3d02446fda640.png"/>

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/e9e9a2c61a83c72b995da42d30953f9f.jpg" data-rawwidth="2000" data-rawheight="1600" class="origin_image zh-lightbox-thumb" width="2000" data-original="https://pic1.zhimg.com/v2-a675e692f7f7755d91bcdba5e988e910_r.jpg" _src="https://static.leiphone.com/uploads/new/article/pic/201708/e9e9a2c61a83c72b995da42d30953f9f.jpg"/>

註:此部分內容不是這篇文章的重點,但為了理解深層神經網絡,需要明白最基本的訓練過程。 若能理解訓練過程是通過梯度下降儘可能縮小 loss 的過程即可。 若有理解障礙,可以用 python 實踐一下從零開始訓練一個神經網絡,體會整個訓練過程。若有時間則可以再體會一下計算圖自動求梯度的方便利用 TensorFlow。

打開網頁後,總體來說,藍色代表正值,黃色代表負值。拿分類任務來分析。

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/2a634170594c37b7566a8cf3ffab820d.png" data-rawwidth="173" data-rawheight="169" class="content_image" width="173" _src="https://static.leiphone.com/uploads/new/article/pic/201708/2a634170594c37b7566a8cf3ffab820d.png"/>


<img src="https://static.leiphone.com/uploads/new/article/pic/201708/64298fa8de56e12ac4d93bdf9989a401.png" data-rawwidth="92" data-rawheight="228" class="content_image" width="92" _src="https://static.leiphone.com/uploads/new/article/pic/201708/64298fa8de56e12ac4d93bdf9989a401.png"/>


<img src="https://static.leiphone.com/uploads/new/article/pic/201708/3476511e93d170a5702a719b82cd3e74.png" data-rawwidth="315" data-rawheight="136" class="content_image" width="315" _src="https://static.leiphone.com/uploads/new/article/pic/201708/3476511e93d170a5702a719b82cd3e74.png"/>(1)

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/e34ff5b8369daac328df9994fc3175ab.png" data-rawwidth="294" data-rawheight="123" class="content_image" width="294" _src="https://static.leiphone.com/uploads/new/article/pic/201708/e34ff5b8369daac328df9994fc3175ab.png"/>(2)

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/e4010bdb6584992a4113191bacd09e09.png" data-rawwidth="1116" data-rawheight="363" class="origin_image zh-lightbox-thumb" width="1116" data-original="https://pic2.zhimg.com/v2-dff3f6e72881ebd222414eabb9504671_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/e4010bdb6584992a4113191bacd09e09.png"/>

上圖中所有在黃色背景顏色的點都會被分類為 「黃點 「,同理,藍色區域被分成藍點。在上面的分類分布圖中你可以看到每一層通過上一層信息的組合所形成的。權重(那些連接線)控制了 「如何組合」。神經網絡的學習也就是從數據中學習那些權重。Tensorflow playground 所表現出來的現象就是 「在我文章裡所寫的 「物質組成思想」,這也是為什麼我把 Tensorflow playground放在了那一部分。

不過你要是把 Tensorflow 的個名字拆開來看的話,是 tensor(張量)的 flow(流動)。Tensorflow playground 的作者想要闡述的側重點是 「張量如何流動」 的。

5 種空間變換的理解:Tensorflow playground 下沒有體現 5 種空間變換的理解。需要打開這個網站嘗試:ConvNetJS demo: Classify toy 2D data

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/632ae02d5d23cc0b0fe177ddbddb34e5.png" data-rawwidth="841" data-rawheight="425" class="origin_image zh-lightbox-thumb" width="841" data-original="https://pic2.zhimg.com/v2-55811ac3d91f56f19543714b1b5abe49_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/632ae02d5d23cc0b0fe177ddbddb34e5.png"/>

左側是原始輸入空間下的分類圖,右側是轉換後的高維空間下的扭曲圖。

<img src="https://static.leiphone.com/uploads/new/article/pic/201708/ac25860b3ae70a8765ec17a05c708fbf.png" data-rawwidth="848" data-rawheight="417" class="origin_image zh-lightbox-thumb" width="848" data-original="https://pic4.zhimg.com/v2-a81a10592b96a1d2b067e1d4ae3951e7_r.png" _src="https://static.leiphone.com/uploads/new/article/pic/201708/ac25860b3ae70a8765ec17a05c708fbf.png"/>

最終的扭曲效果是所有綠點都被扭曲到了一側,而所有紅點都被扭曲到了另一側。這樣就可以線性分割(用超平面(這裡是一個平面)在中間分開兩類)

四、表現原因

文章的最後稍微提一下深層神經網絡。深層神經網絡就是擁有更多層數的神經網絡。

按照上文在理解視角中所述的觀點,可以想出下面兩條理由關於為什麼更深的網絡會更加容易識別,增加容納變異體(variation)(紅蘋果、綠蘋果)的能力、魯棒性(robust)。

數學視角:變異體(variation)很多的分類的任務需要高度非線性的分割曲線。不斷的利用那 5 種空間變換操作將原始輸入空間像 「捏橡皮泥一樣」 在高維空間下捏成更為線性可分 / 稀疏的形狀。

物理視角:通過對 「抽象概念」 的判斷來識別物體,而非細節。比如對 「飛機」 的判斷,即便人類自己也無法用語言或者若干條規則來解釋自己如何判斷一個飛機。因為人腦中真正判斷的不是是否 「有機翼」、「能飛行」 等細節現象,而是一個抽象概念。層數越深,這種概念就越抽象,所能涵蓋的變異體就越多,就可以容納戰鬥機,客機等很多種不同種類的飛機。

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 深度| 理解深度學習中的卷積
    以下是正文:卷積現在可能是深度學習中最重要的概念。正是靠著卷積和卷積神經網絡,深度學習才超越了幾乎其他所有的機器學習手段。但卷積為什麼如此強大?它的原理是什麼?在這篇博客中我將講解卷積及相關概念,幫助你徹底地理解它。網絡上已經有不少博客講解卷積和深度學習中的卷積,但我發現它們都一上來就加入了太多不必要的數學細節,艱深晦澀,不利於理解主旨。
  • 運用深度學習教機器人理解自然語言
    他主要研究機器學習和人工智慧如何使用在文本和知識中讓計算機變得更智能。他在德克薩斯農工大學獲得心理學學士學位和工商管理碩士,在德克薩斯大學獲得計算機博士學位。譯者/趙屹華 審校/劉帝偉、朱正貴 責編/周建丁。在深度學習出現之前,文字所包含的意思是通過人為設計的符號和結構傳達給計算機的。
  • 形象理解深度學習中八大類型卷積
    本文總結了深度學習中常用的八大類型的卷積,以非常形象的方式幫助你建立直覺理解,為你的深度學習提供有益的參考。分別是單通道卷積、多通道卷積、3D卷積、1 x 1卷積、轉置卷積、擴張卷積、可分離卷積、分組卷積。
  • 前沿| 深度學習的概念、深度、策略、效果及其啟示
    三 深度學習概念的探析 深度學習是一個不斷變化的概念,國內外研究者從不同角度對其進行了界定與研究。目前,研究中大致出現了深度學習的學習方式說、學習過程說、學習結果說,這三種理解方式也代表了深度學習發展的不同階段。 在早期研究中,大多數研究者認為深度學習是相對於淺層學習的一種學習方式。
  • 深度學習與統計力學(I) :深度學習中的基礎理論問題
    系列預告深度學習統計力學(I) :深度學習中的基礎理論問題深度學習統計力學(IV) :深層網絡的信號傳播和初始化深度學習統計力學(VI) :通過概率模型進行「深度想像」1 介紹深層神經網絡具有多個隱含層[1],在許多領域都取得了顯著的成功,從機器視覺[2]、語音識別[3]、自然語言處理[4]、強化學習[5],到神經科學[6、7]、心理學[8、
  • 要理解深度學習,必須突破常規視角去理解優化
    深度學習算法有一些重要的特性並不總是反映在目標值中。所以,要加深對深度學習的理解,還得超越常規視角。但我認為,如果你的目標是對深度學習進行數學理解的話,那麼從常規視角去理解優化明顯是不夠的。優化的常規視角:儘快找到目標最小可能值的解決方案。先驗上來說,並不確定是否所有的學習都要優化一個目標。大腦中的學習是否也如此是神經科學中一個長期存在的開放性問題。大腦的組成部分似乎已經通過各種進化事件被重新利用/拼湊在一起,整個組合可能或不可以歸結為目標的優化。
  • 機器學習與深度學習有什麼區別?
    近年來,隨著科技的快速發展,人工智慧不斷進入我們的視野中。作為人工智慧的核心技術,機器學習和深度學習也變得越來越火。一時間,它們幾乎成為了每個人都在談論的話題。那麼,機器學習和深度學習到底是什麼,它們之間究竟有什麼不同呢? 什麼是機器學習?
  • 識字中的深度學習
    一些生字在課本中以隨文識字的方式呈現,並進行了字音、字形、字義方面的設計,充分發揮了語境識字的強大功能。同時,將漢字的筆畫、偏旁及筆順規則等相關基本知識穿插在每一個單元中,在課本要求掌握的生字上方都標註了筆順,在要寫的生字旁明確標註新出現的筆畫,在每一課的識字環節增設部首學習專欄,讓學生學會運用字理識字析詞,有助於學生形成良好的認字和寫字習慣。統編教材更加關注識字的基礎學習。
  • 理解神經網絡:從神經元到RNN、CNN、深度學習
    並且形成了很多種類,像CNN(卷積神經網絡),RNN,自編碼,深度學習等等。神經網絡對於數據科學和或者機器學習從業者,就像線性回歸對於統計學家一樣。因此,對神經網絡是什麼有一個基本的理解是有必要的,比如,它是怎麼構成的,它能處理問題的範圍以及它的局限性是什麼。這篇文章嘗試去介紹神經網絡,從一個最基礎的構件,即一個神經元,深入到它的各種流行的種類,像CNN,RNN等。
  • 如何理解深度學習分布式訓練中的large batch size與learning rate...
    雷鋒網 AI科技評論按,本文源自譚旭在知乎問題【如何理解深度學習分布式訓練中的large batch size與learning rate的關係?】下的回答,雷鋒網 AI科技評論獲其授權轉載。問題詳情:在深度學習進行分布式訓練時,常常採用同步數據並行的方式,也就是採用大的batch size進行訓練,但large batch一般較於小的baseline的batch size性能更差,請問如何理解調試learning rate能使large batch達到small batch同樣的收斂精度和速度?
  • 史丹福大學馬騰宇:無法理解現有的深度學習算法?那就設計一個能...
    「雖然我們無法理解現有的深度學習算法,但我們可以設計我們既能理解又能保證有效的新算法。」我們下面來看馬騰宇的報告內容:一、為什麼過參數化的深度學習模型能實現泛化?深度學習是馬騰宇研究組的重要研究方向,他們的主要研究思路是從方法論層面,通過一些數學或理論的分析從技術的角度提高深度學習模型的性能。
  • 王海峰出席CCHI2018 深度解析「多模態深度語義理解」
    同時,王海峰是百度人工智慧的奠基者和領導者,為百度創建和發展了自然語言處理、知識圖譜、語音、視覺、深度學習等AI核心技術,並成立AI技術平臺體系(AIG)擔任總負責人,致力於AI相關技術的研究及其應用落地。百度大腦迭代更新 逐步加深對客觀世界的認知在大會報告中,王海峰分享了百度大腦的最新進展。
  • 用深度學習理解遙感圖像,識別效率提升90倍 | PaddlePaddle出品
    可以用深度學習。現在, 遙感所是這樣做的:針對一個地方構建樣本庫,然後基於樣本庫中的圖像訓練深度學習模型。第二年,這一地方的環境和氣候發生變化,只需要把新的圖像加進樣本庫,然後重新把模型訓練一遍就可以了。同時,這樣也能夠減少對人的依賴,模型的調整不再受限於專家經驗,而是依靠數據的變化。
  • 深度學習到底有多深? | 人人都是產品經理
    現在搞AI的公司,不管用什麼樣的算法,都想讓自己跟深度學習扯上點關係,因為這樣好像顯得逼格夠高。目前比較前沿的語音交互、計算機視覺等,就連神壇的Alpha Go的算法都是用深度學習。那究竟深度學習是什麼?到底有多強大?要怎麼實現?本文就跟大家一起討論下。
  • 【PPT下載】深度學習入門指南!六步構建深度神經網絡
    在過去一年時間裡,我們透過各種各樣的教材,在全國各地分享NVIDIA對於深度學習的理解和體驗,讓更多的人理解深度學習。今天將從以下四個方面來跟大家分享我對深度學習這個概念的理解:–機器學習和深度學習的定義;-深度學習的應用範圍;-深入學習的實現以及特點;-上手NVIDIA交互式深度學習訓練平臺DIGITS。
  • 深度學習中的NumPy基礎
    在機器學習和深度學習應用中,向量範數作為一種規範化技術被用來解決過度填充問題。NumPy 的 linalg 子模塊具有計算向量範數的 norm()函數。a = np.array([1,2,3])np.linalg.norm(a)在學習線性代數時,經常會遇到數學上的錯誤。有些數學運算是不允許的。
  • 最常見的深度學習應用
    深度學習技術在人工智慧領域目前佔有絕對的統治地位,因為相比於傳統的機器學習算法而言,深度學習在某些領域展現出了最接近人類所期望的智能效果,同時也在悄悄的走進我們的生活,例如刷臉支付、語音識別、智能翻譯、汽車上的智能輔助駕駛等等,這讓我們的生活開始慢慢智能化,那具體在哪些方向深度學習表現的最為耀眼吶
  • 乾貨滿滿:5本必看深度學習書籍!
    在過去的一年裡,他們以手指能承受的最大速度拼命敲擊鍵盤,以期用一本絕妙的書在亟需投餵的深度學習市場中打敗同行。現在,讓我們一覽這些書籍,比較優劣,看看哪些對於學習AI,或者說進一步理解這門藝術有最大的幫助。「合適的才是最好的」。對AI學習也是如此——需要合理的、適量的理論學習和實際操作。
  • 深度學習和經驗主義的勝利
    現在深度學習在許多監督式機器學習的任務中扮演著領頭羊的角色。也可以這樣認為,在近幾十年中,深度學習已經產生了最實用的非監督式機器學習算法。興奮之餘,這也引發了一系列的研究和聳人聽聞的新聞頭條。雖然我警惕這些炒作,但是我也發現了令人興奮的技術,並且最近加入了一個社團,針對回歸神經網絡序列學習發表了 一篇30頁的關鍵評語。
  • 資源|用Python和NumPy學習《深度學習》中的線性代數基礎
    本文系巴黎高等師範學院在讀博士 Hadrien Jean 的一篇基礎學習博客,其目的是幫助初學者/高級初學者基於深度學習和機器學習來掌握線性代數的概念。掌握這些技能可以提高你理解和應用各種數據科學算法的能力。