深度网络现代实践 - 深度前馈网络介绍篇

序言

深度前馈网络,作为现代人工智能和机器学习领域中的基石之一,已经广泛应用于图像识别、自然语言处理、推荐系统等多个领域。这种网络结构的核心思想是通过多层的非线性变换,将原始输入数据映射到高层次的特征空间,从而捕获数据的复杂结构和模式。

深度前馈网络之所以如此强大,是因为它具备了一种“逐层抽象”的能力。在每一层中,网络都会学习到数据的某种特征表示,而这些特征表示在更高层次上被进一步组合和抽象,最终形成对原始数据的深层理解。此外,通过反向传播算法和梯度下降等优化方法,深度前馈网络能够在训练过程中自动调整其参数,以最小化预测误差,从而实现高效的学习和泛化。

深度前馈网络

我们简要回顾了深度前馈网络的发展历程,从最初的感知机模型到多层感知机,再到如今的深度神经网络,每一步的进化都极大地推动了人工智能技术的进步。

  • 深度前馈网络(deep feedforward networks)
    • 深度前馈网络(deep feedforward networks),也叫作前馈神经网络(feedforward neural networks)或者多层感知机(multiplayer perception, MLP),是典型的深度学习模型。
    • 前馈网络的目标是近似某个函数 f ∗ f^\ast f。例如,对于分类器, y = f ∗ ( x ) y=f^\ast(\boldsymbol{x}) y=f(x)将输入 x \boldsymbol{x} x映射到一个类别 y y y
    • 前馈网络定义了一个映射 y = f ( x ; θ ) \boldsymbol{y}=f(\boldsymbol{x};\boldsymbol{\theta}) y=f(x;θ),并且学习参数 θ \boldsymbol{\theta} θ的值,使它能够得到最佳的函数近似
  • 循环神经网络(recurrent neural network, RNN)
    • 这种模型被称为前向(feedforward)的,是因为信息流过 x \boldsymbol{x} x的函数,流经用于定义 f f f的中间计算过程,最终达到输出 y \boldsymbol{y} y。在模型的输出和模型本身之间没有反馈(feedback)的连接。当前馈神经网络被扩展成包含反馈连接时,它们被称为循环神经网络(recurrent neural network, RNN)。
  • 前馈网络重要性
    • 前馈网络对于机器学习的从业者是极其重要的。它们是许多重要商业应用的基础。例如,用于对照片中的对象进行识别的卷积神经网络就是一种专门的前馈网络。前馈网络是向循环网络前进中的概念奠基石,后者在自然语言的许多应用中发挥着巨大作用。
  • 前馈神经网络被称为网络(network)是因为它们通常用许多不同函数复合在一起来表示。该模型与一个有向无环图相关联,而图描述了函数是如何复合在一起的。
  • 深度学习由来
    • 例如,我们有三个函数 f ( 1 ) , f ( 2 ) , f ( 3 ) f^{(1)}, f^{(2)}, f^{(3)} f(1),f(2),f(3)连接在一个链上以形成复合函数: f ( x ) = f ( 3 ) ( f ( 2 ) ( f ( 1 ) ( x ) ) ) f(\boldsymbol{x})=f^{(3)}(f^{(2)}(f^{(1)}(\boldsymbol{x}))) f(x)=f(3)(f(2)(f(1)(x)))
    • 这些链式结构是神经网络中最常用的结构。在这种情况下, f ( i ) f^{(i)} f(i)被称为网络的第一层(first layer), f ( 2 ) f^{(2)} f(2)被称为第二层(second layer),依此类推。
    • 链的全长称为模型的深度(depth)。正是因为这个术语才出现了”深度学习“这个名字。
  • 输出层(output layer)
    • 前馈网络的最后一层被称为输出层(output layer)。
    • 在神经网络训练的过程中,我们让 f ( x ) f(\boldsymbol{x}) f(x)去匹配 f ∗ ( x ) f^\ast(\boldsymbol{x}) f(x)的值。
    • 训练数据为我们提供了在不同训练点上取值的、含有噪声的 f ∗ ( x ) f^\ast(\boldsymbol{x}) f(x)的近似实例。
    • 每个样例 x \boldsymbol{x} x都伴随着一个标签 y ≈ f ∗ ( x ) y\approx f^\ast(\boldsymbol{x}) yf(x)
    • 训练样例直接指明了输出层在每一点 x \boldsymbol{x} x上必须做什么;它必须产生一个接近 y y y的值。
    • 但是,训练数据并没有直接指明其他层应该做什么。
    • 学习算法必须决定如何使用这些层来产生想要的输出,但是训练数据并没有说每个单独的层应该做什么。
  • 隐藏层(hidden layer)
    • 相反,学习算法必须决定如何使用这些层来最好地实现 f ∗ f^\ast f的近似。
    • 因为训练数据并没有给出这些层中的每一层所需的输出,所以这些层被称为隐藏层(hidden layer)。
  • 宽度(width)
    • 最后,这些网络被称为神经网络是因为它们或多或少地受到神经科学的启发。
    • 网络中的每个隐藏层通常都是向量值。这些隐藏层的维数决定了模型的宽度(width)。
  • 单元(unit)
    • 向量的每个元素都可以被视为起到类似一个神经元的作用。除了将层想象成向量到向量的单个函数,我们也可以把层想象成由许多并行操作的单元(unit)组成,每个单元表示一个向量到标量的函数
    • 每个单元在某种意义上类似一个神经元,它接收的输入来源于许多其他的单元,并且计算它自己的激活值
    • 使用多层向量值表示的想法来源于神经科学。用于计算这些表示的函数 f ( i ) ( x ) f^{(i)}(\boldsymbol{x}) f(i)(x)的选择,也或多或少受到神经科学观测的指引,这些观测是关于生物神经元计算功能的。
    • 然而,现代的神经网络研究受到更多的是来自许多数学和工程学科的指引,并且神经网络的目标并不是完美地给大脑建模。
    • 我们最好将前馈神经网络想成是为了实现统计泛化而设计出的函数近似机器,它偶尔从我们了解的大脑中提取灵感但是并不是大脑功能的模型。
  • 一种理解前馈网络的方式是从线性模型开始,并考虑如何克服它的局限性。
    • 线性模型,例如逻辑回归和线性回归,是非常吸引人的,因为无论是封闭形式还是使用凸优化,它们都能高效而可靠地拟合。
    • 线性模型也有明显的缺陷,那就是该模型的能力被局限在线性函数里,所以它无法理解任何两个输入变量间的相互作用。
    • 为了扩展线性模型来表示 x \boldsymbol{x} x的非线性函数,我们可以把线性模型不用在 x \boldsymbol{x} x本身,而是用在一个变换后的输入 ϕ ( x ) \phi(\boldsymbol{x}) ϕ(x)上,这里 ϕ \phi ϕ是一个非线性变化。等价地,我们可以用核技巧,来得到一个基于隐含地使用 ϕ \phi ϕ映射的非线性学习算法。
    • 我们可以认为 ϕ \phi ϕ提供了一组描述 x \boldsymbol{x} x的特征,或者认为它提供了 x \boldsymbol{x} x的一个新的表示。
  • 剩下的问题就是如何选择映射 ϕ \phi ϕ
    • 选择1:
      • 其中一种选择是使用一个通用的 ϕ \phi ϕ,例如无限维的 ϕ \phi ϕ,它隐含地用在基于RBF核核机器上。如果 ϕ ( x ) \phi(\boldsymbol{x}) ϕ(x)具有足够高的维数,我们总是有足够的能力来拟合训练集,但是对于测试集的泛化往往不佳。
      • 非常通用的特征映射通常只基于局部平滑的原则,并没有将足够的先验信息进行编码来解决高级问题。
    • 选择2:
      • 另一种选择是手动地设计 ϕ \phi ϕ。在深度学习出现以前,这都是主流的方法。这种方法对于每个单独的任务都需要人们数十年的努力,其中包括不同领域的(如语音识别或计算机视觉)专家以及不同领域间微小的迁移(transfer)。
    • 选择3:
      • 深度学习的策略是去学习 ϕ \phi ϕ。在这种方法中,我们有一个模型 y = f ( x ; θ , w ) = ϕ ( x ; θ ) ⊤ w y=f(\boldsymbol{x};\theta,\boldsymbol{w})=\phi(\boldsymbol{x};\theta)^\top \boldsymbol{w} y=f(x;θ,w)=ϕ(x;θ)w
      • 我们现在有两种参数:
        • 参数 θ \theta θ:用于从一大类函数中学习 ϕ \phi ϕ的参数 θ \theta θ
        • 参数 w \boldsymbol{w} w:用于将 ϕ ( x ) \phi(\boldsymbol{x}) ϕ(x)映射到所需的输出的参数 w \boldsymbol{w} w。这是深度前馈网络的一个例子,其中 ϕ \phi ϕ定义了一个隐藏层。
      • 这是三种方法中唯一一种放弃训练问题的凸性的方法,但是利大于弊。
      • 在这种方法中,我们将表示参数化 ϕ ( x ; θ ) \phi(\boldsymbol{x};\theta) ϕ(x;θ),并且使用优化算法来寻找 θ \theta θ,使它能够得到一个好的表示。
      • 如果我们希望,这种方法也可以通过使它变得高度通用以获得第一种方法的优点 - 我们只需使用一个非常广泛的函数簇 ϕ ( x ; θ ) \phi(\boldsymbol{x};\theta) ϕ(x;θ)即可。
      • 这种方法的优点是人类设计者只需要寻找正确的函数簇即可,而不需要去寻找精确的函数。
  • 这种通过学习特征来改善模型的一般化原则不止适用于前馈神经网络。它是深度学习中反复出现的主题,适用于深度学习中涉及到所有种类的模型。
  • 前馈神经网络是这个原则的应用,它学习从 x \boldsymbol{x} x y y y的确定性映射并且没有反馈连接。后面出现的其他模型会把这些原则应用到学习随机映射、学习带有反馈的函数以及学习单个向量的概率分布。

总结

深度前馈网络以其强大的表达能力和学习能力,在人工智能领域中占据了举足轻重的地位。它不仅解决了许多传统方法难以处理的问题,还推动了相关领域的研究和应用不断向前发展。然而,随着数据量的不断增长和模型复杂度的不断提高,深度前馈网络也面临着诸如过拟合、计算资源消耗大等挑战。因此,未来的研究需要关注如何进一步提高深度前馈网络的性能、效率和可解释性,以更好地服务于人类社会。

往期内容回顾

深度学习之数学概念符号汇总
应用数学与机器学习基础 - 监督学习算法篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绎岚科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值