化整為零與見樹又見林的人工智慧

Posted By Mr. Thursday

本體論: 讓舉一反三變得可能裡面提到了機器在規則上面的學習,本體論 (ontology)是一件重要的事情,因為有了ontology,機器可以舉一反三,一件事情學習一次,可以以此類推到其他相同性質的事情上面,就如同我們第一堂數學課,學過了一顆蘋果加上一顆蘋果等於兩顆蘋果,考試的時候問一顆橘子加上一顆橘子等於幾顆橘子,我們知道是兩顆橘子,因為我們學到的是一個抽象後的規則: 1 + 1 = 2 ,不會因為蘋果換成橘子,就無法變通。

早期的人工智慧系統,是從邏輯出發,把外在的世界,轉換成一句一句的邏輯規則。或許我們會想問,為甚麼要用邏輯來表示外在世界呢?我們的大腦是用邏輯來處理事情嗎?首先,邏輯 (logic) 可以保證 sound and complete。甚麼又是 sound and complete呢?或許西方的法院裡面,證人作證之前,會先發誓說:I will tell the truth, the whole truth, nothing but the truth. (我會說實話,全部的真話,除了真話以外的都不說。) 因此 complete (完備) 就像是裡面所說的,「全部」的真話,不是部份的真話。sound (可靠) 就像是證人說的,「真話以外」都不說。因此我們如果使用邏輯內在表示法,來表示外在的真實世界,我們進行推理的時候,就不會推理出不會發生的事情。然而真實世界非常複雜,一滴雨滴從天上掉下來,中間溫度的變化,空氣摩擦力,地心引力,旁邊的雨滴,有許多的因素 (factor) 可以影響最後雨滴的位置。我們如果要用邏輯推理,前提的部分可能就要考慮所有可能的因素,才能保證我們用邏輯寫下來的規則,是真實的。

近代人工智慧系統,則是用機率表示法,加上統計對觀察資料的處理,來表示外在的世界。機率不會保證一個規則的sound and complete,但是會給這個規則一個機率值。如果機率值是0.7,代表說如果用了這個規則,100次裡面會有70次正確。或是說,如果有100次機會,70次用這個規則,會有最好的結果。再舉一個例子來說,今天我的手對著一把刀片揮下去,會被砍出一個傷口。我們就學一個規則:比手硬的東西,揮下去會受傷。但是一片硬的牆壁,手揮下去卻又沒有傷口,我們只好修改一下邏輯規則:比手硬,又尖尖的東西,揮下去會受傷。可是一堆沙堆出來一個刀片形狀,手揮下去,是沙堆破掉手沒有事情。因此對於邏輯系統來說,總是會一直出現「例外」,前提必須要不斷修改,才能保證整個規則的真實性。機率表示法來說,就是把例外當成可能發生的事情,「比手硬的東西,揮下去會受傷」的機率是0.8等等,剩下0.2的機率就是那些例外。不過機率也不全然是隨便給定,沒有真實的參考價值,也是要滿足一些基本條件,像是所有事件的機率加起來等於1等限制,因此可以證明如果照著算出來的機率值來行動,可以得到最好的期望值。

但是,除了邏輯機率這兩種內在表示法,是否就沒有其他表示法,可以保證推理結果的真實性,又能夠處理真實世界複雜的各種因果關係,讓我們繼續活下去呢?或是說,怎樣子讓電腦計算機,可以像人類一樣,舉一反三,能夠化整為零,察覺到最細微的關鍵變化,又能夠「見樹又見林」,知道各個部分之間的關聯性,對整個全局 (big picture) 能夠有所了解呢?在這邊我想提出一個想法,就是「化整為零」。

化整為零,就是把一件事情,分解成一個一個部分,分別來觀察,分別來推理。譬如說剛才想要推理哪些東西手揮下去會受傷?如果我們前提敘述的部分,只有「硬的」、「尖的」的巨觀描述,就會遇到例外。但是用機率來描述例外,似乎又不夠確定。因此我們可以把觀察的描述,分解 (break down) 成小的部分,譬如說刀子,分解成鐵原子來觀察,手分解成皮膚細胞來觀察。因為我不是奈米專家,因此我在這邊只能假設,是否某個東西可以劃破另外一個東西,在奈米尺度下,是因為某一個原子的結構,殼電子個數比較多,或是可以形成氫鍵?巨觀上就變成「可以切割」?重點是:在化整為零的尺度下,學習到的規則不再有那麼多例外了!

