人工智能与商业应用
商业机构中的领导者对人工智能的商业影响力感到既担忧又兴奋。全球各地的公司正逐渐意识到这一新技术的力量,并开始探索如何应用人工智能提升企业竞争力。
本文基于Efma和德勤联合进行的EMEA(欧洲、中东、非洲三地区)FSI(金融服务业)调查结果,并引用了业内多家公司的见解和案例研究,分析了人工智能的逻辑建模、行业现状以及理解和利用人工智能技术所需要采取的行动。
1. 人工智能应用领域
人工智能有三大主要应用领域:认知自动化,认知参与和认知洞察力。
认知自动化
在这一领域,人工智能的主要领域是机器学习,机器人流程自动化(RPA),和其他能够自动化深层领域知识开发的认知工具。我们已经看到人工智能设备自动化了那些传统上需要训练有素的工人才能完成的任务。
手写和字符识别是认知自动化应用的最佳范例,它可以支持高强度、复杂繁琐的办公业务,以帮助企业降低风险和成本。例如,可以使用自然语言处理和OCR技术从文档中提取关键信息。
认知参与
人工智能的下一阶段是认知技术“代理”:系统通过认知技术与人类建立密切关系。
认知系统开启了文本/图像/视频等“非结构化”数据的力量,为银行和客户提供定制化的产品和服务并创造新的收益流。
最常见的例子是语音识别接口,它可以执行语音指令,降低温控器或打开电视频道。同时,也出现了一些使用认知参与的新型应用领域,这些领域需要人工智能接触到更复杂的信息并执行数字化任务。比如接收病人入院,或者推荐产品和服务。
认知洞察力
认知洞察力是指从各种数据流中提取概念和关系,用来生成隐藏在大量“结构化”和“非结构化”数据中的相关答案。
总的来说,认知洞察力可以检测来自多个数据源数据的关键内容和相关联系,从而获得更深入和可操作的洞见。
随着处理数据量的增加,观察和预测的准确性得到了提高。人工智能不仅可以深入了解已经发生的事情,而且还能分析正在发生的事情,以及预测接下来可能发生的事情。这可以帮助商业领袖制定计划,帮助员工提高他们的业绩。例如,在全球呼叫中心,客服人员使用多功能客户支持程序来回答产品提问,接受订单,调查账单问题,并解决客户的其他困扰。
根据斯坦福大学主题为“2030年的人工智能与生活”的调查研究,专家预测人工智能将在以下八大领域发挥重要作用:交通,服务型机器人,医疗,教育,低资源社区,公众安全,就业与工作以及娱乐产业。另一方面,美国劳动部在2016年发布的报告中提到“65%的在校学生未来将被雇佣于现在尚未存在的工作岗位”。这些预测告诉我们,在不久的将来,人工智能技术将与我们的生活产生紧密联系,对工作和生活等多方面造成深远影响。
2. 人工智能中的监管问题
接下来的问题是:经济发展和社会各界需要做出哪些准备来迎接人工智能光明的未来?
在2017年初,欧洲议会提出一系列管理人工智能的法规,用来规定相关道德准则,以及人工智能犯错的责任归属问题。
议会调查员MadyDelvax强调了建立一个欧洲机器人监管机构的重要性,该机构将通过提供技术支持来协助政府部门。他还建议起草一份道德行为准则,用以指导机器人工程项目并确定他们的行为责任。
事实上,问责权或法律责任是人工智能争议中的关键问题。自动驾驶汽车的兴起就是最明显的例子,相关各方有必要去定义具体的保险计划,并确定损害赔偿的责任。在未来,智能自动化机器人将被赋予某种“法律人格”。最后Delvaux的报告强调,机器人可能会对社会产生长期影响,政府部门需要密切关注这些趋势,创造新的就业岗位和税收模式。
3. 人工智能发展现状
为了了解金融服务行业在人工智能应用方面的现状和前景,Efma和德勤联合进行了一项大型调查,调查范围涉及超过3000人,受访者主要为金融服务公司技术和业务方面的高管,大多受访者表示,新认知技术的应用将增强工作的可控性,并减轻员工的工作负担,而不是将人们的劳动力完全替代。
对于“贵公司在人工智能应用领域处于什么阶段”这一问题,约90%的公司表示已经开始在他们的工作中使用人工智能技术,或正处于对这一新技术的学习中。
《智能制造标杆企业案例集》发布
为进一步发挥智能制造标杆企业引领示范作用,工信部组织智能制造系统解决方案供应商联盟(以下简称“联盟”)面向“2019年智能制造标杆企业”开展了案例征集和编制工作,在深度梳理、筛选和专家指导的基础上遴选出17个典型案例,编制形成《智能制造标杆企业案例集》。案例来自汽车整车、家用电器、电池制造、石油化工、通用仪器仪表等多个行业领域,从企业基本情况、项目背景、实施路径、成效总结、经验复制推广、建设体会、亮点及模式总结等不同方面进行了阐述,为不同行业、区域企业开展智能化改造提供有借鉴意义的成功经验和模式。
附件:智能制造标杆企业案例简介.pdf
中国人工智能应用独角兽排名TOP90
历时60天,今天铅笔道将发布《2021真榜•人工智能应用排行榜》:90家独角兽从1800家企业脱颖而出,登顶榜单。铅笔道特发此文,以表彰它们。
数字经济是国家重点关注的新经济方向,而人工智能是数字经济的代表产业。人工智能当前的关注重点,不在于技术或产品本身,而在于“应用”。只有解决“应用”问题,它才能从一个实验室产品,变成一个市场化产品:企业才能可持续盈利。
这也是本期榜单的初心:发掘一批最具应用价值的人工智能企业。而让人兴奋的是,最近几年,人工智能的应用成果已经在各个产业开花。
人工智能与未来城市结合,新一代拥有智慧大脑的现代化城市全副武装。
人工智能与医疗结合,各类软、硬件机器人层出不穷,让诊断、手术等各个环节有了颠覆性改变。
人工智能与智能制造结合,让制造业的研发设计生产制造大大提速。
人工智能与企业经营结合,各类客服、财务机器人出现,帮助我们从繁琐、重复的工作中解脱出来。
......
通过榜单,我们期待将这些应用成果发掘出来,以供产业借鉴,最终助推产业人工智能化。
本期真榜调研周期约60天,调研样本1800家,调研维度50多个。榜单有着较为严苛的最低准入门槛(评选资格):估值必须在1亿美金以上;近3年至少完成1轮融资,金额在3000万元以上。
达到评选资格后,企业将被纳入1套较为科学的评价体系,依据分值高低(非量化部分由专家评审组评估)得出排名。
这套评价体系着重考察几个方面:
上榜企业必须有着扎实的基本面:如足够大的赛道,足够优秀的团队,足够科学的解决方案,足够好的当下业绩,以及足够想象力的未来增长空间。
上榜企业必须得到资本的高度认可:比如足够高的资本估值,足够大的过往融资额,足够爆发性的增长曲线。
上榜企业必须创造了良好的商业价值:比如足够靠前的年收入,足够靠前的年利润,足够靠前的收入增长与利润增长。
榜单数据主要来源于4个渠道:
1.问卷调研:我们邀请企业参榜并填写问卷表单
2.铅笔道DATA:我们参考自有数据库的独家信息
3.第三方数据库:我们参考第三方媒体、数据库收录的信息
4.专家访谈及核实:我们依靠采访、调研等手段核实信息
今日,铅笔道正式发布《2021真榜•人工智能应用•最具商业价值排行榜》,期待扮演产业望远镜的角色,将那些在行业里默默耕耘、贡献的发光企业挖掘出来:让国家看见它们,让资本看见它们,让行业看见它们。
考虑到榜单的广泛影响力,在结果正式发布前,铅笔道特此声明:真榜致力于做创新经济“不说谎的榜单”,即“用最真实客观的评价手段,发现影响时代的创新者”,但在实际评估中,榜单结果将难以避免地受到复杂的客观因素影响。
2021真榜·人工智能应用最具商业价值排行榜·智能安防与城市TOP10
本次智能安防与城市榜单中,上榜企业的最新一轮融资额平均达1.448亿元,中位数为1亿元;最新估值平均达52亿元,中位数为18亿元。从营收方面看,上榜企业平均年收入约1.7亿元,中位数为1.05亿元。
2021真榜·人工智能应用最具商业价值排行榜·智能机器人TOP10
在智能机器人榜单中,上榜企业最新一轮的平均融资额达5.025亿元,中位数为4亿元;平均估值约52.88亿元,中位数为25亿元。从营收方面看,上榜企业平均收入5875万元,中位数为4500万元。
2021真榜·人工智能应用最具商业价值排行榜·智能制造TOP10
在智能制造榜单中,上榜企业最新一轮融资额平均达3.01亿元,中位数为2亿元;平均估值19.345亿元左右,中位数为15.4亿元。从营收方面看,上榜企业平均收入4755.56万元,中位数为3000万元。
2021真榜·人工智能应用最具商业价值排行榜·智能医疗TOP10
在数据与智能榜单中,上榜企业最新一轮融资额平均达2.599亿元,中位数为1.55亿元;平均估值32.056亿元左右,中位数为28亿元。从营收方面看,上榜企业平均收入13233.33万元,中位数为4700万元。
2021真榜·人工智能应用最具商业价值排行榜·智能金融TOP10
在智能金融榜单中,上榜企业最新一轮融资额平均达3.38亿元,中位数为2亿元;平均估值42.2亿元左右,中位数为23亿元。从营收方面看,上榜企业平均收入7285.71万元,中位数收入为5000万元。
2021真榜·人工智能应用最具商业价值排行榜·智能驾驶TOP10
在智能驾驶榜单中,上榜企业最新一轮融资额平均达6.675亿元,中位数为1.4亿元;平均估值68.73亿元左右,中位数为58.6亿元。从营收方面看,上榜企业平均收入7833.33万元,中位数收入6800万元。
2021真榜·人工智能应用最具业价值排行榜·智能客服TOP10
在智能客服榜单中,上榜企业最新一轮融资额平均达1.62亿元,中位数为1.225亿元;平均估值34.76亿元左右,中位数为23亿元。从营收方面看,上榜企业平均收入9744.44万元,中位数为1亿元。
2021真榜·人工智能应用最具商业价值排行榜·智能家居TOP10
在智能家居榜单中,上榜企业最新一轮融资额平均达5100万元;平均估值18.3亿元左右,中位数为16亿元。从营收方面看,上榜企业平均收入2.86亿元,中位数2.8亿元。
2021真榜·人工智能应用最具商业价值排行榜·智能零售TOP10
在智能零售榜单中,上榜企业最新一轮融资额平均达6.555亿元,中位数为1.81亿元;平均估值38.91亿元左右,中位数为17.5亿元。从营收方面看,上榜企业平均收入6340万元,中位数为4000万元。
铅笔道介绍
铅笔道是中国第三代创新创业服务平台,致力于发现创新公司,服务创新公司,旗下涵盖投融资、新媒体、PR等服务。
目前,铅笔道用户覆盖3000万创新公司,其APP、公众号、官网等平台已积累约100多万创投圈活跃用户,深度链200000+股权投资人,覆盖活跃投资机构4000+。过去5年,铅笔道累计采访了13000名创新公司,据公众号数据统计,垂直原创内容数在创新创业圈排名TOP1。
铅笔道已经完成五轮融资,股东不乏真格、软银中国、险峰长青、英诺天使、BAI、YC中国(现奇绩创坛)等TOP投资机构。
人工智能经典案例
图6-21火星探矿机器人案例的环境示意图
“火星探矿机器人”的设计目标是要采集火星矿产,并将其带到预定的区域。
为此,该机器人具有以下一组基本能力。
移动。它能够在火星表面移动,能够从一个单元格移动到其上、下、左、右的相邻单元格。
探测。它配备了多种传感器,具有一定程度的环境感知能力,具体包括探测周围一定区间(如相邻多少个单元格)的矿产分布情况以及障碍物情况。
采集。它能够采集所在单元格中的火星矿产。
卸载。它能够卸载其采集的、放置在其体内的矿产。
交互。它能够与其他的机器人进行交互和协同,以更高效地采集矿产。例如,一个机器人探测到大面积的矿产,它可以将该矿产信息告知其他机器人,以便他们能够来该区域采集矿产。
为了充分反应探矿机器人的实际情况,我们对机器人作了以下假设:
①每个机器人存储矿产的容量都有一定的限度,即机器人内部只有有限的空间存放矿产,一旦机器人采集的矿产超出其存储容量,它必须将这些矿产卸载到特定的位置区域,以便能够再次采集矿产。
②每个机器人的能量都有一定的限度,机器人在移动、探测、采集、卸载等过程中会消耗能量,为此机器人必须在其能量消耗殆尽之前补充能量(如充电)。
③每个机器人的感知能力都是有限度的,它只能够感知其周围一定范围内的环境状况,如邻近两个单位的单元格。
下面通过多个场景描述机器人如何在上述火星环境下采集火星矿产,这些场景分别描述了机器人采矿的不同工作模式,反映了实现这些自主机器人的不同难易程度。
场景一:独立采集矿产。
在该场景中,有多个自主机器人参与到火星矿产的采集工作中,每个机器人都有移动、探测、采集、卸载的能力,它们在火星表面随机移动,根据其所在位置探测到的矿产信息和障碍物等环境信息自主地实施行为。
但是,这些机器人都是单独工作,它们之间没有任何交互与合作。
因此,可以将本场景中的每个机器人都抽象和设计为自主的Agent。
场景二:合作采集矿产。
在该场景中,有多个自主机器人参与到火星矿产的采集工作中,每个机器人都有移动、探测、采集、卸载的能力,它们在完成各自矿产采集任务的同时,相互之间还进行交互和合作,以更高效地开展工作。
例如,某个机器人探测到大片的矿产信息,那么它可以将该信息告诉给其他机器人,或者请求其他机器人来该区域采矿。
因此,可以将本场景中的机器人抽象和设计为由多个自主Agent所构成的多Agent系统。
该系统的设计和实现不仅要考虑到各个自主Agent,还要考虑到这些Agent之间的交互和协同。
场景三:多角色合作采集矿产。
在该场景中,有多个具有不同职责、扮演不同角色的机器人参与到火星矿产的采集工作中,每类机器人承担矿产采集中的某项工作(如探测、采集),它们之间通过交互和合作共同完成矿产采集任务,即该场景有多种类型的机器人,包括:
①采矿机器人,采集矿产并将其运送到指定区域;
②探测机器人,负责探测矿产并将其探测到的矿产信息通知给采矿机器人。
因此,可以将本场景中的机器人抽象和设计为由多个自主Agent所构成的多Agent系统。
该系统的设计和实现不仅要考虑到各个自主Agent,还要考虑到这些Agent之间的交互和协同。
显然,该场景比前一个场景更复杂,它涉及的Agent类型和数量、交互和合作关系等更多。
02
设计与实现
下面介绍如何基于多Agent系统的开发框架JADE开发“火星探矿机器人”案例。
为了简化设计,聚焦于Agent的构造和实现,“火星探矿机器人”案例中的环境被设计为一个M×M的网格,每个网格单元代表了一个地理位置,不同网格单元具有不同的地形信息,可能存在影响机器人移动的障碍物,火星矿产非均匀地分布在网格单元格中。
机器人驻留在网格环境中,可以在不同的网格中移动,感知网格周围的环境信息,如矿产、障碍物等,如果它发现所在的网格中存在矿产,那么它就挖掘矿产。
整个应用的界面如图6-22所示。
界面左部显示了机器人所在的环境(用网格来表示),它提供了多样化的图符以及数字信息表示环境中的机器人、矿产、障碍物等及其在环境中的分布情况。
机器人运行在网格中,因而任何时刻机器人都有其所处单元格的位置。
界面的右部显示了各种图符信息的说明以及系统和环境中机器人、矿产等数量的变化。
界面的下部提供整个系统运行过程中的各种动态信息,如某个机器人探测到矿产、机器人从一个位置移动到另一个位置等。
图6-22火星探矿多Agent系统的运行界面
系统在初始化时将自动生成机器人的运行环境,包括矿产、障碍物等的分布。
用户可以根据需要配置系统运行时的机器人信息,包括机器人的类型、数目等,设置机器人的基本属性,如机器人的观测范围、机器人的初始能量值等。
在实际开发中,我们具有以下的基本假设:Agent从初始位置出发在地图上随机单步移动,遇到障碍能够自动避开,能自动探测到其周边是否有矿产,一次只能采集一个矿产并将其运送到指定的矿产仓库。
1
●
环境的设计与实现
我们设计了一个环境类(对应于environment.java文件)表示和处理应用中的环境。
该类封装了以下一组属性和行为。
环境中的矿产,定义一个一维动态数组存放矿产的位置ArrayListMinePositions,其中Coordinate是一个类,定义了网格的坐标。
环境中的障碍物,定义一个一维动态数组存放障碍物的位置ArrayListObstaclePositions。
环境中的机器人,ArrayListrobots,该属性定义了处于环境中的一组机器人。
InitEnv方法,该方法生成网格环境并随机产生环境中的矿产和障碍物。
2
●
系统中的Agent和行为
根据应用案例描述,我们设计了如图6-23所示的一组Agent和行为,以支持场景一至场景三的实现。
图6-23系统中的Agent及其行为示意图
BasicRobot是一个基本的Agent机器人,它能够在环境中行走,具有随机行走RandomWalkBev的行为。
在本案例中,BasicRobot无须生成具体的Agent实例,而是被其他Agent所继承。
ExploreRobot是一个专门为场景一设计的Agent机器人,它继承了“BasicRobot”Agent的属性、方法和行为,具有探测矿产DetectMineBev、采集矿产DigMineBev、转存矿产DumpMineBev3个行为。
也就是说,该Agent可以独立完成探矿、采矿和存矿的功能。
但是,ExploreRobot不具有与其他Agent交互和协同的能力。
在场景一,系统可能会产生一个或者多个“ExploreRobot”Agent机器人。
ExploreCoopRobot是一个专门为场景二设计的Agent机器人,它继承了“ExploreRobot”Agent的属性、方法和行为,同时具有交互协同CooperationBev行为,能够与其他Agent机器人进行协同,以告知所探测的矿产信息。
在场景二中,系统可能会产生一个或者多个“ExploreCoopRobot”Agent机器人。
场景三包含两类不同的Agent机器人:
一类是专门探矿的机器人DetectMineRobot,它具有探测矿产DetectMineBev、交互协同CooperationBev两个行为,可以实现探矿并将所探测到的矿产信息告诉给其他的Agent机器人;
另一类是DigMineRobot,它具有采集矿产DigMineBev、转存矿产DumpMineBev、交互协同CooperationBev3个行为,能够实施采矿、存矿等功能,处理其他Agent发送过来的消息,并将采矿信息告诉给环境中的其他
3
●
Agent类的设计与实现。
Agent类的设计与实现需要注意以下几点:
①继承Agent类或者其子类;
②在构造函数中初始化Agent的基本属性;
③在Setup方法中通过addBehaviour语句给Agent增加相应的行为,以便Agent创建后就可执行这些行为。
下面以“ExploreRobot”Agent为例介绍如何设计和实现Agent。
任何Agent类都要继承JADE的Agent类或者其子类,如BasicRobot继承了Agent类,其代码框架如下所示。
importjade.core.Agent;
publicclassBasicRobotextendsAgent{
…
}
“ExploreRobot”Agent则继承了“BasicRobot”Agent,而“BasicRobot”Agent是Agent类的子类,该部分的代码框架如下所示。
importjade.core.Agent;
publicclassExploreRobotextendsBasicRobot{
…
}
在每个Agent的构造函数部分,程序员需要针对Agent的一些属性完成初始化工作。
例如,对于每一个“ExploreRobot”Agent而言,当其实例化之后,需要为其随机生成该Agent机器人在环境(即网格)中的位置,同时需要初始化该机器人所获得环境中矿产的信息。
该部分的代码框架描述如下。
importjade.core.Agent;
publicclassExploreRobotextendsBasicRobot{
Coordinateposition;
ArrayListFoundMine;
…
publicExploreRobot{
…;
position=env.CreateRandomPosition;
FoundMine=newArrayList;
}
…
}
其中,position是一个类型为Coordinate的属性,它定义了Agent机器人在网格中的坐标;FoundMine是一个类型为Coordinate的动态数组,定义了Agent机器人探测到的矿产位置信息。
在上述语句中,CreateRandomPosition是一个产生随机环境位置的方法,FoundMine=newArrayList语句则产生一个类型为Coordinate的动态数组。
Agent类的设计通常需要实例化setup方法。
针对本案例,我们需要在该方法中增加一组行为,以便让ExploreRobot在创建之后就可执行这些行为,其代码框架描述如下。
importjade.core.Agent;
publicclassExploreRobotextendsBasicRobot{
…
publicvoidsetup{
addBehaviour(newDetectMineBehaviour(this));
addBehaviour(newDigMineBehaviour(this));
addBehaviour(newDumpMineBev(this));
}
…
}
其中,语句addBehaviour(newDetectMineBehaviour(this));旨在增加一个探测矿产的行为,语句addBehaviour(newDigMineBehaviour(this));旨在增加一个挖矿的行为,语句addBehaviour(newDumpMineBev(this));旨在增加一个卸载矿产到矿产仓库的行为。
4
●
行为类的设计与实现
行为类的设计与实现需要注意以下几点:
①分析待实现行为的特点,确定该行为类应继承什么样的基类行为;
②在publicvoidaction方法中编写具体的行为代码。
下面以DetectMineBehaviour行为为例介绍如何设计和实现行为。
首先,DetectMineBehaviour行为旨在探测Agent周边是否存在矿产,这种探测需要不断地进行,因而该行为属于一类周期性行为,需要继承JADE中的CyclicBehaviour类,其代码框架如下所示。
importjade.core.Agent;
importjade.core.behaviours.CyclicBehaviour;
…
publicclassDetectMineBevextendsCyclicBehaviour{
…
publicDetectMineBev(BasicRobotrobot){
…
}
publicvoidaction{
…
}
}
其中,DetectMineBev是构造函数,可以完成一些初始化的工作;publicvoidaction定义了行为体。
其次,需要在publicvoidaction方法中定义行为的程序代码。
对于DetectMineBev行为而言,其行为部分主要是要获得其当前所在位置的周围是否存在矿产,如果存在,则将这些矿产信息(即矿产所在的坐标)加入到Agent机器人的FoundMine动态数组中。
5
●
Agent间交互的设计与实现
场景二和场景三都涉及Agent机器人之间的交互和协同。
下面以场景三中的DetectRobot为例,介绍如何实现Agent之间基于FIPAACL的交互和协同。
一旦某个DetectRobot探测到某些矿产,它需要将它所探测到的矿产信息通知给环境中的“DigRobot”Agent机器人。
下面的程序代码描述了Agent机器人在DetectMineBehaviour行为中如何给其他的Agent发送所探测到的矿产信息。
首先,通过newACLMessage(ACLMessage.INFORM)语句产生一个“通知”类型的ACL消息,其次将矿产坐标作为该消息的内容,然后将其他Agent加入到消息的接收者列表中,最后发送该ACL消息。
publicclassDetectMineBehaviourextendsCyclicBehaviour{
…
//行为体
publicvoidaction(){
Coordinatetarget=RandomWalkBev.RandomNextpoint(ui.myGrid);
intRobotNum=en.getrobotArryList.size;
…
//生成消息类型
ACLMessagemsg=newACLMessage(ACLMessage.INFORM);
//生成消息内容
for(inti=0;i