吴恩达-deep learning 01.神经网络与深度学习Week4

Week4:深层神经网络(Deep Neural Networks)

4.1 深层神经网络(Deep L-layer neural network)

  1. 定义
    深层神经网络其实就是包含更多的隐藏层神经网络。
    在这里插入图片描述
    上图分别列举了逻辑回归、1个隐藏层的神经网络、2个隐藏层的神经网络和5个隐藏层的神经网络它们的模型结构。
    • 命名规则:一般只参考隐藏层个数输出层如果是L-layer NN,则包含了L-1个隐藏层,最后的L层是输出层。

      上图中的逻辑回归又叫1 layer NN,1个隐藏层的神经网络叫做2 layer NN,2个隐藏层的神经网络叫做3 layer NN,以此类推。

    • 为什么要深度神经网络:但是在过去的几年中,DLI(深度学习学院 deep learning institute)意识到有一些函数,只有非常深的神经网络能学会,而浅的模型效果不好。

      对于任何给定的问题很难提前预测到底需要多深的神经网络,所以:
      1.先去尝试逻辑回归,尝试一层然后两层隐含层;
      2. 然后把隐含层的数量看做是另一个可以自由选择大小的超参数;
      3. 最后再保留交叉验证数据上评估,或者用你的开发集来评估。

  2. 深度学习的符号定义
    以四层神经网络为例:在这里插入图片描述
    • 层数:用 L L L表示,上图 L = 4 L=4 L=4,输入层是第 0 0 0层,输出层是第 L L L层。
    • l l l层的隐藏单元:用 n [ l ] , l = 0 , 1 , ⋯   , L n^{[l]},l=0,1,\cdots,L n[l]l=0,1,,L表示第 l l l层包含的单元个数。
      • 这个模型中, n [ 0 ] = n x = 3 n^{[0]}=n_x=3 n[0]=nx=3,表示三个输入特征 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3
      • n [ 1 ] = 5 , n [ 2 ] = 5 , n [ 3 ] = 3 , n [ 4 ] = n [ L ] = 1 n^{[1]}=5,n^{[2]}=5,n^{[3]}=3,n^{[4]}=n^{[L]}=1 n[1]=5n[2]=5n[3]=3n[4]=n[L]=1
    • l l l层的激活函数的结果:用 a [ l ] a^{[l]} a[l]表示, a [ l ] = g [ l ] ( z [ l ] ) a^{[l]}=g^{[l]}(z^{[l]}) a[l]=g[l](z[l])
    • l l l层的权重:用 W [ l ] W^{[l]} W[l]表示,用于计算 z [ l ] z^{[l]} z[l]
    • 输入 x x x记为 a [ 0 ] a^{[0]} a[0],把输出层 y ^ \hat y y^记为 a [ L ] a^{[L]} a[L]

    注意, a [ l ] a^{[l]} a[l] W [ l ] W^{[l]} W[l]中的上标l都是从 1 1 1开始的, l = 1 , ⋯   , L l=1,\cdots,L l=1,,L


