探索flutter框架开发的app在移动应用市场的潜力与挑战
740
2022-09-08
(吴恩达)5.反向传播算法
文章目录九、神经网络参数的反向传播算法9.1 代价函数9.2 反向传播算法9.3 反向传播算法的直观理解9.4 梯度检验9.5 随机初始化9.6 总结
九、神经网络参数的反向传播算法
9.1 代价函数
首先引入一些新标记方法:
将神经网络的分类定义为两种情况:二类分类和多类分类,
9.2 反向传播算法
前向传播算法:
下面的公式推导过程见:javascript:void(0)
反向传播:
重要的是清楚地知道上面式子中上下标的含义:
我们的算法表示为:
即首先用正向传播方法计算出每一层的激活单元,利用训练集的结果与神经网络预测的结果求出最后一层的误差,然后利用该误差运用反向传播法计算出直至第二层的所有误差。
批量梯度下降算法总结:
9.3 反向传播算法的直观理解
前向传播的原理:
前向传播算法:
反向传播算法做的是:
9.4 梯度检验
9.5 随机初始化
任何优化算法都需要一些初始的参数。到目前为止我们都是初始所有参数为0,这样的初始方法对于逻辑回归来说是可行的,但是对于神经网络来说是不可行的。如果我们令所有的初始参数都为0,这将意味着我们第二层的所有激活单元都会有相同的值。同理,如果我们初始所有的参数都为一个非0的数,结果也是一样的。我们通常初始参数为正负ε之间的随机值,假设我们要随机初始一个尺寸为10×11的参数矩阵,代码如下:Theta1 = rand(10, 11) * (2*eps) – eps
9.6 总结
使用神经网络时的步骤:
网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少个单元。
第一层的单元数即我们训练集的特征数量。
最后一层的单元数是我们训练集的结果的类的数量。
如果隐藏层数大于1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。
我们真正要决定的是隐藏层的层数和每个中间层的单元数。
训练神经网络:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~