社会焦点

最适合大风天躲家里听的零基础深度学习课(2)

字号+ 作者: 来源: 2017-05-06

很多人可能已经看出来了,使用画直线的方法来分割一个平面空间(如附图所示),很难适应几千个汉字以及总计至少数万种不同的写法。如果想把每个汉字的不同变形都对应为空间中的点,那就极难找到一种数学上比较直截

  很多人可能已经看出来了,使用画直线的方法来分割一个平面空间(如附图所示),很难适应几千个汉字以及总计至少数万种不同的写法。如果想把每个汉字的不同变形都对应为空间中的点,那就极难找到一种数学上比较直截了当的方法,来将每个汉字对应的点都分割包围在不同区域里。

  很多年里,数学家和计算机科学家就是被类似的问题所困扰。人们不断改进机器学习方法。比如,用复杂的高阶函数来画出变化多端的曲线,以便将空间里相互交错的点分开来,或者,干脆想办法把二维空间变成三维空间、四维空间甚至几百维、几千维、几万维的高维空间。在深度学习实用化之前,人们发明了许多种传统的、非深度的机器学习方法。这些方法虽然在特定领域取得了一定成就,但这个世界实在是复杂多样、变化万千,无论人们为计算机选择了多么优雅的建模方法,都很难真正模拟世界万物的特征规律。这就像一个试图用有限几种颜色画出世界真实面貌的画家,即便画艺再高明,他也很难做到“写实”二字。

  那么,如何大幅扩展计算机在描述世界规律时的基本手段呢?有没有可能为计算机设计一种灵活度极高的表达方式,然后让计算机在大规模的学习过程里不断尝试和寻找,自己去总结规律,直到最终找到符合真实世界特征的一种表示方法呢?

  现在,我们终于要谈到深度学习了!

  深度学习就是这样一种在表达能力上灵活多变,同时又允许计算机不断尝试,直到最终逼近目标的一种机器学习方法。从数学本质上说,深度学习与前面谈到的传统机器学习方法并没有实质性差别,都是希望在高维空间中,根据对象特征,将不同类别的对象区分开来。但深度学习的表达能力,与传统机器学习相比,却有着天壤之别。

  简单地说,深度学习就是把计算机要学习的东西看成一大堆数据,把这些数据丢进一个复杂的、包含多个层级的数据处理网络(深度神经网络),然后检查经过这个网络处理得到的结果数据是不是符合要求——如果符合,就保留这个网络作为目标模型,如果不符合,就一次次地、锲而不舍地调整网络的参数设置,直到输出满足要求为止。

  ·这么说还是太抽象,太难懂。我们换一种更直观的讲法。

  假设深度学习要处理的数据是信息的“水流”,而处理数据的深度学习网络是一个由管道和阀门组成的巨大的水管网络。网络的入口是若干管道开口,网络的出口也是若干管道开口。这个水管网络有许多层,每一层有许多个可以控制水流流向与流量的调节阀。根据不同任务的需要,水管网络的层数、每层的调节阀数量可以有不同的变化组合。

  对复杂任务来说,调节阀的总数可以成千上万甚至更多。水管网络中,每一层的每个调节阀都通过水管与下一层的所有调节阀连接起来,组成一个从前到后,逐层完全连通的水流系统(这里说的是一种比较基本的情况,不同的深度学习模型,在水管的安装和连接方式上,是有差别的)。

  最适合大风天躲家里听的零基础深度学习课

  ·那么,计算机该如何使用这个庞大的水管网络,来学习识字呢?

  比如,当计算机看到一张写有“田”字的图片时,就简单将组成这张图片的所有数字(在计算机里,图片的每个颜色点都是用“0”和“1”组成的数字来表示的)全都变成信息的水流,从入口灌进水管网络。

  我们预先在水管网络的每个出口都插一块字牌,对应于每一个我们想让计算机认识的汉字。这时,因为输入的是“田”这个汉字,等水流流过整个水管网络,计算机就会跑到管道出口位置去看一看,是不是标记有“田”字的管道出口流出来的水流最多。如果是这样,就说明这个管道网络符合要求。如果不是这样,我们就给计算机下达命令:调节水管网络里的每一个流量调节阀,让“田”字出口“流出”的数字水流最多。

  这下,计算机可要忙一阵子了,要调节那么多阀门呢!好在计算机计算速度快,暴力计算外加算法优化(其实,主要是精妙的数学方法了,不过我们这里不讲数学公式,大家只要想象计算机拼命计算的样子就可以了),总是可以很快给出一个解决方案,调好所有阀门,让出口处的流量符合要求。

  下一步,学习“申”字时,我们就用类似的方法,把每一张写有“申”字的图片变成一大堆数字组成的水流,灌进水管网络,看一看,是不是写有“申”字的那个管道出口流出来的水最多,如果不是,我们还得再次调整所有的调节阀。这一次,要既保证刚才学过的“田”字不受影响,也要保证新的“申”字可以被正确处理。

  如此反复进行,直到所有汉字对应的水流都可以按照期望的方式流过整个水管网络。这时,我们就说,这个水管网络已经是一个训练好的深度学习模型了。

  例如,附图显示了“田”字的信息水流被灌入水管网络的过程。为了让水流更多地从标记有“田”字的出口流出,计算机需要用特定方式近乎疯狂地调节所有流量调节阀,不断实验、摸索,直到水流符合要求为止。

  最适合大风天躲家里听的零基础深度学习课

  当大量识字卡片被这个管道网络处理,所有阀门都调节到位后,整套水管网络就可以用来识别汉字了。这时,我们可以把调节好的所有阀门都“焊死”,静候新的水流到来。

  与训练时做的事情类似,未知的图片会被计算机转变成数据的水流,灌入训练好的水管网络。这时,计算机只要观察一下,哪个出口流出来的水流最多,这张图片写的就是哪个字。

  简单吗?神奇吗?难道深度学习竟然就是这样的一个靠疯狂调节阀门来“凑”出最佳模型的学习方法?整个水管网络内部,每个阀门为什么要如此调节,为什么要调节到如此程度,难道完全由最终每个出口的水流量来决定?这里面,真的没有什么深奥的道理可言?

  深度学习大致就是这么一个用人类的数学知识与计算机算法构建起整体架构,再结合尽可能多的训练数据,以及计算机的大规模运算能力去调节内部参数,尽可能逼近问题目标的半理论、半经验的建模方式。

  ·指导深度学习的基本是一种实用主义的思想。

  不是要理解更复杂的世界规律吗?那我们就不断增加整个水管网络里可调节的阀门的个数(增加层数或增加每层的调节阀数量)。不是有大量训练数据和大规模计算能力吗?那我们就让许多CPU和许多GPU(图形处理器,俗称显卡芯片,原本是专用于作图和玩游戏的,碰巧也特别适合深度学习计算)组成庞大计算阵列,让计算机在拼命调节无数个阀门的过程中,学到训练数据中的隐藏的规律。也许正是因为这种实用主义的思想,深度学习的感知能力(建模能力)远强于传统的机器学习方法。

转载请注明出处。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章