4.2 深层网络中的前向传播(Forward propagation in a Deep Network)

  1. 单个样本
    以上面4层神经网络为例,对于单个样本,推导深层神经网络的正向传播过程:
    • 第1层( l = 1 l=1 l=1):
      z [ 1 ] = W [ 1 ] x + b [ 1 ] = W [ 1 ] a [ 0 ] + b [ 1 ] a [ 1 ] = g [ 1 ] ( z [ 1 ] ) \begin{array}{l}z^{[1]}=W^{[1]}x+b^{[1]}=W^{[1]}a^{[0]}+b^{[1]}\\ a^{[1]}=g^{[1]}(z^{[1]})\end{array} z[1]=W[1]x+b[1]=W[1]a[0]+b[1]a[1]=g[1](z[1])
    • 第2层( l = 2 l=2 l=2):
      z [ 2 ] = W [ 2 ] a [ 1 ] + b [ 2 ] a [ 2 ] = g [ 2 ] ( z [ 2 ] ) \begin{array}{l}z^{[2]}=W^{[2]}a^{[1]}+b^{[2]}\\ a^{[2]}=g^{[2]}(z^{[2]})\end{array} z[2]=W[2]a[1]+b[2]a[2]=g[2](z[2])
    • 第3层( l = 3 l=3 l=3):
      z [ 3 ] = W [ 3 ] a [ 2 ] + b [ 3 ] a [ 3 ] = g [ 3 ] ( z [ 3 ] ) \begin{array}{l}z^{[3]}=W^{[3]}a^{[2]}+b^{[3]}\\ a^{[3]}=g^{[3]}(z^{[3]})\end{array} z[3]=W[3]a[2]+b[3]a[3]=g[3](z[3])
    • 第4层( l = 4 l=4 l=4):
      z [ 4 ] = W [ 4 ] a [ 3 ] + b [ 4 ] a [ 4 ] = g [ 4 ] ( z [ 4 ] ) \begin{array}{l}z^{[4]}=W^{[4]}a^{[3]}+b^{[4]}\\ a^{[4]}=g^{[4]}(z^{[4]})\end{array} z[4]=W[4]a[3]+b[4]a[4]=g[4](z[4])
  2. m m m个训练样本
    对于 m m m个训练样本,其向量化矩阵形式为:
    • 第1层( l = 1 l=1 l=1):
      Z [ 1 ] = W [ 1 ] X + b [ 1 ] = W [ 1 ] A [ 0 ] + b [ 1 ] A [ 1 ] = g [ 1 ] ( Z [ 1 ] ) \begin{array}{l}Z^{[1]}=W^{[1]}X+b^{[1]}=W^{[1]}A^{[0]}+b^{[1]}\\ A^{[1]}=g^{[1]}(Z^{[1]})\end{array} Z[1]=W[1]X+b[1]=W[1]A[0]+b[1]A[1]=g[1](Z[1])
    • 第2层( l = 2 l=2 l=2):
      Z [ 2 ] = W [ 2 ] A [ 1 ] + b [ 2 ] A [ 2 ] = g [ 2 ] ( Z [ 2 ] ) \begin{array}{l}Z^{[2]}=W^{[2]}A^{[1]}+b^{[2]}\\ A^{[2]}=g^{[2]}(Z^{[2]})\end{array} Z[2]=W[2]A[1]+b[2]A[2]=g[2](Z[2])
    • 第3层( l = 3 l=3 l=3):
      Z [ 3 ] = W [ 3 ] A [ 2 ] + b [ 3 ] A [ 3 ] = g [ 3 ] ( Z [ 3 ] ) \begin{array}{l}Z^{[3]}=W^{[3]}A^{[2]}+b^{[3]}\\ A^{[3]}=g^{[3]}(Z^{[3]})\end{array} Z[3]=W[3]A[2]+b[3]A[3]=g[3](Z[3])
    • 第4层( l = 4 l=4 l=4):
      Z [ 4 ] = W [ 4 ] A [ 3 ] + b [ 4 ] A [ 4 ] = g [ 4 ] ( Z [ 4 ] ) \begin{array}{l}Z^{[4]}=W^{[4]}A^{[3]}+b^{[4]}\\ A^{[4]}=g^{[4]}(Z^{[4]})\end{array} Z[4]=W[4]A[3]+b[4]A[4]=g[4](Z[4])
  3. 小总结
    对于第 l l l层,其正向传播过程的 Z [ l ] Z^{[l]} Z[l] A [ l ] A^{[l]} A[l]可以表示为:
    Z [ l ] = W [ l ] A [ l − 1 ] + b [ l ] A [ l ] = g [ l ] ( Z [ l ] ) \begin{array}{l}Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]}\\ A^{[l]}=g^{[l]}(Z^{[l]})\end{array} Z[l]=W[l]A[l1]+b[l]A[l]=g[l](Z[l])
    其中 l = 1 , ⋯   , L l=1,\cdots,L l=1,,L

