大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序
线上课程资料:
本节课录像回放1
加QQ群,获得ppt等资料,与群主交流讨论:106047770
本系列文章为线上课程的复盘,每上完一节课就会同步发布对应的文章
本文为第三节课:“全连接层的前向和后向传播推导(上)”的复盘文章
本课程系列文章可进入索引查看:
深度学习基础课系列文章索引
回顾相关课程内容
- 第二节课: “判断性别”Demo需求分析和初步设计
- Demo的需求是什么?
- 如何实现需求?
- 前向传播算法是什么?
- 随机梯度下降算法是什么?
为什么要学习本课?
- 权重、偏移的数量太多,导致前向传播和梯度求导的计算很臃肿,如何优化?
- 如果增加隐藏层中的神经元数量,是否会修改前向传播的计算公式?
- 如何才能不修改公式,只调整参数即可?
- 如何扩展判断性别Demo的三层神经网络,从而处理更多的输入参数和输出数据?
主问题:向量化
为什么要向量化?
-
一个神经元的输出的计算公式是什么?
-
如果增加输入参数,那么:
- 如何修改计算公式?
- 计算公式(计算代码)保持不变,只需要改变配置参数即可?
主问题:向量化
-
向量化后的计算公式是什么?
-
如何向量化偏移b?
-
增加输入参数的话需要改变公式吗?
不需要改变公式,而是改变权重向量和输入向量的元素个数、新增元素的值
任务:实现向量化
-
请将神经元的forward函数改为向量化
待修改的代码:Neural_vector
修改后的代码:Neural_vector_answer -
运行代码,通过测试
运行修改前和修改后的代码,输出结果一样,从而通过了测试