機器學習方法給人類教學的啟示

作者:Mehmet Alican Noyan

編譯:weakish

一直以來。人工智慧(AI)和人類智能的比較往往會引起各種激烈的爭論:

  • 機器有可能像人類一樣思考嗎?
  • 離智能機器統治世界還有多遠?
  • 人工神經網路借鑒了大腦嗎?

這類問題的焦點是塑造AI的未來。但我們為什麼不想像如何借鑒AI改進人類智能呢?我知道你的懷疑,別擔心,這不是一篇關於編輯基因升級大腦的文章。

人類智能不僅關乎大腦,教育也是我們的智能的基本部分。我們可以通過更好的教育改進人類智能。但是看起來我們在訓練機器方面要比訓練人類成功得多。

這一現象有多種可能的解釋。AI是一種數學構造,大部分情況下我們都能得出一種定義更好的表現測度,而教育包含經濟、社會、政治、宗教成分,更好的定義變得主觀。此外,在AI中,我們可以更加自由地進行試驗,以找出效果最好的學習方法。另一方面,教育領域的試驗卻有諸多限制(經濟、時間,等等)。最後,我們有基準數據集幫助世界各地的人比較他們的機器學習方法。而教育方面很難做這種普適的比較。

這些挑戰並不意味著我們走投無路。Asimov說過:「當下最可悲的事情是,科學積累知識的速度超過社會積累智慧的速度。」為了做出改變,讓我們使用AI方面的知識來改進人類智能。

基於規則和自行學習

AI有兩種方法:基於規則的系統,硬編碼演算法遵循的規則;自行學習(即機器學習),給演算法提供數據,演算法自行學習模式、關係、變換。在視覺任務上,大家公認機器學習表現優於基於規則的演算法。換句話說,我們偏向於展示數據,而不是告訴機器怎麼做。

但在人類教育上我們的做法不同。我們告知、強行灌輸所謂的真理,而不是向學生展示數據讓他們自己學到真理。這阻止學生內化概念。對重複性任務等一些有限的問題而言,這可能已經足夠。然而,要處理新問題,需要習慣變通、混合不同的想法。這隻有在理解概念的本質,而不是僅僅死記硬背的情況下才能發生。

不要求學生知道,只要求學生記憶老師講授的內容。

—— Paulo Freire

如同在機器學習中所做的,我們應該信賴自行學習,也就是自我教育。學校應該創建一個可以激勵自我教育的環境。

我堅信,自我教育是唯一的教育形式。學校的唯一功能是讓自我教育更容易;做不到這一點,那它就什麼也沒做。

—— Isaac Asimov

如何激勵自行學習?

即使我們同意自行學習是前進的方向,我們如何執行呢?AI研究者投入了大量的精力,研究機器學習,我們有廣泛的知識可供借鑒。

在許多機器學習任務中,我們使用一種稱為梯度下降的優化演算法。這是機器實際學習的方式。理解這一演算法的基礎很容易。它是一個迭代演算法,逐步逼近答案。它從做出一個預測開始,然後得到一個離真相有多遠的反饋,然後做出一個略微改善的預測。這一序列不斷繼續,直到我們滿意於預測和真相的差距。換句話說,學習是一個主動的一步一步的過程,其中演算法在每一步重新考慮它的假定,並逐漸改進。

我無法替別人思考,也無法不藉助於別人而思考,別人也無法替我思考。即使人們的想法是迷信,或者很幼稚,只有當他們在行動中重新思考他們的假定時,他們才能做出改變。在這一過程中,必須生產自己的想法,並據此行動,而不是消費其他人的想法。

—— Paulo Freire

(這不是很像梯度下降嗎?還是說我讀了太多關於AI的東西走火入魔了?)

如你所見,梯度下降可能幫助我們理解如何執行自行學習。我們也可以從測試階段得到一些經驗。

每個從事ML的人都牢記的一點是訓練演算法時使用一個數據集(稱為訓練數據),然後使用另一個數據集測試(稱為測試數據),以確保演算法並不是在記憶(過擬合),確實在學習。當然,訓練數據和測試數據必須來自同一分布。你不能教授數學,然後期望演算法能夠很好地回答歷史問題。

例如,如果我們創建貓分類器,我們通過展示加菲貓、Hello Kitty、跳跳虎等圖片訓練演算法,然後使用不同種類的貓:菲力貓、Cosmo貓、費加羅……如果演算法能夠說菲力貓是貓,那麼它學習了什麼是「貓性」。如果演算法說加菲貓是貓,那它也許學習了「貓性」,但也可能只是記住了加菲貓是貓這一事實而已。因此,這一領域的每個從業者都贊同我們不應該使用訓練數據來測試。你覺得人類學習也適用這一原則嗎?