4.3 核对矩阵的维数(Getting your matrix dimensions right)

当实现深度神经网络的时候,检查代码是否有错的方法:拿出一张纸核对一遍算法中 矩 阵 的 维 数 \color{red}矩阵的维数

  1. 单个训练样本
    对于单个训练样本,输入 x x x的维度是 ( n [ 0 ] , 1 ) (n^{[0]},1) (n[0],1)神经网络的参数:
    • 正向传播
      • W [ l ] W^{[l]} W[l] b [ l ] b^{[l]} b[l]的维度分别是:
        W [ l ] :   ( n [ l ] , n [ l − 1 ] ) b [ l ] :   ( n [ l ] , 1 ) \begin{array}{l}W^{[l]}:\ (n^{[l]},n^{[l-1]})\\ b^{[l]}:\ (n^{[l]},1)\end{array} W[l]: (n[l],n[l1])b[l]: (n[l],1)
        其中, l = 1 , ⋯   , L l=1,\cdots,L l=1,,L n [ l ] n^{[l]} n[l] n [ l − 1 ] n^{[l-1]} n[l1]分别表示第 l l l层和 l − 1 l-1 l1层的所含单元个数。
      • n [ 0 ] = n x n^{[0]}=n_x n[0]=nx,表示输入层特征数目。
    • 反向传播
      • d W [ l ] dW^{[l]} dW[l] d b [ l ] db^{[l]} db[l]的维度分别是:
        d W [ l ] :   ( n [ l ] , n [ l − 1 ] ) d b [ l ] :   ( n [ l ] , 1 ) \begin{array}{l}dW^{[l]}:\ (n^{[l]},n^{[l-1]})\\ db^{[l]}:\ (n^{[l]},1)\end{array} dW[l]: (n[l],n[l1])db[l]: (n[l],1)

        注意: W [ l ] \color{red}W^{[l]} W[l] d W [ l ] \color{red}dW^{[l]} dW[l]维度 相 同 \color{red}相同 b [ l ] \color{red}b^{[l]} b[l] d b [ l ] \color{red}db^{[l]} db[l]维度 相 同 \color{red}相同

      • z [ l ] z^{[l]} z[l] a [ l ] a^{[l]} a[l]的维度分别是:
        z [ l ] :   ( n [ l ] , 1 ) a [ l ] :   ( n [ l ] , 1 ) \begin{array}{l}z^{[l]}:\ (n^{[l]},1)\\ a^{[l]}:\ (n^{[l]},1)\end{array} z[l]: (n[l],1)a[l]: (n[l],1)
        1. z [ l ] \color{red}z^{[l]} z[l] a [ l ] \color{red}a^{[l]} a[l]的维度 相 同 \color{red}相同
        2. d z [ l ] \color{red}dz^{[l]} dz[l] d a [ l ] \color{red}da^{[l]} da[l]的维度均与 z [ l ] \color{red}z^{[l]} z[l] a [ l ] \color{red}a^{[l]} a[l]的维度 相 同 \color{red}相同
  2. m m m个训练样本
    对于 m m m个训练样本,输入矩阵X的维度是 ( n [ 0 ] , m ) (n^{[0]},m) (n[0],m)
    • W [ l ] W^{[l]} W[l] b [ l ] b^{[l]} b[l]的维度与单个样本的维度 相 同 \color{red}相同
      W [ l ] :   ( n [ l ] , n [ l − 1 ] ) b [ l ] :   ( n [ l ] , 1 ) \begin{array}{l}W^{[l]}:\ (n^{[l]},n^{[l-1]})\\ b^{[l]}:\ (n^{[l]},1)\end{array} W[l]: (n[l],n[l1])b[l]: (n[l],1)
      • 在运算 Z [ l ] = W [ l ] A [ l − 1 ] + b [ l ] Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]} Z[l]=W[l]A[l1]+b[l]中, b [ l ] b^{[l]} b[l]会被当成 ( n [ l ] , m ) (n^{[l]},m) (n[l],m)矩阵进行运算(python的广播),且 b [ l ] b^{[l]} b[l]每一列向量都是一样的。

      注: d W [ l ] \color{red}dW^{[l]} dW[l] d b [ l ] \color{red}db^{[l]} db[l]的维度分别与 W [ l ] \color{red}W^{[l]} W[l] b [ l ] \color{red}b^{[l]} b[l] 相 同 \color{red}相同

    • Z [ l ] Z^{[l]} Z[l] A [ l ] A^{[l]} A[l]的维度与单个样本的维度不同:
      Z [ l ] :   ( n [ l ] , m ) A [ l ] :   ( n [ l ] , m ) \begin{array}{l}Z^{[l]}:\ (n^{[l]},m)\\ A^{[l]}:\ (n^{[l]},m)\end{array} Z[l]: (n[l],m)A[l]: (n[l],m)

      注: d Z [ l ] \color{red}dZ^{[l]} dZ[l] d A [ l ] \color{red}dA^{[l]} dA[l]的维度分别与 Z [ l ] \color{red}Z^{[l]} Z[l] A [ l ] \color{red}A^{[l]} A[l] 相 同 \color{red}相同

