登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
吴恩达深度学习课程一:神经网络和深度学习 第三周:浅 ...
吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(三)
[ 复制链接 ]
唐嘉懿
3 小时前
此分类用于记录吴恩达深度学习课程的学习笔记。
课程相关信息链接如下:
原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai
github课程资料,含课件与笔记:吴恩达深度学习教学资料
课程配套练习(中英)与答案:吴恩达深度学习课后习题与答案
本篇为第一课第三周,3.11部分的笔记内容,同时也是本周理论部分的最后一篇。
经过第二周的基础补充,本周内容的理解难度可以说有了很大的降低,主要是从逻辑回归扩展到浅层神经网络,讲解相关内容,我们按部就班梳理课程内容即可,当然,依旧会尽可能地创造一个较为丝滑的理解过程。
上一篇通过展开讲述激活函数的作用,并再次过了一遍浅层神经网络的传播过程,来说明浅层神经网络如何提高拟合能力,本篇则补上最后一块拼图,同时也是本周理论部分的最后一篇。
在这周的例子里,我们设置神经网络隐藏层的神经元为四个,输出层的神经元再综合四个神经元的输出结果计算最终的输出,那隐藏层神经元的数量增加后,又是如何发挥正向的作用呢?
我们知道每个神经元都有自己的参数,我们通过不断训练参数达到拟合效果,如何让每个神经元都真的对拟合起到帮助作用,就是本篇的内容:
随机初始化
1. 什么是初始化
在训练神经网络之前,我们并不知道哪些参数(权重 \(W\) 和偏置 \(b\))是最好的,因此需要先给它们一个“起始值”,这个过程就叫做
初始化
。
这些初始值相当于我们在参数空间中的“出发点”,之后通过梯度下降不断调整,逐步逼近损失函数的最小值。
简单来说,就是
赋初值
。
2. 为什么要随机初始化
在逻辑回归中,我们并不强调初始化内容,这是因为整个网络只有一层线性组合与其相关的参数,我们的所有操作都是在更新这一组参数,因此,把这组参数初始化成什么样,并不算一个需要思考的地方,因为这组参数最终都会随着更新达到损失的最低点。
而现在,我们在隐藏层设置四个神经元,如果所有参数一开始都设为同一个值(例如全为 0),会出现一个非常严重的问题,我们看这样一个过程:
每个隐藏层神经元收到的
输入一样
;
计算得到的中间
结果也完全一样
;
反向传播时
梯度也一样
;
于是所有神经元更新后的
参数依旧完全相同
;
这样训练下去,即使我们设置了很多神经元,它们都在“做同样的事情”,模型就退化成只有一个神经元的效果。用专业术语来说,这叫
对称性问题(Symmetry Problem)
。
而解决办法就是
在初始化时给每个神经元赋予一个不同的随机初始权重
,打破对称性,让它们在训练过程中各自朝不同方向学习。
3.损失的凸与非凸问题
我们说逻辑回归不存在对称性问题,还有另外一个关键原因:
它的损失函数是凸函数
。
在第二周第四部分我们讲过,
凸函数具有一个非常重要的特性:全局范围内只有一个最低点(全局最小值)
。
这意味着:无论参数从哪里初始化, 只要我们沿着梯度下降方向不断更新参数,
最终都会收敛到同一个最优点
。
因此即使初始化相同,甚至初始化为 0,也不会导致模型陷入“学不动”或者“神经元行为完全一样”的问题,如下图所示:
但当我们从逻辑回归(单一线性变换)扩展为神经网络(包含隐藏层、激活函数、多个权重矩阵)时,
经过无数函数的相乘,损失函数就不再是一个光滑的碗形函数
,而变成了一个
复杂的山地地形
。
有无数个山峰(局部最大值)、山谷(局部最小值)、鞍点(既不是峰也不是谷)。
此时,损失函数
不是凸函数,而是非凸的。
因此,我们才需要随机初始化不同的神经元,来不断探索损失函数的最小值。
4.举例类比随机初始化的作用
我们依旧用山坡来举例:
现在,我们派 4 个登山者去寻找一片山地的最低点(损失函数的最小值):
情况结果所有人从同一个山顶出发(全零初始化)大家看到的坡度一样,朝同一个方向走,走的路径重叠,只等于一个人找路,效率极低。每个人从不同位置出发(随机初始化)各自看到的坡度不一样,探索方向不同,更可能有人找到更低的谷底(更优解)。因此,
随机初始化就是给每个神经元一个不同的出发点,让它们探索不同的优化空间。
5. 权重的随机初始化
在神经网络中,隐藏层的每个神经元都拥有属于自己的权重参数 \(W\) 和偏置 \(b\)。
如果我们把所有权重都初始化为相同的值,就会造成一个严重的问题:
对称性永远无法被打破
,所有神经元的行为完全一样,网络就失去了“多神经元协作学习”的意义。
因此,我们需要为每一个权重赋予一个
随机的初始值
,这就叫做
权重随机初始化。
它并不是让权重变得“乱七八糟”,而是把它们
设定在一个很小且随机的范围内
,例如:
\[W=0.01×np.random.randn(n,m) (由标准正态分布随机生成的浮点数)\]
这样,就可以打破对称性,实现多个隐藏神经元探索多个不同方向的效果。
而对于权重的随机初始化,也有一些科学的初始化算法,我们遇到再说。
6. 偏置的初始化
与权重不同,
偏置 \(b\) 一般不需要随机初始化,而是直接初始化为 0 或一个很小的常数
。
这是因为偏置项不会造成之前提到的“对称性问题”,它作为一个常数,只是简单地把激活函数的输入整体向左或向右平移,不会影响神经元之间是否相同。
因此,在权重已经随机初始化实现了
打乱
效果后,我们便不会把过多的算法性能浪费在偏置上。
总结
这便是本周课程的最后一部分内容,相比第二周需要较多的基础补充,本周其实只是实现了从逻辑回归到浅层神经网络的扩展,了解了神经网络规模增加是如何帮助拟合的。
下一篇的内容便是本周的课后习题和代码实践,我们用实操来感受一下带隐藏层的神经网络相比逻辑回归带来的性能提升。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
深度
学习
神经网络
吴恩达
课程
相关帖子
吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)
吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)
深度学习基础从0到0.1
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)
0
110
诉称
2025-10-19
业界
吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)
0
484
癖艺泣
2025-10-19
安全
深度学习基础从0到0.1
0
262
钱闲华
2025-10-19
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
唐嘉懿
3 小时前
关注
0
粉丝关注
24
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
dage888
999994
3934307807
992122
4
富账慕
9983
5
邹语彤
9982
6
二艰糖
10000
7
刎唇
9993
8
匝抽
9986
9
聚怪闩
9960
10
孙淼淼
9977
查看更多