現在的學生至少要在學校接受十多年的教育,每天記憶和學習,多么希望自己可以過目不忘,可既然記憶如此重要,為什么人類沒有演化成過目不忘?為什么我們要靠不斷重復來記憶?為什么好不容易記住的信息又會被遺忘?為什么我們的記憶還會混淆信息?傳統觀點對此的解釋有消退說和干擾說,認為遺忘是信息在腦中不可避免地消退結果,而混淆是不同信息干擾記憶所造成的??墒怯嬎銠C就能瞬間記憶,長期保存再相似的信息也不會混淆,但是患有超憶癥的人群也可以過目不忘,說明演化了數億年的生命完全有條件產生像計算機那樣既沒有消退,也沒有記憶干擾的大腦。同時,越來越多的研究也表明,遺忘恐怕并不是被動的,而是大腦的一種主動行為,那究竟是出于什么原因才會讓大腦去遺忘辛苦記憶的信息呢?在我們一步一步走向AI人工領域之前,我們先來一起分享關于記憶的奧秘。
PART 01
▉ 大腦記憶
我們只有搞清大腦是如何演化出來的,才能針對其原理來正確的學習和記憶。那么,我們最初為什么要演化出一個大腦呢?這個問題看似很奇怪,但生命是一種特殊的狀態維持方式,能被留下來的原因只有一個,那就是通過預測信息在不斷變化的環境中維持自身的狀態,而單靠應急反應就可以達成這一目的,并不需要一個大腦來體驗世界。任何生命都會感知外界信息,并做出維持自身狀態不變的對應行為,能體驗這個世界的個體,并不會比不能體驗這個世界的個體更容易被留下來,那么大腦究竟是干什么用的呢?
想要明白為什么大腦會演化出遺忘,必須先要搞清個體學習所面臨的困難,以蟾蜍吃蟲子為例,為了獲得能量,蟾蜍必須要構建一個模型,當看到蟲子就捕捉,否則不動,這時輸入為蟾蜍所接收到的反光信號,輸出為是否伸舌頭捕捉。而蟾蜍看到了什么,不僅取決于反光這個輸入信號,同時還取決于產出自身的模型是如何將輸入計算成輸出的,因此,不同生物看同一幅畫面會有不同的感知。而即使是同一物種之間也會有差異,同樣的,單有模型也不能決定輸出,比如,即使某人帶有致病基因,若沒有觸發該基因的環境輸入,則該人并不會得此病,這也是為什么不要看字幕來練習聽力,因為當沒有字幕這個輸入信號時,所構建的模型就無法使用了。由于生物所看到的事物會隨自身的模型而改變,所以人類看到的也并不是世界的真實樣貌,任何感知都是通過學習所構建的,也都有它的缺陷,比如,蟾蜍會把所有移動的橫條都識別為蟲子,而即使是真的蟲子,只要不動或者樹立起來就無法識別。這是因為蟲子的大小、形態、顏色以及太陽光照強度等不同,使得輸入信號是蟲子的情況有無數種,個體一生都無法見到所有情況,但想要存活,就不得不從有限的例子中構建一個也能識別從未見過的情況的模型,而這就是學習。比如高考,實際上,就是考生在有限的練習題中構建可解除從未見過的高考題的模型,而每個模型就是考生要學習的一個知識。模型可識別從未見過的情況的能力叫做泛化能力,也就是舉一反三,所以驗證學習的方式是考察從未見過的問題。但有時考生只會做學校出的模擬題,而不會做高考真題,有時我們只能看懂自己的字,卻看不懂別人寫的字,這種僅僅記住了學習時所見過的情況,卻無法解決未見過情況的現象,被稱為過擬合。相對的,學習時所見過的例子也無法記住的現象,被稱為欠擬合。多細胞生物想要生存,就不能盡記憶所見過的個別情況,比如蟾蜍是學模型的泛化能力就無法顧及到不動的蟲子,如果把他關進有大量死蟲子的罐中,它會活活餓死。又如,不能根據喬布斯和比爾蓋茨都輟學了,就構建一個認為輟學就能成功的模型,然后輟學回家,那就必須要抑制過擬合,提高泛化能力,但問題是,草履蟲是靠自然選擇來篩選模型的,可自然選擇無法干預生命周期內的學習,這時的多細胞生物又該如何篩選模型,如何提高模型的泛化能力呢?
不僅如此生命周期內的學習還需要新的記憶能力,單靠演化來學習的生命并不需要生命周期內的記憶能力,拿草履蟲來說,它就好比一個老式鐘表,并不能像手機鬧鐘一樣記起床時間,然而,個體學習就需要把曾經見過的例子記下來,等搜集到足夠的數據時用于學習,所以,記憶最初的產生并不是為了讓生物懷舊過去,而是允許生物從歷史經驗中學習。多細胞生物只要確保自己在產生后代之前不死,就可以讓演化機制在該層級上繼續工作,這就好比在游戲中,一旦到了存檔點,即使死了也可以讓后代繼續冒險,但前提是要有允許個體走到存檔點的學習能力,而面對這些新挑戰,我們的祖先又是靠什么保證繁殖前不死的呢?
PART 02
▉網絡記憶學習
網絡記憶學習,當我們思考生命該如何對抗未知的時候,便能體會到為什么當初生物的底層并沒有選擇像計算機一樣的過目不忘,這里將通過一個簡單的例子來比較兩種不同的記憶方式,假設有兩個輸入,都可以為零或一,當兩個輸入不一樣時就輸出一,否則輸出零,一共有四種情況。第一種記憶方式與九九乘法表一樣,就是將所有情況都記錄下來,隨后根據輸入去查找對應的輸出,這是我們意識層面比較熟悉的記憶,而第二種記憶方式是構建一個網絡,根據輸入直接計算出對應的輸出,這里的輸入和輸出都是一種狀態,輸入狀態有兩個因素所表達,好比物體的長和寬,因此也叫二維向量,而輸出狀態是一維向量,如果只記憶這種情況呢,可忽略第一個維度,只取第二個維度的原值,圓圈中的數值表示每個維度的狀態,這些控制著取多少狀態的鏈接表示權重,若只是記憶這種情況,那可以讓第一個維度乘以負一,與第二個維度的原值相加,不同于第一種記憶,網絡的記憶并不是存儲在某個特定的位置,而是有所有群眾共同所存儲的,無法直接查看,只能根據輸入計算出輸出。不過,若要同時記憶這四種情況,那之前任何一種直接從輸入狀態變換到輸出狀態的方式都不行,但可以先變換到一個非線性的中間狀態,再從中間狀態變到輸出狀態,不過,如果要記憶的情況特別多怎么辦?實際上,只要中間狀態的維度足夠大,就可以記任意函數,因為大不了給每一個情況都在中間狀態分配一個維度,這也叫做通用近似定理,不過通用近似定理僅僅保證了網絡可以記憶,并不保證網絡一定可以學習,因為如果需要見到所有情況的話,那就與第一種記憶方式沒什么區別了,所以將這四種情況都存儲到網絡中的行為依然被稱為記憶,但如果通過三種情況可推測第四種情況的話,便成為學習。
也就是說,在網絡中,記憶可被視為過擬合的學習。比如指學習第一種情況,學習可被視為泛化的記憶,比如,同時記憶這三種情況來推測第四種情況,這種記憶方式用于需要不斷調整網絡的權值,直到能納入所有情況為止,所以會比較耗時,而這種調整也會影響先前情況的記憶,比如記憶完這種情況,在記憶剩下三種情況時,就會影響第一種情況的記憶,同時網絡的記憶就會出現混淆兩個相似情況的現象。不過只要保證權重的大小不變,這種記憶一樣可以穩定存在,并不會出現快速遺忘的現象,根據我們平時的記憶特點,能夠感覺出來生物底層所采用的是網絡記憶方式,可網絡記憶明明有那么多弊端,為什么不采用查找記憶呢?的確,查找記憶可更快捷的記憶信息,比如計算機的記憶就幾乎是瞬間的,然而查找記憶的前提卻是要有人提供給它所有情況的信息,可在自然中,誰來提供給生物這些情況的信息,查找記憶完全沒有解決,并不能從有限的例子中學習模型來對抗生命,最大的敵人未知不僅如此,對于在信息不斷增加的環境中所生存的生物而言,查找記憶也意味著需要近乎無限的存儲空間。而網絡機雖然慢,還會混淆,但它實際上是在尋找所有見到的情況的共同規律,將它們壓縮進一個網絡,更重要的是,所找到的共同規律,就可以用來預測未見到的情況。
但既然網絡的記憶也可以穩定存在,為什么會出現遺忘呢?問題就在于個體該如何篩選模型,如何提高模型的泛化能力,因為網絡學習會從所見到的情況中尋找相同的規律,但生物每次見到的情況都是隨機的,部分隨機情況之間也會有特殊規律,比如連續學習喬布斯和比爾蓋茨的情況,就會找到輟學的規律,而連續學習這兩種情況,就會找到忽略第一個維度,只取第二個維度的規律,但這種局部規律謹記住了部分情況,卻失去了預測其他情況的能力。不過根據概率,若有一種規律只出現過一次,那么該規律是普遍規律的概率就很低,而且到這個規律的個體就很難存活,但若有一種規律反復出現,那么該規律是普遍規律的概率就比較大,而學習到這個規律的個體就更有可能存活于世,在眾多個體當中,部分個體產生了一種基于概率的模型篩選機制,當網絡中的某個鏈接被高頻率使用時,就強化該鏈接的形成,但當網絡的某個鏈接被低頻率使用的話,就弱化該鏈接的形成,這種篩選機制會使得特殊規律的模型難以存留,隨后,擁有該機制的個體,在殘酷的自然選擇中存活了下來。而這也是為什么我們要靠不斷重復來記憶,為什么好不容易記住的信息也會被遺忘。