深度学习到底有多深?

线上赌博导航平台大全

  现在搞AI的公司,不管用什么样的算法,都想让自己跟深度学习扯上点关系,因为这样好像显得逼格够高。目前比较前沿的语音交互、计算机视觉等,就连神坛的Alpha Go的算法都是用深度学习。那究竟深度学习是什么?到底有多强大?要怎么实现?本文就跟大家一起讨论下。

  f7e598b7266c1750d4a30d0eb9f8e8f4.jpeg

  在看接下来的内容之前,如果对机器学习还不了解的同学,可以先看下这篇《想入门AI,机器学习你知多少了?》介绍了机器学习的整体框架,机器学习的步骤,深度学习与机器学习的关系,还有比较详细的介绍了为什么会需要人工神经网络。看完以上的文章再来讨论今天的内容可能会更容易理解。

  好了,我们言归正传。

  以下就是我们本次需要谈论的内容:

  73123b5c8bd3f219ad95d468102737b8.jpeg

  01 深度学习一些有趣的应用

  1. Face 2 Face

  Face2Face是斯坦福大学等学生做的一款应用软件,这套系统能够利用人脸捕捉技术,让你说话的声音、表情、动作,投射到视频中的另一个人脸色。

  4df8aae1fac7d889b6226e8eddb7ad4d.jpeg

  如上图所示,左上角是特兰普演讲的视频,左下角是模仿者在说话,经过系统处理后,特兰普的表情和声音就变成了模仿者的表情和声音。(大家可以搜下网上的视频,挺有意思的)

  2. 灵魂画家

  1b5816e841f341f19ffb4f7019a1be84.jpeg

  这个大家可能也见过,就是在原来的图片上,加上了另外一个图片的风格特点。

  如上图所示,一张蒙娜丽莎的画,加上了梵高画的特征,就变成了如右边所示的图片。

  3. AlphaGo

  3ae25e1f5a8b35e8c6dd3fea2f88aca0.jpeg

  这个大家就更熟悉了,2016年3月,AlphaGo与围棋世界冠军棋手李世石进行围棋人机大战,以4比1的总比分获胜。

  通过上面的例子大家可以看到,深度学习的应用非常的广泛,小到很有趣的表情投影,大到围棋人机大战。也就是说深度学习的空间很广,想做一个深度学习的产品也不是我们想象中的那么深奥,但是要想做得特别强大还是会有很多困难的。

  那深度学习究竟是什么,接下来就和大家详细讨论下。

  02 什么才是深度学习?

  在讲深度学习之前,我们先要知道什么是神经网络,而在讲神经网络之前,我们还得先知道什么是神经元。

  1. 神经元

  假设设置函数:Z(x)=W1X1 + W2X2 + W3X3 +…+WnXn + b,(是不是很眼熟,跟我们之前说到的线性方程很相识,不知道这个由来的话,再次建议先看下前面提到的文章)。

  则神经元的表示如下:

  c5721e0c480e701308dba10c1457f403.jpeg

  每一个神经元就是一个逻辑回归算法。什么是逻辑回归算法,可以参考这篇文章《机器学习之逻辑回归》,在此就不展开讲了。

  2. 神经网络

  7c0cf7a46fc21b2f7bef53f5bf1ba9ca.jpeg

  多个神经元相互连接就组成了神经网络,每个神经元都通过接收前一层网络传递来的信息,经过处理后,再传递给下一层。

  按结构来分,神经网络由:输入层、隐藏层和输出层组成。

  输入层:即原始的特征输入。隐藏层:除输入层和输出层外,其他的就是隐藏层。输出层:后面不再接其他神经元。

  3. 深度学习和神经网络的关系

  定义:有多层网络结构的神经网络,我们就说是深度学习。

  那有多少层才算是深度学习呢?

  现在也没有一个官方的定义,有的人说3层,有的人说5层才算深度网络,多的高达上百层,反正大家都说自己是在做深度学习,这样看起来会比较高大尚点。

  模组化:深度学习有一个非常重要的思想就是模组化。

  那什么是模组化思想呢?

  就像我们玩搭积木,一堆积木可以搭成各种各样形状的东西,而深度学习的每一层都是一个组件,可以供其他层灵活调用。

  下面用一个例子说明:

  假设我们要做一个图像识别,区分出4类人群:长头发的女生、短头发的女生、长头发的男生、短头发的男生。

  非模组化的思路:

  74b677da30eba890d52ed9380d40a65c.jpeg

  要设计4个基础的分类器:长发女、短发女、长发男、短发男,然后就需要找4类型这样的图片去训练机器。但现实中的问题可能是长头发的男生会比较少,因此训练出来的效果可能就不是很好。

  模组化的思路:

  b6d6c1fe4fb2262720e671fe286c1b2d.jpeg

  我们可以先训练好两个基础模型:区分男女的分类器、区分长短头发的分类器,这样我们就可以有足够好的数据去训练好这两个分类器。

  然后,在下一层区分长发女、短发女、长发男、短发男的分类器中,我们就可以直接调用前面的模块的输出组合了。

  模组化的好处:

  充分利用数据,比较少的数据就可以训练出比较好的模型。训练时间短,拆分一个模组一个模组的训练的效率要比一坨训练高。灵活调用,训练好一个模组的时候,可以供多个地方共有参数。

  03 深度学习需要怎么做?

  其实这三步跟我们之前讨论的线性回归的差不多,先定义好模型,然后定义出代价函数,最后用数据训练,找出最优的参数。主要的不同点是在第一步,怎么定义网络架构。

  1. 定义网络架构

  输入是什么?输出是什么?选择多少层网络?每一层有多少个神经元?层与层之间要怎么连接的?

  如何选择输入、输出?

  以手写数字辨识为例说明:

  75494662a9fa70fd56abc68a6bffc8c1.jpeg

  假设我们要辨识一张像素是16*16=256的手写数字图片,那每一个像素点就是一个特征变量X,因此输入就是:X1、X2、X3、X4、…、X256。输出就是0-9十个数字的概率,然后根据概率最大是那个数字预测结果。

  上图,分别输出了是数字0-9的概率,而是2的概率最大是0.9,因此机器觉得,这个数字就是2。

  如何选择网络架构?

  最常见的就是全连接,通过训练再逐步把参数为0的剔除掉。再厉害点的话就是,让机器自己去学习然后决定用多少层,怎么去连接。

  97c7a3739345913fb9ceb908757be2d1.jpeg

  实现同一个功能,可能网络架构的选择可以是不一样,没有一个唯一的标准。

  2. 定义什么是最好的(定义代价函数)

  在第一步搭建好神经网络架构之后,接下来要做的事情就是确定最优的参数。

  429df4b103d67a765005b595496f22f1.jpeg

  如上图所示,我们要确定一个模型,就是确定每个神经元红框内这些参数的值。

  我们在模型输入一个数据,就会得到一个预测值,假设预测值与真实值的误差为L,那输入所有训练数据的误差就是:总L=L1 + L2 + L3 + L4 + … + Ln。

  1f1fb2ff82388ba7acbd0d3e3d3e1154.jpeg

  备注:上图的X1不是指单个特征详细,而是指输入的第一张图片,每张图片都有256个特征向量值。

  当总误差最小时(总L最小时),得到的参数就是我们认为最好的参数,因此这就是我们定义什么是最好的。

  3. 找出最优模型(求出最优解)

