引言
深度学习(DNN) 功能之强、应用之广,可以说是机器学习里最亮的星。
其实深度学习就是深度神经网络(Deep Neural Networks),也就是层次比较多的神经网络,今天我们一起来会会它。
一、深度神经网络概述
深度神经网络包括输入层、多个隐含层和输出层,每层含有多个节点。
每个节点都是一个算法神经元,从上层接收多个输入,按权重加和再用激活函数生成输出,而这个输出又作为下一层的输入。
层次多了网络就更复杂,也就可以学习到更复杂的函数关系。实验表明,只要有足够数量和维度的样本,深度学习总能学习到比较好的结果。
下面我们详细认识一下。
二、深度神经网络的表示
一般说 N 层神经网络,这里的 N 不包括输入层,仅包含隐含层和输出层。
2.1 深度神经网络的索引符号
在深度神经网络中,因为涉及到第几层第几个节点第几个样本,所以要用不同的索引来区分。拿第 l 层的第 i 个节点举例:
z i [ l ] = w [ l ] a [ l − 1 ] + b l a i [ l ] = r e l u ( z i [ l ] ) \begin{aligned} z_i^{[l]} &= w^{[l]}a^{[l-1]} + b^{
{l}} \\ a_i^{[l]} &= relu(z_i^{[l]}) \end{aligned} zi[l]ai[l]=w[l]a[l−1]+bl=relu(zi[l])
- 上标中括号表示第几层: a [ 1 ] a^{[1]} a[1], a [ 2 ] a^{[2]} a[2]
- a [ l ] a^{[l]} a[l] 表示第 l 层的输出,同时也是第 l+1 层的输入
- 输入层也称为第0层,可以写成 a [ 0 ] a^{[0]} a[0]
- 输出层 y ^ \hat y y^ : 也就是最后一层的输出,表示为 a [ L ] a^{[L]} a[L]
- 上标小括号表示第几个样本: a ( 1 ) a^{(1)} a(1), a ( 2 ) a^{(2)} a(2)
- 下标表示当前层第几个节点(维度): a 1 a_1 a1, a 2 a_2 a2
2.2 深度神经网络矩阵化
如图所示,不失一般性,我们推导一下如何从 [l-1] 层 到达 [l] 层
- 第 l-1 层有四个节点(维度)
- ( a 1 [ l − 1 ] , a 2 [ l − 1 ] , a 3 [ l − 1 ] , a 4 [ l − 1 ] ) (a^{[l-1]}_1,a^{[l-1]}_2,a^{[l-1]}_3,a^{[l-1]}_4) (a1[l−1],a2[l−1],a3[l−1],a4[l−1])
- 第 l 层的有两个节点(维度)
- ( a 1 [ l ] , a 2 [ l ] (a^{[l]}_1,a^{[l]}_2 (a1[l],a2[l])
先考虑一个样本的情况
z 1 [ l ] = [ w 11 [ l ] w 12 [ l ] w 13 [ l ] w 14 [ l ] ] [ a 1 [ l − 1 ] a 2 [ l − 1 ] a 3 [ l − 1 ] a 4 [ l − 1 ] ] + b 1 [ l ] z^{[l]}_1 = \begin{bmatrix}w^{[l]}_{11}\;w^{[l]}_{12}\;w^{[l]}_{13}\;w^{[l]}_{14}\end{bmatrix} \begin{bmatrix}a^{[l-1]}_{1} \\ a^{[l-1]}_{2} \\ a^{[l-1]}_{3} \\ a^{[l-1]}_{4}\end{bmatrix} + b^{[l]}_1 z1[l]=[w11[l]w12[l]w13[l]w14[l]]⎣⎢⎢⎢⎡a1[l−1]a2[l−1]a3[l−1]a4[l−1]⎦⎥⎥⎥⎤+b1[l]
z 2 [ l ] = [ w 21 [ l ] w 22 [ l ] w 23 [ l ] w 24 [ l ] ] [ a 1 [ l − 1 ] a 2 [ l − 1 ] a 3 [ l − 1 ] a 4 [ l − 1 ] ] + b 2 [ l ] z^{[l]}_2 = \begin{bmatrix}w^{[l]}_{21}\;w^{[l]}_{22}\;w^{[l]}_{23}\;w^{[l]}_{24}\end{bmatrix} \begin{bmatrix}a^{[l-1]}_{1} \\ a^{[l-1]}_{2} \\ a^{[l-1]}_{3} \\ a^{[l-1]}_{4}\end{bmatrix} + b^{[l]}_2 z2[l]=[w21[l]w22[l]w23[l]w24[l]]⎣⎢⎢⎢⎡a1[l−1]a2[l−1]a3[l−1]a4[l−1]⎦⎥⎥⎥⎤+b2[l]
将两个公式合为矩阵:
[ z 1 [ l ] z 2 [ l ] ] = [ w 11 [ l ] w 12 [ l ] w 13 [ l ] w 14 [ l ] w 21 [ l ] w 22 [ l ] w 23 [ l ] w 24 [ l ] ] [ a 1 [ l − 1 ] a 2 [ l − 1 ] a 3 [ l − 1 ] a 4 [ l − 1 ] ] + [ b 1 [ l ] b 2 [ l ] ] \begin{bmatrix}z^{[l]}_1 \\ z^{[l]}_2\end{bmatrix}= \begin{bmatrix}w^{[l]}_{11}\;w^{[l]}_{12}\;w^{[l]}_{13}\;w^{[l]}_{14} \\ w^{[l]}_{21}\;w^{[l]}_{22}\;w^{[l]}_{23}\;w^{[l]}_{24}\end{bmatrix} \begin{bmatrix}a^{[l-1]}_{1} \\ a^{[l-1]}_{2} \\ a^{[l-1]}_{3} \\ a^{[l-1]}_{4}\end{bmatrix} + \begin{bmatrix} b^{[l]}_1 \\ b^{[l]}_2 \end{bmatrix} [z1[l]z2[l]]=[w11[l]w12[l]w13[l]w14[l]w21[l]w22[l]w23[l]w24[l]]⎣⎢⎢⎢⎡a1[l−1]a2[l−1]a3[l−1]a4[l−1]⎦⎥⎥⎥⎤+[b1[l]b2[l]]
再考虑 m 个样本的情况:
[ z 11 [ l ] … z 1 m [ l ]