一 從人工智能談起
1950年,計算機科學的先驅——阿蘭圖靈提出「Can machines think?」
通常理解的人工智能,就是讓機器可以學習,而非編程的方式實現,即習而識之。就如同我們創造一個類人物種,讓它具有視覺、聽覺、觸覺、語言等功能,不斷教它更多的知識,使其慢慢能夠記憶、推理、決策甚至主動思考。
近年來人工智能的發展,得益于深度學習方面的進步。深度學習(Deep Learning)作為機器學習拉出的分支,使用包含復雜結構或由多重非線性變換構成的多個處理層對數據進行高層抽象。深度學習至今已經有數種框架,如深度神經網絡、卷積神經網絡和深度信念網絡和遞歸神經網絡,已被應用于計算機視覺、語音識別、自然語言處理、音頻識別與生物信息學等領域,并獲取了極好的效果。
目前頗具吸引力的深度學習結構是卷積神經網絡(convolutional neuron networks,CNN),它由一個或多個卷積層和頂端的全連通層(對應經典的神經網絡)組成,同時也包括關聯權重和池化層(pooling layer)。與其他深度學習結構相比,卷積神經網絡在圖像和語音識別方面能夠給出更優的結果,而且需要估計的參數更少。
2012年,多倫多大學的 Krizhevsky 等人構造了一個超大型卷積神經網絡,有9層,共65萬個神經元,6千萬個參數。網絡的輸入是圖片,輸出是1000個類,比如小蟲、美洲豹、救生船等等。這個模型的訓練需要海量圖片,它的分類準確率也完爆先前所有分類器。紐約大學的 Zeiler 和 Fergusi 把這個網絡中某些神經元挑出來,把響應特別大的輸入圖像放在一起,看有什么共同點。最后發現,中間層的神經元響應了某些十分抽象的特征。
第一層神經元主要負責識別顏色和簡單紋理
第二層的一些神經元可以識別更加細化的紋理,比如布紋、刻度、葉紋。
第三層的一些神經元負責感受黑夜里的黃色燭光、雞蛋黃、高光。
第四層的一些神經元負責識別萌狗的臉、七星瓢蟲和一堆圓形物體的存在。
第五層的一些神經元可以識別出花、圓形屋頂、鍵盤、鳥、黑眼圈動物。
這里面的概念并不是整個網絡的輸出,是網絡中間層神經元的偏好,它們為后面的神經元服務。雖然每一個神經元都只負責簡單的判斷,但是各司其職的65萬個神經元構成整體,爆發的學習力是超強的。
二 ?人工智能開源神器 TensorFlow
上一部分講到的神經網絡,理解了多層處理的概念。近期,開源了的?Google TensorFlow 做了一個非常直觀的神經網絡 playground,名字拆開來看的話,是 tensor(張量)的 flow(流動),理解上就是「張量如何流動」。TensorFlow? 采用數據流圖(data flow graphs)用于數值計算,節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯系的多維數據數組,即張量(tensor)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?網址:playground.tensorflow.org/
打開網頁后,總體來說,藍色代表正值,黃色代表負值。下面具體操作來看。
首先選擇數據,在二維平面內,若干點被標記成了兩種顏色,黃色和藍色,表示想要區分的兩類,可以把平面內的任意點標記成任意顏色。網頁里提供了4種規律,選擇后,神經網絡就會根據給的數據進行訓練,再分類相同規律的點。
然后是輸入,就是在二維平面內,你想給網絡多少關于「點」的信息。X1 是左右顏色分開的,表示橫坐標值,而 X2 是上下分開的,表示縱坐標值。下邊還可以選擇平方值,代表橫縱坐標的「拋物線」信息。總之給到更多這個點的信息,就會越容易被分開。
下面是連接線,用來表示權重。藍色表示用神經元的原始輸出,黃色表示用負輸出,深淺表示權重的絕對值大小。鼠標放在線上可以看到具體值,是可以更改的。在圖1中,當把 X2 輸出的一個權重改為-1時,X2 的形狀就變成了上黃下藍。在圖2中,當換成值域為(0,1)的 sigmoid 時,會發現沒有黃色區域了。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2
最后來看一下輸出結果。黃色背景顏色被歸為黃點類,而藍色背景顏色歸為藍點類,深淺則表示可能性的強弱。
大家看一下上邊的圖右側部分,所有在黃色背景中的點都被分類為「黃點」,藍色區域的點被歸為「藍點」。再看下左側的部分,每一層都是通過上一層信息的組合形成的,而權重,也就是連接線控制了「如何組合」。
我們所說的神經網絡,其實就是從數據中學習如何分配權重。經過訓練的神經網絡,得到正確結果的準確率就可以持續提升。拿深度卷積神經網絡來說,其在2012年就有了標志性突破。Hinton 帶領他的兩位博士生,在計算機視覺識別領域「奧斯卡」ILSVRC 比賽中獲得了冠軍,測試數據集 ImageNet 有1500萬幅圖片,涉及22000種分類,如貓、狗、大象等。他們當時使用了兩塊 GPU 加速,訓練一周后,Top-5 錯誤率降到了15.3%,而傳統的視覺方法最好結果是26.2%。這樣的進步很大程度也得益于,將深度卷積神經網絡與大數據(1500萬幅圖片)和 GPU Cuda 并行編程結合了起來。這樣的算法、算力加大數據的結合,也正成為人工智能領域的標配。
三 從「進化」視角看「神經網絡」
TensorFlow 展示了數據如何層層過濾,逐步流向終點。
仔細看會發現,識別一張臉的過程,倒過來就是物質進化的過程。那么神經網絡的學習過程,其實就是學習物質組成方式的過程。對于每一層神經網絡的理解,其實就是通過現有的不同物質組合成為新物質的過程。
按照進化的理論,從原始簡單生物進化成為復雜有智慧的物種,任何物種都是從其他物種演變而來。再往微觀去看,生物體生長和繁殖的基礎,通常由一個母細胞產生兩個或若干子細胞。恰如《周易》所言:「易有大恒,是生兩儀。兩儀生四象,四象生八卦。」(馬王堆出土本)
我們的物理世界,就是一個不斷并行組合、再次迭代的過程,造物主創造了一套神經網絡系統,不斷進化發展。而我們傾盡全力去學習《黑客帝國》中 Matrix 的方法論,不斷做關系的拆分。這樣的拆分就是信息的回卷,是變體的消除,也是不確定性的縮減。于是,我們無限的接近我們本真的樣子。
寫到這,讓我想到了以色列作家尤瓦爾赫拉里的《人類簡史》。人類歷史上從認知革命跨越到農業革命階段,智人開始從單純的采摘捕獵,轉變為種植農作物協作群居的方式,人口也開始快速的增長。看起來是巨大的進步,但卻變成了沉重的負擔。過去「棒打狍子瓢舀魚」的物質生活不復存在,取而代之的是兒童大量死去,成人也為了換得面包累得滿頭大汗。公元前8500年智人的生活,要比公元前9500年或公元前13000年更為辛苦。
為什么人類會犯下如此致命的誤判?其實人類歷史上不斷重蹈覆轍的道理都不盡相同:因為我們永遠無法了解各種決定最后的結果。一心追求更為輕松的生活,于是釋放出一股巨大的力量,改變了世界的面貌,但結果似乎并非是大家所樂見的。
人類在不可抗拒的卷入一波又一波的歷史洪流中,無法逆轉。預言家真的能預知未來?或許就是看到了人類歷史發展的必然。