深度神经网络

Why deep representations?

在使用深度神经网络之前,我们想要知道,为什么我们想要让自己的 Neural Network 变得更深?

CNN(卷积神经网络)为例,CNN主要用于图像的识别,下图展现了在人脸识别中经过层层的卷积后,所能够探测的形状、概念也变得越来越抽象和复杂。

  • Layer 1: 能够识别图像中的边缘信息(Edge)
  • Layer 2: 能够通过 Layer 1 的信息继续识别图像中的五官信息
  • Layer 3: 能够通过 Layer 2 的信息继续抽象识别面部

当然,这只是粗略描述,更多关于 CNN 的信息可以参见这篇文章:卷积神经网络——介绍


Implement

对于 Deep Neural Network 来说,实现它主要分为两个大步骤:

  1. Forward Propagation:计算 ŷ 从而计算出 Cost Function

  2. 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 ]


附:实现代码