化整為零,在其他問題上,或許也是一種解決的方法。譬如說擁有權,一首曲子或是一部電影,有智慧財產權,但是化整為零,一小節音樂,幾秒鐘的片段,可能還是有擁有權。但是一個音符,某一塊10*10的片段,就如同一篇文章裡面的某一個字,不能說是有智慧財產權的了。這似乎也對應者我們對事物的理解。一個單字、一個音符、螢幕上的一個pixel,是零碎單獨的片段,但是很多個單字、很多個音符、很多的pixel,依照某種規則或架構「組合」起來,就形成一篇有意義的文章、一首有意義的樂曲、一部有意義的電影。零碎的東西比較少例外,但是組成一個有意義的整體,又是無法用邏輯作為內在表示方法了。

就如同我們的大腦,如果切割下來,就不過是一堆細胞和細胞活動,再切割,就不過是一堆胺基酸分子,再切割,就不過是一堆原子,再切割,就不過是一堆質子和電子,這些質子和電子,就不過是遵守著物理定律,沒有例外地運轉著。但是組合起來,我們的大腦,讓我們產生各種智慧的行為,用邏輯來表示都常有例外。因此,我想我們可以模仿生物上的資訊處理方式,既然我們的大腦,處理資訊的時候,就是先把外在的世界先化成零碎的部分,再一步一步組織起來,人工智慧系統,不妨也先把對外在的描述,用零碎的方式表達,再一步一步組織起來。

譬如說我們的視覺系統,在視網膜的地方,是一個一個pixel的表示,往後運送處理,在V1的地方,是一個一個線條的表示,接著在更後面的地方,開始有比較複雜的形狀的表示區域,最後才會辨識出,這是某一張人臉,這是某一棟建築。

化整為零會有甚麼樣子的好處呢?我想就是「見樹又見林」了!像上面三個字,第一張是「勿」,第二張我們會說是「勿」這個字倒過來,即使我們如果計算pixel差別的個數,可能第三張「匆」相差的pixel個數還比較少,但是我們會說第三張是「匆」而不會說是「勿」多畫了一點。同樣地,「戊」、「戍」、「戌」三個字長得差不多,我們都還是認得出來是不同的字。「肝」、「肚」、「肛」這三個字也是只差一點,但是我們都分的出來。但是某個字上面被墨汁不小心滴到一點,我們卻不會看不懂這個字。這就是生物系統,我們的大腦神奇的地方。我們大腦的反應會有選擇性 (selectivity),不同的字可以分的出來,卻又可以有不變性 (invariant),一個字在適當範圍內的改變我們都還是認為是同一個字。而且這些改變不是pixel層次上面的變化,就像我們過新年的時候,把「春」和「福」倒過來寫,還是看的懂,pixel上來說差別非常多。但是我們大腦裡面,就是用一種抽象後的模型來表示一個字,因此非常具有彈性。這種彈性那邊來?我想就是因為大腦先化整為零,先在零碎的層次上,有100%確定的規則在運轉,接著用一個目前尚未明白的方法「組合」起來,如同本體論把事物和概念一層一層抽象組合起來一般。本體論的學習,我想也是如此地在生物系統中完成。最後整個系統集體地表示出一個巨觀的外在世界,就是一個看的到的字,或是一張臉,這個時候不僅可以辨識一件物體,例外也可以彈性地表示,也就是見樹又見林了!

神經網路本身就是一群神經細胞,彼此之間透過連結「組合」起來,只是組合的方式、組合的巧妙、組合如何自我學習出要如何組合,現在是未知。然而這種由零碎組合成大系統的方式,正好就是化整為零,見樹又見林的表示法最佳的實作方式了!目前是否已經有一些化整為零,見樹又見林的神經網路系統呢?目前計算上、理論上已經有一些方法:譬如說 PCA (Principle Component Analysis),就是把高維度的資料,依照 eigenvalue 化簡成數個低維度的資料來表示。矩陣運算裡面,也有 NMF (Non-negative Matrix Factorization),把大矩陣化解成一個一個小矩陣來表示。MIT BCS (Brain and Cognitive Science)的一位教授 Sebastian Sueng 在他的paper裡面就有比較這兩種方法,對於人臉辨識的效果如何?同樣地也是在零碎如何組成全貌上面的方法的差別!其他組合方法還有很多,其實傅立葉分析 (Fourier Analysis) 就是一種把大化成小的方法,其他還有 LDA (Linear Discrimination Analysis)、ICA (Independent Component Analysis)、以及SVD (Singlular Value Decomposition)等等。每一種分解法、或是說每一種組合法,都有各自的巧妙和不同處。不過共同的地方在於,都還沒有找出生物上的關聯性,也就是說我們的大腦,似乎不是用PCA,也不是用NMF,也不是用其他各種現在發明的分解組合方式,來內化外在世界的資訊。既然如此,遇到例外,或是需要舉一反三的時候,生物系統立刻就顯出和上述理論實做出來的系統的不同處了!

