news 2026/6/9 15:14:10

神经网络和深度学习 第四周:深度神经网络的关键概念

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
神经网络和深度学习 第四周:深度神经网络的关键概念

周为第一课的最后一周内容,就像标题一样,我们从第二周的逻辑回归,到第三周的浅层神经网络, 再到本周的深度神经网络的概念层层递进,第一课内容主要还是对神经网络框架的基本介绍,因此本周实际上的主要内容还是对深层神经网络传播过程的梳理。

但对于公式的推导,我们在之前的部分已经重复过不止一次了,因此,针对本周的深层神经网络,我会结合课程内容,尽量少列公式计算,多做概念的推导和理解,并在相关部分附上之前对公式详细推导内容的链接。

本篇即是本周的全部理论内容。

1. 深层神经网络

1.1深层神经网络长什么样?

说实话,当进行到这一部分,想必大家也已经猜到深层神经网络的形状了,我们直接用课程里的图:

Pasted image 20251024101212

简单来说,相比浅层神经网络,深层神经网络就是神经元更多,隐藏层更复杂的神经网络。

1.2 直观理解深层网络的效果

依旧看课程里的一张图:

Pasted image 20251024154207

图下方的三幅图可以比较好的表现深层网络的效果,我们在浅层提取低级特征,而低级特征经过线性组合和激活后有作为下一层的输入提取更高级些的特征,就像图里的从边缘到整张脸。

要说明的一点是图里的图像处理实际上更常出现在卷积神经网络中,这是后面吴恩达老师在这个系列里单独作为一门的内容。

这里我们只要理解到,随着网络规模的增加,更深的层数能让我们提取更高级的特征即可。

1.3 符号规范

Pasted image 20251024103416

同样如图所示,这些符号我们也在之前使用过很多次了,并不陌生,就不再重复描述了。

1.4 深层神经网络的正向传播

我们用刚刚的网络为例:

Pasted image 20251024110122

我在图中绘制了这个网络从输入到最终输出的向量化正向传播过程,待会我们会再补充上反向部分。

不难发现,这只是之前的浅层神经网络中又增加了两个隐藏层传播。

我们之前在浅层神经网络中已经推导过这部分的公式计算了,就不再展开了。

正向传播的详细公式推导在这里

1.5 向量化神经网络中的维度变化

我们已经计算过不少次输入在神经网络里的传播,在向量化的计算过程中往往使用矩阵乘法来实现并行计算,这也就伴随着维度的变化。

这里便总结一下维度变化的规律:

先看贯穿始终的两个公式:

首先,这里的

的维度应该是

(该层的神经元数量,输入该层样本的特征数)

这是因为

每行的元素个数应和输入的特征数相等,作为每一个特征的权重。

而每多一个神经元就会多一次这样的行为。

推广起来,用符号表示就是:

于此同时,每有一组权重,就会有与之配合的一个偏置,因此:

现在,我们通过矩阵乘法即可计算得到:

而激活函数和求导都不会改变输入维度,所以:

我们总结一下:

量 维度

导数 与求导量维度相同

2.模块化网络传播

我们通常在代码里才说模块化,这代表着我们对一些需要重复使用的函数进行了一定程度的封装,或者干脆定义了一些对象。

那么当网络深度不断增加,那层级之间的正向传播和反向传播也在不断重复,因此进行模块化也就十分必要,我们来简单看一看这个框架。

2.1.文字传播

我们先补充完刚刚的传播过程,用文字理顺一下各个量的传递。

Pasted image 20251024165709

这便是上面的网络结构一批次训练的完整传播过程。

反向传播的详细推导过程在这里

理顺逻辑后,我们把这个过程模块化,用函数,函数的参数,函数的输出的格式再来看一看。

2.2 模块化函数

我们定义层间的正向传播函数forward和反向传播函数backward如下:

Pasted image 20251024173357

直接解释两个函数的各个属性可能不太清晰,我们直接用右侧的网络来演示这两个函数的使用。

2.3 模块化传播流程

Pasted image 20251024175609

对比图中的过程,我们就可以比较容易的理顺模块化后的传播。

2.4 总结

以上便是第四周课程的全部内容,课程里还提到了超参数的概念,我们在第二周的习题实践部分就已经对其进行了介绍,就不再重复了。

总的来说,经过较多的基础补充,第四周的内容并不多,我们从浅层神经网络再拓展到深层一些的神经网络,并对传播过程中的计算变化进行了总结,给编码实现提供了思路。

下一篇就是本周课程的习题和编码,同时也是课程一的最后一篇。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 23:33:35

基于java的SpringBoot/SSM+Vue+uniapp的宠物综合服务平台的详细设计和实现(源码+lw+部署文档+讲解等)

文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言 🌞博主介绍:✌全网粉丝15W,CSDN特邀作者、211毕业、高级全…

作者头像 李华
网站建设 2026/6/9 17:55:14

【01-02】

文章目录题目要求项目结构1.Action2.ColorableStep1:写接口和父类Step2:写实现类Step3:写测试类题目要求 项目结构 1.Action 2.Colorable Step1:写接口和父类 package Colorable; /*** 定义一个接口Colorable,包含一个方法void setColor(String aolor)*/ public …

作者头像 李华
网站建设 2026/6/9 21:10:19

初学者如何通过工作负载分析掌握项目进度与资源分配

你是否也经历过这样的项目困境:团队忙得焦头烂额,却总有人无事可做;任务堆积如山,却说不清到底卡在了哪里?明明每个人都看似在工作,项目进度却一再拖延——这背后,很可能不是努力不够&#xff0…

作者头像 李华
网站建设 2026/6/9 22:35:26

CSS2 表格布局入门:前端新人也能轻松驾驭的排版利器

CSS2 表格布局入门:前端新人也能轻松驾驭的排版利器CSS2 表格布局入门:前端新人也能轻松驾驭的排版利器引言:给老伙计一个重新自我介绍的机会table-layout 到底是个啥?先给 W3C 规范配个人话翻译机auto 与 fixed:一场龟…

作者头像 李华
网站建设 2026/6/9 18:31:31

(100分)- 部门人力分配(Java JS Python C)

(100分)- 部门人力分配(Java & JS & Python & C)题目描述部门在进行需求开发时需要进行人力安排。当前部门需要完成 N 个需求,需求用 requirements 表述,requirements[i] 表示第 i 个需求的工作量大小,单位…

作者头像 李华