来自https://www.bilibili.com/video/BV1FT4y1E74V,仅为本人学习所用。
符号约定

对于该深层网络,有四层,包含三个隐藏层和一个输出层。
隐藏层中,第一层有五个单元、第二层有五个单元,第三层有三个单元。标记 l l l表示层数, l = 4 l=4 l=4。标记 n l n^{l} nl表示第几层, n 1 n^{1} n1是第一层,有5个节点; n 3 n^{3} n3是第三层,有3个节点。 n 4 n^{4} n4是输出层,只有一个节点。把输入层也叫 n 0 n^{0} n0有三个输入特征, n 0 = n x = 3 n^{0} = n_x=3 n0=nx=3。 a l a^{l} al表示第 l l l层中的激活函数,表示为 a l = g l ( z l ) a^{l}=g^{l}(z^{l}) al=gl(zl)。
计算矩阵的维度

对于该神经网络,有四个隐藏层和一个输出层。如何计算 W \mathbf{W} W与 b \mathbf{b} b应该开辟多大(维度)?
输入特征是x1,x2,是一个(2,1)的向量。对于第一个隐藏层,从神经网络中看到,输出了(3,1)的向量,由 z 1 = W 1 x + b 1 \mathbf{z}^{1}=\mathbf{W}^{1}\mathbf{x}+\mathbf{b}^{1} z1=W1x+b1代入向量维度,根据矩阵乘法和矩阵加法,有(3,1)=(3,2)(2,1)+(3,1)刚好匹配维度。

| 层次 | 表达式 | 计算 |
|---|---|---|
| n 1 n^{1} n1 | z 1 = W 1 x + b 1 \mathbf{z}^{1}=\mathbf{W}^{1}\mathbf{x}+\mathbf{b}^{1} z1=W1x+b1 a 1 = g ( z 1 ) \mathbf{a}^{1}=g(\mathbf{z}^{1}) a1=g(z1) | ( 3 , 1 ) = ( 3 , 2 ) ( 2 , 1 ) + ( 3 , 1 ) (3,1)=(3,2)(2,1)+(3,1) (3,1)=(3,2)(2,1)+(3,1) |
| n 2 n^{2} n2 | z 2 = W 2 a 1 + b 2 \mathbf{z}^{2}=\mathbf{W}^{2}\mathbf{a}^{1}+\mathbf{b}^{2} z2=W2a1+b2 . . . ... ... | ( 5 , 1 ) = ( 5 , 3 ) ( 3 , 1 ) + ( 5 , 1 ) (5,1)=(5,3)(3,1)+(5,1) (5,1)=(5,3)(3,1)+(5,1) |
| n 3 n^{3} n3 | z 3 = W 3 a 2 + b 3 \mathbf{z}^{3}=\mathbf{W}^{3}\mathbf{a}^{2}+\mathbf{b}^{3} z3=W3a2+b3 . . . ... ... | ( 4 , 1 ) = ( 4 , 5 ) ( 5 , 1 ) + ( 4 , 1 ) (4,1)=(4,5)(5,1)+(4,1) (4,1)=(4,5)(5,1)+(4,1) |
| n 4 n^{4} n4 | z 4 = W 4 a 3 + b 4 \mathbf{z}^{4}=\mathbf{W}^{4}\mathbf{a}^{3}+\mathbf{b}^{4} z4=W4a3+b4 . . . ... ... | ( 2 , 1 ) = ( 2 , 4 ) ( 4 , 1 ) + ( 2 , 1 ) (2,1)=(2,4)(4,1)+(2,1) (2,1)=(2,4)(4,1)+(2,1) |
| n 5 n^{5} n5 | z 5 = W 5 a 4 + b 5 \mathbf{z}^{5}=\mathbf{W}^{5}\mathbf{a}^{4}+\mathbf{b}^{5} z5=W5a4+b5 . . . ... ... | ( 1 , 1 ) = ( 1 , 2 ) ( 2 , 1 ) + ( 1 , 1 ) (1,1)=(1,2)(2,1)+(1,1) (1,1)=(1,2)(2,1)+(1,1) |
W l : ( 本层神经元数量 , 上一层神经元数量 ) \mathbf{W}^{l}:(本层神经元数量, 上一层神经元数量) Wl:(本层神经元数量,上一层神经元数量)
为什么使用深层表示
对于一张图片,想建立一个人脸识别系统。当输入一张脸部的照片,隐藏层第一层寻找脸部特征的边缘的方向,然后将边缘层的像素放在一起组成面部的不同部分,最后在将这些放在一起,识别或探测不同的人脸。
搭建神经网络块

参数和超参数
回顾这些公式 z = w x + b z=wx+b z=wx+b a = σ ( z ) a=\sigma(z) a=σ(z) J = − 1 n ∑ n i = 1 y i l o g ( y \^ i ) + ( 1 − y i ) l o g ( 1 − y \^ i ) J=−\frac{1}{n}\sum_{n}^{i=1} y_ilog(\\hat{y}_i)+(1−y_i)log(1−\\hat{y}_i) J=−n1n∑i=1yilog(y\^i)+(1−yi)log(1−y\^i)
有参数 w w w、 b b b。
在编程的时候,也会引入一些其他的参数,比如学习率 α \alpha α,迭代的次数、隐藏层层数、选用什么激活函数的问题...与 w w w和 b b b不同,这些参数需要自己去设置,被称为超参数,能够控制 w w w和 b b b。对于这些参数的设置是一个很经验的东西。