為什麼人工智慧的研究都是基於演算法,而不是基於「硬體」?
個人覺得在數字集成電路器件上進行通過一些演算法/編程去實現人的思維方式是件緣木求魚的事情,基於現行的物理底層器件如果真能發展起「智能」,我認為也是全新的形式。有沒有基於新的器件(指新的機制,有別與基於開關態的CMOS器件,比如模擬大腦的神經或者非線性的器件)的人工智慧方面的研究?能否推薦一些相關書籍、相關方向的review以及世界上在這方面課題(如果有的話)領先的小組?
自己的專業是微電子,對人工智慧不了解但是很感興趣,也許提的問題讓行家見笑,希望能得到相關專業人的解答,非常感謝。
····························································································································
2014.3.31
這周病倒了,躺了4天,本來想趕緊更新好和大家一起討論的,無奈還是拖到了今天。先簡單的把這幾天搜集的資料整理一下,後面我會繼續更新,細節會在自己給出的答案里
1. 有沒有基於「硬體」的?
有,有不少關於人工智慧和神經網路的硬體方法(集成電路而不是編程寫代碼,這個我的說法也許也不是很準確)的研究,當然我自己不清楚模擬方面的進展,但是在我看來,和計算機系那邊轟轟烈烈的人工智慧和神經網路的大量的研究以及進展比起來,基於硬體方向的研究應該目前不是主流。
2. 為什麼不是主流?
依然在等待生物學方面的進展,在探測大腦如何「思考」上依然缺乏里程碑式的發現。但是似乎工業界和科學界已經早就等不及了。在我看來,用馮諾依曼構架研究智能問題費力不討好,但是在缺乏結論性的進展前,現在的研究方向非常多,基於演算法的研究的確更為便捷以及省力,要知道流一次片可以要經過設計-調試-版圖-模擬-流片-封裝-訓練等一系列程序,時間和金錢啊。不過硬體方向也有他非常獨到的優勢,這個在自己的補充答案里會講。
3. 關於高通的新聞是真的么?
我簡單的查了一下,沒有查到關於高通的英文報道,但是我查到了關於IBM的神經網路晶元的報道。但是以我自己的感覺來說,我不認為這種東西處於可上市的階段,並且在很長一段時間內還不會。
4. 下一步的問題?
當然是希望知乎的大牛們普及一下人工智慧和神經網路的知識,問答多、雜,有人整理一下才好。
············································································································································2014.3.23晚
第一次在知乎上提問,非常感謝眾知友的回答,給我提供了很多有用的信息。自己的問題比較模糊性,也是源於對這個方向的生疏。其中我也找到了目前自認為比較契合自己想要方向的線索,是關於高通神經網路晶元「人腦」晶元離我們有多遠?的一篇新聞,具體的內容以及相關科研團隊的研究我還沒有來得及查看,我在查閱相關資料後也許會更明白自己想要問的是什麼,之後再補充明確一下自己的問題。人工智慧是我很感興趣的一個問題,其中涉及計算機,生物,認知等多方面學科,也是研究的熱點。希望眾領域的大牛能夠提供相關領域的見解。^_^
當然有做硬體的。從最早的lisp machine,到memristor。我知道清華現在也有這方面的研究。
但是這為什麼不流行呢?一是路徑依賴。大牛都在做軟體,他們的學生自然也做軟體。二是優勢不明顯。Turing-Church thesis 講的是不管你硬體怎麼變,都是相差一個polynomial級別。也不能把NP-Complete變成P。而人工智慧多是NPC問題或者更難。三是商業問題。通用硬體銷路廣,因此它便宜,更新換代也快。專用硬體又貴進步又慢。
以上說的是理論上的劣勢。但是如果你做出來效果確實好,那肯定有人跟你做。就像神經網路過去也認為不行,有了一個突破之後就大紅大紫了。但是學了VHDL和Verilog你就會明白,大多數硬體那也是編程做出來的,跟軟體其實沒什麼本質區別。這只是個成本問題。
我的研究方向與人工智慧相近,說說我對這個問題的理解吧。其實你如果去細緻地了解一下人工智慧研究史(可參見 人工智慧史),以前是有人嘗試過軟體之外的方式的(這裡軟體專指 Von Neumann 架構的、以數字電路為基礎的電子計算機上跑的軟體),但後來這些研究慢慢的消失了,原因我覺得有兩點:
1. 現在還沒法從可操作的層面上去描述「智能」這個概念。所以,所謂的「智能」背後有什麼,大家都不清楚,只能針對一些特定的問題、用各種不同的方式去嘗試。而每一次嘗試都是有成本的。
2. 電子計算機的發展速度很快,現在計算機的速度已經可以成功模擬其他很多硬體系統了。考慮到嘗試的成本,用軟體來做實驗在大多數情況下會比用硬體的成本低得多。
So, 目前大家都在搞演算法。我相信在對「智能」的認識有突破性進展之後,就會有專有的硬體出現。
演算法和硬體不是互不相容的兩個概念。
要說與硬體對立的,應該是軟體。
但是,其實硬體和軟體之間沒有太明晰的界限。
專用的硬體能夠做的事情,通用硬體也都能做。拿顯卡舉個不恰當的例子:獨顯和集顯的差別就在於,集顯的電腦渲染場景的速度慢很多,但不是做不到。
再比如,數碼相機上面,大概都有專門的晶元做JPEG壓縮編碼產生照片文件,這演算法寫到Photoshop裡面就是軟體啊,PC上不需要這個晶元一樣可以把圖片轉存成JPEG文件。
再比如,即使是可以跑整個OS的智能手機,為了省電,也有專門的晶元做音頻解碼。
現在人工智慧面臨的問題,不是快和慢,而是有些事情做不到。
現有的計算理論告訴我們:我們即使把神經元近似的實現為一些計算晶元,用硬體的方式搭出一個神經網路,它的計算能力和用軟體程序寫出來的人工神經網路並沒有本質的區別。
困難不在於是實現成硬體還是實現成軟體,而在於演算法。
硬體里包含了很多演算法。現有的計算機基本元器件,構建硬體系統電路的那些電子元件,在門電路這個層級上,是有限的。把這些元件構建成能處理彙編指令集的CPU,就已經在用演算法了。不然怎麼從只能做邏輯運算的電路構造出可以進行整數、浮點運算的CPU呢。
硬體模擬人腦這件事情,現在看起來不太可能。神經元是個太複雜太複雜的生化系統,精確模擬神經元的難度不亞於預測天氣,參數太多,構造太複雜。更不要說我們完全沒有足夠豐富的解剖學生理學數據去支撐這件事。
如果做不精確的近似,理論上又有麻煩。沒有理論告訴我們,面對這麼多神經元構成的複雜系統,對它的基本單元做了近似之後,整個系統的行為會偏差到什麼情況。所謂「失之毫釐,謬之千里」,這有點像複雜系統里的蝴蝶效應。
有,比如陳天石他們做的寒武紀1號:DianNao
寒武紀2號:http://novel.ict.ac.cn/ychen/pdf/DaDianNao.pdf
假設你所設想的硬體存在且成本足夠低。好了,接下來的問題是:我用這個硬體應該實現什麼樣的邏輯?就好比你拿與非門做加法器,這個邏輯總得先想好吧……
接下來,既然我們要做人工智慧,那麼這個硬體實現的邏輯就該是面向人工智慧的演算法吧。什麼,你說演算法還沒有?叫那幫搞人工智慧的去研究啊!
說到這裡題主應該就能看出來了。那幫研究人工智慧的人研究的是人工智慧的本質——人工智慧的邏輯,也就是演算法。至於硬體軟體,都只是實現的一種方式。到底是通用硬體+軟體還是專用硬體來實現人工智慧,都與人工智慧的研究無關。
層次不同,目標不同。人工智慧更偏向計算機科學領域,甚至可以是純理論的。軟硬體實現則是工程領域。做前者的人可以被稱為科學家,做後者的人則該稱為工程師。有硬體啊,高通今年就會有一款神經網路晶元發樣片
最近提出的憶阻器被稱為可以模擬大腦皮層神經突觸行為的新元件,憶阻器 ,可以關注一下。
模擬人腦不太現實,因為你沒辦法拿活人腦做實驗!現在對人腦的實驗就是在大腦中插入電極,不過那是在活人的腦子裡面插電極啊,數量太小,我印象里最多的只插了上千個電極吧,可人腦的腦細胞在140億,所以這種方法只能大致知道人腦的功能區分布,也就是人說話的時候大腦哪塊比較活躍之類的。所以人腦的底層結構並不清楚,同時對人腦你又沒辦法做破壞性試驗,所以AI就只能走功能模擬的路線了。所以硬體的思路基本不太現實,因為你不了解結構的情況下,如何用硬體來進行實現呢?神經網路也是簡化了又簡化,但就目前來看也只能模擬人腦的低級智能,人類的思考還是沒辦法用這個模型來實現的。
另外就是你怎麼理解智能這個概念的呢?聽說讀寫走跑跳,這都是AI的範圍啊,但這些動物也都行,但人類的思維能力是獨一無二的,如果你是指前面的廣泛意義上的智能,那現在已經有硬體的實現了,但後面的實在沒辦法,因為人類如何思考的,現在還不知道,那就無法建模,你連模型都沒有,怎麼搭電路呢?
應該說因為不能對活人腦做大規模的破壞性實驗,所以AI只能走功能模擬的路數,現在的AI能力很有限,短期內無法實現通常意義的智能,只能像前面某個兄弟所說的在有限的領域內輔助人類解決某些特定的問題。而就目前的情況下,為了揚長避短,AI都是依靠計算機的強大計算能力來在一個天文數字般的解空間中尋找滿意解,其實就是死算,最多是聰明的死算。這也就是AI為什麼總是圍繞著演算法的原因
人工智慧的根本在於演算法而不在於硬體。
我覺得題主所說的硬體的意思是說異構智腦器件,我覺得原因有二:第一,異構智腦器件是有的,但發展狀態很原始,比如量子邏輯器件、光邏輯器件。異構智腦器件對某些特定的計算過程有極大的加速,比如加速10000000000000倍,可以大幅改進演算法,但是對人工智慧的基本定義沒有什麼影響。第二,我們業已在矽片+圖靈機這條道上走了這麼遠,發展得這麼充分,那很顯然地首選在當前的這種平台上繼續研究啊,因為你造嗎?人工智慧還遠遠沒到拼硬體的時候呢!
按照題主對問題的補充,這裡基於硬體的人工智慧應該關注神經形態學和脈衝神經網路。
首先回答問題,為什麼人工智慧的研究都是基於軟體,而不是基於硬體?
這個和命名有些關係,雖然都是研究智能,但是基於軟體的叫做人工智慧(Artificial Intelligence),基於硬體的大家現在稱為神經形態學(Neuromorphic)。主要原因是研究的偏向於微觀,難以體現整體的智能。
從學術會議來看,研究人工智慧的關注AAAI和IJCAI,研究Neuromorphic關注BioCAS,雙方都關注NIPS和IJCNN。
如果你想了解一下什麼是神經形態學,請戳下面的鏈接。內容非常詳細
IBM 發布新型 SyNAPSE 神經網路晶元,會對整個計算機乃至科技領域產生什麼影響? - 薛矽的回答
研究很多問題都可以有top down和bottom up兩種模式。人工智慧研究的是什麼?是怎樣將一個抽象的任務邏輯化公式化。所以中間很多數學就可以玩弄了。非常適合科學研究。而神經形態學,首先著力於用電子元器件模擬神經元,然後就是希望用工程的方式拼出一個人腦來看看這個東西能不能產生智能。單一的神經元都是可以用電路模擬的,但是億萬個神經元就不好做了,再加上每個神經元的成百上千個連接,所以神經形態學適合高通IBM等業界巨頭玩,因為太工程了。
神經形態學算是研究底層硬體模擬大腦,脈衝神經網路則是建立大規模神經形態學硬體所需要規則。
早期的腦科學不發達,所以開瓢了以後,腦外醫生只能根據溝回給大腦進行劃分,也就有了額葉頂葉枕葉顳葉。後來又從細胞層級開始區分又在後來通過行為腦電檢測加以細分,把大腦按照功能區域分了五十多個區。但是這些發現都對於建立人腦晶元沒有太大的幫助。這是也僅僅是對於解剖級的腦系統有了了解。
等到對腦的細胞級電傳導研究取得進展,神經網路的研究也進入了新時期,就是第三代神經網路,脈衝神經網路(Spiking Neural Network)。脈衝神經網路和傳統的神經網路有個很大的區別就是每個神經元都是要充電和衰減的,那麼激發時間對網路的影響就很大,網路可以進行時序編碼(Temporal Coding)。連續激發才能激發下層神經元,而隔一會兒激發一下,下層也是不會有反應的。這樣一個脈衝神經元可以取代傳統神經網路中幾百個神經元。
給大家看一看神經元的激發大概是怎樣的,橫軸是時間,縱軸是電壓。
當研究宏觀的智能和微觀的神經元傳導都進行到一定程度——模擬電路可以用來仿造多種神經元並且數字電路可以進行某些簡單功能演算——這就是建立大規模電路的時機。科學家希望可以仿造簡單的生物腦或者人腦的簡單部分,做成晶元看一看是不是真的具有腦的強抽象功能。這就是簡單的希望可以通過模擬人腦的神經傳導和架構生成可能數學還不能解釋或者構建的東西,而且這個晶元會感知時間,或者說事件觸發的順序和時間間隔影響到晶元運算結果。
當然,除了微觀的脈衝神經網路,還需要向宏觀研究,各種神經網路就大顯身手。介紹一個比較有名的,Continuous Attractor Network。給大家看一下薛矽在SyNAPSE神經網路晶元回答下的SpiNNaker的拓撲圖像,這是一個典型的Continuous Attractor Network。
最後,繼續說研究硬體的智能,最宏觀的就算是Brain-based device。說簡單一點,就是一個有感測器,作動器,主要用神經網路來控制的機器人。這是諾獎獲得者Gerald Edelman晚年的研究方向。現在Jeff Krichmar還在繼續這項工作。可以戳他的主頁。他還著有"Neuromorphic and Brain-based robots"一書,可以說全都是講怎麼從硬體研究智能。
http://www.socsci.uci.edu/~jkrichma/
VHDL和Verilog不大熟悉,不過這些都還是基於邏輯的,應該是足夠開發傳統神經網路,但對脈衝神經網路應該是束手無策。
做Neuromorphic方向的科學家們都很希望能顛覆馮諾依曼結構,這個短期內可能性還太小,畢竟我們對人腦了解太少。IBM的晶元雖然神經元和連接已經到達了一個看起來不錯的數量級,但一來和人腦的差距還非常大,二來大家還不清楚人腦內的連接是怎麼變化的。
寫著寫著就覺得自己回答這個問題有點吃力-_-! 下面這個大家也可以看看,我只簡單從規模上扯了一下現在的晶元距離人腦還有多遠。人的大腦相當於什麼水平的CPU? - 賈子楓的回答
為什麼非得用硬體?
有什麼邏輯是軟體完全不能實現、非得用硬體實現的?
關鍵是你如何定義硬體,如果你說的硬體只是集成電路,那本質還是數字數字演算法的一種實現形式,可目前演算法根本不足以成熟的表達智能,你想像硬解視頻一樣把演算法加入到GPU中,又有和意義?
倒是你前半句值得思考,如果智能是基於演算法,那麼意味著智能將是先天確定的,但人類出生並沒有帶任何知識,如果一個人一出生就被狼撫養,那它的智能僅僅等同於所處的狼群,這至少說明智能是和客觀環境相結合的產物,靠演算法是無法設計這一切的想當年他們做了lisp機,結果跑lisp程序還沒通用機快,為天下笑,題主你這思想很危險啊…………………………
首先,這是個好的問題,其次我不是專業人士。我也只能就自己的想法拋磚引玉。
觀點「超於人類智能的人工智慧,絕對不是仿人腦的結構,也絕對不是優秀的演算法」
雖然,我們現在對大腦的工作機理還只是停留在生物結構方面。儘管我們一生用的大腦也只佔其中的不多比例。但是作為人腦,基於神經網路的複雜有機組織,它的智能水平肯定是有極限的。這是由物質和結構決定性能,決定的。我們尚不知道人腦結構的智能極限是什麼,但是它就在那。引申下「這也可能是碳基生命個體的智能極限」。也許會想為什麼「大腦」不能進化到沒有止境的能力。
更高的大腦處理能力,需要更多的能量和更多神經元以及更複雜的網路關係。更多的神經元意味著更高的能量供給和更長的處理時間以及更大的產熱。所以我覺得由於:
1、大腦耗能佔個體的能量消耗比例,這個比例的確定值可能和「智能群體」的社會環境有很大關係。
2、大腦質量佔個體質量的比例,這個和腦位置,身體靈活性有關係。
3、散熱,「大腦」可以認為是水冷結構,保證恆溫是性能的前提。
這三個條件和我們生活的地球環境(重力、氧氣含量)等有直接關係。
所以階段結論「地球上產生的個體智能是有極限的,如果存在地外生命,他們也類似」。在這呼應下題主的題目中關於「硬體」的觀點,人腦是一個硬體,裡面的軟體因人而異。同樣的如果你要設計一個新的「硬體」也要面對質量、能量、散熱等等極限問題。如果可以計算出「其他的材料(si)組成的「智能結構」單位體積和時間內不可能超越人腦的話」那我們有沒有重造的必要?
答案是 「有『,為什麼?詳表:
這是兩個神經元,我們大腦和神經系統的基本單位,他們之間的連接數量和傳遞速度對智能有直接影響。N多個他們構成了下面這貨。人手一個的大腦。
用心的材料和新的結構組成的新的智能處理中心,目前以我的理解應該也具備類似的基本構成單元和結構,只不過是材料不同,那麼你有信心找到更高效的組織和結構么?
到現在問題其實才展開了一半。誰說」個體的最高智能「是人類的智能了?愛因斯塔也不可能自己造出原子彈來。
有一個很可怕的演算法叫」遞歸』。ok你不是N多神經元組成大腦么,好那我拿N個大腦組成什麼?當然是「社會」這就出現了一個新的名詞「社會智能」。同樣的,社會也有他的極限,類比於人腦的極限。
社會智能可能和語言、制度、等等等的條件有關係。比如有的鼓勵創新有的鼓勵保守。
我們再近一層:
如果說我們的地球有智能的話,應該很大程度上取決於人類的智能。
如果有地外生命,那麼宇宙的智能是由
很多很多的有智能的星球組成,可惜「我們地球還沒主動聯繫過地外文明」結論「人工智慧的突破在於比人類社會更高效的溝通能力和更大的知識歸納」也許單一的「它」很低能(比如神經元)但是N個它的威力你沒法估計。
我覺得這個問題是個很好的問題,不過僅僅能夠就我懂的說一些。
現在的人工智慧演算法很多時候並不是在追求讓機器模擬或者模仿人的思維方式或者人的智能,而是通過演算法處理一些重複性,人類做起來很消耗時間而且重複性無聊的工作。
同時,也有工作是在模擬人腦的工作方式,最近深度學習中取得了很好的一些成果,有模擬人腦思維的工作了。不過由於我不是搞深度學習的,希望其他人能補充。
另外,主題模型,Latent Dirichlet Allocation 的確是做了一些之前人工智慧演算法不能的事情 —— 演算法能夠總結出抽象的主題,這與人類進行抽象思維就有些類似了。
對於硬體實在不懂,只能回答到這裡了。硬體難道不是為了跑演算法的么?無論是CPU的調度還是GPU的海量運算都是為了實現演算法。according to 我們系主任,硬體只不過是為演算法提供一個平台,硬體發展的越快,演算法能完成的功能也就越強大。如果我沒記錯的話VHDL裡面有個generate語句,看起來好像是為了產生元件,其實還是為了目的服務的,因為設計中需要用到多個重複模塊。而這個設計,本質上還是演算法的實現。
其實人工智慧主要的研發方向並非 主動思維,有人也成為自我意識。撅個栗子:一顆有特殊外觀的石子,乍一看並不具有智能,如果我們有千萬顆這樣的石子,將它們隨即拋灑在一個有限的三維空間中,你會發現在,當一艘宇宙飛船想要通過它們之間時,若要避讓石子,就必須航行出一道特殊的軌跡,我想這就是智慧的雛形:既對外部情況進行特殊的反射。
下面回答你為什麼不能用編程來實現真正的人工智慧,因為所它們都是基於數學,而數學是不完備的,數學中零的概念,只能相對存在。所以即便設計出更精妙的程序,模擬各種外部刺激的反射,也不可能產生意外。這局限於數學一定是邏輯的這一概念。所以所有程序 只能模擬反射,在有限的區域內看上去有智能。
什麼樣的智能硬體可以產生真正的智能,那必須是一種可以生長的硬體,硬體具備自然生長的特質,並且擁有一套僅有一個公式的軟體,這個公式,我想只能稱作創世公式。它控制硬體的生長,讓物質按照某種原始基本的法則排列。才可能創造出真正的智慧。
可,我們並不需要真正的智慧,我們只需要在有限空間內,夠用的智慧。假設我們想讓我的PC看上去好像有智慧,那麼我們需要一些精確外設,比如高水真的音頻輸入設備,攝像設備,在其上開發對應的軟體 讓其能夠模擬智慧反應,模擬的內容越多,它就看上去越智能,相對自生長的硬體來說,軟體可以實現自學習,比如讓我的PC 和攝像頭 拍攝所有朋友的臉,這樣下次當它看到其中某人時,喊出他的名字。這種看上去好像智能的人工智慧,其實就封裝更多的邏輯進入軟體。當這個體系足夠龐大時,你就會發現,這特么跟真智能沒啥區別。
個人理解,硬體會是未來人工智慧方向的一個很好的快速前進載體,目前依靠硬體實現人工智慧上的一些功能基本沒有依賴性,更多的是演算法帶來的突破,能更適配與什麼樣的硬體上,但是通常來講,硬體的影響很小,技術的突破還是在演算法、深度學習上。
推薦閱讀:
※人工智慧是根據什麼原理來設計和製造的?
※有關神經網路和遺傳演算法?
※不擅長編程,有運籌學基礎,該怎麼學習智能演算法?
※吳恩達為什麼離開谷歌?
※如何評價新提出的RNN變種SRU?