Weights Initialization
Weights Initialization
(话说在前头,可能这才是深度学习中最重要的地方)
What if you initialize weights to zero?

如果权重全部初始化为零,我们知道此时第一层所有的a都是对称的;这也就导致了后面我们得到的dW是每行都一样的(笔者认为此时如果b也初始化为零,那么dW甚至每一列都是一样的),迭代更新后对W本身也是如此,那么从线性代数的角度去看,W这个矩阵的秩为一,就导致了维度的丧失,我们没有完全地代表我们的特征数据,这只是一个维度而已;
所以我们提出的解决方法是:随机初始化:
可能有人会对后面乘以的0.01产生疑惑:这可以回忆起我们tanh或sigmoid函数,我们知道当变量值大到一定程度时,此时的梯度下降法的迭代是相当缓慢的,如下图
所以乘以0.01的目的往往在于使更多的变量落于梯度变化明显的地方,就是说我们希望W是一个较小的随机权重矩阵。
Andrew表示在后面的深度网络中,相比于乘以0.01,我们还会继续学习更多地参数初始化的方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人