1. 理想的网络结构必须根据具体任务反复试验,并评估验证集的误差来得到。

    2. 大多数神经网络被组织成以层为单位,然后层级之间为链式结构。每一层都是前一层的函数,如:第一层为 、第二层为 五、结构设计 - 图1、…

    3. 链式结构中,主要的结构考虑是:网络的深度(一共多少层)、每一层的宽度(每一层的输出向量的维数)。

      • 即使只有一层隐层的网络也能够适应训练集。
      • 对于更深层的网络,每一层可以使用少得多的单元和参数,并且对于测试集的泛化性能更好。
    1. 通用近似定理 表明:

      对于一个具有线性输出层,和至少一层具有任何一种“挤压”性质的激活函数(如sigmoid激活函数)的隐层的深度前馈神经网络,只要给予网络足够数量的隐单元,它可以以任意精度来近似任何一个从有限维空间到有限维空间的可测函数。前馈神经网络的导数也可以以任意精度来逼近被近似函数的导数。

      • 定义在 的有界闭集上的任意连续函数是 Borel可测的,因此可以用神经网络来近似。
      • 虽然原始定理要求特殊的激活函数(该激活函数要求:当自变量的绝对值非常大时,函数饱和),但是后来证明通用近似定理也适用于更广泛的激活函数,其中包括常用的修正线性单元。
    2. 通用近似定理表明:无论试图学习什么样的函数,一个很大的深度前馈网络一定能够表示这个函数。

      实际上不能保证训练算法能够学得这个函数,学习可能因为两个不同的原因而失败:

      • 用于训练的优化算法可能找不到合适的参数值来逼近该函数,即:优化算法缩小了模型的有效容量,使得该函数不在有效的解空间内。
      • 训练算法可能由于过拟合而选择了错误的函数。
    3. 通用近似定理说明了存在一个足够大的网络能够以任意精度逼近任意函数,但是定理并没有说这个网络有多大。最坏的情况下可能需要指数级的隐单元。

      • 使用更深的深度前馈网络可以减少所需的单元的数量,并且减少泛化误差。

      • 很多情况下,浅层模型所需的隐单元的数量是输入向量的维数 五、结构设计 - 图2 的指数级。

    4. 修正线性网络(激活函数都是 函数)描述的线性区域的数量为输入向量维数 的指数级,也是网络深度 五、结构设计 - 图3 的指数级。

    5.2 网络结构

    1. 任何时候当选择一个特定的机器学习算法时,隐含地给定了一个先验知识:算法应该学得什么样的函数。

      选择深度模型则给定了一个先验知识:待学的函数应该是几个更加简单的函数的组合。这意味着:待学习的问题包含一组潜在的因子,这些因子可以根据更简单的潜在因子描述。

    2. 前面介绍的前馈神经网络都是简单的以层为单位的链式结构,主要考虑网络的深度和每层的宽度。实践中的神经网络具有相当的多样性。

      • 卷积神经网络是另一种特殊的结构。

      • 有时候,层不需要位于链中。

        有的神经网络构(如ResNet )建了一条主链,然后又添加了额外的结构。如从层 连接到层 五、结构设计 - 图4 ,这使得梯度更容易地从输出层流向输入端。

    3. 除了深度与每一层的宽度之外,结构设计考虑的另一个因素是:如何将层与层之间连接起来。

      • 默认的神经网络使用矩阵 给出的线性变换来描述层之间的连接。此时对于本层的每一个单元,其输入为上一层的所有输出。
      • 某些特殊的网络使用更少的连接,上一层的输出只是连接到本层的部分单元。这种策略减少了参数的数量,但是依赖于具体问题。
      • 很难对于通用的神经网络结构给出有效的建议。通常会给出一些特殊的结构,可以在不同的领域工作良好。如: 在图像识别领域工作很好。