Py学习  »  机器学习算法

机器教学:用人类的专业知识与经验指导机器学习

微软研究院AI头条 • 4 年前 • 388 次点击  



编者按:随着AI应用的场景越来越丰富,加上数据量小、任务复杂等种种实践中可能出现的挑战,有时机器学习的结果并不理想,而且效率低下。而我们人类拥有丰富的专业经验,为什么不向机器传授一些小诀窍呢?为此,微软研究院推出了一种辅助方法——“机器教学”(Machine Teaching),人类可以利用自己的专业知识和经验帮助AI进行更有针对性的学习,帮助强化学习算法更快地找到解决方案。本文编译自微软人工智能博客“Machine teaching: How people’s expertise makes AI even more powerful”。


微软商业人工智能事业部总经理、Bonsai公司前首席执行官Mark Hammond




用人类的知识帮助机器学习



我们今天的机器学习过程,某种程度上就像把一根球棒和一只棒球交给五岁小朋友,向他展示球棒和棒球之间无数种使用方法,然后期望他自己体会出打棒球的正确方式——我们向机器展示海量的数据,希望它能自己找到其中的关联和模式。这对简单的文本、图像识别等常见的AI技术来说非常有效,但随着AI应用的领域和场景越来越丰富,有时机器自主学习的效果并不理想,而且效率低下,特别是在训练数据过少的情况下。


“面对人类,我们可能会非常自然地想到,教小朋友打棒球要从最简单的开始,慢慢过渡到快球;但当我们面对机器的时候,大家都想直接给系统上快球。事实上,机器学习除了自行从数据中摸索知识,更可以从经验丰富的人类这里获取相关的知识。” 微软商业人工智能事业部总经理Mark Hammond说。为此,微软研究院开发了一种辅助方法——“机器教学”(Machine Teaching),人类可以利用自己的专业知识和经验帮助AI将复杂问题分解成比较简单的任务,并为机器学习模型提供相关的重要线索,帮助强化学习算法更好地找到解决方案。



如果你要教一位小朋友识别桌子,你会先告诉他:“它有四条腿和一个平面”。如果他把椅子也当成了桌子,你就会进一步向他解释:“椅子有靠背,但桌子没有靠背”。这一抽象的反馈的循环是人类学习方式的关键,而它也能使传统的机器学习方法变得更强大。


机器教学能在许多场景中发挥出格外的优势。在有监督学习中,如果某个特定行业或公司的需求过于具体,导致训练数据非常少,机器教学将非常有用。而在复杂的强化学习场景中,算法可能很难从数百万种可能中做出选择,这时,如果拥有某方面专业知识的人类提供一些帮助,机器就能大大缩短寻找解决方案的时间。


这也是微软提出机器教学的长远目标之一。我们希望为来自各行各业的人们提供人工智能平台,让律师、会计师、工程师、护士等不同领域的专家即使具备很少的AI专业知识,也能将所在领域的专业知识传授给智能系统,让智能系统更有效地助力问题的解决。


 “即使是最聪明的AI,也要经过很多学习才能完成现实世界中的复杂任务。因此AI需要在人们的引导下学习,这也让更广泛的用户能借助机器学习来完成复杂的任务,这是机器教学的意义所在。” 微软商业人工智能事业部副总裁Gurdeep Pall表示。


微软机器教学组对机器教学原理的探索已将近十年,目前他们正在将这些概念融入微软的各大产品,以帮助企业构建定制化的智能系统与工具。“如果你可以向他人传授某些知识,你也能用相似的方法把它们传授给机器。”微软杰出工程师、机器教学项目发起者Patrice Simard说,他的团队将加入微软体验与设备组,将机器教学与微软的对话式AI产品进一步整合。


微软研究员Patrice Simard,Alicia Edelman Pelton和Riham Mansour(从左至右)正在将机器教学融入微软产品中


机器教学的应用潜力

  

Simard开始思考新的AI系统范式,是因为他注意到机器学习会议上的许多工作都在通过精妙的基准测试来提高算法性能。这让他意识到“教授”知识对机器学习的重要性,特别是在数据有限的情况下。


