“ 矽基人企圖以數理方式融入地球”
01
—
矽基人的軟殖民
矽基文明遵循著潛移默化的共同進化原則,而非暴力入侵或殖民的方式;通過了解地球的文明程度,做出對應的措施以融入地球文明。為了更好地進行訊號傳遞和對地球的定位,矽基人在地球上建造了同時具有訊號發射和訊號接收作用的金字塔、瑪雅神廟等建築;他們有一個共同的特點——指向獵戶座α星。
時間來到了公元前500年左右。矽基人在地球各地分散設定了若干個掃描區域,進入這個區域的人類會被掃描身體構造(矽基人避免採用小白鼠的方式研究地球人,最大的考量是為了避免恐慌),很快矽基人掌握了地球人的生理結構,並抽象出了地球人的資訊接收、釋放和處理機制的模型——神經網路模型(這個模型是脫離身體結構的,這意味著這個抽象模型天然地就不具備透過各個身體部件獲得資訊的能力)。
矽基人希望透過地球人的方式學習地球人的語言,進而融入地球人的生產生活,以地球人可以接收的方式,也是潛移默化的方式幫助地球文明發展,因為矽基人透過嚴密的計算和評估除了地球文明的發展指數,只有指數達到矽基文明上下兩個量級以內,矽基人才可以與地球文明共同發展,而達到這個水平的一個明顯特徵就是出現電磁波的研究。而之所以從語言入手也是考慮到語言是地球人對世界認知的基本反映,可以說,語言是可以被理解的存在。透過對地球人語言的學習,矽基人可以以一種內在的方式理清楚地球人目前的文明現狀和將來可能的發展潛力。
對矽基人而言,地球上的不同語言是不同的符號系統,語言的基本單位已經蘊含了人類的部分先驗認知,矽基人無法直接對這樣的符號進行處理。而且不同的語言(不同的符號系統)之間要麼相互疊加,要麼是包含與被包含,錯綜複雜。於是矽基人把地球人語言的基本元素轉化為一個多維的座標,不同維度表示地球語言每個字或者每個詞的不同語義和語法特徵,某個維度的數值更大意味著這個特徵更加顯著。而且透過數值化的表達,矽基人可以利用他們的優勢計算能力,將語言進行計算。
當然,有了數字的基礎,矽基人需要的就是有一個數據處理的框架,他們自然而然地盯上了地球人的大腦神經網路。
矽基人持續關注了人類的成長過程,發現隨著經驗的增加神經突觸之間的連線強度也在發生變化,而且神經元之間的資訊傳遞是透過化學反應產生的電訊號,透過電訊號的方向和強度表徵資訊,而矽基人的晶體結構恰好可以完美復刻這種模式。但是矽基人並沒有發現地球人的腦神經中是如何學習反饋的,沒有反饋也就無法達到學習的目的。這一度十分困擾矽基人。慢慢地矽基人意識到這是一種當前階段無法被認識到的機制,也許在不久的將來可以解鎖這種機制,或許這種學習機制中隱藏著進化的某種秘密?然而矽基人擅長各種抽象和運算。儘管無法完全複製人類的腦神經學習機制,矽基人還是透過運算證明了他們設計的神經網路結構可以近似逼近任意的數學函式,而他們正是將人類的神經網路結構視為一個多元函式。此外,他們還巧妙地透過多元函式梯度計算最佳化誤差進而達到了學習目的。他們把這種機制稱為反向傳播。
當然,想適配通用函式,神經網路必須具有足夠的容量,即網路要有足夠的深度,滿足一定的神經元數量是必然條件;其次,與閾值函式不同的是,使用梯度的其他啟用函式作為感知機,可以在淺層網路丟失部分資訊的時候,在深層網路獲得一定的資訊補償。因此,神經網路對通用函式的擬合,一定是深度、寬度和啟用函式之間的權衡,而適配通用函式的本質其實是矽基人把非線性啟用函式融入到了整個結構中。
很快,矽基人找到了影響地球文明發展的突破口。因為地球上不同文明之間的語言存在某種模式上的互通性,主要是指不同地區的文明其語言所指有著共同的物理基礎,但是語言組織的模式、表達的具體含義及資訊強度等各有不同。於是想利用不同語言之間的翻譯驗證他們設計的神經網路結構的合理性。這個神經網路的基礎是矽基人擅長的機率論、數理統計以及矩陣運算。
但是缺點就是矽基人也無法解釋每個維度的特徵具體代表什麼含義,因為能夠讓這樣一個擬合函式真正起作用需要經過多次的實驗和引數調整,有很大的經驗成分和試錯成分在裡面。這些在地球東方文明的語言體系下得到了印證,因為他們試圖利用設計的神經網路對語言進行建模,把該語言的所有內容編碼為一個高維數值空間,以徹底掌握該語言。但是顯然他們基於地球語言都是線性的(一句話或者一段話乃至更長的語篇可以看成字詞串)而簡單對共現詞進行建模的方式是存在巨大缺陷的。他們的處理方式本質上比較簡單,即語言中捱得近的字或者詞語具有近似的含義,對應地會被編碼到高維空間中相近的位置。
關於這一點,實際上矽基人做了多次嘗試:
【1】第一次嘗試:針對一種語言(針對當時地球上使用人數最多的語言——漢語),最基本的數值化對映方法是將每個字或者詞對映為一個字典序號。也就是說,假如漢語的所有詞彙構成一個詞彙表(包括單個字的詞、多個字的詞),詞表長度為5000,其中一個詞為“吾”,序號為3;另一個詞為“壯觀”,序號為347,... ...以此類推,這樣倒是可以把地球語言的這些符號表示為數字,但是因為數字是離散的(就是不連續,因為字典序是自然數,比如1和2之間還有1.1、1.111、1.2等等無窮多個數),在矽基人的微積分體系下無法很好地計算;另外字典序號也沒有任何的實際意義,僅僅是從無法計算的符號對映到了可以勉強計算的數字符號。
【2】第二次嘗試:把每個詞彙表徵為一個向量,而且向量維度就是詞表長度,也就是每個向量都是5000維,比如“吾”這個詞序號為3,那麼這個詞對應的5000維向量就是第三個數字是1,其餘數字為0:<0,0,1,0,... ...,0>,相比第一次嘗試的方法,這種方法可以實現比較好的計算,但若是詞表發生變化(尤其變至上萬甚至幾萬的情況下)那麼計算量就會陡增,因為每個詞都是幾萬維度的向量,進行梯度計算時就會出現梯度消失或者梯度爆炸等一些現象。
【3】第三次嘗試:在第二次的嘗試基礎上結合設計出來的網路結構,將幾萬維度的向量進行一個壓縮,比如是512維(512是2的9次冪),但是維度的含義解釋性比較低。相比以前BIT在處理隕石雨攻擊時採用的將隕石刻畫為<密度、體積、長度、角度...>等這樣有具體含義的特徵序列不同,現在這種方法對語言符號的表示是未知特徵的序列,比如<0.234,1.34,0.009,... ...,4.11>,其中每個數字都可以刻畫某種類似隕石飛過來的角度這樣的特徵,但是特徵含義未知,具體這個數值是多少也未知,需要在訓練過程中慢慢更新最佳化。
矽基人對第三次嘗試的方法尤為滿意。
矽基人還設計了兩種用來學習詞語向量的方法,一種是根據上下文預測當前詞語,另一種是根據當前詞語預測上下文。在進行著兩種任務的學習過程中不斷更新引數,使得預測得結果更準,最後產生的每個詞彙的向量就是詞向量。矽基人對得到的詞向量進行了一些數值上的驗證,效果甚佳。
關於資料,矽基人計劃透過收集每種語言環境下的具體所指,包括物理實體及其關係亦或是情緒、思考等抽象概念,獲得一大批資料來訓練神經網路模型。但是考慮到收集這樣的語言資料消耗大量的資源,而且星際飛船能源補給出現問題,需要緊急返航以補充能量,而且矽基人的生命週期太長,下次來的時候地球語言可能已經發生了幾代的更迭,資料收集的代價過大,也正是出於這樣的考慮,矽基人才設計了這個可以智慧“學習”的神經網路模型。矽基人決定一次性收集一批語料作為啟動資料,讓神經網路結構自動學習這樣的語言,並且在矽基人的星際飛船回航期間可以跟隨地球語言的發展不斷更迭,透過翻譯加強文明發展和溝通。
說到這裡有必要解釋一下,矽基人的星際飛船每個人的分工十分明確,每個具體任務由主副兩位負責。其中矽基人0_1號專門負責融入策略制定,也就是他們決定是否以語言或者其他領域作為突破口,0_2是他的副官;矽基人1_1號完成策略實現,包括實際模型的設計與實現,對效果的把控,1_2是其副官;當然還有其他若干的任務,比如負責星際飛船的能源供給、負責規律武器的運營和星際飛船的安全等等。
隨著地球上文明的發展,矽基人1_1號設計的word2vec效果逐漸難以滿足需求,矽基人1_2號開始著手面向具體任務的模型設計與實現。
02
—
掉書袋
【1】 上述情節引出了word2vec(詞向量,矽基人第三次將詞語對映為數值的嘗試部分就是word2vec)、神經網路、反向傳播等深度學習的基礎概念,只闡述其思想,不闡述細節。
【2】神經網路的基本結構可以參考感知機模型或者SVM模型,深度學習是以神經網路為基本的模型結構,在一定程度上模仿了人類大腦的一些生物學特徵,比如神經元、神經連線、啟用函式等。
【3】啟用函式對來自神經元的加權訊號進行非線性對映,這是神經網路結構的深度學習模型可以理論上擬合任意函式的重要基礎。
【4】上述情節中矽基人第二次嘗試將語言對映為可計算的數值實際上是NLP技術中的one-hot,詞向量在某種程度上來講,本質還是one-hot,只不過是one-hot向量與一個引數向量或者引數矩陣相乘得到的一個壓縮後的向量。在工程實踐中這個one-hot向量中的1的位置實際上就相當於字典序,直接索引到對應的指定維度的向量。
【5】反向傳播是以梯度下降演算法為基礎,透過計算梯度尋找當前的最優值(可能是最大值也可能是最小值),然後更新全部網路結構的引數,迴圈往復直到模型引數達到全域性最優。
【6】上文提到的用於學習詞向量的兩種方法,其中當前詞預測上下文是skip-gram;用上下文預測當前詞是CBOW(連續詞袋,Continuous Bag of Words)。
03
—
參考文獻
1. 詞向量的本質:https://zhuanlan.zhihu.com/p/26306795/
2. 詞向量的一些性質:https://spaces.ac.cn/archives/4677