我如何理解深度学习?
点击上方
请您点击“与数据同行”以“关注”,关于数据的实践与思考,每周一我在这里等你!
作者:傅一平 目前就职于某电信运营商,从事大数据相关工作。
Alphgo在围棋上战胜李世石属于里程碑的时间,因此,深度学习也被炒得很热,但什么叫深度学习,为什么是深度,其实大多不知道,如果解释成多层神经网络估计也没多少人明白。
即使你是搞建模的,假如没搞过神经网络,可能也不清楚,甚至你做过神经网络工程,但如果仅仅是调用一下算法库,也可能是一知半解。
当然,大数据时代,我们也许会用就可以了,特别是对于企业来讲,不用知道其原理。但深度学习作为一个方向性的东西,笔者总是想探究一些其本质的东西,特别是希望能理解深度学习理解世界的方式,也许其对于成长有所帮助。
虽然以前网上找过一些深度学习的资料,但一直启发有限,直到最近读到台湾大学李宏毅教授的一个深度学习的课件,还有很多知乎大神的解释,才有更多的领悟,今天,就顺着大师的脉络,以浅显的方式去认知深度学习。
这是篇普及基本知识的文章,有很多的图片辅助理解,笔者也尽量简单的描述,没有晦涩的公式,权当作为自己的读书笔记吧。
认识机器学习。
机器学习=寻找一个合适函数f,就是这么简单,这就是席卷全球的人工智能做的事情,下面一张图已经道尽了一切。
但寻找f这个函数是如此困难,比如下面我要用图像识别一只猫或狗:
我要做什么呢?
首先,寻找一堆的函数,比如f1,f2……。
其次,找到一堆训练用的猫狗图片,将图片输入到f中,获得对应的结果,比如,输入一只猫,函数告诉我这是一只猫,输入一只狗,函数告诉我是一只狗,否则,就换。
最后,选择识别正确的函数f作为结果,也就是我们通常所说的算法,或称模型,或称Alphgo,或者,这个f,就是所谓的人工智能。
下图示例了该过程:
再次,要用前面正确的f,输入一些新的猫的图片,看看这个f(即模型)靠不靠谱,这个过程也叫测试过程,即下图所示的Testing,而上图的过程,叫训练过程Training,大家听到阿尔法狗每天都要自我对局几千万盘,这个过程就叫Training。
这个是机器学习的基础知识,理解深度学习,这个是出发点,我想大多人都懂了,不懂,肯定是没认真看图解字。
人的大脑。
人的大脑有几十亿个被称作neuron(神经细胞、神经元)的微小细胞,这些神经元相互之间通过无数连接线组成,如果一个神经细胞在一段时间内受到高频率的刺激,则它和输入信号的神经细胞之间的连接强度就会按某种过程改变,使得该神经细胞下一次受到激励时更容易兴奋。
这个就是神经网络,人的认知模型,那么如何模拟神经网路,也就是如何模拟人的认知过程,也叫人工神经网络。
那么一个神经元neuron如何模拟?
下图是一个人工neuron的示意:
a指各种输入信息,比如图像信息的输入,w指权重,就是神经连接线被刺激后的大小,b指偏移量,最后,这些信息通过加权形成输入的z,z作为外部刺激的一种表达形式,统一通过一个激活函数σ的转换,给定最终的输出结果a。
这就是一个人工模拟的神经元过程,读懂它,再给你一个案例。
神经网络有太多的neuron,因此,人工神经是有很多人工neuron相互连接构成的,每一个neuron有不同的权重,偏移或者激活函数,如下图:
前向全连接神经网络是一种经常采用的人工神经网络,如下图:
再给一个示例,坚持看下去:
深度学习。
我们可以看到上面的神经网络有很多层,那么抽象一下,下面这种神经网络类型就叫做深度学习。
深度学习是指有多个隐藏层的人工神经网络,我们终于揭开了深度学习这个马甲,从数学角度来讲,它没有什么好神秘的。
一个应用例子。
输入一个手写字,判定属于哪个数字(假如限定0-9),大家似曾相识吧。
图片是256*256像素,数字化后,1代表有色,0代表无色,这样,输入就变成1个256维变量,输出每个位置数据表达的是属于该位置数据的置信度,比如输出分类器自上而下分别代表1,2,3,4,5,..0,输出的数据代表的是这个数字的置信度,这里输出中2的位置的置信度最大是0.7,则判定这张图片分类成2。
图像识别也是这么来的,只不过输出的分类除了数字,可能还包括动物,比如猫,狗,用的识别工具就是人工神经网络,下图示例了识别过程,核心就是,寻找一张合适的神经网络。
那么,到底如何实现呢?
首先,准备一堆的训练图片和标识:
其次,训练目标如下图所示,要求在输入图片1的时候,对应的y1要最大,输入图片2的时候,对应的y2要最大。
再次,要设置一个损失函数L,标识训练的好坏,也就是训练识别的结果跟实际尽量匹配,假如输入的图片是1,则最后y1最好是1,而其他y2-y10最好全是0,这样损失函数L就是最小,即0,如下图示例:
而如何让L最小呢,这是神经网络最核心的东西,大家前面已经看到,实际上这个网络的未知数有权重w,偏移量b(常量),我们一般叫它神经网络的参数θ,这是一个未知数求解的问题。
如何选择θ,让L最小,需要进行求解。
不做非常艰难的公式推导,我只给出结果,由于L是w的函数,假设向量W是两维w1,w2,则函数图形化后如下:
我们的目的就是去寻找这张图L的最低点,一旦最低点确定,w1,w2也确定了,那整个神经网络就确定了,一般采用梯度下降方法,就是对W求导,能够明确参数增减的方向,如果你微积分还记得的话。
寻找的办法一般步骤如下:
首先,初始化W,也就是w1,w2,就是随便找一组初始化参数。
其次,计算L对W的导数(也就是梯度),判断W参数应该的走向,然后重置W:
最后,当选择的W使得L最小值变化不大时,就终止,表示此时选择的参数可以满意了。
就好比你在玩帝国时代,需要探索地图的最低点:
由于神经网络有很多层次,很多激活函数,因此这个求解的方法非常复杂,其中反向传播算法(Backpropagation)是最通用的一种求解方法。
好了,深度学习原理部分基本讲完了,当然,这仅仅是术的追求,笔者也只是知道皮毛,那这类深度学习对于我们理解这个世界到底有什么帮助?
首先,深度学习的神经网络这么一层层构建到底在干什么?
从物理理解的角度讲,通过现有的不同物质的组合形成新物质,给你举个例子,碳和氧原子通过组合,可以形成三个新物质,见下图:
形成的新物质之间又可以相互组合,形成更为复杂的新物质,如此循环,从而形成我们这个世界,这是其物理意义。
从数学的视角,其实就是在做一层层的空间变换,让原来无法区隔的空间变成可以区分,你要理解,这个世界绝对不是线性的。
空间变换有五种形式,回忆一下前面讲的。
其中:
aw:做的空间变换是升维/降维、放大/缩小及旋转;
b:做的空间变换是平移;
σ:实现弯曲
比如一维空间,以分类为例,当要分类正数、负数、零,三类的时候,一维空间的直线可以找到两个超平面(比当前空间低一维的子空间。当前空间是直线的话,超平面就是点)分割这三类。但面对像分类奇数和偶数无法找到可以区分它们的点的时候,我们借助 x % 2(取余)的转变,把x变换到另一个空间下来比较,从而分割。
神经网络的解决方法依旧是转换到另外一个空间下,用的是所说的5种空间变换操作。比如下图就是经过放大、平移、旋转、扭曲原二维空间后,在三维空间下就可以成功找到一个超平面分割红蓝两线:
上面是一层神经网络可以做到的,设想网络拥有很多层时,对原始输入空间的“扭曲力”会大幅增加,如下图,最终我们可以轻松找到一个超平面分割空间。
所谓监督学习就是给予神经网络网络大量的训练例子,让网络从训练例子中学会如何变换空间。每一层的权重W就控制着如何变换空间,我们最终需要的也就是训练好的神经网络的所有层的权重矩阵。
这就是深度学习的变换空间本质。
从物质组成的角度讲,前面由碳氧原子通过不同组合形成若干分子的例子。从分子层面继续迭代这种组合思想,可以形成DNA,细胞,组织,器官,最终可以形成一个完整的人。继续迭代还会有家庭,公司,国家等。这种现象在身边随处可见。并且原子的内部结构与太阳系又惊人的相似。不同层级之间都是以类似的几种规则再不断形成新物质。你也可能听过分形学这三个字。可通过观看从1米到150亿光年来感受自然界这种层级现象的普遍性。
图像识别中的人脸识别,只是一种应用,图像由像素组成,像素可以形成菱角,棱角可以形成五官,五官可以形成不同的人脸,每一层代表不同的物质层面 (如分子层)。而每层的W存储着如何组合上一层的物质从而形成新物质。
最后,再看一个空间变换后的案例,左边的红绿是原始空间,右侧是转化后的高纬空间的扭曲图,这个时候,所有的红绿点都被扭曲到了一侧,惊奇的发现可以线性可分了:
那么,再问一个深度的问题,当然这个是术的问题,为什么深度学习是深度,而不是宽度? 比如:
有以下论文用实验数据证明了为什么深度学习网络应该是高个子,而不是矮胖子:
为什么要分那么多层,除了激活函数更多,空间变换能力更强,还有啥奥妙?
因为,如果层数太少,可能样本也太少,如下图:
分了层后,每一层会有更多的样本,如下图:
最后,如何系统的进行深度学习的使用,下面一张图已经概括了,TensorFlow+theano+keras:
深度学习的介绍就到这里了,希望你能看到这里,遗憾的是笔者也仅仅是纸上谈兵,没有实操的经验,看得再多,也没有实际做过一个深度学习项目来得实在。
阿尔法狗采用的是卷积神经网络,如果要深入学习,可以看看其实现过程,有很多的技巧,当然,这要付出很大的代价,但道理是相通的。
希望于你有所启发。
为什么数据挖掘很难成功? 阅读量:2171
不忘初心,大数据不是IT的狂欢! 阅读量:2160
我如何完成一本企业数据字典的编写! 阅读量:2580
BI自助取数是怎么炼成的? 阅读量:1835
为什么BI取数这么难?阅读量:11500
为什么数据管理工作很难成功?阅读量:1900
为什么传统BI没前途?阅读量:4093
大数据,为什么不是传统BI的简单升级?阅读量:3400
数据分析师的自我修养 阅读量:1483
唯有数据创新,运营商才能实现大数据变现的突破?阅读量:1236
中国移动进军大数据征信,一个具有旅程碑意义的事件 阅读量:2380
为什么有些人用3年的时间获得了你12年的数据分析经验?阅读量:1874
数学中的“罗辑思维” 阅读量:1090
数据说谎的艺术 阅读量:2234
看上去很美,谈谈阿里云的大数据平台【数加】 阅读量:1281
DPI大数据之战:运营商的艰难抉择 阅读量:2342
还有很多...
长按订阅二维码关注(微信号:ysjtx_fyp)