計算機視覺應用開發(fā)課件:圖像分類_第1頁
計算機視覺應用開發(fā)課件:圖像分類_第2頁
計算機視覺應用開發(fā)課件:圖像分類_第3頁
計算機視覺應用開發(fā)課件:圖像分類_第4頁
計算機視覺應用開發(fā)課件:圖像分類_第5頁
已閱讀5頁,還剩83頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

圖像分類圖像分類概述圖像分類的概念01任務圖像分類的意義02任務常用方法03任務學習目標掌握圖像分類的基本概念和意義了解圖像分類的常用方法1圖像分類的概念1圖像分類的概念圖像分類,也稱圖像識別,是計算機根據(jù)已有的固定分類標簽集合和圖像所反饋的信息特征從標簽集合中找出一個分類標簽,并分配給該圖像的視覺處理方法。譬如規(guī)定一個分類標簽為貓和狗的集合,給計算機輸入一張貓或狗的圖片,通過判斷其特征比如胡子,眼睛,嘴巴,耳朵等,從集合中找出一個分類標簽,區(qū)分(識別)該圖是貓還是狗。2圖像分類的意義2圖像分類的意義

圖像分類是計算機視覺的核心任務,也是最為基礎的任務,有著各種各樣的實際應用。比如安防領域的人臉識別,交通領域的交通場景物體識別,互聯(lián)網(wǎng)領域的相冊自動歸類等。

計算機視覺理論的奠基者,英國神經(jīng)生理學家馬爾認為,視覺要解決的問題可歸結為“WhatisWhere”,即什么東西在什么地方,這里的“什么東西”就是圖像分類要做的。圖像分類的發(fā)展從最開始的10分類的灰度圖像手寫字體識別,到后來的10分類標簽任務cifar-10及100分類標簽任務cifar-100,再到后來的22000分類標簽任務的ImageNet,圖像分類模型伴隨著數(shù)據(jù)集的增長,分類水準甚至已經(jīng)超過了人類。圖像分類在某些領域一定程度上為人類減輕了負擔,改變了人的生活方式。3常用方法3常用方法圖像分類方法大致分為兩類,基于傳統(tǒng)的分類方法和基于深度學習的分類方法?;趥鹘y(tǒng)的分類方法思路比較簡單,將圖片轉換為一維向量,再基于距離度量以判斷向量間的相似性。顯而易見,這種不帶特征提取的樸素辦法,丟掉了二維向量中最重要的四周相鄰像素的信息。該種方法在比較干凈的數(shù)據(jù)集上表現(xiàn)還行,一旦數(shù)據(jù)集噪聲強度高,準確率會下降。常見傳統(tǒng)方法的有KNN,SVM等?;谏疃葘W習的分類方法常用的就是卷積神經(jīng)網(wǎng)絡,通過訓練和更新卷積神經(jīng)網(wǎng)絡的參數(shù)使得網(wǎng)絡能夠分辨出未知圖片的類別。卷積神經(jīng)網(wǎng)絡是有人工神經(jīng)網(wǎng)絡演變而來,在接下來的小節(jié)中將一一介紹人工神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡的基本知識和實踐,并使用卷積神經(jīng)網(wǎng)絡來完成圖像分類的任務。3常用方法KNN:KNN算法就是把要分類的對象(例如一個特征向量)與訓練集中已知類標記的所有對象進行對比,并由K近鄰對分類對象進行判斷為那個類別。這種方法的效果好,但是也有弊端,與K-means聚類算法一樣,需要先預定設置k的值,k值的選擇會影響分類的性能。此外這種方法要求整個訓練集存儲起來,如果訓練集偏大,搜索就慢,訓練集偏小,分類結果準確率也就低。對于大的訓練集,采取某些裝箱形式通常會減少對比的次數(shù)。3常用方法SVM支持向量機:SVM支持向量機是一類強大的分類算法,最簡單的SVM通過在高維空間中尋找一個最優(yōu)線性分類面,對于特征向量x的決策函數(shù)為:其中w是常規(guī)超平面,b是偏移量常數(shù),閾值為0,有一類為正數(shù)或負數(shù),求解帶有標記

的最優(yōu)化問題,從而找到?jīng)Q策函數(shù)的參數(shù)。常規(guī)解釋訓練集上某些特征向量的線性組合為:其中i是訓練集中選出的部分樣本,稱為支持向量,它們可以幫助定義分類的邊界。決策函數(shù)即變?yōu)椋篠VM另一個優(yōu)勢是可以使用核函數(shù)

