【轉載】 《Human-level concept learning through probabilistic program induction》閱讀筆記

 

 

 

 

 

 

原文地址:算法

https://blog.csdn.net/ln1996/article/details/78459060網絡

 

---------------------
做者:lnn_csdn
來源:CSDN框架

 

--------------------------------------------------------------------------------機器學習

 

 

 

 

花了一週多的時間讀了一篇論文《Human-level concept learning through probabilistic program induction》(《經過幾率規劃概括進行類人概念學習》),這是15年12月science的一篇封面文章,主要解決了小樣本狀況下的計算機學習問題。第一次讀論文,並且是英文論文仍是有點吃力,參考了不少其餘的博客和新聞評論,本身也總結出了一些閱讀筆記。

 函數

 

 

背景:
       咱們知道,人類經過幾個簡單的例子就可以學會新的概念,可是對於傳統的機器學習算法,卻須要幾十甚至是幾百倍的數據訓練才能夠達到這樣的程度。工具

 

 

舉個例子:
       咱們看到上圖中左上角這個兩輪車,咱們一眼看到它的時候便知道它是代步工具;還能夠根據它衍生出其餘形狀的兩輪車;將這個二輪車解析爲扶手、輪胎這一類更小的部件;還能夠將它和其餘的代步工具聯合起來創造出其餘的代步工具。
       對右邊的這個圖也是同樣,看到一個字符便知道它是那個字符系統裏的;手寫字符能夠寫出其餘的變體(人每次寫字的字跡都是不同的);解析字符的筆畫;根據一些字符,解析他們的特色創造出新的字符。
       這說明,人類具備從極少許的數據中學習豐富概念的能力:歸類、派生、解析、創造。
       本文試圖模仿人類的學習能力創建一個學習模型,從稀少的數據中造成豐富的概念。
 性能

 

 

 

 

BPL:
       文章提出了BPL(貝葉斯規劃學習)框架來進行類人概念學習。BPL框架具備三個重要的特性,分別是合成性、因果性、學習如何學習。合成性的意思是概念是由更簡單的基本元素構成的,好比說一個字符是由更簡單的筆畫構成的;因果性指的物體是如何生成的這一抽象的關係。咱們看到一個字符,就知道它是怎麼寫出來的,由哪些筆畫構成、這些筆畫間有什麼關係;學習如何學習則指的是過去的概念知識可以幫助學習新概念,簡單地說就是BPL能夠從現有的字符中抽象出其部件,而後根據不一樣部件的因果關係創造新的字符。
       BPL框架把上述三個特性結合在一塊兒,具體思路是:每個「概念」均由多個簡單的「基本元素」組成,「基本元素」之間有位置、時間、因果等關係,「基本元素」根據這些關係選擇性的「組合」,就獲得一個相應的「概念」的實例。將上述關係在BPL模型中進行參數化,經過必定的機率計算,自動的學習這些參數。
 學習

 

 

       文章的主要內容:把BPL應用在手寫字符的單樣本概念學習中,實現了模擬手寫字符,一次性分類手寫字符,產生新的手寫字符。 一些定義:
       測試

 

在學習這三個應用以前,先了解一些定義:優化

 

 

 

 

 

模擬手寫字符:

 

 

將BPL應用在模擬手寫字符這個過程分爲兩個部分:type level和token level。Type level主要是構建字符的解析結構,token level是根據解析結構產生手寫字符的過程。
       先來看type level:
       (1)從背景集合的經驗分佈(就是前期的一些統計規律)中取樣k個part,每一個part中取樣n個subpart;
       (2)從背景集中學習獲得離散筆畫集,構造一個part的模版;
       (3)經過採樣每一個subpart的一些控制點和尺度參數,將part表示成參數化的曲線(到這一步已經獲得了筆畫的輪廓,軌跡);
       (4)根據relation(attached along,attached at start)獲得筆畫間粗略的位置關係(獨立放置、開始、結束、仍是沿着以前的subpart);
       這時候就已經獲得了字符的解析結構,而後進入到token level的過程:
       (1)引入適當的噪聲來生成筆畫曲線S(m);
       (2)筆畫開始位置L的精確選定,從背景集中可以獲得筆畫的空間位置關係,結合上一筆,取樣便可獲得part的開始位置;
       (3)進行放射變換A(m)以及加入適當的噪聲;
       (4)經過隨機補償函數便可獲得二值圖像,用灰色墨水畫出軌跡。


 

 

 

 

