第四章 深层神经网络
自学Andrew Ng老师的神经网络公开课,作一些笔记,老师讲的非常详细,通俗易懂
文章目录
4.1 深层神经网络
这节讲的内容非常简单,就是对浅层神经网络的扩展,即之前第三章讲解的是2层神经网络,而logistics回归可以认为是1层神经网络。深层神经网络就是隐藏层是多层的神经网络,比如含有四层隐藏层的神经网络是五层神经网络。
本节介绍了深层神经网络中用到的标记,与浅层神经网络一致。
L L L表示一共的层数;
n [ l ] n^{[l]} n[l]表示第 l l l层的神经元数量, n [ 0 ] = n x n^{[0]}=n_x n[0]=nx认为是输入层的数量, n [ L ] = 1 n^{[L]}=1 n[L]=1表示输出层的数量,一般为1个神经元;
a [ l ] a^{[l]} a[l]表示第 l l l层的激活函数, a [ l ] = g [ l ] ( z [ l ] ) a^{[l]} = g^{[l]}(z^{[l]}) a[l]=g[l](z[l]), a [ 0 ] = x a^{[0]}=x a[0]=x表示输入状态;
w [ l ] w^{[l]} w[l]和 b [ l ] b^{[l]} b[l]表示第 l l l层的参数;
4.2 深层网络中的前向传播算法
这节讲了深度神经网络中的前向传播算法,其实和浅层神经网络是一样的,对于一个4层神经网络来说,对于一个训练样本来说,主要公式有:
z [ 1 ] = w [ 1 ] x + b [ 1 ] z^{[1]}=w^{[1]}x+b^{[1]} z[1]=w[1]x+b[1]
a [ 1 ] = g [ 1 ] ( z [ 1 ] ) a^{[1]}=g^{[1]}(z^{[1]}) a[1]=g[1](z[1])
z [ 2 ] = w [ 2 ] a [ 1 ] + b [ 2 ] z^{[2]}=w^{[2]}a^{[1]}+b^{[2]} z[2]=w[2]a[1]+b[2]
a [ 2 ] = g [ 2 ] ( z [ 2 ] ) a^{[2]}=g^{[2]}(z^{[2]}) a[2]=g[2](z[2])
z [ 3 ] = w [ 3 ] a [ 2 ] + b [ 3 ] z^{[3]}=w^{[3]}a^{[2]}+b^{[3]} z[3]=w[3]a[2]+b[3]
a [ 3 ] = g [ 3 ] ( z [ 3 ] ) a^{[3]}=g^{[3]}(z^{[3]}) a[3]=g[3](z[3])
z [ 4 ] = w [ 4 ] a [ 3 ] + b [ 4 ] z^{[4]}=w^{[4]}a^{[3]}+b^{[4]} z[4]=w[4]a[3]+b[4]
a [ 4 ] = g [ 4 ] ( z [ 4 ] ) = y ^ a^{[4]}=g^{[4]}(z^{[4]})=\hat y a[4]=g[4](z[4])=y^
其中第一层的 x x x可以换成 a [ 0 ] a^{[0]} a[0],之后的写法会写作后者。
对于所有样本的向量化,公式是一个样本中,将 z z