《深度學習-人工智慧更懂你》
一、寫在前面
現在科技的發展日新月異,而人工智慧AI則是其中引人奪目璀璨無比的一個。從科技巨頭谷歌的AlphaGo大敗圍棋高手李世石,到國內百度的無人駕駛汽車,從日常生活中隨處可見的語音識別搜索,圖片搜索到美國大選AI預測城市熱人口和選舉結果。每一次的科技突破和實踐應用都帶給我們全新的體驗,甚至深深地改變了我們的生活,這就是科技的力量。
今天就跟大家聊聊深度學習,人工智慧和機器學習。
二、概念
1)【什麼是深度學習】
深度學習是機器學習中的神經網路演算法的深化,是人工智慧的核心。現在很火的人工智慧,深度學習的實現,編程語言大部分是Python 和 Java的,所以學好這其中的至少一門語言還是很重要的。
百科給出的解釋是深度學習的概念源於人工神經網路的研究。含多隱層的多層感知器就是一種深度學習結構。深度學習通過組合低層特徵形成更加抽象的高層表示屬性類別或特徵,以發現數據的分散式特徵表示。
2)【深度學習與人工智慧AI,機器學習的聯繫和區別】
簡單來說,就是人工智慧包含機器學習,而機器學習又包含深度學習。
人工智慧三術語
AI,機器學習,深度學習聯繫區別
三者發展歷史
可見機器學習,不是下面的這張圖(一群機器再學習):
機器在學習?
深度學習卻是醬紫滴:
深度學習基於神經網路演算法
1997 年擊敗國際象棋冠軍卡斯帕羅夫的 IBM深藍就是機器學習的產物,。谷歌的AlphaGo 則是深度學習,給他一堆棋譜,不告訴他規則,他自己去學習其中的規則,更有通用性。也就是說它既沒有決策樹方面的編程,也沒有如何評估棋盤位置的方程式,或者是假定的規則。DeepMind CEO DemisHassabis 說:「AlphaGo 基本上是靠左右手互搏和觀察職業棋局來下棋。」(訓練期間 AlphaGo 跟自己下了 100 萬盤棋)
3)【歷史】
很明顯的三個階段:
1??神經網路作為一個計算模型的理論,1943年 最初由科學家 Warren McCulloch 和 Walter Pitts 提出。
深度學習階段1
2??康內爾大學教授 Frank Rosenblatt 1957年 提出的「感知器」 (Perceptron),是第一個用演算法來精確定義神經網路,第一個具有自組織自學習能力的數學模型,是日後許多新的神經網路模型的始祖。
3??深度學習的概念由Hinton等人於2006年提出。基於深度置信網路(DBN)提出非監督貪心逐層訓練演算法,為解決深層結構相關的優化難題帶來希望,隨後提出多層自動編碼器深層結構。
深度學習階段2
這三個階段中,出現了幾個很有名的深度學習的專家,其中的第四位就是華裔首席人工智慧科學家,吳恩達 是 人工智慧和機器學習領域國際上最權威的學者之一。下圖中的Andrew Ng就是吳恩達。
深度學習科技四大佬
4)【分類】
同機器學習方法一樣,深度機器學習方法也有監督學習與無監督學習之分.不同的學習框架下建立的學習模型很是不同.例如,卷積神經網路(Convolutional neural networks,簡稱CNNs)就是一種深度的監督學習下的機器學習模型,而深度置信網(Deep Belief Nets,簡稱DBNs)就是一種無監督學習下的機器學習模型。
監督學習:這個進展是比較順利的,已經有了工業上應用。比如開水燙,媽媽告訴你不要摸,碰了我就打你,就算是懲罰,你就學會了不要觸碰,這就是監督學習。機器學習里的監督學習也有懲罰函數,評價函數。
非監督學習:非監督學習,是常識,比如一個孩子去聽了很多場的音樂會,他可能不知道這是爵士樂或者是交響樂,但是當他聽了很多場音樂後,他會總結出來這個音樂是高亢的,那個音樂是平和的。沒人給他去打標籤,這個就是非監督學習。
5)【基本思想】
深度學習通過構建深層神經網路,來模擬人類大腦的工作原理。如下圖所示,深層神經網路由一個輸入層,數個隱層,以及一個輸出層構成。每層有若干個神經元,神經元之間有連接權重。每個神經元模擬人類的神經細胞,而結點之間的連接模擬神經細胞之間的連接。深度學習框架的基本結構如圖所示。
深度學習的基本框架
6)【神經網路】
「人工神經網路(Artificial Neural Networks)」是另一種演算法方法,它也是早期機器學習專家提出的,存在已經幾十年了。神經網路(Neural Networks)的構想源自於我們對人類大腦的理解——神經元的彼此聯繫。二者也有不同之處,人類大腦的神經元按特定的物理距離連接的,人工神經網路有獨立的層、連接,還有數據傳播方向。
1957 年提出的神經網路概念
深度學習和神經網路還是有區別的,請看
深度學習與神經網路的區別
7)【深度學習的應用和實例】
==【識別一隻狗】:
怎麼去識別一隻狗和一條凳子,狗有毛,一千張圖片輸入,拍攝一張狗的照片通過了整個模型,但是如果一隻貓過來了,就需要重新訓練這個模型,而且機器學習有一個人工打標籤的工作,工作量是巨大的。
深度學習,則是將這個打標籤的工作去掉了,交給了神經網路自己來做了。具體過程如下:1)訓練階段會提供大量帶標籤的各種動物圖像給神經網路,讓後者學會進行分類;2)輸入:提供一張不帶標籤的圖片給經過訓練的神經網路;3)第一層:神經元對不同的簡單形狀如邊緣進行響應;4)更高層:神經元對更複雜的結構進行響應;5)頂層:神經元對我們會識別為不同動物的高度複雜、抽象的概念進行響應。
人工神經網路如何識別照片中的小狗?
當然識別一個妹子和一隻貓,更是so easy的事情。
深度學習識別貓和人
==【語音識別】:
語音識別也是深度學慣用武之地,現在在國內科大訊飛,百度地圖的小度,包括眾多搜索的語音搜索都是語音識別。
深度學習應用語音識別
==【使用AI中的深度學習,自己作畫】:
使用深度學習訓練的機器人根據梵高的名畫《星空》也將下圖一個普通的建築也繪成了梵高的星空風格的畫了。
深度學習機器自己繪畫
三、為什麼要進行深度學習?
深度學習是機器學習研究中的一個新的領域,其動機在於建立、模擬人腦進行分析學習的神經網路,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。
AI人工智慧浪潮
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 的庫,用來優化 CUDA
4??Tensorflow > 由 Google 開發,基於 CuDNN 的深度學習框架
5??TFlearn > Tensorflow 的前端框架
學習深度學習的步驟
3)【深度學習的框架】
深度學習的框架有很多,這裡主要介紹最流行的TensorFlow框架。
深度學習的框架
01【簡介】:
TensorFlow框架是2015年谷歌推出的開源的面向機器學習的開發框架,這也是Google第二代的深度學習的框架。很多公司都使用了TensorFlow開發了很多有意思的應用,效果很好。
TensorFlow框架
用TensorFlow可以做什麼?答案是它可以應用於回歸模型、神經網路以深度學習這幾個領域。在深度學習方面它集成了分散式表示、卷積神經網路(CNN)、遞歸神經網路(RNN) 以及長短期記憶人工神經網路(Long-Short Term Memory, LSTM)。
02 【概念】:
TensorFlow 就是有狀態圖的數據流圖計算環境,每個節點就是在做數據操作,然後提供依賴性和指向性,提供完整數據流。
03 【安裝】:
常規的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 【優點】:
首先,目前為止,深度學習的開發框架裡面TensorFlow的文檔做的最好,對程序員學習而言是非常好的一點。
TensorFlow框架不錯
第二,TensorFlow有豐富的參考實例,作為參考學習起來非常容易。
第三,開發者社區活躍,在任何一個深度學習的社區里,都有大量關於TensorFlow的討論。第四,谷歌的支持力度非常大,從2015年到現在升級速度非常快,這是其他開源框架遠遠達不到的結果。
05 【其他】:
實際上如果真要開始深度學習的開發研究工作,光是預備工作就夠你喝一壺了,硬體要好,CPU,最好是GPU,或者是專業的DSP, FPGA處理晶元。比較的燒錢。詳細的可以參考《從零開始:深度學習軟體環境安裝指南》。
搞深度學習硬體也得牛
搞深度學習是很燒錢的
五、寫在最後
人工智慧AI的大幕已經拉起,聰明的你,不跟著搞一下深度學習嘛!
TAG:程序員的文娛情懷 |