Deep Neural Network 实现
深度神经网络
Why deep representations?
在使用深度神经网络之前,我们想要知道,为什么我们想要让自己的 Neural Network 变得更深?
以 CNN(卷积神经网络)为例,CNN主要用于图像的识别,下图展现了在人脸识别中经过层层的卷积后,所能够探测的形状、概念也变得越来越抽象和复杂。
- Layer 1: 能够识别图像中的边缘信息(Edge)
- Layer 2: 能够通过 Layer 1 的信息继续识别图像中的五官信息
- Layer 3: 能够通过 Layer 2 的信息继续抽象识别面部
当然,这只是粗略描述,更多关于 CNN 的信息可以参见这篇文章:卷积神经网络——介绍
Implement
对于 Deep Neural Network 来说,实现它主要分为两个大步骤:
-
Forward Propagation:计算 ŷ 从而计算出 Cost Function
-
Backward Propagation:计算参数矩阵的偏导数从而进行迭代
以 Layer l 为例:
Input | Output | |
---|---|---|
Forward | A[ l - 1 ] | A[ l ] |
Backward | dA[ l ] ( cache Z[ l ] ) | dA[ l - 1 ] ( dW[ l ] , db[ l ] ) |
整个计算过程可以用以下流程图概括:
Algorithm
Forward
Input: A [ l - 1 ]
Cache: Z [ l ]
Output: A [ l ]
Backward
首次输入的 dA [ l ] 为:
Input: dA [ l ]
Output: dA [ l - 1 ], dW [ l ], db [ l ]
Newest Posts