这篇文章是我将为 Parallel Forall 撰写的系列文章中的第一篇,该系列文章旨在为 深度学习 提供一个直观而温和的介绍。它涵盖了最重要的深度学习概念,旨在提供对每个概念的理解,而不是其数学和理论细节。虽然数学术语有时是必要的,并且可以进一步理解,但这些文章尽可能使用类比和图像来提供易于理解的信息,包括对深度学习领域的直观概述。
我以术语表的风格编写了这个系列,因此它也可以作为深入学习概念的参考。
第一部分主要介绍深度学习的主要概念。 第二部分 提供历史背景,并深入研究用于深度学习培训的培训程序、算法和实用技巧。 第三部分 涵盖了序列学习,包括递归神经网络、 LSTMs 和用于神经机器翻译的编解码器系统。 第四部分 涵盖强化学习。
核心概念机器学习在机器学习中,我们( 1 )获取一些数据,( 2 )根据这些数据训练一个模型,( 3 )使用训练的模型对新数据进行预测。 训练 一个模型的过程可以看作是一个学习过程,在这个过程中,模型一步一步地暴露在新的、不熟悉的数据中。在每一步中,模型都会做出预测,并得到关于其生成的预测有多精确的反馈。这种反馈是根据某种度量(例如距正确解的距离)提供的误差,用于校正预测中的误差。
学习过程通常是参数空间中来回的游戏:如果你调整模型的一个参数以获得正确的预测,那么模型可能会因此得到之前正确的预测错误。训练一个具有良好预测性能的模型可能需要多次迭代。这个迭代的预测和调整过程一直持续到模型的预测不再改善为止。
特征工程特征工程是从数据中提取有用模式的艺术,这将使 机器学习 模型更容易区分类。例如,你可以用绿色像素和蓝色像素的数量作为一个指标,来判断某张图片中是陆地动物还是水生动物。这个特性对机器学习模型很有帮助,因为它限制了要进行良好分类所需考虑的类的数量。
当你想在大多数预测任务中获得好的结果时,特征工程是最重要的技能。然而,由于不同的数据集和不同的数据类型需要不同的特征工程方法,因此很难学习和掌握。艺术不仅仅是一门粗糙的科学,更是一门科学。可用于一个数据集的特征通常不适用于其他数据集(例如,下一个图像数据集仅包含陆地动物)。特征工程的难度和所涉及的工作量是寻找能够学习特征的算法的主要原因,即自动生成特征的算法。
虽然许多任务可以通过特征学习(如对象和语音识别)实现自动化,但特征工程仍然是 在困难的任务中最有效的方法 (就像 Kaggle 机器学习竞赛中的大多数任务一样)。
特征学习特征学习算法可以找到对区分类很重要的共同模式,并自动提取它们以用于分类或回归过程。特征学习可以被认为是由算法自动完成的 特征工程 。在深度学习中,卷积层特别擅长于在图像中找到好的特征到下一层,从而形成一个非线性特征的层次结构,这些特征的复杂性不断增加(例如,斑点、边缘 – >鼻子、眼睛、脸颊 – >面部)。最后一层使用所有这些生成的特征进行分类或回归(卷积网络中的最后一层本质上是多项式 逻辑回归 )。
图 1 :从深度学习算法中学习的层次特征。每个特征都可以看作是一个过滤器,它过滤输入图像的特征(鼻子)。如果找到了特征,负责的单元会产生大量的激活,这些激活可以被后面的分类器阶段提取出来,作为类存在的良好指示器。图片由 Honglak Lee 和同事( 2011 年)发表在“用卷积深信念网络进行分层表征的无监督学习”。
图 1 显示了由深度学习算法生成的特性,该算法可以生成易于解释的特性。这很不寻常。特征通常很难解释,尤其是在像 循环神经网络 和 LSTM 这样的深层网络或非常深的卷积网络中。
深度学习在分层 特征学习 中,我们提取多层非线性特征并将其传递给一个分类器,该分类器将所有特征组合起来进行预测。我们感兴趣的是将这些非常深层次的非线性特征叠加起来,因为我们无法从几层中学习复杂的特性。从数学上可以看出,对于图像来说,单个图层的最佳特征是边缘和斑点,因为它们包含了我们可以从单个非线性变换中提取的大部分信息。为了生成包含