大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

本文創作的主要目的,是對時下最火最流行的深度學習演算法的基礎知識做一個簡介,作者看過許多教程,感覺對小白不是特別友好,尤其是在踩過好多坑之後,於是便有了寫這篇文章的想法。

由於文章較長,建議收藏~

本文文中會有

個人推薦的學習資源

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

一、簡介

百度百科中對深度學習的定義是深度學習(DL, Deep Learning)是機器學習(ML, Machine Learning)領域中一個新的研究方向,它被引入機器學習使其更接近於最初的目標——人工智慧(AI, Artificial Intelligence)。這個定義太大了,反而讓人有點不懂,簡答來說,

深度學習就是透過多層神經網路上運用各種機器學習演算法學習樣本資料的內在規律和表示層次,從而實現各種任務的演算法集合

。各種任務都是啥,有:資料探勘,計算機視覺,語音識別,自然語言處理等。

可能有人會問那麼深度學習,機器學習還有人工智慧的關係是怎麼樣的呢?在這個部落格中有詳細介紹:一篇文章看懂人工智慧、機器學習和深度學習,我們這裡直接拿出結論:

AI:讓機器展現出人類智力

機器學習:抵達AI目標的一條路徑

深度學習:實現機器學習的技術

深度學習從大類上可以歸入神經網路,不過在具體實現上有許多變化,並不像大家聽到的一樣,覺得這兩個概念其實是同一個東西:

從廣義上說深度學習的網路結構也是多層神經網路的一種。更簡單來說,

多層神經網路

做的步驟是:特徵對映到值。特徵是

人工

挑選。

深度學習

做的步驟是 訊號->特徵->值。特徵是由

網路自己

選擇。

深度學習的核心是

特徵學習

,旨在透過分層網路獲取分層次的特徵資訊,從而解決以往需要人工設計特徵的重要難題。深度學習是一個框架,包含多個重要演算法:

Convolutional Neural Networks(CNN)卷積神經網路

AutoEncoder自動編碼器

Sparse Coding稀疏編碼

Restricted Boltzmann Machine(RBM)限制波爾茲曼機

Deep Belief Networks(DBN)深度信念網路

Recurrent neural Network(RNN)多層反饋迴圈神經網路神經網路

對不同的任務(影象,語音,文字),需要選用不同的網路模型才能達到更好的效果。

此外,最近幾年

增強學習(Reinforcement Learning)

與深度學習的結合也創造了許多了不起的成果,AlphaGo就是其中之一。

大家比較關注的熱點新聞,如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

二、人類視覺原理

深度學習的許多研究成果,離不開對大腦認知原理的研究,尤其是視覺原理的研究。

1981 年的諾貝爾醫學獎,頒發給了 David Hubel(出生於加拿大的美國神經生物學家) 和TorstenWiesel,以及 Roger Sperry。前兩位的主要貢獻,是“發現了視覺系統的資訊處理”——可視皮層是分級的。如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

進而透過大量試驗研究,發現了人類的視覺原理,具體如下:從原始訊號

攝入

開始(瞳孔攝入畫素 Pixels),接著做

初步處理

(大腦皮層某些細胞發現邊緣和方向),然後

抽象

(大腦判定,眼前的物體的形狀,是圓形的),然後

進一步抽象

(大腦進一步判定該物體是隻氣球)。

下面是人腦進行人臉識別的一個示例。如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

總的來說,人的視覺系統的資訊處理是

分級

的。從低階的V1區

提取邊緣特徵

,再到V2區的

形狀或者目標的部分

等,再到更高層,

整個目標、目標的行為

等。也就是說高層的特徵是低層特徵的組合,從低層到高層的特徵表示越來越抽象,越來越能表現語義或者意圖。而抽象層面越高,存在的可能猜測就越少,就越利於分類。

對於不同的物體,人類視覺也是透過這樣

逐層分級

,來進行認知的。如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

