看完这个,好像是懂了一点深度学习的二三事

现在开始提提深度学习吧。实际上,正如最初一篇里面神经网络历史里面提到的,神经网络和深度学习很多理论都是上世纪的东西了。

深度学习,如它的名字,就是把之前说的神经网络的深度加深,层数变多,结果却获得了出乎意料的效果。

特别是,自2012年在 ImageNet 竞赛中取得惊人成功后,立刻引发了一波浪潮,直到现在还在继续着。

这里能讲的,就是一些和浅层网络比深度网络会有那些优点,缺点,还有哪些应用。因为,本来深度学习就是有很多噱头在里面。

先稍微简单补充点,之前神经网络训练的一些技巧吧。

之前提到,用反向传播算法来训练神经网络。然而实际上,真的直接这样用就可以吗。

答案当然是否。反向传播虽然很厉害,但还不是万金油,还得有很多小伙伴的帮组,才能让深层网络成为万金油。

这些小伙伴们包括,正则化 (Regularization)、正规化 (Normalization)、初始化 (Initialization)、模型选择 (包括网格搜索和随机搜索来选各种参数)、什么时候停止训练 (停止法 Early Stopping)、 动量 (Momentum)、各种优化器(Adagrad, RMSProp, Adam)等等。

以上各种方法的目的,无非两个,第一,使得训练出来的网络处理新数据时有更好的准确率,高泛化性(很好地处理新数据);第二,让训练速度更加快。

深度学习为什么得以爆发

最近在吴教授的课上看到的,就直接拿来用吧。如图 (有时候,看到字和我一样丑的牛人时,就会有种原来我不是一个人在战斗的莫名安全感)。

看完这个,好像是懂了一点深度学习的二三事_第1张图片

这张图上,主要其实说的就是目前深度学习的爆发,很大程度上是因为数据的增多。也就是,因为目前我们生活各方面的数字化,还有各种廉价摄像头、传感器等等带给我们的大数据时代。

而数据以外还有就是,深度学习的研究开发速度的增加,首先是因为各种硬件方面计算能力的提升 (超级计算机、GPU、TPU什么的),还有软件方面的算法也加快了训练开发速度。这导致的是一个,从想法到代码再到实验,越来越快的迭代。而现在更是有各种想要让计算机自己训练迭代的研究,这导致的结果无法想象。

看完这个,好像是懂了一点深度学习的二三事_第2张图片

所以,现在我们看到的就是一个不停向前,越滚越快越大的雪球一样,同时它带来着强大的冲击。

深度学习(Deep Learning)与人脑视觉系统

目前,深度学习最主要的一大领域就是,计算机视觉。

所以这里,我们可以试着用人类的视觉系统,来类比一个用于视觉处理的深度学习网络。

看完这个,好像是懂了一点深度学习的二三事_第3张图片

人类的视觉系统,从最初的视网膜接受光信号开始,获得刺激。而视网膜主要是由三种视锥细胞组成,在这里我们可以把每个光信号接受器,当做是一张图片中一个个的像素 (pixel)。然后,这些像素信号向上传递给更高的视觉系统层,这里面如图,在40-60毫秒的时候到达V1层,在这里,这些像素会被组合成最基础的视觉特征,比如说线条、角之类。

之后这些基础特征信号,继续传递给上层视觉系统V2、V4,在那里这些初级的视觉特征被组合成更高级的特征,比如形状、纹理。在这个例子中,初级特征组合成基本部位,比如说眼睛、鼻子、和嘴巴。

最后,这些部位特征再往上到达PIT和AIT层,组合成更加复杂的视觉特征,于是眼睛、嘴、还有鼻子等组合成了一张脸。

接着就是,将这个高级信号传给脑中更高级的决策系统,脑袋中的决策系统根据得到的高级信号作出决策,比如说辨认出是什么东西,如何对其作出反应。

所以,深度网络,特别是卷积网络 (CNN),也可以看做如这里的视觉系统一样,有很多很多层,在浅层捕捉到初级特征,然后随着深度加深,慢慢组合成高级特征,最后传递给决策系统,作出判断和分类。

为什么深度学习更有效

根据之前提过的,通用逼近原理 (Universal Approximation Theorem),单层神经网络理论上就可以模拟所有的连续函数了。

那为什么我们还要深层网络呢?

答案是,用深层结构,我们可以用比单层网络更加简洁的方式来表示某个特定函数。在神经网络中,也就是用更加少的神经元,表示更复杂的函数。

单层网络的话,若想要表示一个更为复杂的函数时,比如复杂的布尔函数,那么我们要增加的神经元个数是指数级的。也就是

而用深层网络的话,在同样情况下,只需要增加多项式级的神经元数量。也就是等式右边变为

而当x越来越大的时候,指数级和多项式级的差也会越来越大,这里指数级要更大。平常大家也喜欢说指数级增长云云。

于是利用深层网络来表示一个复杂函数的时候,我们可以用更少的神经元,也就是更少的参数了。

深度学习一些成功应用

深度学习最先,也是最主要的成功应用是语音识别、计算机视觉,还有自然语言处理这三大快了。

语音识别:

中国在这一块做得很棒,比如说科大讯飞的语音平台,还有阿里/百度的语音识别平台。

看完这个,好像是懂了一点深度学习的二三事_第4张图片

其实如果用过科大讯飞的讯飞输入法或是语记平台的话,是可以体会到它准确的识别能力的。现在最好的系统准确率,已经很接近人了。而且,各大实验室也都还在研究在嘈杂环境下的语音识别,还有就是对各种方言的识别,不管你是操着什么口语都能够识别出来。

计算机视觉:

计算机视觉这方面的应用那就更是数不胜数了。就比如大家都玩得特别嗨的Faceu 激萌这样的应用,以及如Prism这样的图片风格迁移应用,而更加商业级的就如商汤科技的人脸识别,还有各大电商的以图搜图等等。

看完这个,好像是懂了一点深度学习的二三事_第5张图片

其实目前深度学习研究领域,最大的一块应该就是计算机视觉领域了。

自然语言处理:

自然语言处理的话,实际很多还没有做到像上面两个应用那么厉害。也就是说已经接近人, 甚至达到超过人的水平了。

毕竟语言是我们人类,最重要也几乎可以说是独有的一个技能了。

这方面的应用,比如谷歌翻译,还有各种问答系统(Siri,小冰,Alex之类),聊天机器人。

特别是谷歌翻译,中英文翻译真的是做得很厉害了。现在很多时候都是直接用谷歌翻译翻好底稿,然后自己在上面改。再把这个和几年前比比,真的是天壤之别,还记得那个时候大家最喜欢干的就是调戏谷姐了。

还有如果用过最近的谷歌翻译手机应用的话,里面有个结合和视觉处理的,直接在视频里面替换翻译文字的功能,真的是感觉碉堡了。

而各种聊天机器人或是问答系统,大家的体验我也不用说了。相信也能够体验到,还有很多地方做得并不是很好。

你可能感兴趣的:(看完这个,好像是懂了一点深度学习的二三事)