機(jī)器視覺(jué)導(dǎo)論?
圖像分類
線性分類器
K折交叉驗(yàn)證
全連接神經(jīng)網(wǎng)絡(luò)
多層感知器(全連接神經(jīng)網(wǎng)絡(luò))
激活函數(shù)
SOFTMAX和交叉熵
計(jì)算圖與反向傳播
再談激活函數(shù)
Adam算法
Xavier初始化(應(yīng)用于sigmoid函數(shù))
HE初始化或MSRA(用于ReLU函數(shù))
批歸一化
欠擬合垄惧、過(guò)擬合與Dropout
過(guò)擬合現(xiàn)象:得到的模型在訓(xùn)練集上的準(zhǔn)確率很高敬尺,但在真實(shí)的場(chǎng)景中識(shí)別率很低。
對(duì)訓(xùn)練數(shù)據(jù)預(yù)測(cè)很好拦英,但對(duì)未知數(shù)據(jù)預(yù)測(cè)的很差,說(shuō)明只是單純的記住了訓(xùn)練集的數(shù)據(jù),而不是學(xué)習(xí)到了數(shù)據(jù)特征瘩缆。
欠擬合:模型描述能力太弱,以至于不能很好的學(xué)習(xí)數(shù)據(jù)中的規(guī)律佃蚜。
欠擬合產(chǎn)生的原因通常是因?yàn)槟P瓦^(guò)于簡(jiǎn)單庸娱。
優(yōu)化:指的是調(diào)節(jié)模型以在訓(xùn)練數(shù)據(jù)上得到最佳性能。
泛化:是指訓(xùn)練好的模型在前所未見(jiàn)的數(shù)據(jù)上的性能好壞谐算。
在初始階段的時(shí)候熟尉,泛化、優(yōu)化能力同時(shí)增強(qiáng)洲脂,但是在訓(xùn)練后期斤儿,泛化能力會(huì)逐漸變差。
最優(yōu)方案:獲取更多的訓(xùn)練數(shù)據(jù)恐锦。
次優(yōu)方案:調(diào)節(jié)模型允許存儲(chǔ)的信息量或者對(duì)模型允許存儲(chǔ)的信息加以約束往果。(該方法稱為正則化)
①調(diào)節(jié)模型大小(也就是諸如增減神經(jīng)元個(gè)數(shù))
②約束模型權(quán)重一铅,權(quán)重正則化(L1陕贮、L2正則化)
③隨機(jī)失活(Dropout)
L2正則化
L2正則損失會(huì)對(duì)大數(shù)值的權(quán)值進(jìn)行嚴(yán)厲懲罰,鼓勵(lì)分散權(quán)重馅闽,會(huì)讓模型泛化性能更好飘蚯。
使分界面不會(huì)過(guò)于復(fù)雜,也就是考慮大部分?jǐn)?shù)據(jù)的情況福也。
隨機(jī)失活(Dropout):跟L2正則損失的目的都是鼓勵(lì)權(quán)重分散局骤。
讓隱層的神經(jīng)元以一定的概率不被激活。也就是將某一層的一些輸出舍棄(輸出值設(shè)置成0)
隨機(jī)失活比率:指被設(shè)置成0的神經(jīng)元所占的比例暴凑,通常設(shè)定為0.2-0.5范圍內(nèi)峦甩。
隨機(jī)失活能夠防止過(guò)擬合的原因
解釋①:每次更新梯度的時(shí)候參與計(jì)算的網(wǎng)絡(luò)參數(shù)減少了悍汛,也就是模型容量降低了。
解釋②:隨機(jī)失活鼓勵(lì)權(quán)重分散吟税,從這個(gè)角度來(lái)看隨機(jī)失活就起到了正則化的作用磕诊。
解釋③:Dropout可以看成是模型集成。(也就是多個(gè)小型網(wǎng)絡(luò)綜合集成的輸出)
隨機(jī)失活的應(yīng)用
三層神經(jīng)網(wǎng)絡(luò)Python代碼
生成一個(gè)mask矩陣(U1)冰单,也就是隨機(jī)失活用的矩陣幌缝,里面的值是0或者是1,讓U1和H1相乘诫欠,就相當(dāng)于讓H1的相應(yīng)位置失活涵卵。
但是由于測(cè)試階段和訓(xùn)練階段的不同,需要在測(cè)試階段的計(jì)算中乘以P來(lái)保證測(cè)試和訓(xùn)練結(jié)果的一致性荒叼。
為了方便編輯代碼轿偎,在訓(xùn)練過(guò)程的代碼編寫(xiě)時(shí)就直接除以P。
也就是直接在U1被廓、U2的結(jié)尾除以P坏晦。這樣的好處就是把U1直接當(dāng)成一個(gè)層,輸入是H1嫁乘,輸出的時(shí)候也是H1昆婿,這樣就達(dá)到了隨機(jī)失活的目的。
神經(jīng)網(wǎng)絡(luò)中超參數(shù)
超參數(shù):
①網(wǎng)絡(luò)結(jié)構(gòu)---隱層神經(jīng)元個(gè)數(shù)亦渗,網(wǎng)絡(luò)層數(shù)挖诸,非線性單元選擇等
②優(yōu)化相關(guān)---學(xué)習(xí)率、dropout比率法精、正則項(xiàng)強(qiáng)度等
(需要神經(jīng)網(wǎng)絡(luò)自己學(xué)習(xí)的是參數(shù)多律,人為設(shè)置的是超參數(shù))
學(xué)習(xí)率(梯度調(diào)節(jié)中的步長(zhǎng))
(記憶的時(shí)候結(jié)合二維圖)
如何設(shè)置學(xué)習(xí)率
方法一:? t為迭代次數(shù),當(dāng)?shù)螖?shù)增加的時(shí)候搂蜓,會(huì)慢慢那變小狼荞,這樣啟動(dòng)的時(shí)候步長(zhǎng)大,等到了學(xué)習(xí)后期就步長(zhǎng)就會(huì)變小帮碰。
方法二:手動(dòng)設(shè)置學(xué)習(xí)率相味。
如何找到一個(gè)較好的初始超參數(shù)
方法一(網(wǎng)格搜索法):
①每個(gè)超參數(shù)分別取幾個(gè)值,組合這些超參數(shù)值殉挽,形成多組超參數(shù)丰涉;
②在驗(yàn)證集上評(píng)估每組超參數(shù)的模型性能;
③選擇性能最優(yōu)的模型所采用的那組值作為最終的超參數(shù)的值斯碌。
方法二(隨機(jī)搜索法) ? ?? 更常用R凰馈!I低佟投慈!:
①參數(shù)空間內(nèi)隨機(jī)取點(diǎn)承耿,每個(gè)點(diǎn)對(duì)應(yīng)一組超參數(shù);
②在驗(yàn)證集上評(píng)估每組超參數(shù)的模型性能伪煤;
③選擇性能最優(yōu)的模型所采用的那組值作為最終的超參數(shù)的值加袋。
同樣的9組實(shí)驗(yàn),網(wǎng)格搜索只評(píng)測(cè)了三個(gè)學(xué)習(xí)率抱既,但是隨機(jī)搜索法評(píng)測(cè)了9個(gè)學(xué)習(xí)率职烧,不會(huì)浪費(fèi)在不重要的超參數(shù)上。
在使用隨機(jī)搜索法的時(shí)候防泵,先粗略的搜索阳堕,找到一些比較好的點(diǎn),然后再精確搜索择克。
超參數(shù)的標(biāo)尺空間
[0.0001---1]
在學(xué)習(xí)率、正則項(xiàng)強(qiáng)度這類超參數(shù)的采樣時(shí)前普,在對(duì)數(shù)空間上進(jìn)行隨機(jī)采樣更合適肚邢。因?yàn)?b>對(duì)數(shù)空間尺度分布的更均勻。
卷積與圖像去噪
一般的去噪方式是加權(quán)求平均拭卿。
這個(gè)過(guò)程就是對(duì)這個(gè)像素點(diǎn)的卷積操作骡湖。通常會(huì)將它們存放在一個(gè)模板里面,這個(gè)模板就叫卷積核(濾波和)峻厚。這個(gè)卷積核主要記錄的就是權(quán)值响蕴。
卷積
令F為圖像,H為卷積核惠桃,F(xiàn)與H的卷積記為R=F*H
減號(hào)的意義就代表著先將模板旋轉(zhuǎn)180°以后再進(jìn)行操作浦夷。
卷積的性質(zhì)
疊加性
平移不變性(所有的平移都可以用卷積來(lái)實(shí)現(xiàn))
邊界填充
零填充(邊界會(huì)成為黑色),像素拉伸辜王,鏡像(將圖像左邊的圖像鏡像到右邊)
填充的大小跟模板的大小有關(guān)系
卷積操作后的圖像要小于輸入時(shí)的圖像劈狐,通過(guò)邊界填充,我們可以實(shí)現(xiàn)卷積前后圖像的尺寸不變呐馆。
最常用的邊界填充就是---邊界填充肥缔。
通過(guò)卷積進(jìn)行圖像的平移。
圖像會(huì)變的平滑汹来。平滑的作用是去噪续膳。
圖像會(huì)得到銳化處理,中心以外的權(quán)值會(huì)成為-1/9.
卷積是圖像處理中非呈瞻啵基礎(chǔ)的一個(gè)操作坟岔,但是它也可以對(duì)圖像進(jìn)行很多的操作,比如平移闺阱,平滑炮车,銳化等。
高斯卷積核
平均卷積核會(huì)產(chǎn)生一些水平或豎直方向的條狀,這就是振鈴現(xiàn)象瘦穆。
解決這一問(wèn)題的方法就是:跟據(jù)領(lǐng)域像素與中心的遠(yuǎn)近程度分配權(quán)重纪隙。
越靠近中心就越大,越遠(yuǎn)離中心就越小扛或。
生成高斯卷積核的步驟:
①確定卷積核的尺寸绵咱,比如5×5
②設(shè)置高斯函數(shù)標(biāo)準(zhǔn)差。比如=1
③計(jì)算卷積核各個(gè)位置的權(quán)重值(以中心為0.0熙兔,分為X軸和Y軸)
④對(duì)權(quán)重值進(jìn)行歸一化(將所有的權(quán)值的總和為1)悲伶,進(jìn)行權(quán)重歸一化以后,所有像素都不會(huì)發(fā)生變化住涉。
如何設(shè)置下述參數(shù):
①卷積核的尺寸
窗寬越小麸锉,中心值越大,平滑效果越弱舆声。
窗寬越大花沉,中心值越小,平滑效果越強(qiáng)媳握。
②高斯函數(shù)的標(biāo)準(zhǔn)差
方差越小碱屁,平滑效果越弱。
方差越大蛾找,越容易收到周邊像素的影響娩脾,平滑的效果越明顯。
經(jīng)驗(yàn)法則:將卷積核的半窗寬度設(shè)置為打毛,最終卷積模板尺寸為柿赊。
例子:標(biāo)準(zhǔn)差為1的時(shí)候,卷積模板寬度=2*3*1+1=7
這個(gè)時(shí)候歸一化的影響就沒(méi)有那么大了幻枉。
特點(diǎn):
①去除圖像中“高頻”成分(低通濾波器)
②兩個(gè)卷積核卷積后得到的還是高斯卷積核
→使用多次小方差卷積核連續(xù)卷積闹瞧,可以得到與大方差卷積核相同的結(jié)果。
→使用標(biāo)準(zhǔn)差為的高斯核進(jìn)行兩次卷積與使用標(biāo)準(zhǔn)差的高斯核進(jìn)行一次卷積相同展辞。
③可分離:可分解為兩個(gè)一維高斯的乘積奥邮。
卷積操作運(yùn)算量
例①:用尺寸為mm的卷積核卷積一個(gè)尺寸為nn的圖像,其計(jì)算復(fù)雜度是多少罗珍?
答:
因?yàn)榫矸e相加不增加復(fù)雜度洽腺,所以分離開(kāi)進(jìn)行計(jì)算的復(fù)雜度降低了。
例②:如果核可以分離呢覆旱?
答:
將7*7的模板分解成1*7和7*1的模板
圖像噪聲與中值濾波器
椒鹽噪聲:黑色像素和白色像素隨機(jī)出現(xiàn)
脈沖噪聲:白色像素隨機(jī)出現(xiàn)
高斯噪聲:噪聲強(qiáng)度變化服從高斯分布(正態(tài)分布)
高斯噪聲上的每一個(gè)像素點(diǎn)都是由理想圖像加隨機(jī)噪聲蘸朋。這個(gè)噪聲的分布通常μ=0,很小扣唱。
上面是高斯噪聲的方差藕坯,右邊是卷積核的方差团南。
當(dāng)高斯噪聲較大的時(shí)候,需要使用方差較大的卷積模板炼彪,但這個(gè)時(shí)候會(huì)使圖像過(guò)于平滑吐根。
椒鹽噪聲和脈沖噪聲無(wú)法通過(guò)高斯卷積核去除噪聲,應(yīng)該使用中值濾波器辐马。
中值濾波的是將它與周圍的所有值都拿出來(lái)重新排序拷橘,然后將中值替代原圖的值。
高斯濾波因?yàn)槭墙?jīng)過(guò)加權(quán)求和的喜爷,所以稱之為線性濾波器冗疮。
卷積與邊緣提取
邊緣:圖像中亮度明顯而急劇變化的點(diǎn)
為什么要研究邊緣?
→編碼圖像中的語(yǔ)義與形狀信息
→相對(duì)于像素表示檩帐,邊緣顯示顯然更加緊湊
邊緣的種類
邊緣就是明暗急劇變化的點(diǎn)术幔,也就是導(dǎo)數(shù)的極值。在圖像中可以用卷積求偏導(dǎo)湃密。
對(duì)X求偏導(dǎo)的卷積模板的-1 1就是用右邊的像素減去原像素特愿。
對(duì)Y求偏導(dǎo)的卷積模板就是用下面的像素點(diǎn)減去原像素點(diǎn)的值。
左邊的圖是對(duì)X求偏導(dǎo)的結(jié)果勾缭,因?yàn)閷?duì)X求偏導(dǎo)的時(shí)候Y方向上是沒(méi)有區(qū)別的。
右邊的圖是對(duì)Y求偏導(dǎo)的結(jié)果目养,因?yàn)閷?duì)Y求偏導(dǎo)的時(shí)候X方向上是沒(méi)有區(qū)別的俩由。
圖像梯度
梯度只想灰度變換最快的方向(與信號(hào)方向垂直),一般由暗的地方指向亮的地方癌蚁。
第四張圖是梯度模值幻梯,模值一般就是邊緣。
在實(shí)際處理的時(shí)候應(yīng)該先平滑再求導(dǎo)努释,但是為了方便計(jì)算碘梢,一般講求導(dǎo)和平滑結(jié)合,事先利用高斯卷積降噪的時(shí)候直接求導(dǎo)伐蒂,得到一階高斯模板煞躬。
高斯一階方差中,參數(shù)會(huì)影響結(jié)果逸邦。
小方差提取的是小顆粒恩沛,細(xì)節(jié)特征。
大方差提取的是大顆粒缕减,粗狂輪廓雷客。
在邊緣提取時(shí),如果碰到漸變邊桥狡,提取的梯度強(qiáng)度的輪廓線會(huì)非常粗搅裙,需要使用非極大值抑制方法來(lái)修改皱卓。
在梯度強(qiáng)度的線上取點(diǎn),如果:
p點(diǎn)的梯度強(qiáng)度>q點(diǎn)的強(qiáng)度并且p點(diǎn)的強(qiáng)度大于r點(diǎn)的強(qiáng)度部逮。就保留p點(diǎn)娜汁,否則刪除p點(diǎn)。?
這個(gè)門(mén)限過(guò)高會(huì)缺少邊緣甥啄,門(mén)限過(guò)低的話會(huì)有過(guò)多的邊緣存炮。所以在確定門(mén)限的時(shí)候需要使用雙閾值。
總結(jié)canny邊緣檢測(cè)器:
①用高斯一階偏導(dǎo)核卷積圖像
②計(jì)算每個(gè)點(diǎn)的梯度幅值和方向
③非極大抑制:將寬的“邊緣”細(xì)化至單個(gè)像素寬度
④連接與閾值(滯后):定義兩個(gè)閾值:低閾值和高閾值蜈漓,使用高閾值開(kāi)始邊緣曲線穆桂,使用低閾值繼續(xù)邊緣曲線。
紋理表示
紋理分為:規(guī)則紋理融虽,隨即紋理享完。
基于卷積核組的紋理表示方法。
思路:利用卷積核組提取圖像中的紋理基有额;利用基元的統(tǒng)計(jì)信息來(lái)表示圖像中的紋理般又。
①設(shè)計(jì)卷積核組
②利用卷積核組對(duì)圖像進(jìn)行卷積操作獲得對(duì)應(yīng)的特征響應(yīng)圖組
③利用特征響應(yīng)圖的某種統(tǒng)計(jì)信息來(lái)表示圖像中的紋理
第一個(gè)是Y方向的紋理多,第二個(gè)是斜方向的紋理多巍佑,第三個(gè)是圓形的紋理多茴迁。
關(guān)鍵在于設(shè)計(jì)卷積核組。
①卷積核類型(邊緣萤衰、條形以及點(diǎn)狀)
②卷積核尺度(3-6個(gè)尺度)
③卷積核方向(6個(gè)角度)
卷積神經(jīng)網(wǎng)絡(luò)所學(xué)習(xí)的卷積會(huì)代替原本人為設(shè)定的卷積核組堕义,產(chǎn)生新的特征響應(yīng)圖。
假設(shè)一個(gè)圖像左上角經(jīng)過(guò)卷積核組(48個(gè)基元)卷積之后脆栋,得到了48個(gè)特征響應(yīng)圖倦卖,第三個(gè)響應(yīng)結(jié)果比較大,表示存在這個(gè)基元所描述的邊椿争。
特征響應(yīng)圖的均值用向量表示怕膛,這就為卷積和全連接神經(jīng)網(wǎng)絡(luò)相聯(lián)系做了鋪墊。
卷積神經(jīng)網(wǎng)絡(luò)
全連接神經(jīng)網(wǎng)絡(luò)的瓶頸
它不能對(duì)很大的圖像進(jìn)行操作秦踪,它只適合處理小圖像或是處理之后的向量褐捻。
卷積神經(jīng)網(wǎng)絡(luò)的做法:用48個(gè)卷積核(濾波器核)把圖像卷積以后,用得到的特征圖的均值來(lái)代表圖像椅邓,得到48個(gè)向量舍扰,48個(gè)向量當(dāng)做輸入來(lái)訓(xùn)練。
也就是把卷積結(jié)果卷成向量當(dāng)成輸入希坚,進(jìn)行分類边苹。這樣整個(gè)系統(tǒng)的模型就會(huì)比較小,學(xué)習(xí)的內(nèi)容是這些卷積核組裁僧。
圖像→卷積核組→48維向量→全連接神經(jīng)網(wǎng)絡(luò)分類个束。
卷積神經(jīng)網(wǎng)絡(luò)一般分為
CONV---卷積層
RELU---計(jì)劃層
POOL---池化層
FC---全連接層
CONV慕购、RELU、POOL組成了卷積核茬底,F(xiàn)C是卷積神經(jīng)網(wǎng)絡(luò)沪悲。
卷積網(wǎng)絡(luò)中的卷積核
不僅有寬和高,還有深度阱表,通暢寫(xiě)成:長(zhǎng)度×寬度×深度殿如。
卷積操作計(jì)算過(guò)程:將卷積核展開(kāi)成5×5×3的向量,覆蓋在圖像區(qū)域的5×5×3向量最爬,()卷積核組的深度跟圖像色素的深度應(yīng)該是統(tǒng)一的)涉馁。計(jì)算兩者的點(diǎn)乘,最后在點(diǎn)乘的結(jié)果上加上偏移量爱致。
也就是:
其中w為卷積核的權(quán)值烤送,b為卷積核的偏置
在卷積的過(guò)程中,使用多少個(gè)卷積核就得到多少個(gè)特征響應(yīng)圖糠悯。也就是特征響應(yīng)圖組深度等于卷積核的個(gè)數(shù)帮坚。
不同的特征響應(yīng)圖反映了輸入圖像對(duì)不同卷積核的相應(yīng)結(jié)果。(多少個(gè)不同的卷積核由人為設(shè)定)
同一特征響應(yīng)圖上不同位置的值表示輸入圖像上不同位置對(duì)同一卷積核的響應(yīng)結(jié)果互艾。
卷積步長(zhǎng)
卷積神經(jīng)網(wǎng)絡(luò)中试和,卷積核可以按照指定的間隔進(jìn)行卷積操作,這個(gè)間隔就是卷積步長(zhǎng)纫普。
在無(wú)邊界填充時(shí)
輸入數(shù)據(jù)矩陣尺寸:W1×H1
輸出特征圖組尺寸:W2×H2
W2與W1的關(guān)系如下:
W2=(W1-F)/S+1
H2=(H1-F)/S+1
其中? F-卷積核尺寸阅悍,S-卷積步長(zhǎng)。
邊界填充
W2=(W1-F+2P)/S+1
H2=(H1-F+2P)/S+1
F-卷積核尺寸局嘁,S-卷積步長(zhǎng),P-零填充數(shù)量
所以影響特征圖組尺寸大小的因素:
①卷積核的寬晦墙、高悦昵。
②是否采用邊界填充。
③卷積步長(zhǎng)晌畅。
④該層卷積核的個(gè)數(shù)但指。
池化操作
池化的作用:
①對(duì)每一個(gè)特征響應(yīng)圖獨(dú)立進(jìn)行,降低特征響應(yīng)圖中每個(gè)特征響應(yīng)圖的寬度和高度(就是把特征圖的尺寸變锌剐ā)棋凳,減少后續(xù)卷積層的參數(shù)的數(shù)量,降低計(jì)算資源耗費(fèi)连躏,進(jìn)而控制過(guò)擬合剩岳。
②縮小特征圖(池化)還有另一優(yōu)點(diǎn),能讓卷積核具有更大的視野入热。
池化操作:對(duì)特征響應(yīng)圖某個(gè)區(qū)域進(jìn)行池化就是在該區(qū)域上指定一個(gè)值來(lái)代表整個(gè)區(qū)域拍棕。
下采樣就是池化操作舶胀,常見(jiàn)的池化操作:
①最大池化—區(qū)域內(nèi)的最大值來(lái)代表區(qū)域栓票。
②平均池化—區(qū)域內(nèi)所有值的均值為代表。
③在上述兩種池化都不行的時(shí)候可以進(jìn)行金字塔池化。
④雙線性池化主要用于細(xì)粒度分類網(wǎng)絡(luò)奋构,用于特征融合
在淺層網(wǎng)絡(luò)中,最好使用最大池化挨决。
最大池化可以理解為非最大值抑制敦锌,在這個(gè)過(guò)程中會(huì)丟掉75%的相應(yīng)信息,但不改變特征響應(yīng)圖的個(gè)數(shù)谬泌。
池化層的超參數(shù):池化窗口和池化步長(zhǎng)滔韵。
卷積神經(jīng)網(wǎng)絡(luò)的損失函數(shù)&優(yōu)化算法
損失函數(shù):交叉熵?fù)p失
優(yōu)化算法:SGD、帶動(dòng)量的SGD以及ADAM
訓(xùn)練過(guò)程中的樣本增強(qiáng)技術(shù)
存在的問(wèn)題:過(guò)擬合的原因是學(xué)習(xí)樣本太少呵萨,導(dǎo)致無(wú)法訓(xùn)練出能夠泛化到新數(shù)據(jù)的模型奏属。
數(shù)據(jù)增強(qiáng):是從現(xiàn)有的訓(xùn)練樣本中生成更多的訓(xùn)練數(shù)據(jù),其方法是利用多種能夠生成可信圖像的隨機(jī)變換來(lái)增加樣本潮峦。
數(shù)據(jù)增強(qiáng)的目標(biāo):模型在訓(xùn)練時(shí)不會(huì)兩次查看完全相同的圖像囱皿。這讓模型能夠觀察到數(shù)據(jù)的更多內(nèi)容,從而具有更好的泛化能力忱嘹。
樣本增強(qiáng)的方法:
鏡像(翻轉(zhuǎn))
隨機(jī)縮放&摳圖
色彩抖動(dòng)
以及隨機(jī)聯(lián)合下列操作:
平移嘱腥、旋轉(zhuǎn)、拉伸拘悦、徑向畸變齿兔、裁剪等。
經(jīng)典網(wǎng)絡(luò)解析
AlexNet(8層的神經(jīng)網(wǎng)絡(luò))
ZFNet
VGG(16層的神經(jīng)網(wǎng)絡(luò))
GoogleNet(22層的神經(jīng)網(wǎng)絡(luò))
ResNet(152層的神經(jīng)網(wǎng)絡(luò))
層數(shù)統(tǒng)計(jì)說(shuō)明:
①統(tǒng)計(jì)層數(shù)的時(shí)候只統(tǒng)計(jì)卷積層和全連接層础米。
②池化層與各種歸一化層都是對(duì)它們前面卷積層輸出的特征圖進(jìn)行后處理分苇,不單獨(dú)算作一層。
AlexNet
它具有五個(gè)卷積層(CONV1-CONV5)屁桑,三個(gè)池化層医寿,兩個(gè)局部歸一化層,三個(gè)全連接層(FC6-FC8)蘑斧。
第一層(CONV1):96個(gè)11×11卷積核靖秩,步長(zhǎng)為4,沒(méi)有領(lǐng)填充竖瘾。
問(wèn)題:輸入227×227×3大小的圖像沟突,輸出特征圖個(gè)數(shù)及尺寸為多少?
尺寸:(227-11)/4 + 1 = 55
個(gè)數(shù):卷積核的個(gè)數(shù) 96
問(wèn)題:第一層有多少個(gè)參數(shù)捕传?
參數(shù):(11×11×3 + 1) × 96 = 35K
AlexNet網(wǎng)絡(luò)輸入問(wèn)題:是將所有模板向量去均值以后作為輸入惠拭。
MAX POOL1:窗口大小3×3,步長(zhǎng)為2庸论。(有重疊求橄,用于對(duì)抗過(guò)擬合今野,對(duì)抗輕微的目標(biāo)偏移帶來(lái)的影響)
輸出尺寸:(55-3)/2 +1 = 27
特征圖個(gè)數(shù): 96
參數(shù)個(gè)數(shù):0
局部響應(yīng)歸一化層(NORM1)的作用?
①對(duì)局部神經(jīng)元的活動(dòng)創(chuàng)建競(jìng)爭(zhēng)機(jī)制;
②響應(yīng)比較大的值變得相對(duì)更大罐农;
③抑制其他反饋較小的神經(jīng)元条霜;
④增強(qiáng)模型的泛化能力。
但是后來(lái)的研究表明:更深的網(wǎng)絡(luò)中該層對(duì)分類性能的提升效果并不明顯涵亏,且會(huì)增加計(jì)算量與存儲(chǔ)空間宰睡。
第二層(CONV2):256個(gè)5×5的卷積核,步長(zhǎng)為1气筋,使用零填充P=2
問(wèn)題:輸入27×27×96大小的特征圖組拆内,輸出特征圖個(gè)數(shù)及尺寸為多少?
尺寸:(27-5+2×2)/1 + 1=27
個(gè)數(shù):256
參數(shù):(5×5×96+1)×256
在第二層增大了卷積核以后就增大了感受野宠默。
第三麸恍、四層(CONV3、CONV4):384個(gè)3×3卷積核搀矫,步長(zhǎng)為1抹沪,使用零填充P=1
問(wèn)題:CONV3輸入:13×13×256大小的特征圖組,輸出特征圖個(gè)數(shù)及尺寸為多少瓤球。
尺寸:(13-3+2*1)/1+1=13
個(gè)數(shù):384
在第三層和第四層之間沒(méi)有進(jìn)行最大池化與局部歸一化融欧。
第五層(CONV5):256個(gè)3×3卷積核,步長(zhǎng)為1卦羡,使用領(lǐng)填充p=1
在第五層之后使用最大池化層來(lái)進(jìn)一步縮小特征圖尺寸噪馏。
在池化層之后輸出的結(jié)果是6×6×256的矩陣。
第六—八層(FC6绿饵、FC7欠肾、FC8):全連接神經(jīng)網(wǎng)絡(luò)分類器
由于全連接神經(jīng)網(wǎng)絡(luò)的輸入是需要向量形式,所以將6×6×256的矩陣?yán)L(zhǎng)為9216維的向量對(duì)FC6進(jìn)行輸入拟赊。
重要說(shuō)明
→用于提取圖像特征的卷積層以及分類的全連接層是同時(shí)學(xué)習(xí)的刺桃;
→卷積層與全連接層在學(xué)習(xí)過(guò)程中會(huì)相互影響、相互促進(jìn)
重要技巧
→Dropout防止過(guò)擬合要门;
→使用加入動(dòng)量的隨機(jī)梯度下降算法虏肾,加速收斂廓啊;
→驗(yàn)證集損失不下降時(shí)欢搜,手動(dòng)降低10倍的學(xué)習(xí)率;
→采用樣本增強(qiáng)策略增加訓(xùn)練樣本數(shù)量谴轮,防止過(guò)擬合炒瘟;
→集成多個(gè)模型,進(jìn)一步提高精度第步。(但凡集成疮装,通常都能提高精度)
問(wèn)題:AlexNet卷積層在做什么缘琅?
從數(shù)據(jù)中心學(xué)習(xí)了一系列的超級(jí)卷積核組,這些卷積核都有明確的語(yǔ)義廓推,這些超級(jí)卷積核都能得到相應(yīng)的特征響應(yīng)圖刷袍,將每個(gè)特征向量圖都拉成向量作為全連接神經(jīng)網(wǎng)絡(luò)的輸入。
ZFNet
其結(jié)構(gòu)與AlexNet基本一致
主要改進(jìn):
→將第一個(gè)卷積層的卷積核大小改為7×7樊展;
(能感受更加細(xì)膩的東西)
→將第二呻纹、第三個(gè)卷積層的卷積步長(zhǎng)都設(shè)置為2;
(不會(huì)讓圖像的尺寸降的太快专缠,防止圖像信息損失太多)
→增加了第三雷酪、第四個(gè)卷積層的卷積核個(gè)數(shù)。
VGG的貢獻(xiàn):
→使用尺寸更小的3×3卷積核串聯(lián)來(lái)獲得更大的感受野涝婉;
(三個(gè)3×3的卷積核串聯(lián)卷積一次以后就相當(dāng)于7×7的卷積核卷積一次)
→放棄使用11×11和5×5這樣的大尺寸卷積核哥力;
→深度更深、非線性更強(qiáng)墩弯,網(wǎng)絡(luò)的參數(shù)也更少
→去掉了AlexNet中的局部響應(yīng)歸一化層(LRN)層
VGG的預(yù)處理與AlexNet不同吩跋,唯一的預(yù)處理就是:基于整個(gè)訓(xùn)練集計(jì)算?RGB?的均值,然后每個(gè)像素節(jié)點(diǎn)上減去該均值最住。
VGG16
→13個(gè)卷積層與3個(gè)全連接
→分為5段conv1钞澳,···,conv5涨缚,每一段中卷積層的卷積核個(gè)數(shù)均相同轧粟。
→所有卷積層均采用3×3的卷積核及ReLU激活函數(shù)
→池化層均采用最大池化,其窗口大小為2×2脓魏、步長(zhǎng)為2
→經(jīng)過(guò)一次池化操作兰吟,其后卷積層的卷積核個(gè)數(shù)就增加一倍,直至達(dá)到512(在前面卷積核中學(xué)習(xí)的只是點(diǎn)線的基元茂翔,沒(méi)必要學(xué)習(xí)那么多的基元)
→VGG也使用了Dropout策略
思考
問(wèn)1:小卷積核的優(yōu)勢(shì)混蔼?
答:多個(gè)小尺寸卷積核串聯(lián)可以得到與大尺寸卷積核相同的感受野。(經(jīng)過(guò)串聯(lián)珊燎,進(jìn)行了兩次非線性變換惭嚣,,網(wǎng)絡(luò)深度根深悔政,非線性更強(qiáng)晚吞,描述能力更強(qiáng))
問(wèn)2:為什么VGGNet中每一次池化后,卷積核的數(shù)量都增加一倍谋国?
答:
①池化操作可以減小特征圖尺寸槽地,降低顯存占用
②增加卷積核個(gè)數(shù)有助于學(xué)習(xí)更多的結(jié)構(gòu)特征,但會(huì)增加網(wǎng)絡(luò)參數(shù)數(shù)量以及內(nèi)存消耗
③一減一增的設(shè)計(jì)平衡了識(shí)別精度與存儲(chǔ)、計(jì)算開(kāi)銷
問(wèn)3:為什么卷積核個(gè)數(shù)增加到512后就不在增加了
答:
①第一個(gè)全連接層含102M參數(shù)捌蚊,占總參數(shù)個(gè)數(shù)的74%集畅;(再增加的話權(quán)值就太多了,參數(shù)無(wú)法設(shè)置了缅糟,無(wú)法學(xué)習(xí)了)
②這一層的參數(shù)個(gè)數(shù)是特征圖的尺寸與個(gè)數(shù)的乘積
③參數(shù)過(guò)多容易過(guò)擬合挺智。
GoogleNet
創(chuàng)新點(diǎn):
→提出了一種Inception結(jié)構(gòu),它能保留輸入信號(hào)中的更大特征信息窗宦;
→去掉了AlexNet的前兩個(gè)全連接層逃贝,并采用了平均池化,這一設(shè)計(jì)是的GoogleNet只有500萬(wàn)參數(shù)迫摔,比AlexNet少了12倍沐扳。
→在網(wǎng)絡(luò)的中部引入了輔助分類器,克服了訓(xùn)練過(guò)程中的梯度消失問(wèn)題句占。
串聯(lián)結(jié)構(gòu)(如VGG)存在的問(wèn)題—后面的卷積層只能處理千層輸出的特征圖沪摄;前層因某些原因(比如感受野受限)丟失重要信息,后層無(wú)法找回纱烘。
解決方案—每一層盡量多的保留輸入信號(hào)中的信息
Inception模塊
1×1只改變深度信號(hào)(進(jìn)行壓縮保留)杨拐,3×3小感受野(局部結(jié)構(gòu)信息),5×5大感受野
3×3的maxpooling相當(dāng)于對(duì)一個(gè)區(qū)域進(jìn)行增強(qiáng)
然后將他們輸出的結(jié)果按深度方向拼湊起來(lái)
通過(guò)1×1的卷積層改變深度擂啥,再進(jìn)行3×3哄陶、5×5的卷積操作
通過(guò)加入1×1的卷積操作,降低了計(jì)算量哺壶,這樣就跟VGGNet一樣了屋吨。
優(yōu)點(diǎn):層數(shù)更深、參數(shù)更少山宾、計(jì)算效率更高至扰、非線性表達(dá)能力也更強(qiáng)
ResNet
當(dāng)網(wǎng)絡(luò)過(guò)深的時(shí)候,深層網(wǎng)絡(luò)反而比淺層網(wǎng)絡(luò)錯(cuò)誤率高资锰。原因就是訓(xùn)練過(guò)程中網(wǎng)絡(luò)的正敢课、反向信息流動(dòng)不順暢,網(wǎng)絡(luò)沒(méi)有被充分訓(xùn)練绷杜。
ResNet具有以下共享:
→提出了一種殘差模塊(恒等映射結(jié)構(gòu))直秆,通過(guò)堆疊殘差模塊可以構(gòu)建任意深度的神經(jīng)網(wǎng)絡(luò),而不會(huì)出現(xiàn)“退化”現(xiàn)象鞭盟。
→提出批歸一化方法來(lái)對(duì)抗梯度消失圾结,該方法降低了網(wǎng)絡(luò)訓(xùn)練過(guò)程對(duì)權(quán)重初始化的依賴。
→提出了一種針對(duì)ReLU激活函數(shù)的初始化方法)
因此研究者在設(shè)計(jì)的時(shí)候考慮到如何在向上堆積鋅層來(lái)建立更深的網(wǎng)絡(luò)懊缺,使其滿足即使不能提升淺層網(wǎng)絡(luò)的性能疫稿,深層網(wǎng)絡(luò)也不應(yīng)降低性能。
解決方案:殘差模塊
假設(shè)卷積層學(xué)習(xí)的變換為F(X)鹃两,殘差結(jié)構(gòu)的輸出為H(X)遗座,則有
? ? ? ? ? ? ? ? ? H(X) = F(X) + X
? ? ? ? ? ? ? ? ? F(X) = H(X) - X
? ? ? ? ? ? ? ? ? ??殘差? ? =? ?輸出 - 輸入
這樣的作用就是即使F(X)什么都不做,只是單純的傳遞X俊扳,這樣性能至少不會(huì)下降途蒋。
在回傳的過(guò)程中,可以從X通道返回(跳遠(yuǎn)連接)馋记,X通道的梯度永遠(yuǎn)為1号坡,保證反向梯度流的通順。
“瓶頸”結(jié)構(gòu)殘差模塊
第一個(gè)1×1卷積是降低深度梯醒,減少計(jì)算量宽堆,第二個(gè)1×1卷積是提高深度,保證它與跳躍連接的深度相同茸习。
ResNet的網(wǎng)絡(luò)結(jié)構(gòu)
問(wèn)題:為什么殘差網(wǎng)絡(luò)性能這么好畜隶?
殘差網(wǎng)絡(luò)可以看做是一種集成模型
在去掉其中一部分分支以后不影響運(yùn)算結(jié)果,說(shuō)明這是一種集成模型号胚。但是這種投票性質(zhì)的網(wǎng)絡(luò)結(jié)構(gòu)也有弊端籽慢,會(huì)有一些冗余,浪費(fèi)了計(jì)算資源猫胁。
視覺(jué)識(shí)別任務(wù)
→分類(不考慮空間位置)
→語(yǔ)義分割(像素的類別)
→目標(biāo)檢測(cè)(多目標(biāo))
→實(shí)例分割(多目標(biāo))
語(yǔ)義分割思路:全卷積
解決方案箱亿,讓整個(gè)網(wǎng)絡(luò)只包含卷積層,一次性輸出所有像素的類別預(yù)測(cè)弃秆。
雖然能解決計(jì)算問(wèn)題届惋,但是如果在處理過(guò)程中一直保持原始分辨率的話,對(duì)于顯存的需求會(huì)非常龐大
解決的方法就是:還是讓整個(gè)網(wǎng)絡(luò)只包含卷積層菠赚,但是在網(wǎng)絡(luò)中嵌入下采樣(降低尺寸)與上采樣(提高尺寸)過(guò)程盼樟。
其中上采樣過(guò)程使用的方法是:
反池化操作(Unpooling)
近鄰采樣
釘床采樣?
index
在進(jìn)行下采樣(池化)操作時(shí),需要記住他最大值的位置锈至,在反池化操作(Max Unpooling)時(shí)晨缴,將該值填回相應(yīng)位置。
上述三種方法并不常用
常用的為可學(xué)習(xí)的上采樣:轉(zhuǎn)置卷積(Transpose Convolution)
在上采樣的過(guò)程中峡捡,不僅僅只有A击碗、B的值參與了計(jì)算,還有x们拙、y稍途、z參與在其中。神經(jīng)網(wǎng)絡(luò)可以不斷的通過(guò)學(xué)習(xí)調(diào)整x砚婆、y械拍、z的值突勇。?
下采樣過(guò)程
在a向量中補(bǔ)零是因?yàn)榇嬖诹闾畛鋚=1。
尺寸為3坷虑,就有x甲馋、y、z迄损。步長(zhǎng)為1定躏,每次錯(cuò)開(kāi)1位
上采樣過(guò)程
將卷積核轉(zhuǎn)置之后,與低維向量相乘芹敌,就會(huì)實(shí)現(xiàn)上采樣的操作痊远。在上采樣的過(guò)程中,x氏捞、y碧聪、z是可以通過(guò)不斷的學(xué)習(xí)進(jìn)行修正的。
在做決定的時(shí)候用UNET網(wǎng)絡(luò)液茎。
將下采樣之前的特征圖與上采樣之后的特征圖進(jìn)行結(jié)合矾削,這樣這個(gè)特征圖組就既有升級(jí)來(lái)的特征,也有原始的特征豁护。
目標(biāo)檢測(cè):不光告訴我們圖像中有什么(標(biāo)簽)哼凯,還要表明這些標(biāo)簽的位置。
3铩6喜俊!班缎!單目標(biāo):狻!4镏贰蔑祟!
單目標(biāo)檢測(cè)就是分類+定位
綜合來(lái)看就是多任務(wù)損失:一個(gè)是種類損失,一個(gè)是位置損失沉唠。
倒數(shù)第二層分為兩個(gè)向量:一個(gè)向量說(shuō)明圖像的種類疆虚,一個(gè)向量說(shuō)明包裹目標(biāo)的邊界核的位置(x、y是說(shuō)中心位置(有時(shí)候也指的左上角)满葛,w径簿、h指的是寬高)。
L2損失:
將L2損失和Softmax損失相加得到一個(gè)總損失嘀韧。
這個(gè)網(wǎng)絡(luò)的目標(biāo)就是降低總損失篇亭。
也可以設(shè)定權(quán)值,來(lái)改變softmax和L2在總損失中所占的比重锄贷。(來(lái)決定誰(shuí)是占主導(dǎo)的)
一般不從頭開(kāi)始訓(xùn)練译蒂,通常使用在ImageNet上訓(xùn)練好的模型(遷移學(xué)習(xí))曼月,在位置的損失上該網(wǎng)絡(luò)是沒(méi)有學(xué)習(xí)的,除此之外網(wǎng)絡(luò)是已經(jīng)訓(xùn)練好的柔昼,讓網(wǎng)絡(luò)學(xué)習(xí)定位(也就是找一個(gè)已經(jīng)訓(xùn)練好的模型哑芹,訓(xùn)練倒數(shù)第二層和定位的關(guān)系就行)。
等第二階段訓(xùn)練完以后將所有的參數(shù)都打開(kāi)岳锁。再訓(xùn)練使總損失降低。
當(dāng)多目標(biāo)的時(shí)候蹦魔,由于不知道具體有多少個(gè)目標(biāo)激率。所以采用滑動(dòng)窗口的方法。
將所有可能的區(qū)域都送入卷積網(wǎng)絡(luò)進(jìn)行檢測(cè)勿决,以確定當(dāng)前區(qū)域是背景還是哪個(gè)類別的目標(biāo)乒躺。(但是由于圖像的不同位置、尺寸低缩、長(zhǎng)寬比進(jìn)行分類嘉冒,計(jì)算量巨大)
區(qū)域建議:Selecive Search
區(qū)域裁剪:Rol Pool
將候選區(qū)域投影到特征圖上,然后將區(qū)域定點(diǎn)規(guī)整到網(wǎng)格交點(diǎn)上咆繁。然后將該區(qū)域粗略的分成面積相等的2×2(人為設(shè)定)個(gè)子區(qū)域讳推,對(duì)每個(gè)子區(qū)域都進(jìn)行最大池化。(在進(jìn)行Rol Pool處理前不同的區(qū)域特征的空間尺寸可能不一致玩般,但是處理后的所有區(qū)域特征尺寸都是一致的)
問(wèn)題:處理之后會(huì)有輕微的對(duì)不齊银觅。
區(qū)域裁剪:Rol Align
改進(jìn)的地方就在于不對(duì)區(qū)域進(jìn)行規(guī)整操作。
在求該綠色點(diǎn)的值得時(shí)候坏为,使用雙線性差值究驴。
這樣多次操作以后就會(huì)得到多個(gè)雙線性差值,然后對(duì)每個(gè)子區(qū)域再進(jìn)行最大池化匀伏。
但是過(guò)程中還是會(huì)有大量的時(shí)間用于產(chǎn)生候選區(qū)域
Faster R-CNN:
在中間特征層后加入?yún)^(qū)域建議網(wǎng)RPN(Region Proposal Network)產(chǎn)生候選區(qū)域網(wǎng)絡(luò)
實(shí)際使用中洒忧,對(duì)于每個(gè)特征圖上的每個(gè)位置,我們通常采用K個(gè)不同尺寸和分辨率的錨點(diǎn)區(qū)域(anchor boxes)
第一階段:每張圖運(yùn)行一次
→主干網(wǎng)絡(luò)(backbone)
→區(qū)域建議網(wǎng)絡(luò)
第二階段:每個(gè)區(qū)域運(yùn)行一次
→扣取區(qū)域特征:Rol pool /align
→預(yù)測(cè)目標(biāo)類別
→預(yù)測(cè)邊界框偏移量
假設(shè)在一般用3×3的卷積核進(jìn)行卷積够颠,但是由于不確定3×3能否起作用熙侍,所以就多設(shè)定幾個(gè)區(qū)域。3×3的卷積核卷積后的特征圖與神經(jīng)網(wǎng)絡(luò)連接起來(lái)履磨,判斷圖像的類別就行(對(duì)分?jǐn)?shù)進(jìn)行排序核行,通常將分?jǐn)?shù)最高的前300個(gè)直接送入Rol Pooling)。但是在區(qū)域建議中蹬耘,由于多設(shè)置了幾個(gè)錨點(diǎn)區(qū)域(K值)兄淫,所以神經(jīng)網(wǎng)絡(luò)也要判斷這幾個(gè)區(qū)域是什么類別。就相當(dāng)于用相同的特征額外預(yù)測(cè)了幾個(gè)區(qū)域卫枝。 (當(dāng)然,我們事先需要確定這幾個(gè)區(qū)域的標(biāo)答是什么位岔。)
四種損失的聯(lián)合訓(xùn)練
→RPN分類損失(目標(biāo)/非目標(biāo))
→RPN邊界框坐標(biāo)回歸損失
→候選區(qū)域分類損失
→最終邊界框坐標(biāo)回歸損失
目標(biāo)檢測(cè):影響精度的因素
主干網(wǎng)絡(luò):VGG16、ResNet-101堡牡、InceptionV2抒抬、InceptionV3、Inception晤柄、ResNet擦剑、MobileNet
基礎(chǔ)架構(gòu):
→兩階段:Faster R-CNN
→一階段:YOLO/SSD
→混合:R-FCN
圖像尺寸
區(qū)域建議個(gè)數(shù)
一些經(jīng)驗(yàn)性的結(jié)論:
→Faster R-CNN速度偏慢,但精確度高
→SSD速度快芥颈,相對(duì)于Faster R-CNN精度有所欠缺
→主干網(wǎng)越寬惠勒、深度越深,對(duì)性能的幫助就越大爬坑。
實(shí)例分割任務(wù)
對(duì)Faster T-CNN的改進(jìn):Mask R-CNN
上半部分是分類纠屋,下半部分是預(yù)測(cè)每個(gè)點(diǎn)的類標(biāo)。
圖為訓(xùn)練時(shí)的標(biāo)答盾计。
可視化
通過(guò)反向可視化售担,查看網(wǎng)絡(luò)是通過(guò)哪些像素點(diǎn)進(jìn)行判斷的。(顯著性檢測(cè))
guided backprop
真實(shí)的網(wǎng)絡(luò)是
? ? ? ? ? ? ??
w是訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的權(quán)重矩陣署辉,它為輸入的不同位置分配了不同的關(guān)注度族铆,并加權(quán)求和獲得分類得分
? ? ? ? ? ? ? ? ? ? ? ?
計(jì)算圖像像素相對(duì)于當(dāng)前分類下的得分的梯度,這個(gè)梯度反應(yīng)了每個(gè)像素對(duì)分類結(jié)果的影響程度哭尝。梯度值越大骑素,說(shuō)明它對(duì)應(yīng)的像素越重要。
得到的結(jié)果就是
各個(gè)圖像中哪個(gè)像素點(diǎn)將神經(jīng)元激活的刚夺。
還有一種更好的方法進(jìn)行可視化——梯度上升
輸入一個(gè)純黑的圖像献丑,輸入進(jìn)行響應(yīng)之后再通過(guò)反向梯度傳回來(lái),與原圖相加侠姑。這樣重復(fù)多次后會(huì)得到這個(gè)可視化圖创橄。
deep dream
是用一張圖像進(jìn)行反復(fù)加強(qiáng)達(dá)到一定的藝術(shù)效果。
特征的可逆性
前一項(xiàng)是希望輸出的4096維向量莽红,讓這4096根φ0一模一樣妥畏。(L公式的意義就是求距離)起到約束作用
后一項(xiàng)就是全面正則項(xiàng)。
這說(shuō)明在第二個(gè)卷積層的時(shí)候仍然保留著原圖的幾乎全部特征安吁,隨著卷積層的加深醉蚁,原圖的特征逐漸消失。
紋理合成
神經(jīng)網(wǎng)絡(luò)將紋理表示成Gram Matrix
從中隨便抽取兩列就能得到一個(gè)Gram矩陣鬼店,將所有的Gram矩陣加起來(lái)求平均就得到了Gram Matrix
因?yàn)槿绻贕ram矩陣中有較大的值网棍,說(shuō)明在卷積核中被大量采用,而這記錄的就是紋理特征妇智。
通過(guò)紅藍(lán)進(jìn)行提取滥玷,通過(guò)噪聲損失(黑色)進(jìn)行梯度回傳氏身。進(jìn)行很多輪的迭代才能得到結(jié)果。
內(nèi)容和風(fēng)格誰(shuí)損失越多誰(shuí)占的權(quán)重越大惑畴。
一種更快的方法蛋欣,噪聲的輸入是神經(jīng)網(wǎng)絡(luò)的輸出。
同一張圖片的不同風(fēng)格如贷。
實(shí)例分割:作用在每一個(gè)圖像的每一個(gè)卷積核陷虎,只用實(shí)例分割,這樣還能進(jìn)行一個(gè)網(wǎng)絡(luò)多風(fēng)格杠袱。
每個(gè)γ和β都是要學(xué)習(xí)獲得的尚猿。不同的風(fēng)格的神經(jīng)元的車別就在γ和β上。只要調(diào)整這兩個(gè)超參數(shù)就可以獲得不同風(fēng)格的圖像霞掺。這一切都是基于實(shí)力分割
為什么要做可視化
輸入一張圖谊路,進(jìn)行正向傳遞讹躯,然后再進(jìn)行反向傳遞菩彬,看看做出結(jié)論的圖是否關(guān)注到目標(biāo)。
生成模型
→無(wú)監(jiān)督學(xué)習(xí)
→生成模型
? ? ? ? ? PixelRNN and PixelCNN
? ? ? ? ? Variational Autoencoders(VAE)
? ? ? ? ? Generative Adversarial Networks(GAN)
有監(jiān)督學(xué)習(xí)中
數(shù)據(jù):(x潮梯,y)骗灶,其中x表示樣本,y表示標(biāo)簽
目標(biāo):學(xué)習(xí)x→y的映射
例子:分類秉馏,回歸耙旦,目標(biāo)檢測(cè),語(yǔ)義分割等等萝究。
有監(jiān)督的意思是指有標(biāo)答免都,有正確的答案作為指導(dǎo)
無(wú)監(jiān)督學(xué)習(xí)
數(shù)據(jù):x,其中x為數(shù)據(jù)
目標(biāo):找出隱含在數(shù)據(jù)里的模式或者結(jié)構(gòu)
例子:聚類帆竹,降維绕娘,特征學(xué)習(xí),密度估計(jì)等
因?yàn)樵诖怪庇诿娴姆较蛏喜顒e不大栽连,所以就降低維度险领,PCA降維是一種線性降維。
自編碼(特征學(xué)習(xí))是一種非線性降維秒紧。
比如輸入一個(gè)圖像绢陌,經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)輸出一個(gè)低維的圖像。
生成模型:
給定訓(xùn)練集熔恢,產(chǎn)生于訓(xùn)練集同分布的新樣本
無(wú)監(jiān)督學(xué)習(xí)中的核心問(wèn)題——密度估計(jì)問(wèn)題
幾種典型思路:
-? 顯示的密度估計(jì):顯示的定義并求解分布
- 隱式的密度估計(jì):學(xué)習(xí)一個(gè)模型脐湾,而無(wú)需顯示的定義它(不需要知道工作原理)
為什么要研究生成模型?
圖像合成:根據(jù)圖片叙淌、文本信息或幾何信息合成圖片
圖像屬性編輯:通過(guò)將屬性隱藏進(jìn)掩碼沥割,以更改圖像屬性耗啦。
圖片風(fēng)格轉(zhuǎn)移:黑白圖片轉(zhuǎn)彩色圖片、白天轉(zhuǎn)黑夜圖片等机杜。
域適應(yīng):減少source和target不同分布之間的差異帜讲。
PixelRNN與PixelCNN
顯式的密度模型
利用鏈?zhǔn)綔?zhǔn)則將圖像x的生成概率轉(zhuǎn)變?yōu)槊總€(gè)像素生成概率的乘積:
學(xué)習(xí)的過(guò)程就是最大化訓(xùn)練數(shù)據(jù)的似然(密度函數(shù))!
缺陷:需要從圖像左上角開(kāi)始產(chǎn)生像素椒拗,序列生成整張圖片太慢了
PixelCNN進(jìn)行了改進(jìn)似将,依然是從圖像的左上角開(kāi)始產(chǎn)生像素,但是是基于已生成的像素蚀苛,利用CNN來(lái)生成新的像素在验。
用256個(gè)卷積,只有灰色部分進(jìn)行卷積運(yùn)算堵未。
卷積的結(jié)果輸出的是該點(diǎn)的概率值
可是圖像的產(chǎn)生過(guò)程還是逐像素的序列生成腋舌,依然很慢。
總結(jié):
優(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è)有效地低維的特征提取器。
主要是求輸出和輸入的損失雌芽。
特征降維有什么作用授艰?
希望降維后的特征僅保留數(shù)據(jù)中有意義的信息
如何學(xué)習(xí)?
自編碼利用重構(gòu)損失來(lái)訓(xùn)練低維的特征表示
已經(jīng)訓(xùn)練完畢的編碼器可以作為有監(jiān)督學(xué)習(xí)的初始特征提取模型世落。
解碼器同樣有很多功能淮腾,輸入一個(gè)編碼,然后解碼就生成一個(gè)圖形屉佳」瘸可以完成圖像生成任務(wù)
變分自編碼器(VAE)
編碼器生成了一個(gè)輸入(m)和一個(gè)方差(),后面標(biāo)準(zhǔn)差×e是一個(gè)噪聲武花,使m產(chǎn)生了偏差圆凰。
噪聲的方差是從數(shù)據(jù)中學(xué)到的
從正態(tài)分布中提取一個(gè)新的碼(c)輸入解碼器
所以越接近0越好,也就是取樣的越接近1越好
是L2正則化髓堪,希望越分散越好
之前的直接編碼在中間沒(méi)有學(xué)習(xí)的一段是無(wú)法準(zhǔn)確輸出結(jié)果的送朱,經(jīng)過(guò)VAE中 的噪聲以后,在未學(xué)習(xí)的部分也可以有輸出結(jié)果干旁。只有加了噪聲以后驶沼,才能在中間加上既不是滿月也不是半弦月的圖像。
變分自編碼(VAE)總結(jié)
基于典型自編碼器拓展成的概率框架→可以產(chǎn)生新的樣本
定義一個(gè)難以計(jì)算的密度函數(shù)→通過(guò)推到來(lái)優(yōu)化一個(gè)下邊界
優(yōu)點(diǎn):
- 生成模型里的一種主要方法
- 可以計(jì)算争群,這個(gè)特征表示可以用在其他許多任務(wù)中回怜。
缺點(diǎn):
- 最大似然函數(shù)的下邊界能夠有效的工作,但是模型本身沒(méi)有Pixel RNN和Pixel CNN那樣好評(píng)估
- 與最新的技術(shù)(GANs)相比,產(chǎn)生的樣本比較模糊玉雾,質(zhì)量較低翔试。
生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial NetWork,GAN)
問(wèn)題:希望從訓(xùn)練樣本分布中采樣新數(shù)據(jù),但這個(gè)分布不僅維度高而且還很復(fù)雜复旬,難以直接實(shí)現(xiàn)垦缅。
解決方案:對(duì)一個(gè)簡(jiǎn)單的分布采樣,比如均勻分布驹碍;然后壁涎,學(xué)習(xí)一種映射將其變換到訓(xùn)練樣本分布
(就使用神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)這個(gè)復(fù)雜的映射)
生成網(wǎng)絡(luò):期望能夠產(chǎn)生盡量真實(shí)的圖片,進(jìn)而騙過(guò)判別器
判別網(wǎng)絡(luò):期望能夠準(zhǔn)確的區(qū)分真假圖片
是真實(shí)數(shù)據(jù)的分布
是噪聲分布
G是生成函數(shù)志秃,就是生成器怔球。是G 神經(jīng)網(wǎng)絡(luò)的參數(shù)。
max:如果想調(diào)整找到最大浮还,就要前項(xiàng)(真實(shí)樣本)中的對(duì)數(shù)項(xiàng)越接近于1竟坛,后項(xiàng)(假樣本)中的越接近0越好。
min:在最小時(shí)钧舌,跟前項(xiàng)(真實(shí)樣本)無(wú)關(guān)担汤,只與后項(xiàng)(假樣本)有關(guān),而若想整體最小延刘,就要最大漫试,越接近1越好六敬。
在確定了目標(biāo)函數(shù)以后碘赖,max和min是交替完成的。
判別器輸出的結(jié)果在0-1之間外构,所以最后一層用sigmoid輸出一個(gè)數(shù)值普泡。對(duì)于正樣本,這個(gè)值越大越好审编,負(fù)值越小越好撼班。
但是Gradient descent on generator直接優(yōu)化效果并不是很有效,在生成的樣本很糟糕時(shí)垒酬,判別器輸出值很小砰嘁,生成器損失函數(shù)在此處的梯度很小,使得生成器學(xué)習(xí)很慢勘究。
但是當(dāng)樣本較好的時(shí)候矮湘,梯度很大,生成器更新較大口糕。(但此時(shí)的樣本已經(jīng)趨于學(xué)習(xí)完成缅阳,這時(shí)速度快意義不大)
所以進(jìn)行優(yōu)化以后
所以實(shí)際應(yīng)用中,做了兩個(gè)最大函數(shù)(max)
因?yàn)榕袆e器有梯度景描,梯度會(huì)促使生成的分布進(jìn)行平移十办。
V(D,G)的值越大秀撇,采樣樣本和生成樣本的散度就越大。