深度学习基础课:全连接层的前向和后向传播推导(中)
大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序
线上课程资料:
本节课录像回放
加QQ群,获得ppt等资料,与群主交流讨论:106047770
本系列文章为线上课程的复盘,每上完一节课就会同步发布对应的文章
本文为第三节课:“全连接层的前向和后向传播推导(中)”的复盘文章
本课程系列文章可进入索引查看:
深度学习基础课系列文章索引
回顾相关课程内容
- 第三节课:全连接层的前向和后向传播推导(上)
- 神经元计算公式为什么要向量化?
- 向量化后神经元的计算公式是什么?
主问题:如何推导全连接层的前向传播?
为什么要学习全连接层?
- 什么情况下需要增加输入层的神经元个数?
答:需要增加特征的值的个数的时候 - 什么情况下需要增加隐藏层的神经元个数?
答:需要增加神经网络的拟合能力,从而更快速的收敛的时候。
因为隐藏层的神经元个数越多,权重数量就越多,方程的解的范围就越多,所以拟合能力就越强 - 什么情况下需要增加输出层的神经元个数?
答:需要增加输出的值的个数的时候 - 什么情况下需要增加更多的隐藏层?
答:需要大幅增加神经网络的拟合能力的时候,可参考如何确定神经网络的层数和隐藏层神经元数量
因此,本课推广判断性别Demo的三层神经网络为全连接层神经网络
主问题:如何推导全连接层的前向传播?
- 什么是全连接层?
答:
输入层、输出层各只有一层,隐藏层可以有任意多层;
每层有任意多的神经元
我们仍然以三层神经网络为例来推导前向传播
- 前向传播算法是什么?
答:从隐藏层开始,依次计算每层神经元的输出,直到输出层结束 - 隐藏层的前向传播计算公式是什么?
答: - 如何推导向量化?
答: - 输出层的前向传播计算公式是什么?
答: - 如何推导向量化?
答:
任务:实现全连接层的前向传播
- 请实现全连接层的前向传播的代码
答:待实现的代码:NeuralNetwork_forward
实现后的代码:NeuralNetwork_forward_answer - 使用判断性别Demo的神经网络结构,运行代码
答:运行代码如下所示:
let state = createState(2, 2, 1)
let feature = {
weight: 50.,
height: 150.,
}
forward(state, feature)->Js.log