,將特征向量映射到另一個不同維度的空間中。3常用方法ThankYOU!神經(jīng)網(wǎng)絡神經(jīng)網(wǎng)絡的概念01任務playground02任務學習目標掌握神經(jīng)網(wǎng)絡的基礎結構掌握神經(jīng)網(wǎng)絡的訓練過程1神經(jīng)網(wǎng)絡的概念1神經(jīng)網(wǎng)絡的概念神經(jīng)網(wǎng)絡人工神經(jīng)網(wǎng)絡(ArtificialNeuralNetwork,ANN),簡稱神經(jīng)網(wǎng)絡(NeuralNetwork,NN),是一種模仿生物神經(jīng)網(wǎng)絡的結構和功能的數(shù)學模型或計算模型。1943年,McCulloch和Pitts將上述情形抽象為下圖所示的簡單模型,這就是一直沿用至今的M-P神經(jīng)元模型。把許多這樣的神經(jīng)元按一定的層次結構連接起來,就得到了神經(jīng)網(wǎng)絡。1神經(jīng)網(wǎng)絡的概念最基本的神經(jīng)元網(wǎng)絡形式,由有限個神經(jīng)元構成,所有神經(jīng)元的輸入向量都是同一個向量,由于每個神經(jīng)元都會產生一個標量結果,所以單層神經(jīng)元輸出的都是一個向量,向量的維數(shù)等于神經(jīng)元的個數(shù)。單層神經(jīng)網(wǎng)絡結構圖1神經(jīng)網(wǎng)絡的概念多層神經(jīng)網(wǎng)絡就是由單層神經(jīng)網(wǎng)絡進行疊加之后得到的,所以就形成了層的概念,常見的多層神經(jīng)網(wǎng)絡有如下結構:1)輸入層(Inputlayer),眾多神經(jīng)元(Neuron)接受大量非線形輸入消息。輸入的消息稱為輸入向量。2)輸出層(Outputlayer),消息在神經(jīng)元鏈接中傳輸、分析、權衡,形成輸出結果。輸出的消息稱為輸出向量。3)隱藏層(Hiddenlayer),簡稱“隱層”,是輸入層和輸出層之間眾多神經(jīng)元和鏈接組成的各個層面。隱層可以有一層或多層。隱層的節(jié)點(神經(jīng)元)數(shù)目不定,但數(shù)目越多神經(jīng)網(wǎng)絡的非線性越顯著,從而神經(jīng)網(wǎng)絡的強健性(robustness)更顯著。4)全連接層,當前一層和前一層每個神經(jīng)元相互鏈接,所謂的全連接層就是在前一層的基礎上進行一次Y=Wx+b的變化(不考慮激活函數(shù))。1神經(jīng)網(wǎng)絡的概念不管是單層還是多層神經(jīng)網(wǎng)絡,都只能線性地劃分數(shù)據(jù),此時,如果在感知機的基礎上加上非線性激活函數(shù),輸出的結果就不在一條直線上了。激活函數(shù)可以增加模型的非線性分割能力。常見的激活函數(shù)有:sigmoid:tanh:ReLu:LeakyReLu:Maxout:激活函數(shù)的作用除了前面說的增加模型的非線性分割能力外,還有:提高模型魯棒性、緩解梯度消失問題、加速模型收斂等。ELU:2playground2playground為了更好的理解神經(jīng)網(wǎng)絡,Tensorflow給大眾提供了一個便于理解的工具——playground,ThankYOU!卷積神經(jīng)網(wǎng)絡認識卷積網(wǎng)絡01任務了解網(wǎng)絡結構02任務卷積網(wǎng)絡的發(fā)展歷史03任務學習目標掌握卷積網(wǎng)絡的基礎結構了解卷積網(wǎng)絡的常見方法1認識卷積神經(jīng)網(wǎng)絡1認識卷積神經(jīng)網(wǎng)絡神經(jīng)網(wǎng)絡傳統(tǒng)的三層神經(jīng)網(wǎng)絡由輸入層,隱藏層,輸出層構成,其中隱藏層的層數(shù)根據(jù)使用時的具體需求而定,帶有大量的參數(shù)。但是作為圖像來說,其本身具有“二維空間特征”,通俗點說就是局部特性。譬如看一張貓的圖片,可能看到貓的眼鏡或者嘴巴就知道這是貓的圖片,而不需要說看完了每個部分才知道圖片的內容。如果可以用某種方式對一張圖片的某個典型特征識別,那么就可以知道這張圖片的類別。因此,還需要一個更高效的特征學習部分。1認識卷積神經(jīng)網(wǎng)絡卷積神經(jīng)網(wǎng)絡卷積神經(jīng)網(wǎng)絡(convolutionalneuralnetwork,CNN)是一類包含卷積計算且具有深度結構的前饋神經(jīng)網(wǎng)絡,是深度學習的代表算法之一。卷積神經(jīng)網(wǎng)絡具有表征學習能力,能夠按其階層結構對輸入信息進行平移不變分類。其隱含層內的卷積核參數(shù)共享和層間連接的稀疏性使得卷積神經(jīng)網(wǎng)絡能夠以較小的計算量對格點化特征,例如像素和音頻進行學習、有穩(wěn)定的效果且對數(shù)據(jù)沒有額外的特征工程要求。2網(wǎng)絡結構2網(wǎng)絡結構1.卷積層由于輸入圖像通常很維數(shù)很高,例如,1000×1000大小的彩色圖像對應于三百萬維特征,因此,繼續(xù)沿用多層感知機中的全連接層會導致龐大的參數(shù)量。大參數(shù)量需要繁重的計算,而更重要的是大參數(shù)量會有更高的過擬合風險。卷積是局部連接、共享參數(shù)版的全連接層,這兩個特性使參數(shù)量大大降低。局部連接:在全連接層中,每個輸出通過權值(weight)和所有輸入相連。在卷積層中,每個輸出神經(jīng)元在通道方向保持全連接,而在空間方向上只和小部分輸入神經(jīng)元相連。共享參數(shù):卷積層不同空間位置的神經(jīng)元共享權值,用于發(fā)現(xiàn)圖像中不同空間位置的模式。共享參數(shù)是深度學習一個重要的思想,其在減少網(wǎng)絡參數(shù)的同時仍然能保持很高的網(wǎng)絡容量(capacity)。2網(wǎng)絡結構卷積層中的權值通常被稱為濾波器(filter)或卷積核(convolutionkernel)。卷積層由若干個卷積核構成,每層卷積層通過卷積核在圖像上平移進行卷積運算來提取特征。卷積運算的目的是提取輸入的不同特征,不同的卷積層提取的特征不同,淺層的卷積層只能提取一些低級的特征如邊緣,線條等,深層的網(wǎng)絡能從低級特征中迭代提取更復雜的特征。通過多層卷積層堆疊,各層提取到特征逐漸由邊緣、紋理、方向等低層級特征過渡到文字、車輪、人臉等高層級特征。2網(wǎng)絡結構2.池化層根據(jù)特征圖上的局部統(tǒng)計信息進行下采樣,在保留有用信息的同時減少特征圖的大小。和卷積層不同的是,池化層不包含需要學習的參數(shù)。最大池化(max-pooling)在一個局部區(qū)域選最大值作為輸出,而平均池化(averagepooling)計算一個局部區(qū)域的均值作為輸出。局部區(qū)域池化中最大池化使用更多,而全局平均池化(globalaveragepooling)是更常用的全局池化方法。池化的核通常采用2×2的大小,平均池化就是計算2×2范圍內的平均值,最大池化就是取該范圍內的最大值。目前比較常用的是最大池化。在經(jīng)過池化后,原圖像的channel是不發(fā)生改變的。2網(wǎng)絡結構池化層的作用:增加特征平移不變性。減小特征圖大小。最大池化可以帶來非線性。2網(wǎng)絡結構3.激活層激活層的作用在于將前一層的線性輸出,通過非線性的激活函數(shù)進行處理,這樣用以模擬任意函數(shù),從而增強網(wǎng)絡的表征能力。激活層常用的函數(shù)包括sigmoid和ReLu(Rectified-LinearUnit,修正線性單元)等。激活函數(shù)是一些非線性的函數(shù),這些函數(shù)的特性有所不同:1.sigmoid函數(shù)可以將數(shù)值壓縮到[0,1]的區(qū)間。2.tanh可以將數(shù)值壓縮到[-1,1]的區(qū)間。3.ReLu函數(shù)實現(xiàn)一個取正的效果,所有負數(shù)的信息都拋棄。4.LeakyReLu是一種相對折中的ReLu,認為當數(shù)值為負的時候可能也存在一定有用的信息,那么就乘以一個系數(shù)0.1(可以調整或自動學習),從而獲取負數(shù)中的一部分信息。5.Maxout使用兩套參數(shù),取其中值大的一套作為輸出。6.ELU類似于LeakyReLu,只是使用的公式不同。2網(wǎng)絡結構以Tensorflow為例學習如何搭建這些層的方法:卷積層:tf.nn.conv2d(input,filter,strides,padding)激活層:tf.nn.relu()池化層:tf.nn.max_pool()(最大池化)3卷積網(wǎng)絡的發(fā)展歷史3卷積網(wǎng)絡的發(fā)展歷史下面將按照時間順序進行講解幾種具有代表性的卷積神經(jīng)網(wǎng)絡(LeNet、AlexNet、VGG和ResNet),這些卷積神經(jīng)網(wǎng)絡在當時都針對圖像分類任務取得了很好的效果。1.LeNetLeNet是CNN結構的開山鼻祖,第一次定義了卷積神經(jīng)網(wǎng)絡的結構。3卷積網(wǎng)絡的發(fā)展歷史LeNet的特點如下所示:(1)定義了卷積神經(jīng)網(wǎng)絡(ConvolutionalNeuralNetwork,CNN)的基本框架:卷積層+池化層(PoolingLayer)+全連接層;(2)定義了卷積層(ConvolutionLayer),與全連接層相比,卷積層的不同之處有兩點:局部連接(引進“感受野”這一概念)、權值共享(減少參數(shù)數(shù)量),卷積計算公式:(3)利用池化層進行下采樣(Downsampooling),從而減少計算量,池化計算公式:(4)用tanh作為非線性激活函數(shù)(現(xiàn)在看到的都是改進過的LeNet了,用ReLu代替

tanh。相較于sigmoid,tanh以原點對稱(zero-centered),收斂速度會快。3卷積網(wǎng)絡的發(fā)展歷史2.AlexNet2012年,Krizhevsky與Hinton推出了AlexNet,引起了許多學者對深度學習的研究,可以算是深度學習的熱潮的起始標志。AlexNet的特點如下所示:(1)采用雙GPU網(wǎng)絡結構,從而可以設計出更“大”、更“深”的網(wǎng)絡(相較于當時的算力來說);3卷積網(wǎng)絡的發(fā)展歷史(2)采用ReLu代替tanh,稍微解決梯度消失問題(GradientVanishingProblem),加快網(wǎng)絡收斂速度;(3)提出局部相應歸一化(LRN,LocalResponseNormalization);(4)令pooling操作中的stride小于池化核的大小,從而使相鄰的池化區(qū)域存在重疊部分,這一操作稱為OverlappingPooling;(5)對訓練數(shù)據(jù)進行隨機裁剪(RandomCrop),將訓練圖像由256×256裁剪為224×224,并做隨機的鏡像翻轉(HorizontalReflection)。并在測試時,從圖像的四個角以及中心進行裁剪,并進行鏡像翻轉,這樣可以得到10個Patch,將這些Patch的結果進行平均,從而得到最終預測結果;(6)對訓練圖像做PCA(主成分分析),利用服從(0,0.1)的高斯分布的隨機變量對主成分進行擾動。這一操作能減少指標Top-1的1%錯誤率;(7)利用dropout避免網(wǎng)絡過擬合。3卷積網(wǎng)絡的發(fā)展歷史3.VGG2014年,Simonyan和Zisserman提出了VGG系列模型(包括VGG-11/VGG-13/VGG-16/VGG-19),并在當年的ImageNetChallenge上作為分類任務第二名、定位(Localization)任務第一名的基礎網(wǎng)絡出現(xiàn)。VGG與當時其他卷積神經(jīng)網(wǎng)絡不同,不采用感受野大的卷積核(如:7×7,5×5),反而采用感受野小的卷積核(3×3)。關于這樣做的好處有如下兩點:減少網(wǎng)絡參數(shù)量;由于參數(shù)量被大幅減小,于是可以用多個感受野小的卷積層替換掉之前一個感受野大的卷積層,從而增加網(wǎng)絡的非線性表達能力。3卷積網(wǎng)絡的發(fā)展歷史4.ResNet2015年,KaimingHe提出了ResNet(拿到了2016年CVPRBestPaperAward),不僅解決了神經(jīng)網(wǎng)絡中的退化問題還在同年的ILSVRC和COCO競賽橫掃競爭對手,分別拿下分類、定位、檢測、分割任務的第一名。Kaiming在文中提出了殘差結構(ResidualBlock),使得原本所要擬合的函數(shù),

改為

,其中,

。雖然在“多個非線性層可以擬合任意函數(shù)”這一假設下二者并無區(qū)別,但是Kaiming假設模型學習后者,將更容易進行優(yōu)化與收斂。(在殘差結構中,模型利用Shortcut進行IdentityMapping,這樣也解決了梯度消失現(xiàn)象)。ThankYOU!基于CNN的

圖像識別案例描述01任務案例分析02任務案例實施03任務學習目標學習搭建卷積神經(jīng)網(wǎng)絡使用網(wǎng)絡完成圖像分類1案例描述1案例描述學習如何搭建CNN卷積神經(jīng)網(wǎng)絡,訓練cifar-10數(shù)據(jù),識別圖片中的內容。2案例分析2案例分析數(shù)據(jù)集介紹:cifar-10是由Hinton的學生AlexKrizhevsky和IlyaSutskever整理的一個用于識別普適物體的小型數(shù)據(jù)集。一共包含10個類別的RGB彩色圖片:飛機(airplane)、汽車(automobile)、鳥類(bird)、貓(cat)、鹿(deer)、狗(dog)、蛙類(frog)、馬(horse)、船(ship)和卡車(truck)。圖片由32×32彩色圖像組成,每個類有6000個圖像。cifar-10數(shù)據(jù)集中共有50000個訓練圖像和10000個測試圖像。3案例實施3案例實施1.加載數(shù)據(jù)fromtensorflow.kerasimportdatasets,layers,models(train_images,train_labels),(test_images,test_labels)=datasets.cifar10.load_data()2.搭建卷積神經(jīng)網(wǎng)絡Keras是一個由Python編寫的開源人工神經(jīng)網(wǎng)絡庫,可以作為Tensorflow、Microsoft-CNTK和Theano的高階應用程序接口,進行深度學習模型的設計、調試、評估、應用和可視化。Keras同樣提供了序列化方法,可以方便的幫助搭建神經(jīng)網(wǎng)絡。model=models.Sequential()model.add(layers.Conv2D(32,(3,3),activation='relu',input_shape=(32,32,3)))model.add(layers.MaxPooling2D((2,2)))model.add(layers.Flatten())model.add(layers.Dense(64,activation='relu'))3案例實施pile(optimizer='adam’,

loss='sparse_categorical_crossentropy’,

metrics=['accuracy’])4.可視化訓練過程為了方便查看訓練過程中準確率的變化,可以借助matplotlib來可視化訓練過程。3案例實施3.編譯并訓練此次訓練過程中使用了adam優(yōu)化函數(shù)——一個比較智能的優(yōu)化函數(shù)方法,自適應時刻估計方法(AdaptiveMomentEstimation)。它在模型訓練優(yōu)化的過程中通過讓每個參數(shù)獲得自適應的學習率,來獲得優(yōu)化質量和速度的雙重提升。主要包含以下幾個顯著的優(yōu)點:1.實現(xiàn)簡單,計算高效,對內存需求少;2.參數(shù)的更新不受梯度的伸縮變換影響;3.超參數(shù)具有很好的解釋性,且通常無需調整或僅需很少的微調;4.更新的步長能夠被限制在大致的范圍內(初始學習率);5.能自然地實現(xiàn)步長退火過程(自動調整學習率);6.很適合應用于大規(guī)模的數(shù)據(jù)及參數(shù)的場景;7.適用于不穩(wěn)定目標函數(shù);8.適用于梯度稀疏或梯度存在很大噪聲的問題。ThankYOU!遷移學習認識遷移學習01任務finetune03任務遷移學習特點02任務學習目標掌握遷移學習的基本概念掌握finetune的概念掌握遷移學習的特點1認識遷移學習1認識遷移學習深度學習面臨的困境1.大數(shù)據(jù)與少標注之間的矛盾。深度學習模型的訓練和更新,均依賴于數(shù)據(jù)的標注。數(shù)據(jù)的標注是一個耗時且昂貴的操作,因為沒有足夠的標定數(shù)據(jù)用來學習,使得這些領域一直不能很好的發(fā)展。2.大數(shù)據(jù)與弱計算之間的矛盾。大數(shù)據(jù),就需要大設備、強計算能力的設備來進行存儲和計算。絕大多數(shù)普通用戶是不可能具有這些強計算能力的。在這種情況下,普通人想要利用這些海量的大數(shù)據(jù)去訓練模型完成自己的任務,基本上不太可能。3.普適化模型與個性化需求之間的矛盾。深度學習的目標是構建一個盡可能通用的模型,使得這個模型對于不同用戶、不同設備、不同環(huán)境、不同需求,都可以很好地進行滿足。4.特定應用的需求。深度學習已經(jīng)被廣泛應用于現(xiàn)實生活中。在這些應用中,也存在著一些特定的應用,怎樣去高效的使用通用模型解決特定的需求。1認識遷移學習遷移學習的基本概念遷移學習(TransferLearning)是一種深度學習方法,就是把為任務A開發(fā)的模型作為初始點,重新應用在為任務B開發(fā)模型的過程中,顧名思義就是把已學訓練好的模型參數(shù)遷移到新的模型來幫助新模型訓練。考慮到大部分數(shù)據(jù)或任務是存在相關性的,所以通過遷移學習可以將已經(jīng)學到的模型參數(shù)(也可理解為模型學到的知識)通過某種方式來分享給新模型從而加快并優(yōu)化模型的學習效率不用像大多數(shù)網(wǎng)絡那樣從零學習

(StartingFromScratch)。2遷移學習的特點2遷移學習的特點遷移學習與一般深度學習的區(qū)別主要表現(xiàn)在數(shù)據(jù)分布,數(shù)據(jù)標簽,以及模型使用三個方面。在數(shù)據(jù)分布方面,一般的深度學習需要訓練數(shù)據(jù)和測試數(shù)據(jù)同分布,即標準數(shù)據(jù)和非標準數(shù)據(jù)在訓練集和測試集中所占的比例大致相同。而在遷移學習中,訓練數(shù)據(jù)和測試數(shù)據(jù)的分布可以不同。在數(shù)據(jù)標簽方面,一般的深度學習往往需要大量的數(shù)據(jù)標注,而在遷移學習中,數(shù)據(jù)標注可以不用那么多。在模型使用方面,一般的深度學習需要針對每個任務分別建模,而在遷移學習中,任務不需要重新開始建立模型,可以重用之前的模型。2遷移學習的特點遷移學習使用方法:可以在自己的預測模型問題上使用遷移學習,通常有兩種方法:開發(fā)模型方法和預訓練模型方法。

對于開發(fā)模型方法,分為四步:(1)選擇源任務:必須選擇一個與大量數(shù)據(jù)相關的預測模型問題,這個大量的數(shù)據(jù)需要與輸入數(shù)據(jù),輸出數(shù)據(jù)或從輸入到輸出數(shù)據(jù)映射過程中學習的概念之間存在某種關系。(2)開發(fā)源模型:接下來,必須為這個第一項任務開發(fā)一個熟練的模型;該模型必須比原始模型更好,以確保一些特征學習已經(jīng)發(fā)揮了其作用。(3)重用模型:然后可以將適合源任務的模型用作感興趣的另一個任務模型的起點;這取決于所使用的建模技術,可能涉及到了全部或部分模型。(4)調整模型:可選項,對感興趣任務的調整輸入—輸出配對數(shù)據(jù)或改進模型。2遷移學習的特點對于預訓練模型方法,分為三步:(1)選擇源任務:從可用的模型中選擇預訓練的元模型,許多研究機構會發(fā)布已經(jīng)在大量的且具有挑戰(zhàn)性的數(shù)據(jù)集上訓練好的模型,在可用模型的模型池里面也能找到這些模型。(2)重用模型:然后可以將預訓練的模型用作感興趣的另一個任務模型的起點,這取決于所使用的建模技術,可能涉及使用全部或部分模型。(3)調整模型:可選項,對感興趣任務的調整輸入—輸出配對數(shù)據(jù)或改進模型。

其中,第二類遷移學習方法在深度學習領域是很常見的。3finetune3finetune在介紹finetune之前,先了解一下什么是預訓練模型。在搭建一個網(wǎng)絡模型來完成一個特定的圖像分類的任務時,首先,需要隨機初始化參數(shù),然后開始訓練網(wǎng)絡,不斷調整直到網(wǎng)絡的損失越來越小。在訓練的過程中,一開始初始化的參數(shù)會不斷變化。當結果很滿意的時候,就可以將訓練模型的參數(shù)保存下來,以便訓練好的模型可以在下次執(zhí)行類似任務時獲得較好的結果。這個過程就是pre-training。之后接收到一個類似的圖像分類任務。這時候,就可以直接使用之前保存下來的模型的參數(shù)作為這一任務的初始化參數(shù),然后在訓練的過程中,依據(jù)結果不斷進行一些修改。這時候使用的就是一個pre-training/trained模型,而過程就是fine-tuning。所以,預訓練就是指預先訓練的一個模型或者指預先訓練模型的過程;微調就是指將預訓練模型作用于自己的數(shù)據(jù)集,并使參數(shù)適應自己數(shù)據(jù)集的過程。3finetune為什么使用微調?首先要了解卷積網(wǎng)絡的核心是:淺層卷積提取基礎特征,比如邊緣,輪廓等;深層卷積提取抽象特征,比如整個臉型;全連接層根據(jù)特征組合進行評分分類。而預訓練模型的特點是:使用大型數(shù)據(jù)集進行訓練,具備提取淺層基礎特征和深層抽象特征的能力。使用微調不僅可以有效避免從頭開始訓練,浪費時間和資源的問題,而且可以一定程度上解決模型泛化能力低的問題。3finetune什么情況下使用微調呢?首先,使用的數(shù)據(jù)集與預訓練模型的數(shù)據(jù)集相似,如果不太相似,比如使用的預訓練模型是自然場景下的圖片訓練的,而目標任務是人臉識別,效果可能就沒有那么好了。因為人臉的特征和自然景物的特征提取是不同的,所以相應的參數(shù)訓練后也是不同的。其次當使用自己搭建的CNN模型準確率太低的時候也可以考慮使用微調。在實踐中更常用的是,對于擁有較小的數(shù)據(jù)集,只需對那些經(jīng)過大型數(shù)據(jù)集訓練過的預訓練模型結構進行微調,就可以達到快速訓練模型的效果。ThankYOU!基于遷移學習

的圖像識別案例描述01任務案例分析02任務案例實施03任務學習目標掌握調用圖像分類的卷積神經(jīng)網(wǎng)絡的預訓練模型對預訓練模型進行微調使用微調后的預訓練模型對cifar-10數(shù)據(jù)進行訓練分類1案例描述1案例描述將學習如何使用預訓練的VGG-16和ResNet50來實現(xiàn)cifar-10數(shù)據(jù)集的分類。2案例分析2案例分析加載數(shù)據(jù)部分同上一個案例,只需把數(shù)據(jù)輸入到預訓練的VGG-16或者ResNet50中。VGG-16的網(wǎng)絡結構為右側圖綠色欄所示,其中block1中有2個包含64個卷積核的卷積層,block2包含2個128個卷積核的卷積層,block3有3個包含256個卷積核的卷積層,block4有3個包含512個卷積核的卷積層,block5有3個包含512個卷積核的卷積層,加上2個包含4096個神經(jīng)元的全連接層和1個包含1000個神經(jīng)元的全連接層。2案例分析ResNet有2個基本的block,一個是identityblock,輸入和輸出的維度是一樣的,所以可以串聯(lián)多個;另外一個基本block是convblock,輸入和輸出的維度是不一樣的,所以不能連續(xù)串聯(lián),它的作用本來就是為了改變特征向量的維度。convblockidentityblock2案例分析ResNet50網(wǎng)絡結構中block_sizes=[3,4,6,3]指的是stage1(firstpool)之后的4個layer的block數(shù),分別對應res2,res3,res4,res5,每一個layer的第一個block在shortcut上做conv+BN,即convblock。3案例實施3案例實施1.導庫在Keras里面提供了許多在ImageNet上的預訓練模型,VGG-16和ResNet50就是其中的預訓練模型,可以通過fromtensorflow.keras.applicationsimportVGG16和fromtensorflow.keras.applications.resnet50importResNet50引入VGG-16模型和RseNet50模型。調用VGG-16模型和RseNet50模型分別使用VGG16(include_top=Tr

溫馨提示

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

評論

0/150

提交評論