新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 人工智能 VS 芯片工程师

人工智能 VS 芯片工程师

作者:时间:2019-02-12来源:网络收藏
编者按:相关报道得到了电路设计领域的关注,不少朋友对于算法能自动设计出指标和真人设计接近的滤波器表示惊讶,并希望未来能有更多这样基于人工智能的自动化算法来加速电路设计。

  最近,来自清华大学等单位的研究团队发表了使用基于强化学习做自动化毫米波电路(论文中的例子是滤波器)的设计。根据论文结果,使用算法实现的滤波器设计能达到和真人工程师相近的指标,而有趣的是算法得到的滤波器的形状则较为不规则(下图中的a和d是真人工程师的设计,b和e是人工智能算法的设计)。

本文引用地址:http://www.eepw.com.cn/article/201902/397478.htm

  相关报道得到了电路设计领域的关注,不少朋友对于算法能自动设计出指标和真人设计接近的滤波器表示惊讶,并希望未来能有更多这样基于人工智能的自动化算法来加速电路设计。

  在笔者看来,这样的强化学习人工智能算法用于滤波器设计确实是一种学术上的突破,而在未来我们可望看到更多这样的突破。另一方面,事实上人工智能已经在EDA领域得到了高度重视,甚至我们目前已经在用的一些工具中已经在算法上加入了人工智能的成分。但是,我们同时也认为,人工智能离真正自动设计中等规模以上的复杂电路还有很长的路要走,未来人工智能在EDA领域主要还是以辅助工程师设计,简化流程以及提高设计质量为主。

  人工智能的本质

  要理解人工智能对于EDA的影响,我们首先要理解这一波人工智能算法的本质。这一波人工智能算法归根到底是基于大数据挖掘的机器学习算法,能够从海量数据中把握高维数据之间的统计规律,并根据该统计规律来实现更多的应用。

  实际上,人工智能最擅长的其实是和高维数据相关的分析和优化的任务。什么是“高维数据”?用简单一点的方式来解释,可以大致理解为“受很多种因素影响的变量”。

  举例来说,如果我们把“用户购买某款网红口红的概率”作为一个变量,那么我们会发现该变量会与用户的性别、年龄、学历、收入、居住地、是否喜欢网购等大量因素有关,把所有这些相关因素组成一个向量,就是一个高维数据。人类天生很难定量处理这种高维数据,所以往往要降维处理,例如根据数据总结出“满足女性,年龄20-25,大学以上学历,月收入5000以上,居住在二线以上城市,喜欢网购这些条件的人最可能买这款网红口红”,但这远远做不到定量,因为变量和影响因素之间的关系人类难以找到一个拟合的数量关系。

  例如用户A年龄为26(超出前述20-25范围),但是对网购有远超常人热情的女性,虽然没有落在前述规律的范围里,但是甚至会比落在前述规律范围里的人有更大的可能去买该款口红。但是如果用机器学习就能找出变量与各个影响因素之间的拟合数量关系,这样对于用户A的例子,虽然其年龄项的得分略低,但是其网购热情得分极高,因此其购买口红倾向的总分也会较高,系统就可以顺利将其归纳为该口红的潜在消费者。

  如果我们看前面人工智能设计滤波器的例子,也能看到类似的情况。滤波器的走线事实上是一个高维数据,因为每一个像素点都存在自由度让工程师去决定走线要不要覆盖到这里。对于人类工程师来说,由于难以处理这么高的数据维度,所以设计的时候会采取降维的方法,即以画直线为主,可调整的变量简化到了直线的粗细、直线之间的间距以及直线的数量等等。而人工智能则不受数据维度的限制,因此会探索出更自由的设计模式,相应地其设计结果在人类看起来也会显得更不规则——因为一旦按照规则,就意味着数据维度的降低。

  当然,这一代的人工智能虽然具有处理高维数据的强大能力,与此同时也有很强的局限性,即缺乏抽象推理、因果归因和归纳的能力,同时其生成的能力也偏弱。另外,由于人工智能是基于大数据的数据挖掘,因此在数据量不够大的时候,就难以工作。因此,人工智能目前还没发学习到一套抽象的、普适性较强的设计方法,也就限制了其自动完成复杂设计的能力。

  人工智能在电路设计中的应用

  根据之前的分析,我们可以发现人工智能对于电路设计最适合的应用是对于高维数据空间的探索,包括拥有海量影响因素导致人类设计师难以把握的问题,以及启发式的优化问题。

  机器学习和人工智能在EDA领域最普遍的应用例子就是数字电路后端的布局布线。数字电路的布局布线属于典型的启发式(heuristic)探索问题,即由于变量空间过大,难以找到全局最优解,因此实际的方法都是从一个试探型的初始解开始,慢慢探索尝试,最终收敛到一个较好的解上面。对于数字后端布局布线流程比较熟悉的朋友们一定会知道通常布线流程会包括trial route、global route、detailed route以及反复的incremental optimization,这也就是一个典型的通过启发式算法找到较优解的流程。

  对于较大的设计,布线算法的每一步都要跑非常久(数小时到数天),但是最后又不一定会真正收敛到较好的解,有时候甚至会出现跑optimization结果反而变差的现象,这其实也是传统的启发式算法的典型现象,因为启发式算法的探索只是大概率会得到更好的解,但是不能保证每次探索都能找到更好的解。



上一页 1 2 下一页

评论

技术专区

关闭