一愉昆、寫在前面
? ? 現(xiàn)在科技的發(fā)展日新月異,而人工智能AI則是其中引人奪目璀璨無比的一個。從科技巨頭谷歌的AlphaGo大敗圍棋高手李世石筛峭,到國內(nèi)百度的無人駕駛汽車,從日常生活中隨處可見的語音識別搜索陪每,圖片搜索到美國大選AI預(yù)測城市熱人口和選舉結(jié)果影晓。每一次的科技突破和實踐應(yīng)用都帶給我們?nèi)碌捏w驗,甚至深深地改變了我們的生活檩禾,這就是科技的力量挂签。
? ? 今天就跟大家聊聊深度學(xué)習(xí),人工智能和機(jī)器學(xué)習(xí)盼产。
二饵婆、概念
? ? 1)【什么是深度學(xué)習(xí)】
????深度學(xué)習(xí)是機(jī)器學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)算法的深化,是人工智能的核心∠肥郏現(xiàn)在很火的人工智能侨核,深度學(xué)習(xí)的實現(xiàn),編程語言大部分是Python 和 Java的蜈项,所以學(xué)好這其中的至少一門語言還是很重要的芹关。
? ? 百科給出的解釋是深度學(xué)習(xí)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究。含多隱層的多層感知器就是一種深度學(xué)習(xí)結(jié)構(gòu)紧卒。深度學(xué)習(xí)通過組合低層特征形成更加抽象的高層表示屬性類別或特征侥衬,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。
????2)【深度學(xué)習(xí)與人工智能AI,機(jī)器學(xué)習(xí)的聯(lián)系和區(qū)別】
? ? 簡單來說,就是人工智能包含機(jī)器學(xué)習(xí)轴总,而機(jī)器學(xué)習(xí)又包含深度學(xué)習(xí)直颅。
可見機(jī)器學(xué)習(xí)功偿,不是下面的這張圖(一群機(jī)器再學(xué)習(xí))??:
深度學(xué)習(xí)卻是醬紫滴:
???? 1997 年擊敗國際象棋冠軍卡斯帕羅夫的 IBM深藍(lán)就是機(jī)器學(xué)習(xí)的產(chǎn)物往堡,械荷。谷歌的AlphaGo 則是深度學(xué)習(xí),給他一堆棋譜虑灰,不告訴他規(guī)則吨瞎,他自己去學(xué)習(xí)其中的規(guī)則,更有通用性穆咐。也就是說它既沒有決策樹方面的編程颤诀,也沒有如何評估棋盤位置的方程式,或者是假定的規(guī)則对湃。DeepMind CEO DemisHassabis 說:“AlphaGo 基本上是靠左右手互搏和觀察職業(yè)棋局來下棋崖叫。”(訓(xùn)練期間 AlphaGo 跟自己下了 100 萬盤棋)
3)【歷史】
? ? 很明顯的三個階段:
? ? ? ? 1??神經(jīng)網(wǎng)絡(luò)作為一個計算模型的理論拍柒,1943年 最初由科學(xué)家 Warren McCulloch 和 Walter Pitts 提出心傀。
? ? ? ? 2??康內(nèi)爾大學(xué)教授 Frank Rosenblatt 1957年 提出的“感知器” (Perceptron),是第一個用算法來精確定義神經(jīng)網(wǎng)絡(luò)斤儿,第一個具有自組織自學(xué)習(xí)能力的數(shù)學(xué)模型剧包,是日后許多新的神經(jīng)網(wǎng)絡(luò)模型的始祖。
? ? ? ? 3??深度學(xué)習(xí)的概念由Hinton等人于2006年提出往果〗海基于深度置信網(wǎng)絡(luò)(DBN)提出非監(jiān)督貪心逐層訓(xùn)練算法挠进,為解決深層結(jié)構(gòu)相關(guān)的優(yōu)化難題帶來希望相艇,隨后提出多層自動編碼器深層結(jié)構(gòu)。
????這三個階段中乐严,出現(xiàn)了幾個很有名的深度學(xué)習(xí)的專家肮之,其中的第四位就是華裔首席人工智能科學(xué)家掉缺,吳恩達(dá)?是?人工智能和機(jī)器學(xué)習(xí)領(lǐng)域國際上最權(quán)威的學(xué)者之一。下圖中的Andrew Ng就是吳恩達(dá)戈擒。
4)【分類】
?????同機(jī)器學(xué)習(xí)方法一樣眶明,深度機(jī)器學(xué)習(xí)方法也有監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)之分.不同的學(xué)習(xí)框架下建立的學(xué)習(xí)模型很是不同.例如,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks筐高,簡稱CNNs)就是一種深度的監(jiān)督學(xué)習(xí)下的機(jī)器學(xué)習(xí)模型搜囱,而深度置信網(wǎng)(Deep Belief Nets丑瞧,簡稱DBNs)就是一種無監(jiān)督學(xué)習(xí)下的機(jī)器學(xué)習(xí)模型。
? ??監(jiān)督學(xué)習(xí):這個進(jìn)展是比較順利的蜀肘,已經(jīng)有了工業(yè)上應(yīng)用绊汹。比如開水燙,媽媽告訴你不要摸扮宠,碰了我就打你西乖,就算是懲罰,你就學(xué)會了不要觸碰坛增,這就是監(jiān)督學(xué)習(xí)获雕。機(jī)器學(xué)習(xí)里的監(jiān)督學(xué)習(xí)也有懲罰函數(shù),評價函數(shù)收捣。
? ??非監(jiān)督學(xué)習(xí):非監(jiān)督學(xué)習(xí)典鸡,是常識,比如一個孩子去聽了很多場的音樂會坏晦,他可能不知道這是爵士樂或者是交響樂,但是當(dāng)他聽了很多場音樂后嫁乘,他會總結(jié)出來這個音樂是高亢的昆婿,那個音樂是平和的。沒人給他去打標(biāo)簽蜓斧,這個就是非監(jiān)督學(xué)習(xí)仓蛆。
5)【基本思想】
????深度學(xué)習(xí)通過構(gòu)建深層神經(jīng)網(wǎng)絡(luò),來模擬人類大腦的工作原理挎春。如下圖所示看疙,深層神經(jīng)網(wǎng)絡(luò)由一個輸入層,數(shù)個隱層直奋,以及一個輸出層構(gòu)成能庆。每層有若干個神經(jīng)元,神經(jīng)元之間有連接權(quán)重脚线。每個神經(jīng)元模擬人類的神經(jīng)細(xì)胞搁胆,而結(jié)點之間的連接模擬神經(jīng)細(xì)胞之間的連接。深度學(xué)習(xí)框架的基本結(jié)構(gòu)如圖所示邮绿。
6)【神經(jīng)網(wǎng)絡(luò)】
? ? “人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks)”是另一種算法方法渠旁,它也是早期機(jī)器學(xué)習(xí)專家提出的,存在已經(jīng)幾十年了船逮。神經(jīng)網(wǎng)絡(luò)(Neural Networks)的構(gòu)想源自于我們對人類大腦的理解——神經(jīng)元的彼此聯(lián)系顾腊。二者也有不同之處,人類大腦的神經(jīng)元按特定的物理距離連接的挖胃,人工神經(jīng)網(wǎng)絡(luò)有獨立的層杂靶、連接梆惯,還有數(shù)據(jù)傳播方向。
深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)還是有區(qū)別的伪煤,請看
7)【深度學(xué)習(xí)的應(yīng)用和實例】
? ? ==【識別一只狗】:
????怎么去識別一只狗和一條凳子加袋,狗有毛,一千張圖片輸入抱既,拍攝一張狗的照片通過了整個模型职烧,但是如果一只貓過來了,就需要重新訓(xùn)練這個模型防泵,而且機(jī)器學(xué)習(xí)有一個人工打標(biāo)簽的工作蚀之,工作量是巨大的。
????深度學(xué)習(xí)捷泞,則是將這個打標(biāo)簽的工作去掉了足删,交給了神經(jīng)網(wǎng)絡(luò)自己來做了。具體過程如下:1)訓(xùn)練階段會提供大量帶標(biāo)簽的各種動物圖像給神經(jīng)網(wǎng)絡(luò)锁右,讓后者學(xué)會進(jìn)行分類失受;2)輸入:提供一張不帶標(biāo)簽的圖片給經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò);3)第一層:神經(jīng)元對不同的簡單形狀如邊緣進(jìn)行響應(yīng)咏瑟;4)更高層:神經(jīng)元對更復(fù)雜的結(jié)構(gòu)進(jìn)行響應(yīng)拂到;5)頂層:神經(jīng)元對我們會識別為不同動物的高度復(fù)雜、抽象的概念進(jìn)行響應(yīng)码泞。
當(dāng)然識別一個妹子和一只貓兄旬,更是so easy的事情。
==【語音識別】:
? ? 語音識別也是深度學(xué)習(xí)用武之地余寥,現(xiàn)在在國內(nèi)科大訊飛领铐,百度地圖的小度,包括眾多搜索的語音搜索都是語音識別宋舷。
==【使用AI中的深度學(xué)習(xí)绪撵,自己作畫】:
? ? 使用深度學(xué)習(xí)訓(xùn)練的機(jī)器人根據(jù)梵高的名畫《星空》也將下圖一個普通的建筑也繪成了梵高的星空風(fēng)格的畫了。
三肥缔、為什么要進(jìn)行深度學(xué)習(xí)莲兢?
????深度學(xué)習(xí)是機(jī)器學(xué)習(xí)研究中的一個新的領(lǐng)域,其動機(jī)在于建立续膳、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)改艇,它模仿人腦的機(jī)制來解釋數(shù)據(jù),例如圖像坟岔,聲音和文本谒兄。
? ? 對程序員來說,這個是趨勢社付,很有錢途的承疲。雖然深度學(xué)習(xí)卻是很難邻耕。
? ? 看看這些晦澀難懂的術(shù)語:Gradient descent(梯度下降算法)、Backpropagation(反向傳播算法)燕鸽、Convolutional Neural Network(卷積神經(jīng)網(wǎng)絡(luò))兄世、受限玻耳茲曼機(jī)(Restricted Boltzmann Machine)等。
????如打開任何一篇技術(shù)文章啊研,你看到的通篇都是各種數(shù)學(xué)公式御滩。大家看到如下左邊的圖,其實并不是一篇高水準(zhǔn)的學(xué)術(shù)論文党远,而僅僅是維基百科關(guān)于玻耳茲曼機(jī)的介紹削解。維基百科是科普層面的內(nèi)容,內(nèi)容復(fù)雜程度就超過了大多數(shù)數(shù)學(xué)知識的能力沟娱。
四氛驮、怎樣進(jìn)行深度學(xué)習(xí)?
? ? 1)【所需知識】
????線性代數(shù)济似、概率和信息論等矫废,Python ,Java其中一種編程語言,最好是Python砰蠢,因為現(xiàn)在很多的深度學(xué)習(xí)框架都是基于Python磷脯,Java的相對少一些。
? ? 2)【了解深度學(xué)習(xí)的步驟】
深度學(xué)習(xí)的堆棧如下:
1??GPU > Nvidia Tesla K80娩脾。該硬件常用于圖形處理。它們深度學(xué)習(xí)的速度平均要比 CPU 快50-200倍打毛。
2??CUDA > GPU 的底層編程語言
3??CuDNN > Nvidia 的庫柿赊,用來優(yōu)化 CUDA
4??Tensorflow > 由 Google 開發(fā),基于 CuDNN 的深度學(xué)習(xí)框架
5??TFlearn > Tensorflow 的前端框架
3)【深度學(xué)習(xí)的框架】
? ? 深度學(xué)習(xí)的框架有很多幻枉,這里主要介紹最流行的TensorFlow框架碰声。
01【簡介】:
????TensorFlow框架是2015年谷歌推出的開源的面向機(jī)器學(xué)習(xí)的開發(fā)框架,這也是Google第二代的深度學(xué)習(xí)的框架熬甫。很多公司都使用了TensorFlow開發(fā)了很多有意思的應(yīng)用胰挑,效果很好。
????用TensorFlow可以做什么椿肩?答案是它可以應(yīng)用于回歸模型瞻颂、神經(jīng)網(wǎng)絡(luò)以深度學(xué)習(xí)這幾個領(lǐng)域。在深度學(xué)習(xí)方面它集成了分布式表示郑象、卷積神經(jīng)網(wǎng)絡(luò)(CNN)贡这、遞歸神經(jīng)網(wǎng)絡(luò)(RNN) 以及長短期記憶人工神經(jīng)網(wǎng)絡(luò)(Long-Short Term Memory, LSTM)。
02 【概念】:
????TensorFlow 就是有狀態(tài)圖的數(shù)據(jù)流圖計算環(huán)境厂榛,每個節(jié)點就是在做數(shù)據(jù)操作盖矫,然后提供依賴性和指向性丽惭,提供完整數(shù)據(jù)流。
03 【安裝】:
????常規(guī)的Tensorsorflow的安裝很簡單辈双,一條命令足矣:
$ pip3 install —upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp35-cp35m-linux_x86_64.whl
如果想評估一下或者簡單學(xué)習(xí)一下责掏,還可以通過Docker進(jìn)行安裝,安裝的命令如下:
$ docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow
04 【優(yōu)點】:
????首先湃望,目前為止换衬,深度學(xué)習(xí)的開發(fā)框架里面TensorFlow的文檔做的最好,對程序員學(xué)習(xí)而言是非常好的一點喜爷。
????第二冗疮,TensorFlow有豐富的參考實例,作為參考學(xué)習(xí)起來非常容易檩帐。
????第三术幔,開發(fā)者社區(qū)活躍,在任何一個深度學(xué)習(xí)的社區(qū)里湃密,都有大量關(guān)于TensorFlow的討論诅挑。第四,谷歌的支持力度非常大泛源,從2015年到現(xiàn)在升級速度非嘲瓮祝快,這是其他開源框架遠(yuǎn)遠(yuǎn)達(dá)不到的結(jié)果达箍。
05 【其他】:
????實際上如果真要開始深度學(xué)習(xí)的開發(fā)研究工作没龙,光是預(yù)備工作就夠你喝一壺了,硬件要好缎玫,CPU,最好是GPU,或者是專業(yè)的DSP, FPGA處理芯片硬纤。比較的燒錢。詳細(xì)的可以參考《從零開始:深度學(xué)習(xí)軟件環(huán)境安裝指南》赃磨。
五筝家、寫在最后
? ? 人工智能AI的大幕已經(jīng)拉起,聰明的你邻辉,不跟著搞一下深度學(xué)習(xí)嘛溪王!