百度VR 2017-05-23 17:13:01
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
AlphaGo 是第一个击败人类职业围棋选手并战胜围棋世界冠军的程序,是围棋史上最具实力的选手之一。2016 年 3 月,AlphaGo 经过5局对弈,最终以 4 比 1 的总比分战胜了围棋世界冠军李世石,这场比赛成为了人工智能领域的一个重要里程碑。
今天,备受期待的中国乌镇围棋峰会在浙江乌镇正式拉开帷幕。相比于此前 AlphaGo 和李世石的比赛的 5 局 3 胜制度,此次 AlphaGo 和世界第一柯洁将进行三番棋的对弈。配对赛中,两位棋手将分别与 AlphaGo 组队,挑战棋手如何去理解 AlphaGo 的独特风格并与之合作;在团队赛中,将由五位中国顶尖棋手合作,建立棋手“神经网络”,降低心理因素的影响,从而做出更加客观的判断。
本文选编于199it.com,收录于CSDN知识库。
本文较长,末尾有人工智能全景大图,有助于你对人工智能领域的了解。
•类神经网络
•卷积神经网络
•为什么围棋比较困难?
•AlphaGo的主要机制
•弱人工智能与强人工智能
•人工智能全景图
什么是类神经网络?
类神经网络是很古老的技术了,在1943年,Warren McCulloch以及Walter Pitts首次提出神经元的数学模型,之后到了1958年,心理学家Rosenblatt提出了感知器(Perceptron)的概念,在前者神经元的结构中加入了训练修正参数的机制(也是我们俗称的学习),这时类神经网络的基本学理架构算是完成。类神经网络的神经元其实是从前端收集到各种讯号(类似神经的树突),然后将各个讯号根据权重加权后加总,然后透过活化函数转换成新讯号传送出去(类似神经元的轴突)。
至于类神经网络则是将神经元串接起来,我们可以区分为输入层(表示输入变量),输出层(表示要预测的变量),而中间的隐藏层是用来增加神经元的复杂度,以便让它能够仿真更复杂的函数转换结构。每个神经元之间都有连结,其中都各自拥有权重,来处理讯号的加权。
传统的类神经网络技术,就是透过随机指派权重,然后透过递归计算的方式,根据输入的训练数据,逐一修正权重,来让整体的错误率可以降到最低。随着倒传导网络、无监督式学习等技术的发展,那时一度类神经网络蔚为显学,不过人类很快就遇到了困难,那就是计算能力的不足。因为当隐藏层只有一层的时候,其实大多数的状况,类神经网络的分类预测效果其实并不会比传统统计的罗吉斯回归差太多,但是却要耗费更庞大的计算能力,但是随着隐藏层神经元的增加,或者是隐藏层的增加,那么所需要计算权重数量就会严重暴增。所以到了八十年代后期,整个类神经网络的研究就进入了寒冬,各位可能只能在洗衣机里体会到它小小威力(现在洗衣机里根据倒入衣物评估水量与运行时间很多都是用类神经网络作的),说真的,类神经网络一点都没有被认为强大。
这个寒冬一直持续到2006年,在Hinton以及Lecun小组提出了「A fast learningalgorithm for deep belief nets」论文之后,终于有了复苏的希望,它们提出的观点是如果类神经网络神经元权重不是以随机方式指派,那么应该可以大幅缩短神经网络的计算时间,它们提出的方法是利用神经网络的非监督式学习来做为神经网络初始权重的指派,那时由于各家的论文期刊只要看到类神经网络字眼基本上就视为垃圾不刊登,所以他们才提出深度学习这个新的字眼突围。除了Hinton的努力之外,得力于摩尔定律的效应,我们可以用有更快的计算能力,Hinton后来在2010年使用了这套方法搭配GPU的计算,让语音识别的计算速度提升了70倍以上。深度学习的新一波高潮来自于2012年,那年的ImageNet大赛(有120万张照片作为训练组,5万张当测试组,要进行1000个类别分组)深度学习首次参赛,把过去好几年只有微幅变动的错误率,一下由26%降低到15%。而同年微软团队发布的论文中显示,他们透过深度学习将ImageNet 2012数据集的错误率降到了4.94%,比人类的错误率5.1%还低。而去年(2015年)微软再度拿下ImageNet 2015冠军,此时错误率已经降到了3.57%的超低水平,而微软用的是152层深度学习网络。
卷积神经网络(Convolutional Neural Network)
在图像识别的问题上,我们处理的是一个二维的神经网络结构,以100*100像素的图片来说,其实输入数据就是这10000像素的向量(这还是指灰阶图片,如果是彩色则是30000),那如果隐藏层的神经元与输入层相当,我们等于要计算10的8次方的权重,这个数量想到就头疼,即使是透过并行计算或者是分布式计算都恐怕很难达成。因此卷积神经网络提出了两个很重要的观点:
•局部感知域:从人类的角度来看,当我们视觉聚焦在图片的某个角落时,距离较远的像素应该是不会影响到我们视觉的,因此局部感知域的概念就是,像素指需要与邻近的像素产生连结,如此一来,我们要计算的神经连结数量就能够大幅降低。举例来说,一个神经元指需要与邻近的10*10的像素发生连结,那么我们的计算就可以从10的8次方降低至100*100*(10*10)=10的6次方了。
•权重共享:但是10的6次方还是很多,所以这时要引入第二个观念就是权重共享。因为人类的视觉并不会去认像素在图片上的绝对位置,当图片发生了平移或者是位置的变化,我们都还是可以理解这个图片,这表示我从一个局部所训练出来的权重(例如10*10的卷积核)应该是可以适用于照片的各个位置的。也就是说在这个10*10范围所学习到的特征可以变成一个筛选器,套用到整个图片的范围。而权重共享造成这10*10的卷积核内就共享了相同的权重。一个卷积核可以理解为一个特征,所以神经网络中可以设计多个卷积核来提取更多的特征。下图是一个3*3的卷积核在5*5的照片中提取特征的示意图。
卷积层找出了特征后,就可以做为输入变量到一般的类神经网络进行分类模型的训练。不过当网络结构越来越复杂,样本数如果不是极为庞大,很容易会发生过度学习的问题(over-fitting,神经网络记忆的建模数据的结构,而非找到规则)。因此我们后来引入池化 (pooling)或是局部取样(subsampling)的概念,就是在卷积核中再透过n*n的小区域进行汇总,来凸显这个区域的最显著特征,以避免过度学习的问题。
所以常见的图像识别技术(例如ImageNet)就是透过多阶段的卷积层 池化层的组合,最后在接入一般的类神经网络架构来进行分类预测。下图是一个图像识别的范例。其中的C2、C4、C6都是卷积层,而S3与S5则是池化层。卷积神经网络建构了一个透过二维矩阵来解决抽象问题的神经网络技术。而图像识别不再需要像过去一样透过人工先找出图像特征给神经网络学习,而是透过卷积网络结构,它们可以自己从数据中找出特征,而且卷积层越多,能够辨识的特征就越高阶越抽象。所以你要训练神经网络从照片中辨识猫或狗,你不再需要自己找出猫或狗的特征注记,而是只要把大量的猫或狗的照片交给神经网络,它自己会找出猫或狗的抽象定义。
讲到这里有没有发现卷积神经网络作图像识别与围棋有甚么相似性?没错,围棋是一个19*19的方阵,而围棋也是一个规则不像象棋或西洋棋般的明确,而且具备了很高的需要透过直觉才能判断落子的特性。这个时候,深度学习就能发挥极佳的作用,因为程序设计师不需要自己把围棋的游戏规则输入给计算机,它可以透过大量的棋谱自己找出对应的逻辑与抽象概念。
为什么围棋比较困难?
为什么深蓝可以在西洋棋赢过人类但是却无法赢围棋,这是因为深蓝透过强大的计算能力,将未来局势的树状架构,推导出后面胜负的可能性。但是各位要知道,以西洋棋或中国象棋来说,它的分支因子大概是40左右,这表示预测之后20步的动作需要计算40的20次方(这是多大,就算是1GHz的处理器,也要计算3486528500050735年,请注意,这还是比较简单的西洋棋),所以他利用了像是MinMax搜索算法以及Alpha-Beta修剪法来缩减可能的计算范围,基本上是根据上层的胜率,可能胜的部分多算几层、输的少算,无关胜负不算,利用暴力解题法来找出最佳策略。但是很不幸的是,围棋的分支因子是250,以围棋19*19的方阵,共有361个落子点,所以整个围棋棋局的总排列组合数高达10的171次方,有不少报导说这比全宇宙的原子数还多,这是采用了之前的一个古老的研究说全宇宙原子数是10的75次方,不过我对此只是笑笑,我觉得这也是低估了宇宙之大吧。
AlphaGo的主要机制
在架构上,AlphaGo可以说是拥有两个大脑,两个神经网络结构几乎相同的两个独立网络:策略网络与评价网络,这两个网络基本上是个13层的卷积神经网络所构成,卷积核大小为5*5,所以基本上与存取固定长宽像素的图像识别神经网络一样,只不过我们将矩阵的输入值换成了棋盘上各个坐标点的落子状况。
第一个大脑「策略网络」基本上就是一个单纯的监督式学习,用来判断对手最可能的落子位置。他的做法是大量的输入这个世界上职业棋手的棋谱,用来预测对手最有可能的落子位置。在这个网络中,完全不用去思考「赢」这件事,只需要能够预测对手的落子即可。目前AlphaGo预测对手落子位置的正确率是57%(这是刊登在Nature文章时的数据,现在想必更高了)。那各位可能认为AlphaGo的弱点是否应该就在策略网络,一方面是预测准确率不高,再者是如果下了之前他没看过的棋局是不是就有机会可以赢过他。可惜并不是,因为AlphaGo的策略网络有做了两个层面增强,第一个层面是利用了名为增强策略网络(reinforced-learning (RL) policynetwork)的技术,他先使用部分样本训练出一个基础版本的策略网络,以及使用完整样本建立出来的进阶版策略网络,然后让两个网络对弈,后者进阶版策略网络等于是站在基础版前的「高手」,因此可以让基础网络可以快速的熟即到高手可能落子的位置数据,进而又产生一个增强版,这个增强版又变成原有进阶版的「高手」,以此循环修正,就可以不断的提升对于对手(高手)落子的预测。第二个层面则是现在的策略网络不再需要在19*19的方格中找出最可能落子位置,改良过的策略网络可以先透过卷积核排除掉一些区域不去进行计算,然后再根据剩余区域找出最可能位置,虽然这可能降低AlphaGo策略网络的威力,但是这种机制却能让AlphaGo计算速度提升1000倍以上。也正因为Alpha Go一直是根据整体局势来猜测对手的可能落子选择,也因此人类耍的小心机像是刻意下几步希望扰乱计算机的落子位置,其实都是没有意义的。
第二个大脑是评价网络。在评价网络中则是关注在目前局势的状况下,每个落子位置的「最后」胜率(这也是我所谓的整体棋局),而非是短期的攻城略地。也就是说策略网络是分类问题(对方会下在哪),评价网络是评估问题(我下在这的胜率是多少)。评价网络并不是一个精确解的评价机制,因为如果要算出精确解可能会耗费极大量的计算能力,因此它只是一个近似解的网络,而且透过卷积神经网络的方式来计算出卷积核范围的平均胜率(这个做法的目的主要是要将评价函数平滑化,同时避免过度学习的问题),最终答案他会留到最后的蒙利卡罗搜索树中解决。当然,这里提到的胜率会跟向下预测的步数会有关,向下预测的步数越多,计算就越庞大,AlphaGo目前有能力自己判断需要展开的预测步数。但是如何能确保过去的样本能够正确反映胜率,而且不受到对弈双方实力的事前判断(可能下在某处会赢不是因为下在这该赢,而是这个人比较厉害),因此。这个部分它们是透过两台AlphaGo对弈的方式来解决,因为两台AlphaGo的实力可以当作是相同的,那么最后的输赢一定跟原来的两人实力无关,而是跟下的位置有关。也因此评价网络并不是透过这世界上已知的棋谱作为训练,因为人类对奕会受到双方实力的影响,透过两台对一的方式,他在与欧洲棋王对弈时,所使用的训练组样本只有3000万个棋谱,但是在与李世石比赛时却已经增加到1亿。由于人类对奕动则数小时,但是AlphaGo间对奕可能就一秒完成数局,这种方式可以快速地累积出正确的评价样本。所以先前提到机器下围棋最大困难点评价机制的部分就是这样透过卷积神经网络来解决掉。
AlphaGo技术的最后环节就是蒙地卡罗搜索树,相较于以前深蓝所使用的搜索(搭配MinMax搜索算法以及Alpha-Beta修剪法,这里就不再赘述),由于我们并非具有无限大的计算能力(请注意,如果是有限的排列组合,蒙地卡罗搜索树的确有可能针对所有组合进行通盘评估,但是在围棋的场景下是没有办法的,就算这样做,恐怕也会造成计算时间的大幅增加),因此不可能是适用于旧的方法,不过在前面策略网络以及评价网络中,AlphaGo已经可以针对接下来的落子(包括对方)可能性缩小到一个可控的范围,接下来他就可以快速地运用蒙地卡罗搜索树来有限的组合中计算最佳解。一般来说蒙地卡罗搜索树包括4个步骤:
•选取首先根据目前的状态,选择几种可能的对手落子模式。
•展开根据对手的落子,展开至我们胜率最大的落子模式(我们称之为一阶蒙地卡罗树)。所以在AlphaGo的搜索树中并不会真的展开所有组合。
•评估如何评估最佳行动(AlphaGo该下在哪?),一种方式是将行动后的棋局丢到评价网络来评估胜率,第二种方式则是做更深度的蒙地卡罗树(多预测几阶可能的结果)。这两种方法所评估的结果可能截然不同,AlphaGo使用了混合系数(mixing coefficient)来将两种评估结果整合,目前在Nature刊出的混合系数是50%-50%(但是我猜实际一定不是)
•倒传导在决定我们最佳行动位置后,很快地根据这个位置向下透过策略网络评估对手可能的下一步,以及对应的搜索评估。所以AlphaGo其实最恐怖的是,李世石在思考自己该下哪里的时候,不但AlphaGo可能早就猜出了他可能下的位置,而且正利用他在思考的时间继续向下计算后面的棋路。
根据AlphaGo团队的实测,如果单独使用一个大脑或是蒙利卡罗搜索树技术,都能达到业余(段)的等级(欧洲棋王樊摩强度等级大概是在2500~2600,而李世石是在3500以上)。但是当这些技术整合就能呈现更强大的力量。但是在刊登Nature论文时他的预估强度大概也只有职业3~4段(李世石是9段),不过刚刚提到他透过增强技术强化策略网络、透过两台AlphaGo来优化评价网络,这都可以让他可以在短时间变得更加强大。而且计算机没有情感也不怕压力,更不会因为对手表现而轻敌(AlphaGo的策略网络一向只预测强者),所以人类就算有更强大的实力也未必能够承受输赢压力而做最好的发挥。
弱人工智能与强人工智能
现在计算机在围棋这个号称人类最后的堡垒中胜过了人类,那我们是不是要担心人工智能统治人类的一天到来,其实不必杞人忧天,因为在人工智能的分类上来说,区分为弱人工智能(ArtificialNarrow Intelligence)与强人工智能(Artificial General Intelligence)(事实上还有人提出高人工智能Artificial Super Intelligence,认为是比人类智力更强大,具备创造创新与社交技能的人工智能,但我觉得这太科幻了,不再讨论范围内),其中最大的差别在于弱人工智能不具备自我意识、不具备理解问题、也不具备思考、计划解决问题的能力。各位可能要质疑AlphaGo如果不能理解围棋他是如何可以下的那么好?请注意,AlphaGo本质上就是一个深度学习的神经网络,他只是透过网络架构与大量样本找到了可以预测对手落子(策略网络)、计算胜率(评价网络)以及根据有限选项中计算最佳解的蒙地卡罗搜索树,也就是说,他是根据这三个函数来找出最佳动作,而不是真的理解了什么是围棋。所以AlphaGo在本质上与微软的Cortana或iPhone的Siri其实差别只是专精在下围棋罢了,并没有多出什么思考机制。
那么会有强人工智能出现的一天吗?在2013年Bostrom对全球数百位最前沿的人工智能专家做了问卷,问了到底他们预期强人工智能什么时候会出现,他根据问卷结果推导出了三个答案:乐观估计(有10%的问卷中位数)是2022年,正常估计(50%的问卷中位数)是2040年,悲观估计(90%的问卷中位数)是2075年。所以离我们还久的呢。不过当弱人工智能的发展进入到成本降低可商业化的时候,大家与其关心人工智能会不会统治地球,还不如先关心自己的工作技能会不会被计算机取代来实际些吧。
延伸阅读:
人工智能在深度学习领域的前世今生
Hadoop大数据应用 2017-05-23 16:05:29
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
HAL: Affirmative, Dave, I read you.
大卫,我看到你了
Dave Bowman: Open the pod bay doors, HAL.
哈尔,打开舱门
HAL: I’m sorry Dave, I’m afraid I can’t do that.
对不起,大卫,我不能这做
~《2001: A Space Odyssey》~
这两年人工智能热闹非凡,不仅科技巨头发力AI取得技术与产品的突破,还有众多初创企业获得风险资本的青睐,几乎每周都可以看到相关领域初创公司获得投资的报道,而最近的一次春雷毫无疑问是Google旗下Deepmind开发的人工智能AlphaGo与南韩李世石的围棋之战,AiphaGo大比分的获胜让人们对AI刮目相看的同时也引发了对AI将如何改变我们生活的思考。其实,人工智能从上世纪40年代诞生至今,经历了一次又一次的繁荣与低谷,首先我们来回顾下过去半个世纪里人工智能的各个发展历程。
人工智能发展的七大篇章
人工智能的起源:人工智能真正诞生于20世纪的40 – 50年代,这段时间里数学类、工程类、计算机等领域的科学家探讨着人工大脑的可能性,试图去定义什么是机器的智能。在这个背景下,1950年Alan Turing发表了题为“机器能思考吗”的论文,成为划时代之作,提出了著名的图灵测试去定义何为机器具有智能,他说只要有30%的人类测试者在5分钟内无法分辨出被测试对象,就可以认为机器通过了图灵测试。
图1:图灵测试;Alan Turing本人
人工智能的第一次黄金时期:现在公认的人工智能起源是1956年的达特矛斯会议,在会议上计算机科学家John McCarthy说服了参会者接受“人工智能(Artificial Intelligence)”。达特矛斯会议之后的十几年是人工智能的第一次黄金时代,大批研究者扑向这一新领域,计算机被应用于代数应用题、几何定理证明,一些顶尖高校建立的人工智能项目获得了ARPA等机构的大笔经费,甚至有研究者认为机器很快就能替代人类做到一切工作。
人工智能的第一次低谷:到了70年代,由于计算机性能的瓶颈、计算复杂性的增长以及数据量的不足,很多项目的承诺无法兑现,比如现在常见的计算机视觉根本找不到足够的数据库去支撑算法去训练,智能也就无从谈起。后来学界将人工智能分为两种:难以实现的强人工智能和可以尝试的弱人工智能。强人工智能是可以认为就是人,可执行“通用任务”;弱人工智能则处理单一问题,我们迄今仍处于弱人工智能时代,而很多项目的停滞也影响了资助资金的走向,AI参与了长达数年之久的低谷。
专家系统的出现:1970年代之后,学术界逐渐接受新的思路:人工智能不光要研究解法,还得引入知识。于是,专家系统诞生了,它利用数字化的知识去推理,模仿某一领域的专家去解决问题,“知识处理”随之成为了主流人工智能的研究重点。在1977年世界人工智能大会提出的“知识工程”的启发下,日本的第五代计算机计划、英国的阿尔维计划、欧洲的尤里卡计划和美国的星计划相机出台,带来专家系统的高速发展,涌现了卡内基梅隆的XCON系统和Symbolics、IntelliCorp等新公司。
人工智能的第二次经费危机:20世纪90年代之前的大部分人工智能项目都是靠政府机构的资助资金在研究室里支撑,经费的走向直接影响着人工智能的发展。80年代中期,苹果和IBM的台式机性能已经超过了运用专家系统的通用型计算机,专家系统的风光随之褪去,人工智能研究再次遭遇经费危机。
IBM的深蓝和Watson:专家系统之后,机器学习成为了人工智能的焦点,其目的是让机器具备自动学习的能力,通过算法使得机器从大量历史数据中学习规律并对新的样本作出判断识别或预测。在这一阶段,IBM无疑是AI领域的领袖,1996年深蓝(基于穷举搜索树)战胜了国际象棋世界冠军卡斯帕罗夫,2011年Watson(基于规则)在电视问答节目中战胜人类选手,特别是后者涉及到放到现在仍然是难题的自然语言理解,成为机器理解人类语言的里程碑的一步。
深度学习的强势崛起:深度学习是机器学习的第二次浪潮,2013年4月,《麻省理工学院技术评论》杂志将深度学习列为2013年十大突破性技术之首。其实,深度学习并不是新生物,它是传统神经网络(Neural Network)的发展,两者之间有相同的地方,采用了相似的分层结构,而不一样的地方在于深度学习采用了不同的训练机制,具备强大的表达能力。传统神经网络曾经是机器学习领域很火的方向,后来由于参数难于调整和训练速度慢等问题淡出了人们的视野。
但是有一位叫Geoffrey Hinton的多伦多大学老教授非常执着的坚持神经网络的研究,并和Yoshua Bengio、Yann LeCun(发明了现在被运用最广泛的深度学习模型-卷积神经网CNN)一起提出了可行的deep learning方案。标志性的事情是,2012年Hinton的学生在图片分类竞赛ImageNet上大大降低了错误率(ImageNet Classification with Deep Convolutional Neural Networks),打败了工业界的巨头Google,顿时让学术界和工业界哗然,这不仅学术意义重大,更是吸引了工业界大规模的对深度学习的投入:2012年Google Brain用16000个CPU核的计算平台训练10亿神经元的深度网络,无外界干涉下自动识别了“Cat”;Hinton的DNN初创公司被Google收购,Hinton个人也加入了Google;而另一位大牛LeCun加盟Facebook,出任AI实验室主任;百度成立深度学习研究所,由曾经领衔Google Brain的吴恩达全面负责。不仅科技巨头们加大对AI的投入,一大批初创公司乘着深度学习的风潮涌现,使得人工智能领域热闹非凡。
人工智能之主要引擎:深度学习
机器学习发展分为两个阶段,起源于上世纪20年代的浅层学习(Shallow Learning)和最近几年才火起来的深度学习(Deep Learning)。浅层学习的算法中,最先被发明的是神经网络的反向传播算法(back propagation),为什么称之为浅层呢,主要是因为当时的训练模型是只含有一层隐含层(中间层)的浅层模型,浅层模型有个很大的弱点就是有限参数和计算单元,特征表达能力弱。
上世纪90年代,学术界提出一系列的浅层机器学习模型,包括风行一时的支撑向量机Support Vector Machine,Boosting等,这些模型相比神经网络在效率和准确率上都有一定的提升,直到2010年前很多高校研究室里都是用时髦的SVM等算法,包括笔者本人(当时作为一名机器学习专业的小硕,研究的是Twitter文本的自动分类,用的就是SVM),主要是因为这类浅层模型算法理论分析简单,训练方法也相对容易掌握,这个时期神经网络反而相对较为沉寂,顶级学术会议里很难看到基于神经网络算法实现的研究。
但其实后来人们发现,即使训练再多的数据和调整参数,识别的精度似乎到了瓶颈就是上不去,而且很多时候还需要人工的标识训练数据,耗费大量人力,机器学习中的5大步骤有特征感知,图像预处理,特征提取,特征筛选,预测与识别,其中前4项是不得不亲自设计的(笔者经过机器学习的地狱般的折磨终于决定转行)。在此期间,我们执着的Hinton老教授一直研究着多隐层神经网络的算法,多隐层其实就是浅层神经网络的深度版本,试图去用更多的神经元来表达特征,但为什么实现起来这么苦难的呢,原因有三点:
1.BP算法中误差的反向传播随着隐层的增加而衰减;优化问题,很多时候只能达到局部最优解;
2.模型参数增加的时候,对训练数据的量有很高要求,特别是不能提供庞大的标识数据,只会导致过度复杂;
3.多隐层结构的参数多,训练数据的规模大,需要消耗很多计算资源。
图2:传统神经网络与多隐层神经网络
2006年,Hinton和他的学生R.R. Salakhutdinov在《Science》上发表了一篇文章(Reducing the dimensionality of data with neural networks),成功训练出多层神经网络,改变了整个机器学习的格局,虽然只有3页纸但现在看来字字千金。这篇文章有两个主要观点:1)多隐层神经网络有更厉害的学习能力,可以表达更多特征来描述对象;2)训练深度神经网络时,可通过降维(pre-training)来实现,老教授设计出来的Autoencoder网络能够快速找到好的全局最优点,采用无监督的方法先分开对每层网络进行训练,然后再来微调。
图3:图像的与训练,编码→解码→微调
从图3我们可以看到,深度网络是逐层逐层进行预训练,得到每一层的输出;同时引入编码器和解码器,通过原始输入与编码→再解码之后的误差来训练,这两步都是无监督训练过程;最后引入有标识样本,通过有监督训练来进行微调。逐层训练的好处是让模型处于一个接近全局最优的位置去获得更好的训练效果。
以上就是Hinton在2006年提出的著名的深度学习框架,而我们实际运用深度学习网络的时候,不可避免的会碰到卷积神经网络(Convolutional Neural Networks, CNN)。CNN的原理是模仿人类神经元的兴奋构造:大脑中的一些个体神经细胞只有在特定方向的边缘存在时才能做出反应,现在流行的特征提取方法就是CNN。打个比方,当我们把脸非常靠近一张人脸图片观察的时候(假设可以非常非常的近),这时候只有一部分的神经元是被激活的,我们也只能看到人脸上的像素级别点,当我们把距离一点点拉开,其他的部分的神经元将会被激活,我们也就可以观察到人脸的线条→图案→局部→人脸,整个就是一步步获得高层特征的过程。
图4:基本完整的深度学习流程
深度学习的“深”(有很多隐层),好处是显而易见的 – 特征表达能力强,有能力表示大量的数据;pretraining是无监督训练,节省大量人力标识工作;相比传统的神经网络,通过逐层逐层训练的方法降低了训练的难度,比如信号衰减的问题。深度学习在很多学术领域,比浅层学习算法往往有20-30%成绩的提高,驱使研究者发现新大陆一般涌向深度学习这一领域,弄得现在不说用了深度学习都不好意思发论文了。
深度学习的重要发展领域
深度学习首先在图像、声音和语义识别取得了长足的进步,特别是在图像和声音领域相比传统的算法大大提升了识别率,其实也很容易理解,深度学习是仿人来大脑神经感知外部世界的算法,而最直接的外部自然信号莫过于图像、声音和文字(非语义)。
图像识别:图像是深度学习最早尝试的领域,大牛Yann LeCun早在1989年就开始了卷积神经网络的研究,取得了在一些小规模(手写字)的图像识别的成果,但在像素丰富的图片上迟迟没有突破,直到2012年Hinton和他学生在ImageNet上的突破,使识别精度提高了一大步。2014年,香港中文大学教授汤晓鸥领导的计算机视觉研究组开发了名为DeepID的深度学习模型, 在LFW (Labeled Faces in the Wild,人脸识别使用非常广泛的测试基准)数据库上获得了99.15%的识别率,人用肉眼在LFW上的识别率为97.52%,深度学习在学术研究层面上已经超过了人用肉眼的识别。
当然在处理真实场景的人脸识别时还是差强人意,例如人脸不清晰,光照条件,局部遮挡等因素都会影响识别率,所以在实际操作中机器学习与人工确认相结合,更加妥当。国内做人脸识别的公司众多,其中Face 、中科奥森、Sensetime、Linkface、飞搜科技都是走在前面的,在真实环境运用或者在垂直细分领域中有着深厚的数据积累。在基于面部特征识别技术的情绪识别领域,阅面科技与Facethink(Facethink为天使湾早期投资项目)是国内少数进入该领域的初创公司。
语音识别:语音识别长期以来都是使用混合高斯模型来建模,在很长时间内都是占据垄断地位的建模方式,但尽管其降低了语音识别的错误率,但面向商业级别的应用仍然困难,也就是在实际由噪音的环境下达不到可用的级别。直到深度学习的出现,使得识别错误率在以往最好的基础上相对下降30%以上,达到商业可用的水平。微软的俞栋博士和邓力博士是这一突破的最早的实践者,他们与Hinton一起最早将深度学习引入语音识别并取得成功。由于语音识别的算法成熟,科大讯飞、云知声、思必驰在通用识别上识别率都相差不大,在推广上科大讯飞是先行者,从军用到民用,包括移动互联网、车联网、智能家居都有广泛涉及。
自然语言处理(NLP):即使现在深度学习在NLP领域并没有取得像图像识别或者语音识别领域的成绩,基于统计的模型仍然是NLP的主流,先通过语义分析提取关键词、关键词匹配、算法判定句子功能(计算距离这个句子最近的标识好的句子),最后再从提前准备的数据库里提供用户输出结果。显然,这明显谈不上智能,只能算一种搜索功能的实现,而缺乏真正的语言能力。苹果的Siri、微软的小冰、图灵机器人、百度度秘等巨头都在发力智能聊天机器人领域,而应用场景在国内主要还是客服(即使客户很讨厌机器客户,都希望能第一时间直接联系到人工服务),我认为市场上暂时还没出现成熟度非常高的产品。小冰众多竞争对手中还是蛮有意思的,她的设想就是“你随便和我聊天吧”,而其他竞争对手则专注于某些细分领域却面临着在细分领域仍是需要通用的聊天系统,个人认为小冰经过几年的数据积累和算法改善是具备一定优势脱颖而出。
为什么深度学习在NLP领域进展缓慢:对语音和图像来说,其构成元素(轮廓、线条、语音帧)不用经过预处理都能清晰的反映出实体或者音素,可以简单的运用到神经网络里进行识别工作。而语义识别大不相同:首先一段文本一句话是经过大脑预处理的,并非自然信号;其次,词语之间的相似并不代表其意思相近,而且简单的词组组合起来之后意思也会有歧义(特别是中文,比如说“万万没想到”,指的是一个叫万万的人没想到呢,还是表示出乎意料的没想到呢,还是一部电影的名字呢);对话需要上下文的语境的理解,需要机器有推理能力;人类的语言表达方式灵活,而很多交流是需要知识为依托的。很有趣,仿人类大脑识别机制建立的深度学习,对经过我们人类大脑处理的文字信号,反而效果差强人意。根本上来说,现在的算法还是弱人工智能,可以去帮人类快速的自动执行(识别),但还是不能理解这件事情本身。
深度学习的挑战和发展方向的探讨
受益于计算能力的提升和大数据的出现,深度学习在计算机视觉和语音识别领域取得了显著的成果,不过我们也看到了一些深度学习的局限性,亟待解决:
1.深度学习在学术领域取得了不错的成果,但在商业上对企业活动的帮助还是有限的,因为深度学习是一个映射的过程,从输入A映射到输出B,而在企业活动中我如果已经拥有了这样的A→B的配对,为什么还需要机器学习来预测呢?让机器自己在数据中寻找这种配对关系或者进行预测,目前还是有很大难度。
2.缺乏理论基础,这是困扰着研究者的问题。比如说,AlphaGo这盘棋赢了,你是很难弄懂它怎么赢的,它的策略是怎样的。在这层意思上深度学习是一个黑箱子,在实际训练网络的过程中它也是个黑箱子:神经网络需要多少个隐层来训练,到底需要多少有效的参数等,都没有很好的理论解释。我相信很多研究者在建立多层神经网络的时候,还是花了很多时间在枯燥的参数调试上。
3.深度学习需要大量的训练样本。由于深度学习的多层网络结构,其具备很强的特征表达能力,模型的参数也会增加,如果训练样本过小是很难实现的,需要海量的标记的数据,避免产生过拟合现象(overfitting)不能很好的表示整个数据。
4.在上述关于深度学习在NLP应用的篇章也提到,目前的模型还是缺乏理解及推理能力。
因此,深度学习接下来的发展方向也将会涉及到以上问题的解决,Hinton、LeCun和Bengio三位AI领袖曾在合著的一篇论文(Deep Learning)的最后提到:
(
https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf)
1.无监督学习。虽然监督学习在深度学习中表现不俗,压倒了无监督学习在预训练的效果,但人类和动物的学习都是无监督学习的,我们感知世界都是通过我们自己的观察,因此若要更加接近人类大脑的学习模式,无监督学习需要得到更好的发展。
2.强化学习。增强学习指的是从外部环境到行为映射的学习,通过基于回报函数的试错来发现最优行为。由于在实际运用中数据量是递增的,在新数据中能否学习到有效的数据并做修正显得非常重要,深度 强化学习可以提供奖励的反馈机制让机器自主的学习(典型的案例是AlphaGo)。
3.理解自然语言。老教授们说:赶紧让机器读懂语言吧!
4.迁移学习。把大数据训练好的模型迁移运用到有效数据量小的任务上,也就是把学到的知识有效的解决不同但相关领域的问题,这事情显得很性感,但问题就在迁移过程已训练好的模型是存在自我偏差的,所以需要高效的算法去消除掉这些偏差。根本上来说,就是让机器像人类一样具备快速学习新知识能力。
自深度学习被Hinton在《Science》发表以来,短短的不到10年时间里,带来了在视觉、语音等领域革命性的进步,引爆了这次人工智能的热潮。虽然目前仍然存在很多差强人意的地方,距离强人工智能还是有很大距离,它是目前最接近人类大脑运作原理的算法,我相信在将来,随着算法的完善以及数据的积累,甚至硬件层面仿人类大脑神经元材料的出现,深度学习将会更进一步的让机器智能化。
最后,我们以Hinton老先生的一段话来结束这篇文章:“It has been obvious since the 1980s that backpropagation through deep autoencoders would be very effective for nonlinear dimensionality reduction, provided that computers were fast enough, data sets were big enough, and the initial weights were close enough to a good solution. All three conditions are now satisfied.”(自从上世纪80年代我们就知道,如果有计算机足够快、数据足够大、初始权重值足够完美,基于深度自动编码器的反向传播算法是非常有效的。现在,这三者都具备了。)
转载自:大数据地盘
作者:兰彻
链接:
http://www.leiphone.com/news/201608/Rlq2Vq5v8peap07S.html
免责声明
本公众号内容转载自其他公众号或网站,旨在分享大数据行业领域前沿资讯和观点!如有侵权或出处有误请和我们联系。
[
本帖最后由 druid169 于 2017-5-24 08:05 编辑 ]