版本:0.1
前文介紹過,大腦是非常複雜的,研究強人工智慧需要參考大腦的結構和演算法,來理解並創造智慧。人腦演算法、結構的祕密都隱藏在DNA和人存在的世界中。從現在的哲學和科學的認知來看,可認為人腦是自組織的,沒有明確的全域性目標函式。而自組織是大腦非常重要的一個特點。自組織最大的好處是人工介入少,這是對智力生產力的解放,代表了下一代生產力。
當前的人工神經網路演算法以全域性控制為主流。雖然有一部分自組織的演算法,但是其應用範圍非常小。所謂全域性控制,即需要比人工神經網路更高階的觀察者來控制神經網路,比如設定神經網路的目標,選擇其演算法,設定引數等。而自組織系統則最小化對系統的初始設定,把其餘部分交給神經網路系統自己去調整。
在全域性控制的神經網路系統中,全域性控制的部分包括:
1)神經網路演算法和資料結構。現在已經出現了很多神經網路演算法,它們有各自的優勢和其擅長解決的問題。在解決實際問題中需要根據經驗,或各種方案都試驗一下,來看看哪種演算法給出的結果更好,並決定所使用的演算法。一般在演算法決定後,資料結構也隨之決定了。
2)神經網路規模。在通常的機器學習演算法中,都在設計模型的過程中決定每個模型的規模。規模太大運算複雜度太高,規模太小則無法得出足夠精確的結果。
3)神經網路的初始值。由於大部分神經網路要解決的問題是多極值的,如果初始值附近的極值不是最優解,可能最終神經網路很難達到最優解。所以正確的初始值對得到更優解是很重要的。
4)目標函式。即確定神經網路的目標或叫做期望值,由此根據每次的輸出來調整神經網路的權重。這在有監督學習中是很重要的。在大部分無監督學習中,其實也是有目標函式的,只是目標函式的設定不需要人工干預。
自組織系統不是為了自組織而自組織,而是因為自組織系統有更大的靈活性,能夠自適應輸入輸出。自組織的範圍越大,系統的發展空間會越大。但自組織的範圍越大,同時也帶會帶來更多的不確定性,從而使系統無法進入一個穩定發展的狀態。比如我們的宇宙基於一些基本的物理常數,產生了穩定的基本粒子,所以成為了一個穩定的系統。如果這些物理常數有一些微小的改動,可能宇宙就不能穩定的產生星系和智慧了。在我們還不夠了解智慧的階段下,需要通過在全域性控制的系統中,通過不斷提高其自組織性的方法,來嘗試創造穩定的自組織系統,並創造出有智慧的自組織系統。
相對於全域性控制的系統,自組織的系統可如下考慮各個部分。
1)神經網路演算法和資料結構。演算法是一切的核心,即使是自組織的系統,也要有固定的神經網路演算法來完成自組織的過程。但自組織的演算法和當前機器學習的演算法有很大的不同。從演算法作用的範圍來看,當前的機器學習演算法的主要功能是調整節點之間的權重,而自組織演算法除了調整節點間的權重,也要調整結構。結構上的調整包括節點的增刪、以及節點群之間的連線強度。從演算法解決的問題來看,傳統演算法要解決的問題是節點之間的連線強度,而自組織系統演算法所要解決的問題也比普通演算法要多。自組織的演算法是元演算法,從微觀上要實現系統的穩定,巨集觀上要能產生有計算能力的結構。要解決的是如何規劃層次,處理知識衝突和發現並遷移相似模式的問題。這些問題可以一個一個解決,從而堆疊出一個相對智慧的系統,也可以通過一個能夠解決大部分問題的核心演算法來解決。人腦中究竟有多少個核心演算法,也需要進一步研究。
神經網路的演算法和其神經元的目標函式相關,基本上目標函式決定了可使用的演算法有哪些。不同的演算法只是效率上的區別。後文僅討論目標函式,具體演算法是很有挑戰的,待實現時再研究。
除了神經元的演算法,還有整個神經網路的演算法。神經網路的演算法決定了自組織神經網路是否能產生有意義、高效的輸出。當確定了神經元演算法後,神經網路的目標就是將單個神經元所計算出的有意義的結果累積起來,進一步產生更高階的意義,從而產生智慧。另外,在輸出時,也能有效的將高階的意義對映到較低層次的輸出,從而實現通訊。
2)神經網路規模。自組織的系統的規模應該是由資源規模決定的。自組織系統能夠優化資源的分配,減少計算複雜度。優化資源分配是自組織系統的最重要的功能。資源優化好了,相當於處理能力的提升。所以在自組織系統中,規模的問題其實是優化資源的問題。
3)神經網路的初始值。如果一個神經網路是從0開始生長的,初始值就不是難題了。所有的輸入輸出在初期就聯絡在了一起。隨著神經網路規模的增長,對外界輸入輸出處理的能力也隨之增長。這樣得出的解決方案可能仍不是最優解,但在整個神經網路生長過程中都是持續有效的。這裡要注意的是,在神經網路還很小的時候,就連線了外界的輸入輸出了,並開始和外界進行互動。這是能夠產生持續有效網路的關鍵。
4)目標函式。自組織系統是否需要目標函式是一個有爭議的部分。這個問題也來源於人是否有目標函式的問題。人類已經思考人生意義等哲學問題很長時間了,科學家也嘗試著從生物角度來回答人類的生存目標等問題。至今仍然沒有能普遍認同的答案。
同樣,自組織系統有可能看上去沒有目標,但實際上背後還是有目標函式在起作用。自組織系統的目標函式需要從神經元、系統兩個層次分別來研究,最後將這兩個層次的目標函式統一起來。
神經元層次的目標函式可能是從輸入中計算並輸出有意義的訊號,這樣一層一層累積起來最終得出有意義的知識或結果。因為神經元的計算能力有限,所以很難直接解決問題。這裡的目標函式所能實現意義指的是結果的數學意義,比如微分、求極值或分離出異常值等。神經元層次的目標函式不宜過多,如果有過多的目標函式,則自組織系統需要根據情況選擇出合適的目標函式。神經元層次要考慮的是系統的通用性,所以最好情況是能找到一種最基本的目標函式,然後通過組合多個神經元細胞,將所有其它目標函式都表達出來。這和計算機基本計算單元的設計是類似的,但計算機的基本單元的設計是從數學角度思考的,而不是從目標函式角度思考的。
系統層次的目標可以是能量最小、衝突最少或者是更高階的目標,如生存等。系統層次的目標函式也代表一個系統有全域性控制的能力,是否這就表示了一個系統不是自組織的了呢?也不完全是。一個系統是否是自組織的,其實沒有明確的界限。自組織系統也並一定比全域性控制的系統要高效。強人工智慧系統中系統層次的目標函式應該不是系統能夠感知的高階目標,否則和自組織產生的目標之間沒有區別,也會繞過,或被自組織系統的目標所替換。