在做深度神经网络的反向传播时,一定要确认所有的矩阵维数是前后一致的!!!!


4.4 为什么使用深层表示?(Why deep representations?)

深度神经网络能解决好多问题,并不需要很大的神经网络,但是得有深度,得有比较多的隐藏层,这是为什么呢?

  1. 特征复杂(认知科学)的角度
    • 例子:人脸识别
      在这里插入图片描述
      假设有四层神经网络,经过训练:

      • 神经网络第一层是从原始图片中提取出人脸的轮廓与边缘,即边缘检测。这样每个神经元得到的是一些边缘信息。
      • 神经网络第二层是将前一层的边缘进行组合,组合成人脸一些局部特征,比如眼睛、鼻子、嘴巴等。
      • 神经网络第三层是将这些局部特征组合起来,融合成人脸的模样。

      可以看出:随着层数由浅到深,神经网络提取的特征也是从边缘到局部特征到整体,由简单到复杂。 可见,如果隐藏层足够多,那么能够提取的特征就越丰富、越复杂,模型的准确率就会越高。

    • 例子:语音识别

      • 浅层的神经元能够检测一些简单的音调;
      • 较深的神经元能够检测出基本的音素;
      • 更深的神经元就能够检测出单词信息。
      • 如果网络够深,还能对短语、句子进行检测。

总 结 \color{red}总结

  • 神经网络从左到右,神经元提取的特征从简单到复杂。
  • 特征复杂度与神经网络层数正相关。
  • 特征越来越复杂,功能也越来越强大。
  1. 计算量(电路理论) 的角度
    计算逻辑输出:
    y = x 1 ⊕ x 2 ⊕ x 3 ⊕ ⋯ ⊕ x n y=x_1\oplus x_2\oplus x_3\oplus\cdots\oplus x_n y=x1x2x3xn
    其中, ⊕ \oplus 表示异或操作。对于这个逻辑运算。用下图两种方法:
    在这里插入图片描述

    • 左图:深度网络,深度网络的结构是每层将前一层的两两单元进行异或,最后到一个输出。这样,整个深度网络的层数是 l o g 2 ( n ) log_2(n) log2(n),不包含输入层。总共使用的神经元个数为:
      1 + 2 + ⋯ + 2 l o g 2 ( n ) − 1 = 1 ⋅ 1 − 2 l o g 2 ( n ) 1 − 2 = 2 l o g 2 ( n ) − 1 = n − 1 1+2+\cdots+2^{log_2(n)-1}=1\cdot\frac{1-2^{log_2(n)}}{1-2}=2^{log_2(n)}-1=n-1 1+2++2log2(n)1=11212log2(n)=2log2(n)1=n1
      可见,输入个数是 n n n,这种深层网络所需的神经元个数仅仅是 n − 1 n-1 n1个。

    • 右图:单个隐藏层,那么需要的神经元个数将是指数级别那么大。由于包含了所有的逻辑位(0和1),则需要 2 n − 1 2^{n}-1 2n1个神经元。也就是 O ( 2 n ) O(2^{n}) O(2n)

    比较下来,处理同一逻辑问题,深层网络所需的神经元个数比浅层网络要少很多。这也是深层神经网络的优点之一。