如上图的曲线,那我们要怎么找到她的最小值呢?

  1da557815504f4cdf7fc3295ea9eec82.jpeg

  求最小值,常见的方法是梯度下降。什么是梯度下降呢?

  类比例子:

  假设你现在在大山的某处,你的目标是要到达山的最低谷处,那你需要做事情有两步:

  根据当前位置,选择一个向低处的方向。根据选择的方向,走一段距离,再停下来选择方向。

  不断的重复以上的两步,最终你可能走到山的最底处。

  这里有两个需要注意的点:

  你根据什么来选择方向?你走多长距离再停下来选择方向?如果你选择的距离很小的话,那可能不知道走到猴年马月你才能走到最低,但是如果你选择的距离很长的话,有可能你走了最低点还不知道。

  那梯度下降也是用同样的思想来找到最小值的,分两步:

  选方向:在误差函数曲线上,随机取一个点,然后求导,根据导数的正负,决定移动的方向。选择步长:学习率的参数决定步长。

  具体梯度下降是怎么实现的,可以参考这篇文章《机器学习之线性回归》,有讲到梯度下降的方法,在此就不展开讲了。

  当然梯度下降只是求解最小值最常用的方法而已,还有其他求最小值的方法,比如:标准函数法等,感兴趣的同学可以去了解下。

  4. 深度学习的典型代表

  在深度学习领域有两个典型的代表:卷积神经网络、循环神经网络。

  卷积神经网络被广泛的应用在计算机视觉领域,比如说强大的AlphaGo就有用到卷积神经网络实现。循环神经网络则被广泛的应用在语音识别处理领域,比如说百度翻译、网络音乐生产等。

  具体卷积神经网络和循环神经网络是什么?具体的结构是怎样的?又是怎么运行的?都应用在哪些产品上?我会写两篇文章分别单独介绍,感兴趣的同学可以持续关注。

  04 深度学习的优缺点和面临的困境

  优点

  深度学习能让计算机自动学习出模式特征,并将特征学习的特征融入到建模的过程中,从而减少了人为设计特征造成的不完备性。而目前有些深度学习,已经达到了超越现有算法的识别或分类性能。

  缺点

  需要大数据支撑,才能达到高精度。由于深度学习中图模型比较复杂,导致算法的时间复杂度急剧提升,需要更好的硬件支持。因此,只有一些经济实力比较强大的科研机构或企业,才能够用深度学习来做一些前沿而实用的应用。

  面临挑战

  Marcus 在 2018 年对深度学习 的作用、局限性和本质进行了重要的回顾。他强烈指出了 DL 方法的局限性即需要更多的数据,容量有限,不能处理层次结构,无法进行开放式推理,不能充分透明,不能与先验知识集成,不能区分因果关系。

  他还提到,DL 假设了一个稳定的世界,以近似方法实现,工程化很困难,并且存在着过度炒作的潜在风险。

  Marcus 认为:DL 需要重新概念化,并在非监督学习、符号操作和混合模型中寻找可能性,从认知科学和心理学中获得见解,并迎接更大胆的挑战。

  好了,关于深度学习的介绍就到此结束了,如有错漏欢迎批评指正。

  本文由