版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
深度學(xué)習(xí):從入門到精通(微課版)陪伴中國數(shù)據(jù)產(chǎn)業(yè)一起成長第一章深度學(xué)習(xí)簡介及TensorFlow安裝修改版本.pptx第二章神經(jīng)網(wǎng)絡(luò)基礎(chǔ).pptx第三章神經(jīng)網(wǎng)絡(luò)的TensorFlow實(shí)現(xiàn).pptx第四章卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ).pptx第五章經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)(上).pptx第六章經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)(下).pptx第七章深度學(xué)習(xí)用于文本序列.pptx第一章:
深度學(xué)習(xí)簡介及TensorFlow安裝陪伴中國數(shù)據(jù)產(chǎn)業(yè)一起成長主講人:學(xué)習(xí)目標(biāo)1.深度學(xué)習(xí)的基本概念2.深度學(xué)習(xí)與人工智能、機(jī)器學(xué)習(xí)、回歸分析之間的聯(lián)系與區(qū)別3.深度學(xué)習(xí)的開發(fā)環(huán)境,TensorFlow和Keras編程框架4.深度學(xué)習(xí)的發(fā)展歷程5.深度學(xué)習(xí)擅長的領(lǐng)域機(jī)器學(xué)習(xí)、深度學(xué)習(xí)與人工智能PART1.11.1.1機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)(MachineLearning)是指如果一個(gè)程序可以在任務(wù)T上,隨著經(jīng)驗(yàn)E的增加,效果P也可以隨之增加,則稱這個(gè)程序可以從經(jīng)驗(yàn)中學(xué)習(xí)。這一定義由卡內(nèi)基梅隆大學(xué)(CarnegieMellonUniversity)的湯姆·邁克爾·米切爾(TomMichaelMitchell)教授在其1997年出版的《MachineLearning(機(jī)器學(xué)習(xí))》一書中提出。機(jī)器學(xué)習(xí)的分類監(jiān)督學(xué)習(xí)(SupervisedLearning)是指從已標(biāo)注的訓(xùn)練數(shù)據(jù)中學(xué)習(xí)判斷數(shù)據(jù)特征,并將其用于對未標(biāo)注數(shù)據(jù)的判斷的一種方法。無監(jiān)督學(xué)習(xí)(UnsupervisedLearning)不同于監(jiān)督學(xué)習(xí),它的學(xué)習(xí)算法是從沒有標(biāo)注的訓(xùn)練數(shù)據(jù)中學(xué)習(xí)數(shù)據(jù)的特征。1.1.2深度學(xué)習(xí)深度學(xué)習(xí)(DeepLearning)是一個(gè)復(fù)雜的機(jī)器學(xué)習(xí)算法,它的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究,強(qiáng)調(diào)從連續(xù)的層(Layer)中學(xué)習(xí)。其中“深度”在某種意義上是指神經(jīng)網(wǎng)絡(luò)的層數(shù),而“學(xué)習(xí)”是指訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程。深度學(xué)習(xí)與機(jī)器學(xué)習(xí)的區(qū)別二者提取特征的方式不同:深度學(xué)習(xí)具備自動(dòng)提取抽象特征的能力,機(jī)器學(xué)習(xí)大多是手動(dòng)選取特征和構(gòu)造特征。1.1.3機(jī)器學(xué)習(xí)、深度學(xué)習(xí)與人工智能的關(guān)系人工智能(ArtificialIntelligence,AI)是一個(gè)主要研究如何制造智能機(jī)器或智能系統(tǒng),借以模擬人類的智能活動(dòng),從而延伸人類智能的科學(xué)。人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)之間的關(guān)系可以用下圖說明。深度學(xué)習(xí)與回歸分析PART1.21.2.1回歸分析理論框架
1.2.2深度學(xué)習(xí)與回歸分析的關(guān)系
通過人臉猜測年齡和性別圖像以像素的形式存儲(chǔ),像素越多,圖像包含的信息越多,也就越清晰。這是一個(gè)1
024像素×1
024像素×3的原圖,說明這張圖像由3個(gè)1
048
576像素的矩陣組成,每個(gè)像素矩陣以1
024行1
024列的形式排列。
深度學(xué)習(xí)發(fā)展歷程PART1.31.3深度學(xué)習(xí)的發(fā)展歷程第一階段:萌芽期(20世紀(jì)40年代~80年代)1943年,美國神經(jīng)生理學(xué)家沃倫·麥卡洛克(WarrenMcCulloch)和數(shù)學(xué)家沃爾特·皮茲(WalterPitts)通過對生物神經(jīng)元建模,首次提出了人工神經(jīng)元模型,該模型被稱為M-P模型。第二階段:發(fā)展期(20世紀(jì)90年~2011年)20世紀(jì)80年代,羅森?布拉特提出的適用多層感知機(jī)的反向傳播算法(BackPropagation,BP)解決了線性不可分問題,引起了神經(jīng)網(wǎng)絡(luò)的第二次熱潮。BP算法的提出使得神經(jīng)網(wǎng)絡(luò)的訓(xùn)練變得簡單可行。到了1989年,被稱為卷積神經(jīng)網(wǎng)絡(luò)之父的楊立昆(YannLeCun)利用BP算法訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)并將其用于識(shí)別手寫郵政編碼,這個(gè)工作可以認(rèn)為是卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,CNN)的開山之作。第三階段:爆發(fā)期(2011年至今)2012年Hinton課題組構(gòu)建了AlexNet。2014年,由牛津大學(xué)VGG(VisualGeometryGroup)提出的VGG-Net獲得ImageNet競賽定位任務(wù)的第一名和分類任務(wù)的第二名,同年分類任務(wù)的第一名則是被Google的Inception網(wǎng)絡(luò)奪得。2015年,ResNet橫空出世,在ILSVRC和COCO大賽上獲得冠軍。2017年,Google提出的移動(dòng)端模型MobileNet以及CVPR2017的DenseNet模型在模型復(fù)雜度以及預(yù)測精度上又做了很多貢獻(xiàn)。1.3深度學(xué)習(xí)的發(fā)展歷程深度學(xué)習(xí)擅長的領(lǐng)域PART1.41.4深度學(xué)習(xí)擅長的領(lǐng)域圖像處理(ImageProcessing):用計(jì)算機(jī)對圖像進(jìn)行分析,以達(dá)到所需結(jié)果的技術(shù)。圖像分類目標(biāo)檢測圖像分割語音識(shí)別:讓機(jī)器通過識(shí)別和理解語音信號(hào),將語音轉(zhuǎn)換為相應(yīng)的文本或命令的技術(shù)。自然語言處理:讓計(jì)算機(jī)具備處理、理解和運(yùn)用人類語言的能力。文本分類情感分析機(jī)器翻譯棋牌競技:視頻處理:在計(jì)算機(jī)上播放和錄制視頻后,將家庭電影復(fù)制到計(jì)算機(jī),然后使用視頻和音頻剪輯工具進(jìn)行編輯、剪輯,增加一些很普通的特效效果,使視頻的觀賞性增強(qiáng)的技術(shù)。1.4深度學(xué)習(xí)擅長的領(lǐng)域圖像處理-目標(biāo)檢測圖像處理-圖像分割圖像處理-風(fēng)格遷移語音識(shí)別安裝TensorFlowPART1.51.5深度學(xué)習(xí)擅長的領(lǐng)域TensorFlow由Google開發(fā)并開源,是一個(gè)采用計(jì)算圖(ComputationalGraphs)來計(jì)算數(shù)值的開源軟件庫,它也是目前使用最廣泛的實(shí)現(xiàn)機(jī)器學(xué)習(xí)及其他涉及大量數(shù)學(xué)運(yùn)算的算法庫之一。Keras則是現(xiàn)在非常流行的深度學(xué)習(xí)模型開發(fā)框架,是用Python編寫的,語法簡潔,封裝程度高,只需十幾行代碼就可以構(gòu)建一個(gè)深度神經(jīng)網(wǎng)絡(luò),其中Keras大部分功能已經(jīng)并入Tensorflow框架中。硬件環(huán)境準(zhǔn)備使用CPU訓(xùn)練使用GPU訓(xùn)練使用云端GPU訓(xùn)練(推薦)軟件環(huán)境準(zhǔn)備:TensorFlow最簡便的安裝方法是使用Anaconda,接下來將默認(rèn)使用Anaconda作為TensorFlow的Python環(huán)境1.5安裝TensorFlow在Anaconda環(huán)境下,安裝TensorFlow及Keras軟件包,步驟如下:在命令行輸入condainstalltensorflow-gpu(或者condainstalltensorflow),其中,輸入tensorflow-gpu會(huì)自動(dòng)安裝CUDA等GPU依賴驗(yàn)證是否正確安裝環(huán)境并可以使用GPU加速計(jì)算。在命令行輸入python,并輸入以下測試語句。下面通過一段簡單的Python代碼演示如何使用TensorFlow。安裝Keras(用來快速創(chuàng)建深度學(xué)習(xí)模型的Python類庫)只需在命令行輸入:1.5安裝TensorFlow使用JupyterNotebook運(yùn)行深度學(xué)習(xí)JupyterNotebook是一款基于網(wǎng)頁的用于交互計(jì)算的應(yīng)用程序,可應(yīng)用于全過程計(jì)算:開發(fā)、文檔編寫、運(yùn)行代碼和展示結(jié)果。啟動(dòng)方法:Anaconda直接啟動(dòng)在服務(wù)器終端輸入以下命令啟動(dòng)JupyterNotebook網(wǎng)頁版:jupyternotebook網(wǎng)頁啟動(dòng)界面課后習(xí)題通過對本章的學(xué)習(xí),你認(rèn)為深度學(xué)習(xí)崛起的原因有哪些?深度學(xué)習(xí)與機(jī)器學(xué)習(xí)的區(qū)別是什么?除了本章提到的深度學(xué)習(xí)擅長的領(lǐng)域,請查閱相關(guān)資料,了解深度學(xué)習(xí)還在哪些領(lǐng)域見長。嘗試在ubuntu系統(tǒng)環(huán)境中安裝TensorFlow和Keras。編寫一段Python代碼用于計(jì)算兩個(gè)矩陣相加。對于本章的觀點(diǎn):深度學(xué)習(xí)可以看成是一種高度復(fù)雜的非線性回歸,你是如何理解的?可否舉1~2個(gè)生活中的例子加以說明?狗熊會(huì)THANKYOU狗熊會(huì)|聚數(shù)據(jù)英才,助產(chǎn)業(yè)振興第二章:
神經(jīng)網(wǎng)絡(luò)基礎(chǔ)陪伴中國數(shù)據(jù)產(chǎn)業(yè)一起成長主講人:周靜學(xué)習(xí)目標(biāo)1.M-P神經(jīng)元模型、感知機(jī)模型和多層感知機(jī)模型的結(jié)構(gòu);2.sigmoid、tanh和ReLU激活函數(shù)的定義與區(qū)別;3.反向傳播算法的原理;4.神經(jīng)網(wǎng)絡(luò)過擬合的處理方法。神經(jīng)網(wǎng)絡(luò)模型PART2.12.1.1
M-P神經(jīng)元模型M-P神經(jīng)元模型是首個(gè)模擬生物神經(jīng)元的結(jié)構(gòu)和工作原理構(gòu)造出來的一個(gè)抽象和簡化了的數(shù)學(xué)模型。它由心理學(xué)家沃倫·麥卡洛克(WarrenMcCulloch)和數(shù)理邏輯學(xué)家沃爾特·皮茲(WalterPitts)在1943年提出并以二人的名字命名。該模型旨在模擬從多輸入到單輸出的信息處理單元。M-P模型的工作步驟:神經(jīng)元接受n個(gè)輸入信號(hào)。將輸入與權(quán)值參數(shù)進(jìn)行加權(quán)求和并經(jīng)過激活函數(shù)激活。將激活結(jié)果作為結(jié)果輸出。人為設(shè)定參數(shù)值
2.1.2感知機(jī)模型感知機(jī)(Perceptron)模型是由美國心理學(xué)家弗蘭克·羅森布拉特(FrankRosenblatt)于1957年提出的一種具有單層計(jì)算單元的神經(jīng)網(wǎng)絡(luò)。旨在建立一個(gè)線性超平面用來解決線性可分問題。對樣本數(shù)據(jù)的訓(xùn)練自動(dòng)獲得對參數(shù)的更新結(jié)果。感知機(jī)學(xué)習(xí)機(jī)制:準(zhǔn)備訓(xùn)練樣本和對權(quán)值參數(shù)進(jìn)行初始化加入一個(gè)訓(xùn)練樣本,并計(jì)算實(shí)際輸出值比較實(shí)際輸出值和期望輸出值的大小,如果相同,則參數(shù)不變;如果不同,則需要通過誤差修正調(diào)整參數(shù)大小對每個(gè)訓(xùn)練樣本重復(fù)上述步驟,直到計(jì)算的誤差為0或者小于某個(gè)指定的值單層感知機(jī)結(jié)構(gòu)2.1.2感知機(jī)模型
2.1.3多層感知機(jī)模型多層感知機(jī)模型(MultilayerPerceptron,MLP),就是在輸入層和輸出層之間加入了若干隱藏層,以形成能夠?qū)颖菊_分類的凸域,使得神經(jīng)網(wǎng)絡(luò)對非線性情況的擬合程度大大增強(qiáng)。層數(shù)計(jì)算:不計(jì)輸入層,把除去輸入層之后的神經(jīng)網(wǎng)絡(luò)從左至右依次計(jì)數(shù)得到的總層數(shù),就是神經(jīng)網(wǎng)絡(luò)的最終層數(shù)。如上圖層數(shù)為2。上圖網(wǎng)絡(luò)又稱為全連接神經(jīng)網(wǎng)絡(luò)。全連接是指神經(jīng)網(wǎng)絡(luò)模型中,相鄰兩層單元之間的連接方式,使用全連接方式時(shí),網(wǎng)絡(luò)當(dāng)前層的單元與網(wǎng)絡(luò)上一層的每個(gè)單元都存在連接。具有一個(gè)單隱層的多層感知機(jī)模型的拓?fù)浣Y(jié)構(gòu)激活函數(shù)PART2.22.2激活函數(shù)激活函數(shù)就是指非線性變換。對線性組合的結(jié)果施加一個(gè)非線性變換,就為神經(jīng)網(wǎng)絡(luò)各層之間的連接方式提供了一種非線性的變換方式,而非線性變換打破了“線性組合的線性組合”這樣一種循環(huán),多層神經(jīng)網(wǎng)絡(luò)相比于單層網(wǎng)絡(luò)有了更豐富的函數(shù)形式。
常用的激活函數(shù):sigmoid激活函數(shù)tanh激活函數(shù)ReLu激活函數(shù)其他激活函數(shù):leakyReLU、elu、cReLU、selu、ReLU6、softplus、softsign……2.2.1
sigmoid激活函數(shù)TensorFlow實(shí)現(xiàn):tf.nn.sigmoid(=None)原函數(shù)導(dǎo)數(shù)2.2.2
tanh激活函數(shù)TensorFlow實(shí)現(xiàn):tf.nn.tanh(=None)原函數(shù)導(dǎo)數(shù)2.2.3
ReLu激活函數(shù)TensorFlow實(shí)現(xiàn):tf.nn.relu(=None)原函數(shù)導(dǎo)數(shù)相比于sigmoid函數(shù)和tanh函數(shù),ReLU函數(shù)被證明可以提供更好的結(jié)果神經(jīng)網(wǎng)絡(luò)的訓(xùn)練PART2.32.3.1神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程初始化參數(shù)。常用的初始化方法有常數(shù)初始化、正態(tài)分布類初始化、均勻分布類初始化等。切分batch數(shù)據(jù)。神經(jīng)網(wǎng)絡(luò)每一輪訓(xùn)練不是用全部數(shù)據(jù),而是選取一定量的數(shù)據(jù)樣本作為輸入,這部分?jǐn)?shù)據(jù)樣本稱為一個(gè)batch。前向傳播(2.3.2)建立損失函數(shù)(2.3.3)反向傳播(2.3.7)是否達(dá)到迭代次數(shù),如果達(dá)到,則結(jié)束本輪訓(xùn)練,如果未達(dá)到,則繼續(xù)重復(fù)前面的步驟進(jìn)行新一輪迭代。2.3.2前向傳播算法前向傳播(ForwardPropagation)算法是指神經(jīng)網(wǎng)絡(luò)向前計(jì)算的過程。前向傳播算法需要神經(jīng)網(wǎng)絡(luò)的輸入,神經(jīng)網(wǎng)絡(luò)的連接結(jié)構(gòu)以及每個(gè)神經(jīng)元中的參數(shù)。介紹一個(gè)全連接神經(jīng)網(wǎng)絡(luò)前向傳播例子:兩層神經(jīng)網(wǎng)絡(luò)前向傳播示意圖2.3.3損失函數(shù)
2.3.4基于梯度下降算法的預(yù)備知識(shí)
2.3.4基于梯度下降算法的預(yù)備知識(shí)2.3.5批量梯度下降算法小批量梯度下降(Mini-BatchGradientDescent,MBGD)批量梯度下降算法就是把整個(gè)樣本切分為若干份,每一份稱為一個(gè)小批量(Mini-batch),然后在每一份樣本上實(shí)施梯度下降算法進(jìn)行參數(shù)更新隨機(jī)梯度下降算法(StochasticGradientDescent,SGD)隨機(jī)梯度下降算法是指每個(gè)批量只有一個(gè)樣本,并且只在這一個(gè)樣本上實(shí)施梯度下降算法進(jìn)行參數(shù)更新。訓(xùn)練更靈活,但很難收斂,效率低。MBGD與SGD下降過程會(huì)產(chǎn)生震蕩,SGD震蕩嚴(yán)重批量數(shù)(BatchSize)的選擇依實(shí)際情況而定2.3.6批量梯度下降算法的改進(jìn)動(dòng)量梯度下降(GradientDescentwithMomentum)算法均方根加速(RootMeanSquareProp,RMSProp)算法2.3.6批量梯度下降算法的改進(jìn)自適應(yīng)矩估計(jì)(AdaptiveMomentEstimation,Adam)算法Adam算法的優(yōu)點(diǎn):在同等數(shù)據(jù)量的情況下,占用內(nèi)存更少,超參數(shù)相對固定,適用于大規(guī)模訓(xùn)練數(shù)據(jù)的場景,對梯度稀疏和梯度噪聲有很大的容忍性。2.3.7反向傳播算法
2.3.7反向傳播算法反向傳播算法示例(接上頁):前向傳播損失函數(shù)反向傳播計(jì)算總誤差隱含層→輸出層的權(quán)值更新:輸入層→隱含層的權(quán)值更新:神經(jīng)網(wǎng)絡(luò)的過擬合及處理方法PART2.42.4.1過擬合欠擬合正常擬合過擬合過擬合(Overfitting)是指在模型訓(xùn)練過程中,模型對訓(xùn)練數(shù)據(jù)學(xué)習(xí)過度,將數(shù)據(jù)中包含的噪聲和誤差也學(xué)習(xí)了,使得模型在訓(xùn)練集上表現(xiàn)很好,而在測試集上表現(xiàn)很差的現(xiàn)象。過擬合會(huì)使模型的預(yù)測精度降低,因此在實(shí)際訓(xùn)練時(shí)要防止過擬合現(xiàn)象產(chǎn)生2.4.2正則化方法
2.4.2正則化方法2.4.3
Dropout方法Dropout方法由辛頓(Hinton)教授團(tuán)隊(duì)提出,它是指在神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程中,將某一層的單元(不包括輸出層的單元)數(shù)據(jù)隨機(jī)丟棄一部分。目的:簡化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),防止神經(jīng)網(wǎng)絡(luò)過擬合原理:對每一層的神經(jīng)元,設(shè)定一個(gè)失活(Drop)概率帶dropout的神經(jīng)網(wǎng)絡(luò)帶dropout的神經(jīng)網(wǎng)絡(luò)模型的分類效果課后習(xí)題課后習(xí)題多層感知機(jī)的原理是什么?一個(gè)神經(jīng)網(wǎng)絡(luò)的基本構(gòu)成有哪些?常見的激活函數(shù)有哪些?它們的優(yōu)缺點(diǎn)是什么?根據(jù)反向傳播算法,請推導(dǎo)隱含層到輸出層的偏置(即)的更新,以及輸入層到隱含層偏置的更新。結(jié)合實(shí)際例子,談?wù)勀銓追N梯度下降算法的理解。結(jié)合本章內(nèi)容,談?wù)勀銓ι窠?jīng)網(wǎng)絡(luò)中過擬合現(xiàn)象的理解,遇到過擬合,通??梢圆扇∧男┘夹g(shù)手段進(jìn)行處理?狗熊會(huì)THANKYOU狗熊會(huì)|聚數(shù)據(jù)英才,助產(chǎn)業(yè)振興第三章:
神經(jīng)網(wǎng)絡(luò)的TensorFlow實(shí)現(xiàn)陪伴中國數(shù)據(jù)產(chǎn)業(yè)一起成長主講人:周靜學(xué)習(xí)目標(biāo)1.張量的概念及其運(yùn)算;2.圖像數(shù)據(jù)的處理技巧;3.線性回歸模型的TensorFlow實(shí)現(xiàn);4.邏輯回歸模型的TensorFlow實(shí)現(xiàn)。神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)結(jié)構(gòu)PART3.13.1.1張量及其分類
張量分類Python示例張量維度(np.dim)標(biāo)量np.array(888)0向量np.array([1,2,3,4,5])1矩陣np.array([[1,2,3,4],[5,6,7,8],[9,6,7,4]])23D張量np.array([[[12,4,6,8,23],[45,1,2,6,67]],[[32,7,3,5,14],[56,1,2,8,18]],[[23,7,2,5,78],[14,2,7,2,15]]])3更高維張量…>=33.1.2張量數(shù)據(jù)示例張量分類維度示例存儲(chǔ)形狀矩陣2向量數(shù)據(jù)(Samples,F(xiàn)eatures)3D張量3時(shí)間序列數(shù)據(jù)(Samples,Timespans,F(xiàn)eatures)4D張量4圖像數(shù)據(jù)(Samples,Height,Width,Channels)彩色圖像:通道數(shù)為3灰色圖像:通道數(shù)為1圖像數(shù)據(jù)的運(yùn)算PART3.23.2.1圖像數(shù)據(jù)的讀入與展示步驟:讀入圖像改變大?。簩D像統(tǒng)一為128像素×128像素大小矩陣轉(zhuǎn)換:圖像數(shù)據(jù)→(128,128,3)張量尺度變化:將像素矩陣每個(gè)元素變?yōu)?~1圖像展示3.2.2圖像數(shù)據(jù)的代數(shù)運(yùn)算圖像的加、減、乘、除運(yùn)算線性回歸模型的TensorFlow實(shí)現(xiàn)PART3.33.3.1線性回歸模型
3.3.2案例:美食圖像評分
3.3.2案例:美食圖像評分
3.3.2案例:美食圖像評分
3.3.2案例:美食圖像評分
3.3.2案例:美食圖像評分
輸入層輸出層圖像數(shù)據(jù)X評分YFlatten()拉直全連接Dense()無激活函數(shù)3.3.2案例:美食圖像評分
3.3.2案例:美食圖像評分
batch_size():把所有樣本隨機(jī)排序后切成100個(gè)batch3.3.2案例:美食圖像評分
邏輯回歸模型的TensorFlow實(shí)現(xiàn)PART3.43.4.1邏輯回歸模型
3.4.2
Softmax回歸模型
3.4.3案例:手寫數(shù)字識(shí)別數(shù)據(jù)集介紹:MNIST數(shù)據(jù)集——來自美國國家標(biāo)準(zhǔn)與技術(shù)研究所。訓(xùn)練集(TrainingSet)由250個(gè)不同的人手寫的數(shù)字構(gòu)成,其中50%是高中學(xué)生,50%來自人口普查局(TheCensusBureau)的工作人員。測試集(TestingSet)也是同樣比例的手寫數(shù)字?jǐn)?shù)據(jù)。該案例的目的是區(qū)分0~9這10個(gè)數(shù)字。建模步驟:導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建模型編譯模型擬合參數(shù)估計(jì)結(jié)果可視化3.4.3案例:手寫數(shù)字識(shí)別導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建模型編譯模型擬合參數(shù)估計(jì)結(jié)果可視化3.4.3案例:手寫數(shù)字識(shí)別導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建模型編譯模型擬合參數(shù)估計(jì)結(jié)果可視化
3.4.3案例:手寫數(shù)字識(shí)別導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建模型編譯模型擬合參數(shù)估計(jì)結(jié)果可視化3.4.3案例:手寫數(shù)字識(shí)別導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量:使用函數(shù)to_categorical將因變量Y0處理成one-hot編碼形式。邏輯回歸模型的構(gòu)建模型編譯模型擬合參數(shù)估計(jì)結(jié)果可視化3.4.3案例:手寫數(shù)字識(shí)別導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建利用keras庫實(shí)現(xiàn)模型編譯模型擬合參數(shù)估計(jì)結(jié)果可視化輸入層輸出層圖像數(shù)據(jù)X評分Ya.全連接Dense()b.激活函數(shù):softmax()3.4.3案例:手寫數(shù)字識(shí)別導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建模型編譯損失函數(shù)為對數(shù)似然函數(shù)監(jiān)控的目標(biāo)為精度,設(shè)置metrics=accuracy模型擬合參數(shù)估計(jì)結(jié)果可視化3.4.3案例:手寫數(shù)字識(shí)別導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建模型編譯模型擬合:model.fit()參數(shù)估計(jì)結(jié)果可視化3.4.3案例:手寫數(shù)字識(shí)別導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建模型編譯模型擬合參數(shù)估計(jì)結(jié)果可視化查看參數(shù)估計(jì)結(jié)果model.layersmodel.layers[1].get_weights()model.layers[1].get_weights()[0].shape課后習(xí)題課后習(xí)題請?jiān)趯?shí)際生活中,找到3種基于圖像的有趣應(yīng)用,并梳理出其中的自變量和因變量。結(jié)合3.3.2小節(jié)的美食圖像評分案例,你還能想到哪些其它的X并將其放在模型中,建立一個(gè)新的線性回歸模型,并與書中模型的精度進(jìn)行對比。除了圖像這種非結(jié)構(gòu)化的變量,你還遇到過哪些其它非結(jié)構(gòu)化變量?請舉例說明。對于3.4節(jié)的邏輯回歸模型,能否對代碼提出改進(jìn)意見,并實(shí)現(xiàn)更好地預(yù)測精度?請思考還有哪些多分類問題可以被規(guī)范成邏輯回歸并可以在TensorFlow的框架下實(shí)現(xiàn)?狗熊會(huì)THANKYOU狗熊會(huì)|聚數(shù)據(jù)英才,助產(chǎn)業(yè)振興第四章:
卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)陪伴中國數(shù)據(jù)產(chǎn)業(yè)一起成長主講人:周靜學(xué)習(xí)目標(biāo)1.卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu);2.卷積的概念、分類、原理,TensorFlow實(shí)現(xiàn)和相關(guān)性質(zhì);3.池化的概念、分類、原理與TensorFlow實(shí)現(xiàn)。卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)PART4.14.1卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)又稱卷積網(wǎng)絡(luò)(ConvolutionalNetwork),是在圖像處理和計(jì)算機(jī)視覺領(lǐng)域應(yīng)用較為廣泛的一種神經(jīng)網(wǎng)絡(luò)?;窘Y(jié)構(gòu):輸入層卷積層:獲得更多圖像的抽象特征。池化層:減少網(wǎng)絡(luò)中參數(shù)。全連接層:為后續(xù)分類任務(wù)做準(zhǔn)備。輸出層卷積與池化的通俗理解PART4.24.2.1對卷積的理解示例任務(wù):分辨照片是否是熊大機(jī)械化過程:需要記錄熊大特征的照片,記為“卷積核”;用“卷積核”掃描身份證,尋找是否有某個(gè)位置出現(xiàn)熊大的特征;將卷積核與身份證上某個(gè)位置的圖像特征進(jìn)行相似度計(jì)算,這個(gè)計(jì)算就是“卷積”。4.2.2對池化的理解熊大圖像是否出現(xiàn)在身份證上,只依賴于計(jì)算出的相似特征的最大值,即只需要有一個(gè)局部圖像與熊大照片非常相像,就可以認(rèn)為身份證上出現(xiàn)了熊大頭像。卷積核在圖像上不斷掃描的過程中,我們只關(guān)心卷積計(jì)算結(jié)果的最大值,這個(gè)最大化的操作,就是一種特殊的池化方法,被稱為最大值池化(Max-Pooling)。卷積就是計(jì)算某種局部的相似性,而池化就是將某種最突出的相似性選擇出來。卷積PART4.34.3卷積卷積(Convolutional)是一種特殊的線性運(yùn)算,用來代替一般的矩陣乘法運(yùn)算。卷積運(yùn)算由以下兩個(gè)關(guān)鍵參數(shù)定義:卷積核的大小輸出特征圖的深度:由使用的卷積核的數(shù)量決定卷積計(jì)算示例圖4.3.1卷積運(yùn)算原理
又稱為卷積核或?yàn)V波器4.3.1卷積運(yùn)算原理
4.3.1卷積運(yùn)算原理full卷積在實(shí)際應(yīng)用當(dāng)中有意義未知,它可能對有些數(shù)據(jù)有效,對有些數(shù)據(jù)無效計(jì)算結(jié)果TensorFlow代碼實(shí)現(xiàn)
tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=True,data_format=“NHWC”,dilations=[1,1,1,1],name=None)輸入張量卷積核尺寸步長[1,strides,strides,1]卷積形式[SAME,Valid]4.3.1卷積運(yùn)算原理same卷積same的含義是卷積前后像素矩陣保持同樣維度。常用指定起始點(diǎn)高度(H)寬度(W)起點(diǎn)位置偶數(shù)偶數(shù)偶數(shù)奇數(shù)奇數(shù)偶數(shù)奇數(shù)奇數(shù)4.3.1卷積運(yùn)算原理same卷積計(jì)算結(jié)果4.3.1卷積運(yùn)算原理same卷積TensorFlow代碼實(shí)現(xiàn)4.3.1卷積運(yùn)算原理valid卷積只考慮X能完全被K覆蓋的情況計(jì)算過程4.3.1卷積運(yùn)算原理valid卷積計(jì)算結(jié)果TensorFlow代碼實(shí)現(xiàn)conv=tf.nn.conv2d(X,K,(1,1,1,1),'VALID')4.3.2卷積結(jié)果的輸出在卷積過程中,卷積核在垂直方向的移動(dòng)步長為SR,在水平方向上的移動(dòng)步長為SL,則same和valid卷積的輸出結(jié)果大小計(jì)算:
Same卷積Valid卷積輸入張量大小R行L列R行L列卷積核大小FR行FL列FR行FL列垂直方向移動(dòng)步長SRSR水平方向移動(dòng)步長SLSL輸出結(jié)果ceil(R/SR)行ceil(L/SL)列floor((R-FR)/SR)+1行floor((L-FL)/SL)+1s列4.3.3多通道卷積原理
4.3.3多通道卷積原理基本的多通道卷積卷積過程4.3.3多通道卷積原理基本的多通道卷積卷積結(jié)果TensorFlow代碼實(shí)現(xiàn)4.3.3多通道卷積原理單個(gè)張量與多個(gè)卷積核的卷積卷積過程4.3.3多通道卷積原理單個(gè)張量與多個(gè)卷積核的卷積TensorFlow代碼實(shí)現(xiàn)4.3.3多通道卷積原理多個(gè)張量與多個(gè)卷積核的卷積卷積過程4.3.3多通道卷積原理多個(gè)張量與多個(gè)卷積核的卷積TensorFlow代碼實(shí)現(xiàn)4.3.3多通道卷積原理在每一通道上分別卷積(深度可分離卷積)將張量與卷積核對應(yīng)的每一層進(jìn)行線性運(yùn)算,但是不將每一層的結(jié)果相加卷積過程4.3.3多通道卷積原理單個(gè)張量與多個(gè)卷積核在通道上分別卷積卷積過程4.3.3多通道卷積原理單個(gè)張量與多個(gè)卷積核在通道上分別卷積TensorFlow代碼實(shí)現(xiàn)conv=tf.nn.depthwise_conv2d(X,K,(1,1,1,1),'VALID')4.3.4卷積運(yùn)算的三個(gè)特性稀疏連接(SparseConnectivity)降低計(jì)算復(fù)雜度。減少因連接過多產(chǎn)生過擬合。參數(shù)共享參數(shù)共享是指相同的參數(shù)被用在一個(gè)模型的多個(gè)函數(shù)中。平移不變性當(dāng)卷積在圖像的某個(gè)位置學(xué)習(xí)到存在的特征時(shí),它可以在之后的任何地方識(shí)別這個(gè)特征。使得卷積神經(jīng)網(wǎng)絡(luò)在處理圖像數(shù)據(jù)時(shí),可以高效地利用數(shù)據(jù)。池化操作PART4.44.4池化操作池化(Pooling)操作是對卷積得到的結(jié)果進(jìn)一步處理,它是將平面內(nèi)某一位置及其相鄰位置的特征值進(jìn)行統(tǒng)計(jì)匯總,并將匯總后的結(jié)果作為這一位置在該平面內(nèi)的值輸出。分類最大值池化平均值池化4.4.1same池化Same最大值池化示例:指定起始點(diǎn)——與same卷積起始點(diǎn)規(guī)則類似張量X池化窗口高度(H)寬度(W)起點(diǎn)位置偶數(shù)偶數(shù)偶數(shù)奇數(shù)奇數(shù)偶數(shù)奇數(shù)奇數(shù)4.4.1same池化Same最大值池化計(jì)算過程4.4.1same池化Same最大值池化池化結(jié)果TensorFlow代碼實(shí)現(xiàn):tf.nn.max_pool()4.4.1
same池化多通道張量的same最大值池化示例:三維張量X池化窗口4.4.1
same池化多通道張量的same最大值池化計(jì)算過程(步長為2):4.4.1
same池化多通道張量的same最大值池化計(jì)算結(jié)果(步長為2):TensorFlow代碼實(shí)現(xiàn)4.4.1
same池化卷積與池化的區(qū)別卷積核的權(quán)重是一個(gè)未知的參數(shù);而池化僅僅沒有未知參數(shù)需要估計(jì),也不需要參數(shù)優(yōu)化的過程。因此,對計(jì)算機(jī)而言,池化是非常簡單的操作。不管輸入的像素矩陣有多少通道,只要進(jìn)行卷積運(yùn)算,一個(gè)卷積核參與計(jì)算只會(huì)產(chǎn)生一個(gè)通道;而池化是分層運(yùn)算,輸出的像素矩陣的通道取決于輸入像素矩陣的通道數(shù)。4.4.1same池化多個(gè)張量的same最大值池化計(jì)算過程(步長為2):4.4.1same池化多個(gè)張量的same最大值池化TensorFlow代碼實(shí)現(xiàn):importtensorflowastfX=tf.constant([[[[2,5],[3,3],[8,2]],[[6,1],[1,2],[5,4]],[[7,9],[2,-3],[-1,3]]],[[[3,1],[-1,4],[3,2]],[[9,7],[2,-1],[4,3]],[[8,-2],[1,5],[5,9]]]],tf.float32)maxPool=tf.nn.max_pool(X,(1,2,2,1),[1,2,2,1],'SAME')session=tf.Session()print(session.run(maxPool))4.4.1same池化same平均值池化計(jì)算過程(步長為2):4.4.1same池化same平均值池化池化結(jié)果:TensorFlow代碼實(shí)現(xiàn):tf.nn.avg_pool()importtensorflowastfX=tf.constant([[[[3,1],[-1,4],[3,2]],[[9,7],[2,-1],[4,3]],[[8,-2],[1,5],[5,9]]]],tf.float32)avgPool=tf.nn.avg_pool(X,(1,2,2,1),[1,2,2,1],'SAME')session=tf.Session()print(session.run(avgPool))4.4.2
valid池化valid最大值池化valid池化的池化窗口只在張量內(nèi)移動(dòng)示例:三維張量X池化窗口4.4.2
valid池化valid最大值池化計(jì)算過程(步長為1):4.4.2
valid池化valid最大值池化池化結(jié)果:TensorFlow代碼實(shí)現(xiàn):importtensorflowastfX=tf.constant([[[[3],[2],[1],[4]],[[8],[1],[5],[9]],[[6],[2],[-1],[7]],[[-3],[4],[6],[5]]]],tf.float32)maxPool=tf.nn.max_pool(X,(1,2,2,1),[1,1,1,1],'VALID')session=tf.Session()print(session.run(maxPool))4.4.2
valid池化多通道張量的valid最大值池化示例:三維張量X池化窗口4.4.2
valid池化多通道張量的valid最大值池化計(jì)算過程(步長為1):4.4.2
valid池化多通道張量的valid最大值池化池化結(jié)果:TensorFlow代碼實(shí)現(xiàn):X=tf.constant([[[[3,1],[-1,4],[3,2]],[[9,7],[2,-1],[4,3]],[[8,-2],[1,5],[5,9]]]],tf.float32)maxPool=tf.nn.max_pool(X,(1,2,2,1),[1,1,1,1],'VALID')session=tf.Session()print(session.run(maxPool))4.4.2
valid池化多個(gè)張量的valid最大值池化計(jì)算過程:4.4.2
valid池化多通道張量的valid最大值池化TensorFlow代碼實(shí)現(xiàn):importtensorflowastfX=tf.constant([[[[3,1],[-1,4],[3,2]],[[9,7],[2,-1],[4,3]],[[8,-2],[1,5],[5,9]]],[[[1,4],[9,3],[1,1]],[[1,1],[1,2],[3,3]],[[2,1],[3,6],[4,2]]]],tf.float32)maxPool=tf.nn.max_pool(X,(1,2,2,1),[1,1,1,1],'VALID')session=tf.Session()print(session.run(maxPool))4.4.2
valid池化valid平均值池化TensorFlow代碼實(shí)現(xiàn):tf.nn.avg_pool(X,…,…,'VALID')課后習(xí)題
狗熊會(huì)THANKYOU狗熊會(huì)|聚數(shù)據(jù)英才,助產(chǎn)業(yè)振興第五章:
經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)(上)陪伴中國數(shù)據(jù)產(chǎn)業(yè)一起成長主講人:周靜學(xué)習(xí)目標(biāo)1.LeNet-5的網(wǎng)絡(luò)結(jié)構(gòu)及其代碼實(shí)現(xiàn);2.AlexNet的網(wǎng)絡(luò)結(jié)構(gòu)及其代碼實(shí)現(xiàn);3.VGG的網(wǎng)絡(luò)結(jié)構(gòu)及其代碼實(shí)現(xiàn);4.BatchNormalization的原理與應(yīng)用技巧;5.DataAugmentation的原理與應(yīng)用技巧。LeNet-5PART5.15.1.1LeNet-5網(wǎng)絡(luò)結(jié)構(gòu)LeNet-5介紹:由YannLeCun(楊立昆)于1998年提出的一種經(jīng)典的卷積網(wǎng)絡(luò)結(jié)構(gòu)。第一個(gè)成功應(yīng)用于數(shù)字識(shí)別問題的卷積神經(jīng)網(wǎng)絡(luò)。LeNet-5網(wǎng)絡(luò)結(jié)構(gòu):共7層輸入層卷積層池化層卷積層池化層全連接層輸出層5.1.2案例:LeNet-5手寫數(shù)字識(shí)別MNIST數(shù)據(jù)集展示:mnist.load_data()加載數(shù)據(jù)集數(shù)據(jù)預(yù)處理LeNet-5代碼實(shí)現(xiàn)LeNet-5編譯運(yùn)行fromKeras.datasetsimportmnist(X0,Y0),(X1,Y1)=mnist.load_data()print(X0.shape)frommatplotlibimportpyplotaspltplt.figure()fig,ax=plt.subplots(2,5)ax=ax.flatten()foriinrange(10):Im=X0[Y0==i][0]ax[i].imshow(Im)plt.show();輸出:(60000,28,28)5.1.2案例:LeNet-5手寫數(shù)字識(shí)別MNIST數(shù)據(jù)集展示數(shù)據(jù)預(yù)處理LeNet-5代碼實(shí)現(xiàn)LeNet-5編譯運(yùn)行fromKeras.utilsimportnp_utilsN0=X0.shape[0];N1=X1.shape[0]print([N0,N1])X0=X0.reshape(N0,28,28,1)/255X1=X1.reshape(N1,28,28,1)/255YY0=np_utils.to_categorical(Y0)YY1=np_utils.to_categorical(Y1)print(YY1)輸出:[60000,10000][[000...100][001...000][010...000]...[000...000][000...000][000...000]]5.1.2案例:LeNet-5手寫數(shù)字識(shí)別MNIST數(shù)據(jù)集展示數(shù)據(jù)預(yù)處理LeNet-5代碼實(shí)現(xiàn)LeNet-5編譯運(yùn)行fromKeras.layersimportConv2D,Dense,Flatten,Input,MaxPooling2DfromKerasimportModelinput_layer=Input([28,28,1])x=input_layerx=Conv2D(6,[5,5],padding="same",activation='relu')(x)x=MaxPooling2D(pool_size=[2,2],strides=[2,2])(x)x=Conv2D(16,[5,5],padding="valid",activation='relu')(x)x=MaxPooling2D(pool_size=[2,2],strides=[2,2])(x)x=Flatten()(x)x=Dense(120,activation='relu')(x)x=Dense(84,activation='relu')(x)x=Dense(10,activation='softmax')(x)output_layer=xmodel=Model(input_layer,output_layer)model.summary()5.1.2案例:LeNet-5手寫數(shù)字識(shí)別MNIST數(shù)據(jù)集展示數(shù)據(jù)預(yù)處理LeNet-5代碼實(shí)現(xiàn)模型結(jié)構(gòu)展示LeNet-5編譯運(yùn)行輸入層卷積層1池化層1卷積層2池化層2拉直操作全連接層1全連接層2全連接層3輸出維度參數(shù)個(gè)數(shù)5.1.2案例:LeNet-5手寫數(shù)字識(shí)別MNIST數(shù)據(jù)集展示數(shù)據(jù)預(yù)處理LeNet-5代碼實(shí)現(xiàn)LeNet-5編譯運(yùn)行通過pile實(shí)現(xiàn)pile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])model.fit(X0,YY0,epochs=10,batch_size=200,validation_data=[X1,YY1])AlexNetPART5.25.2.1AlexNet網(wǎng)絡(luò)結(jié)構(gòu)AlexNet介紹:ImageNet競賽冠軍獲得者Hinton和他的學(xué)生KrizhevskyAlex于2012年設(shè)計(jì)。ImageNet競賽中第一個(gè)使用卷積神經(jīng)網(wǎng)絡(luò)的參賽者。AlexNet網(wǎng)絡(luò)結(jié)構(gòu):8層卷積層池化層卷積層池化層卷積層卷積層卷積層池化層輸出層:三個(gè)全連接層5.2.2AlexNet創(chuàng)新點(diǎn)AlexNet創(chuàng)新點(diǎn):成功使用ReLU作為CNN的激活函數(shù);使用Dropout隨機(jī)忽略一部分神經(jīng)元,避免模型過擬合;在CNN中使用重疊的最大值池化(步長小于卷積核);提出局部響應(yīng)歸一化層(LocalResponseNormalization,LRN),后逐漸被BN(BatchNormalization)代替;使用CUDA加速神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,利用了GPU強(qiáng)大的計(jì)算能力;采用了數(shù)據(jù)增強(qiáng)(DataAugmentation)技術(shù),達(dá)到增加樣本量的目的。5.2.3案例:中文字體識(shí)別——隸書和行楷數(shù)據(jù)準(zhǔn)備二分類問題對數(shù)據(jù)的存儲(chǔ)目錄結(jié)構(gòu)是有特殊要求構(gòu)造數(shù)據(jù)生成器AlexNet代碼實(shí)現(xiàn)AlexNet編譯運(yùn)行5.2.3案例:中文字體識(shí)別——隸書和行楷數(shù)據(jù)準(zhǔn)備構(gòu)造數(shù)據(jù)生成器:一種特有的數(shù)據(jù)讀入方法。按照特定的目錄結(jié)構(gòu)和要求把相應(yīng)少量的、多批次的數(shù)據(jù)讀入內(nèi)存,做相應(yīng)的數(shù)據(jù)分析。代價(jià):時(shí)間的延長和效率的降低優(yōu)點(diǎn):有限的內(nèi)存資源的支持下,處理非常大的數(shù)據(jù)代碼:ImageDataGenerator()AlexNet代碼實(shí)現(xiàn)AlexNet編譯運(yùn)行5.2.3案例:中文字體識(shí)別——隸書和行楷數(shù)據(jù)準(zhǔn)備構(gòu)造數(shù)據(jù)生成器數(shù)據(jù)生成器AlexNet代碼實(shí)現(xiàn)AlexNet編譯運(yùn)行fromKeras.preprocessing.imageimportImageDataGeneratorIMSIZE=227validation_generator=ImageDataGenerator(rescale=1./255).flow_from_directory('./data_alex/ChineseStyle/test/',target_size=(IMSIZE,IMSIZE),batch_size=200,class_mode='categorical')train_generator=ImageDataGenerator(rescale=1./255).flow_from_directory('./data_alex/ChineseStyle/train',target_size=(IMSIZE,IMSIZE),batch_size=200,class_mode='categorical')5.2.3案例:中文字體識(shí)別——隸書和行楷數(shù)據(jù)準(zhǔn)備構(gòu)造數(shù)據(jù)生成器輸出圖像AlexNet代碼實(shí)現(xiàn)AlexNet編譯運(yùn)行frommatplotlibimportpyplotaspltplt.figure()fig,ax=plt.subplots(2,5)fig.set_figheight(7)fig.set_figwidth(15)ax=ax.flatten()X,Y=next(validation_generator)foriinrange(10):ax[i].imshow(X[i,:,:,:])5.2.3案例:中文字體識(shí)別——隸書和行楷數(shù)據(jù)準(zhǔn)備構(gòu)造數(shù)據(jù)生成器AlexNet代碼實(shí)現(xiàn)AlexNet編譯運(yùn)行fromKeras.layersimportActivation,Conv2D,BatchNormalization,DensefromKeras.layersimportDropout,Flatten,Input,MaxPooling2D,ZeroPadding2DfromKerasimportModelIMSIZE=227input_layer=Input([IMSIZE,IMSIZE,3])x=input_layerx=Conv2D(96,[11,11],strides=[4,4],activation='relu')(x)x=MaxPooling2D([3,3],strides=[2,2])(x)x=Conv2D(256,[5,5],padding="same",activation='relu')(x)x=MaxPooling2D([3,3],strides=[2,2])(x)x=Conv2D(384,[3,3],padding="same",activation='relu')(x)x=Conv2D(384,[3,3],padding="same",activation='relu')(x)x=Conv2D(256,[3,3],padding="same",activation='relu')(x)x=MaxPooling2D([3,3],strides=[2,2])(x)x=Flatten()(x)x=Dense(4096,activation='relu')(x)x=Dropout(0.5)(x)x=Dense(4096,activation='relu')(x)x=Dropout(0.5)(x)x=Dense(2,activation='softmax')(x)output_layer=xmodel=Model(input_layer,output_layer)model.summary()5.2.3案例:中文字體識(shí)別——隸書和行楷數(shù)據(jù)準(zhǔn)備構(gòu)造數(shù)據(jù)生成器AlexNet代碼實(shí)現(xiàn)模型結(jié)構(gòu)展示AlexNet編譯運(yùn)行輸出維度參數(shù)個(gè)數(shù)Dropout操作5.2.3案例:中文字體識(shí)別——隸書和行楷數(shù)據(jù)準(zhǔn)備構(gòu)造數(shù)據(jù)生成器AlexNet代碼實(shí)現(xiàn)AlexNet編譯運(yùn)行fromKeras.optimizersimportAdampile(loss='categorical_crossentropy',optimizer=Adam(lr=0.001),metrics=['accuracy'])model.fit_generator(train_generator,epochs=20,validation_data=validation_generator)
VGGPART5.35.3.1VGG網(wǎng)絡(luò)結(jié)構(gòu)VGG介紹牛津大學(xué)計(jì)算機(jī)視覺組和DeepMind公司共同研發(fā)的一種深度卷積神經(jīng)網(wǎng)絡(luò)VGG網(wǎng)絡(luò)結(jié)構(gòu):6種從左到右深度越來越深加粗體表示新增的層所有網(wǎng)絡(luò)結(jié)構(gòu)都包含5組卷積操作,每組卷積包含一定數(shù)量的卷積層——可以看作一個(gè)五階段的卷積特征提取。5.3.1VGG網(wǎng)絡(luò)結(jié)構(gòu)VGG16網(wǎng)絡(luò)結(jié)構(gòu):5組卷積組和3個(gè)全連接層輸入層:224×224×3的彩色圖像。第1組卷積層(2次卷積):Conv2D(3×3,64),Stride(1),same,ReLU,Output:224×224×64。第1個(gè)池化層:MaxPooling2D(2×2),Stride(2),Output:112×112×64。第2組卷積層(2次卷積):Conv2D(3×3,128),Stride(1),same,ReLU,Output:112×112×128。第2個(gè)池化層:MaxPooling2D(2×2),Stride(2),Output:。第3組卷積層(3次卷積):Conv2D(3×3,256),Stride(1),same,ReLU,Output:56×56×256。第3個(gè)池化層:MaxPooling2D(2×2),Stride(2),Output:。第4組卷積層(3次卷積):Conv2D(3×3,512),Stride(1),same,ReLU,Output:28×28×512。第4個(gè)池化層:MaxPooling2D(2×2),Stride(2),Output:。第5組卷積層(3次卷積):Conv2D(3×3,512),Stride(1),same,ReLU,Output:。第5個(gè)池化層:MaxPooling2D(),Stride(2),Output:。輸出層:Flatten,Dense(4096),Dense(4096),Dense(1000)。5.3.1VGG網(wǎng)絡(luò)結(jié)構(gòu)VGG16網(wǎng)絡(luò)結(jié)構(gòu):5組卷積組和3個(gè)全連接層5.3.2案例:加利福尼亞理工學(xué)院鳥類數(shù)據(jù)庫分類數(shù)據(jù)準(zhǔn)備與處理數(shù)據(jù)生成器生成訓(xùn)練集與測試集VGG16代碼實(shí)現(xiàn)VGG16編譯運(yùn)行VGG16+BN代碼實(shí)現(xiàn)fromKeras.preprocessing.imageimportImageDataGeneratorIMSIZE=224train_generator=ImageDataGenerator(
rescale=1./255).flow_from_directory('./data_vgg/train',target_size=(IMSIZE,IMSIZE),batch_size=100,class_mode='categorical')validation_generator=ImageDataGenerator(rescale=1./255).flow_from_directory('./data_vgg/test',target_size=(IMSIZE,IMSIZE),batch_size=100,class_mode='categorical')5.3.2案例:加利福尼亞理工學(xué)院鳥類數(shù)據(jù)庫分類數(shù)據(jù)準(zhǔn)備與處理數(shù)據(jù)生成器生成訓(xùn)練集與測試集圖像展示VGG16代碼實(shí)現(xiàn)VGG16編譯運(yùn)行VGG16+BN代碼實(shí)現(xiàn)frommatplotlibimportpyplotaspltplt.figure()fig,ax=plt.subplots(2,5)fig.set_figheight(6)fig.set_figwidth(15)ax=ax.flatten()X,Y=next(validation_generator)foriinrange(10):ax[i].imshow(X[i,:,:,])5.3.2案例:加利福尼亞理工學(xué)院鳥類數(shù)據(jù)庫分類數(shù)據(jù)準(zhǔn)備與處理VGG16代碼實(shí)現(xiàn)VGG16結(jié)構(gòu)展示VGG16編譯運(yùn)行VGG16+BN代碼實(shí)現(xiàn)5.3.2案例:加利福尼亞理工學(xué)院鳥類數(shù)據(jù)庫分類數(shù)據(jù)準(zhǔn)備與處理VGG16代碼實(shí)現(xiàn)VGG16編譯運(yùn)行VGG16+BN代碼實(shí)現(xiàn)fromKeras.optimizersimportAdammodel_pile(loss='categorical_crossentropy',optimizer=Adam(lr=0.001),metrics=['accuracy'])model_vgg16.fit_generator(train_generator,epochs=20,validation_data=validation_generator)5.3.2案例:加利福尼亞理工學(xué)院鳥類數(shù)據(jù)庫分類數(shù)據(jù)準(zhǔn)備與處理VGG16代碼實(shí)現(xiàn)VGG16編譯運(yùn)行VGG16+BN代碼實(shí)現(xiàn)為了提高分類的準(zhǔn)確率,可以嘗試在每一層進(jìn)行BatchNormalization的操作代碼示例:x=BatchNormalization(axis=3)(x)BatchNormalization的技巧PART5.45.4.1BatchNormalization的核心思想Batch:只使用訓(xùn)練集中的一小部分樣本對模型權(quán)重進(jìn)行一次反向傳播的參數(shù)更新,這一小部分樣本被稱作batch,也稱之為批次。BatchNormalization的核心思想:5.4.2帶有BN的邏輯回歸數(shù)據(jù)準(zhǔn)備與展示貓狗圖像分類數(shù)據(jù)數(shù)據(jù)生成器生成訓(xùn)練集與測試集帶有BN的邏輯回歸模型fromkeras.preprocessing.imageimportImageDataGeneratorIMSIZE=128validation_generator=ImageDataGenerator(rescale=1./255).flow_from_directory('./data_bn/CatDog/validation',target_size=(IMSIZE,IMSIZE),batch_size=200,class_mode='categorical')train_generator=ImageDataGenerator(rescale=1./255).flow_from_directory('./data_bn/CatDog/train',target_size=(IMSIZE,IMSIZE),batch_size=200,class_mode='categorical')5.4.2帶有BN的邏輯回歸數(shù)據(jù)準(zhǔn)備與展示貓狗圖像分類數(shù)據(jù)數(shù)據(jù)生成器生成訓(xùn)練集與測試集展示圖像帶有BN的邏輯回歸模型5.4.2帶有BN的邏輯回歸數(shù)據(jù)準(zhǔn)備與展示帶有BN的邏輯回歸模型fromkeras.layersimportFlatten,Input,BatchNormalization,DensefromkerasimportModelinput_layer=Input([IMSIZE,IMSIZE,3])x=input_layerx=BatchNormalization()(x)x=Flatten()(x)x=Dense(2,activation='softmax')(x)output_layer=xmodel1=Model(input_layer,output_layer)model1.summary()5.4.2帶有BN的邏輯回歸數(shù)據(jù)準(zhǔn)備與展示帶有BN的邏輯回歸模型模型結(jié)構(gòu)展示5.4.2帶有BN的邏輯回歸數(shù)據(jù)準(zhǔn)備與展示帶有BN的邏輯回歸模型模型結(jié)構(gòu)展示帶有BN的邏輯回歸模型與擬合fromkeras.optimizersimportAdampile(loss='categorical_crossentropy',optimizer=Adam(lr=0.01),metrics=['accuracy'])model1.fit_generator(train_generator,epochs=200,validation_data=validation_generator)5.4.3帶有BN的寬模型
5.4.4帶有BN的深度模型這個(gè)模型中,卷積核的個(gè)數(shù)減少,但是模型的層數(shù)增加。BN總結(jié):BatchNormalization在很多情況下確實(shí)是幫助巨大的,但并不是對所有情況都有幫助。在什么情況下BatchNormalization能夠讓結(jié)果變好,在什么情況下沒有幫助是不清楚的,是值得我們思考和研究的。DataAugmentation的技巧PART5.55.5DataAugmentation的技巧DataAugmentation被翻譯成“數(shù)據(jù)增強(qiáng)”,或者“數(shù)據(jù)增廣”。它通過對數(shù)據(jù)施加各種變換來達(dá)到增加樣本量的目的。數(shù)據(jù)增強(qiáng)是深度學(xué)習(xí)中除了BatchNormalization外另一個(gè)非常常用的技巧。5.5.1DataAugmentation的核心思想人和計(jì)算機(jī)處理圖像不同。原來的圖像被拉伸、變換或旋轉(zhuǎn),對計(jì)算機(jī)而言都是一個(gè)全新的矩陣。計(jì)算機(jī)對圖像數(shù)據(jù)用矩陣形式表達(dá)不充分。把一張圖像變成矩陣的過程中,是有信息損失的,而這些損失的信息很寶貴,有可能幫助我們把模型做得更好。5.5.2案例:貓狗分類數(shù)據(jù)生成器生成測試集利用數(shù)據(jù)增強(qiáng)技術(shù)生成的訓(xùn)練集展示數(shù)據(jù)增強(qiáng)后的圖像模型搭建模型的編譯與擬合fromkeras.preprocessing.imageimportImageDataGeneratorIMSIZE=128validation_generator=ImageDataGenerator(rescale=1./255).flow_from_directory('./data_bn/CatDog/validation',target_size=(IMSIZE,IMSIZE),batch_size=200,class_mode='categorical')5.5.2案例:貓狗分類數(shù)據(jù)生成器生成測試集利用數(shù)據(jù)增強(qiáng)技術(shù)生成的訓(xùn)練集shear_range表示拉伸變換;rotation_range用于定義圖像左右旋轉(zhuǎn);zoom_range用于定義圖像放大或者縮小的比例;width_shift_range表示水平方向上平移的尺度;height_shift_range表示垂直方向上平移的尺度;horizontal_flip=True表示允許水平方向的翻轉(zhuǎn)。展示數(shù)據(jù)增強(qiáng)后的圖像模型搭建模型的編譯與擬合train_generator=ImageDataGenerator(rescale=1./255,shear_range=0.5,rotation_range=30,zoom_range=0.2,width_shift_range=0.2,height_shift_range=0.2,horizontal_flip=True).flow_from_directory('./data_bn/CatDog/train',target_size=(IMSIZE,IMSIZE),batch_size=200,class_mode='categorical')5.5.2案例:貓狗分類數(shù)據(jù)生成器生成測試集利用數(shù)據(jù)增強(qiáng)技術(shù)生成的訓(xùn)練集展示數(shù)據(jù)增強(qiáng)后的圖像模型搭建模型的編譯與擬合frommatplotlibimportpyplotaspltplt.figure()fig,ax=plt.subplots(2,5)fig.set_figheight(6)fig.set_figwidth(15)ax=ax.flatten()X,Y=next(train_generator)foriinrange(10):ax[i].imshow(X[i,:,:,:])5.5.2案例:貓狗分類數(shù)據(jù)生成器生成測試集利用數(shù)據(jù)增強(qiáng)技術(shù)生成的訓(xùn)練集展示數(shù)據(jù)增強(qiáng)后的圖像模型搭建模型的編譯與擬合IMSIZE=128fromkeras.layersimportBatchNormalization,Conv2D,Dense,Flatten,Input,MaxPooling2DfromkerasimportModeln_channel=100input_layer=Input([IMSIZE,IMSIZE,3])x=input_layerx=BatchNormalization()(x)for_inrange(7):x=BatchNormalization()(x)x=Conv2D(n_channel,[2,2],padding='same',activation='relu')(x)x=MaxPooling2D([2,2])(x)x=Flatten()(x)x=Dense(2,activation='softmax')(x)output_layer=xmodel=Model(input_layer,output_layer)model.summary()5.5.2案例:貓狗分類數(shù)據(jù)生成器生成測試集利用數(shù)據(jù)增強(qiáng)技術(shù)生成的訓(xùn)練集展示數(shù)據(jù)增強(qiáng)后的圖像模型搭建模型結(jié)構(gòu)展示模型的編譯與擬合5.5.2案例:貓狗分類數(shù)據(jù)生成器生成測試集利用數(shù)據(jù)增強(qiáng)技術(shù)生成的訓(xùn)練集展示數(shù)據(jù)增強(qiáng)后的圖像模型搭建模型的編譯與擬合fromkeras.optimizersimportAdampile(loss='categorical_crossentropy',optimizer=Adam(lr=0.0001),metrics=['accuracy'])model.fit_generator(train_generator,epochs=200,validation_data=validation_generator)課后習(xí)題課后習(xí)題1.請給出不少于3個(gè)基于圖像的分類問題,并簡要描述出和。2.LeNet-5雖然是一個(gè)非常經(jīng)典的模型,但是不是意味著模型中的一些設(shè)定不能修改呢?比如卷積核的數(shù)量、大小、層數(shù)等,請嘗試修改,看看模型精度會(huì)有什么變化。3.本章介紹了3個(gè)經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用案例,請任選一個(gè)數(shù)據(jù)集,以一個(gè)邏輯回歸模型作為benchmark,將其預(yù)測精度與其他CNN模型對比。4.本章學(xué)習(xí)了一些經(jīng)典的CNN神經(jīng)網(wǎng)絡(luò),嘗試把原來的一些經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)使用BatchNormalization改造,提高它的預(yù)測精度。有的經(jīng)典神經(jīng)網(wǎng)絡(luò)已經(jīng)考慮了BN技巧,那么那些沒有考慮到的,請讀者嘗試一下,看看效果是變好了,還是變差了。5.思考如果不做數(shù)據(jù)加強(qiáng),5.5.2節(jié)的案例結(jié)果會(huì)怎么樣?狗熊會(huì)THANKYOU狗熊會(huì)|聚數(shù)據(jù)英才,助產(chǎn)業(yè)振興第六章:
經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)(下)陪伴中國數(shù)據(jù)產(chǎn)業(yè)一起成長主講人:周靜學(xué)習(xí)目標(biāo)1.Inception的網(wǎng)絡(luò)結(jié)構(gòu)及其代碼實(shí)現(xiàn);2.ResNet的網(wǎng)絡(luò)結(jié)構(gòu)及其代碼實(shí)現(xiàn);3.DenseNet的網(wǎng)絡(luò)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年三亞科城物業(yè)服務(wù)有限公司招聘備考題庫及一套完整答案詳解
- 2026年丹東市疾病預(yù)防控制中心(丹東市衛(wèi)生監(jiān)督所)面向普通高校公開招聘急需緊缺人才備考題庫及一套完整答案詳解
- 2026年南充市第四人民醫(yī)院招聘備考題庫及一套完整答案詳解
- 2026年中國龍江森林工業(yè)集團(tuán)有限公司招聘備考題庫及完整答案詳解1套
- 2026年北京中醫(yī)醫(yī)院派遣制職工招聘10人備考題庫及完整答案詳解一套
- 2026年華東師范大學(xué)附屬閔行永德學(xué)校教師招聘(第二批)備考題庫及一套完整答案詳解
- 2026年宜賓市南溪區(qū)事業(yè)單位公開考核招聘高層次和急需緊缺專業(yè)人才42人的備考題庫及完整答案詳解一套
- 2026年廣州市花都區(qū)新雅街嘉行學(xué)校臨聘教師招聘備考題庫及參考答案詳解
- 2026年廣東省華立技師學(xué)院招聘備考題庫及一套參考答案詳解
- 2026年中化學(xué)交通建設(shè)集團(tuán)招聘備考題庫及一套答案詳解
- 某220千伏變電站10千伏電容器開關(guān)柜更換工程的安全措施與施工方案
- 楊氏祠堂活動(dòng)策劃方案
- 信息分類分級管理制度
- 英文電影鑒賞知到智慧樹期末考試答案題庫2025年北華大學(xué)
- 某溫室工程施工資料
- 外墻鋁板維修合同協(xié)議
- 2025水泥廠生產(chǎn)勞務(wù)承包合同
- 施工項(xiàng)目高效人員配置與設(shè)備管理方案
- 采血后預(yù)防淤青的按壓方式
- 光伏電站基礎(chǔ)知識(shí)500題及答案
- 2025年湖南鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫帶答案
評論
0/150
提交評論