机器教学要通过识别高层级、有意义的特征来改进模型。比如,你想让AI选出质量最好的汽车,却只有很少的标注数据,AI提取出的“好车”的特征可能会非常不靠谱,比如“车牌第四位是2”。但如果提示AI对油耗、安全评级、碰撞测试、价格等标准进行综合考量,尽管数据仍然有限,AI对汽车质量的评估将有效许多。


除此之外,机器教学的另一个目的是把复杂任务分解为多个更简单的任务。如果没有高层级特征,则可用包含较低层级特征、简单到只需少量案例就能学习的子模型来构建。如果系统多次出现同样的错误,则可以通过添加特征或案例的方式来消除。


Azure认知服务中的语言理解API是机器教学理念应用的首批产品之一,它能够帮助用户 “理解” 短文本中的意图和关键概念,目前已被UPS快递、Progressive Insurance和西班牙电信等企业用于开发智能客服机器人。使用机器教学的方法,人们将无需为客服机器人准备包含所有用户问题的数据集,只需提供四五个问题案例和该领域的重要特征、关键字,语言理解API就可以顺利完成剩余的工作。


机器教学流程图


再举个例子,一家公司想用AI扫描过去一年的所有文件和电子邮件,了解销售一共发出了多少次报价,又有多少次成功完成了销售。AI首先要知道怎样从合同或发票中识别报价,而问题在于没有现成的训练数据,而且每名销售人员的开单据的方式可能都有所差别。


这时,如果采用传统的机器学习方法,这家公司就要经历漫长繁复的人工标记数据流程,再请一位机器学习专家来构建机器学习模型。而一旦销售人员改变了单据格式,模型就会无法识别。


而如果采用机器教学的模式,企业内部的专业人员将为报价常见的特征和结构提供线索,如客户名、“报价单”、“交货日期”、“产品”、“数量”、“付款条款”等关键词。系统会将这些专业知识转化为机器可理解的语言来执行预先选择的机器学习算法。这样,利用组织内已有的专业知识,就能在很短的时间内为企业构建定制化的AI解决方案。


微软研究人员正在探索如何将机器教学应用于更复杂的任务题,比如对更长的文档、电子邮件和图像进行分类;以及如何让“教学”的过程更直观,比如向用户呈现可能有意义的特征建议。


微软商业人工智能事业部副总裁Gurdeep Pall讲解基于机器教学的自主系统解决方案


将机器教学与深度强化学习融合



十余年前,当Hammond在耶鲁大学神经科学实验室担任系统程序员时,他注意到了科学家一步步训练动物完成研究任务的过程。他由此想到,我们人类拥有丰富的专业经验,为什么不向机器传授一些小诀窍呢?


因此他创办了Bonsai公司,将机器教学与深度强化学习融合,帮助企业在机器人、制造、能源、建筑管理等领域开发自主系统。微软在去年将Bonsai公司纳入麾下。


深度强化学习模型通过基于激励机制的反复试错进行学习,目前在电子游戏中已经能够打败人类。Hammond认为,对于现实世界中更为复杂的应用问题,深度强化学习还有很长的路要走,而机器教学方法与深度强化学习的结合则可以大大提高解决问题的效率。


开发者和其他领域的专业人士可以用Bonsai定制的编程语言Inkling将自己的专业知识“传授”给AI,就像编写课件一样。通过对这些关键知识的学习,Bonsai系统能更快地选出最好的强化学习模型,并在模拟环境中测试不同的操作,给出效果最优的解决方案,从而避免许多耗时的无效探索。


在Hammond看来,人们从一开始就应该告诉AI应该着重关注哪些要点,“如果只用强化学习,不向它提供任何对解决问题有帮助的信息,它就会像无头苍蝇一样随意探索,很难发现行之有效的解决方案。所以机器教学非常重要,它能够让问题真正得以解决。”


相关链接

1.微软机器教学组:https://www.microsoft.com/en-us/research/group/machine-teaching-group/


长按扫码,查看链接


2.Azure认知服务语言理解API:https://azure.microsoft.com/en-us/services/cognitive-services/language-understanding-intelligent-service/


长按扫码,查看链接






你也许还想看



感谢你关注“微软研究院AI头条”,我们期待你的留言和投稿,共建交流平台。来稿请寄:msraai@microsoft.com。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32463
 
388 次点击