一、寫在前面
? ? 現在科技的發(fā)展日新月異,而人工智能AI則是其中引人奪目璀璨無比的一個。從科技巨頭谷歌的AlphaGo大敗圍棋高手李世石,到國內百度的無人駕駛汽車,從日常生活中隨處可見的語音識別搜索,圖片搜索到美國大選AI預測城市熱人口和選舉結果。每一次的科技突破和實踐應用都帶給我們全新的體驗,甚至深深地改變了我們的生活,這就是科技的力量。
? ? 今天就跟大家聊聊深度學習,人工智能和機器學習。
二、概念
? ? 1)【什么是深度學習】
????深度學習是機器學習中的神經網絡算法的深化,是人工智能的核心?,F在很火的人工智能,深度學習的實現,編程語言大部分是Python 和 Java的,所以學好這其中的至少一門語言還是很重要的。
? ? 百科給出的解釋是深度學習的概念源于人工神經網絡的研究。含多隱層的多層感知器就是一種深度學習結構。深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現數據的分布式特征表示。
????2)【深度學習與人工智能AI,機器學習的聯(lián)系和區(qū)別】
? ? 簡單來說,就是人工智能包含機器學習,而機器學習又包含深度學習。



可見機器學習,不是下面的這張圖(一群機器再學習)??:

深度學習卻是醬紫滴:

???? 1997 年擊敗國際象棋冠軍卡斯帕羅夫的 IBM深藍就是機器學習的產物,。谷歌的AlphaGo 則是深度學習,給他一堆棋譜,不告訴他規(guī)則,他自己去學習其中的規(guī)則,更有通用性。也就是說它既沒有決策樹方面的編程,也沒有如何評估棋盤位置的方程式,或者是假定的規(guī)則。DeepMind CEO DemisHassabis 說:“AlphaGo 基本上是靠左右手互搏和觀察職業(yè)棋局來下棋?!保ㄓ柧毱陂g AlphaGo 跟自己下了 100 萬盤棋)
3)【歷史】
? ? 很明顯的三個階段:
? ? ? ? 1??神經網絡作為一個計算模型的理論,1943年 最初由科學家 Warren McCulloch 和 Walter Pitts 提出。

? ? ? ? 2??康內爾大學教授 Frank Rosenblatt 1957年 提出的“感知器” (Perceptron),是第一個用算法來精確定義神經網絡,第一個具有自組織自學習能力的數學模型,是日后許多新的神經網絡模型的始祖。
? ? ? ? 3??深度學習的概念由Hinton等人于2006年提出?;谏疃戎眯啪W絡(DBN)提出非監(jiān)督貪心逐層訓練算法,為解決深層結構相關的優(yōu)化難題帶來希望,隨后提出多層自動編碼器深層結構。

????這三個階段中,出現了幾個很有名的深度學習的專家,其中的第四位就是華裔首席人工智能科學家,吳恩達?是?人工智能和機器學習領域國際上最權威的學者之一。下圖中的Andrew Ng就是吳恩達。

4)【分類】
?????同機器學習方法一樣,深度機器學習方法也有監(jiān)督學習與無監(jiān)督學習之分.不同的學習框架下建立的學習模型很是不同.例如,卷積神經網絡(Convolutional neural networks,簡稱CNNs)就是一種深度的監(jiān)督學習下的機器學習模型,而深度置信網(Deep Belief Nets,簡稱DBNs)就是一種無監(jiān)督學習下的機器學習模型。
? ??監(jiān)督學習:這個進展是比較順利的,已經有了工業(yè)上應用。比如開水燙,媽媽告訴你不要摸,碰了我就打你,就算是懲罰,你就學會了不要觸碰,這就是監(jiān)督學習。機器學習里的監(jiān)督學習也有懲罰函數,評價函數。
? ??非監(jiān)督學習:非監(jiān)督學習,是常識,比如一個孩子去聽了很多場的音樂會,他可能不知道這是爵士樂或者是交響樂,但是當他聽了很多場音樂后,他會總結出來這個音樂是高亢的,那個音樂是平和的。沒人給他去打標簽,這個就是非監(jiān)督學習。
5)【基本思想】
????深度學習通過構建深層神經網絡,來模擬人類大腦的工作原理。如下圖所示,深層神經網絡由一個輸入層,數個隱層,以及一個輸出層構成。每層有若干個神經元,神經元之間有連接權重。每個神經元模擬人類的神經細胞,而結點之間的連接模擬神經細胞之間的連接。深度學習框架的基本結構如圖所示。

6)【神經網絡】
? ? “人工神經網絡(Artificial Neural Networks)”是另一種算法方法,它也是早期機器學習專家提出的,存在已經幾十年了。神經網絡(Neural Networks)的構想源自于我們對人類大腦的理解——神經元的彼此聯(lián)系。二者也有不同之處,人類大腦的神經元按特定的物理距離連接的,人工神經網絡有獨立的層、連接,還有數據傳播方向。

深度學習和神經網絡還是有區(qū)別的,請看

