导航菜单

深度学习到底有多深?

  人人都是产品经理2天前我要分享

 现在参与AI的公司,无论使用何种算法,都希望与深度学习建立关系,因为它似乎足够强大。目前,边疆语音交互,计算机视觉等,甚至坛的AlphaGo算法都是深度学习。那么什么是深度学习?它有多强大?怎么实现呢?本文将与您讨论。

在看下一个内容之前,如果你不熟悉机器学习,你可以看一下《想入门AI,机器学习你知多少了?》 - 介绍机器学习的整体框架,机器学习的步骤,深度学习和机器学习之间的关系,有更详细地描述了为什么需要人工神经网络。阅读上面的文章后,更容易理解今天发生的事情。

好吧,让我们开始做生意吧。

以下是我们现在需要谈论的内容:

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

Face2Face是斯坦福大学等学生制作的应用程序。该系统可以使用面部捕捉技术将您的声音,表情和动作投射到视频中的另一个人的脸上。

如上图所示,左上角是特朗普语音的视频,左下角是模仿者正在讲话,经过系统处理后,特朗普的表情和声音成为模仿者的表情和声音。 (你可以搜索在线视频,非常有趣)

这可能已被所有人看到,即在原始图片中,加上另一张图片的风格特征。

如上图所示,具有梵高绘画特征的蒙娜丽莎绘画成为右图所示的图画。

这对每个人来说都更为熟悉。 2016年3月,AlphaGo和Go世界冠军李世石进行了Go-A人机对战,总比分为4-1。

通过上面的例子,我们可以看到深度学习的应用非常广泛,从小到非常有趣的表达预测,到Go的大型游戏。也就是说,深度学习的空间非常广阔。想要深入学习的产品并不像我们想象的那样深奥,但仍然有很多困难要特别强大。

什么是深度学习,然后我将详细讨论??

02什么是深度学习?

在我们谈论深度学习之前,我们需要知道神经网络是什么。在我们讨论神经网络之前,我们必须知道神经元是什么。

假设设置功能:Z(x)=W1X1 + W2X2 + W3X3 + . + WnXn + b,(它是非常熟悉的,非常熟悉我们之前提到的线性方程,如果你不知道原点,那么它建议先看看上一篇文章)。

然后神经元的表示如下:

每个神经元都是逻辑回归算法。什么是逻辑回归算法,你可以参考这篇文章《机器学习之逻辑回归》,我在这里不再赘述。

多个神经元彼此连接以形成神经网络,并且每个神经元接收从网络的前一层发送的信息,并且在处理之后,传递到下一层。

根据结构,神经网络由输入层,隐藏层和输出层组成。

输入图层:原始要素输入。隐藏层:除输入层和输出层外,另一层是隐藏层。输出层:后面没有连接其他神经元。

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

有多少层可以进行深度学习?

现在没有官方定义。有人说有3层。有人说5楼是一个很深的网络。这个数字高达数百层。无论如何,每个人都说他们正在深入学习,所以看起来更高。仍然。

模块化:深度学习的一个非常重要的概念是模块化。

什么是模块化思维?

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

这是一个例子:

假设我们想要进行图像识别以区分四组人:长发女孩,短发女孩,长发男孩,短发男孩。

非模块化的想法:

要设计四种基本分类器:长发女,短发女,长发男,短发男,那么需要找4种类型的这类图片来训练机器。但真正的问题可能是长发男孩少,所以训练效果可能不太好。

模块化思维:

我们可以首先训练两个基本模型:区分男性和女性分类器,区分长短发的分类器,以便我们可以有足够的良好数据来训练两个分类器。

然后,在下一级分类的长发女,短发女,长发男,短发男,我们可以直接调出以前模块的输出组合。

模块化的好处:

充分利用数据,用较少的数据训练较少的好模型。培训时间短,培训一个模块和一个模块的效率高于一个培训。在训练模块时,灵活调用可用于在多个位置共享参数。 03在深度学习中你需要做什么?

