深度學(xué)習(xí):從入門到精通(微課版)全套教學(xué)課件_第1頁(yè)
深度學(xué)習(xí):從入門到精通(微課版)全套教學(xué)課件_第2頁(yè)
深度學(xué)習(xí):從入門到精通(微課版)全套教學(xué)課件_第3頁(yè)
深度學(xué)習(xí):從入門到精通(微課版)全套教學(xué)課件_第4頁(yè)
深度學(xué)習(xí):從入門到精通(微課版)全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩299頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

深度學(xué)習(xí):從入門到精通(微課版)陪伴中國(guó)數(shù)據(jù)產(chǎn)業(yè)一起成長(zhǎng)第一章深度學(xué)習(xí)簡(jiǎn)介及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í)簡(jiǎn)介及TensorFlow安裝陪伴中國(guó)數(shù)據(jù)產(chǎn)業(yè)一起成長(zhǎng)主講人:學(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í)擅長(zhǎng)的領(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ù)特征,并將其用于對(duì)未標(biāo)注數(shù)據(jù)的判斷的一種方法。無(wú)監(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)系可以用下圖說(shuō)明。深度學(xué)習(xí)與回歸分析PART1.21.2.1回歸分析理論框架

1.2.2深度學(xué)習(xí)與回歸分析的關(guān)系

通過人臉猜測(cè)年齡和性別圖像以像素的形式存儲(chǔ),像素越多,圖像包含的信息越多,也就越清晰。這是一個(gè)1

024像素×1

024像素×3的原圖,說(shuō)明這張圖像由3個(gè)1

048

576像素的矩陣組成,每個(gè)像素矩陣以1

024行1

024列的形式排列。

