機器學習與腦機介面的願景


Posted By Mr. Thursday

brain之前幾篇文章稍微提到了計算神經科學想要以數學的方法,計算出神經生物上詳細的模型,好的模型還可以在拿回電腦科學領域,尤其是人工智慧的問題上面,作為解決的方法。至於現在的機器學習方法,為甚麼我覺得不夠用呢?我主要是覺得困難在兩個地方:特徵 (feature) 的擷取,參數 (parameter) 調整過程中需要人的參與,以及文字意義 (meaning)學習上可能會有困難。以下就這三個部分來做個討論,順便討論計算神經目前能夠解決的部分,和未來有可能達成的目標 (人機介面: Brain-Computer Interface)。

首先先和各位談談二項式係數。不知道各位是否有學過多項式呢?如果不知道二項式係數,可以先看看下面這個巴斯卡三角形

多項式可以說是很多項的式子,每一個項目都是由一些變數乘積起來,像是xy或是y^2 (y平方的意思)。多項式就是這些項目,用加減乘除等運算連起來。如果每一個項目裡面只會出現兩個變數,就稱為二項式了。至於每一個項目前面的常數部分,就稱為係數,譬如說x^2 + 2xy + y^2,第一項、第二項、第三項的係數分別就是1,2,1。

今天如果要請各位,用巴斯卡三角形的方法,來計算二項式係數,前幾列還好,1,2,1,1,3,3,1,1,4,6,4,1,1,5,10,10,5,1,心算如果比較好的讀者,也許可以再往下算,算到1,8,28,56,70,56,28,8,1那一列都沒問題。然而如果我們要求第100列,或是第1000列的二項式係數,然後用巴斯卡三角形的方法往下算,也許沒有幾位可以辦得到了。這時候有一些方法,第一種方法是像九九乘法表一樣,用記憶背頌結果,不但速度快,也回答得出來。第二種方法是用電腦計算機來計算。如果純粹依靠人腦計算,數字越來越多,記不住, 或是算了後面幾項,前面幾項的結果已經忘記了。所以記憶力和心算能力,變成解決這個問題的重點。然而現在已經有了數字計算上,比人腦快的電腦,為甚麼還要人類去用腦計算二項式係數呢?

這邊我想回到九九乘法表的地方談談知識分享的問題。今天我們有 Wikipedia,是個大家可以分享知識的地方,也是目前Web2.0分享模式成功的案例,雖然獲利模式是以捐款贊助來維持運轉。另一方面,現在許多智慧財產,高科技技術,是用專利保護著。所以我們可以想想,甚麼樣子的知識適合分享呢?以剛才的九九乘法表為例,大家都會九九乘法表,是利人又利己,因為大家平常找零錢的時候速度快很多。如果今天店員只會加法,買了20元的東西,給店員100元鈔票。店員會先找一個10塊,然後說30,再給10塊,然後說40,再找10塊,然後說50,最後再找一個50塊,然後說100,錢都找完了。如果店員會減法,100-20 = 80,直接拿80元出來找,速度就快很多。九九乘法表讓我們生活中需要運算的時候速度變快許多!

所以,我們會因為別人會了九九乘法表,而覺得失去競爭優勢嗎?不會!反而覺得是雙方都有受益。因此這種雙方都能夠受益的知識,適合用Web2.0方式分享。然而今天那些有專利的知識,是否也要分享呢?也許隨著人類的文明進展,如果人腦有發達到一天,每個人的記憶力和理解力都增加,每個人都可以學更多東西,那麼分享比九九乘法表更難的知識,是大家都能受益,因為大家能夠更快解決問題,而不必擔心競爭力的問題。因此短時間來看,專利是保護也是提供足夠動機來創新知識的動力,分享似乎是破壞了市場價格。然而長遠來看,只要人類有辦法演化成更有智慧的生物,現在看起來難的東西,將來就變成像九九乘法表一樣基本,這時候原本專利的東西,就是適合拿出來分享的時候了!也許漸進式的分享越來越多難的東西,長期來看是對人類文明有幫助,對個人來說也不會有競爭力的問題了!

回到巴斯卡斯角形,我們人腦要怎樣子才能有能力心算出來呢?回答這個問題之前讓我們先討論機器學習方法的困難點。

