日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

4.10 风格代价函数-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

發(fā)布時間:2025/4/5 卷积神经网络 179 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4.10 风格代价函数-深度学习第四课《卷积神经网络》-Stanford吴恩达教授 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

←上一篇↓↑下一篇→
4.9 內容代價函數(shù)回到目錄4.11 一維到三維推廣

風格代價函數(shù) (Style Cost Function)

在上節(jié)視頻中,我們學習了如何為神經(jīng)風格遷移定義內容代價函數(shù),這節(jié)課我們來了解風格代價函數(shù)。那么圖片的風格到底是什么意思呢?

這么說吧,比如你有這樣一張圖片,你可能已經(jīng)對這個計算很熟悉了,它能算出這里是否含有不同隱藏層。現(xiàn)在你選擇了某一層 lll (編號1),比如這一層去為圖片的風格定義一個深度測量,現(xiàn)在我們要做的就是將圖片的風格定義為 lll 層中各個通道之間激活項的相關系數(shù)。

我來詳細解釋一下,現(xiàn)在你將 lll 層的激活項取出,這是個 nH?nW?ncn_H*n_W*n_cnH??nW??nc? 的激活項,它是一個三維的數(shù)據(jù)塊。現(xiàn)在問題來了,如何知道這些不同通道之間激活項的相關系數(shù)呢?

為了解釋這些聽起來很含糊不清的詞語,現(xiàn)在注意這個激活塊,我把它的不同通道渲染成不同的顏色。在這個例子中,假如我們有5個通道為了方便講解,我將它們染成了五種顏色。一般情況下,我們在神經(jīng)網(wǎng)絡中會有許多通道,但這里只用5個通道,會更方便我們理解。

為了能捕捉圖片的風格,你需要進行下面這些操作,首先,先看前兩個通道,前兩個通道(編號1、2)分別是圖中的紅色和黃色部分,那我們該如何計算這兩個通道間激活項的相關系數(shù)呢?

舉個例子,在視頻的左下角在第一個通道中含有某個激活項,第二個通道也含有某個激活項,于是它們組成了一對數(shù)字(編號1所示)。然后我們再看看這個激活項塊中其他位置的激活項,它們也分別組成了很多對數(shù)字(編號2,3所示),分別來自第一個通道,也就是紅色通道和第二個通道,也就是黃色通道。現(xiàn)在我們得到了很多個數(shù)字對,當我們取得這兩個 nH?nWn_H*n_WnH??nW? 的通道中所有的數(shù)字對后,現(xiàn)在該如何計算它們的相關系數(shù)呢?它是如何決定圖片風格的呢?

我們來看一個例子,這是之前視頻中的一個可視化例子,它來自一篇論文,作者是Matthew ZeileRob Fergus 我之前有提到過。我們知道,這個紅色的通道(編號1)對應的是這個神經(jīng)元,它能找出圖片中的特定位置是否含有這些垂直的紋理(編號3),而第二個通道也就是黃色的通道(編號2),對應這個神經(jīng)元(編號4),它可以粗略地找出橙色的區(qū)域。什么時候兩個通道擁有高度相關性呢?如果它們有高度相關性,那么這幅圖片中出現(xiàn)垂直紋理的地方(編號2),那么這塊地方(編號4)很大概率是橙色的。如果說它們是不相關的,又是什么意思呢?顯然,這意味著圖片中有垂直紋理的地方很大概率不是橙色的。而相關系數(shù)描述的就是當圖片某處出現(xiàn)這種垂直紋理時,該處又同時是橙色的可能性。

相關系數(shù)這個概念為你提供了一種去測量這些不同的特征的方法,比如這些垂直紋理,這些橙色或是其他的特征去測量它們在圖片中的各個位置同時出現(xiàn)或不同時出現(xiàn)的頻率。

如果我們在通道之間使用相關系數(shù)來描述通道的風格,你能做的就是測量你的生成圖像中第一個通道(編號1)是否與第二個通道(編號2)相關,通過測量,你能得知在生成的圖像中垂直紋理和橙色同時出現(xiàn)或者不同時出現(xiàn)的頻率,這樣你將能夠測量生成的圖像的風格與輸入的風格圖像的相似程度。