尽管深度学习有着非常显著的优势,对实际问题进行建模时,尽量先选择层数少的神经网络模型,这也符合奥卡姆剃刀定律(Occam’s Razor)。对于比较复杂的问题,再使用较深的神经网络模型。


4.5 搭建神经网络块(Building blocks of deep neural networks)

本节用流程块图来解释神经网络正向传播和反向传播过程。

  1. 对于第 l l l层的流程快
    在这里插入图片描述

    • 正向传播
      • 输入: a [ l − 1 ] a^{[l-1]} a[l1]
      • 输出: a [ l ] a^{[l]} a[l]
      • 参数: W [ l ] , b [ l ] W^{[l]},b^{[l]} W[l],b[l]
      • 缓存变量: z [ l ] z^{[l]} z[l]
    • 反向传播
      • 输入: d a [ l ] da^{[l]} da[l]
      • 输出: d a [ l − 1 ] , d W [ l ] , d b [ l ] da^{[l-1]},dW^{[l]},db^{[l]} da[l1],dW[l],db[l]
      • 参数: W [ l ] , b [ l ] , d z [ l ] W^{[l]},b^{[l]},dz^{[l]} W[l],b[l],dz[l]
      • 缓存变量: d W [ l ] , d b [ l ] dW^{[l]},db^{[l]} dW[l],db[l]
  2. 神经网络整体的流程块图

    • 正向传播(单个样本)
      z [ l ] = W [ l ] ⋅ a [ l − 1 ] + b [ l ] a [ l ] = g [ l ] ( z [ l ] )      l = 0 , . . , L \begin{array}{l}{z}^{[l]}={W}^{[l]}\cdot {a}^{[l-1]}+{b}^{[l]}\\ {a}^{[l]}={g}^{[l]}({z}^{[l]})\;\; l=0,..,L\end{array} z[l]=W[l]a[l1]+b[l]a[l]=g[l](z[l])l=0,..,L
    • 反向传播(单个样本)
      d z [ l ] = d a [ l ] ∗ g [ l ] ′ ( z [ l ] ) d w [ l ] = d z [ l ] ⋅ a [ l − 1 ] d b [ l ] = d z [ l ] d a [ l − 1 ] = w [ l ] T ⋅ d z [ l ] d z [ l ] = w [ l + 1 ] T d z [ l + 1 ] ⋅   g [ l ] ′ ( z [ l ] ) \begin{array}{l}d{{z}^{[l]}}=d{{a}^{[l]}}*{{g}^{[l]}}'( {{z}^{[l]}})\\ d{{w}^{[l]}}=d{{z}^{[l]}}\cdot{{a}^{[l-1]}}\\ d{{b}^{[l]}}=d{{z}^{[l]}}\\ d{{a}^{[l-1]}}={{w}^{\left[ l \right]T}}\cdot {{dz}^{[l]}}\\ d{{z}^{[l]}}={{w}^{[l+1]T}}d{{z}^{[l+1]}}\cdot \text{ }{{g}^{[l]}}'( {{z}^{[l]}})\end{array} dz[l]=da[l]g[l](z[l])dw[l]=dz[l]a[l1]db[l]=dz[l]da[l1]=w[l]Tdz[l]dz[l]=w[l+1]Tdz[l+1] g[l](z[l])
      其中 g [ l ] ′ ( ) {g^{[l]}}'() g[l]()表示激活函数的导数。
    • 最后整体迭代
      a [ 0 ] a^{[0]} a[0]开始,也就是 x x x 然后经过一系列正向传播计算得到 y ^ \hat y y^,之后再用输出值计算这个(第二行最后方块),再实现反向传播,计算每次迭代的 W , b W,b Wb
      W = W − α d W b = b − α d b \begin{array}{l}W=W-αdW\\ b=b-αdb\end{array} W=WαdWb=bαdb
      在这里插入图片描述