特徵 特徵 特徵

首先,人類目前有一些能力,機器還沒有辦法達成。譬如說給一張圖片,裡面有一條河,有一座山,要找一張相似的圖片,不管是白天或是晚上,晴天或是與天,河水是不是藍色,山頂有沒有雪。這個時候需要一個能力叫做「抽象化」。一張圖片如果可以抽象化,我們可以在抽象後的空間裡面比對兩張照片,而非像素的空間比對兩張照片。現在的做法是把兩張照片,用一些統計量公式,算出一個相片的指紋 (finger print, signature),然後比對其他相片的指紋signature,如果接近就判斷是類似的照片。然而這個方法沒有用抽象化,因此公式的好壞,訓練資料的代表性,就影響的正確率。另外也少了人類解決這個步驟的方法:抽象化。如果說我們要像製造飛機一樣,不必模仿鳥類要有拍動的翅膀,就可以用空氣動力學飛起來,還可以乘載200多人。機器學習法如果做的好,正確率也是會高,但是碰到這種人工智慧的問題,像是「抽象化」、「尋找類似的東西」,機器學習目前似乎還沒有很好的解答?

抽象化又牽涉到特徵 (feature) 的擷取。今天各種機器學習演算法,通常要把每一筆資料用向量的方式來呈現,向量裡面每一個元素,就是一個特徵 (feature)。譬如說照片裡面,每個像素可以當成一個特徵,有多少直線可以當成一個特徵,橫線的個數可以當成一個特徵。然後用機器學習演算法來學習出一個模型,作為日後判斷的基礎。然而特徵的選定,目前還是需要人類的參與,選的好或壞常會影響正確率。如果我們想要自動化選取特徵的過程,我們可能就看看選擇某些特徵的時候,正確率如何?選擇另外一些特徵的時候,正確率又如何?先用Cross Validation來看看,哪些特徵判斷力最好?然而這個時候訓練資料的代表性又很重要,而且訓練出來的模型,比較不能舉一反三地應用在另外一個領域裡面,這又和真正的人類智慧有些不同了。

參數 參數 參數

另外一個需要人類參與的,就是模型裡面的參數。有些參數是要從資料裡面學習出來。有些參數可以用人為來調整。舉例來說,SVM (Support Vector Machine),因為公式計算過程中有一些參數,可以調整,同樣地也是可以用Cross Validation來決定用甚麼參數,或是用預設值就好。然而這又是一個人類需要介入的地方,也是機器無法舉一反三的地方。

語言意義的學習

最後要提到的是人類語言以及意義了解的問題。在機器學習或是人工智慧學習方法裡面,大部分是用數字來表示一項資料,譬如說一個向量,裡面用數字來表示某個特徵的值。然而文字很難用數字表達,即使表達了,也沒有表達出意義。譬如說我們用10代表「山」這個字,那麼10 + 10 = 20,20代表甚麼呢?是「出」這一個字嗎?意義上也說不通。而且5+5+5+5,也等於20,那5是甚麼呢?這邊就發現文字意義,要用數字的運算表達出來,有問題。

如果是用邏輯命題,或是規則資料庫(rule-based),或許可以不用數字來表達資料。然而如果想要解決之前提到的特徵問題,我們可能又會遇到一個情形。譬如說:我們想要比對相似的照片,裡面有一座山、一條河、和一間房屋。所以我們開始注意每一張照片的山、河、和房屋。隔天我們要比對有交通工具的照片,我們要多一個特徵叫做交通工具。機器永遠沒辦法舉一反三,人類要不斷介入才能解決。

也許目前機器學習法有部分的解決方法,或許在ICML這個機器學習最重要的會議裡面可以先找找答案。對於特徵選擇和參數的部分,我們也可以把未知的部分當成隱藏變數 (hidden variable),然後用機率式的學習法 (probablistic learning),把這個問題當成是部份可觀察的問題來解決 (partial data)。這部分UAI會議 (Uncertainty AI)也可以找找是否有解答。