現(xiàn)在我們來證實這種說法,對于這兩個圖像,也就是風格圖像與生成圖像,你需要計算一個風格矩陣,說得更具體一點就是用 lll 層來測量風格。

我們設 ai,j,k[l]a^{[l]}_{i,j,k}ai,j,k[l]? ,設它為隱藏層 lll(i,j,k)(i,j,k)(i,j,k) 位置的激活項, i,j,ki,j,kijk 分別代表該位置的高度、寬度以及對應的通道數(shù)。現(xiàn)在你要做的就是去計算一個關于 lll 層和風格圖像的矩陣,即 G[l]SG^{[l]S}G[l]Slll 表示層數(shù), SSS 表示風格圖像),這( G[l]SG^{[l]S}G[l]S )是一個 nc?ncn_c*n_cnc??nc? 的矩陣,同樣地,我們也對生成的圖像進行這個操作。

但是現(xiàn)在我們先來定義風格圖像,設這個關于 lll 層和風格圖像的, GGG 是一個矩陣,這個矩陣的高度和寬度都是 lll 層的通道數(shù)。在這個矩陣中 kkkk′k'k 元素被用來描述通道 kkkk′k'k 通道之間的相關系數(shù)。具體地:

Gkk′[l](S)=∑i=1nH[l]∑j=1nW[l]ai,j,k[l](S)ai,j,k′[l](S)G^{[l](S)}_{kk'}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_W^{[l]}}a^{[l](S)}_{i,j,k}a^{[l](S)}_{i,j,k'}Gkk[l](S)?=i=1nH[l]??j=1nW[l]??ai,j,k[l](S)?ai,j,k[l](S)?

