返回介绍

8.4 了解深度学习

发布于 2024-01-26 22:17:32 字数 3396 浏览 0 评论 0 收藏 0

虽然视觉词包方法的表现令人印象深刻,但是最近,利用所谓深度学习的新方法已然出现。深度学习为人工智能领域带来了新的生机,因为它不断地在提升我们的基准线。本章稍后,我们将在图像相似度引擎中使用深度学习,不过,首先我们将介绍究竟什么是深度学习,以及为什么它是如此重要的突破。

深度学习源于已经存在了几十年的算法。这些算法,称为感知器,对人类大脑中的神经元进行建模。

在参加生物学课程时,你可能已经学习过神经元是如何工作的。基本的信息如下。

· 每个神经元连接到其他神经元组成的网络。

· 当神经元激发时,它将信号发送到和它连接的神经元。

· 接收这个信号的神经元,根据一些已建立的激活阈值,或者激发,或者不激发。

这是感知模型的基础,如图8-17所示。

图8-17

我们可以将神经元视为一个单独的决策单元。假设神经元的任务是决定我们是否应该接受一个新的工作机会。在这个场景中,我们的相关输入可能是工作地点、薪酬、对未来经理的印象,以及办公室环境等。这种情况下,我们有一个二元决策:1,接受这份工作,或0,不接受。每一项输入都帮助我们确定是否接受该工作,但是,很显然,它们不会具有同样的影响力。例如,如果办公室是10分中的满分,但工资只能拿到10分中的2分,我们很可能拒绝这个机会。反之,如果办公室是10分中的2分,而工资是10分中的满分,我们很可能会接受它。因此,在决策过程中,薪酬比办公室的环境更重要。在感知器的语言中,我们会说薪酬这个输入的权重更高。对所有的输入—— x变量——修改它们的权重—— w变量,我们将获得一个值,它会触发或不触发我们的函数。

从数学上来讲,我们有图8-18的公式。

图8-18

到目前为止,我们已经讨论了感知器如何担当一个决策单元,但是还没有讨论学习是如何进行的。

为了理解学习的过程,让我们试着用感知器学习一些决策规则。

我们要学习的第一条规则称为AND函数。AND函数是像这样工作的:有两个输入,当两个输入都为正时,我们希望函数输出1。如果一个输入是负的,或者两个都是负的,我们希望它输出0。我们将权重设置为0到1之间的随机数。

让我们开始学习的过程。这里X1的输入等于1,X2的输入等于−1。W1被随机设为0.8,W2被随机设为0.2。因为两者都必须是正的,输出才为1,所以阈值是大于1的任何值。

因此,我们有W1×X1+W2×X2为1×0.8+-1×0.4=0.8-0.4=0.4。现在,因为我们期望输出为0,所以说误差为0.4。现在我们将尝试改进模型,将这些错误推回到输入,让其更新权重。为此,我们将使用图8-19的公式轮流进行评估。

图8-19

这里,wi是第i个输入的权重,t是目标结果,o是实际结果。其中,我们的目标结果是0,实际结果是0.4。现在忽略n项。它是学习率,决定了更新幅度应该有多大或多小。现在,我们假设它被设置为1。

让我们看看x1如何更新它的重量。因此,我们有1×(0-0.4)×1,它等于-0.4。这是w的差值,因此,更新公式1,我们有0.8-0.4,这给出了w1的新权重为0.4。因此,x1的权重下降。那么x2的权重又如何?

让我们来看看。这个是1×(0-0.4)×(-1),等于0.4。然后,我们获得了0.2+0.4=0.6,以此来更新w2。从此可以看到,两个权重相互接近了,这正是我们所希望的。如果给定一个足够小的学习率,然后继续运行这个过程,那么模型就会收敛,我们就将学会AND函数。

虽然这个模型看上去极其简单——没错,它也有明显的局限性(例如,无法学习XOR函数)——但它是当今深度学习框架的基石。人们对这种模型进行渐进的创新,提高了其学习复杂表达的能力,包括结合S形函数代替阶梯函数、堆叠神经元形成分层网络,以及更好的方法来向下层分配错误。

总之,这些更新使得模型不仅可以学习非线性表示(学习XOR函数所必需的),还可以学习任何其他模式。通过堆叠多层的神经元—— 一层的输出作为另一层的输入——每个更高的层次都能够识别更复杂的数据表示。

在图8-20中,我们看到了这个过程在人脸识别任务中是如何进行的。

图8-20

图8-20中从左到右,我们可以在深度学习网络的每个隐藏层中,追踪不断增加的表达复杂性。

在图8-21中,我们看到的网络只有一个隐藏层,不过,拥有多个隐藏层是常规的实践做法,而它也是深度学习这一术语的来源。

我们可以认为这就像盲人摸象的比喻。

“感受到一条腿的盲人说大象就像一根柱子;感受到尾巴的那个人说大象就像一条绳子;感受到躯干的那个人说大象就像一棵树;感受到耳朵的那个人说大象就像一把扇子;感受到肚子的那个人说大象就像一面墙;感受到象牙的那个人说大象就像实心管。”

——维基百科。

图8-21

没有一个人能够纵览全局,仅仅通过片面的观察,他们无法正确地说出正在评估的是什么。但是,将同样的属性结合起来,反复观察,再加上被告知它是头大象,那么下一次遇见柱子 + 绳子 + 树干 + 扇子 + 墙 + 实心管的组合,我们可能认为它就是一头大象。

现在我们对深度学习有了更好的理解,下面将继续使用深度学习来创建应用程序。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文