基本題型:
題型:選擇、填空、簡(jiǎn)答、分析
絕大多數(shù)內(nèi)容參考自PPT
一、線(xiàn)性分類(lèi)器
-
基本了解內(nèi)容:每個(gè)過(guò)程都有些啥
-
圖像表示:二進(jìn)制圖像、灰度圖像、彩色圖像。(將矩陣轉(zhuǎn)為列向量)3072維
-
分類(lèi)模型:
-
線(xiàn)性分類(lèi)模型。是神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)的基礎(chǔ)。。
-
線(xiàn)性分類(lèi)模型是一種線(xiàn)性映射,將輸入的圖像特征映射成類(lèi)別分?jǐn)?shù)。
-
決策規(guī)則:f_i(x)>f_j(x),對(duì)任意的j!=i。
-
線(xiàn)性分類(lèi)器的矩陣表示:
-
線(xiàn)性分類(lèi)器的權(quán)值:可以看成模板、輸入圖像與評(píng)估模板的匹配程度越高,分類(lèi)器輸出的分?jǐn)?shù)就越高。
-
線(xiàn)性分類(lèi)器的決策邊界:W控制著線(xiàn)的方向,b控制線(xiàn)的偏移,箭頭方向表示分類(lèi)器的正方向。沿著箭頭方向距離決策面越遠(yuǎn)分 數(shù)就越高
-
-
損失函數(shù):是一個(gè)函數(shù),用于度量給定的分類(lèi)器的預(yù)測(cè)值和真實(shí)值的不一致程度,其輸出通常是一個(gè)非負(fù)值。其輸出的非負(fù)值可以作為反饋信號(hào)來(lái)對(duì)分類(lèi)器參數(shù)進(jìn)行調(diào)整,以降低當(dāng)前示例對(duì)應(yīng)的損失值,提升分類(lèi)器的分類(lèi)效果。
-
損失函數(shù)的一般定義:
-
多類(lèi)支撐向量機(jī)損失:
-
正則項(xiàng)與超參數(shù):R(w)是一個(gè)與權(quán)值有關(guān),跟圖像數(shù)據(jù)無(wú)關(guān)的函數(shù)。
-
-
優(yōu)化算法:參數(shù)優(yōu)化是機(jī)器學(xué)習(xí)的核心步驟之一,它利用損失函數(shù)的輸出值作為反饋信號(hào)來(lái)調(diào)整分類(lèi)器參數(shù),以提升 分類(lèi)器對(duì)訓(xùn)練樣本的預(yù)測(cè)性能。
-
基本優(yōu)化目標(biāo):
-
優(yōu)化方法:梯度下降算法、隨機(jī)梯度下降算法及小批量梯度下降算法。
-
梯度下降算法:往負(fù)梯度方向走,走多遠(yuǎn)由步長(zhǎng)決定。
-
梯度計(jì)算方法:
- 數(shù)值法:計(jì)算量大,不精確。
- 解析法:精確,速度快,導(dǎo)數(shù)函數(shù)推導(dǎo)易錯(cuò)。
- 數(shù)值梯度作用:求梯度時(shí)一般使用解析梯度,而數(shù)值梯度主要用于解析梯度的正確性 校驗(yàn)(梯度檢查)。
-
梯度下降算法計(jì)算效率:利用所有樣本計(jì)算損失并更新梯度,當(dāng)N很大時(shí),權(quán)值梯度計(jì)算量很大。
-
隨機(jī)梯度下降算法:每次隨機(jī)選擇一個(gè)樣本計(jì)算損失更新梯度,單個(gè)樣本的訓(xùn)練可能會(huì)帶來(lái)很多噪聲,不是每次迭代都向著整體最優(yōu)化方向。。
-
小批量隨機(jī)梯度下降:
-
三種方法偽代碼:
-
-
訓(xùn)練過(guò)程:
-
數(shù)據(jù)劃分:
- 訓(xùn)練集:尋找最優(yōu)分類(lèi)器。
- 測(cè)試集:評(píng)測(cè)泛化能力。
- 驗(yàn)證集:選擇超參數(shù)。
-
K折交叉驗(yàn)證:
-
數(shù)據(jù)預(yù)處理:
- 1.去均值,歸一化。
- 去相關(guān)(協(xié)方差矩陣是對(duì)角矩陣),白化(協(xié)方差矩陣是單位矩陣)
-
二、全連接神經(jīng)網(wǎng)絡(luò)
-
了解每個(gè)過(guò)程有啥:
-
圖像表示:展成列向量
-
分類(lèi)模型:
-
全連接神經(jīng)網(wǎng)絡(luò):全連接神經(jīng)網(wǎng)絡(luò)級(jí)聯(lián)多個(gè)變換來(lái)實(shí)現(xiàn)輸入到輸出的映射。非線(xiàn)性操作是不可以去掉。去掉后相當(dāng)于還是線(xiàn)性分類(lèi)模型。
-
全連接神經(jīng)網(wǎng)絡(luò)的權(quán)值:
-
激活函數(shù):
- 為什么需要非線(xiàn)性操作?答:如果網(wǎng)絡(luò)中缺少了激活函數(shù),全連接神經(jīng)網(wǎng)絡(luò)將變成一個(gè)線(xiàn)性分類(lèi)器。
- 常見(jiàn)激活函數(shù):
-
-
損失函數(shù):
-
Softmax函數(shù)(激活函數(shù)):Softmax函數(shù)和交叉熵經(jīng)常一起使用,它是一個(gè)具有任意實(shí)數(shù)值的K維向量壓縮到范圍在0~1之間的K維向量,使得向量中的每個(gè)元素表示對(duì)應(yīng)的類(lèi)別的概率。
-
交叉熵?fù)p失:衡量?jī)蓚€(gè)分布之間的差異性的損失函數(shù)。常用于分類(lèi)問(wèn)題。
-
計(jì)算圖:
-
再看激活函數(shù):
-
Sigmoid激活函數(shù):
-
Tanh激活函數(shù):
-
TeLU激活函數(shù):
-
Leakly ReLU激活函數(shù):
-
梯度爆炸:
-
激活函數(shù)選擇:
-
-
梯度算法的改進(jìn):
-
梯度算法存在的問(wèn)題:
-
動(dòng)量法:
-
自適應(yīng)梯度法:
-
Adam優(yōu)化器:
-
-
-
訓(xùn)練過(guò)程:
-
權(quán)值初始化:
-
全零初始化:
-
隨機(jī)初始化:
-
Xavier初始化:(每層神經(jīng)元激活值的方差基本相同?。┎惶m合ReLU激活函數(shù)
-
He初始化:
-
-
批歸一化:直接對(duì)神經(jīng)元的輸出進(jìn)行批歸一化,如果每一層的每個(gè)神經(jīng)元進(jìn)行批歸一化,就能解決前向傳 遞過(guò)程中的信號(hào)消失問(wèn)題。經(jīng)常插入到全連接層后,非線(xiàn)性激活前。
- 算法偽代碼:
- 算法偽代碼:
-
過(guò)擬合現(xiàn)象:
- 出現(xiàn)過(guò)擬合,得到的模型在訓(xùn)練集上的準(zhǔn)確率很高,但 在真實(shí)的場(chǎng)景中識(shí)別率確很低。
- 出現(xiàn)過(guò)擬合,得到的模型在訓(xùn)練集上的準(zhǔn)確率很高,但 在真實(shí)的場(chǎng)景中識(shí)別率確很低。
-
神經(jīng)網(wǎng)絡(luò)中的超參數(shù):
-
三、卷積與圖像去噪
-
卷積:可以實(shí)現(xiàn):圖像的平移、平滑、銳化
-
平均卷積核與高斯卷積核:
-
圖像噪聲與中值濾波器:
-
噪聲:
-
中值濾波器:
-
去噪:
-
-
邊緣提?。?br>
-
奇葩噪聲:可以先平滑后再高斯一階偏導(dǎo)。
-
高斯偏導(dǎo)一階卷積核方差變化:
-
Canny邊緣檢測(cè)器:
-
非極大值抑制:
-
Canny邊緣檢測(cè)器:
-
-
-
卷積神經(jīng)網(wǎng)絡(luò):
-
基于卷積核組的圖像表示:
-
卷積網(wǎng)絡(luò)中的卷積操作:特征響應(yīng)圖深度等于卷積核個(gè)數(shù)。
-
-
池化操作:(沒(méi)有參數(shù))
-
圖像增強(qiáng)方法:圖像翻轉(zhuǎn)、隨機(jī)縮放、色彩抖動(dòng)、平移、旋轉(zhuǎn)、拉伸。
四、經(jīng)典網(wǎng)絡(luò)解析
4.1 AlexNet
-
Alexnet主體貢獻(xiàn):
-
Alexnet網(wǎng)絡(luò)結(jié)構(gòu):
-
MaxPOOL作用:降低特征圖尺寸,對(duì)抗輕微的目標(biāo)偏移帶來(lái)的影響。步長(zhǎng)為2作用:重疊有助于對(duì)抗過(guò)擬合
-
局部響應(yīng)歸一化層作用(NORM):
-
FC6之前會(huì)進(jìn)行拉平操作:變成9216*1的列向量。
-
Alexnet運(yùn)用的重要技巧:
-
4.2 ZFnet
- Alexnet到ZFnet的改進(jìn):
4.3 VGG
-
VGG網(wǎng)絡(luò)基本結(jié)構(gòu):
-
問(wèn)題一:VGG用了多個(gè)小卷積核作用:
答:1.多個(gè)小尺寸卷積核串聯(lián)可以得到與大尺寸卷積核相同的感受野;2.使用小卷積核串聯(lián)構(gòu)建的網(wǎng)絡(luò)深度更深、非線(xiàn)性更強(qiáng)、參數(shù)也更少。 -
問(wèn)題二:為什么VGG網(wǎng)絡(luò)前四段里,每經(jīng)過(guò)一次池化操作,卷積核個(gè)數(shù)就增加一倍?
答:1.池化操作可以減小特征圖尺寸,降低顯存占用。2.增加卷積核個(gè)數(shù)有助于學(xué)習(xí)更多的結(jié)構(gòu)特征,但會(huì)增加網(wǎng)絡(luò)參數(shù)數(shù)量以及內(nèi)存消耗。3.一減一增的設(shè)計(jì)平衡了識(shí)別精度與存儲(chǔ)、計(jì)算開(kāi)銷(xiāo)。4.最終提升了網(wǎng)絡(luò)性能! -
問(wèn)題3:為什么卷積核個(gè)數(shù)增加到512后就不再增加了?
答:1.第一個(gè)全連接層含102M參數(shù),占總參數(shù)個(gè)數(shù)的74%;2. 這一層的參數(shù)個(gè)數(shù)是特征圖的尺寸與個(gè)數(shù)的乘積; 3. 參數(shù)過(guò)多容易過(guò)擬合,且不易被訓(xùn)練。
4.4 GoogLeNet
-
Googlenet網(wǎng)絡(luò)結(jié)構(gòu):(網(wǎng)絡(luò)的輸入做了去均值處理,RGB三通道)
-
串聯(lián)結(jié)構(gòu)(如VGG)存在的問(wèn)題:后面的卷積層只能處理 前層輸出的特征圖;前層因某些原因(比如感受野限制) 丟失重要信息,后層無(wú)法找回。
-
Inception模塊:
-
網(wǎng)絡(luò)的后面幾層:
-
Googlenet的輔助分類(lèi)輸出層
-
平均池化向量化與直接展開(kāi)向量化有什么區(qū)別?
-
Googlenet的1*1卷積會(huì)損失信息嗎?(通常不會(huì))
4.5 Resnet
-
一個(gè)思考:
-
殘差模塊:
-
其他關(guān)鍵點(diǎn):
-
問(wèn)題:為什么殘差網(wǎng)絡(luò)性能這么好?
-
總結(jié):
五、圖像分割&目標(biāo)檢測(cè)
-
視覺(jué)識(shí)別基本任務(wù):
- 分類(lèi):目標(biāo):將圖像分為不同的類(lèi)別或標(biāo)簽。這涉及將圖像映射到預(yù)定義的類(lèi)別,例如識(shí)別圖像中的動(dòng)物種類(lèi)或區(qū)分?jǐn)?shù)字手寫(xiě)體的數(shù)字。
- 語(yǔ)義分割:目標(biāo):對(duì)圖像中的每個(gè)像素進(jìn)行分類(lèi),將其標(biāo)記為屬于特定類(lèi)別。這意味著將圖像分成多個(gè)區(qū)域,并為每個(gè)像素分配一個(gè)語(yǔ)義標(biāo)簽,從而理解圖像中不同部分的內(nèi)容。
- 實(shí)例分割:目標(biāo):與語(yǔ)義分割類(lèi)似,但更進(jìn)一步,它不僅對(duì)圖像進(jìn)行像素級(jí)別的分類(lèi),而且還能夠區(qū)分同一類(lèi)別中不同物體的個(gè)體實(shí)例。這意味著能夠在圖像中準(zhǔn)確地識(shí)別并分割出不同的物體實(shí)例。
- 目標(biāo)檢測(cè):目標(biāo):檢測(cè)圖像中存在的物體,并確定它們的位置和類(lèi)別。通常采用邊界框來(lái)框出每個(gè)物體,同時(shí)標(biāo)識(shí)其所屬的類(lèi)別。
-
語(yǔ)義分割任務(wù)
- 基本思路:滑動(dòng)窗口
- 存在的問(wèn)題:效率太低!重疊區(qū)域的特 征反復(fù)被計(jì)算。
- 解決方法:全卷積,讓整個(gè)網(wǎng)絡(luò)只包含卷積層,一次性輸出所有像素的類(lèi)別預(yù)測(cè)。
- 全卷積引起的新問(wèn)題:處理過(guò)程一直保持原始分辨率,對(duì)顯存的需求比較高。
- 解決方法:讓整個(gè)網(wǎng)絡(luò)只包含卷積層,并在網(wǎng)絡(luò)中嵌入下采樣與上采樣的過(guò)程。
- 思考:下采用可以直接進(jìn)行卷積或池化就可以,如何進(jìn)行上采樣?
-
方法1:反池化
-
反池化操作:近鄰法、0填充、原始位置映射。
-
方法2:反卷積(轉(zhuǎn)置卷積)
-
例子:
-
-
目標(biāo)檢測(cè):
-
單目標(biāo)檢測(cè):多任務(wù)損失兩個(gè)損失(分類(lèi):交叉熵?fù)p失、回歸:均方誤差MSE)
-
框架圖:
-
多目標(biāo)檢測(cè):難點(diǎn):多少個(gè)目標(biāo),要畫(huà)多少個(gè)框?
-
困境:CNN需要對(duì)圖像中所有可能的區(qū)域(不同 位置、尺寸、長(zhǎng)寬比)進(jìn)行分類(lèi),計(jì)算量巨大。
-
生成區(qū)域狂方法:區(qū)域建議(Selective Search):可以快速生成2000個(gè)候選區(qū)
-
方法1:R-CNN
-
第一步:利用區(qū)域建議方法生成2000個(gè)感興趣的區(qū)域
-
第二步:對(duì)區(qū)域進(jìn)行縮放(224*224)
-
第三步:將圖像區(qū)域送入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取
-
第四步:使用支持向量機(jī)對(duì)區(qū)域進(jìn)行分類(lèi)
-
存在的問(wèn)題:計(jì)算效率低,每一張圖大于2000個(gè)區(qū)域需要卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,重復(fù)區(qū)域反復(fù)計(jì)算。
-
-
方法2:Fast R-CNN
-
第一步:利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)全圖提取特征。(可以使用:Alexnet、VGG、Resnet等等)
-
第二步:利用區(qū)域建議方法產(chǎn)生2000個(gè)候選區(qū)域框。
-
第三步:對(duì)前面產(chǎn)生的區(qū)域框進(jìn)行裁剪核特征縮放。
-
第四步:新特征圖放入全連接層進(jìn)行分類(lèi)和回歸。
-
需要注意的點(diǎn):
- 候選區(qū)域是在原始圖像上生成的。
- 候選區(qū)域投影到特征圖上不一定落到網(wǎng)格交點(diǎn)需要進(jìn)行裁剪Pol Pool.
-
區(qū)域裁剪:Rol Pool
-
第一步:投影:將候選區(qū)域投影到特征圖上。
-
第二步:規(guī)整:將區(qū)域頂點(diǎn)規(guī)整到網(wǎng)格交點(diǎn)上。
-
第三步:分割:將候選區(qū)域劃分為固定大小的子區(qū)域。
-
第四步:池化:對(duì)每個(gè)子區(qū)域進(jìn)行池化操作(最大池化)
-
第五步:尺寸統(tǒng)一:將所有子區(qū)域提取的特征進(jìn)行尺寸統(tǒng)一。
-
存在的問(wèn)題:處理后的區(qū)域特征會(huì)有輕微的對(duì)不齊!也就是還是存在一定的精度偏差。
-
-
區(qū)域裁剪:Rol Align(前面方法的改進(jìn)版):是一種改進(jìn)的區(qū)域裁剪方法,旨在解決 RoI Pooling 存在的精度損失問(wèn)題。在目標(biāo)檢測(cè)和區(qū)域分類(lèi)任務(wù)中,RoI Pooling 的精度損失主要源于兩個(gè)方面:像素級(jí)別的空間錯(cuò)位和信息損失。(不進(jìn)行規(guī)則操作)
- 改進(jìn)點(diǎn)1:更精修的插值:RoI Align 使用雙線(xiàn)性插值(bilinear interpolation)或類(lèi)似的更精細(xì)插值方法來(lái)從特征圖上的位置更準(zhǔn)確地采樣特征。這有助于減少像素級(jí)別的錯(cuò)位,提高區(qū)域的準(zhǔn)確性。
- 改進(jìn)點(diǎn)2:子像素對(duì)齊:RoI Align 在計(jì)算每個(gè)輸出位置的特征時(shí),更精確地將輸入 RoI 映射到特征圖上的子像素級(jí)別,而不是使用簡(jiǎn)單的取整操作。這提供了更精確的位置對(duì)齊,減少了信息損失。
-
Fast R-CNN存在的問(wèn)題:候選區(qū)域產(chǎn)生過(guò)程耗時(shí)過(guò)高,幾乎等于單張圖片的檢測(cè)時(shí)間。
-
-
方法3:Faster R-CNN:
-
基本框架圖:
-
第一步:特征提?。狠斎雸D像經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取。(可以使用VGG,Resnet等等)
-
第二步:候選區(qū)域的生成:使用區(qū)域建議(Region Proposal Network)在特征圖上生成候選區(qū)域。PRN利用特征圖上的滑動(dòng)窗口和錨框提出可能包含目標(biāo)的候選區(qū)域。
-
第三步:區(qū)域裁剪與特征對(duì)齊:對(duì)每個(gè)候選框,使用Rol Align或Rol Pooling從特征圖上提取固定大小的特征。
-
第四步:分類(lèi)和回歸:對(duì)提取的特征進(jìn)行分類(lèi)和邊界框回歸。
-
區(qū)域建議(Region Proposal Network)是用于目標(biāo)檢測(cè)的神經(jīng)網(wǎng)絡(luò)組件,通常與 Faster R-CNN 結(jié)構(gòu)一起使用。它的主要功能是在輸入圖像的特征圖上生成可能包含目標(biāo)的候選區(qū)域?;究蚣埽?br>
- 基本原理步驟如下:
- 滑動(dòng)窗口與錨框:RPN在最后的feature map上每個(gè)位置生成多個(gè)候選區(qū)域。如上圖即15*20=300區(qū)域,每個(gè)區(qū)域生成k個(gè)錨框(anchor boxes)一共300k個(gè)。
- 特征提?。篟PN使用卷積神經(jīng)網(wǎng)絡(luò)(通常是與整個(gè)目標(biāo)檢測(cè)網(wǎng)絡(luò)共享的卷積部分)從輸入圖像中提取特征。
- 分類(lèi)和回歸:對(duì)于每個(gè)窗口位置上的每個(gè)錨框,RPN同時(shí)進(jìn)行二分類(lèi)(目標(biāo)/非目標(biāo))和邊界框回歸(用于調(diào)整錨框以更好地匹配目標(biāo)邊界)
- 生成最終候選區(qū)域:根據(jù)網(wǎng)絡(luò)輸出的分類(lèi)分?jǐn)?shù)和邊界框回歸的效果,通過(guò)非極大值抑制等方法篩選和合并候選區(qū)域,按得分高低進(jìn)行綜合排序,選取前300個(gè)最終候選區(qū)域。
- 基本原理步驟如下:
-
Faster R-CNN最終框架:
-
兩階段圖示:
-
新問(wèn)題:是否必須采用兩個(gè)階段范式完成目標(biāo)檢測(cè)?
-
-
方法4:一階段目標(biāo)檢測(cè):YOLO/SSD/RetinaNet:
- 經(jīng)驗(yàn)性結(jié)論:Faster R-CNN速度偏慢,精度高;SSD速度快,但精度有所欠缺。主干網(wǎng)絡(luò)越寬、深度越深,對(duì)性能的幫助就越大。
- 基礎(chǔ)框架:兩階段:Faster R-CNN;一階段:YOLO/SSD;混合:R-CNN
-
-
實(shí)例分割:
-
經(jīng)典網(wǎng)絡(luò):Mask R-CNN:
-
Faster R-CNN的終極形態(tài):Mask R-CNN (應(yīng)該不考這個(gè))
- 改進(jìn):在Faster R-CNN的基礎(chǔ)上加了一個(gè)用于實(shí)例分割的新分支。就是上圖中的mask network掩碼網(wǎng)絡(luò)。
-
基本步驟:
- 第一步:生成建議區(qū)域:像 Faster R-CNN 一樣,使用區(qū)域提議網(wǎng)絡(luò)(RPN)生成候選目標(biāo)區(qū)域。然后,這些建議區(qū)域被送入卷積網(wǎng)絡(luò)。
- 第二步:RolAlign:引入 RoIAlign 操作來(lái)對(duì)特征圖進(jìn)行精準(zhǔn)的裁剪和對(duì)齊,保留每個(gè)區(qū)域內(nèi)部的空間信息。
- 第三步:Mask Head(掩碼頭部):RoIAlign 的輸出被送入掩碼頭部,產(chǎn)生與提議區(qū)域大小相匹配的像素級(jí)別的二值掩碼,這些掩碼指示了目標(biāo)的精確邊界。
- 第四步:生成掩碼:掩碼頭部的輸出是一個(gè)分割掩碼圖,它與提議區(qū)域的大小相匹配。這些掩碼通常是二進(jìn)制的,每個(gè)像素點(diǎn)表示是否屬于對(duì)象的一部分。在一些模型中,也可以輸出多類(lèi)別的分割掩碼,每個(gè)類(lèi)別一個(gè)掩碼。
-
六、生成模型
-
有監(jiān)督模型與無(wú)監(jiān)督模型對(duì)比:
- 有監(jiān)督模型:
- 訓(xùn)練數(shù)據(jù)有標(biāo)簽,目標(biāo):學(xué)習(xí)X->Y
- 例子:分類(lèi)、回歸、目標(biāo)檢測(cè)、語(yǔ)義分割、實(shí)例分割等等。算法:SVM,K近鄰,決策樹(shù)等
- 無(wú)監(jiān)督模型:
- 數(shù)據(jù)沒(méi)有標(biāo)簽(數(shù)據(jù)獲取成本低),目標(biāo):找出隱含在數(shù)據(jù)里的模式或結(jié)構(gòu)。
- 例子:聚類(lèi),降維、特征學(xué)習(xí)、密度估計(jì)等,算法k-means,PCA等
- 有監(jiān)督模型:
-
生成模型:給定訓(xùn)練集,產(chǎn)生與訓(xùn)練集同分布的新樣本。
-
三種典型的生成模型:
- PixelRNN and PixelCNN 像素級(jí)循環(huán)神經(jīng)網(wǎng)絡(luò)、像素級(jí)卷積神經(jīng)網(wǎng)絡(luò)
- Variational Autoencoders(VAE) 變分自編碼器
- Generative Adversarial Networks(GAN) 生成對(duì)抗網(wǎng)絡(luò)
-
PixelRNN與PixelCNN
-
基本思路:
-
PixelRNN:
-
PixelCNN:
-
優(yōu)缺點(diǎn):
- 優(yōu)點(diǎn):似然函數(shù)可以精確計(jì)算,利用似然函數(shù)的值可以有效地評(píng)估模型的性能。
- 缺點(diǎn):序列產(chǎn)生非常慢
-
-
Variational Autoencoders(VAE)變分自編碼器
-
自編碼器:無(wú)監(jiān)督的特征學(xué)習(xí),其目標(biāo)是利用無(wú)標(biāo)簽數(shù)據(jù)找到一個(gè)有效地低維的特征提取器。
- 自編碼器的學(xué)習(xí):自編碼器利用重構(gòu)損失來(lái)訓(xùn)練低維的特征表示。
- 編碼器部分:可以使用一般的卷積神經(jīng)網(wǎng)絡(luò)(VGG、Resnet)特征降維的過(guò)程。
- 解碼器部分:
- 早期方法:(Linear + 非線(xiàn)性激活函數(shù))通常由全連接層構(gòu)成,每個(gè)全連接層后接非線(xiàn)性激活函數(shù)(如 sigmoid、tanh 等)
- 卷積神經(jīng)網(wǎng)絡(luò)流行之前:可能采用多層全連接神經(jīng)網(wǎng)絡(luò),也稱(chēng)為深度全連接網(wǎng)絡(luò)。
- 卷積神經(jīng)網(wǎng)絡(luò)流行后:使用卷積層和激活函數(shù)(如 ReLU)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
- 更高級(jí)的結(jié)構(gòu)和技術(shù):轉(zhuǎn)置卷積、自注意力機(jī)制、跳躍連接等等。
- 訓(xùn)練好后:移除解碼器,已訓(xùn)練完畢的編碼器可以作為有監(jiān)督學(xué)習(xí)的初始特征特征提取模型。然后利用少量有標(biāo)簽數(shù)據(jù),在編碼器上訓(xùn)練根據(jù)誤差損失值對(duì)編碼器的參數(shù)進(jìn)行微調(diào),訓(xùn)練最終網(wǎng)絡(luò)。
- 缺陷:傳統(tǒng)自編碼器學(xué)習(xí)到的潛在表示空間通常是離散和無(wú)結(jié)構(gòu)的,假設(shè)給兩張圖片,分別是全月和殘?jiān)隆W跃幋a器無(wú)法啊生成中間的半圓月。
-
VAE變分自編碼器:
-
相較于自編碼器的改進(jìn):VAE引入了潛在的空間連續(xù)性,這使得其在潛在空間中進(jìn)行插值和采樣變得可能,允許通過(guò)線(xiàn)性或非線(xiàn)性插值在空間中生成新的,具有連續(xù)變化的樣本。即前面說(shuō)的半圓月。
-
基本框架圖:
-
基本原理
- 基本結(jié)構(gòu)和自編碼器類(lèi)似。編碼器將輸入數(shù)據(jù)映射到潛在空間中的潛在變量(latent variable)或潛在表示。解碼器則將潛在變量映射回原始數(shù)據(jù)空間,重構(gòu)輸入數(shù)據(jù)。
- 引入了潛在空間的分布假設(shè):VAE假設(shè)潛在變量服從某種先驗(yàn)分布(通常是高斯分布),例如均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布。編碼器不直接輸出潛在變量的值,而是輸出這些分布的參數(shù)。通常是輸出潛在變量的均值和方差(或者對(duì)數(shù)方差)。
- 損失函數(shù)和潛在變量采樣:VAE的訓(xùn)練過(guò)程涉及,即最大化數(shù)據(jù)的對(duì)數(shù)似然,同時(shí)最小化潛在變量的 KL 散度(Kullback-Leibler divergence)。KL 散度衡量了編碼器輸出的潛在分布與先驗(yàn)分布之間的差異,幫助模型學(xué)習(xí)合理的潛在表示。在訓(xùn)練中,通過(guò)對(duì)編碼器輸出的分布進(jìn)行采樣(通常是從正態(tài)分布中采樣),得到潛在變量的實(shí)際值,然后將這些值輸入到解碼器進(jìn)行數(shù)據(jù)的重構(gòu)。
- 潛在空間的連續(xù)性和采樣性質(zhì):由于VAE中的潛在變量是從分布中采樣得到的,因此潛在空間具有連續(xù)性和采樣性質(zhì),使得在潛在空間中進(jìn)行插值和采樣能夠生成新的樣本。
-
問(wèn)題:如果只有重構(gòu)誤差會(huì)如何?答:如果只考慮自編碼器的重構(gòu)誤差而不考慮潛在空間的連續(xù)性和分布性質(zhì),會(huì)導(dǎo)致模型可能僅僅學(xué)習(xí)到對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行簡(jiǎn)單的復(fù)制,而沒(méi)有學(xué)習(xí)到有意義的潛在表示。
-
變分自編碼器存在的問(wèn)題:沒(méi)有真的在嘗試模仿真實(shí)的圖片,貌似記住的存在的圖片。
-
變分自編碼器(VAE)總結(jié):
-
總結(jié)一句話(huà):不如GANs
-
-
Generative Adversarial Networks(GAN)生成對(duì)抗網(wǎng)絡(luò):
-
問(wèn)題:希望從訓(xùn)練樣本分布中采樣新數(shù)據(jù),但這個(gè)分布不僅維度高而且還很復(fù)雜,難以直接實(shí)現(xiàn)。
-
解決方案: 對(duì)一個(gè)簡(jiǎn)單的分布采樣,比如均勻分布;然后,學(xué)習(xí)一種映射將其變換到訓(xùn)練樣本分布
-
用什么方法實(shí)現(xiàn)這個(gè)復(fù)雜的映射:神經(jīng)網(wǎng)絡(luò)!
-
輸入:隨機(jī)噪聲;輸出:采樣自訓(xùn)練樣本分布的圖片。
-
基本形式:
-
兩個(gè)玩家的游戲:生成器和對(duì)抗器
-
Minmax訓(xùn)練方式解釋?zhuān)?/p>
-
先訓(xùn)練判別器?d,最大化目標(biāo)函數(shù),使D(x)接近1(真實(shí)樣本),而D(G(z))接近于0(假2樣本)。旨在最大化判別器對(duì)真實(shí)樣本和生成樣本的辨別能力
-
再訓(xùn)練生成器?g,最小化目標(biāo)函數(shù),使得D(G(z))盡量接近1,即希望判別器認(rèn)為生成器產(chǎn)生的圖像G(z)為真實(shí)圖片。
-
訓(xùn)練結(jié)束:如果生成的圖片已經(jīng)足夠逼真和多樣可以停止,判別器精度達(dá)到某個(gè)閾值,損失值收斂等等。
-
Minmax訓(xùn)練方式的弊端:生成樣本非常糟糕時(shí),判別器輸出值都會(huì)很小,生成器損失函數(shù)梯度很小,使得生成器學(xué)習(xí)很慢,相反,當(dāng)生成樣本比較好時(shí),判別器輸出值都會(huì)比較大,生成器損失函數(shù)在此處的梯度很大,生成器更新較大。
-
解決方法:將生成器訓(xùn)練目標(biāo)函數(shù)轉(zhuǎn)化為最大化情況,上面的情況就可以對(duì)調(diào)過(guò)來(lái),即:生成樣本很糟糕時(shí),生成器損失梯度高,加快生成器學(xué)習(xí),當(dāng)樣本比較好時(shí),生成器梯度低,生成器更新較小,逐漸收斂。如下圖:
-
總結(jié):
-
-
-
七、Gan網(wǎng)絡(luò)
-
卷積生成對(duì)抗網(wǎng)絡(luò)DCGAN:
- 基本結(jié)構(gòu):
- 基本結(jié)構(gòu):
-
GAN優(yōu)化問(wèn)題:
-
分布不重疊時(shí)JS散度固定值log2會(huì)導(dǎo)致GAN訓(xùn)練出現(xiàn)下面問(wèn)題:
- 訓(xùn)練困難: 當(dāng)生成器(Generator)產(chǎn)生的分布和真實(shí)數(shù)據(jù)分布沒(méi)有重疊時(shí),JS散度為常數(shù) log?2。這可能會(huì)導(dǎo)致梯度消失或梯度爆炸,使得模型難以學(xué)習(xí)和收斂。
- 缺乏梯度信號(hào): JS散度的常數(shù)值意味著梯度信息受限。在這種情況下,生成器很難根據(jù)梯度信號(hào)進(jìn)行調(diào)整,導(dǎo)致訓(xùn)練不穩(wěn)定。
- 模式崩潰(Mode Collapse): 當(dāng)生成器無(wú)法從梯度中獲得有用的信息時(shí),可能導(dǎo)致模式崩潰的情況,即生成器只生成少量或單一類(lèi)型的樣本,而不是多樣化的結(jié)果。
-
D判別器過(guò)于強(qiáng)大:
-
JS散度問(wèn)題解決方法:
-
基于Wasserstein的GAN即使兩個(gè)分布沒(méi)有重合(這事經(jīng)常發(fā)生),也能準(zhǔn)確的衡量分布的差異。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-768258.html
-
條件GAN:
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-768258.html
-
到了這里,關(guān)于計(jì)算機(jī)視覺(jué)(北郵魯鵬)學(xué)習(xí)記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!