用符號 i,ji,jij 表示下界,對 i,j,ki,j,kijk 位置的激活項 ai,j,k[l]a^{[l]}_{i,j,k}ai,j,k[l]? ,乘以同樣位置的激活項,也就是i,j,k′i,j,k'ijk位置的激活項,即 ai,j,k′[l]a^{[l]}_{i,j,k'}ai,j,k[l]? ,將它們兩個相乘。然后 iiijjj 分別加到 lll 層的高度和寬度,即 nH[l]n_H^{[l]}nH[l]?nW[l]n_W^{[l]}nW[l]? ,將這些不同位置的激活項都加起來。 (i,j,k)(i,j,k)(i,j,k)(i,j,k′)(i,j,k')(i,j,k)xxx 坐標和 yyy 坐標分別對應高度和寬度,將 kkk 通道和 k′k'k 通道上這些位置的激活項都進行相乘。我一直以來用的這個公式,嚴格來說,它是一種非標準的互相關函數(shù),因為我們沒有減去平均數(shù),而是將它們直接相乘。

這就是輸入的風格圖像所構成的風格矩陣,然后,我們再對生成圖像做同樣的操作。

Gkk′[l](G)=∑i=1nH[l]∑j=1nW[l]ai,j,k[l](G)ai,j,k′[l](G)G^{[l](G)}_{kk'}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_W^{[l]}}a^{[l](G)}_{i,j,k}a^{[l](G)}_{i,j,k'}Gkk[l](G)?=i=1nH[l]??j=1nW[l]??ai,j,k[l](G)?ai,j,k[l](G)?

ai,j,k[l](S)a^{[l](S)}_{i,j,k}ai,j,k[l](S)?ai,j,k[l](G)a^{[l](G)}_{i,j,k}ai,j,k[l](G)? 中的上標 (S)(S)(S)(G)(G)(G) 分別表示在風格圖像 SSS 中的激活項和在生成圖像 GGG 的激活項。我們之所以用大寫字母 GGG 來代表這些風格矩陣,是因為在線性代數(shù)中這種矩陣有時也叫Gram矩陣,但在這里我只把它們叫做風格矩陣。

所以你要做的就是計算出這張圖像的風格矩陣,以便能夠測量出剛才所說的這些相關系數(shù)。更正規(guī)地來表示,我們用 ai,j,k[l]a^{[l]}_{i,j,k}ai,j,k[l]? 來記錄相應位置的激活項,也就是 lll 層中的 i,j,ki,j,ki,j,k 位置,所以 iii 代表高度, jjj 代表寬度, kkk 代表著 lll 中的不同通道。之前說過,我們有5個通道,所以 kkk 就代表這五個不同的通道。

對于這個風格矩陣,你要做的就是計算這個矩陣也就是 G[l]G^{[l]}G[l] 矩陣,它是個 nc?ncn_c*n_cnc??nc? 的矩陣,也就是一個方陣。記住,因為這里有 ncn_cnc? 個通道,所以矩陣的大小是 nc?ncn_c*n_cnc??nc? 。以便計算每一對激活項的相關系數(shù),所以 Gkk′[l]G^{[l]}_{kk'}Gkk[l]? 可以用來測量 kkk 通道與 k′k'k 通道中的激活項之間的相關系數(shù), kkkk′k'k 會在1到 ncn_cnc? 之間取值, ncn_cnc? 就是 lll 層中通道的總數(shù)量。

當在計算 G[l]G^{[l]}G[l] 時,我寫下的這個符號(下標 kk′kk'kk )只代表一種元素,所以我要在右下角標明是 kk′kk'kk 元素,和之前一樣, i,ji,ji,j 從一開始往上加,對應 (i,j,k)(i,j,k)(i,j,k) 位置的激活項與對應 (i,j,k′)(i,j,k')(i,j,k) 位置的激活項相乘。記住,這個 iiijjj 是激活塊中對應位置的坐標,也就是該激活項所在的高和寬,所以 iii 會從1加到 nH[l]n_H^{[l]}nH[l]?jjj 會從1加到 nW[l]n_W^{[l]}nW[l]?kkkk′k'k 則表示對應的通道,所以 kkkk′k'k 值的范圍是從1開始到這個神經(jīng)網(wǎng)絡中該層的通道數(shù)量 nC[l]n_C^{[l]}nC[l]? 。這個式子就是把圖中各個高度和寬度的激活項都遍歷一遍,并將 kkkk′k'k 通道中對應位置的激活項都進行相乘,這就是 Gkk′[l]G^{[l]}_{kk'}Gkk[l]? 的定義。通過對 kkkk′k'k 通道中所有的數(shù)值進行計算就得到了 GGG 矩陣,也就是風格矩陣。

Gkk′[l]=∑i=1nH[l]∑j=1nW[l]ai,j,k[l]ai,j,k′[l]G^{[l]}_{kk'}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_W^{[l]}}a^{[l]}_{i,j,k}a^{[l]}_{i,j,k'}Gkk[l]?=i=1nH[l]??j=1nW[l]??ai,j,k[l]?ai,j,k[l]?

要注意,如果兩個通道中的激活項數(shù)值都很大,那么 Gkk′[l]G^{[l]}_{kk'}Gkk[l]? 也會變得很大,對應地,如果他們不相關那么 Gkk′[l]G^{[l]}_{kk'}Gkk[l]? 就會很小。嚴格來講,我一直使用這個公式來表達直覺想法,但它其實是一種非標準的互協(xié)方差,因為我們并沒有減去均值而只是把這些元素直接相乘,這就是計算圖像風格的方法。

Gkk′[l](S)=∑i=1nH[l]∑j=1nW[l]ai,j,k[l](S)ai,j,k′[l](S)G^{[l](S)}_{kk'}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_W^{[l]}}a^{[l](S)}_{i,j,k}a^{[l](S)}_{i,j,k'}Gkk[l](S)?=i=1nH[l]??j=1nW[l]??ai,j,k[l](S)?ai,j,k[l](S)?

你要同時對風格圖像 SSS 和生成圖像 GGG 都進行這個運算,為了區(qū)分它們,我們在它的右上角加一個 (S)(S)(S) ,表明它是風格圖像 SSS ,這些都是風格圖像 SSS 中的激活項,之后你需要對生成圖像也做相同的運算。

Gkk′[l](G)=∑i=1nH[l]∑j=1nW[l]ai,j,k[l](G)ai,j,k′[l](G)G^{[l](G)}_{kk'}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_W^{[l]}}a^{[l](G)}_{i,j,k}a^{[l](G)}_{i,j,k'}Gkk[l](G)?=i=1nH[l]??j=1nW[l]??ai,j,k[l](G)?ai,j,k[l](G)?

和之前一樣,再把公式都寫一遍,把這些都加起來,為了區(qū)分它是生成圖像,在這里放一個 (G)(G)(G)

現(xiàn)在,我們有2個矩陣,分別從風格圖像 SSS 和生成圖像 GGG

再提醒一下,我們一直使用大寫字母 GGG 來表示矩陣,是因為在線性代數(shù)中,這種矩陣被稱為Gram矩陣,但在本視頻中我把它叫做風格矩陣,我們取了Gram矩陣的首字母 GGG 來表示這些風格矩陣。

最后,如果我們將 SSSGGG 代入到風格代價函數(shù)中去計算,這將得到這兩個矩陣之間的誤差,因為它們是矩陣,所以在這里加一個 FFFFrobenius范數(shù),編號1所示),這實際上是計算兩個矩陣對應元素相減的平方的和,我們把這個式子展開,從 kkkk′k'k 開始作它們的差,把對應的式子寫下來,然后把得到的結果都加起來,作者在這里使用了一個歸一化常數(shù),也就是 12nH[l]nW[l]nc[l]\frac{1}{2n_H^{[l]}n_W^{[l]}n_c^{[l]}}2nH[l]?nW[l]?nc[l]?1? ,再在外面加一個平方,但是一般情況下你不用寫這么多,一般我們只要將它乘以一個超參數(shù) β\betaβ 就行。

最后,這是對層定義的風格代價函數(shù),和之前你見到的一樣,這是兩個矩陣間一個基本的Frobenius范數(shù),也就是 SSS 圖像和 GGG 圖像之間的范數(shù)再乘上一個歸一化常數(shù),不過這不是很重要。實際上,如果你對各層都使用風格代價函數(shù),會讓結果變得更好。如果要對各層都使用風格代價函數(shù),你可以這么定義代價函數(shù),把各個層的結果(各層的風格代價函數(shù))都加起來,這樣就能定義它們全體了。我們還需要對每個層定義權重,也就是一些額外的超參數(shù),我們用 λ[l]\lambda^{[l]}λ[l] 來表示,這樣將使你能夠在神經(jīng)網(wǎng)絡中使用不同的層,包括之前的一些可以測量類似邊緣這樣的低級特征的層,以及之后的一些能測量高級特征的層,使得我們的神經(jīng)網(wǎng)絡在計算風格時能夠同時考慮到這些低級和高級特征的相關系數(shù)。這樣,在基礎的訓練中你在定義超參數(shù)時,可以盡可能的得到更合理的選擇。

為了把這些東西封裝起來,你現(xiàn)在可以定義一個全體代價函數(shù):

J(G)=αJcontent(C,G)+βJstyle(S,G)J(G)=\alpha J_{content}(C,G)+\beta J_{style}(S,G)J(G)=αJcontent?(C,G)+βJstyle?(S,G)

之后用梯度下降法,或者更復雜的優(yōu)化算法來找到一個合適的圖像 GGG ,并計算 J(G)J(G)J(G) 的最小值,這樣的話,你將能夠得到非常好看的結果,你將能夠得到非常漂亮的結果。

這節(jié)神經(jīng)風格遷移的內容就講到這里,希望你能愉快地在本周的基礎訓練中進行實踐。在本周結束之前,還有最后一節(jié)內容想告訴你們,就是如何對1D和3D的數(shù)據(jù)進行卷積,之前我們處理的都是2D圖片,我們下節(jié)視頻再見。

課程板書







←上一篇↓↑下一篇→
4.9 內容代價函數(shù)回到目錄4.11 一維到三維推廣

《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的4.10 风格代价函数-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。