當前位置:
首頁 > 最新 > 一文講述如何將預測範式引入到機器學習模型中

一文講述如何將預測範式引入到機器學習模型中

作者 Filip Piekniewski

編譯ziqi zhang

隨著人工智慧的持續深入,深度學習技術在多智能體學習、推理系統和推薦系統上取得了很大進展。

對於多智能體來說,預測能力有著關鍵性的作用。一個訓練有素的智能體已經能騙過智商正常的人類了!你可能不會相信,僅僅從一個反應系統學習90%的動作命令,它就已經可以取得這樣的「成就」了。

這是結合了統計學和動力學而實現的。對於這個問題,大多數方案是通過統計學方法,構建概率模型來解決。這點與行為引導(behavior guiding)研究相同。但是,在這兩類研究中,應用統計學方法可能會忽略一些重要的極端值,而相關重要信息又往往只能根據這些極端值的分布情況來得到。

Filip Piekniewski是一位資深的人工智慧愛好者,他曾經推出一篇博文,詳細介紹了上述多智能體的實現過程。

最近,他又發布一篇博文,詳細介紹了——視覺預測模型(Predictive Vision Model),用於將預測範式引入到機器學習模型中。

這是一篇有趣的乾貨長文,希望大家能花時間來閱讀。下面簡要介紹下視覺預測模型的思路及部分細節。

主要思路

本文構建了一個在視覺條件下以感官信息作為輸入的預測模型。由於無法準確建立感官信息的運動方程,只能通過機器學習來完成。

這個實現過程很簡單,只需將當前輸入值與將來的同等值聯繫起來,這與自動編碼器相似,但是當前模型不是預測信號本身,而是下一幀信號。一旦建立了對應聯繫,所構成的系統就可以預測出下一個輸入值。

事實上,我們可以同時訓練並使用這個系統。顯然,這個結果系統不能準確輸出外部實際值,但是可以產生一個相當逼近實際情況的近似值。在很多情況下,這樣的近似值已經足以用來產生一個魯棒性很好的表現。

實現細節

構建一個上述的預測編碼器本身十分簡單,問題的關鍵在於縮放上。在構建一個系統的時候,有時可以通過將一個大的系統拆分成小塊或者縮小數量來解決這個問題,而不是一次性構建一個龐大的整體。我們就應用這種想法。

我們不用構建一個大規模的預測編碼器來處理大圖像,而是構建許多小規模的預測編碼器。工作時,每個小編碼器都輸入並處理一個小的片段,工作流程如下圖所示:

這樣我們就得到了一個「分散式」預測系統。

當然,這樣仍然存在問題:雖然每個單元能夠獨立地進行預測了,但是它們所處理的信號有些具有全局一致性。

如何實現資源共享,從而提高運行效率呢?

互聯!我們可以嘗試將這些獨立的單元連接起來,這樣,每個單元就可以向相鄰單元通報它們剛剛看到(預測)了什麼。

聽起來相當不錯,但是如果我們現在向每個單元發送多組信號的副本,即每個單元的預測信息,那麼這些單元承擔的信息量將大大增加,時間和空間的壓力可想而知,以至於我們無法進一步擴展系統。

如何解決這一問題呢?

壓縮!壓縮方法就像去噪自編碼器(denosing autoencoder)一樣,強制每個單元只能預測,而且只能使用基本特徵進行預測。

我們通過引入一個瓶頸,縮小中間層來實現壓縮功能。一旦這一功能實現了,我們就能利用「壓縮後」的表達信息連接到相鄰單元,從而構成橫向連接。工作流程如下圖所示:

到目前為止,我們實現了:每個單元不光可以預測自身的輸入信息,還可以預測附近單元的輸入信息。由於感官數據通常具有局部性(locality)特點,這些附近單元的附加信息通常對預測是十分有用的。

需要注意的是,即使現在的系統是稀疏連接的(本地連接),只要我們添加更多的單元(其實就是以更高解析度處理圖像)就可以擴展這個系統而且總的收斂時間將不受任何影響(假設添加的算力與添加的單元成正比)。

分層與反饋

