并不是所有普遍聯系都對我們有意義,在面向對象語言的編程中,我們容易用到屬性這個術語。
屬性是把兩種對象聯系起來的方式,舉個例子
apple.color = red
這是把apple類與red對象聯系起來了。
也可以是
apple.in_the_same_basket = banana
這是把apple類和banana類聯系起來了,他們都在同一個籃子里。
那計算機需不需要知道什么是color,什么是in_the_same_basket?
其實是不需要的,這和人理解事物類似,并不需要知道所有的細節才能理解。例如你知道red是什么顏色,但是你可能并不能說出它的頻率波段。
人對任何事物都是不可能透徹理解到所有細節的,因為只有宇宙本身有那個能力。
所以我們所說的理解,實際上是把未知的事物與我們已知的事物聯系起來了。這樣我們就產生了一種掌控感,這種未知事物就可以通過已知事物來操作和表達。
和人腦不同的是,編程語言的屬性并不能直接單獨使用。
例如在人腦里,顏色、同一個籃子都是獨立的節點,后者是稍微抽象的節點或者由節點生成。
人腦知道apple是什么,知道red是什么,單獨的color也能使用,人腦甚至知道還有yellow, blue, green等顏色。
相比之下,編程語言中的color本身是無意義的,它只是apple和red的橋梁,本身除了這個作用并無意義。
也就是說,現有編程語言和人腦不同的一點是,編程語言中來表達聯系的橋梁總是無意義的,而人腦中聯系的橋梁本身可能就是有意義的。
再想想賦值,A = B, 實際上,在編程語言中,=號有特殊的意義,這是說A和B的值相同,在作用域把名字A綁定到對象B。
而在人腦中A = B,= 本身就是個節點,它在不同領域中有不同的意思,可能是數學中的值相同,也可能是模糊語言中的很類似。例如:
你怎么干了這件事,那前面的事等于沒做。
編程語言這么設計可能有兩種原因:
1 太過注重邏輯性
2 存儲能力和計算能力有限
人腦是很注重邏輯性,但那不是全部,還需要模糊思考、統計性思考和分層思考。
當然編程語言在上個世紀設計的時候,如果專門給color創造一個字典,每個程序中的color都和預定義的color建立聯系,顯然這是不可能的。
即使是現在在大數據的前提下,創造人工智能,是否就要以人類思考的方式來建立,這還有待商榷。
例如,編程語言中的所有關鍵字,都是英語中的單詞,我們想要做一件事,不需要去過多編程,只需要定義。
play a music for me.
人工智能看到這句話,可以像現在手機中,win10中的類似應用一樣播放那句話。
可真正的人工智能,一定能理解這句話。它知道什么是play,什么是music,me是誰。它可能去網上找一首音樂給你聽,你不需要定義一堆函數教它這么做。
而現在手機或win10中的"人工智能",只是預定義的函數,這種方式是不靈活的,它可能只限于本地的音樂,因為它不理解什么是音樂。
當然,真正的人工智能,并不是不教就會,我們需要像教一個孩子一樣,通過數年甚至數十年去教育它。
但它可以真正理解音樂,它知道哪可以找到音樂,音樂的下載權限,音樂的碼率,音樂的格式,各種知識之間的聯系,它知道這些聯系中哪些是最適合我們的。
可能根據個人口味,網速,歌曲的新舊,播放時段來智能選取,這種智能,實際上是調教了數年的結果。
也就是說,最終的人工智能,并不是每個人家里都有一臺,而是真正的服務器。這個服務器存儲了幾乎人類所有的知識,它擁有龐大的容量,超級強大的計算能力。
而我們需要的或許只是一個VR顯示器,通過網絡和英語(或特定的人工智能語言)去請求我們想要的任何信息 ,再從本地來渲染,而這幾十年內就能實現。
而擁有這種龐大能力的服務器供應商,可能是政府或者超級強大的企業,可能會超過人類歷史上任何一個組織的力量。
最終編程語言和人類的語言可能合而為一,虛擬現實增強裝備也可能變成隨身攜帶的東西。