人工智能 VS 芯片工程師
最近,來(lái)自清華大學(xué)等單位的研究團隊發(fā)表了使用基于強化學(xué)習人工智能做自動(dòng)化毫米波電路(論文中的例子是濾波器)的設計。根據論文結果,使用人工智能算法實(shí)現的濾波器設計能達到和真人工程師相近的指標,而有趣的是人工智能算法得到的濾波器的形狀則較為不規則(下圖中的a和d是真人工程師的設計,b和e是人工智能算法的設計)。
本文引用地址:http://dyxdggzs.com/article/201902/397478.htm
相關(guān)報道得到了電路設計領(lǐng)域的關(guān)注,不少朋友對于算法能自動(dòng)設計出指標和真人設計接近的濾波器表示驚訝,并希望未來(lái)能有更多這樣基于人工智能的自動(dòng)化算法來(lái)加速電路設計。
在筆者看來(lái),這樣的強化學(xué)習人工智能算法用于濾波器設計確實(shí)是一種學(xué)術(shù)上的突破,而在未來(lái)我們可望看到更多這樣的突破。另一方面,事實(shí)上人工智能已經(jīng)在EDA領(lǐng)域得到了高度重視,甚至我們目前已經(jīng)在用的一些工具中已經(jīng)在算法上加入了人工智能的成分。但是,我們同時(shí)也認為,人工智能離真正自動(dòng)設計中等規模以上的復雜電路還有很長(cháng)的路要走,未來(lái)人工智能在EDA領(lǐng)域主要還是以輔助工程師設計,簡(jiǎn)化流程以及提高設計質(zhì)量為主。
人工智能的本質(zhì)
要理解人工智能對于EDA的影響,我們首先要理解這一波人工智能算法的本質(zhì)。這一波人工智能算法歸根到底是基于大數據挖掘的機器學(xué)習算法,能夠從海量數據中把握高維數據之間的統計規律,并根據該統計規律來(lái)實(shí)現更多的應用。
實(shí)際上,人工智能最擅長(cháng)的其實(shí)是和高維數據相關(guān)的分析和優(yōu)化的任務(wù)。什么是“高維數據”?用簡(jiǎn)單一點(diǎn)的方式來(lái)解釋?zhuān)梢源笾吕斫鉃椤笆芎芏喾N因素影響的變量”。
舉例來(lái)說(shuō),如果我們把“用戶(hù)購買(mǎi)某款網(wǎng)紅口紅的概率”作為一個(gè)變量,那么我們會(huì )發(fā)現該變量會(huì )與用戶(hù)的性別、年齡、學(xué)歷、收入、居住地、是否喜歡網(wǎng)購等大量因素有關(guān),把所有這些相關(guān)因素組成一個(gè)向量,就是一個(gè)高維數據。人類(lèi)天生很難定量處理這種高維數據,所以往往要降維處理,例如根據數據總結出“滿(mǎn)足女性,年齡20-25,大學(xué)以上學(xué)歷,月收入5000以上,居住在二線(xiàn)以上城市,喜歡網(wǎng)購這些條件的人最可能買(mǎi)這款網(wǎng)紅口紅”,但這遠遠做不到定量,因為變量和影響因素之間的關(guān)系人類(lèi)難以找到一個(gè)擬合的數量關(guān)系。
例如用戶(hù)A年齡為26(超出前述20-25范圍),但是對網(wǎng)購有遠超常人熱情的女性,雖然沒(méi)有落在前述規律的范圍里,但是甚至會(huì )比落在前述規律范圍里的人有更大的可能去買(mǎi)該款口紅。但是如果用機器學(xué)習就能找出變量與各個(gè)影響因素之間的擬合數量關(guān)系,這樣對于用戶(hù)A的例子,雖然其年齡項的得分略低,但是其網(wǎng)購熱情得分極高,因此其購買(mǎi)口紅傾向的總分也會(huì )較高,系統就可以順利將其歸納為該口紅的潛在消費者。
如果我們看前面人工智能設計濾波器的例子,也能看到類(lèi)似的情況。濾波器的走線(xiàn)事實(shí)上是一個(gè)高維數據,因為每一個(gè)像素點(diǎn)都存在自由度讓工程師去決定走線(xiàn)要不要覆蓋到這里。對于人類(lèi)工程師來(lái)說(shuō),由于難以處理這么高的數據維度,所以設計的時(shí)候會(huì )采取降維的方法,即以畫(huà)直線(xiàn)為主,可調整的變量簡(jiǎn)化到了直線(xiàn)的粗細、直線(xiàn)之間的間距以及直線(xiàn)的數量等等。而人工智能則不受數據維度的限制,因此會(huì )探索出更自由的設計模式,相應地其設計結果在人類(lèi)看起來(lái)也會(huì )顯得更不規則——因為一旦按照規則,就意味著(zhù)數據維度的降低。
當然,這一代的人工智能雖然具有處理高維數據的強大能力,與此同時(shí)也有很強的局限性,即缺乏抽象推理、因果歸因和歸納的能力,同時(shí)其生成的能力也偏弱。另外,由于人工智能是基于大數據的數據挖掘,因此在數據量不夠大的時(shí)候,就難以工作。因此,人工智能目前還沒(méi)發(fā)學(xué)習到一套抽象的、普適性較強的設計方法,也就限制了其自動(dòng)完成復雜設計的能力。
人工智能在電路設計中的應用
根據之前的分析,我們可以發(fā)現人工智能對于電路設計最適合的應用是對于高維數據空間的探索,包括擁有海量影響因素導致人類(lèi)設計師難以把握的問(wèn)題,以及啟發(fā)式的優(yōu)化問(wèn)題。
機器學(xué)習和人工智能在EDA領(lǐng)域最普遍的應用例子就是數字電路后端的布局布線(xiàn)。數字電路的布局布線(xiàn)屬于典型的啟發(fā)式(heuristic)探索問(wèn)題,即由于變量空間過(guò)大,難以找到全局最優(yōu)解,因此實(shí)際的方法都是從一個(gè)試探型的初始解開(kāi)始,慢慢探索嘗試,最終收斂到一個(gè)較好的解上面。對于數字后端布局布線(xiàn)流程比較熟悉的朋友們一定會(huì )知道通常布線(xiàn)流程會(huì )包括trial route、global route、detailed route以及反復的incremental optimization,這也就是一個(gè)典型的通過(guò)啟發(fā)式算法找到較優(yōu)解的流程。
對于較大的設計,布線(xiàn)算法的每一步都要跑非常久(數小時(shí)到數天),但是最后又不一定會(huì )真正收斂到較好的解,有時(shí)候甚至會(huì )出現跑optimization結果反而變差的現象,這其實(shí)也是傳統的啟發(fā)式算法的典型現象,因為啟發(fā)式算法的探索只是大概率會(huì )得到更好的解,但是不能保證每次探索都能找到更好的解。
評論