我們現在只有一層單元來預測未來的輸入信息,那麼,問題又來了:對於這個系統,我們一直是在一個非常精細的規模下傳遞預測信息的。但是,當想要獲得較大規模場景的規律時,即便加入橫向反饋,這種單層預測系統也無能為力。

為了在大規模的場景中仍然可以找到規律,我們可能會想到使用一個能夠處理整個場景的單元,但是因為它不能擴展,所以這種想法不太可行。但是請注意,我們已經對數據進行了壓縮,如果我們再添加一個層,用來預測第一層的壓縮特徵,那麼這一層中的每個單元都將可以獲得更大的視野(雖然這樣做會失去對較低一級預測無用的功能)。如下圖所示:

好了,現在有了較高一層單元,我們就可以發現更大規模視野的規律。我們可以不斷地添加更多的層,直到剩下一個能夠捕獲整個場景規律的單元,儘管這個單元處理的解析度可能不是很高。

層數增加帶來單元數量的增加,每個單元都會產生預測信息,中間這些額外的預測信息可以做什麼呢?

作為反饋進行回傳!這樣,可以幫助低一層的單元更好地進行預測,如下圖所示:

到目前為止,我們就完成了一個完整的視覺預測模型的系統搭建任務。每個單元都有其清晰的目標函數,誤差以分散式的方式在系統中傳播,而不是以單個反向傳播標籤的形式,並且系統仍然具有擴展性。原理上,這就是通用的視覺預測模型——沒有任何變形,只是以一種新的方式安排了聯想記憶(associative memories)。

該模型的主要目標是進行預測。如果構建輸入信號的內部模型,這個系統仍然可以勝任。由於其內部的循環連接,該系統可以擴展為非常複雜的模型。下面的動畫顯示了信息的流動過程:

好了,現在系統設計完成了,詳細說明一下它到底能做什麼,在這之前,關於該模型還有幾個重要的東西需要強調一下:

PVM使用關聯存儲器單元進行數據的壓縮,它可以通過反向傳播(backprop)或其它別的方法來實現:玻爾茲曼機(Boltmann Machine)、脈衝網路(Spiking Network),等等。這些也給了系統在硬體方面巨大的靈活性。

系統是分散式的,並且完全避免了梯度消失(vanishing gradient)這一問題,因為訓練信號是局部的,豐富而且足夠強。因此不需要卷積和繁雜的正則化方法等等。

PVM可以應用於視覺方面,其它模式當然也能適用。事實上,你可以自由地將模式進行組合,讓它們在不同的抽象層次上相互預測。

PVM中的反饋可以任意地布置。如果信號具有預測性質,那麼它將被利用,否則將被忽略(這是可能發生的最壞的事情)。

PVM中的輸入信號可以是單個圖像(例如視頻中的一幀)或者序列。實際上,我做過一些針對處理視頻幀的有意義的實驗。

如果輸入信號的一小部分以一種可預測的方式(例如相機上有個像素壞掉了)被破壞了,它將在低層的處理過程中被預測,越往高層傳播,這種影響就越小。在極端情況下,例如長期無效的像素,是可以通過偏執單元(常數)單獨進行預測的,且高層可以完全忽略它們的存在,這點非常像人眼中的盲區。

信號誤差作為系統的副產品基本上是都是異常的檢測信號。在不同的規模下,可以獲得不同層級的異常信息。這種信息在行為識別方面是一個十分有用的信號,涉及到顯著性以及注意力機制的概念。

真的有用嗎?我們用實驗去證明!

大量的實驗證明,PVM確實在基本預測任務中發揮了巨大的作用,但它還能做別的事情嗎?

一方面,推薦系統會利用預測誤差給用戶提供他們想要的信息,但是這是一個長期的過程。

另一方面,我們決定增加一個有監督的視覺目標跟蹤任務,並在上面測試PVM的實際性能。

我們往PVM中加入一些小東西:

我們使處理單元閉環(自己以前的狀態成為上下文的一部分)。這種做法使PVM單元類似於簡答的循環神經網路。當然也可以把LSTM加上去,但是我真的非常不喜歡LSTM,因為它們看上去非常的「不自然」。

