當前位置:
首頁 > 科技 > 人類如何從不同角度識別物體?你需要對「小樣本學習」有所了解

人類如何從不同角度識別物體?你需要對「小樣本學習」有所了解

圖:pixabay

原文來源:Syntropy

作者:Angus Russel

「雷克世界」編譯:嗯~阿童木呀、多啦A亮

本文解釋了我們在Syntropy所做的研究,並通過機器學習中的一些未解決(或令人不滿意的解決)問題來跟蹤我們的進展。這些文章分為技術(機器學習專業人員)和非技術性(針對更廣泛的受眾群體)。這篇文章是非技術性的內容。

之前,我們解釋了視覺世界是由部分層次結構組成的。自行車由車把、車輪、踏板等構成;車輪由輪胎、輪輻、輪轂等組成;在物質世界的最低水平,一切都是由顏色、邊緣、形狀和紋理組成。在這種層次結構的每一層,我們的大腦在某種程度上都是不變的。在視覺層次結構的較低層次,不變性使你可以識別矩形或線條,即使它是傾斜、旋轉或縮放的;而在更高的層次上,它可以讓你識別人和物體,而無論視角、照明條件或背景環境。

聰明的讀者可能已經發現我們在上一篇文章中沒有解決的問題。如果概念是不變的,那麼我們可以引入以下問題。

相同兩部分的三種排列方式

在上述圖像中,這三個形狀中的每一個都是相同的兩個不變概念的排列。前兩個我們可以識別為大寫字母T,但第三個顯然不是——即使它包含相同的部分。這告訴我們,不僅僅是定義一個對象的部分存在,還有它們之間的關係。第二個T仍然看起來像T,因為這兩個部分仍然互相連接在同一個位置上,並且旋轉到同一個程度。第三個不像T,因為各部分現在有不同的關係——它們以相反的方向旋轉,並且加入到不同的相對位置上。

這使我們能夠了解我們的大腦是如何運作的。首先,即使我們容忍差異,我們仍然可以看到變化。其次,我們可以描述這種變化是什麼(旋轉),這意味著我們將一個概念的改變作為一個獨立的維度(旋轉、平移、顏色、亮度等)來解構。最後,我們用於描述變化的維度在部分之間是常見的,我們可以將它們聯繫起來。為了證明這一點,嘗試想像下面的圖像,但將顏色更改為紅色,並將其旋轉90度。

想像一下黑色部分是紅色的,整個旋轉90度

你可能從未見過這種線條和形狀的精確組合,但是你仍然可以很容易地想像它旋轉,並以不同的顏色。 這意味著我們採用一組常用的變化維度來識別和想像物體如何從不同的角度看,而不必先從各個角度看它們。

2011年,Geoffrey Hinton、Alex Krishevsky和Sida Wang發表了一篇名為「Transforming Autoencoders」的論文,其中提出了一種理論,該理論被通常稱為「膠囊理論(Capsules Theory)」。該論文證明,給定一組描述每個視覺概念如何轉換的常見維度,網路可以準確地預測和分類輸入的不可見變化,只能看到原始輸入一次(或少量幾次)。只有看見一次後對物體進行準確分類的能力被稱為「小樣本學習(one-shot learning)」,而且是人類可以自然而然地做的事情,但已被證明是難以在機器中複製出來。膠囊論文中描述的架構實現了小樣本學習,但是需要轉換變化的知識來訓練系統。因此,將系統擴展到現實世界的視覺應用是非常困難的——因為我們根本無法獲取所需的訓練數據。

那麼需要做些什麼來創建一個具有更多可擴展性的膠囊架構?我們先來看看 「膠囊」是什麼,以及它的作用。這是論文中對膠囊(capsule)的描述。

每個膠囊(capsule)都學會在一個觀看條件和變形有限的空間內識別一個隱式定義的視覺實體,並且它會輸出這個實體存在於其有限域內的概率以及和一組「實例化參數」,這裡面可能包括精確的位姿、照明和該視覺實體相對於其隱式定義的規範版本的變形。

這真是一個相當密集、冗長的句子,但它意味著每個膠囊都代表一種視覺概念,這種概念在當諸如照明、視角等發生一定程度的變化時仍然保持不變。如果這個部分聽起來很熟悉,不要懷疑,因為它正是我們在本文前面的部分所展示過的。還有一點是前文演示中沒有提到,但膠囊可以做到的是隨著變化的維度「實例化參數」。換句話說,它不僅可以識別出目標的存在,還可以確定其精確位置,如旋轉角度、大小等。

其實,膠囊的架構主要依賴於訓練期間所發生的轉化變化的先驗知識,但是當我們人類自身學著觀察的時候,我們並沒有給這些變化標上標籤。我們能夠簡單地通過觀察將我們能夠將我們的視覺世界解構為一組常見的變化維度,如位置、光線條件和旋轉。這一點與我們在上一篇文章中所提出的觀點有些相似,我們建議人類利用情景性或順序性數據來進行維度分離。

在我們以前的演示中,我們展示了這些片段可用於將視覺概念的所有變體分組到多個流形檢測器中。在我們的架構中,每個流形都可以在其所有變體中檢測到一個視覺概念,但它並沒有給出關於當前變體的任何信息。它可能會告訴我們「在這個圖像中有一個正方形」但不會告訴我們「正方形旋轉了10度左右,相對較大,且位於圖像的左下角附近」。下面的演示展示了我們該如何創造性地構建流形檢測器,從而使得它能夠使用情景性數據來提供這些信息。換句話說,我們如何將流形檢測器架構轉變成一個更具擴展性的膠囊版本。

下面是一個流形以不同位置和旋轉度表示心形的示例。3d可視化中的每個點代表心形的一個特定版本。最初系統是無序的,所以移動滑塊並不會產生任何有用的東西,但經過一些訓練(按下播放)之後,它就會自動排序,發現潛在的隱含維度。一旦組織起來,這些滑塊就代表了一個變化的單一維度。

在後續文章《通過序列數據進行降維》中,我們更加深入地探討了這項技術背後的工作原理、相關工作等。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷克世界 的精彩文章:

蘋果最新機器學習研究,詳解「嘿Siri」語音觸發器背後的深度神經網路
任何機器學習分類器都可以被欺騙!一文解析對抗性攻擊是如何工作的
谷歌keras作者推薦:使用「風格遷移」合成高解析度多尺度神經紋理
雙十一大戰即將打響!科沃斯和蘇寧聯手推出的機器人能為智慧零售帶來什麼?
Autodesk提出機器學習新演算法:使用「自動編碼器網路」探索生成3D形狀

TAG:雷克世界 |