> For the complete documentation index, see [llms.txt](https://baozoulin.gitbook.io/dl-ai-special-notebook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://baozoulin.gitbook.io/dl-ai-special-notebook/course1/di-si-zhou-shen-ceng-shen-jing-wang-luo-deepneuralnetworks.md).

# 第四周：深层神经网络(Deep Neural Networks)

## 4.1 深层神经网络（Deep L-layer neural network）

![](https://baozou.gitbooks.io/neural-networks-and-deep-learning/content/assets/29.bmp)

$$L-layer\quad NN$$，则包含了$$L-1$$个隐藏层，最后的$$L$$层是输出层

$$a^{\[l]}$$和$$W^{\[l]}$$中的上标$$l$$都是从$$1$$开始的，$$l=1,\cdots,L$$

输入$$x$$记为$$a^{\[0]}$$​​，把输出层$$\hat y$$记为$$a^{\[L]}$$

![](https://baozou.gitbooks.io/neural-networks-and-deep-learning/content/assets/30.bmp)

$$X$$：$$(12288, 209)$$(with $$m=209$$ examples)

|               |        **Shape of W**        |    **Shape of b**   |                    **Activation**                   | **Shape of Activation** |
| :-----------: | :--------------------------: | :-----------------: | :-------------------------------------------------: | :---------------------: |
|  **Layer 1**  |     $$(n^{\[1]},12288)$$     |   $$(n^{\[1]},1)$$  |         $$Z^{\[1]} = W^{\[1]} X + b^{\[1]}$$        |    $$(n^{\[1]},209)$$   |
|  **Layer 2**  |   $$(n^{\[2]}, n^{\[1]})$$   |   $$(n^{\[2]},1)$$  |     $$Z^{\[2]} = W^{\[2]} A^{\[1]} + b^{\[2]}$$     |    $$(n^{\[2]},209)$$   |
|   $$\vdots$$  |          $$\vdots$$          |      $$\vdots$$     |                      $$\vdots$$                     |        $$\vdots$$       |
| **Layer L-1** | $$(n^{\[L-1]}, n^{\[L-2]})$$ | $$(n^{\[L-1]}, 1)$$ | $$Z^{\[L-1]} = W^{\[L-1]} A^{\[L-2]} + b^{\[L-1]}$$ |  $$(n^{\[L-1]}, 209)$$  |
|  **Layer L**  |  $$(n^{\[L]}, n^{\[L-1]})$$  |  $$(n^{\[L]}, 1)$$  |    $$Z^{\[L]} = W^{\[L]} A^{\[L-1]} + b^{\[L]}$$    |   $$(n^{\[L]}, 209)$$   |

## 4.2 前向传播和反向传播（Forward and backward propagation）

### 正向传播过程

$$
z^{\[l]}=W^{\[l]}a^{\[l-1]}+b^{\[l]}
$$

$$
a^{\[l]}=g^{\[l]}(z^{\[l]})
$$

$$m$$个训练样本，向量化形式为：

$$
Z^{\[l]}=W^{\[l]}A^{\[l-1]}+b^{\[l]}
$$

$$
A^{\[l]}=g^{\[l]}(Z^{\[l]})
$$

### 反向传播过程

$$
dz^{\[l]}=da^{\[l]}\ast g^{\[l]'}(z^{\[l]})
$$

$$
dW^{\[l]}=dz^{\[l]}\cdot {a^{\[l-1]}}^T
$$

$$
db^{\[l]}=dz^{\[l]}
$$

$$
da^{\[l-1]}=W^{\[l]T}\cdot dz^{\[l]}
$$

得到：

$$
dz^{\[l]}=W^{\[l+1]T}\cdot dz^{\[l+1]}\ast g^{\[l]'}(z^{\[l]})
$$

$$m$$个训练样本，向量化形式为：

$$
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]})
$$

![](https://baozou.gitbooks.io/neural-networks-and-deep-learning/content/assets/3import.png)

## 4.3 深层网络中的前向传播（Forward propagation in a Deep Network ）

对于第$$l$$层，其正向传播过程的$$Z^{\[l]}$$和$$A^{\[l]}$$可以表示为：

$$
Z^{\[l]}=W^{\[l]}A^{\[l-1]}+b^{\[l]}
$$

$$
A^{\[l]}=g^{\[l]}(Z^{\[l]})
$$

其中$$l=1,\cdots,L$$

## 4.4 为什么使用深层表示？（Why deep representations?）

### 人脸识别

![](https://baozou.gitbooks.io/neural-networks-and-deep-learning/content/assets/31.bmpg)\
经过训练，神经网络第一层所做的事就是从原始图片中提取出人脸的轮廓与边缘，即**边缘检测**。这样每个神经元得到的是一些边缘信息。神经网络第二层所做的事情就是将前一层的边缘进行组合，组合成人脸一些局部特征，比如眼睛、鼻子、嘴巴等。再往后面，就将这些局部特征组合起来，融合成人脸的模样。

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

### 语音识别模型

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

神经网络从左到右，神经元提取的特征从简单到复杂。特征复杂度与神经网络层数成正相关。特征越来越复杂，功能也越来越强大

深层网络另外一个优点:减少神经元个数，从而减少计算量

使用电路理论，计算逻辑输出：

$$
y=x\_1\oplus x\_2\oplus x\_3\oplus\cdots\oplus x\_n
$$

对于这个逻辑运算，深度网络的结构是每层将前一层的两两单元进行异或，最后得到一个输出

整个深度网络的层数是$$log\_2(n)$$，不包含输入层。总共使用的神经元个数为：

$$
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
$$

输入个数是$$n$$，这种深层网络所需的神经元个数仅仅是$$n-1$$个

如果不用深层网络，使用单个隐藏层，需要的神经元个数将是指数级别那么大。由于包含了所有的逻辑位（$$0$$和$$1$$），则需要$$2^{n-1}$$个神经元

处理同一逻辑问题，深层网络所需的神经元个数比浅层网络要少很多

## 4.5 搭建神经网络块（Building blocks of deep neural networks）

第$$l$$层的流程块图

![](https://baozou.gitbooks.io/neural-networks-and-deep-learning/content/assets/32.bmp)

对于神经网络所有层，整体的流程块图正向传播过程和反向传播过程如下所示：

![](https://baozou.gitbooks.io/neural-networks-and-deep-learning/content/assets/33.bmp)

![](https://baozou.gitbooks.io/neural-networks-and-deep-learning/content/assets/2import.png)

## 4.6 参数 VS 超参数（Parameters vs Hyperparameters）

神经网络中的参数是$$W^{\[l]}$$和$$b^{\[l]}$$

**超参数**则是例如学习速率$$\alpha$$，训练迭代次数$$N$$，神经网络层数$$L$$，各层神经元个数$$n^{\[l]}$$，激活函数$$g(z)$$等

叫做超参数的原因是它们决定了参数$$W^{\[l]}$$和$$b^{\[l]}$$的值

如何设置最优的超参数：

通常的做法是选择超参数一定范围内的值，分别代入神经网络进行训练，测试**cost function**随着迭代次数增加的变化，根据结果选择**cost function**最小时对应的超参数值