7)【深度學習的應用和實例】
? ? ==【識別一只狗】:
????怎么去識別一只狗和一條凳子,狗有毛,一千張圖片輸入,拍攝一張狗的照片通過了整個模型,但是如果一只貓過來了,就需要重新訓練這個模型,而且機器學習有一個人工打標簽的工作,工作量是巨大的。
????深度學習,則是將這個打標簽的工作去掉了,交給了神經網絡自己來做了。具體過程如下:1)訓練階段會提供大量帶標簽的各種動物圖像給神經網絡,讓后者學會進行分類;2)輸入:提供一張不帶標簽的圖片給經過訓練的神經網絡;3)第一層:神經元對不同的簡單形狀如邊緣進行響應;4)更高層:神經元對更復雜的結構進行響應;5)頂層:神經元對我們會識別為不同動物的高度復雜、抽象的概念進行響應。

當然識別一個妹子和一只貓,更是so easy的事情。

==【語音識別】:
? ? 語音識別也是深度學習用武之地,現在在國內科大訊飛,百度地圖的小度,包括眾多搜索的語音搜索都是語音識別。

==【使用AI中的深度學習,自己作畫】:
? ? 使用深度學習訓練的機器人根據梵高的名畫《星空》也將下圖一個普通的建筑也繪成了梵高的星空風格的畫了。

三、為什么要進行深度學習?
????深度學習是機器學習研究中的一個新的領域,其動機在于建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。


? ? 對程序員來說,這個是趨勢,很有錢途的。雖然深度學習卻是很難。
? ? 看看這些晦澀難懂的術語:Gradient descent(梯度下降算法)、Backpropagation(反向傳播算法)、Convolutional Neural Network(卷積神經網絡)、受限玻耳茲曼機(Restricted Boltzmann Machine)等。
????如打開任何一篇技術文章,你看到的通篇都是各種數學公式。大家看到如下左邊的圖,其實并不是一篇高水準的學術論文,而僅僅是維基百科關于玻耳茲曼機的介紹。維基百科是科普層面的內容,內容復雜程度就超過了大多數數學知識的能力。

四、怎樣進行深度學習?
? ? 1)【所需知識】
????線性代數、概率和信息論等,Python ,Java其中一種編程語言,最好是Python,因為現在很多的深度學習框架都是基于Python,Java的相對少一些。

? ? 2)【了解深度學習的步驟】

深度學習的堆棧如下:
1??GPU > Nvidia Tesla K80。該硬件常用于圖形處理。它們深度學習的速度平均要比 CPU 快50-200倍。
2??CUDA > GPU 的底層編程語言
3??CuDNN > Nvidia 的庫,用來優(yōu)化 CUDA
4??Tensorflow > 由 Google 開發(fā),基于 CuDNN 的深度學習框架
5??TFlearn > Tensorflow 的前端框架

3)【深度學習的框架】
? ? 深度學習的框架有很多,這里主要介紹最流行的TensorFlow框架。

01【簡介】:
????TensorFlow框架是2015年谷歌推出的開源的面向機器學習的開發(fā)框架,這也是Google第二代的深度學習的框架。很多公司都使用了TensorFlow開發(fā)了很多有意思的應用,效果很好。

????用TensorFlow可以做什么?答案是它可以應用于回歸模型、神經網絡以深度學習這幾個領域。在深度學習方面它集成了分布式表示、卷積神經網絡(CNN)、遞歸神經網絡(RNN) 以及長短期記憶人工神經網絡(Long-Short Term Memory, LSTM)。
02 【概念】:
????TensorFlow 就是有狀態(tài)圖的數據流圖計算環(huán)境,每個節(jié)點就是在做數據操作,然后提供依賴性和指向性,提供完整數據流。
03 【安裝】:
????常規(guī)的Tensorsorflow的安裝很簡單,一條命令足矣:
$ pip3 install —upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp35-cp35m-linux_x86_64.whl
如果想評估一下或者簡單學習一下,還可以通過Docker進行安裝,安裝的命令如下:
$ docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow
04 【優(yōu)點】:
????首先,目前為止,深度學習的開發(fā)框架里面TensorFlow的文檔做的最好,對程序員學習而言是非常好的一點。

????第二,TensorFlow有豐富的參考實例,作為參考學習起來非常容易。
????第三,開發(fā)者社區(qū)活躍,在任何一個深度學習的社區(qū)里,都有大量關于TensorFlow的討論。第四,谷歌的支持力度非常大,從2015年到現在升級速度非???,這是其他開源框架遠遠達不到的結果。
05 【其他】:
????實際上如果真要開始深度學習的開發(fā)研究工作,光是預備工作就夠你喝一壺了,硬件要好,CPU,最好是GPU,或者是專業(yè)的DSP, FPGA處理芯片。比較的燒錢。詳細的可以參考《從零開始:深度學習軟件環(huán)境安裝指南》。


五、寫在最后
? ? 人工智能AI的大幕已經拉起,聰明的你,不跟著搞一下深度學習嘛!