Redian新闻
>
礼拜四读书会第六十四期:那条著名的阿尔法狗
avatar

礼拜四读书会第六十四期:那条著名的阿尔法狗

洞烛
1楼
主讲:【云也】 八十年代生人。理工科届的一个小学生。喜欢钱和各种不来钱的爱好。
主持:【鱼鱼】【洞烛】
【云也】 大家晚上好!先自我介绍下。我本科专业是计算机工程。博士课题是信号处理。现在的工作是数据科学家,做地理和运动数据分析。就我的专业经历来说,对统计模型,优化算法,和近似算法比较熟悉
【洞烛】 本群相对而言,文科生居多,所以请【云也】尽量不出现术语。
【云也】 阿尔法狗,算是个戏谑的翻译方法。这个系统本名叫 AlphaGo。Alpha 是希腊语里的第一个字母,相当于英语里的α 。Go嘛,就是围棋的英语,所以今天我们先从围棋这个游戏开始讲。
【云也】 阿尔法狗战胜李世石这个事件的重点,在于围棋这个游戏本身。我记得上世纪90年代,IBM的深蓝下国际象棋下赢了世界冠军卡斯帕罗夫,差不多二十年后,计算机人工智能才能胜过围棋界的人类顶尖选手
【鱼鱼】 Deepmind是完全另一个团队?
【云也】 Deepmind最早是一个专注于深层学习技术的初创公司,Google 看到了他们的潜力,把Deepmind买下来了
【云也】 继续说围棋。这个游戏的特点是:规则无比简单,但变化则是所有棋类游戏里最多的。19*19 = 361 个下子位置,黑白两方,谁在棋盘上占领的区域最大,谁就赢了。区域占领的判断规则也很简单,你的子被围住,地盘就全归对方。这里需要强调一点,因为这个游戏的规则简单,没有隐藏需要猜测的部分,所以只要一方能够准确预测评估每一步的所有后手,每个后手的所有后手… 那赢棋需要做的只是等待对方出错。
【剪剪清风】 围棋规则简单,真正对局起来可不简单
【云也】 是的。这位朋友说得很好!围棋对局的难度,来源于潜在变化对于有限的脑力记忆力来说,实在太多。我们可以简单粗略地算一下,空盘有361个下子地位置,我下一个子,对方剩下360个点可下,依次类推,要预测全盘的所有可能,最多要361乘360乘359乘...乘1(理论上是361的阶乘,实际不用那么多),这个数字之大,每秒10亿次的电脑,也要算巨长的时间
【剪剪清风】 双方都不出错的情况下,要看谁算的更深,越简单的实施起来越难,因为每一步后面都可能变幻莫测。围棋对局中常常有送死一点小的,杀死对方大片
【云也】 【剪剪清风】说的,是下过围棋懂围棋的人类的解读。但是阿尔法狗并不会有意识地这么想
【剪剪清风】 电脑也要算这个,从对局中看出会这么计算的。我很惊叹,设计这台电脑的人是怎么设计的啊,对局结束后我实在惊叹设计者
【云也】 即使是阿尔法狗,也没有产生这个意识的能力
【鱼鱼】 AlphaGo其实属于弱人工智能
【云也】 我们可以往下一步说,AlphaGo的原理。我们刚才说到,如果你的记忆力和脑力好到可以在脑海里模拟每一步的每一种可能以及以此类推的后续,那你肯定就赢了。但是由于变化太多,最快的电脑也不能在合理的时间里做到预测每一种可能。
【鱼鱼】 这种计算依赖硬件吗?
【云也】 这里就要引入一个重要的计算机科学/工程学里的思想方法:在运用精确穷举法不现实的情况下,求近似最优。我个人理解里,AlphaGo的大局算法并不算特别突破性的创新:就是对于下一步所有的能下的位置进行抽样,预演,推算结果。抽样的难度是广度上的选择,要缩小抽样的广度,来抽最有胜算的下子点。预演呢,最笨的方法,是电脑自己和自己把剩下的部分下完,看看每种被抽的下法到底是输还是赢。但这么预演由于变化多(对于预演的每一步也要再抽样预演),根本无法在合理时间里完成,需要有一个很快的方法能合理地猜测下每一步的胜算。Alpha GO 在抽样和预演上都做了优化
【鱼鱼】 是怎么优化的呢?
【云也】 抽样优化用的是策略网络,预演优化用的是估值网络。这里的网络,指的是神经元网络。而且是近十年来新出现的一种神经元网络技术,深层学习网络。
【鱼鱼】 它是怎么进行学习的?
【云也】 神经元网络的概念,早在上世纪4,50年代就被提出来了。
【紫书】 是否跟决策树有关@云也,似乎听起来跟我们做统计计算的时候用的统计方法有点点联系
【鱼鱼】 决策树就是蒙特卡洛树吗?
【云也】 嗯,不太一样。决策树是不断地判断输入,一个个条件地去判断归类输入的信息,最后得到一个足够精细的分类,根据这个分类作一个决定。神经元网络的工作原理则是简化模仿了人类的认知原理。
【紫书】 这个名字应该就很接近人类的认知方式吧,从名字上能猜出来一些
【云也】 动物的神经末梢,比如触觉,视觉,味觉神经,接触外界刺激,然后把刺激传导到下一层神经元,进行初级知识的识别。拿视觉作比方,第一层受光刺激能识别点,第二层结合第一层的输出,能识别到线。第三层能识别形状…, 到最后能识别比较复杂的知识
avatar
洞烛
2楼
【鱼鱼】 在AlphaGo 上,蓝色代表啥?就是神经元网络吗?
【云也】 是。AlphaGo 的输入,就是棋盘上现在的局势,其实就好像是一张图片,361个像素的图,每个象素可以是-1(对方的子),1(我的子),0还没下
【鱼鱼】 原来是这样,我还在想怎么判断。
【云也】 价值网络的输出,是现在这个局势下我方的胜算。策略网络的输出,是现在这个局势下,我方最该考虑的走法是什么。深层学习神经元网络,作为AlphaGo的核心技术,大大减少了电脑下围棋需要的计算广度和深度。从某种意义上说,阿尔法狗确实是靠类似人类的思维方式来击败人类的。神经元网络在上世纪50年代之后,得到应用和重视有限,因为人们一直没有找对训练神经元网络的方法。
【鱼鱼】 阿法狗是怎么训练的?
【云也】 阿法狗的深层神经元网络,用的是“逐层训练“的方法。简单地说,模拟人类记忆的形成方法。训练的目的,是让每一层都能比较准确地反向构建上一层的输入。有点像压缩图片
【云也】 具体说,训练深层神经元网络分两步:第一步形成“记忆”,第二步告诉网络,哪种“记忆”会赢,哪种“记忆”会输。这就好比教小孩,做一件事,做对了给个糖吃,做错了打一巴掌。但是,你先要让这个孩子知道,做法和做法之间的不同。
【鱼鱼】 计算机怎么判断糖和巴掌,它又没有情绪
【云也】 糖 = 1,巴掌= -1
【洞烛】 这是学习,还是计算?我一直想搞清楚的是这个。
【云也】 每个神经元都有一组参数和函数,比如,一个神经元接受上一层的输入有三个(分别来自上一层的三个不同的神经元)。参数决定了对上层这三个输入的重视程度。函数则决定了如何结合来自上层的这些加权的输入,产生本层的输出。而训练时的训练数据,就是一些特定输入,对应应该有什么输出。
【鱼鱼】 计算机做了同样的过程。
avatar
洞烛
3楼
【云也】 训练的开始,就是计算机随机设定每个神经元的参数,然后接受训练输入。
【鱼鱼】 类似于人类的思维,所以就具备了“学习”的能力,是这样吗?
【云也】 可以算出一个输出,把这个输出跟理想输出比较,依此来调整自己的参数
【洞烛】 如果这个是输入——计算——输出的过程,那个核心就是这个计算,也就是这个函数。
【云也】 具体训练方法各有不同,但是(我过分简单化地打个比方)本质上和线性回归的算法是一样的。
【洞烛】 这个函数是通过学习获得的,还是确定的?
【云也】 好问题!对于单一神经元来说,它的函数(参数与输入的运算结构)是确定的。但是,每层神经元的数目不同,层与层之间的连接很多,这些连接上地加权参数各自不同。在整体上,就可以达到模拟任何函数的效果。同一个神经元网络,可以被训练成线性回归模型,也可以被训练成一个二次函数模型,只要这个网络本身的参数够多,灵活性够大
【云也】 我先说神经元网络的训练方法,这个叫受监督#学习:给很多输入和与每个输入相对应的理想输出。深层网络学习方法的聪明之处,在于,学习的第一步,是不受监督#学习,只需要大量输入,还不需要理想输出。这个网络自己会判断输入与输入之间的不同,但是还不知道好坏。然后你给一小点带好坏标志的输入和理想输出,他就触类旁通了。这些方法,都属于机器#学习
【鱼鱼】 在围棋,好坏就是胜率值?
【云也】 在无监督学习阶段,深层网络地神经元根据输入数据来改变加权参数,在不知道好坏的情况下,他的训练目的是识别输入与输入之间的区别和相似性。把没有好坏之分的输入归类,等有了好坏标示的输入来了,他自动把同一类的都标上好坏。我当然是把过程说得很简单了,可以这么理解,我们再举小孩的例子:小孩子在学校里,说老师好,谢谢老师,老师幸苦了,真是人类灵魂的蜡烛,春蚕,工程师,这些都是和老师说话用的词,归一类。和别的孩子说:X他大爷,X他妈,狗娘养的,XX,都是孩子们在相互骂街的时候说的,他就把这些词归成另一类。然后回了家,跟家里聊天的时候,随口说了个X你妈,立马挨了两巴掌,就知道这组词是坏词了
avatar
洞烛
4楼
【洞烛】 悍匪,你说的是单个神经元,还是整个系统?
【云也】 整个系统。单个神经元的学习能力太有限了,神经元网络的优势来源于多层连接。逐层学习。
【鱼鱼】 单个神经元只是一组参数和函数,不可能复杂
【洞烛】 但你刚才说的学习,是单个神经元的学习。
【云也】 我没有说清楚,应该是整个网络的学习啊。每个神经元都根据整个网络输出的值和理想值之间的距离来调整自己的参数,就成了整个网络的学习了。
【洞烛】 一个系统学习过程里,单个的神经元只是个纯输入单元?还是同时也是个计算单元?它和系统的关系如何?
【云也】 第一层是输入单元,之后的每层都是计算单元。
【石头】 那下棋会有虚招吗
【云也】 虚招和实招,对神经元网络来说,没有区别。至少没有有意识的区别。对手不能一直出虚招,做无用功,无用功就是犯错。因为每下一步,阿法狗都是以近似最优的下法下,你做无用功,很快就输了啊。深层网络在没有标示的第一步分类学习的过程中,用的学习方法,就是自组织学习,意思就是,我看到这些输入,如何调整我自己的参数,以至于,如果网络的方向反过来,我可以最大可能地复原这些参数,这个其实有点模拟人脑记忆的形成,记忆本质上是脑神经元的连接方式,连接方式越稳定,记忆越深。
【鱼鱼】 每一层都能反向输出上一层的输入,是通过算法来实现的?
【石头】 怎么让连接方式稳?
【云也】 调整加权参数。这个又涉及系统论,系统能量最低的时候最稳定。能量的定义本身是关于神经元参数与输入值的一个函数。在自组织的无监督训练阶段,根据训练输入值,调整系统参数,使得这个能量函数遇到训练输入值时值很低,这样的一组系统参数,能够稳定地将输入分类。
【鱼鱼】 嗯,能量函数值低,能够稳定归类训练输入值,这话记住就行了是吧。
【云也】这个是能量函数,具体的数学太复杂,调整参数值,来使得能量值变低,大概是这个思路,随着输入和参数变化。
avatar
洞烛
5楼
【鱼鱼】 我只是比较想了解产生决策的流程
【云也】 决策过程是蒙特卡罗树。蒙特卡罗树是简化穷举,用抽样来代替穷举,然后阿法狗用深层神经元网络优化了抽样范围和预演速度。
【洞烛】 原理大致明白了,我们再解决一个问题,阿尔法狗的发展,对人类,会有什么影响?
【云也】 好的。我觉得在我们这代人活着的年代,只会有最最积极的意义。阿尔法狗把深层学习的潜能应用化了,我们可以用它使用的技术来大大优化工业和科学上需要大运算量的工作。交互服务系统,语音图形识别系统的性能在未来几年会有更大的提升。
【鱼鱼】 同意。那人工智能做到什么程度,我们才可以说它对人类社会是颠覆性的超越呢
【云也】 人类社会发展到现在,只有让自身突破性发展的成就。要说颠覆性的超越,就太难预测了。人工智能带来的颠覆性的超越,我觉得很可能不会出现,因为人工智能不需要往全面类人化的方向发展。而是可以更专门化,专业化,做好一件独立的工作。从另一方面讲,人类作为一个生物神经元网络,和计算机神经元网络还是很不一样的。我们很大程度上还是受本能的驱动。性欲,暴力倾向,私欲,这些东西不太会存在于一个人工智能系统里。
【鱼鱼】 发展说到底还是工具,辅助性能的,是吧?
【鱼鱼】 那怎么解释有些人对阿法狗的恐惧呢?
【云也】 可能是他们不明就里吧。另一方面,媒体也不太负责任。媒体的社会功能改变了。
【鱼鱼】 前几天不是有个事情,微软机器人,很短时间内被教坏
【云也】 那只是一个学习系统,语言机器人。人工智能属于一系列系统和工具的泛称
【云也】 我想到一点是,好多工作会被逐步替代掉,这是每次工业革命都有的后果,识别准确率更高,速度更快,或者陷入社会收入结构陷阱,失去工作,又没有新的人力需求,会出现社会问题。
【鱼鱼】 假设一个科幻小说常见的场景,某种人工智能,被设定为用一切资源制造钉子,极端的情况下,人类身体里也有铁,人类会不会变成了资源本身
【云也】 社会分工太复杂了,这种设定本身不太可能出现,共产主义社会高度智能化了可能会这样吧
【鱼鱼】 人们类所恐惧的大概就是这种被毁灭的命运
【云也】 没有人有动机和资源去开发一个强到能把人变成资源的人工智能,然后只让他去做钉子
【鱼鱼】 谢谢悍匪,总算明白了
【云也】 谢谢大家参与讨论!
avatar
洞烛
6楼
一些图没法上传,可能给读者带来了困扰,如果想彻底搞明白,可以参阅微信公众号“礼拜四读书会”的这一期内容,希望能够谈清楚那条狗了^_^
avatar
洞烛
7楼
@pangxie1975 2016-04-11 18:21:22
这个科普不错,顶一下。
-----------------------------
多谢,还以为没人看呢
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。