Keras與深度學習實戰(zhàn) 課件 第1章 深度學習概述_第1頁
Keras與深度學習實戰(zhàn) 課件 第1章 深度學習概述_第2頁
Keras與深度學習實戰(zhàn) 課件 第1章 深度學習概述_第3頁
Keras與深度學習實戰(zhàn) 課件 第1章 深度學習概述_第4頁
Keras與深度學習實戰(zhàn) 課件 第1章 深度學習概述_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

深度學習簡介1深度學習的常見應用目錄深度學習的定義2深度學習目前在很多領(lǐng)域的表現(xiàn)都優(yōu)于過去的方法,在圖像分類與識別、語音識別與合成、人臉識別、視頻分類與行為識別等領(lǐng)域都有著不俗的表現(xiàn)。除此以外,深度學習還涉及到與生活相關(guān)的紋理識別、行人檢測、場景標記、門牌識別等領(lǐng)域。人臉識別采用深度學習方法后的識別率超過了目前非深度學習算法以及人類的識別率。深度學習技術(shù)在語音識別領(lǐng)域更是取得了突破性的進展,在大規(guī)模圖像分類問題上也遠超傳統(tǒng)方法。深度學習的定義2006年,杰弗里·辛頓(GeoffreyHinton)等人在頂尖學術(shù)刊物《科學》上發(fā)表了一篇文章,該文章提出了深層網(wǎng)絡訓練中梯度消失問題的解決方案。首先使用無監(jiān)督預訓練對權(quán)值進行初始化。然后使用有監(jiān)督訓練微調(diào)權(quán)值。在2012年,擁有8層網(wǎng)絡的深層神經(jīng)網(wǎng)絡AlexNet在圖片識別競賽中取得了優(yōu)異的成績,展現(xiàn)了深層神經(jīng)網(wǎng)絡強大的學習能力。此后數(shù)十層、數(shù)百層、甚至上千層的深度神經(jīng)網(wǎng)絡模型被相繼提出。神經(jīng)網(wǎng)絡和深度學習并沒有本質(zhì)上的區(qū)別,通常將利用深層神經(jīng)網(wǎng)絡實現(xiàn)的算法稱為深度學習,可以認為深度學習是深層神經(jīng)網(wǎng)絡的一個代名詞。深度學習的定義深度學習特指基于深層神經(jīng)網(wǎng)絡實現(xiàn)的模型或算法,其核心在于自動地將簡單的特征組合成更加復雜的特征,并使用這些組合特征解決問題。深度學習是機器學習的一個分支,它除了可以學習特征和任務之間的關(guān)聯(lián)之外,還能自動從簡單特征中提取更加復雜的特征。雖然深度學習研發(fā)的初始受到了很多大腦工作原理的啟發(fā),但是現(xiàn)代深度學習的發(fā)展并不拘泥于模擬人腦神經(jīng)元和人腦的工作機制?,F(xiàn)代的深度學習已經(jīng)超越了神經(jīng)科學觀點,它可以更廣泛地適用于各種并不是由神經(jīng)網(wǎng)絡啟發(fā)而來的機器學習框架。深度學習的定義1深度學習的常見應用目錄深度學習的定義2深度學習在圖像分類、圖像分割、圖像生成、圖像標題生成(圖像理解)、圖像風格變換、物體檢測、物體測量等方面被應用。以及物體分揀、視覺定位、情感分析、無人駕駛、機器翻譯、文本到語音轉(zhuǎn)換、手寫文字轉(zhuǎn)錄、智能問答系統(tǒng)等方面均有應用。這些深度學習的應用與日常生活也是息息相關(guān),如手機中的語音助手、汽車上的智能輔助駕駛、人臉支付等。深度學習的常見應用圖像分類的核心是從給定的分類集合中,給圖像分配一個標簽的任務。實際上,圖像分類是分析一個輸入圖像并返回一個將圖像分類的標簽。標簽總是來自預定義的可能類別集。利用深度學習算法可以實現(xiàn)對貓的圖像進行分類,如右圖。圖像分類圖像分割就是將圖像分成若干個特定的、具有獨特性質(zhì)的區(qū)域并提出感興趣目標的技術(shù)和過程,它是由圖像處理到圖像分析的關(guān)鍵步驟,現(xiàn)有的圖像分割方法主要分為4類:基于閾值的分割方法?;趨^(qū)域的分割方法。基于邊緣的分割方法?;谔囟ɡ碚摰姆指罘椒?。圖像分割從數(shù)學角度來看,圖像分割是將數(shù)字圖像劃分成互不相交的區(qū)域的過程。圖像分割的過程也是一個標記過程,即把屬于同一區(qū)域的像素賦予相同的編號。對街道車輛圖像進行分割的結(jié)果,如下圖。圖像分割有一種新的研究,能實現(xiàn)在生成圖像的過程中不需要另外輸入任何圖像,只要前期使用大量的真實圖像讓網(wǎng)絡進行學習,即可由網(wǎng)絡自動生成新的圖像。目前常見的生成模型有VAE系列、GAN系列等。其中GAN系列算法近年來取得了巨大的進展,最新GAN模型產(chǎn)生的圖片效果達到了肉眼難辨真?zhèn)蔚某潭?。如計算機提供的真實圖像與計算機根據(jù)真實圖像生成的假圖像對比。

圖像生成左圖是為計算機提供的真實圖像。右圖為計算機根據(jù)真實圖像生成的假圖像。