在輸入向量中,我們加入了幾個「預先計算過的特徵」,這些特徵僅僅用於幫助簡單的三層感知機找到相應的模式。

我們還添加了一個讀出層,通過明確的監督訓練(現在是帶標籤的數據,帶有M的框),就可以訓練出感興趣目標的熱圖。與PVM系統中其他部分相同,該熱圖由所有單元以分散式方式生產,之後進行組合用來計算目標的邊界。

熱圖的產生過程:

總而言之:它是起作用的!詳細的信息可以參考我的長篇論文。

通常通過訓練這個系統,我們可以將它用於穩定的視覺目標跟蹤,其效果可以打敗幾種最先進的目標跟蹤器。

第一行從左到右為:視覺輸入信息、後續幾層的內部壓縮後的激活信號。

第二行:連續的預測信息。第一層的視覺預測,對於第一層激活的第二層預測等等。

第三行是誤差信息(實際信息與預測之間的偏差)。

第四行是有監督對象的熱圖(我們這個實驗是對「STOP」標誌敏感)。

最後一列:各種跟蹤的可視化信息。

以下是針對數據集中,其它跟蹤目標的實例(注意,我們從不在訓練集上對系統進行評估,因為這樣訓練出來的系統泛化性是很差的),紅色框代表人為標註的真實地面目標,黃色框是PVM的返回。總而言之,它的效果非常好,特別是它在低解析度(96*96)的視頻上仍然起作用(雖然這個解析度對於人類來說足夠理解場景中的物品了)。

結論

我們都知道,上世紀80年代提出的深度卷積神經網路是基於60年代的神經學知識發展起來的,現在還異常火熱。

PVM不同於卷積神經網路,它是基於全新的大腦皮質結構和功能的一種新的演算法。PVM能避免許多機器學習都會遇到的問題:比如過度擬合和梯度消失問題。它也不用使用一些繁雜的技巧:比如卷積和正則化,它會把任務當成在線信號預測的任務。

雖然PVM還不能作為感知任何事物的黑盒(還沒人知道這個黑盒是否存在),但是與各種感知應用的方法來比,它還是很有競爭力的,這裡就不得不提深度學習的方法了,相比來說這是最大的挑戰。PVM的不同之處在於,它是由直覺進行驅動的,它將使機器人在長期內真正起作用。

目前有關PVM的應用性實驗都可以在Github上找到,enjoy!

參考文獻:

[1]http://blog.piekniewski.info/2016/11/03/reactive-vs-predictive-ai/

[2]http://blog.piekniewski.info/2016/11/04/predictive-vision-in-a-nutshell/

[3]https://arxiv.org/abs/1607.06854

[4]http://blog.piekniewski.info/2016/05/09/deep-nets-and-the-brain/

[5]https://github.com/braincorp/PVM

AI公開課

主題:讓機器讀懂你的意圖——人體姿態估計入門

時間:9月26日晚8點

嘉賓:曾冠奇,便利蜂智能零售實驗室團隊負責人

內容:

人體姿態估計在新零售的應用點

人體姿態估計的整個知識結構樹

人體姿態估計一個流派的論文、演算法和代碼解析

掃碼報名

主題:深度學習中基礎模型性能的思考和優化

時間:已結課(可看復播)

嘉賓:吳岸城 菱歌科技首席演算法科學家

掃碼學習:

主題:XGBoost模型原理及其在各大競賽中的優異表現

時間:已結課(可看復播)

嘉賓:卿來雲 中科院副教授

掃碼學習:

主題:深度學習入門及如何轉型AI領域

時間:已結課(可看復播)

嘉賓:覃秉豐 深度學習技術大咖

掃碼學習:

以上課程都是免費的哦,快上車~~

點贊和分享是一種積極的學習態度

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

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


請您繼續閱讀更多來自 機器學習 的精彩文章:

當AI出現偏見時,如何讓機器學習演算法解釋自己的決策?
吳恩達:傳統科技公司+機器學習/神經網路≠AI公司
大家都把注意力用在了錯誤的技術領域 機器學習才是王道
機器學習的世界一個SEO初學者指南
數據與機器學習在市場營銷中的應用(下)

TAG:機器學習 |