深度學(xué)習(xí)發(fā)展歷程PART1.31.3深度學(xué)習(xí)的發(fā)展歷程第一階段:萌芽期(20世紀(jì)40年代~80年代)1943年,美國(guó)神經(jīng)生理學(xué)家沃倫·麥卡洛克(WarrenMcCulloch)和數(shù)學(xué)家沃爾特·皮茲(WalterPitts)通過對(duì)生物神經(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)練變得簡(jiǎ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競(jìng)賽定位任務(wù)的第一名和分類任務(wù)的第二名,同年分類任務(wù)的第一名則是被Google的Inception網(wǎng)絡(luò)奪得。2015年,ResNet橫空出世,在ILSVRC和COCO大賽上獲得冠軍。2017年,Google提出的移動(dòng)端模型MobileNet以及CVPR2017的DenseNet模型在模型復(fù)雜度以及預(yù)測(cè)精度上又做了很多貢獻(xiàn)。1.3深度學(xué)習(xí)的發(fā)展歷程深度學(xué)習(xí)擅長(zhǎng)的領(lǐng)域PART1.41.4深度學(xué)習(xí)擅長(zhǎng)的領(lǐng)域圖像處理(ImageProcessing):用計(jì)算機(jī)對(duì)圖像進(jìn)行分析,以達(dá)到所需結(jié)果的技術(shù)。圖像分類目標(biāo)檢測(cè)圖像分割語(yǔ)音識(shí)別:讓機(jī)器通過識(shí)別和理解語(yǔ)音信號(hào),將語(yǔ)音轉(zhuǎn)換為相應(yīng)的文本或命令的技術(shù)。自然語(yǔ)言處理:讓計(jì)算機(jī)具備處理、理解和運(yùn)用人類語(yǔ)言的能力。文本分類情感分析機(jī)器翻譯棋牌競(jìng)技:視頻處理:在計(jì)算機(jī)上播放和錄制視頻后,將家庭電影復(fù)制到計(jì)算機(jī),然后使用視頻和音頻剪輯工具進(jìn)行編輯、剪輯,增加一些很普通的特效效果,使視頻的觀賞性增強(qiáng)的技術(shù)。1.4深度學(xué)習(xí)擅長(zhǎng)的領(lǐng)域圖像處理-目標(biāo)檢測(cè)圖像處理-圖像分割圖像處理-風(fēng)格遷移語(yǔ)音識(shí)別安裝TensorFlowPART1.51.5深度學(xué)習(xí)擅長(zhǎng)的領(lǐng)域TensorFlow由Google開發(fā)并開源,是一個(gè)采用計(jì)算圖(ComputationalGraphs)來(lái)計(jì)算數(shù)值的開源軟件庫(kù),它也是目前使用最廣泛的實(shí)現(xiàn)機(jī)器學(xué)習(xí)及其他涉及大量數(shù)學(xué)運(yùn)算的算法庫(kù)之一。Keras則是現(xiàn)在非常流行的深度學(xué)習(xí)模型開發(fā)框架,是用Python編寫的,語(yǔ)法簡(jiǎn)潔,封裝程度高,只需十幾行代碼就可以構(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最簡(jiǎn)便的安裝方法是使用Anaconda,接下來(lái)將默認(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,并輸入以下測(cè)試語(yǔ)句。下面通過一段簡(jiǎn)單的Python代碼演示如何使用TensorFlow。安裝Keras(用來(lái)快速創(chuàng)建深度學(xué)習(xí)模型的Python類庫(kù))只需在命令行輸入:1.5安裝TensorFlow使用JupyterNotebook運(yùn)行深度學(xué)習(xí)JupyterNotebook是一款基于網(wǎng)頁(yè)的用于交互計(jì)算的應(yīng)用程序,可應(yīng)用于全過程計(jì)算:開發(fā)、文檔編寫、運(yùn)行代碼和展示結(jié)果。啟動(dòng)方法:Anaconda直接啟動(dòng)在服務(wù)器終端輸入以下命令啟動(dòng)JupyterNotebook網(wǎng)頁(yè)版:jupyternotebook網(wǎng)頁(yè)啟動(dòng)界面課后習(xí)題通過對(duì)本章的學(xué)習(xí),你認(rèn)為深度學(xué)習(xí)崛起的原因有哪些?深度學(xué)習(xí)與機(jī)器學(xué)習(xí)的區(qū)別是什么?除了本章提到的深度學(xué)習(xí)擅長(zhǎng)的領(lǐng)域,請(qǐng)查閱相關(guān)資料,了解深度學(xué)習(xí)還在哪些領(lǐng)域見長(zhǎng)。嘗試在ubuntu系統(tǒng)環(huán)境中安裝TensorFlow和Keras。編寫一段Python代碼用于計(jì)算兩個(gè)矩陣相加。對(duì)于本章的觀點(diǎn):深度學(xué)習(xí)可以看成是一種高度復(fù)雜的非線性回歸,你是如何理解的?可否舉1~2個(gè)生活中的例子加以說(shuō)明?狗熊會(huì)THANKYOU狗熊會(huì)|聚數(shù)據(jù)英才,助產(chǎn)業(yè)振興第二章:

神經(jīng)網(wǎng)絡(luò)基礎(chǔ)陪伴中國(guó)數(shù)據(jù)產(chǎn)業(yè)一起成長(zhǎng)主講人:周靜學(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)造出來(lái)的一個(gè)抽象和簡(jiǎn)化了的數(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)模型是由美國(guó)心理學(xué)家弗蘭克·羅森布拉特(FrankRosenblatt)于1957年提出的一種具有單層計(jì)算單元的神經(jīng)網(wǎng)絡(luò)。旨在建立一個(gè)線性超平面用來(lái)解決線性可分問題。對(duì)樣本數(shù)據(jù)的訓(xùn)練自動(dòng)獲得對(duì)參數(shù)的更新結(jié)果。感知機(jī)學(xué)習(xí)機(jī)制:準(zhǔn)備訓(xùn)練樣本和對(duì)權(quán)值參數(shù)進(jìn)行初始化加入一個(gè)訓(xùn)練樣本,并計(jì)算實(shí)際輸出值比較實(shí)際輸出值和期望輸出值的大小,如果相同,則參數(shù)不變;如果不同,則需要通過誤差修正調(diào)整參數(shù)大小對(duì)每個(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ò)對(duì)非線性情況的擬合程度大大增強(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ù)就是指非線性變換。對(duì)線性組合的結(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ù)相對(duì)固定,適用于大規(guī)模訓(xùn)練數(shù)據(jù)的場(chǎng)景,對(duì)梯度稀疏和梯度噪聲有很大的容忍性。2.3.7反向傳播算法

2.3.7反向傳播算法反向傳播算法示例(接上頁(yè)):前向傳播損失函數(shù)反向傳播計(jì)算總誤差隱含層→輸出層的權(quán)值更新:輸入層→隱含層的權(quán)值更新:神經(jīng)網(wǎng)絡(luò)的過擬合及處理方法PART2.42.4.1過擬合欠擬合正常擬合過擬合過擬合(Overfitting)是指在模型訓(xùn)練過程中,模型對(duì)訓(xùn)練數(shù)據(jù)學(xué)習(xí)過度,將數(shù)據(jù)中包含的噪聲和誤差也學(xué)習(xí)了,使得模型在訓(xùn)練集上表現(xiàn)很好,而在測(cè)試集上表現(xiàn)很差的現(xiàn)象。過擬合會(huì)使模型的預(yù)測(cè)精度降低,因此在實(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ī)丟棄一部分。目的:簡(jiǎn)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),防止神經(jīng)網(wǎng)絡(luò)過擬合原理:對(duì)每一層的神經(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ù)反向傳播算法,請(qǐng)推導(dǎo)隱含層到輸出層的偏置(即)的更新,以及輸入層到隱含層偏置的更新。結(jié)合實(shí)際例子,談?wù)勀銓?duì)幾種梯度下降算法的理解。結(jié)合本章內(nèi)容,談?wù)勀銓?duì)神經(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)陪伴中國(guó)數(shù)據(jù)產(chǎn)業(yè)一起成長(zhǎng)主講人:周靜學(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案例:美食圖像評(píng)分

3.3.2案例:美食圖像評(píng)分

3.3.2案例:美食圖像評(píng)分

3.3.2案例:美食圖像評(píng)分

3.3.2案例:美食圖像評(píng)分

輸入層輸出層圖像數(shù)據(jù)X評(píng)分YFlatten()拉直全連接Dense()無(wú)激活函數(shù)3.3.2案例:美食圖像評(píng)分

3.3.2案例:美食圖像評(píng)分

batch_size():把所有樣本隨機(jī)排序后切成100個(gè)batch3.3.2案例:美食圖像評(píng)分

邏輯回歸模型的TensorFlow實(shí)現(xiàn)PART3.43.4.1邏輯回歸模型

3.4.2

Softmax回歸模型

3.4.3案例:手寫數(shù)字識(shí)別數(shù)據(jù)集介紹:MNIST數(shù)據(jù)集——來(lái)自美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所。訓(xùn)練集(TrainingSet)由250個(gè)不同的人手寫的數(shù)字構(gòu)成,其中50%是高中學(xué)生,50%來(lái)自人口普查局(TheCensusBureau)的工作人員。測(cè)試集(TestingSet)也是同樣比例的手寫數(shù)字?jǐn)?shù)據(jù)。該案例的目的是區(qū)分0~9這10個(gè)數(shù)字。建模步驟:導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測(cè)試數(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ù)與測(cè)試數(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ù)與測(cè)試數(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ù)與測(cè)試數(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ù)與測(cè)試數(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ù)與測(cè)試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建利用keras庫(kù)實(shí)現(xiàn)模型編譯模型擬合參數(shù)估計(jì)結(jié)果可視化輸入層輸出層圖像數(shù)據(jù)X評(píng)分Ya.全連接Dense()b.激活函數(shù):softmax()3.4.3案例:手寫數(shù)字識(shí)別導(dǎo)入MNIST數(shù)據(jù)準(zhǔn)備訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)手寫數(shù)字展示產(chǎn)生one-hot型因變量邏輯回歸模型的構(gòu)建模型編譯損失函數(shù)為對(duì)數(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ù)與測(cè)試數(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ù)與測(cè)試數(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í)題請(qǐng)?jiān)趯?shí)際生活中,找到3種基于圖像的有趣應(yīng)用,并梳理出其中的自變量和因變量。結(jié)合3.3.2小節(jié)的美食圖像評(píng)分案例,你還能想到哪些其它的X并將其放在模型中,建立一個(gè)新的線性回歸模型,并與書中模型的精度進(jìn)行對(duì)比。除了圖像這種非結(jié)構(gòu)化的變量,你還遇到過哪些其它非結(jié)構(gòu)化變量?請(qǐng)舉例說(shuō)明。對(duì)于3.4節(jié)的邏輯回歸模型,能否對(duì)代碼提出改進(jìn)意見,并實(shí)現(xiàn)更好地預(yù)測(cè)精度?請(qǐng)思考還有哪些多分類問題可以被規(guī)范成邏輯回歸并可以在TensorFlow的框架下實(shí)現(xiàn)?狗熊會(huì)THANKYOU狗熊會(huì)|聚數(shù)據(jù)英才,助產(chǎn)業(yè)振興第四章:

卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)陪伴中國(guó)數(shù)據(jù)產(chǎn)業(yè)一起成長(zhǎng)主講人:周靜學(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對(duì)卷積的理解示例任務(wù):分辨照片是否是熊大機(jī)械化過程:需要記錄熊大特征的照片,記為“卷積核”;用“卷積核”掃描身份證,尋找是否有某個(gè)位置出現(xiàn)熊大的特征;將卷積核與身份證上某個(gè)位置的圖像特征進(jìn)行相似度計(jì)算,這個(gè)計(jì)算就是“卷積”。4.2.2對(duì)池化的理解熊大圖像是否出現(xiàn)在身份證上,只依賴于計(jì)算出的相似特征的最大值,即只需要有一個(gè)局部圖像與熊大照片非常相像,就可以認(rèn)為身份證上出現(xiàn)了熊大頭像。卷積核在圖像上不斷掃描的過程中,我們只關(guān)心卷積計(jì)算結(jié)果的最大值,這個(gè)最大化的操作,就是一種特殊的池化方法,被稱為最大值池化(Max-Pooling)。卷積就是計(jì)算某種局部的相似性,而池化就是將某種最突出的相似性選擇出來(lái)。卷積PART4.34.3卷積卷積(Convolutional)是一種特殊的線性運(yùn)算,用來(lái)代替一般的矩陣乘法運(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)中有意義未知,它可能對(duì)有些數(shù)據(jù)有效,對(duì)有些數(shù)據(jù)無(wú)效計(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)輸入張量卷積核尺寸步長(zhǎng)[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)步長(zhǎng)為SR,在水平方向上的移動(dòng)步長(zhǎng)為SL,則same和valid卷積的輸出結(jié)果大小計(jì)算:

Same卷積Valid卷積輸入張量大小R行L列R行L列卷積核大小FR行FL列FR行FL列垂直方向移動(dòng)步長(zhǎng)SRSR水平方向移動(dòng)步長(zhǎ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多通道卷積原理在每一通道上分別卷積(深度可分離卷積)將張量與卷積核對(duì)應(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)操作是對(duì)卷積得到的結(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ì)算過程(步長(zhǎng)為2):4.4.1

same池化多通道張量的same最大值池化計(jì)算結(jié)果(步長(zhǎng)為2):TensorFlow代碼實(shí)現(xiàn)4.4.1

same池化卷積與池化的區(qū)別卷積核的權(quán)重是一個(gè)未知的參數(shù);而池化僅僅沒有未知參數(shù)需要估計(jì),也不需要參數(shù)優(yōu)化的過程。因此,對(duì)計(jì)算機(jī)而言,池化是非常簡(jiǎn)單的操作。不管輸入的像素矩陣有多少通道,只要進(jìn)行卷積運(yùn)算,一個(gè)卷積核參與計(jì)算只會(huì)產(chǎn)生一個(gè)通道;而池化是分層運(yùn)算,輸出的像素矩陣的通道取決于輸入像素矩陣的通道數(shù)。4.4.1same池化多個(gè)張量的same最大值池化計(jì)算過程(步長(zhǎng)為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ì)算過程(步長(zhǎng)為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池化的池化窗口只在張量?jī)?nèi)移動(dòng)示例:三維張量X池化窗口4.4.2

valid池化valid最大值池化計(jì)算過程(步長(zhǎng)為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ì)算過程(步長(zhǎng)為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ò)(上)陪伴中國(guó)數(shù)據(jù)產(chǎn)業(yè)一起成長(zhǎng)主講人:周靜學(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競(jìng)賽冠軍獲得者Hinton和他的學(xué)生KrizhevskyAlex于2012年設(shè)計(jì)。ImageNet競(jìng)賽中第一個(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中使用重疊的最大值池化(步長(zhǎng)小于卷積核);提出局部響應(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)備二分類問題對(duì)數(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í)間的延長(zhǎng)和效率的降低優(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種從左到右深度越來(lái)越深加粗體表示新增的層所有網(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ù)庫(kù)分類數(shù)據(jù)準(zhǔn)備與處理數(shù)據(jù)生成器生成訓(xùn)練集與測(cè)試集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ù)庫(kù)分類數(shù)據(jù)準(zhǔn)備與處理數(shù)據(jù)生成器生成訓(xùn)練集與測(cè)試集圖像展示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ù)庫(kù)分類數(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ù)庫(kù)分類數(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ù)庫(kù)分類數(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)練集中的一小部分樣本對(duì)模型權(quán)重進(jìn)行一次反向傳播的參數(shù)更新,這一小部分樣本被稱作batch,也稱之為批次。BatchNormalization的核心思想:5.4.2帶有BN的邏輯回歸數(shù)據(jù)準(zhǔn)備與展示貓狗圖像分類數(shù)據(jù)數(shù)據(jù)生成器生成訓(xùn)練集與測(cè)試集帶有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)練集與測(cè)試集展示圖像帶有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í)是幫助巨大的,但并不是對(duì)所有情況都有幫助。在什么情況下BatchNormalization能夠讓結(jié)果變好,在什么情況下沒有幫助是不清楚的,是值得我們思考和研究的。DataAugmentation的技巧PART5.55.5DataAugmentation的技巧DataAugmentation被翻譯成“數(shù)據(jù)增強(qiáng)”,或者“數(shù)據(jù)增廣”。它通過對(duì)數(shù)據(jù)施加各種變換來(lái)達(dá)到增加樣本量的目的。數(shù)據(jù)增強(qiáng)是深度學(xué)習(xí)中除了BatchNormalization外另一個(gè)非常常用的技巧。5.5.1DataAugmentation的核心思想人和計(jì)算機(jī)處理圖像不同。原來(lái)的圖像被拉伸、變換或旋轉(zhuǎn),對(duì)計(jì)算機(jī)而言都是一個(gè)全新的矩陣。計(jì)算機(jī)對(duì)圖像數(shù)據(jù)用矩陣形式表達(dá)不充分。把一張圖像變成矩陣的過程中,是有信息損失的,而這些損失的信息很寶貴,有可能幫助我們把模型做得更好。5.5.2案例:貓狗分類數(shù)據(jù)生成器生成測(cè)試集利用數(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ù)生成器生成測(cè)試集利用數(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ù)生成器生成測(cè)試集利用數(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ù)生成器生成測(cè)試集利用數(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ù)生成器生成測(cè)試集利用數(shù)據(jù)增強(qiáng)技術(shù)生成的訓(xùn)練集展示數(shù)據(jù)增強(qiáng)后的圖像模型搭建模型結(jié)構(gòu)展示模型的編譯與擬合5.5.2案例:貓狗分類數(shù)據(jù)生成器生成測(cè)試集利用數(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.請(qǐng)給出不少于3個(gè)基于圖像的分類問題,并簡(jiǎn)要描述出和。2.LeNet-5雖然是一個(gè)非常經(jīng)典的模型,但是不是意味著模型中的一些設(shè)定不能修改呢?比如卷積核的數(shù)量、大小、層數(shù)等,請(qǐng)嘗試修改,看看模型精度會(huì)有什么變化。3.本章介紹了3個(gè)經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用案例,請(qǐng)任選一個(gè)數(shù)據(jù)集,以一個(gè)邏輯回歸模型作為benchmark,將其預(yù)測(cè)精度與其他CNN模型對(duì)比。4.本章學(xué)習(xí)了一些經(jīng)典的CNN神經(jīng)網(wǎng)絡(luò),嘗試把原來(lái)的一些經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)使用BatchNormalization改造,提高它的預(yù)測(cè)精度。有的經(jīng)典神經(jīng)網(wǎng)絡(luò)已經(jīng)考慮了BN技巧,那么那些沒有考慮到的,請(qǐng)讀者嘗試一下,看看效果是變好了,還是變差了。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ò)(下)陪伴中國(guó)數(shù)據(jù)產(chǎn)業(yè)一起成長(zhǎng)主講人:周靜學(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論