01
—
矽基人的軟殖民
矽基文明遵循著潛移默化的***同進化原則,而非暴力入侵或殖民的方式;通過了解地球的文明程度,做出對應的措施以融入地球文明。為了更好地進行信號傳遞和對地球的定位,矽基人在地球上建造了同時具有信號發射和信號接收作用的金字塔、瑪雅神廟等建築;他們有壹個***同的特點——指向獵戶座α星。
時間來到了公元前500年左右。矽基人在地球各地分散設置了若幹個掃描區域,進入這個區域的人類會被掃描身體構造(矽基人避免采用小白鼠的方式研究地球人,最大的考量是為了避免恐慌),很快矽基人掌握了地球人的生理結構,並抽象出了地球人的信息接收、釋放和處理機制的模型——神經網絡模型(這個模型是脫離身體結構的,這意味著這個抽象模型天然地就不具備通過各個身體部件獲得信息的能力)。
矽基人希望通過地球人的方式學習地球人的語言,進而融入地球人的生產生活,以地球人可以接收的方式,也是潛移默化的方式幫助地球文明發展,因為矽基人通過嚴密的計算和評估除了地球文明的發展指數,只有指數達到矽基文明上下兩個量級以內,矽基人才可以與地球文明***同發展,而達到這個水平的壹個明顯特征就是出現電磁波的研究。而之所以從語言入手也是考慮到語言是地球人對世界認知的基本反映,可以說,語言是可以被理解的存在。通過對地球人語言的學習,矽基人可以以壹種內在的方式理清楚地球人目前的文明現狀和將來可能的發展潛力。
對矽基人而言,地球上的不同語言是不同的符號系統,語言的基本單位已經蘊含了人類的部分先驗認知,矽基人無法直接對這樣的符號進行處理。而且不同的語言(不同的符號系統)之間要麽相互疊加,要麽是包含與被包含,錯綜復雜。於是矽基人把地球人語言的基本元素轉化為壹個多維的坐標,不同維度表示地球語言每個字或者每個詞的不同語義和語法特征,某個維度的數值更大意味著這個特征更加顯著。而且通過數值化的表達,矽基人可以利用他們的優勢計算能力,將語言進行計算。
當然,有了數字的基礎,矽基人需要的就是有壹個數據處理的框架,他們自然而然地盯上了地球人的大腦神經網絡。
當然,想適配通用函數,神經網絡必須具有足夠的容量,即網絡要有足夠的深度,滿足壹定的神經元數量是必然條件;其次,與閾值函數不同的是,使用梯度的其他激活函數作為感知機,可以在淺層網絡丟失部分信息的時候,在深層網絡獲得壹定的信息補償。因此,神經網絡對通用函數的擬合,壹定是深度、寬度和激活函數之間的權衡,而適配通用函數的本質其實是矽基人把非線性激活函數融入到了整個結構中。
很快,矽基人找到了影響地球文明發展的突破口。因為地球上不同文明之間的語言存在某種模式上的互通性,主要是指不同地區的文明其語言所指有著***同的物理基礎,但是語言組織的模式、表達的具體含義及信息強度等各有不同。於是想利用不同語言之間的翻譯驗證他們設計的神經網絡結構的合理性。這個神經網絡的基礎是矽基人擅長的概率論、數理統計以及矩陣運算。
但是缺點就是矽基人也無法解釋每個維度的特征具體代表什麽含義,因為能夠讓這樣壹個擬合函數真正起作用需要經過多次的實驗和參數調整,有很大的經驗成分和試錯成分在裏面。這些在地球東方文明的語言體系下得到了印證,因為他們試圖利用設計的神經網絡對語言進行建模,把該語言的所有內容編碼為壹個高維數值空間,以徹底掌握該語言。但是顯然他們基於地球語言都是線性的(壹句話或者壹段話乃至更長的語篇可以看成字詞串)而簡單對***現詞進行建模的方式是存在巨大缺陷的。他們的處理方式本質上比較簡單,即語言中挨得近的字或者詞語具有近似的含義,對應地會被編碼到高維空間中相近的位置。
關於這壹點,實際上矽基人做了多次嘗試:
1第壹次嘗試:針對壹種語言(針對當時地球上使用人數最多的語言——漢語),最基本的數值化映射方法是將每個字或者詞映射為壹個字典序號。也就是說,假如漢語的所有詞匯構成壹個詞匯表(包括單個字的詞、多個字的詞),詞表長度為5000,其中壹個詞為“吾”,序號為3;另壹個詞為“壯觀”,序號為347,... ...以此類推,這樣倒是可以把地球語言的這些符號表示為數字,但是因為數字是離散的(就是不連續,因為字典序是自然數,比如1和2之間還有1.1、1.111、1.2等等無窮多個數),在矽基人的微積分體系下無法很好地計算;另外字典序號也沒有任何的實際意義,僅僅是從無法計算的符號映射到了可以勉強計算的數字符號。
2第二次嘗試:把每個詞匯表征為壹個向量,而且向量維度就是詞表長度,也就是每個向量都是5000維,比如“吾”這個詞序號為3,那麽這個詞對應的5000維向量就是第三個數字是1,其余數字為0:,相比第壹次嘗試的方法,這種方法可以實現比較好的計算,但若是詞表發生變化(尤其變至上萬甚至幾萬的情況下)那麽計算量就會陡增,因為每個詞都是幾萬維度的向量,進行梯度計算時就會出現梯度消失或者梯度爆炸等壹些現象。
3第三次嘗試:在第二次的嘗試基礎上結合設計出來的網絡結構,將幾萬維度的向量進行壹個壓縮,比如是512維(512是2的9次冪),但是維度的含義解釋性比較低。相比以前BIT在處理隕石雨攻擊時采用的將隕石刻畫為密度、體積、長度、角度...>等這樣有具體含義的特征序列不同,現在這種方法對語言符號的表示是未知特征的序列,比如,其中每個數字都可以刻畫某種類似隕石飛過來的角度這樣的特征,但是特征含義未知,具體這個數值是多少也未知,需要在訓練過程中慢慢更新優化。
矽基人對第三次嘗試的方法尤為滿意。
矽基人還設計了兩種用來學習詞語向量的方法,壹種是根據上下文預測當前詞語,另壹種是根據當前詞語預測上下文。在進行著兩種任務的學習過程中不斷更新參數,使得預測得結果更準,最後產生的每個詞匯的向量就是詞向量。矽基人對得到的詞向量進行了壹些數值上的驗證,效果甚佳。
關於數據,矽基人計劃通過收集每種語言環境下的具體所指,包括物理實體及其關系亦或是情緒、思考等抽象概念,獲得壹大批數據來訓練神經網絡模型。但是考慮到收集這樣的語言數據消耗大量的資源,而且星際飛船能源補給出現問題,需要緊急返航以補充能量,而且矽基人的生命周期太長,下次來的時候地球語言可能已經發生了幾代的更叠,數據收集的代價過大,也正是出於這樣的考慮,矽基人才設計了這個可以智能“學習”的神經網絡模型。矽基人決定壹次性收集壹批語料作為啟動數據,讓神經網絡結構自動學習這樣的語言,並且在矽基人的星際飛船回航期間可以跟隨地球語言的發展不斷更叠,通過翻譯加強文明發展和溝通。
說到這裏有必要解釋壹下,矽基人的星際飛船每個人的分工十分明確,每個具體任務由主副兩位負責。其中矽基人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. 詞向量的本質:/archives/4677