機器學習之Transforming Auto-encoders



   本文不是原論文的直接翻譯,只是翻譯了核心部分,Instruction 和Discussion沒有翻譯

摘要:

    當前已經實現的從圖像中識別出物體的方法表現的非常糟糕,這些方法的智能程度很難說已經達到了讓人們滿意的地步。一些比較好的計算機視覺系統使用梯度導向的直方圖作爲“視覺單詞”,並且通過使用簡單的空間範式來構造這些元素的分佈模型。這些方法能夠在不知道圖像中物體的具體位置的情況下準確識別出它們,利用這種能力,人類可以探測出大腦的損傷部分。最好的人工神經網絡使用手動編碼,共享權重的策略來減少自由參數的個數,並且它們通過抽樣同一核心的轉化副本的局部活動池實現了局部不變性。這種處理由於視點的變化而引起的圖像的變化的方法比起沒有方法要好的多得多,但是顯然它還是不能勝任類似於面部識別之類的任務,像面部識別,他就要求必須要瞭解面部高層部分的之間的準確空間關係,比如說鼻子是在嘴巴的上方而不是在嘴巴下方的這種空間位置關係。在經過對迴旋神經網絡幾個階段的抽樣後,高層對象的位置表現出極大的不確定性。這個現象通常被認爲是一個比較理想的屬性,因爲它很好的解釋了在超出一些有限範圍後,高層對象所表現出來的位置具有不變性,但是這種方法也是不可能準確地計算出物體的空間關係的。

   這篇論文說明了迴旋神經網絡在他們想要獲取什麼的問題上被錯誤地引導了。人們不在致力於使用單一標量的輸出結果來概括重複特點探測器的局部池的視點不變性,取而代之的是人工神經網絡應當使用局部容器。這些局部容器實現了對輸入的一些十分複雜的內部計算,並且把這些計算結果封裝成了一個具有高度信息化輸出的向量。基於可見條件有限域或者變形,每一個容器都可以識別出一個隱式定義的可見視覺實體,同時輸出實體出現在它的有限域之中的概率和一個“實例化參數”的集合,這些實例化參數的集合可能會包含視覺實體的位置,明亮程度和變換等信息,這些都與每個實體隱式定義的便準版本有關。當容器(capsule)正確工作的情況下,視覺實體出現的概率是局部不變的。當實體從可能的外觀流行移動過後,概率確實不發生變化。實例化參數,不管怎樣,是“等變的”。當可見條件改變,同時視覺實體移動到表觀流行,實例化參數也改變相應的量值,因爲他們代表着實體表觀流形的內在座標。

輸出顯式實例化參數的Capsules的主要優勢之一是它提供了一個通過部分識別出總體的簡單方法。如果一個capsule能夠學會輸出一個向量中的視覺實體的位置,而這個位置是與計算機圖形學中的位置的自然描述是線性相關的,這裏有一個簡單的高可選性的實驗來測試是否AB兩個活動的capsules代表的視覺實體之間有足夠強的空間關係來激活更高層,或者是更高級別的capsule C。假設capsule  A 的輸出位置用矩陣TA表示,TA表示的是把標準視覺實體A轉化成爲capsule  A建立的事實實體的一個座標轉化矩陣。如果我們給矩陣TA乘以一個“部分-整體”的座標轉化矩陣TACTAC是一個描述規範視覺實體A與規範視覺實體C之間相關關係的矩陣,通過給矩陣TA乘以一個“部分-整體”的座標轉化矩陣TAc,我們就可以得出TC矩陣的一個預測版本。 TA*TAC=TC1   相似的,我們可以用TBTBC來獲得對TC矩陣的另外一個預測TC2TB*TBC=TC2。如果說TC1TC2這兩個矩陣能夠完美的匹配,也就是說這兩個矩陣是等價的,那麼由capsule  A capsule B建立起的實例就擁有激活capsuleC的正確的空間關係。對TC矩陣的預測結果的平均水平進行分析後,作者發現用C表示的視覺實體能夠被轉化爲多大是與規範視覺實體C有着緊密的關係的。舉個例子,如果用大A表示mouth,用大B表示nose,那麼大A和大B他們各自都可以得到一個對face的位置的預測。如果這兩個預測結果相一致(agree),那麼也就說明mouth nose一定是有着正確的空間關係,這樣才能構成整個臉部。這種實現形狀識別的方法的一個比較有趣的特點是它把“部分-整體”關係是視點不變性的這樣的一個知識用權重矩陣描述,而對於當前觀察的物體以及物體的局部的實例化參數的視點等變性的知識是用神經活動來描述的。

