L1 深度学习概论
4 深层神经网络
课程时长共64min31s4.1 深层神经网络 什么是深层神经网络?
文章图片
对于如下一个四层神经网络
- L表示神经网络层数
- 使用n[1]表示第一层的单元数量
- n[4]=n[L]=1
- n[0]=nx=3
- a[l]第l层的激活值
- a[l]=g[l](z[l]) 第l层的激活函数
z [ l ] = W [ l ] a [ l ? 1 ] + b [ l ] a [ l ] = g [ l ] ( z [ l ] ) z^{[l]}=W^{[l]}a^{[l-1]}+b^{[l]}\\ a^{[l]} = g^{[l]}(z^{[l]}) z[l]=W[l]a[l?1]+b[l]a[l]=g[l](z[l])
向量化正向传播计算公式:
Z [ l ] = W [ l ] A [ l ? 1 ] + b [ l ] A [ l ] = g [ l ] ( Z [ l ] ) Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]}\\ A^{[l]} = g^{[l]}(Z^{[l]}) Z[l]=W[l]A[l?1]+b[l]A[l]=g[l](Z[l])
- 此处需要使用for循环,没有其他更好的方法
z [ l ] , a [ l ] , d z [ l ] , d a [ l ] : ( n [ l ] , 1 ) W [ l ] , d W [ l ] : ( n [ l ] , n [ l ? 1 ] ) b [ l ] , d b [ l ] : ( n [ l ] , 1 ) z^{[l]},a^{[l]},dz^{[l]},da^{[l]}:(n^{[l]}, 1)\\ W^{[l]}, dW^{[l]}:(n^{[l]}, n^{[l-1]})\\ b^{[l]},db^{[l]}:(n^{[l]}, 1) z[l],a[l],dz[l],da[l]:(n[l],1)W[l],dW[l]:(n[l],n[l?1])b[l],db[l]:(n[l],1)
对于m个输入,以下参数的维度:
Z [ l ] , A [ l ] , d Z [ l ] , d A [ l ] : ( n [ l ] , m ) W [ l ] , d W [ l ] : ( n [ l ] , n [ l ? 1 ] ) b [ l ] , d b [ l ] : ( n [ l ] , m ) Z^{[l]},A^{[l]},dZ^{[l]},dA^{[l]}:(n^{[l]}, m)\\ W^{[l]}, dW^{[l]}:(n^{[l]}, n^{[l-1]})\\ b^{[l]},db^{[l]}:(n^{[l]}, m) Z[l],A[l],dZ[l],dA[l]:(n[l],m)W[l],dW[l]:(n[l],n[l?1])b[l],db[l]:(n[l],m)
- 在Python中Numpy使用广播机制,因此以下维度情况也可行: b [ l ] , d b [ l ] : ( n [ l ] , m ) b^{[l]},db^{[l]}:(n^{[l]}, m) b[l],db[l]:(n[l],m)
另一个,电路理论的解释
- 浅层需要使用更多门
文章图片
- 通过输入x得到 y ^ \hat{y} y^?
文章图片
更新 W [ l ] , b [ l ] W^{[l]},b^{[l]} W[l],b[l]:
文章图片
4.7 前向和反向传播 对于第 l l l层:
- 正向传播
- 输入 a [ l ? 1 ] a^{[l-1]} a[l?1]
- 输出 a [ l ] , c a c h e ( z [ l ] , w [ l ] , b [ l ] ) a^{[l]},cache(z^{[l]},w^{[l]},b^{[l]}) a[l],cache(z[l],w[l],b[l])
- 首个输入数据 a [ 0 ] = x a^{[0]}=x a[0]=x
- 输入 a [ l ? 1 ] a^{[l-1]} a[l?1]
- 反向传播
- 【深度学习|【深度学习-吴恩达】L1-4 深层神经网络】输入 d a [ l ] , z [ l ] da^{[l]},z^{[l]} da[l],z[l]
- 输出 d a [ l ? a ] , d W [ l ] , d b [ l ] da^{[l-a]},dW^{[l]},db^{[l]} da[l?a],dW[l],db[l]
- 首个输入数据 d a [ L ] = ? y a [ L ] + 1 ? y 1 ? a [ L ] da^{[L]}=-\frac {y}{a^{[L]}}+\frac{1-y}{1-a^{[L]}} da[L]=?a[L]y?+1?a[L]1?y?
- 向量化首个输入数据 d A [ L ] = ∑ i = 1 m ( ? y ( i ) a [ L ] ( i ) + 1 ? y ( i ) 1 ? a [ L ] ( i ) ) dA^{[L]}=\sum_{i=1}^m(-\frac {y^{(i)}}{a^{[L](i)}}+\frac{1-y^{(i)}}{1-a^{[L](i)}}) dA[L]=∑i=1m?(?a[L](i)y(i)?+1?a[L](i)1?y(i)?)
- 为什么是累加?
- 【深度学习|【深度学习-吴恩达】L1-4 深层神经网络】输入 d a [ l ] , z [ l ] da^{[l]},z^{[l]} da[l],z[l]
- W [ 1 ] , W [ 2 ] , … W^{[1]},W^{[2]},\dots W[1],W[2],…
- b [ 1 ] , b [ 2 ] , … b^{[1]},b^{[2]},\dots b[1],b[2],…
- 学习率α
- 梯度下降法循环数量iteration
- 隐藏层数量L
- 隐藏单元数量 n [ 1 ] , n [ 2 ] , … n^{[1]},n^{[2]},\dots n[1],n[2],…
- 激活函数的选择 g [ l ] ( z [ l ] ) g^{[l]}(z^{[l]}) g[l](z[l])
- momentum
- mini batch大小
- 不同的正则化参数
推荐阅读
- 神经网络|卷积神经网络matlab工具包,matlab怎么搭建神经网络
- 深度学习|2. 刘二大人《PyTorch深度学习实践》作业--梯度下降
- 深度学习|A brief Introduction to Continue Learning / Life long Learning
- 深度学习|COCO数据集介绍
- 连续学习|图解连续学习中的蓄水池抽样算法(The Illustrated Reservoir sampling)
- 我的教程|Python 快速规范代码
- 算法|图像相似度对比分析软件,图像相似度算法有哪些
- 精简|精简 opencv python_01_opencv_python_基本图像处理
- python|Keras实现——预训练卷积神经网络(VGG16)