4.6 前向传播和反向传播(Forward and backward propagation)

接着上一部分流程块图的内容,列出单样本和 m m m个样本的式子。

  1. 正向传播

    • 单样本
      输入是 a [ l − 1 ] a^{[l-1]} a[l1],输出是 a [ l ] a^{[l]} a[l],缓存变量是 z [ l ] z^{[l]} z[l]。其表达式如下:
      z [ l ] = W [ l ] a [ l − 1 ] + b [ l ] a [ l ] = g [ l ] ( z [ l ] )      l = 1 , . . , L \begin{array}{l}z^{[l]}=W^{[l]}a^{[l-1]}+b^{[l]}\\ a^{[l]}=g^{[l]}(z^{[l]})\;\; l=1,..,L\end{array} z[l]=W[l]a[l1]+b[l]a[l]=g[l](z[l])l=1,..,L
    • m m m个训练样本
      向量化形式为:
      Z [ l ] = W [ l ] A [ l − 1 ] + b [ l ] A [ l ] = g [ l ] ( Z [ l ] ) \begin{array}{l}Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]}\\ A^{[l]}=g^{[l]}(Z^{[l]})\end{array} Z[l]=W[l]A[l1]+b[l]A[l]=g[l](Z[l])
  2. 反向传播

    • 单样本
      输入是 d a [ l ] da^{[l]} da[l],输出是 d a [ l − 1 ] , d w [ l ] , d b [ l ] da^{[l-1]},dw^{[l]},db^{[l]} da[l1],dw[l],db[l]。其表达式如下:
      d z [ l ] = d a [ l ] ∗ g [ l ] ’ ( z [ l ] ) d W [ l ] = d z [ l ] ⋅ a [ l − 1 ] d b [ l ] = d z [ l ] d a [ l − 1 ] = W [ l ] T ⋅ d z [ l ] \begin{array}{l}dz^{[l]}=da^{[l]}\ast g^{[l]’}(z^{[l]})\\ dW^{[l]}=dz^{[l]}\cdot a^{[l-1]}\\ db^{[l]}=dz^{[l]}\\ da^{[l-1]}=W^{[l]T}\cdot dz^{[l]}\end{array} dz[l]=da[l]g[l](z[l])dW[l]=dz[l]a[l1]db[l]=dz[l]da[l1]=W[l]Tdz[l]
      上述 ‘表达式4’ 可得 d a [ l ] = W [ l + 1 ] T ⋅ d z [ l + 1 ] da^{[l]}=W^{[l+1]T}\cdot dz^{[l+1]} da[l]=W[l+1]Tdz[l+1],将 d a [ l ] da^{[l]} da[l]代入 ‘表达式1’ 中可得:
      d z [ l ] = W [ l + 1 ] T ⋅ d z [ l + 1 ] ∗ g [ l ] ’ ( z [ l ] ) \color{red}dz^{[l]}=W^{[l+1]T}\cdot dz^{[l+1]}\ast g^{[l]’}(z^{[l]}) dz[l]=W[l+1]Tdz[l+1]g[l](z[l])
      该式反映了 d z [ l + 1 ] \color{red}dz^{[l+1]} dz[l+1] d z [ l ] \color{red}dz^{[l]} dz[l]的递推关系。
    • m个训练样本
      向量化形式为:
      d Z [ l ] = d A [ l ] ∗ g [ l ] ’ ( Z [ l ] ) d W [ l ] = 1 m d Z [ l ] ⋅ A [ l − 1 ] T d b [ l ] = 1 m n p . s u m ( d Z [ l ] , a x i s = 1 , k e e p d i m = T r u e ) d A [ l − 1 ] = W [ l ] T ⋅ d Z [ l ] d Z [ l ] = W [ l + 1 ] T ⋅ d Z [ l + 1 ] ∗ g [ l ] ’ ( Z [ l ] ) \begin{array}{l}dZ^{[l]}=dA^{[l]}\ast g^{[l]’}(Z^{[l]})\\ dW^{[l]}=\frac1mdZ^{[l]}\cdot A^{[l-1]T}\\ db^{[l]}=\frac1mnp.sum(dZ^{[l]},axis=1,keepdim=True)\\ dA^{[l-1]}=W^{[l]T}\cdot dZ^{[l]}\\ dZ^{[l]}=W^{[l+1]T}\cdot dZ^{[l+1]}\ast g^{[l]’}(Z^{[l]})\end{array} dZ[l]=dA[l]g[l](Z[l])dW[l]=m1dZ[l]A[l1]Tdb[l]=m1np.sum(dZ[l],axis=1,keepdim=True)dA[l1]=W[l]TdZ[l]dZ[l]=W[l+1]TdZ[l+1]g[l](Z[l])
      其中 g [ l ] ′ ( ) {g^{[l]}}'() g[l]()表示激活函数的导数。

