1. 程式人生 > >[轉]《零基礎入門深度學習》系列文章(教程+程式碼)

[轉]《零基礎入門深度學習》系列文章(教程+程式碼)

無論即將到來的是大資料時代還是人工智慧時代,亦或是傳統行業使用人工智慧在雲上處理大資料的時代,作為一個有理想有追求的程式設計師,不懂深度學習(Deep Learning)這個超熱的技術,會不會感覺馬上就out了?現在救命稻草來了,《零基礎入門深度學習》系列文章旨在講幫助愛程式設計的你從零基礎達到入門級水平。零基礎意味著你不需要太多的數學知識,只要會寫程式就行了,沒錯,這是專門為程式設計師寫的文章。雖然文中會有很多公式你也許看不懂,但同時也會有更多的程式碼,程式設計師的你一定能看懂的(我周圍是一群狂熱的Clean Code程式設計師,所以我寫的程式碼也不會很差)。

文章更新了5篇:
零基礎入門深度學習(1) - 感知器
深度學習是啥
在人工智慧領域,有一個方法叫機器學習。在機器學習這個方法裡,有一類演算法叫神經網路。神經網路如下圖所示:

上圖中每個圓圈都是一個神經元,每條線表示神經元之間的連線。我們可以看到,上面的神經元被分成了多層,層與層之間的神經元有連線,而層內之間的神經元沒有連線。最左邊的層叫做輸入層,這層負責接收輸入資料;最右邊的層叫輸出層,我們可以從這層獲取神經網路輸出資料。輸入層和輸出層之間的層叫做隱藏層。
連結:
https://www.zybuluo.com/hanbingtao/note/433855

零基礎入門深度學習(2) - 線性單元和梯度下降
在上一篇文章中,我們已經學會了編寫一個簡單的感知器,並用它來實現一個線性分類器。你應該還記得用來訓練感知器的『感知器規則』。然而,我們並沒有關心這個規則是怎麼得到的。本文通過介紹另外一種『感知器』,也就是『線性單元』,來說明關於機器學習一些基本的概念,比如模型、目標函式、優化演算法等等。這些概念對於所有的機器學習演算法來說都是通用的,掌握了這些概念,就掌握了機器學習的基本套路。
連結:

https://www.zybuluo.com/hanbingtao/note/448086

零基礎入門深度學習(3) - 神經網路和反向傳播演算法
在上一篇文章中,我們已經掌握了機器學習的基本套路,對模型、目標函式、優化演算法這些概念有了一定程度的理解,而且已經會訓練單個的感知器或者線性單元了。在這篇文章中,我們將把這些單獨的單元按照一定的規則相互連線在一起形成神經網路,從而奇蹟般的獲得了強大的學習能力。我們還將介紹這種網路的訓練演算法:反向傳播演算法。最後,我們依然用程式碼實現一個神經網路。如果您能堅持到本文的結尾,將會看到我們用自己實現的神經網路去識別手寫數字。現在請做好準備,您即將雙手觸及到深度學習的大門。
連結:

https://www.zybuluo.com/hanbingtao/note/476663

零基礎入門深度學習(4) - 卷積神經網路
本文將要介紹一種更適合影象、語音識別任務的神經網路結構——卷積神經網路(Convolutional Neural Network, CNN)。說卷積神經網路是最重要的一種神經網路也不為過,它在最近幾年大放異彩,幾乎所有影象、語音識別領域的重要突破都是卷積神經網路取得的,比如谷歌的GoogleNet、微軟的ResNet等,打敗李世石的AlphaGo也用到了這種網路。本文將詳細介紹卷積神經網路以及它的訓練演算法,以及動手實現一個簡單的卷積神經網路。
連結:
https://www.zybuluo.com/hanbingtao/note/485480

零基礎入門深度學習(5) - 迴圈神經網路
在前面的文章系列文章中,我們介紹了全連線神經網路和卷積神經網路,以及它們的訓練和使用。他們都只能單獨的取處理一個個的輸入,前一個輸入和後一個輸入是完全沒有關係的。但是,某些任務需要能夠更好的處理序列的資訊,即前面的輸入和後面的輸入是有關係的。比如,當我們在理解一句話意思時,孤立的理解這句話的每個詞是不夠的,我們需要處理這些詞連線起來的整個序列;當我們處理視訊的時候,我們也不能只單獨的去分析每一幀,而要分析這些幀連線起來的整個序列。這時,就需要用到深度學習領域中另一類非常重要神經網路:迴圈神經網路(Recurrent Neural Network)。RNN種類很多,也比較繞腦子。不過讀者不用擔心,本文將一如既往的對複雜的東西剝繭抽絲,幫助您理解RNNs以及它的訓練演算法,並動手實現一個迴圈神經網路。
連結:
https://www.zybuluo.com/hanbingtao/note/541458