圖像生成神經(jīng)圖像標題(NeuralImageCaption,NIC)模型會自動生成介紹輸入圖像的文字,該模型由深層的卷積神經(jīng)網(wǎng)絡和自然語言語言處理的循環(huán)神經(jīng)網(wǎng)絡(RecurrentNeuralNetwork,RNN)構(gòu)成。卷積神經(jīng)網(wǎng)絡提取圖像特征,RNN生成文本。圖像標題生成輸入下圖所示的原圖像可以生成諸如?!耙粋€男人和一個女孩坐在地上吃”“一個男人和一個小女孩正坐在人行道上吃,附近一個藍色的袋子”“一個男人穿著一件黑色的襯衫和一個穿著橙色禮服的小女孩分享一種享受”等標題。圖像標題生成圖像風格的變換是利用了卷積神經(jīng)網(wǎng)絡可以提取高層特征的效果,不在像素級別進行損失函數(shù)的計算,而是將原圖像和生成圖像都輸入至一個已經(jīng)訓練好的神經(jīng)網(wǎng)絡里。在得到的某種特征表示上計算歐式距離(內(nèi)容損失函數(shù))。這樣得到的圖像與原圖內(nèi)容相似,但像素級別不一定相似,且所得圖像更具魯棒性。輸入兩個圖像,計算機會生成一個新的圖像。圖像風格變換兩個輸入圖像中,一個稱為“內(nèi)容圖像”,如左圖所示。另外一個稱為“風格圖像”,如右圖所示。圖像風格變換如果將梵高的繪畫風格應用于內(nèi)容圖像上,那么深度學習會按照要求繪制出新風格,其輸出圖像如下圖。圖像風格變換物體檢測就是從圖像中確定物體的位置,并對物體進行分類。根據(jù)騎行圖像對騎行者進行檢測,如下圖。物體檢測物體檢測是機器視覺領(lǐng)域最主要的應用之一,例如,汽車違規(guī)行駛的檢測會為了保障行車、行人的安全在路口安裝交通檢測系統(tǒng),檢測汽車是否有以下行為。檢測汽車的行駛速度是否超過限制。是否存在違規(guī)變道行為。是否存在闖紅燈行為。是否遮擋車牌。是否系安全帶等。而人工檢測存在著較多的弊端,如準確率低,長時間工作準確性更是無法保障,而且檢測速度慢,容易出現(xiàn)錯判和漏判。物體檢測因此,機器視覺在物體檢測的應用方面也就顯得非常重要。物體檢測比物體識別更難;原因在于物體檢測需要從圖像中確定物體的位置,有時還有可能存在多個物體。對于這樣的問題,人們提出了多個基于卷積神經(jīng)網(wǎng)絡(ConvolutionalNeuralNetworks,CNN)的方法,這些方法有著非常優(yōu)秀的性能。在使用卷積神經(jīng)網(wǎng)絡進行物體檢測的方法中,區(qū)域卷積神經(jīng)網(wǎng)絡(Region-ConvolutionalNeuralNetworks,R-CNN)較早地運用在物體檢測上,因此該算法較為成熟。R-CNN算法在提高訓練和測試的速度的同時提高了檢測精度。物體檢測在日常生活中,物體測量通常是對物體的質(zhì)量、長度、高度、體積等進行測量。在機器視覺應用中,使用光的反射進行非接觸式測量,右圖所示。這是某款手機使用非接觸光學測量方法對桌子進行的測量。物體測量技術(shù)還多用于工業(yè)方面,主要對汽車零部件、齒輪、半導體元件管腳、螺紋等進行測量。物體測量物體分揀是建立在設別、檢測之后的一個環(huán)節(jié),通過機器視覺對圖像中的目標進行檢測和識別,實現(xiàn)自動分揀,如右圖所示。在工業(yè)應用領(lǐng)域常用于食品分揀、零件表面瑕疵自動分揀、棉花纖維分揀等。同時,物體分揀在物流、倉庫中的運用更為廣泛,在分揀過程中,機器通過按照物品種類、物品大小、出入庫的先后順序等方法對物體進行分揀。物體分揀視覺定位要求機器能夠快速準確地找到被測零件并確認其位置,如圖。在半導體封裝領(lǐng)域,設備需要根據(jù)機器視覺取得芯片位置信息、調(diào)整拾取頭、準確拾取芯片并進行綁定,這就是視覺定位在機器視覺工業(yè)領(lǐng)域最基本的應用。視覺定位情感分析最核心的問題就是從一段文字中判斷作者對主體的評價是好評還是差評。針對通用場景下帶有主觀描述的中文文本,利用深度學習算法自動判斷該文本的情感極性類別并給出相應的置信度。情感極性分為積極、消極、中性或更多維的情緒,情感分析的例子如下圖所示。情感分析無人駕駛被認為是強化學習短期內(nèi)能技術(shù)落地的一個應用方向,很多公司投入大量資源在無人駕駛上,其中百度的無人巴士“阿波龍”已經(jīng)在北京、武漢等地展開試運營,自動無人駕駛的行車視野如下圖所示。利用深度學習算法主要用傳感器來指揮操縱車輛,創(chuàng)造一個完全智能調(diào)度的移動出行網(wǎng)絡如下圖所示。無人駕駛常用的機器翻譯模型有Seq2Seq、BERT、GPT、GPT-2等,其中OpenAI提出的GPT-2模型參數(shù)量高達15億個,甚至發(fā)布之初以技術(shù)安全考慮為由拒絕開源GPT-2模型。目前深度學習在機器翻譯領(lǐng)域也取得了很大的進步,如科大訊飛的翻譯機支持多語種離線翻譯(英語、日語、韓語、西班牙語、法語等),拍照翻譯。并且四川話、河南話、東北話、山東話等也能順利翻譯。除了日常的對話外,翻譯機還可以用于行業(yè)領(lǐng)域的翻譯,如外貿(mào)、能源、法律、體育、電力、醫(yī)療、金融、計算機等,都在支持的范圍內(nèi)。機器翻譯科大訊飛翻譯機如左圖所示。其實時翻譯記錄如右圖所示。機器翻譯從文本中生成人造的語音,通常被稱為文本轉(zhuǎn)語音(TTS),它有許多的應用,如語音驅(qū)動的設備、導航系統(tǒng)和視力障礙者設備中不可缺少的工具。從根本上說,TTS能讓人在不需要視覺交互的情況下與技術(shù)進行互動。百度研究院發(fā)布的DeepVoice是一個文本到語音轉(zhuǎn)換系統(tǒng),完全由深度神經(jīng)網(wǎng)絡構(gòu)建。文本到語音的轉(zhuǎn)換將自然語言的文本很流暢自然的變?yōu)檎Z音,也因此出現(xiàn)了語音小說,免去了讀者閱讀的麻煩。文本到語音轉(zhuǎn)換自動識別用戶手寫體文字,并將其直接轉(zhuǎn)化為計算機可以識別的文字。對用戶手寫字體字形進行提取,其中包括利用文本行的水平投影進行行切分,以及利用文本行的垂直投影進行字切分等。將提取的用戶手寫體字形特征向量與計算機的字形特征向量進行匹配,并建立用戶手寫體與計算機字體的對應關(guān)系,生成計算機可識別的文字。手寫文字轉(zhuǎn)錄由于網(wǎng)絡在日常生活的應用,用戶可以足不出戶的在手機上完成購物、繳費等。但是這種行為帶來了溝通不便的弊端,例如在繳納手機話費時,不清楚賬單里的扣費詳情。于是基于深度學習和自然語言處理的智能問答系統(tǒng)受到了廣泛的關(guān)注。在智能問答系統(tǒng)中輸入問題,系統(tǒng)將提取問題中的關(guān)鍵字,然后輸出與關(guān)鍵字相關(guān)的答案,極大程度的減少了人力和物力的投入。手寫文字轉(zhuǎn)錄深度學習與其他領(lǐng)域深度學習最早興起于圖像識別,但是在短短幾年時間內(nèi),深度學習已經(jīng)被推廣到了機器學習的各個領(lǐng)域。如今,深度學習在很多應用領(lǐng)域都有非常出色的表現(xiàn),如計算機視覺、自然語言處理、語音識別等。深度學習在其他領(lǐng)域的應用,使這些領(lǐng)域迎來了高速發(fā)展期。深度學習與其他領(lǐng)域1深度學習與自然語言處理目錄深度學習與計算機視覺2深度學習與語音識別3深度學習與機器學習4深度學習與人工智能5計算機視覺是深度學習技術(shù)最早取得突破性成就的領(lǐng)域。在2010年到2011年間,基于傳統(tǒng)機器學習的算法并沒有帶來正確率(預測正確的樣本數(shù)量占總樣本數(shù)量的比例)的大幅度提升。在2012年的ILSVRC比賽中,杰弗里·辛頓(GeoffreyHinton)教授研究小組利用深度學習技術(shù)在ImageNet數(shù)據(jù)集上將圖像分類的錯誤率(預測錯誤的樣本數(shù)量占總樣本數(shù)量的比例)大幅度下降到16%。在2012年到2015年間,通過對深度學習算法的不斷研究,使深度學習在ImageNet數(shù)據(jù)集上實現(xiàn)圖像分類的錯誤率以較大的速度遞減,這說明深度學習打破了傳統(tǒng)機器學習算法在圖像分類上的瓶頸,使得圖像分類問題得到了更好的解決。在ImageNet數(shù)據(jù)集上,深度學習不僅突破了圖像分類的技術(shù)瓶頸,同時也突破了物體識別的技術(shù)瓶頸。深度學習與計算機視覺相對于圖像分類,物體識別的難度更高。圖像分類問題只需判斷圖片中包含哪一種物體。但在物體識別問題中,需要給出所包含物體的具體位置,而且一張圖片中可能出現(xiàn)多個需要識別的物體,所有可以被識別的物體都需要用不同的方框標注出來。在物體識別問題中,人臉識別是應用非常廣泛的技術(shù),它既可以應用于娛樂行業(yè),又可以應用于安防、風控行業(yè)。在娛樂行業(yè)中,基于人臉識別的相機自動對焦、自動美顏等功能基本已經(jīng)成為每一款自拍軟件的必備功能。在安防、風控領(lǐng)域,人臉識別應用更是大大地提高了工作效率并節(jié)省了人力成本。例如,在互聯(lián)網(wǎng)金融行業(yè),為了控制貸款風險,在用戶注冊或貸款發(fā)放時需要驗證本人信息。個人信息驗證中一個很重要的步驟是驗證用戶提供的證件和用戶是否為同一個人,通過人臉識別技術(shù),這個過程可以被更為高效地實現(xiàn)。深度學習與計算機視覺在計算機視覺領(lǐng)域,光學字符識別(OpticalCharacterRecognition,OCR)也較早的使用了深度學習。早在1989年,卷積神經(jīng)網(wǎng)絡就已經(jīng)成功應用到識別手寫郵政編碼的問題上,達到接近95%的正確率,在MNIST手寫體數(shù)字識別數(shù)據(jù)集上,最新的深度學習算法可以達到99.77%的正確率,這也超過了人類的表現(xiàn)。光學字符識別在金融屆的應用十分廣泛,在21世紀初期,楊立昆(YannLeCun)教授將基于卷積神經(jīng)網(wǎng)絡的手寫體數(shù)字識別系統(tǒng)應用于銀行支票的數(shù)額識別,此系統(tǒng)在2000年左右已經(jīng)處理了某國全部支票數(shù)量的10%~20%。數(shù)字識別技術(shù)也可以應用到地圖的開發(fā)中,某公司實現(xiàn)的數(shù)字識別系統(tǒng)可以從街景圖中識別任意長度的數(shù)字,并在SVHN數(shù)據(jù)集上達到96%的正確率。除此之外,文字識別技術(shù)可以將掃描的圖書數(shù)字化,從而實現(xiàn)圖書內(nèi)容的搜索功能。深度學習與計算機視覺1深度學習與自然語言處理目錄深度學習與計算機視覺2深度學習與語音識別3深度學習與機器學習4深度學習與人工智能5自然語言處理(NaturalLanguageProcessing,NLP)是計算機科學中令人興奮的領(lǐng)域,涉及人類交流。自然語言處理包含機器理解,解釋和生成人類語言的方法,有時也將它描述為自然語言理解(NaturalLanguageUnderstanding,NLU)和自然語言生成(NaturalLanguageGeneration,NLG)。傳統(tǒng)的NLP方法采用基于語言學的方法,它是基于語言的基本語義和句法元素(如詞性)構(gòu)建的?,F(xiàn)代深度學習方法可避開對中間元素的需求,并且可以針對通用任務學習其自身的層次表示。1966年自動語言處理咨詢委員會的報告強調(diào)了機器翻譯從流程到實施成本面臨的巨大困難,導致了投資方在資金方面的投資,使得NLP的研究幾乎停滯。1960年到1970年的十年是世界知識研究的一個重要時期,該時期強調(diào)語義而非句法結(jié)構(gòu),探索名詞和動詞之間的語法在這個時代扮演者重要的角色。1960年到1970年的十年期間出現(xiàn)了處理諸如短語的增強過渡網(wǎng)絡,以及以自然語言回答的語言處理系統(tǒng)SHRDLU。深度學習與自然語言處理隨后又出現(xiàn)了LUNAR系統(tǒng),即一個將自然語言理解與基于邏輯的系統(tǒng)相結(jié)合的問答系統(tǒng)。在八十年代初期,開始了基于語法研究自然語言的階段,語言學家發(fā)展了不同的語法結(jié)構(gòu),并開始將與用戶意圖的短語關(guān)聯(lián)起來,開發(fā)出許多自然語言處理工具,如SYSTRAN、METEO等,在翻譯、信息檢索中被大量使用。九十年代是統(tǒng)計語言處理的時代,在大多數(shù)基于NLP的系統(tǒng)中,使用了許多新的收集數(shù)據(jù)的方法,例如使用語料庫進行語言處理或使用基于概率和分類的方法處理語言數(shù)據(jù)。2000年初期,在自然語言學習會議上,出現(xiàn)了許多有趣的NLP研究,例如分塊、命名實體識別和依賴解析等。在此期間一系列很多成果得以誕生,如約書亞·本吉奧(Yoshua

Bengio)提出的第一個神經(jīng)語言模型,使用查找表來預測單詞。深度學習與自然語言處理隨后提出的許多基于遞歸神經(jīng)網(wǎng)絡和長短時記憶模型被自然語言處理廣泛使用,其中帕賓(Papineni)提出的雙語評估模型直到今天仍被用作機器翻譯的標準度量標準。此后出現(xiàn)的多任務學習技術(shù)使得機器可以同時學習多個任務,米科洛夫(Mikolov)等人提高了本吉奧提出的訓練詞嵌入的效率,并通過移除隱藏層產(chǎn)生Word2vec,在給定附近單詞的情況下準確預測中心單詞。通過學習大量數(shù)據(jù)集獲得的效率,使得密集的表示形式能夠捕獲各種語義和關(guān)系,從而可以完成諸如機器翻譯之類的各種任務,并能夠以無監(jiān)督的方式實現(xiàn)“轉(zhuǎn)移學習”。隨后出現(xiàn)的基于序列學習的通用神經(jīng)框架,由編碼器神經(jīng)網(wǎng)絡處理輸入序列,解碼器神經(jīng)網(wǎng)絡根據(jù)輸入序列狀態(tài)和當前輸出狀態(tài)來預測輸出,其在機器翻譯和問題解答方面都取得了不錯的應用效果。深度學習與自然語言處理1深度學習與自然語言處理目錄深度學習與計算機視覺2深度學習與語音識別3深度學習與機器學習4深度學習與人工智能5深度學習在語音識別領(lǐng)域取得的成績也是突破性的。2009年深度學習算法被引入語音識別領(lǐng)域,并對該領(lǐng)域產(chǎn)生了巨大的影響。TIMT(TheDARPATIMITAcoustic-PhoneticContinuousSpeechCorpus)數(shù)據(jù)集為630個人說的十個給定的句子,每一個句子都有標記。在此數(shù)據(jù)集上基于傳統(tǒng)的混合高斯模型(GaussianMixedModel,GMM)的錯誤率為21.7%。而使用深度學習模型后錯誤率從21.7%降低到了17.9%。錯誤率降低的幅度很快引起了學術(shù)界和工業(yè)界的廣泛關(guān)注。從2010年到2014年,在語音識別領(lǐng)域的兩大學術(shù)會議IEEE-ICASSP和Interspeech上,深度學習的文章呈現(xiàn)出逐年遞增趨勢。深度學習與語音識別在工業(yè)界,許多國內(nèi)外大型IT公司開始提供的語音相關(guān)產(chǎn)品,2009年某公司啟動語音識別的應用時,使用的是混合高斯模型。到2012年,基于深度學習的語音識別模型已取代混合高斯模型,并成功將語音識別的錯誤率降低了20%,這個改進幅度超過了過去很多年的總和?;谏疃葘W習的語音識別被應用到了各個領(lǐng)域,其中最熟悉的是蘋果公司推出的Siri系統(tǒng)就存在語言識別功能。Siri系統(tǒng)可以對用戶的語音輸入進行識別并完成相應的操作功能,這也在很大程度上方便用戶使用。目前,Siri系統(tǒng)支持包括中文在內(nèi)的20種不同語言。除此之外,另外一個成功應用語音識別的系統(tǒng)是微軟的同聲傳譯系統(tǒng)。深度學習與語音識別在2012年的微軟亞洲研究院(MicrosoftResearchAsia,MSRA)二十一世紀計算大會(21stCenturyComputing)上,微軟高級副總裁理查德·拉什德(RichardRashid)現(xiàn)場演示了微軟開發(fā)的從英語到漢語的同聲傳譯系統(tǒng)。同聲傳譯系統(tǒng)不僅要求計算機能夠?qū)斎氲恼Z音進行識別,而且要求計算機將識別出來的結(jié)果翻譯成另外一門語言,并將翻譯好的結(jié)果通過語音合成的方式輸出。在沒有深度學習之前,要完成同聲傳譯系統(tǒng)中的任意一個部分都是非常困難的。而隨著深度學習的發(fā)展,語音識別、機器翻譯以及語音合成都實現(xiàn)了巨大的技術(shù)突破。如今,微軟研發(fā)的同聲傳譯系統(tǒng)已經(jīng)被成功地應用到Skype網(wǎng)絡電話中。深度學習與語音識別1深度學習與自然語言處理目錄深度學習與計算機視覺2深度學習與語音識別3深度學習與機器學習4深度學習與人工智能5為了更好地理解深度學習(DL)和機器學習(ML)的關(guān)系,繪制它們之間的包含關(guān)系,如圖所示。深度學習(DL)是機器學習(ML)的一個子領(lǐng)域,它除了可以學習特征和任務之間的關(guān)聯(lián)以外,還能自動從簡單特征中提取更加復雜的特征。深度學習與機器學習機器學習(ML)是人工智能(AI)的一個子領(lǐng)域,在過去10年變得很流行。與人工智能一樣,機器學習不是一種替代,而是對傳統(tǒng)程序方法的補充。機器學習是根據(jù)輸入與輸出編寫算法,最終獲得一套規(guī)則,而傳統(tǒng)程序是根據(jù)輸入,編寫一套規(guī)則,從而獲得理想的輸出。傳統(tǒng)程序和機器學習的流程對比,如圖所示。深度學習與機器學習大多數(shù)機器學習在結(jié)構(gòu)化數(shù)據(jù)上表現(xiàn)良好。影響機器學習效果的一個重要環(huán)節(jié)是特征工程,數(shù)據(jù)科學家需要花費大量時間來構(gòu)建合適的特征,從而使機器學習算法能夠正常執(zhí)行且取得滿意的效果。但在某些領(lǐng)域,例如自然語言處理的特征工程則面臨著高維度問題的挑戰(zhàn)。在面對等高維度問題時,使用典型的機器學習技術(shù)(例如線性回歸,隨機森林等)來解決就非常具有挑戰(zhàn)性。機器學習的一個特殊分支稱為深度學習,傳統(tǒng)的機器學習算法,通過手寫特征提取的方法來訓練算法,而深度學習算法能夠?qū)崿F(xiàn)以自動的方式提取特征進行訓練。深度學習與機器學習例如,利用深度學習算法來預測圖像是否包含面部特征,從而實現(xiàn)對面部特征進行提取。其中深度學習網(wǎng)絡第一層檢測圖像的邊緣。第二層檢測形狀(例如鼻子和眼睛)。最后一層檢測面部形狀或更復雜的結(jié)構(gòu)。每層都基于上一層的數(shù)據(jù)表示進行訓練。隨著GPU、大數(shù)據(jù)以及諸如Torch、TensorFlow、Caffe和PyTorch之類的深度學習框架興起,深度學習的使用在過去幾年中得到了極大的發(fā)展。除此之外,大公司共享在龐大數(shù)據(jù)集上訓練的模型,幫助初創(chuàng)企業(yè)能較為輕松地在多個用例上構(gòu)建了先進的系統(tǒng)。深度學習與機器學習1深度學習與自然語言處理目錄深度學習與計算機視覺2深度學習與語音識別3深度學習與機器學習4深度學習與人工智能5人工智能(Artificialintelligence,AI)是計算機科學的一個分支。它企圖了解智能的本質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應的智能機器。對模擬、延伸和擴展人的智能的理論、方法和技術(shù)進行研究與開發(fā),是一門技術(shù)科學。人工智能目前可以按學習能力分為弱人工智能、強人工智能和超人工智能。