4.7 参数VS超参数(Parameters vs Hyperparameters)

  1. 什么是超参数?
    • 在前面算法中的learning rate a a a(学习率)、iterations(梯度下降法循环的数量)、 L L L(隐藏层数目)、 n [ l ] {{n}^{[l]}} n[l](隐藏层单元数目)、choice of activation function(激活函数的选择)都需要你来设置,这些数字实际上控制了最后的参数 W W W b b b的值,所以它们被称作 超 参 数 \color{red}超参数
    • 之后我们也会介绍一些其他的超参数,如momentummini batch sizeregularization parameters等。
  2. 寻找超参数的最优值
    • 总思路
      Idea—Code—Experiment—Idea这个循环,尝试各种不同的参数。
    • 刚开始应用于新问题的人们,去试一定范围的值看看结果如何。
    • 常用最优模型的参数,也可能会因为电脑CPUGPU、网络和数据都在变化,最优参数也会发生变化。因此每隔一段时间也要进行调节。

4.8 深度学习和大脑的关联性(What does this have to do with the brain?)

在这里插入图片描述
根据以前降低内容进行了更正,不对地方请指正。

  • 人脑神经元的结构和处理方式要复杂的多,神经网络模型只是非常简化的模型。人脑如何进行学习?是否也是通过反向传播和梯度下降算法现在还不清楚,可能会更加复杂。
  • 也许发现重要的新的人脑学习机制后,让我们的神经网络模型抛弃反向传播和梯度下降算法,能够实现更加准确和强大的神经网络模型!

总结

在这里插入图片描述

  • 左上: 神经网络的参数化容量随层数增加而指数式地增长,即某些深度神经网络能解决的问题,浅层神经网络需要相对的指数量级的计算才能解决。
  • 左下: CNN 的深度网络可以将底层的简单特征逐层组合成越来越复杂的特征,深度越大,其能分类的图像的复杂度和多样性就越大。RNN 的深度网络也是同样的道理,可以将语音分解为音素,再逐渐组合成字母、单词、句子,执行复杂的语音到文本任务。
  • 右边: 深度网络的特点是需要大量的训练数据和计算资源,其中涉及大量的矩阵运算,可以在 GPU 上并行执行。还包含了大量的超参数,例如学习率、迭代次数、隐藏层数、激活函数选择、学习率调整方案、批尺寸大小、正则化方法等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值