這里介紹三種特殊的結(jié)構(gòu):spatial transformer layer,highway network & grid LSTM,還有recursive network。
本節(jié)介紹:spatial transformer layer.

那么我們要怎么對(duì)一個(gè)image/feature map做transform呢?我們假設(shè)以下圖左邊這個(gè)image是transform前的結(jié)果
,右邊這個(gè)image是transform后的結(jié)果
,很明顯,這次轉(zhuǎn)換是把image由上往下做了平移。

一般而言,一個(gè)全連接層的式子我們可以寫成:,第
層里面的每一個(gè)神經(jīng)元的輸出是
。如果我們想做到以上的這個(gè)平移的轉(zhuǎn)換,我們只要適當(dāng)?shù)恼{(diào)整權(quán)重
。那么什么樣的weight可以讓我們做到平移這件事呢?即:
,如果
的話,
,否則,
,這樣子就可以做到平移。
接下來(lái),我們來(lái)做放縮:


如果我們想要控制兩張image之間的關(guān)系,我們要怎么做呢?如果只是旋轉(zhuǎn)平移縮放的話,即
,我們其實(shí)只需要
個(gè)參數(shù),也就是
這6個(gè)參數(shù),我們就可以把一張image變成另外一張image。即:神經(jīng)網(wǎng)絡(luò)的輸入是一整張image,輸出是一個(gè)六維的vector:

那我們現(xiàn)在舉一個(gè)實(shí)際的例子:

那么如果參數(shù)是小數(shù)的情況呢?如下圖所示,我們計(jì)算出來(lái)結(jié)果是

上面這個(gè)近似有沒(méi)有問(wèn)題呢?
實(shí)際上,我們?cè)谧鲞@個(gè)的時(shí)候,我們需要做interpolation。

我們不要把對(duì)應(yīng)的值直接設(shè)成離它距離最近的那個(gè)點(diǎn),如果直接設(shè)成,可能導(dǎo)致沒(méi)有辦法微分。所以,我們的做法應(yīng)該是,
取那四個(gè)點(diǎn)做插值,如下圖所示做法:

現(xiàn)在我們就可以用梯度下降解了,為什么呢?因?yàn)槲覀儼l(fā)現(xiàn),當(dāng)

動(dòng)畫演示