也因此就我個人而言,會想從人類大腦的神經機制,來尋找解決的方法。雖然目前計算神經所提出的模型,只能解決一些比較小規模的問題,譬如說視覺上看到橫線或直線,神經的反應機制,或是照片的簡單分類在神經上的機制。如果要知道人類尋找「類似」照片的時候,那一個離子通道產生變化,或是人類思考某個文字,產生某個意義的時候,哪一個神經傳導元素作用了哪一個蛋白質,這部分目前都是未知的!然而還是有機會,讓我們知道這些過程的神經機制,除了應用回電腦科學以外,還可以製造人機介面

目前的人機介面大部分是給身體無法移動的病患,可以透過眼球或是腦波控制,來移動滑鼠游標,或是控制病床升降,或是開燈,或是替代損壞的視網膜。如果人類比較高層次的認知活動,像是語言產生意義,尋找類似物品和抽象化的能力,其背後的神經機制若能夠發現,那麼我們也可以了解大腦思想的表達方式,人腦電腦之間可以互相轉換資料,這時候人腦的能力和電腦的計算能力,就可以互補,讓我們計算巴斯卡三角形速度更快而沒有負擔,在未來巴斯卡三角形就像九九乘法表一樣基本的時代裡面。電腦也可以運用人類抽象化的能力,更正確地尋找「類似」的東西,並且是以更快的速度達成抽象化才能解決的問題。這個人機介面,也是我研究計算神經的長期目標!

最後總結一下之前提到的機器學習問題

  • 人腦有「抽象化」能力,可以尋找「類似」的東西
  • 機器學習法需要人類參與,無法廣泛地舉一反三,包含特徵、參數、和意義了解
  • 特徵的選擇即使可以用Cross Validation解決,或是規則式(rule-based)方法解決,但是特徵可能無窮無盡多,選定哪些特徵也會牽涉到訓練資料的代表性
  • 機率式學習可以暫時解決特徵選取的問題
  • 機器學習法裡面的參數需要人類參與,也無法廣泛地舉一反三,訓練資料需要代表性
  • 機率式學習法也可以暫時解決參數選取的問題
  • 但是到了文字意義學習的問題,機率式學習法也會有問題,因為文字要數字化很難。目前有一些統計量,或是計算字的頻率,將文字數字化(可以參考字字珠璣: TF 和 IDF),但是對於了解意義還是有段距離。如果今天有個演算法可以學習到:某個字出現五次以後,另外一個字又出現八次,就表示某個意思,這個意思類似的概念可以用某個字先出現三次再出現某個字兩次來表達,那也算是機器學習法的成功。

Turing Test是最早提出來檢查電腦是否具有人工智慧的方法。Turing Test是說,如果一個機器用布幕遮起來,然後外面有一個人和這台機器說話,如果這個人無法分辨步幕裡面是機器還是真的人類在說話,這個機器就具有人工智慧。然而這個定義有些像是操作型定義,因此我想如果要詳細列出人工智慧的條件,或許可以像剛才提到的部分,整理如下:

  • 要有「抽象化」尋找「類似」物品的能力
  • 特徵(feature)和參數(parameter)能夠減少人類的介入,舉一反三
  • 即使需要了解文字意義的問題,也能夠自動選取特徵和參數
  • 即使需要人類介入,是用人類語言教機器,而非更動參數的方式教導機器
  • 文字數字化的方法

最後再整理一下這篇文章的主旨

  • 機器學習的問題我認為有特徵參數 、和文字意義了解的問題
  • 例子主要是在需要人類「抽象化」和尋找「類似」東西的問題上
  • 文字意義的了解,以及如何把文字轉換成電腦可以運算的數字系統是個問題
  • 人機介面如果可以互相表達「抽象化」等認知功能,就可以讓人腦和電腦互補
  • 人腦電腦互補的時代,巴斯卡三角形的計算將和九九乘法表一樣簡單,困難的知識分享出去不用擔心減少個人的競爭力,反而讓人類文明進步,大家都受益
  • 能夠傳送抽象化能力人機介面,是我研究計算神經科學長期目標動機

當然,因為我並非機器學習的專家,以上困難之處,也是我個人的想法,或許最近也有新的解法,或是其實本來就有解法可以解決,都歡迎各方好手提供回應,多多指教!也歡迎各位如果有興趣,不妨想想如何讓電腦具有抽象化的能力,即使不參考神經生物的機制也是可以的!謝謝各位!

參考資料

相關新聞

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!