




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第11章深度學習初步自編碼器模型受限玻爾茲曼機模型卷積神經(jīng)網(wǎng)絡模型TensorFlow的基本使用11.1引言2006年,GeoffreyHinton在《Science》上提出了深度學習的概念;在語音識別和信號處理、圖像目標識別以及自然語言處理等研究方向,深度學習的應用都帶來了具有突破性的結果。深度學習的提出,引發(fā)了機器學習研究者們在表示、學習、優(yōu)化、認知等方面的進一步思考。11.2表示問題深度學習可以通過一種深層的非線性網(wǎng)絡實現(xiàn)對復雜函數(shù)的無限逼近。這就解決了淺層學習在有限數(shù)量的樣本和計算單元情況下對復雜函數(shù)表示能力有限的問題。簡言之,深度學習多層表示的好處就是能夠用較少的參數(shù)表征十分復雜的函數(shù)。深層表示方式的優(yōu)勢:一方面深度結構能夠逐漸學習出更加抽象的特征,另一方面深度結構可以提供一種更具表現(xiàn)力的分布式表示方式,在深度學習采用的多層表示中,如果深度不夠將會帶來一定的問題。與此同時,如何決定深層表示的層數(shù)以及需要多少計算資源才能夠訓練出足夠好的深層網(wǎng)絡模型都是研究表示時值得探究的問題。用于堆疊的單層學習模塊主要分為兩類。一類是以受限玻爾茲曼機為代表的概率模型構建模塊,另一類是以自動編碼器及其變形為代表的神經(jīng)網(wǎng)絡構建模塊。11.2表示問題在深度學習模型中,前者被解釋成描述某種概率圖模型,隱藏單元被視為隱隨機變量;后者則被解釋成描述某種計算圖,隱藏單元被視為計算結點。從
參數(shù)的編碼路徑方面講,概率模型利用推理和訓練方案直接參數(shù)化生成路徑,也就是解碼過程;而基于神經(jīng)網(wǎng)絡的模型直接參數(shù)化編碼路徑。有向圖模型經(jīng)常會導致explainingaway的問題;11.2表示問題許多經(jīng)典的特征表示方法都能夠賦予概率模型的解釋,主成分分析PCA以及稀疏編碼能夠與有向圖模型分別參數(shù)化似然度和先驗概率來構建聯(lián)合分布相對應;稀疏編碼這種表示的簡潔性以及計算的高效性使其很快成為特征表示的一種常用方法,并在自然圖像建模、語音分類、自然語言處理等方面實現(xiàn)了成功的應用;在無向概率圖模型中,玻爾茲曼分布是一類馬爾可夫隨機場的特殊形式;受限玻爾茲曼機,RBM能夠很好地消除explainingaway現(xiàn)象,得到了廣泛的應用,包括圖像分類、運動和空間變換、協(xié)同過濾以及自然圖像建模。11.3學習問題在深度學習提出以前,先將輸入數(shù)據(jù)進行預處理,然后進行特征提取、特征選擇,最后進行推理、預測或識別;選取特征的過程也就是特征表示的過程,這也是對算法的性能起到?jīng)Q定性作用的階段。有相當一部分算法利用人工設計的特征取得了良好的效果,手工選取特征不僅需要相當?shù)膶I(yè)領域知識,并且合適的特征設計是一件十分費力的事情。深度學習別名,叫做非監(jiān)督的特征學習。深度學習的學習過程可以簡要概括為:首先逐層無監(jiān)督地預訓練單層學習模塊,然后每次都將上一層的輸出結果作為下一層訓練模塊的輸入,最后訓練完所有層后利用有監(jiān)督的方式微調(diào)整個網(wǎng)絡。在無監(jiān)督預訓練階段,希望輸入數(shù)據(jù)經(jīng)過整個深層網(wǎng)絡后得到的輸出結果仍然等于輸入;11.3學習問題深度學習的過程就是獲得在給定觀察數(shù)據(jù)條件下隱藏變量的概率分布??梢苑譃橐韵∈杈幋a為代表的有向圖模型以及以受限玻爾茲曼機為代表的無向圖模型。另一種非概率特征學習的模型是基于神經(jīng)網(wǎng)絡的模型。這類模型的主要思想是將自動編碼器堆疊起來,建立一種深層的架構。也可以用一些正則化的自動編碼器替換標準的自動編碼器,獲得一些改進的版本?,F(xiàn)有的模型主要包括稀疏自動編碼器(SparseAutoEncoders,SAE)、降噪自動編碼器(DenoisingAutoEncoders,DAE)、收縮自動編碼器(ContractiveAuto-Encoders,CAE);SAE引入了一種稀疏正則化的形式,表示的稀疏性可以通過懲罰隱藏單元的偏置項獲得;11.3學習問題稀疏編碼與自動編碼器結合的另一類有效的變形是PSD,PSD在識別階段通過一個快速非迭代的近似替代原本高成本且高度非線性的編碼步驟,并應用在圖像、視頻與音頻中的目標識別中。DAE對含有人工噪聲的數(shù)據(jù)進行降噪,通過降噪處理,學習模型能夠獲得與RBM特征相當或者更優(yōu)的特征并且提高分類的性能;CAE強調(diào)學習一種更加收縮的編碼器,即使得編碼器的導數(shù)盡可能的小。這樣帶來的好處是能降低表示的有效自由度,使得特征對于輸入空間的無窮小變形具有很好的魯棒性。11.4優(yōu)化問題傳統(tǒng)的神經(jīng)網(wǎng)絡模型利用反向傳播BP算法來優(yōu)化多層網(wǎng)絡的權值。當面臨深度學習所需要的深層網(wǎng)絡時,繼續(xù)隨機初始化網(wǎng)絡后采用BP算法進行優(yōu)化經(jīng)常會陷入局部極小值而使得訓練變得異常困難。2006年,Hinton提出了優(yōu)化深層神經(jīng)網(wǎng)絡的有效方法首先,從網(wǎng)絡的輸入層開始,自底而上逐層地進行非監(jiān)督訓練網(wǎng)絡權值。其次,當無監(jiān)督訓練完所有層之后,利用自頂向下的監(jiān)督學習對整個網(wǎng)絡權值進行微調(diào),利用無監(jiān)督初始化參數(shù)的過程,能使得網(wǎng)絡的權值更加接近于全局最優(yōu),這就保證了后續(xù)優(yōu)化工作的順利進行。Hinton雙向的wake-sleep算法對深層網(wǎng)絡進行優(yōu)化。各層之間采用雙向的權值,自底而上的稱作認知權值,自上而下的稱作生成權值。算法分為wake階段和sleep階段。在wake階段,自底而上利用每層的輸入和認知權值逐層生成抽象特征,并且用梯度下降算法不斷修改生成權值;在sleep階段,自頂而下利用學習到的特征以及生成權值逐層生成低層輸入,并不斷修改認知權值。11.5認知問題人工智能、機器學習等學科通過模擬或實現(xiàn)人類認知規(guī)律,解析其內(nèi)在機理,并用機器來實現(xiàn),以此開發(fā)智能化的信息處理模式。支持深度學習最強有力的證據(jù)是人腦具有一個深層次(即深度)的結構。大腦皮層結構示意圖11.5認知問題人腦的深度結構決定了人類認知過程的逐層進行;深度學習從某種程度上模擬了人類逐層進行、逐步抽象的認知過程。認知具有感知、識別、學習、聯(lián)想、記憶、推理等功能,是人類最基本的心理過程。深層神經(jīng)網(wǎng)絡在神經(jīng)元數(shù)目一定的情況下,相比于傳統(tǒng)淺層神經(jīng)網(wǎng)絡來說,具有更強大的學習能力,能夠從原始輸入中自動提取出具有高度抽象含義的特征。深度學習算法圖形處理單元使得深層神經(jīng)網(wǎng)絡在訓練速度上得到了極大地改善。因此,深度學習在語音識別、圖像序列分析、自然語言處理等方面都取得了具有突破性的進展。深度學習逐層自動抽取高級抽象特征的能力與人腦的認知過程相吻合,無疑將成為實現(xiàn)人工智能的一項重要途徑。11.6基本模型
11.6.1自編碼器11.6基本模型
11.6.2受限玻爾茲曼機11.6基本模型圖示說明(a)受限玻爾茲曼機本身是基于二分圖的無向圖模型,可以構造稀疏連接的RBM(b)深度信念網(wǎng)絡是涉及有向和無向連接的混合圖模型;與RBM一樣,它也沒有層內(nèi)連接,DBN隱藏單元之間的連接在分開的層中;(c)深度玻爾茲曼機是具有幾層潛變量的無向圖模型。與RBM和DBN一樣,DBM也缺少層內(nèi)連接。DBM與RBM的聯(lián)系不如DBN緊密。當從RBM堆棧初始化DBM時,有必要對RBM的參數(shù)稍作修改。某些種類的DBM可以直接訓練,而不用先訓練一組RBM。11.6.2受限玻爾茲曼機11.6基本模型
11.6.3卷積神經(jīng)網(wǎng)絡11.6基本模型
11.6.3卷積神經(jīng)網(wǎng)絡11.6基本模型11.6.3卷積神經(jīng)網(wǎng)絡11.7TensorFlow的簡介與安裝谷歌面向人工智能領域發(fā)布的開源軟件庫,提供了豐富的機器學習中常用的基本數(shù)值計算方法及模型組件,使得研究者能夠快搭建算法模型并進行驗證,不需要特殊硬件配合,能夠部署在常見的、不同平臺上,最新版本的TensorFlow1.4提供了不同語言的支持,如:Python,C++,Java和Go等。11.7TensorFlow的簡介與安裝11.7.1創(chuàng)建Python3環(huán)境選擇ANACONDAPython集成開發(fā)環(huán)境查看安裝已組件:在AnacondaPrompt下,鍵入condalist11.7TensorFlow的簡介與安裝11.7.2安裝TensorFlow注:TensorFlow目前在Windows下只支持Python3.5版本。(1)打開AnacondaPrompt,輸入清華倉庫鏡像,這樣更新會快一些:condaconfig--addchannels/anaconda/pkgs/free/condaconfig--setshow_channel_urlsyes(2)同樣在AnacondaPrompt中利用Anaconda創(chuàng)建一個python3.5的環(huán)境,環(huán)境名稱為tensorflow,輸入下面命令:condacreate-ntensorflowpython=3.511.7TensorFlow的簡介與安裝11.7.2安裝TensorFlow運行
開始菜單
Anaconda3
AnacondaNavigator,點擊左側Environments,可以看到tensorflow的環(huán)境已經(jīng)創(chuàng)建好了。
11.7TensorFlow的簡介與安裝11.7.2安裝TensorFlow(3)在AnacondaPrompt中啟動tensorflow環(huán)境:activatetensorflow(4)安裝cpu版本的TensorFlowpipinstall--upgrade--ignore-installedtensorflow11.7TensorFlow的簡介與安裝11.7.3驗證>>>importtensorflowastf>>>tc=tf.constant('Hello,TensorFlow!')>>>sess=tf.Session()>>>print(sess.run(tc))11.8TensorFlow的基本使用數(shù)據(jù)流圖以結點表示數(shù)學運算操作,邊表示結點之間數(shù)據(jù)傳遞關系的有向圖;在TensorFlow中,數(shù)據(jù)流圖的結點稱作Operation,邊是尺寸可以動態(tài)調(diào)整的多維數(shù)組,即張量tensor;首先根據(jù)具體問題,利用各種基本運算單元構建結點,設計結點之間的操作對象Tensor,以構建出一個計算圖Graph,然后在會話Session中啟動Graph。下圖是一個用TensorFlow完成兩個常量相加的示意圖tf.constantttf.constantttf.add11.8TensorFlow的基本使用importtensorflowastf#第一步,構建計算圖#使用tf.constant構建兩個基本結點,每個結點分別輸出一個常量Tensorct0=tf.constant([0,1])ct1=tf.constant([1,0])#創(chuàng)建一個加法結點at=tf.add(ct0,ct1)
#第二步:創(chuàng)建會話并在會話中啟動計算圖#創(chuàng)建會話sess=tf.Session()#啟動圖result=sess.run(at)在TensorFlow中,主要操作的數(shù)據(jù)結構是張量tensor。11.8TensorFlow的基本使用從類型定義上看,TensorFlow定義了兩種基本類型表示一個tensor:tf.Tensor對象表示一個結點的輸出的tensor,即計算圖中的邊,tf.Variable對象用于記錄計算圖運行過程中的狀態(tài),可以認為是一個全局變量。tensor可以分為如下三種基本類型:常量類型的tensor,使用tf.constant操作創(chuàng)建變量類型的tensor,用于表示模型中待學習的參數(shù);一般使用tf.get_variable操作創(chuàng)建,在啟動圖前,需要根據(jù)需求調(diào)用initializer初始化所有定義的tf.Variable對象,如:#創(chuàng)建一個常量tensor,類型是tf.Tensorct=tf.constant([0,1])#創(chuàng)建一個tf.Variable實例:vtvt=tf.get_variable('vt',[5,6],dtype=tf.float32)sess=tf.Session()#初始化tf.Variable實例sess.run(tf.global_variables_initializer())11.8TensorFlow的基本使用參數(shù)類型的tensor,用于計算圖接收用戶輸入數(shù)據(jù),使用tf.placeholder創(chuàng)建需要指定tensor的形狀;tensor在圖運行前通過Session.run()、Tensor.eval()或Operation.run()中的參數(shù)feed_dict指定具體值:importnumpyasnp…#創(chuàng)建一個參數(shù)變量ph=tf.placeholder(tf.float32,[10,10])…sess=tf.Session()val=np.random.rand(10,10)sess.run(feed_dict={ph:val})TensorFlow封裝了一些常用的計算方法,如:不同的梯度下降計算模型、不同的損失函數(shù)計算模型等;封裝出了很多更高階的模型,這些模型封裝了構建計算圖和創(chuàng)建會話并啟動計算圖等基本步驟。11.9基于卷積神經(jīng)網(wǎng)絡的MNIST手寫體識別實驗input:4維的Tensor,訓練圖像數(shù)據(jù),四個維度用于說明訓練圖像數(shù)量batch_size,圖像高度in_height,圖像寬度in_width和圖像通道數(shù)in_channels;每個維度對應的內(nèi)容有data_format參數(shù)確定。filter:4維的Tensor卷積核,其shape為[filter_height,filter_width,in_channels,out_channels],其中,filter_height,filter_width分別表示卷積核的高度和寬帶,in_channels表示訓練圖像的通道數(shù),out_channels表示輸出特征圖的個數(shù),即使用的卷積核數(shù)。11.9.1conv2d函數(shù)tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=True,data_format='NHWC',name=None)11.9基于卷積神經(jīng)網(wǎng)絡的MNIST手寫體識別實驗strides:1維的Tensor,包含4個值,每個值分別指示卷積核在input上每個維度滑動的距離。use_cudnn_on_gpu:Bool值,默認參數(shù)值為True。用于指定是否使用GPU。data_format:字符串,取值為“NHWC”“NCHW”之一,默認參數(shù)值為“NHWC”。用于決定如何解析input。name:字符串,可選,默認參數(shù)值為None。指定Operation的名稱。11.9.1conv2d函數(shù)11.9基于卷積神經(jīng)網(wǎng)絡的MNIST手寫體識別實驗value:4維的Tensor,即conv2d的輸出。ksize:1維的Tensor,4個值,指定value每個維度池化的范圍。strides:1維的Tensor,4個值,指示池化窗口在各個維度的移動距離,一般設置與ksize相同。padding:字符串,取值為“SAME”“VALID”之一。設定不同的卷積方式,指定邊界處理方法。data_format:字符串,取值為“NHWC”“NCHW”“NCHW_VECT_C”之一,默認參數(shù)值為“NHWC”。用于決定如何解析input。name:字符串,可選,默認參數(shù)值為None。指定Operation的名稱。11.9.2max_pool函數(shù)tf.nn.max_pool(value,ksize,strides,padding,data_format='NHWC',name=None)11.9基于卷積神經(jīng)網(wǎng)絡的MNIST手寫體識別實驗定義(創(chuàng)建)卷積核(權值矩陣)和偏置向量。11.9.3示例程序#定義一個卷積核tf.Variabledefweights(shape) initial=tf.truncated_normal(shape,stddev=0.1) returntf.Variable(initial)#定義一個偏置tf.Variabledefbias(shape) initial=tf.constant(0.1,shape=shape) returntf.Variable(initial)11.9基于卷積神經(jīng)網(wǎng)絡的MNIST手寫體識別實驗定義卷積操作conv和池化操作pool。定義CNN卷積層conv_layer。11.9.3示例程序defconv(x,W,strides=[1,1,1,1],padding='SAME'):returntf.nn.conv2d(x,W,s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金川安全文化
- 間位結腸影像診斷
- 2025商業(yè)店鋪正規(guī)交易合同范本
- 軌道設備轉讓合同范本
- 修路土地流轉合同范本
- 車輛無償使用租賃合同
- 腸內(nèi)外營養(yǎng)的支持及護理
- 二零二五版授信擔保合同范例
- 干部培訓規(guī)劃案
- 公司員工股份協(xié)議書
- 2025屆高考作文寫作素材:6月時事熱點素材(適用話題+運用示例)
- 《有機化學》課件-電子效應
- QCT457-2023救護車技術規(guī)范
- 公對公車輛租賃合同范本
- HYT 262-2018 海水中溶解甲烷的測定 頂空平衡-氣相色譜法(正式版)
- 普通植物病理學智慧樹知到期末考試答案章節(jié)答案2024年東北農(nóng)業(yè)大學
- 人事檔案轉遞通知單
- 《離散數(shù)學》試題帶答案
- 2024年一級建造師之一建礦業(yè)工程實務題庫附答案(完整版)
- 寧德時代入職測評試題答案
- 《材料與社會》課件
評論
0/150
提交評論