那麼可以很自然的想到:可以不可以模仿人類大腦的這個特點,構造多層的神經網路,較低層的識別初級的影象特徵,若干底層特徵組成更上一層特徵,最終透過多個層級的組合,最終在頂層做出分類呢?答案是肯定的,這也是許多深度學習演算法(包括CNN)的靈感來源。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

三、神經網路

首先什麼是神經網路呢?神經網路也指的是

人工神經網路

(Artificial Neural Networks,簡稱ANNs),是一種模仿生物神經網路行為特徵的演算法數學模型,由

神經元、節點與節點之間的連線(突觸)

所構成,如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

每個神經網路單元抽象出來的數學模型如下,也叫

感知器

,它接收多個輸入(

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

單個的感知器就構成了一個簡單的模型,但在現實世界中,實際的決策模型則要複雜得多,往往是由多個感知器組成的多層網路,如下圖所示,這也是經典的神經網路模型,由

輸入層、隱含層、輸出層

構成。如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

人工神經網路可以對映任意複雜的非線性關係,具有很強的魯棒性、記憶能力、自學習等能力,在分類、預測、模式識別等方面有著廣泛的應用。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

四、卷積神經網路

4。1、CNN定義

主角登場,其他人退讓!!!如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

重點來了,什麼是卷積神經網路?

百度百科中的定義是

卷積神經網路(Convolutional Neural Networks, CNN)是一類包含卷積計算且具有深度結構的前饋神經網路(Feedforward Neural Networks),是深度學習(deep learning)的代表演算法之一,擅長處理影象特別是影象識別等相關機器學習問題。

卷積網路透過一系列方法,成功將資料量龐大的影象識別問題不斷降維,最終使其能夠被訓練。

4。2、卷積(Convolution)

卷積神經網路中的核心即為

卷積運算

,其相當於影象處理中的

濾波器運算

。對於一個 大小的卷積核,

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

其對某一原影象 進行卷積運算的過程為:卷積核 中的每一個權值 分別和覆蓋的原影象 中所對應的畫素 相乘,然後再求和。計算公式為:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

所以一幅影象的一個完整的卷積運算過程為:卷積核以一定的間隔滑動,並對所覆蓋的區域進行卷積運算得到值 z,直至遍歷完整幅影象。如下圖所示:![在這裡插入圖片描述](https://img-blog。csdnimg。cn/20190825170718271。gif#pic_center =500x400) 舉一個標準的卷積運算例子,初始位置的計算過程是:1x1+1x0+1x1+0x0+1x1+1x0+0x1+0x0+1x1=4,詳細的就不推導了。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

如上圖,卷積核大小是3x3的,也就是說其卷積核每次覆蓋原影象的9個畫素,行和列都滑動了3次,一共滑動3x3=9次,得到了一個 的二維資料。這個大小是怎麼計算的呢?

首先給出結論,

對於一個大小為

的原影象,經過大小為

的卷積運算後,其輸出影象的尺寸為

。所以對於上圖的例子,5-3+1=3即為所求。

4。3、步長(stride)

滑動一定的間距,但這個間距該如何定義呢? 這個概念就是卷積的 “步長”(stride)。經過步長 的操作後,其輸出影象的尺寸為:

其中 n 是影象大小,f 是卷積核大小,s 是步長。

stride = 1 表示卷積核滑過每一個相距是 1 的畫素,是最基本的單步滑動,作為標準卷積模式。Stride 是 2 表示卷積核的移動步長是 2,跳過相鄰畫素,輸出影象縮小為原來的 1/2。Stride 是 3 表示卷積核的移動步長是 3,跳過 2 個相鄰畫素,影象縮小為原來的 1/3,以此類推。。。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

詳細的卷積層尺寸推算細節可以看一下這個文章——CNN中卷積層的計算細節

4。4、填充(padding)

在標準的卷積過程中,存在兩個問題:

每次卷積運算後,影象就會縮小尺寸。在經歷多次運算後,影象最終會失去其本來的形狀,變為 的 “柱狀”。

對於影象邊緣的畫素,只被一個輸出使用,但影象中間的畫素,則被多個輸出使用。這意味著卷積過程丟掉了影象邊緣位置的許多資訊。

對於這個問題,可以採用額外的 “假” 畫素(通常值為 0, 因此經常使用的術語 ”

零填充

“ )填充邊緣。這樣,在滑動時的卷積核可以允許原始邊緣畫素位於其中心,同時延伸到邊緣之外的假畫素。假設填充的畫素大小為 ,則 就變成了 ,故其輸出影象的尺寸為 。

至於是否選擇填充畫素,通常有兩個選擇,分別叫做 Valid 卷積和 Same 卷積。

Valid 卷積意味著

不填充

,即影象會透過卷積並逐漸縮小,輸出的影象尺寸即為上述公式:。

Same卷積意味

填充

,輸出影象的尺寸與輸入影象的尺寸相同。

根據上述尺寸的計算公式,令 ,可得到 。當 s=1 時,。

4。5、池化(Pooling)

隨著模型網路不斷加深,卷積核越來越多,要訓練的引數還是很多,而且直接拿卷積核提取的特徵直接訓練也容易出現過擬合的現象。CNN使用的另一個有效的工具被稱為“池化(Pooling)”出現並解決了上面這些問題,為了有效地減少計算量,池化就是將輸入影象進行縮小,減少畫素資訊,只保留重要資訊;為了有效地解決過擬合問題,池化可以減少資料,但特徵的統計屬性仍能夠描述影象,而由於降低了資料維度,可以有效地避免過擬合。

給出池化的定義,對不同位置區域提取出有代表性的特徵(進行聚合統計,例如最大值、平均值等),這種聚合的操作就叫做

池化

,池化的過程通常也被稱為

特徵對映

的過程(特徵降維)。聽起來很高深,其實簡單地說就是下采樣。

池化的過程如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

池化主要有兩種,除了

最大值池化(Max Pooling)

之外,還有

平均值池化(Average pooling)

,CNN中隨機池化使用的較少。

最大池化是對區域性的值取最大;平均池化是對區域性的值取平均;隨機池化是根據機率對區域性的值進行取樣,取樣結果便是池化結果。概念非常容易理解,其示意圖如下所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

三種池化的意義:

最大池化可以獲取區域性資訊,可以更好保留紋理上的特徵。如果不用觀察物體在圖片中的具體位置,只關心其是否出現,則使用最大池化效果比較好。

平均池化往往能保留整體資料的特徵,能凸出背景的資訊。

隨機池化中元素值大的被選中的機率也大,但不是像最大池化總是取最大值。隨機池化一方面最大化地保證了Max值的取值,一方面又確保了不會完全是max值起作用,造成過度失真。除此之外,其可以在一定程度上避免過擬合。

4。6、啟用函式

回顧一下感知機,感知機在接收到各個輸入,然後進行求和,再經過啟用函式後輸出。為什麼神經網路需要非線性啟用函式?

為了使神經網路能夠擬合出各種複雜的函式,必須使用

非線性啟用函式

,用來加入非線性因素,把卷積層輸出結果做非線性對映。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

在神經網路的正向傳播過程中,如果我們去掉啟用函式 ,則 ,這個有時被叫做

線性啟用函式

(更學術點的名字是

恆等激勵函式

,因為它們就是把輸入值恆等地輸出),具體公式如下:

第一層:

第二層:

將 帶入可得第二層:,令 ,,則第二層變為:。

依此類推,網路的輸出僅僅只是輸入特徵的線性組合。實際上,無論網路有多少層,整體完全可以僅使用1層表示。同理,引入其他線性函式 (如 )仍然起不到任何作用,因為線性函式的組合本身仍是線性函式。

常用的啟用函式有sigmoid、tanh、relu等等,前兩者sigmoid / tanh比較常見於全連線層,後者ReLU常見於卷積層。

4。7、區域性感知

為什麼要採用區域性感知呢?因為可以降低引數量級。為什麼要降低引數量級呢?因為如果採用經典的神經網路模型,如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

則需要讀取整幅影象作為神經網路模型的輸入(即全連線的方式),當影象的尺寸越大時,其連線的引數將變得很多,從而導致計算量非常大。比如對於一張1000x1000畫素的圖片,如果我們有1M隱藏層單元,那麼一共有 個引數,這顯然是不能接受的。如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

而人類對外界的認知一般是從區域性到全域性、從片面到全面,先對區域性有感知的認識,再逐步對全體有認知,

這是人類的認識模式

。類似的,在機器識別影象時也沒有必要把整張影象按畫素全部都連線到神經網路中,區域性範圍內的畫素之間聯絡較為緊密,而距離較遠的畫素則

相關性較弱

。因而,每個神經元其實沒有必要對全域性影象進行感知,只需要對區域性進行感知,然後在更高層將區域性的資訊綜合起來就得到了全域性的資訊。這種模式就是卷積神經網路中降低引數數目的重要神器:

區域性感受野

,節省了記憶體。

4。8、引數(權值)共享

每張自然影象(人物、山水、建築等)都有其固有特性,也就是說,影象其中一部分的統計特性與其它部分是接近的。

這也意味著這一部分學習的特徵也能用在另一部分上

。因此,在區域性連線中隱藏層的每一個神經元連線的區域性影象的權值引數(例如5×5),將這些

權值引數共享

給其它剩下的神經元使用,那麼此時不管隱藏層有多少個神經元,需要訓練的引數就是這個區域性影象的許可權引數(例如5×5),也就是卷積核的大小,這樣大大減少了訓練引數。如下圖所示:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

舉個例子,假設使用某一特徵過濾器(檢測器)提取 “手寫5” 的特徵,那麼圖片的右下角區域,以及旁邊的各個區域都可以使用這個過濾器。每個特徵檢測器以及輸出都可以在輸入圖片的不同區域中使用同樣的引數,以便提取特徵 “5”。而對於全連線網路來說,如果模式出現在新的位置,它只能重新學習這個模式。這使得卷積神經網路在處理影象時可以高效利用資料(因為視覺世界從根本上具有

平移不變性

),只需要更少的訓練樣本就可以學到具有泛化能力的資料表示。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

4。9、感受野(Receptive field)

感受野用來表示網路內部的不同神經元對原影象的感受範圍的大小,換句話說,即為每一層輸出的特徵圖(feature map)上的畫素點在原始影象上對映的區域大小。

神經元之所以無法對原始影象的所有資訊進行感知,是因為在這些網路結構中普遍使用卷積層和pooling層,在層與層之間均為區域性連線。神經元感受野的值越大表示其能接觸到的原始影象範圍就越大,也意味著它可能蘊含更為全域性,語義層次更高的特徵;相反,值越小則表示其所包含的特徵越趨向區域性和細節。因此感受野的值可以用來大致判斷每一層的抽象層次。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

可以看到在Conv1中的每一個單元所能看到的原始影象範圍是3

3,而由於Conv2的每個單元都是由 2

2範圍的Conv1構成,因此回溯到原始影象,其實是能夠看到5*5的原始影象範圍的。因此我們說Conv1的感受野是3,Conv2的感受野是5。輸入影象的每個單元的感受野被定義為1,這應該很好理解,因為每個畫素只能看到自己。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

五、視覺化

學習前的卷積核是隨機進行初始化的,使用截斷的正態分佈或者其他的,所以在黑白的濃淡上沒有規律可循,但學習後的濾波器變成了有規律的影象。可以發現,透過學習濾波器被更新成了有規律的濾波器,比如從白到黑漸變的濾波器、含有塊狀區域(稱為blob)的濾波器等。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

不同卷積核經過學習,改變了自身對不同特徵的響應程度,如邊緣(顏色變化的分界線)和斑塊(區域性的塊狀區域)等,其中第2個卷積核對垂直邊緣響應,第5個卷積核對水平邊緣響應,第9個對傾斜邊緣響應,第13個對中心斑塊響應。

上面的結果是針對第1層的卷積層得出的。第1層的卷積層中提取了邊緣或斑塊等“低階”資訊,而在堆疊了多層的CNN中,隨著層次加深,提取的資訊(準確說,是響應強烈的神經元))也越來越抽象。如圖6。2所示,第1層的神經元對邊緣或斑塊有響應,第3層對紋理有響應,第5層對物體部件有響應,最後的全連線層對物體的類別(狗或車)有響應。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

也就是說,隨著層次加深,神經元從簡單的形狀向“高階”資訊變化。換句話說,就像我們理解東西的“含義”一樣,響應的物件在逐漸變化。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

應用

CNN

最早

由Yann LeCun提出並應用在

手寫字型識別上

(MINST)。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

當年美國大多數銀行就是用它來識別支票上面的手寫數字的。能夠達到這種商用的地步,它的準確性可想而知。畢竟目前學術界和工業界的結合是最受爭議的。LeCun提出的網路稱為LeNet5(效果和paper等的連結在這),其網路結構如下:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

這是一個最典型的卷積網路,由卷積層、池化層、全連線層組成,透過巧妙的設計,利用卷積、引數共享、池化等操作

提取特徵

,避免了大量的計算成本,最後再使用全連線神經網路進行

分類識別

,這個網路也是最近大量神經網路架構的起點,給這個領域帶來了許多靈感。

詳細的論文講解,可以檢視這個部落格——大話CNN經典模型:LeNet

視覺化的結果:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

七、深度學習的本質

在Hinton對深層網路做Pre-Train開始就是一個

經驗領先於理論分析的偏經驗

的一門學問,所以很多人戲稱為

黑盒子

。那麼深度學習的本質到底是什麼呢?我個人更偏向於這種說法——

本質就是高維特徵變換器,理論上可以做到任意非線性變換。神經網路在座標系變換的同時,也順便充當了資訊過濾器。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

境界

深度學習目前處於風口,於是很多人想要渾水摸魚,都來分一杯羹,然而可能很多人連深度學習是什麼都不知道。所以很多人在自學的時候,又不知道從何學起。下了一堆資料,跑了一堆demo,報了一堆cousera,調調參,看看模型結果不錯,就以為入了門,抱歉,可能你連門都沒入。深度學習這塊,有幾個層次:

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

demo俠

:下載了目前所有流行的框架,對不同框裡的例子都跑一跑,看看結果,覺得不錯就行了,進而覺得,嘛,深度學習也不過如此嘛,沒有多難啊。在面試的時候經常可以遇到不少,很多學生或者剛轉行的上來就是講一個demo,手寫數字識別,cifar10資料的影象分類等等,然而你問他這個手寫數字識別的具體過程如何實現的?現在效果是不是目前做好的,可以再最佳化一下嗎?為什麼啟用函式要選這個,可以選別的嗎?CNN的原理能簡單講講嗎?懵逼了。

調參俠

:此類人可能不侷限於跑了幾個demo,對於模型裡的引數也做了一些調整,不管調的好不好,先試了再說,每個都試一下,學習率調大了準確率下降了,那就調小一點,那個引數不知道啥意思,隨便改一下值測一下準確率吧。這是大多數初級深度學習工程師的現狀。當然,並不是這樣不好,對於demo俠來說,已經進步了不少了,起碼有思考。然而如果你問,你調整的這個引數為什麼會對模型的準確率帶來這些影響,這個引數調大調小對結果又會有哪些影響,就又是一問三不知了。

懂原理俠

:抱歉起了個這麼蠢的名字。但是,進階到這一步,已經可以算是入門了,可以找一份能養活自己的工作了。CNN,RNN,LSTM信手拈來,原理講的溜的飛起,對於不同的引數對模型的影響也是說的有理有據,然而,如果你要問,你可以手動寫一個CNN嗎?不用調包,實現一個最基礎的網路結構即可,又gg了。

懂原理+能改模型細節俠

:如果你到了這一步,恭喜你,入門了。對於任何一個做機器學習/深度學習的人來說,只懂原理是遠遠不夠的,因為公司不是招你來做研究員的,來了就要幹活,幹活就要落地。既然要落地,那就對於每一個你熟悉的,常見的模型能夠自己手動寫程式碼執行出來,這樣對於公司的一些業務,可以對模型進行適當的調整和改動,來適應不同的業務場景。這也是大多數一二線公司的工程師們的現狀。然而,對於模型的整體架構能力,超大資料的分散式執行能力,方案設計可能還有所欠缺。

超大資料操控俠

:到這一階段,基本上開始考慮超大資料的分散式執行方案,對整體架構有一個宏觀的瞭解,對不同的框架也能指點一二。海量資料的分散式執行如何避免網路通訊的延遲,如何更高效更迅速的訓練都有一定經驗。這類人,一般就是上一個的領導了。

模型/框架架構師

:前面說了一堆都是對現有的框架/模型處理的經驗,這個階段的大俠,哦,不對,是大師可以獨立設計開發一套新框架/演算法來應對現有的業務場景,或者解決一直未解決的歷史遺留問題。沒啥好說了,膜拜!

有的童鞋會好奇博主是啥水平,實話實說了吧,我也就是個

半斤八兩的懂原理俠

。。。希望畢業能稱為一個

懂原理+能改模型細節俠

,哈哈,暫時沒啥大目標。

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

學習資源

9。1、程式設計

首推Python這門程式語言。

Python安裝:

Python安裝包,推薦下載Anaconda,Anaconda是一個用於科學計算的Python發行版,支援 Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本Python並存、切換以及各種第三方包安裝問題。

IDE:推薦使用pycharm,社群版免費

安裝教程:

Anaconda+Jupyter notebook+Pycharm:https://blog。csdn。net/TeFuirnever/article/details/90646020

Ubuntu18。04深度學習環境配置(CUDA9+CUDNN7。4+TensorFlow1。8):https://zhuanlan。zhihu。com/p/50302396

python入門的資料推薦

廖雪峰python學習筆記:https://blog。csdn。net/datawhale/article/category/7779959

看完這個資料後python基本達到入門水平。

9。2、理論

這絕對是深度學習入門的首選課程,沒有之一!即便你沒有紮實的機率論、線性代數等數學基礎,也能輕鬆上手這門深度學習入門課,並體會到無窮趣味。

課程地址:https://mooc。study。163。com/university/deeplearning_ai#/c

9。3、框架

當今深度學習框架有很多,主流的是Google的TensorFlow、Facebook的pytorch還有百度的paddlepaddle,其他的也可以學,這東西多多益善,初學者建議TensorFlow,容易理解一下。

TensorFlow中文社群

深度學習之30分鐘快速入門PyTorch(附學習資源推薦)

paddlepaddle中文社群

9。4、論文

推薦這個大博主的正例論文資源——https://blog。csdn。net/zouxy09/article/details/8782018

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

神經網路遊樂場

網站地址:

https://dwz。cn/ji9fh4ae

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

可以調整:

資料分佈,訓練集和測試集的比例,有無噪聲,批大小;

特徵,神經元個數和層數;

學習率,啟用函式,正則化與否以及大小,分類還是迴歸。

你可以嘗試去改變相應的引數,從而感受一下網路輸出的變化,進而體會到卷積神經網路的樂趣,加油!!!

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

大話卷積神經網路CNN,小白也能看懂的深度學習演算法教程,全程乾貨建議收藏

GitHub標星2000+,如何用30天啃完TensorFlow2。0?

清華周界詳解《基於圖神經網路的事實驗證》 | 百萬人學AI

百年 IBM 終於 All In 人工智慧和混合雲!

微軟為一人收購一公司?破解索尼程式、寫駭客小說,看他彪悍的程式人生!

機器學習專案模板:ML專案的6個基本步驟

BM、微軟、蘋果、谷歌、三星……這些區塊鏈中的科技巨頭原來已經做了這麼多事!