实际上,这三个步骤与我们之前讨论的线性回归类似。首先定义模型,然后定义成本函数,最后使用数据训练找到最优参数。主要区别在于第一步,如何定义网络架构。

输入是什么?什么是输出?你选择了多少层网络?每层有多少神经元?如何连接图层?

如何选择输入和输出?

以手写数字识别为例:

假设我们想要识别像素为16 * 16=256的手写数字图像。每个像素是特征变量X,因此输入为:X1,X2,X3,X4,X256。输出是0-9十位数的概率,然后最大值是基于概率预测的数字。

在上图中,输出数字0-9的概率,但2的概率为0.9,因此机器认为该数字为2.

如何选择网络架构?

最常见的是完整连接,参数通过训练归零。更强大的是让机器自己学习并决定使用多少层,如何连接。

要实现相同的功能,网络架构的选择可能不同,没有单一的标准。

在第一步构建神经网络架构之后,接下来要做的是确定最佳参数。

如上图所示,我们需要确定一个模型,该模型在每个神经元的红色框中确定这些参数的值。

当我们在模型中输入数据时,我们得到预测值。如果预测值和真值之间的误差是L,那么所有训练数据的误差是:L=L1 + L2 + L3 + L4 + . + Ln。

注意:上图中的X1并不是指单个功能细节,而是指输入的第一张图片,每张图片都有256个特征矢量值。

当总误差最小时(当总L最小时),得到的参数是我们认为最好的,所以这是我们定义为最好的。

假设我们的总误差是如上所示的曲线,我们如何找到她的最小值?

要找到最小值,常用方法是删除渐变。什么是梯度下降?

比例子类:

假设你在山区的某个地方,你的目标是到达山的最低谷。您需要执行两个步骤:

根据当前位置选择下方位置的方向。根据选择的方向,采取距离并停下来选择方向。

重复以上两个步骤。最后你可以去山脚下。

以下两点需要注意:

你选择遵循什么?你需要多长时间停下来选择方向?如果您选择的距离很小,您可能不知道您可以进入猴年的最低级别,但如果您选择长距离,则可能已经到了最低点。

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

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

如何实现特定的梯度下降,你可以参考这篇文章《机器学习之线性回归》,有一种渐变下降的方法,我在这里就不说了。

当然,梯度下降只是解决最小值的最常用方法。还有其他方法可以找到最小值,例如标准函数方法。有兴趣的学生可以了解它。

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

卷积神经网络广泛用于计算机视觉领域。例如,强大的AlphaGo对卷积神经网络很有用。循环神经网络广泛应用于语音识别处理领域,如百度翻译,在线音乐制作等。

什么是特定的卷积神经网络和循环神经网络?具体结构是什么?它是如何运行的?它们适用于哪些产品?我将分别写两篇文章,感兴趣的学生可以继续关注。

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

深度学习允许计算机自动学习模式特征并将特征学习的特征结合到建模过程中,从而减少由人工设计特征引起的不完整性。目前,一些深度学习已达到超越现有算法的识别或分类性能。

需要高数据支持才能实现高精度。由于深度学习中图模型的复杂性,算法的时间复杂度大大提高,需要更好的硬件支持。因此,只有一些科研机构或经济实力雄厚的企业才能利用深度学习做一些前沿和实际的应用。

马库斯在2018年对深度学习的作用,局限性和性质做了重要回顾。他强烈指出了DL方法的局限性 - 即它需要更多数据,能力有限,无法处理层次结构,无法执行开放推理,不能完全透明,不能与先验知识相结合,也无法区分因果关系。

他还提到DL假设一个稳定的世界,以近似的方式实施,难以设计,并且存在过度炒作的潜在风险。

马库斯认为DL需要重新概念化,寻找无监督学习,符号操作和混合模型的可能性,从认知科学和心理学中获得洞察力,并应对更大胆的挑战。

那么,深度学习的介绍就结束了。如果有任何错误,欢迎批评。

本文最初由