弱人工智能:弱人工智能(ArtificialNarrowIntelligence,ANI)。只專注于完成某個特定的任務,是擅長如語音識別、圖像識別和翻譯等單個方面的人工智能。是用于解決特定的具體類的任務問題而存在,大都基于統(tǒng)計數(shù)據(jù),并以此歸納出模型。由于弱人工智能只能處理較為單一的問題,且發(fā)展程度并沒有達到模擬人腦思維的程度,所以弱人工智能仍然屬于“工具”的范疇,與傳統(tǒng)的“產(chǎn)品”在本質(zhì)上并無區(qū)別。深度學習與人工智能強人工智能:強人工智能(ArtificialGenerallnteligence,AGI)。屬于人類級別的人工智能。強人工智能在各方面都能和人類比肩,它能夠進行思考、計劃、解決問題、抽象思維、理解復雜理念、快速學習和從經(jīng)驗中學習等操作,并且和人類一樣得心應手。超人工智能:超人工智能(ArtificialSuperintelligence,ASI)。在幾乎所有領(lǐng)域都比最聰明的人類大腦都聰明許多,包括科學創(chuàng)新、通識和社交技能。在超人工智能階段,人工智能已經(jīng)跨過“奇點”,其計算和思維能力已經(jīng)遠超人腦。此時的人工智能已經(jīng)不是人類可以理解和想象。人工智能將打破人腦受到的維度限制,其所觀察和思考的內(nèi)容,人腦已經(jīng)無法理解,人工智能將形成一個新的社會。深度學習與人工智能簡而言之,機器學習是實現(xiàn)人工智能的一種方法,而深度學習是實現(xiàn)機器學習的一種技術(shù)??梢哉f,人工智能的根本在于智能,而機器學習則是部署支持人工智能的計算方法,深度學習是實現(xiàn)機器學習的一種方式。深度學習與人工智能Keras簡介(1)1Keras與TensorFlow的關(guān)系目錄各深度學習框架對比2Keras常見接口3Keras是由Python編寫而成并可以作為TensorFlow、Theano以及CNTK的高階應用程序接口(API)。Keras在2015年正式成為開源的人工神經(jīng)網(wǎng)絡工具,是眾多深度學習框架中較為容易使用的一個。在深度學習中,TensorFlow、PyTorch、CNTK、MXNet、PaddlePaddle屬于最常用的框架,這些深度學習框架被應用于計算機視覺、自然語言處理、語音識別、機器學習等多個領(lǐng)域。各深度學習框架對比2015年,某公司宣布推出全新的機器學習開源工具TensorFlow,是基于深度學習基礎(chǔ)框架DistBelief構(gòu)建而成,主要用于機器學習和深度神經(jīng)網(wǎng)絡,一經(jīng)推出就獲得了較大的成功,并迅速成為用戶使用最多的深度學習框架。并在2019年,推出了TensorFlow2正式版本。而TensorFlow兩個版本之間各有優(yōu)勢,1.x的版本使用靜態(tài)圖進行運算,計算速度會比2.x版本的動態(tài)圖快,但是2.x搭建網(wǎng)絡的過程比1.x版本的簡單。因為TensorFlow得到了專業(yè)人員的進行開發(fā)、維護,所以該框架有著良好的發(fā)展性。同時,Tensorflow還擁有眾多低級、高級接口,使得其功能十分豐富。但是,由于TensorFlow發(fā)展過快,造成了接口、文檔混亂的問題。TensorFlow2017年1月,臉書人工智能研究院在GitHub上開源了PyTorch,并迅速成為GitHub熱度榜榜首。PyTorch特點是擁有生態(tài)完整性和接口易用性,使之成為當下最流行的動態(tài)框架之一。2018年Caffe2正式并入PyTorch后,PyTorch的發(fā)展勢頭更加強勁。PyTorch框架因上手簡單、功能強大,可以非??焖俚仳炞C研究思路而廣受研究人員的青睞。Pytorch由于是動態(tài)編程,運行效率比較低,沒有靜態(tài)圖運行效率高。在工業(yè)界部署時比較麻煩。PyTorchCNTK是微軟開發(fā)的深度學習框架,目前已經(jīng)發(fā)展成一個通用的、跨平臺的深度學習系統(tǒng),在語音識別領(lǐng)域的使用尤其廣泛。CNTK擁有豐富的神經(jīng)網(wǎng)絡組件,使得用戶不需要編寫底層的C++或CUDA,就能通過組合這些組件設計新的、復雜的Layer。同樣,CNTK也支持CPU和GPU兩種開發(fā)模式。CNTK以計算圖的形式描述結(jié)構(gòu),葉子節(jié)點代表輸入或者網(wǎng)絡參數(shù),其他節(jié)點代表計算步驟。CNTK同時也擁有較高的靈活度,通過配置文件定義網(wǎng)絡結(jié)構(gòu),通過命令行程序執(zhí)行訓練,支持構(gòu)建任意的計算圖,支持AdaGrad、RmsProp等優(yōu)化方法。CNTKMXNet是一個深度學習庫,也支持主流的開發(fā)語言,比如C++、Python、R、MATLAB、JavaScript。支持命令行和程序,可以運行在CPU、GPU上。它的優(yōu)勢在于同樣的模型MXNet占用更小的內(nèi)存和顯存,在分布式環(huán)境下優(yōu)勢更明顯于其他框架。為了完善MXNet生態(tài)圈,其先后推出包括MinPy、Keras等諸多接口,但目前也停止了更新。MXNet特點概括起來是分布式性能強大,支持開發(fā)語言豐富,但文檔完整性不夠,稍顯混亂。MXNet百度的PaddlePaddle(PArallelDistributedDeepLEarning)是一個易用、高效、靈活、可擴展的深度學習框架。支持命令式編程模式(動態(tài)圖)功能、性能和體驗;原生推理庫性能經(jīng)過顯著優(yōu)化,輕量級推理引擎實現(xiàn)了對硬件支持的極大覆蓋。支持CUDA下多線程多流、TRI子圖支持動態(tài)shape輸入,并強化了量化推理;對支持芯片的覆蓋度廣,包括RK、MTK、百度昆侖、寒武紀、比特大陸、華為NPU,以及對應的模型數(shù)量和性能。PaddlePaddlePaddlePaddle的開發(fā)套件非常全面,內(nèi)容涵蓋各個領(lǐng)域和方向,具體如下:計算機視覺領(lǐng)域:圖像分割(PaddleSeg)、目標檢測(PaddleDetection)、圖像分類(PaddleClas)、海量類別分類(PLSC)、文字識別(PaddleOCR)。自然語言領(lǐng)域:語義理解(ERNIE)。語音領(lǐng)域:語音識別(DeepSpeech)、語音合成(Parakeet)。推薦領(lǐng)域:彈性計算推薦(ElasticCTR)。其他領(lǐng)域:圖學習框架(PGL)、深度強化學習框架(PARL)。PaddlePaddle各類框架的特點如下表所示。PaddlePaddle框架優(yōu)點缺點TensorFlow設計的神經(jīng)網(wǎng)絡代碼簡潔,分布式深度學習算法的執(zhí)行效率高,部署模型便利,迭代更新速度快,社區(qū)活躍程度高非常底層,需要編寫大量的代碼,入門比較困難。必須一遍又一遍重新發(fā)明輪子,過于復雜的系統(tǒng)設計PyTorch上手簡單、功能強大,支持動態(tài)計算圖,能處理長度可變的輸入和輸出API整體設計粗糙,部分bug難以找到解決方案CNTK通用、跨平臺,支持多機,多GPU分布式訓練,訓練效率高,部署簡單,性能突出,擅長語音方面相關(guān)研究目前不支持ARM構(gòu)架,限制了其在移動設備上的發(fā)揮,社區(qū)不夠活躍MXNet支持大多數(shù)編程語言,支持語言最多,使得使用R語言的開發(fā)者特別偏愛MXNet,適合AWS平臺使用文檔略顯混亂PaddlePaddle易用性、高效、靈活、可擴展、PaddlePaddle的代碼和設計更加簡潔主要偏向于應用,資源還不是特別豐富Keras語法明晰,文檔友好,使用簡單,入門容易依賴后端,速度較慢,占用GPU內(nèi)存比較多1Keras與TensorFlow的關(guān)系目錄各深度學習框架對比2Keras常見接口3Kera1.1.0以前的版本主要使用Theano作為后端,這是因為Keras本身并不具備底層運算的能力,所以需要具備這種能力的后端協(xié)同工作。在TensorFlow開源后,Keras開始支持TensorFlow作為后端。隨著TensorFlow受歡迎程度的增加,Keras開始將TensorFlow作為的默認后端。Keras的特性之一就是可以改變后端,從一個后端訓練并保存的模型可以在其他后端加載和運行。在TensorFlow2發(fā)布時,Keras成為了TensorFlow的官方API,即tf.keras。該API用于快速的模型設計和訓練。隨著Keras2.3.0版本的發(fā)布,作者聲明:這是Keras首個與tf.keras同步的版本;這也是最后一個支持多個后端(Theano、CNTK)的版本。Keras與TensorFlow的關(guān)系1Keras與TensorFlow的關(guān)系目錄各深度學習框架對比2Keras常見接口3Keras設計的主旨是最大限度地減少常見使用案例所需的用戶操作次數(shù),并提供清晰且可操作的錯誤消息,因此,Keras封裝了許多簡單易用的API。如:ModlesAPILayerAPIDateSetKeras常見接口Keras的核心結(jié)構(gòu)是模型和層,而ModelsAPI就是用來構(gòu)建模型。在ModelsAPI中主要提供了函數(shù)式模型、繼承Model類模型和序貫式模型的構(gòu)建方式。模型常用的方法如下表所示。ModlesAPI方法說明.compile()編譯搭建完畢的模型.fit()訓練模型.predict()使用模型進行預測.save()保存模型.summary()查看模型參數(shù)狀況在Keras框架中,所有的網(wǎng)絡層都封裝在LayerAPI中。Keras常用的層有全連接層、卷積層、池化層等,這些常用的層都有一些共有的方法,如下表所示。LayerAPI方法說明.get_weights()返回該層的權(quán)重.set_weights()設置該層的權(quán)重.input()返回該層輸入的張量.input_shape()返回該層輸入張量的大小.output()返回該層輸出的張量.output_shape()返回該層輸出張量的大小.get_config()返回該層的參數(shù)設置DateSet模塊提供了一些內(nèi)置的數(shù)據(jù)集,這些數(shù)據(jù)集已經(jīng)經(jīng)過矢量化處理,使用load_date加載數(shù)據(jù)。這些數(shù)據(jù)集可用于調(diào)試模型或創(chuàng)建簡單的代碼示例。數(shù)據(jù)集的簡單介紹如下表所示。DateSet數(shù)據(jù)集說明datasets.boston_housing這是20世紀70年代末波士頓郊區(qū)不同地點的房屋的13個屬性及其房價的數(shù)據(jù)集datasets.cifar10這是包含50000張32×32彩色訓練圖像和10000張測試圖像的數(shù)據(jù)集,標記了10個類別datasets.cifar100這是包含50000張32×32彩色訓練圖像和10000張測試圖像的數(shù)據(jù)集,標記了100個類別datasets.fashion_mnist這是包含60000張28×28灰度訓練圖像和10000張測試圖像的數(shù)據(jù)集,標記了10個類別(主要為衣物)datasets.imdb這是來自IMDB的25000條電影評論的數(shù)據(jù)集,以情緒(正面/負面)為標簽datasets.mnist這是一組60000張28×28的10位數(shù)字的灰度圖像和10000張測試圖像的數(shù)據(jù)集datasets.reuters這是來自某通訊社的11228條的數(shù)據(jù)集,標記了46個主題Keras簡介(2)1Keras安裝目錄Keras特性2Keras中的預訓練模型3在眾多深度學習框架中,Keras在成為TensorFlow的官方API后越發(fā)受到關(guān)注,并以易操作、模塊化、易擴展等特性在眾多的API中脫穎而出。截至2021年初,Keras擁有超過40萬個人用戶,在整個行業(yè)和研究領(lǐng)域都得到了廣泛的采用。Keras特性Keras號稱是人類而非機器而設計的API,使得其易于學習且易于使用。齊全的文檔讓深度學習的初學者可以很快上手該框架。同時有不少的科研現(xiàn)目也是基于Keras框架,這使得一個新的技術(shù)出來的時候,很快就能找到相關(guān)的Keras例子。易操作Keras使用面向?qū)ο蟮脑O計,因此所有內(nèi)容都被視為對象(如網(wǎng)絡層、參數(shù)、優(yōu)化器等)。所有模型參數(shù)都可以作為對象屬性進行訪問。它基于TensorFlow和Theano模塊化封裝產(chǎn)生,吸納了TensorFlow、Theano在神經(jīng)網(wǎng)絡上的突出表現(xiàn),同時提供一致而簡潔的API,允許可配置的模塊可以用最少的代價自由組合在一起,在新模塊的創(chuàng)建上也超級容易。模塊化Keras提供了快速構(gòu)建深度學習網(wǎng)絡的模塊。但Keras并不處理如張量乘法、卷積等底層操作。這些操作依賴于某種特定的、優(yōu)化良好的張量操作庫。Keras依賴于處理張量的庫就稱為“后端”。易擴展1Keras安裝目錄Keras特性2Keras中的預訓練模型3本書在TensorFlow2.3.0、Keras2.4.3和Python3.8.5的環(huán)境下編寫。Keras可以支持很多后端,由于Keras默認使用TensorFlow作為后臺,所以在安裝Keras前需要安裝TensorFlow。在TensorFlow2.x版本的使用中,常在導包時因為環(huán)境路徑不對出現(xiàn)報錯,可以通過安裝VisualStudio解決。VisualStudio安裝步驟如下。(1)運行安裝文件后,可以更改VisualStudio的安裝路徑,并選擇自定義安裝如右圖所示,然后單擊“下一步”按鈕。Keras安裝(2)之后出現(xiàn)可選擇功能,勾選VisualC++如右圖所示,然后單擊“下一步”按鈕。Keras安裝(3)選擇需要安裝的功能后,VisualStudio會提示選定的功能,如下左圖所示,然后單擊“安裝”按鈕,出現(xiàn)安裝的進度如下右圖所示。Keras安裝(4)安裝成功并重啟計算機后,在開始菜單欄中出現(xiàn)VisualStudio2015,如下圖所示。安裝VisualStudio2015后可以選擇安裝Anaconda。Anaconda是一個開源的Python發(fā)行版本,其包含了conda、Python等多個科學包及其依賴項,使用Anaconda可以相對快速搭建可運行的環(huán)境。Keras安裝AnacondaPrompt相當于命令提示符CMD,與CMD不同的是Prompt已經(jīng)配置好環(huán)境變量。初次安裝Anaconda的包一般比較舊,為了避免之后使用報錯,可以先單擊打開“AnacondaPrompt”,如右圖所示。然后輸入“condaupdate–all”命令,更新所有包的版本,在提示是否更新的時候輸入“y”(即Yes),然后等待更新完成即可。Keras安裝在安裝過程中,可以根據(jù)不同需求選擇pip命令或者conda命令兩種方式安裝程序包,即“pipinstallpackage_name”和“condainstallpackage_name”,其中“package_name”是指程序包的名稱。pip和conda在實現(xiàn)環(huán)境中的依賴關(guān)系方面有所不同。安裝包時,pip會在遞歸的串行循環(huán)中安裝依賴項。不能確保同時滿足所有包的依賴性。如果較早安裝的軟件包與稍后安裝的軟件包具有不兼容的依賴性版本,則可能導致破壞的環(huán)境。使用conda進行安裝可確保滿足環(huán)境中安裝的所有包的所有要求。conda執(zhí)行的環(huán)境檢查可能需要額外的時間,但有助于防止創(chuàng)建破壞的環(huán)境。但是不要同時使用兩種方式,在安裝包時保持使用一致的命令。Keras安裝在安裝Keras框架之前,需要安裝指定版本的TensorFlow,使用pip安裝指定版本TensorFlow如以下代碼所示。pipinstalltensorflow==2.3.0#安裝指定版本keras使用pip安裝指定版本Keras,如以下代碼所示。pipinstallkeras==2.4.3#安裝指定版本kerasKeras安裝成功安裝Keras的界面如下圖所示。Keras安裝如果讀者之前已經(jīng)安裝過了不同版本的Keras,那么可以升級現(xiàn)有的包或卸載現(xiàn)有的包,如以下代碼所示:pipupdatekeras#對現(xiàn)有的Keras包進行升級pipremovekeras#卸載現(xiàn)有的Keras包Keras安裝1Keras安裝目錄Keras特性2Keras中的預訓練模型3預訓練即提前給模型輸入特定參數(shù),這個特定的參數(shù)通過其他類似數(shù)據(jù)集習得,然后再使用已有的數(shù)據(jù)集進行訓練,最終得到合適的模型參數(shù)。相比較于隨機初始化參數(shù)的模型,預訓練的模型得到結(jié)果速度更快,但是兩者得到的結(jié)果并沒有太大的差距。Keras中的預訓練模型由于時間限制或硬件水平限制,在訓練比較復雜的模型時通常的做法并不會從頭開始訓練模型,這也就是預訓練模型(pre-trainedmodel)存在的意義。預訓練模型是前人為了解決類似問題所創(chuàng)造出來的模型,在解決問題的時候,不用從零開始訓練一個新模型,可以從類似問題中訓練過的模型入手。一個預訓練模型對于需要解決的問題并不是100%的準確對接,但可以節(jié)省大量時間。在一個屬于圖像分類的手機圖片分辨項目上,訓練數(shù)據(jù)集中有四千多張圖片,測試集中有1200張圖片,項目任務是將圖片分到16個類別中。預訓練模型的概念如果采用一個簡單的多層感知機(Multi-laterPerceptron,MLP)模型,在對輸入圖片(224×224×3)平整化后,訓練模型所得結(jié)果的準確率只有百分之六左右。嘗試對隱藏層

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論