教育小孩的時候,我們常常使用特定的一組問題訓練和測試。然而,生活中的問題沒有預定義的嚴格結構。它們不斷演化。我們只有內化概念而不是死記硬背才能應對生活中的問題。因此我們應該用開放的問題挑戰學生,讓他們面對不確定性,讓他們在領域中自己猜測和探索。

例子:如何教授導數?

我們來舉一個具體的例子,比較下基於規則的方法和自行學習的方法在教授導數上有什麼不一樣。如果你願意,可以跳過這一部分。這裡的目標是展示如何激勵自行學習導數,而不是教你導數是什麼。

傳統上,導數的教學是通過介紹求導公式以及展示幾種常見函數的導數。接著,學生通過求解一些問題記憶公式。這和基於規則的AI一樣,硬編碼演算法需要遵循的規則。

下面讓我們看下另一種方法,也就是自行學習的方法。和我們在機器學習中做的一樣,這裡的目標是創建一個可以激勵自行學習的環境。我們不會灌輸任何東西,學生會自己學習。

導數的本質是瞬間變化,但改變是在整個時間段發生的,瞬間僅僅是其中的一個時刻。為了捕捉導數的思想,人們應該自己察覺其中的矛盾。我們怎麼能做到這一點呢?

我們可以討論下芝諾悖論中的一個:「假設你希望到達離你1米遠的一面牆。為了到達目標,你首先需要通過一半的路程,到達中點(1/2米)。剩下的路程同理。要通過剩下的1/2米,你首先需要到達1/2的中點(1/4米)。以此類推,你和牆之間總是剩下一段極小的距離。你可以逼近這面牆,但永遠也到不了——或者也許你可以在無窮次之後到達。但在現實生活中,我們知道我們確實可以到達牆。讓我們討論下這裡發生了什麼……」

希望這樣的討論能引導學生掌握無窮小和無限的概念,或者至少給他們帶來一點感覺。否則我們就迭代這一步驟,直到他們掌握概念或者至少有些感性認識為止,就像我們在梯度下降中做的一樣。具備了對無窮小和無限的理解之後,我們可以讓學生討論瞬時速度:

「平均速度是在特定時間段中的位移。但我們如何測量瞬時速度呢?瞬時意味著時間段是零,而如果時間停止,我們無法移動。看起來瞬時速度應該是0/0=未定義。你怎麼看?」

同樣,經過幾次迭代後(5個epoch應該夠了:) ),他們大概能夠得出結論,時間段逼近零,平均速度就逼近瞬時速度,正像我們在芝諾悖論中逼近牆一樣。實際上這就是導數(位移-時間函數的導數是速度),當學生嘗試為某些問題找出答案時,他們自己就能領會這一點。我們甚至可以基於這一理解得到上面的公式。我並不建議在教學中省略公式,但學生應該理解公式背後的動機。

我並不是教人導數的專家,所以這裡我嘗試給出自行學習導數的粗略輪廓。重點在於方法,而不是導數。你可以將這一概念應用於任何主題。例如,教攝影時,不要提供好照片的規則,而是引導學生去看優秀的網站、書籍,讓他們在看各種照片的過程中形成他們自己對攝影的理解。同時,你可以為他們組織展覽,讓他們展示自己拍的照片,並在建設性的討論中迭代地改進攝影技術。

如果你對學習導數感興趣,可以看下Grant Sanderson的這個視頻。它是一個最好的恰當教學的例子。在某些時間點,他會問一些問題,然後說「停下來反思一下」。這是關鍵,需要停頓和反思才能真正學到東西。

【視頻過長:見機器學習方法給人類教學的啟示】

他還說:「如果你感到古怪和矛盾,很好!你正努力對付微積分之父同樣面對過的衝突……」某種意義上,他正幫助你成為牛頓,這正是自行學習。

結論

可以說人工智慧是模擬人類智能。如果我們不去利用它的結果,那將是巨大的浪費:

  • 我們應該推廣自行學習而不是基於規則的學習。我們知道這是AI領域機器學習前進的路線。
  • 學生應該自行改進他們的假定。和我們在梯度下降中做的一樣,我們也許需要監督學習過程,在每一步給學生反饋,但不該給出解答。
  • 為了確保學生是在學習而不是死記硬背,我們應該讓他們面對沒見過的情況。在機器學習中,我們用未見數據集來測試演算法。

你也許在想這些關於教育的洞見早就為人所知,人類智能和人工智慧之間的對應根本沒那麼有用。但我們請你三思,這裡的關鍵在於,AI領域幾乎一致同意這些洞見,你覺得這些在人類智能領域同樣成立嗎?我確實意識到人類和機器是不一樣的,不可能說存在100%的對應。但是,很明顯,兩者之間有很強的關係。讓我們利用人類和機器之間這一有價值的相似性,來理解和克服我們教育自己小孩的方式上的挑戰。


推薦閱讀:

TAG:機器學習 | 教育 | 人工智慧 |