因此講了半天,化整為零是個方向,然而怎樣子組合起來,就像是如何學習出本體論一樣,是一個新的瓶頸,或是說,我們找到真正的瓶頸在哪邊了。不管是從理論出發、還是從生物實驗出發,只要我們努力不懈地往目標追尋,不也是一種實踐生命目的的過程?

 

延伸閱讀

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!
  • http://www.lifeparty.idv.tw/blog 同人

    這篇文章讓我想到用碎形演算法的壓縮方式, 那也算一種化整為零吧, 當然在學校聽教授講解這個演算法的觀念時, 我想到的就是易經, 把世界用八種符號組合出來, 而根本的零件, 其實只是陰陽的觀點不斷複製而己.

  • http://www.lifeparty.idv.tw/blog 同人

    這篇文章讓我想到用碎形演算法的壓縮方式, 那也算一種化整為零吧, 當然在學校聽教授講解這個演算法的觀念時, 我想到的就是易經, 把世界用八種符號組合出來, 而根本的零件, 其實只是陰陽的觀點不斷複製而己.

  • SL

      我總覺得邏輯只是幫助快速了解的工具,因為最基本的幾個定義都是人類自己在定的,並不能完全地支配著很多事物的道理。所以我直覺地認為這大概也是為什麼人工智慧還不能完全用邏輯搞定的原因。而機率嘛,是也可以當成分析工具,但這種感覺就像是在對一個函數出來的數字做統計,而不是從最基本的原理去找出函式。

      所以我很讚同這篇文章這樣個看法,我總是覺得很多事物都是由最基本也最容易了解的東西所組成,只要把這先搞定,那些再複雜的數學式其實都不成問題……

      當然,這只是直覺呀……(茶)

  • SL

      我總覺得邏輯只是幫助快速了解的工具,因為最基本的幾個定義都是人類自己在定的,並不能完全地支配著很多事物的道理。所以我直覺地認為這大概也是為什麼人工智慧還不能完全用邏輯搞定的原因。而機率嘛,是也可以當成分析工具,但這種感覺就像是在對一個函數出來的數字做統計,而不是從最基本的原理去找出函式。

      所以我很讚同這篇文章這樣個看法,我總是覺得很多事物都是由最基本也最容易了解的東西所組成,只要把這先搞定,那些再複雜的數學式其實都不成問題……

      當然,這只是直覺呀……(茶)

  • http://www.lifeparty.idv.tw/blog 同人

    其實邏輯的世界等同於巨觀因果層面,而機率等同於微觀量子層面。我認為要看我們想要解決的問題是什麼,否則即使分解到最後,我們還是會發現缺乏生命力(把原生質的構成元素組合起來不見得就會產生生命),也就是我不知道我所暸解事物的涵義,那就空虛了。

  • http://www.lifeparty.idv.tw/blog 同人

    其實邏輯的世界等同於巨觀因果層面,而機率等同於微觀量子層面。我認為要看我們想要解決的問題是什麼,否則即使分解到最後,我們還是會發現缺乏生命力(把原生質的構成元素組合起來不見得就會產生生命),也就是我不知道我所暸解事物的涵義,那就空虛了。

  • Tasuka

    有一些錯別字。
    “在“切割,就不過是一堆質子和電子
    「戊」、「戍」、「戌」三個字“漲“的差不多
    依照 eigenvalue “畫“簡成數個低維度的資料來表示

  • Tasuka

    有一些錯別字。
    “在“切割,就不過是一堆質子和電子
    「戊」、「戍」、「戌」三個字“漲“的差不多
    依照 eigenvalue “畫“簡成數個低維度的資料來表示

  • http://mmdays.com/ Mr. Thursday

    錯字已更正! 謝謝!
    —————
    邏輯表示法如果可以在符號化的過程中 加上抽象化的能力
    就能夠在matching前提的時候 比較有彈性了
    —————
    碎形的演算法我還沒學過
    易經的話如果可以前後連貫不會互相矛盾
    能夠sound and complete的話 也許就能夠稱作另一種表示法了
    —————
    巨觀和微觀之間…我想最有趣的
    應該是微觀的東西怎樣子組織起來 成為生命體
    在組織起來…成為一個可以舉一反三的系統
    因為目前各種工程上化約(reduction)的方法
    或是階層式(hierarchical)的組織方法
    似乎都還沒辦法和生物的組織方法有同樣的舉一反三效果
    因此這部分是可以從生物裡面逆向工程的地方
    只是生物的逆向工程也不大容易了
    所以可以理論和生物兩個方向同時進行
    看看哪一個方向先有突破囉…

  • http://mmdays.com/ Mr. Thursday

    錯字已更正! 謝謝!
    —————
    邏輯表示法如果可以在符號化的過程中 加上抽象化的能力
    就能夠在matching前提的時候 比較有彈性了
    —————
    碎形的演算法我還沒學過
    易經的話如果可以前後連貫不會互相矛盾
    能夠sound and complete的話 也許就能夠稱作另一種表示法了
    —————
    巨觀和微觀之間…我想最有趣的
    應該是微觀的東西怎樣子組織起來 成為生命體
    在組織起來…成為一個可以舉一反三的系統
    因為目前各種工程上化約(reduction)的方法
    或是階層式(hierarchical)的組織方法
    似乎都還沒辦法和生物的組織方法有同樣的舉一反三效果
    因此這部分是可以從生物裡面逆向工程的地方
    只是生物的逆向工程也不大容易了
    所以可以理論和生物兩個方向同時進行
    看看哪一個方向先有突破囉…

  • http://www.lifeparty.idv.tw/blog 同人

    其實窮則變,變則通,通則久。易經的推演是如此,碎形的演化也是,生命的演進不也是如此嗎?

    生物我並不是很懂,不過從軟體開發的過程倒是可以體會一點演化的味道。軟體設計的演進多半是從事實(資料)產生概念或意義(資訊),再從意義中出現應用(知識)。微觀與巨觀,我想除了階層,關聯與網路組織方式也是線索之一吧?

  • http://www.lifeparty.idv.tw/blog 同人

    其實窮則變,變則通,通則久。易經的推演是如此,碎形的演化也是,生命的演進不也是如此嗎?

    生物我並不是很懂,不過從軟體開發的過程倒是可以體會一點演化的味道。軟體設計的演進多半是從事實(資料)產生概念或意義(資訊),再從意義中出現應用(知識)。微觀與巨觀,我想除了階層,關聯與網路組織方式也是線索之一吧?

  • http://mmdays.com/ Mr. Thursday

    嗯…所以現在的問題應該就是
    要用怎樣子的一個符號系統…或是怎樣子的網路表示法 (representation)
    來表示外在世界各樣事物的關係關聯和規則
    內在表示又要怎樣子從無變為有…也就是學習的過程了
    並且學習後得到的內在表示(representation)是否具有彈性舉一反三處理例外的優點?
    因此需要的解答就是
    (1) 一個內在表示法 (representation)
    (2) 把外在刺激轉換成內在表示的學習過程
    (3) 學習結果具有舉一反三彈性的優點
    能夠找到一個符號系統(邏輯),或易經,或統計機率模型(model),或神經網路(network)
    只要能夠滿足上面的條件
    就算是找到解答囉?

  • http://mmdays.com/ Mr. Thursday

    嗯…所以現在的問題應該就是
    要用怎樣子的一個符號系統…或是怎樣子的網路表示法 (representation)
    來表示外在世界各樣事物的關係關聯和規則
    內在表示又要怎樣子從無變為有…也就是學習的過程了
    並且學習後得到的內在表示(representation)是否具有彈性舉一反三處理例外的優點?
    因此需要的解答就是
    (1) 一個內在表示法 (representation)
    (2) 把外在刺激轉換成內在表示的學習過程
    (3) 學習結果具有舉一反三彈性的優點
    能夠找到一個符號系統(邏輯),或易經,或統計機率模型(model),或神經網路(network)
    只要能夠滿足上面的條件
    就算是找到解答囉?

  • Pingback: (依主題重組):電腦技術領域 « eweibookmark()