爲了讓這樣的一個部分-整體的層次結構更加抽象化,以便計算機能夠比較容易的實現它,在層次結構中實現了最低層部分的“capsules”需要從像素強度中抽象出顯示的位置參數。這篇論文表明如果神經網絡可以直接,非視覺的利用這些轉換,那麼capsules能夠非常容易的從轉化過的圖像對中學習。舉個例子,在人類中,如果把目光在注視點之間快速短暫的掃視,就會使眼膜圖像能夠清晰的轉化,並且視覺皮層就可以非可視的獲得眼球移動的信息。

  2. Capsules的第一級學習

  一旦像素的強度已經被轉爲一系列活動的輸出,那麼每一個第一級capsule就會生成它的視覺實體的位置的顯式描述,可見通過使用活動的,更低級的capsules預測位置的一些協議,我們能夠識別出體積更大更復雜的視覺實體。但是這個第一級 capsules從何而來呢?一個人工神經網絡怎樣才能學會把用像素強度表示的語言轉化成描述位置參數的語言呢?這些問題已經被這篇論文解決了並且作者提出並證明了一個簡單到讓人驚訝的答案,作者稱之爲“Transforming  auto-encoder”。作者使用簡單的 2-D圖像和僅僅使用xy位置來表示capsules的位置輸出,作者打算以後將這一方法推廣到更復雜的其他維度。

   看一下圖1所示的前饋神經網絡。該圖所示的網絡是一個確定性的網絡,一旦它已經學習過了,它就會把輸入圖像和預期的移動x和△y作爲輸入,然後輸出移動過後的圖像。該網絡由一批獨立的capsules組成,這些capsules僅僅會在當它們需要協同合作產生預期的移動的圖像時纔會在最後一層有交互。每一個capsule都有它自己的邏輯“識別單元”,這些識別單元作爲一個隱藏層來計算出X Y P三個參數。XY P這三個參數將會由capsule發送到視覺系統的更高層。P表示的是capsules的視覺實體出現在輸入圖像中的可能性。Capsules除了有“識別單元”外還有它自己的“生成單元”,生成單元用來計算capsules對轉化的圖像的影響。生成單元的輸入的是X+XY+Y,並且capsule的生成單元產生的對輸出圖像的貢獻還要乘以視覺實體出現在輸入圖像中的概率P,因此那些無效的,沒有移動的capsules對結果不產生影響。

            

   爲了能夠讓自動編碼轉化器產生正確的輸出圖像,由每一個活動的capsules所計算出來的X值和Y值都必須保持和capsules的視覺實體的實際的X值和Y值相一致,這一條件是至關重要和必不可少的,我們不必首先知道視覺實體或者它的座標框架的邊緣部分。

   爲了簡單的說明作者提出的轉換自動編碼器的生產效率,作者的訓練了一個有30capsules的網絡,每一個capsule中都由10個識別單元和20個產生單元組成。每一個capsule能夠看見一個MNIST位圖像的全部。輸入和輸出圖像都被隨機的在XY方向上移動-2-1,0+1+2個像素,並且把XY方向上的移動量△X和△Y作爲轉化自動編碼器的附加的輸入。圖2表明當輸入圖像移動後,capsules也確實輸出了按相同方式移動後的XY值。圖2也表明capsules通過高度局部化的不因投影而變化的區域來學習生成單元。識別單元的接收域更加嘈雜並且它的局部化也不是很明顯。

 

       

2.1 更復雜的2-D 轉化

   如果每一個capsule被分配了9個實值的輸出結果,這9個值放在3X3的矩陣A中,一個轉化自動編碼器經過訓練後能夠預測一個全2-D的放射變換,包括轉換,旋轉,縮放和剪切。A的已知轉換矩陣T被應用於capsule A的輸出,以此來得到矩陣TA。當預測目標輸出圖像時TA矩陣中的元素作爲生成單元的輸入。

2.2 3-D視點中模型的變化。

     

   使用矩陣相乘來建造視點影響模型的一個主要的潛在優勢是當它處理3-D視點時會非常的容易。作者使用計算機圖形學來生成不同類型的汽車的不同視點的立體圖像,如圖4所示。轉化自動編碼器由900capsules組成,每一個capsules都有兩級的糾正線性識別單元。這些capsules擁有11X11像素接收域,該接收域被安排在96X96圖像上的一個30X30的網格中,相鄰的capsule之間間隔3個像素。沒有共享權重。每一個capsule從它的有64個識別單元的一級產生出一個3X3的矩陣和它隱式定義的特點出現的概率,其中這個3X3的矩陣代表了被用來探測的特點的3-D定位。,然後它乘以一個源到目標圖像的實際轉化矩陣,接着在把結果輸入到capsule的那個擁有128生成糾正線性單元的一級中去。生成單元的活動乘以capsule的特徵出現的概率的結果被用來增加以capsule的可接受域的中心爲中心的重構圖像的22x22補丁的像素強度。由於每一個輸出的數據都是由成對的立體圖像組成的,所以每一個capsule必須查看立體對中的每一個成員的11X11補丁,與此同時也要對每一個成員的圖像重構一個22X22大小的補丁。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章