一次性分類問題:

       給出一個訓練圖像,5個訓練圖像的解析及得分,每一個訓練圖像都能改形成測試圖像。
       選取fast bottom-up方法引入一系列的候選解析,使用連續優化、局部搜索造成離散後驗機率分佈的近似值,得分高的即爲最佳解析。
       這裏的得分是log 後驗機率
       得分越高,重構的圖像越清晰,說明他們更有可能屬於同一類。

 

 

 

 

 產生新字符:
       問題定義:給定一個背景集中的幾個例子,根據它們的特徵創造出屬於該背景集的新字符。
       解決方案:對這些例子進行解析,從新生成「經驗」,即這個背景集中最常出現的筆畫數目、子筆畫的樣式、相互位置關係等等,而後再根據這一經驗去創造新的字符。

 

 

實驗結果分析:
       研究者對這個AI系統進行了幾項測試來檢驗BPL模型。

 

 

       左邊這個圖是一次分類(one-shot classification)的測試結果,研究者給定一張字符圖片,要求人類測試者和BPL機器從20張圖片中選出和他同類的圖片。人的錯誤率只有4.5%,BPL表現出了更低的錯誤率,只有3.3%,而深度卷積網絡表現出了13.5%的錯誤率,HD模型的錯誤率最高34.8%,即便是優化後的深度卷積網絡也有8%的錯誤率。所以BPL的優點是能夠在概念的學習中對隱含的因果關係進行建模。


       在這個一次分類(one-shot classification)實驗中,研究者還對缺乏「學習如何學習」或「合成性」特性的BPL模型作了測試,分別表現出了11%和14%的錯誤率,說明這兩個特性對BPL起着重要做用(缺乏「學習如何學習」(no learning to learn)的意思是破壞以前設計好的type level和token level生成模型的超參數,好比以token level爲例,原來設計好的參數多是讓along這種位置關係的兩個筆畫在必定範圍內進行鏈接,破壞後則是徹底隨機的一種鏈接方式。缺乏「合成性」(no compositionality)的意思是說把字符當作一個總體,經過一條樣條曲線進行擬合,而不是像以前同樣作筆畫和子筆畫的拆分。)

 

 

 

      右邊這個圖是作了一個視覺圖靈測試,研究者向BPL系統展現它從未見過的書寫系統中的一個字符例子,並讓它寫出一樣的字符。並非讓它複製出徹底相同的字符,而是讓它寫出9個不一樣的變體,就像人每次手寫的筆跡都不相同同樣。與此同時,人類測試者也被要求作一樣的事情。最後,經過視覺圖靈測試來比較人和機器產生的例子——研究者要求一組人類裁判分辨出哪些字符是機器寫的,哪些是人類寫的。 這個測試的評價參數爲Identification level,理想狀況下ID level的值爲50% ,即裁判不能區分哪些是機器產生的,哪些是人產生的,最差的表現狀況下ID level的值是100%,就是說人類裁判徹底可以正確區分人類和機器。從圖中能夠看出BPL的ID level是52%,很是接近理想值。而缺乏「學着如何學習」或「合成性」特性的BPL模型的ID level分別爲80%和65%,說明這兩個特性對BPL模型的擬人化很是重要。
       爲了更直白地評價分解狀況,研究者經過另一個動態視覺測試來完成此項任務,而且換了一批裁判,每一個裁判會被展現人類和機器寫同一個字符的筆畫過程,這時BPL在這一視覺圖靈測試上的表現爲59% ID level,不是那麼理想了。若是再把學習到的筆畫的書寫順序等先驗知識去掉,結果僅爲71% ID,所以捕捉正確的動態的因果關係對於BPL來講很是重要。
       後面的兩組實驗就不作具體講解了,總之研究者經過這些實驗告訴咱們,BPL經過了視覺圖靈測試,大多數人類裁判已經沒法對BPL模型生成的字符和人類手寫字符進行有效的區分了。

 

 

 

 

 

 

總結:
       做者在本文中基於貝葉斯準則提出了一種計算模型,用來模擬人類的學習能力,將其用於手寫字符的單樣本概念學習中,實現模擬手寫字符、一次性分類手寫字符、產生新的手寫字符。在具備挑戰性的一次性分類任務上,該模型實現了人類層面的性能且賽過最近的深度學習方法。該論文也經過「視覺圖靈測試」探索了模型創造性泛化能力,代表該模型在不少方面和人類的行爲是極爲類似的。
       BPL的意義在於:模仿了人類對新事物的認知,經過少許的樣本學習出一類事物。不一樣於目前主流的運用大量數據訓練複雜模型的深度神經網絡,BPL提供了學習模型的一種新思路。 

相關文章
相關標籤/搜索