最近连着发生的几件事儿,都让笔者觉得有某种新的势头正在显现:机器学习正在大举进入工业和制造业领域,与工业物联网技术的结合有可能引发行业的新变革。
第一件事就在这两天——劳伦斯伯克利国家实验室的研究人员在《Nature Computional Materials》上发表论文称,他们首次通过建立和训练机器学习算法,得以预测某些金属间化合物的缺陷行为,而且预测具有高精度。
要知道,材料从来不是化学纯的或者是结构无缺陷的,了解这些“点缺陷”对于设计材料的研究人员来说至关重要。传统上,研究人员使用一种被称为密度泛函的计算方法来预测金属间化合物在给定的结构中会形成什么样的“点缺陷”以及它们将如何影响材料的性质。虽然有效,但是计算成本高昂,所以使用格外受限。
但是现在,研究人员可以对几百种材料进行密度函数计算,然后训练机器学习算法,从而快速、准确并且便宜地预测大量材料的“点缺陷”。
利用为946 B2型金属间化合物建立的r-MART模型预测金属的主要缺陷类型。如上图,不同的颜色显示了预测和计算之间的关系。
当然,我们并不需要明白什么是“点缺陷”和晶体结构“空穴”,也不需要会算什么计算量子力学的密度泛函。只要明白,因为机器学习,材料工业可以为充满无限可能的未来欢欣鼓舞一下了——从汽车到航空航天,这种新方法都将加速新型高级合金和轻量化新材料的应用。
除了材料工业,就在前几天,英伟达也是要“造反”,其新一代GPU剑指深度学习和虚拟现实!
其发布了基于其最新的 Pascal 架构的新一代 Quadro 系列显卡。英伟达宣称,新的芯片组可将桌面工作站转变成为具有突破性能力的超级计算机,为不同行业的专业任务提供保障。新的 Quadro 芯片组可以为设计、工程和有关虚拟现实以及深度学习的各种领域提供硬件支持。这些显卡可以构建企业级视觉计算平台,为用户简化设计和模拟工作流难度,与上一代产品相比,新的显卡速度最多可以提升两倍。
“开发者们的专业工作流已经充斥着人工智能、虚拟现实和照片级图像处理任务,这对计算设备硬件提出了新的挑战,”英伟达专业可视化副总裁 Bob Pette 说道,“我们的新一代 Quadro 系列提供了解决这些挑战所需的图形和计算性能,通过统一计算和设计,Quadro GP100 可以将普通桌面工作站转换成为超级计算机。”
因为GP100,工程师们常见的CAE模拟仿真等工作,将会产生鸟枪换大炮的体验。
基于这些事件,也难怪GE软件&GE全球研究院的高级首席科学家,会在最近2017年1月的一次演讲中,着重强调AI与IIoT结合的效益。他认为在世界范围内,工业环境中AI(人工智能)和IIoT(工业物联网)的整合都是一片蓝海,IAI是当前的绝佳创业机会。
机器学习变革制造业的五种方式
不只是最近,机器学习早已开始慢慢“入侵”制造业了。根据日本工业领域人工智能专家Tomi的观点,机器学习变革制造业主要有五种方式:
(1)代替肉眼检查作业,实现制造检查的智能化和无人化
例如工程岩体的分类,目前主要是通过有经验的工程师通过仔细鉴别来判断,效率比较低,并且不同的人有不同的判断偏差。
通过采用人工智能技术,把工程师的经验转化为深度学习算法,判断的淮确率和人工判断相当。得到对应的权值后开发出APP,这样现场工程人员在使用tablet拍照后,就可以通过APP自动得到工程岩体分类的结果,高效且淮确率高。
还有汽车零部件厂商,目前能够检查生产出的零件磨损种类与等级情况的,多是有经验的人工。同样,通过采用深度学习算法,可以把人工的检测经验转化为算法,从而实现无人化检测。
【插播案例】
上海宝钢和 Intel 合作,对钢材进行质量检验。对生产线上拍摄的照片,用机器学习的方法识别其中的划痕,酸洗,来代替人工检测。
(2)大幅改善工业机器人的作业性能,提升制造流程的自动化和无人化
将深度学习算法应用到工业机器人上,拿来做商品或者零件分拣,大概可以分为“分类”和“捡起”两步:
(1) 对商品或者零件进行“分类”
这个步骤非常适合使用深度学习,因为深度学习本质上就是用来做分类识别的。
(2) 将商品或者零件“成功捡起”
对于单个商品或者零件,要想将其成功捡起,关键是选择合适的把持位置,通俗的讲,就是确定机器人夹零件的哪个地方,可以使零件不下滑,从而使零件成功地被捡起来。
对于多个商品和零件堆积在一起的情形,除了把持位置的选择,还需要选择合适的抓取顺序,即先抓取哪一个零件,后抓取哪一个零件,这时可以采用Reinforcement Learning算法,最终可以达到约90%的成功率,和熟练工人的水平相当。
当然,要将这些成果大规模应用到工业流水线上,还需要考虑到正确率要求更高(一般是99.9%),以及速度要求更快等,目前许多改进就是围绕满足这两点指标来进行的。
例如bin picking机器人,工业上有许多需要分捡的作业,如上图所示的零件分捡,采用人工的话,速度缓慢且成本高,而且还需要提供适宜的工作温度环境(夏天的空调,冬天的暖气等),如果采用工业机器人的话,可以大幅减低成本,提高速度。但是,一般需要分捡的零件是没有整齐摆放的,机器人虽然有camera看到零件,但却不知道如何把零件成功的捡起来。这种情况下,使用机器学习,先让工业随机的进行一次分捡动作,然后告诉它这次动作是成功分捡到零件还是抓空了,经过多次训练之后,机器人会知道按照怎样的顺序来分捡,会有更高的成功率。
上面的图片表明通过机器学习后,机器人知道按照按照怎样的顺序分捡,成功率会更高,图中数字是分捡的先后次序
经过机器学习后,机器人知道了分捡时夹圆柱的哪个位置会有更高的捡起成功率,经过8个小时的学习后,机器人的分捡成功率可以达到90%,和熟练工人的水平相当。
(3)工业机器人异常的提前检知,从而有效避免机器故障带来的损失和影响
这方面和IoT(Internet of Things)结合比较多。例如在制造流水线上,有大量的工业机器人。如果其中一个机器人出现了故障,当人感知到这个故障时,可能已经造成大量的不合格品,从而带来不小的损失。如果能在故障发生以前就检知的话,可以有效做出预防,减少损失。
例如下图的工业机器人减速机和主轴,如果给它们配上sensor,并提前采取它们正常/不正常工作时的波形,电流等信息,用于训练机器学习系统,那么训练出来的模型就可以用来提前预警,实际的数据也表明人工智能会比人更早地预知到故障,从而降低损失。
经过机器学习后,模型通过观测到的波形,可以感知到人很难感知的细微变化。
经过机器学习后,模型通过观测到的波形,可以检知到人很难感知到的细微的变化,并在工业机器人彻底故障的之前的数星期,就提出有效预警。利用机器学习来提前预警主轴的故障,一般人都是主轴出现问题后才知道。
(4)高匹配率的找出符合3D模型参数的那些现实零件
例如工业上的3D模型设计完成后,需要根据3D模型中参数,寻找可对应的现实中的零件,用于制造实际的产品。使用机器学习来完成这个任务的话,可以快速,高匹配率的找出符合3D模型参数的那些现实零件。
根据3D模型设计的参数,机器学习模型计算各个现实零件与这些参数的类似度,从而筛选出匹配的现实零件。没有使用机器学习时,筛选的匹配率大概是68%,也就是说,找出的现实零件中有1/3不能满足3D模型设计的参数,而使用机器学习后,匹配率达到了96%。
(5)PCB电路板的辅助设计
任何一块印制板,都存在著与其他结构件配合装配的问题,所以,印制板的外形和尺寸,必须以产品整机结构为依据,另外还需要考虑到生产工艺。层数方面,也需要根据电路性能要求,板尺寸和线路的密集程度而定。如果不是经验丰富的技术人员,很难设计出合适的多层板。通过机器学习,可以将技术人员的经验转化为模型,从而提升PCB设计的效率与成功率。
机器学习在工业领域的瓶颈
参考知乎用户苗广艺和Assam的观点,机器学习在工业领域应用,仍有许多需要攻克的瓶颈。
(1)数据量的问题
效果好的方法大都是有监督训练的,这就需要很多标注数据,数据的质量、归一化方法、分布等,对模型的效果都影响很大。
数据量的问题可以分成两类来讨论:
a. 数据太多:那么面临着计算能力和计算成本的问题。
b. 数据太少:数据太少有时候是很客观存在的事情,在这种情况下模型的预测能力一般都不会太好。
(2)工程师经验
机器学习的方法对于一般的工程师并不友好,尤其是在工业和制造业领域深耕对机器学习根本不了解的工程师朋友。
如果没有了解原理和做过一些实验,这就是一个参数很多的黑盒,弄不好效果就会很差。
(3)计算能力和工程实现能力
很多模型,特别是深度学习模型,训练时间和资源消耗很大,如果需要多次训练调整策略和参数,周期很长。实际部署运行速度也受模型大小和种类影响,速度和效果会有一个权衡。
另外,好的算法要有好的工程实现,才能发挥正常的作用,代码能力不行,再好的模型也不行。
(4)机器学习的不可预测性
机器学习的每个过程都充满了不可预测性,比如解释model,比如处理missing value,也比如将文字转化为vector。按理来说,我们会觉得更复杂的处理效果更好,但大部分时候你会发现bag of words比skip-gram强多了。大概机器学习的每个环节都存在这种问题,没有唯一的经典的最好的方法。做机器学习就像是猜密码,而且是一个很多位的密码。