關於人工智慧在當今科技界的發展水平,學術界、產業界和媒體界可能會有不同的看法。我經常聽到的一個說法是:現在基於大資料與深度學習的人工智慧是一種完全新穎的技術形態,它的出現能夠全面地改變未來人類的社會形態,因為它能夠自主進行“學習”,由此大量取代人類勞力。我認為這裡有兩個誤解:
第一,深度學習並不是新技術;第二,深度學習技術所涉及的“學習”與人類的學習並不是一回事,因為它不能真正“深度”地理解它所面對的資訊。
深度學習不是新技術
從技術史角度看,深度學習技術的前身,其實就是在20世紀80年代就已經熱鬧過一陣子的“人工神經元網路”技術(也叫“連線主義”技術)。
該技術的實質,是用數學建模的辦法建造出一個簡易的人工神經元網路結構,而一個典型的此類結構一般包括三層:輸入單元層、中間單元層與輸出單元層。輸入單元層從外界獲得資訊之後,根據每個單元內建的匯聚演算法與激發函式,“決定”是否要向中間單元層傳送進一步的資料資訊,其過程正如人類神經元在接收別的神經元送來的電脈衝之後,能根據自身細胞核內電勢位的變化來“決定”是否要向另外的神經元遞送電脈衝。
需要注意的是,無論整個系統所執行的整體任務是關於影像識別還是自然語言處理,僅僅從系統中單個計算單元自身的運作狀態出發,觀察者是無從知道相關整體任務的性質的。毋寧說,整個系統其實是以“化整為零”的方式,將巨集觀層面上的識別任務分解為了系統組成構件之間的微觀資訊傳遞活動,並通過這些微觀資訊傳遞活動所體現出來的大趨勢,來模擬人類心智在符號層面上所進行的資訊處理程式。
工程師調整系統的微觀資訊傳遞活動之趨勢的基本方法如下:先是讓系統對輸入資訊進行隨機處理,然後將處理結果與理想處理結果進行比對。若二者吻合度不佳,則系統觸發自帶的“反向傳播演算法”來調整系統內各個計算單元之間的聯絡權重,使得系統給出的輸出與前一次輸出不同。兩個單元之間的聯絡權重越大,二者之間就越可能發生“共激發”現象,反之亦然。然後,系統再次比對實際輸出與理想輸出,如果二者吻合度依然不佳,則系統再次啟動反向傳播演算法,直至實際輸出與理想輸出彼此吻合為止。
完成此番訓練過程的系統,除了能夠對訓練樣本進行準確的語義歸類之外,一般也能對那些與訓練樣本比較接近的輸入資訊進行相對準確的語義歸類。譬如,如果一個系統已被訓練得能夠識別既有相片庫裡的哪些相片是張三的臉,那麼,即使是一張從未進入相片庫的新的張三照片,也能夠被系統迅速識別為張三的臉。
如果讀者對於上述技術描述還似懂非懂,不妨通過下面這個比方來進一步理解人工神經元網路技術的運作機理。假設一個不懂漢語的外國人跑到少林寺學武術,師生之間的教學活動該如何開展?有兩種情況:第一種情況是,二者之間能夠進行語言交流(外國人懂漢語或者少林寺師傅懂外語),這樣一來,師傅就能夠直接通過“給出規則”的方式教授他的外國徒弟。這種教育方法,或可勉強類比基於規則的人工智慧路數。
另一種情況是,師傅與徒弟語言完全不通,在這種情況下,學生又該如何學武呢?唯有靠如下辦法:徒弟先觀察師傅的動作,然後跟著學,師傅則通過簡單的肢體交流來告訴徒弟,這個動作學得對不對(譬如,如果對,師傅就微笑;如果不對,師傅則棒喝徒弟)。進而,如果師傅肯定了徒弟的某個動作,徒弟就會記住這個動作,繼續往下學;如果不對,徒弟就只好去猜測自己哪裡錯了,並根據這種猜測給出一個新動作,並繼續等待師傅的反饋,直到師傅最終滿意為止。很顯然,這樣的武術學習效率是非常低的,因為徒弟在胡猜自己的動作哪裡出錯時會浪費大量的時間。但“胡猜”二字恰恰切中了人工神經元網路運作的實質。概而言之,這樣的人工智慧系統其實並不知道自己得到的輸入資訊到底意味著什麼——換言之,此係統的設計者並不能與系統進行符號層面上的交流,正如在前面的例子中師傅是無法與徒弟進行言語交流一樣。而這種低效學習的“低效性”之所以在計算機那裡能夠得到容忍,則緣於計算機相比於自然人而言的一個巨大優勢:計算機可以在很短的物理時間內進行海量次數的“胡猜”,並由此遴選出一個比較正確的解。一旦看清楚了裡面的機理,我們就不難發現:人工神經元網路的工作原理其實是非常笨拙的。
“深度學習”應該是“深層學習”
那麼,為何“神經元網路技術”現在又有了“深度學習”這個後繼者呢?這個新名目又是啥意思呢?
不得不承認,“深度學習”是一個帶有迷惑性的名目,因為它會誘使很多外行認為人工智慧系統已經可以像人類那樣“深度地”理解自己的學習內容了。但真實情況是:按照人類的“理解”標準,這樣的系統對原始資訊最膚淺的理解也無法達到。
為了避免此類誤解,筆者比較贊成將“深度學習”稱為“深層學習”。因為該詞的英文原文“deeplearning”技術的真正含義,就是將傳統的人工神經元網路進行技術升級,即增加其隱藏單元層的數量。這樣做的好處,是能夠增大整個系統的資訊處理機制的細膩度,使得更多的物件特徵能夠在更多的中間層中得到安頓。
比如,在人臉識別的深度學習系統中,更多的中間層次能夠更為細膩地處理初級畫素、色塊邊緣、線條組合、五官輪廓等處在不同抽象層面上的特徵。這樣的細膩化處理方式當然能夠提高整個系統的識別能力。
但需要看到,由此類“深度”化要求所帶來的整個系統的數學複雜性與資料的多樣性,自然會對計算機硬體以及訓練用的資料量提出很高的要求。這也就解釋了為何深度學習技術在21世紀後才逐漸流行,正是最近十幾年以來計算機領域內突飛猛進的硬體發展,以及網際網路普及所帶來的巨大資料量,才為深度學習技術的落地開花提供了基本保障。
但有兩個瓶頸阻礙了神經元網路-深度學習技術進一步“智慧化”:
第一,一旦系統經過訓練而變得收斂了,那麼系統的學習能力就下降了,也就是說,系統無法根據新的輸入調整權重。這可不是我們的終極理想。我們的理想是:假定由於訓練樣本庫自身的侷限性,網路過早地收斂了,那麼面對新樣本時,它依然能夠自主地修訂原來形成的輸入-輸出對映關係,並使得這種修訂能夠兼顧舊有的歷史和新出現的資料。但現有技術無法支援這個看似巨集大的技術設想。設計者目前所能夠做的,就是把系統的歷史知識歸零,把新的樣本納入樣本庫,然後從頭開始訓練。在這裡我們無疑又一次看到了讓人不寒而慄的“西西弗斯迴圈”。
第二,正如前面的例子所展現給我們的,在神經元網路-深度學習模式識別的過程中,設計者的很多心力都花費在對於原始樣本的特徵提取上。很顯然,同樣的原始樣本會在不同的設計者那裡具有不同的特徵提取模式,而這又會導致不同的神經元網路-深度學習建模方向。對人類程式設計員來說,這正是體現自己創造性的好機會,但對於系統本身來說,這等於剝奪了它自身進行創造性活動的機會。試想:一個被如此設計出來的神經元網路-深度學習結構,能夠自己觀察原始樣本,找到合適的特徵提取模式,並設計出自己的拓撲學結構嗎?看來很難,因為這似乎要求該結構背後有一個元結構,能夠對該結構本身給出反思性的表徵。關於這個元結構應當如何被程式化,我們目前依然是一團霧水——因為實現這個元結構功能的,正是我們人類自己。讓人失望的是,儘管深度學習技術帶有這些基本缺陷,但目前的主流人工智慧界已經被“洗腦”,認為深度學習技術就已經等於人工智慧的全部。一種基於小資料,更加靈活、更為通用的人工智慧技術,顯然還需要人們投入更多的心力。從純學術角度看,我們離這個目標還很遠。
自 第一財經