刘鹏:保大还是保小?无人汽车也将面临这样的道德窘境
欢迎转载,须署名并注明来自“刘鹏看未来”公众号,并保留本句。
某天,无人车在高速行驶过程中忽遇突发状况,不得不急转弯,左转弯大概率撞死一个违反交规的摩托车骑手,右转弯大概率会撞坏一辆兰博基尼,它该如何抉择?
左转是一条人命和有限的赔偿,右转则是天价的赔偿款。
相比于人类司机,自动驾驶系统的一大优势在于它没有情感,只有冰冷的预设逻辑。面对即将到来的事故,无人车不会产生恐惧,只会忠实地运行程序。这意味着类似这种极端情况下如何抉择,应当是开发者预先写好的。
那么开发者应当遵从怎样的准则来编写程序,是以尊重生命为先,还是以为用户利益为先?或者把这个选择权交给用户自己去设置?
早在1940年,科幻作家阿西莫夫提出为保护人类,对机器人做出了三项规定。
第一条:机器人不得伤害人类,或看到人类受到伤害而袖手旁观;
第二条:机器人必须服从人类的命令,除非这条命令与第一条相矛盾;
第三条:机器人必须保护自己,除非这种保护与以上两条相矛盾。
这三项规定得到广泛推崇,并被称为机器人三定律。
后来又补充了一条第零定律:机器人必须保护人类的整体利益不受伤害,其它三条定律都是在这一前提下才能成立。
有心的朋友会发现,第零定律其实是堵住了原先的一个逻辑漏洞,比方说我是一个想要颠覆人类的大坏蛋,我以自杀来威胁(或者直接命令,自杀威胁具有更高级别的权限)一个机器人去剪断全世界的电缆,或是销毁全世界的书籍,则不与原先的三定律相冲突。
无人汽车本质上就是轮式机器人,可以参考机器人定律。所以遵从第一定律,开头我所描述的情况之下机器人应当选择右转撞向兰博基尼。基于人类达成“生命安全优先”的共识,巨额金钱损失可以通过建立专门的保险机制来规避。生命危险和财物损失两者的两难抉择可以通过立法和确立保险机制的办法来解决。
那么,下一个问题。
极端情况下,优先保护车主还是行人?
比方说无人车在行驶中遇到红灯,刹车减速停车。后面的大车由于视野问题没看到红灯,减速不及,眼看就要追尾撞上无人车。这时候无人车有两个选择,一是加速闯红灯冲出去避让大车(这会导致撞死正在过马路的行人);二是停在原地保护过马路的行人,自己被压扁。
或许有人会质疑说我总是抓住这些低概率事件没有意义,有人开了十年车也没碰上过几回这种情况,可是我们要有大数据的思维,对于个人来说概率低,对于全世界人来说则是必然会发生的事情。比方说有人开车十年没遇到过车祸,认为这是低概率事件,可实际上全球每年有127万人死于车祸,每天就有三千多人死于车祸,所以这还是低概率事件吗?这是一个数学期望的问题。
让我们回到问题本身,根据机器人定律的精神,机器人在必要时是要牺牲自己保护人类的,但是在这里情况又有了一些不同,因为机器人的“身体”里也有人类乘客。
保护自己,还是保护行人?在没有无人车的年代,这本来只是针对车主一人的灵魂拷问,现在却不得不由人类达成共识提前设定好。确实难以抉择,因为你不知道出现在这种情况里的自己,到底是路上的行人还是车上的乘客。
梅赛德斯奔驰的态度很明确——保护车主。
2016年,德国梅赛德斯-奔驰公司澳大利亚分公司高管戴维·麦卡锡曾发言,按照无人驾驶汽车的编程思路,如果在行驶途中面临一个道德困境,要么撞到马路上的一名儿童,要么急打方向盘以避免撞到儿童、但可能撞到其他车道的汽车以致本车人员伤亡,那么无人驾驶汽车会“果断”选择优先保护车内人员而宁愿撞到儿童。
麦卡锡说,一般人遇到这种情况,会立即作出踩刹车、打方向盘以避免撞人的反应,“我们的系统也是如此,但还会考虑更多因素,例如其他车道是否有汽车行驶?如果本车采取避让举动,有可能会撞上其他车道的汽车,结果导致本车偏离方向、反而冲向路人”。
按照麦卡锡的说法,无人驾驶汽车能在危急关头瞬间判断出“最佳选择”,从而将损伤降至最低。
奔驰的选择在一定程度上与2016年美国的一项调查有某种程度上的契和之处。在这一调查中,受访者普遍认为无人驾驶汽车不应为拯救一名路人而牺牲车内人员。但当问卷中被拯救的路人数量增多,愿意牺牲车内人员以拯救路人的受访者比例随之升高。
当被拯救的路人数量增至10人,受访者普遍赞同应优先拯救路人。但与此同时,这些受访者表示自己更加不愿意购买无人驾驶汽车。
事实上,虽然被拯救数量增至10人时,赞同拯救路人的比例大幅增高,笔者却不认为这些人处于上述情况中会选择牺牲自己,每个人的生命都只有一次,牺牲自己保护陌生人的高尚者一定有,但比例绝没有这么高。为什么会因此不愿购买无人汽车?实际是想把选择权落在自己手中,真能如问卷里呈现得那样理性,就不会因此降低购买无人汽车的意愿,因为这种情况的发生与无人汽车无关,这背后的逻辑链不言自明。
这时候我们再去翻机器人定律,似乎发现了另一处漏洞,这种情况下机器人不论做怎样的选择都是违反机器人定律的。机器人不能为了保护一人而伤害另一人,它也不能眼看着一人受伤害而不管。
该怎么弥补这个漏洞,合乎的逻辑办法是对人类这个群体中的诸多个体分别进行权重评估,在这种只能保下一个人的情况下选择保护权重较高的人。比方说,按照梅赛德斯奔驰的想法,应当让车主具有更高级别的权重。这还只是一种相对权重,我估计未来很可能会出现绝对权重的评估。
未来人在AI面前将具有不同的权重
未来的智能设备也不仅仅只有无人汽车,还会有更多的智能设备可能会面临同样“两难”的困境。
这并不是在鼓吹什么建立特权阶层,而是唯有将人类的权重有所区别,才能让机器作出合理的判断。否则如果两个人同时处于危险需要机器救援,机器愣在原地不知所措一个都救不了的局面显然我们更不愿意看到。
乍看之下,很难让人接受这样的权重区别。但实际上,既有的规则、秩序中,我们的权重是不一样的。比如交通中有个路权的概念,无红绿灯路口,斑马线上的行人拥有最大路权,所有车辆都必须让行。类似的还有,相向而行的路口,直行者的路权高于转弯者的路权。当无人车不得不撞向一个成人或者儿童的时候,未来可能是设定成撞向成人,因为成人的体能和反应决定了他有更高的生存几率,所以应当拥有更低的权重值。
就像现在的年轻人都能做到主动给老弱病残孕让座,未来大家达成共识同意接受合理的权重配比也不是什么天方夜谭。
不过有一点必须明确,这种权重的差异只是一种共识,年轻人愿意让座是因为将心比心,自己家里也有老人和小孩,并不是生命有轻重之别。我们应当清醒抵制的,是有人凭借钱财或者权利取得更高的权重,这就是将人命分为三六九等了。如果未来人工智能按照财富地位将人分层,无疑是一场可怕的灾难,因为人工智能这玩意儿连虚拟的体面也不会维持,难免彻底激化社会矛盾。
综上,为了避免人工智能陷入道德悖论的怪圈,我们需要在一定的应用场景中赋予不同人不同的权重,未来具体的权重分配方式其实是一个很宏大的命题,官员对AI的命令是否有更高的权重?多人的命令是否比单人的命令具有更高的权重?如果缺乏一个规范体系来约束人工智能,会产生一些灾难性的事件。现在的趋势是科技进步太快,而传统监管部门的反应略慢,往往是等某些行业自身出了问题以后相关的监管措施才能出台。我希望在无人车广泛投入使用以前,先建立起完备的法律和其他手段予以规范化,避免引发一些争议性的悲剧事故造成全民对无人汽车的排斥。
图片来自网络。
关注刘鹏看未来(ID:lpoutlook)
比别人早一步看见未来!
- 理解js中的原型链,prototype与__proto__的关系
- 拼图游戏和它的AI算法
- Mysql存储过程从0开始(上)
- 使用Visual Studio 2013进行单元测试--初级篇
- forever让nodejs应用后台执行
- 三分钟理解“装饰模式”——设计模式轻松掌握
- 想玩集群?读写分离?你要先懂这个!
- 三分钟理解“状态模式”——设计模式轻松掌握
- JS生成UUID
- Mysql性能优化之开启Mysql慢查询日志
- 三分钟理解“命令模式”——设计模式轻松掌握
- 把表单转成json,并且name为key,value为值
- PHP经典面试题目汇总(上篇)
- 横向滑动的HorizontalListView滑动指定位置的解决方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何避免用动态语言的思维写Go代码
- Pandas tricks 之 transform的用法
- Springboot + RabbitMQ 用了消息确认机制,感觉掉坑里了!
- 一款功能简约到可怜的SQL 客户端!
- 震惊!ConcurrentHashMap里面也有死循环,作者留的“彩蛋”?
- Python GUI项目实战(六)实现添加学生信息的功能
- 打卡群刷题总结0816——三角形最小路径和
- 打卡群刷题总结0814——二叉树展开为链表
- 打卡群刷题总结0813——二叉树展开为链表
- 打卡群刷题总结0812——路径总和 II
- SQL中CASE表达式的妙用
- 2w 字 + 40 张图带你参透并发编程!
- RSA 敏感数据加解密方案
- 极客算法训练笔记(一),算法学习方法篇
- 链表:听说用虚拟头节点会方便很多?