当前位置: 首页 > news >正文

织梦系统怎么做网站做代收水果是什么网站

织梦系统怎么做网站,做代收水果是什么网站,网站制作方案解决办法,抚松做网站目录 第二门课: 改善深层神经网络#xff1a;超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周#xff1a;深度学习的 实践层面 (Practical aspects of Deep Learning)1.13 梯度检验#… 目录 第二门课: 改善深层神经网络超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周深度学习的 实践层面 (Practical aspects of Deep Learning)1.13 梯度检验Gradient checking1.14 梯 度 检 验 应 用 的 注 意 事 项 Gradient Checking Implementation Notes 第二门课: 改善深层神经网络超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization) 第一周深度学习的 实践层面 (Practical aspects of Deep Learning) 1.13 梯度检验Gradient checking 梯度检验帮我们节省了很多时间也多次帮我发现 backprop 实施过程中的 bug接下来我们看看如何利用它来调试或检验 backprop 的实施是否正确。 假设你的网络中含有下列参数 W [ 1 ] W^{[1]} W[1]和 b [ 1 ] b^{[1]} b[1]…… W [ l ] W^{[l]} W[l]和 b [ l ] b^{[l]} b[l]为了执行梯度检验首先要做的就是把所有参数转换成一个巨大的向量数据你要做的就是把矩阵转换成一个向量把所有矩阵转换成向量之后做连接运算得到一个巨型向量该向量表示为参数代价函数是所有和的函数现在你得到了一个的代价函数即()。接着你得到与和顺序相同的数据你同样可以把 d W [ 1 ] dW^{[1]} dW[1]和 d b [ 1 ] db^{[1]} db[1]…… d W [ l ] dW^{[l]} dW[l]和 d b [ l ] db^{[l]} db[l]转换成一个新的向量用它们来初始化大向量它与具有相同维度。 同样的把 d W [ 1 ] dW^{[1]} dW[1]转换成矩阵 d b [ 1 ] db^{[1]} db[1]已经是一个向量了直到把 d W [ l ] dW^{[l]} dW[l]转换成矩阵这样所有的都已经是矩阵注意 d W [ 1 ] dW^{[1]} dW[1]与 W [ 1 ] W^{[1]} W[1]具有相同维度 d b [ 1 ] db^{[1]} db[1]与 b [ 1 ] b^{[1]} b[1]具有相同维度。经过相同的转换和连接运算操作之后你可以把所有导数转换成一个大向量它与具有相同维度现在的问题是和代价函数的梯度或坡度有什么关系 这就是实施梯度检验的过程英语里通常简称为“grad check”首先我们要清楚是超参数的一个函数你也可以将函数展开为(1, 2, 3, … … )不论超级参数向量的维度是多少为了实施梯度检验你要做的就是循环执行从而对每个也就是对每个组成元素计算approx[]的值我使用双边误差也就是 d θ a p p r o x [ i ] J ( θ 1 , θ 2 , . . . . . . θ i ε , . . . ) − J ( θ 1 , θ 2 , . . . . . . θ i − ε , . . . ) 2 ε dθ_{approx}[i] \frac{J(θ_1,θ_2,......θ_iε,...) - J(θ_1,θ_2,......θ_i-ε,...)}{2ε} dθapprox​[i]2εJ(θ1​,θ2​,......θi​ε,...)−J(θ1​,θ2​,......θi​−ε,...)​ 只对 θ i θ_i θi​增加其它项保持不变因为我们使用的是双边误差对另一边做同样的操作只不过是减去其它项全都保持不变。 从上节课中我们了解到这个值 d θ a p p r o x [ i ] dθ_{approx}[i] dθapprox​[i]应该逼近[]/[]是代价函数的偏导数然后你需要对的每个值都执行这个运算最后得到两个向量得到的逼近值 d θ a p p r o x dθ_{approx} dθapprox​它与具有相同维度它们两个与具有相同维度你要做的就是验证这些向量是否彼此接近。 具体来说如何定义两个向量是否真的接近彼此我一般做下列运算计算这两个向量的距离approx[] − []的欧几里得范数注意这里||approx − ||2没有平方它是误差平方之和然后求平方根得到欧式距离然后用向量长度归一化使用向量长度的欧几里得范数。分母只是用于预防这些向量太小或太大分母使得这个方程式变成比率我们实际执行这个方程式可能为 1 0 − 7 10^{−7} 10−7使用这个取值范围内的如果你发现计算方程式得到的值为 1 0 − 7 10^{−7} 10−7或更小这就很好这就意味着导数逼近很有可能是正确的它的值非常小。 如果它的值在 1 0 − 5 10^{−5} 10−5范围内我就要小心了也许这个值没问题但我会再次检查这个向量的所有项确保没有一项误差过大可能这里有 bug。 如果左边这个方程式结果是 1 0 − 3 10^{−3} 10−3我就会担心是否存在 bug计算结果应该比 1 0 − 3 10^{−3} 10−3小很多如果比 1 0 − 3 10^{−3} 10−3大很多我就会很担心担心是否存在 bug。这时应该仔细检查所有项看是否有一个具体的值使得approx[]与[]大不相同并用它来追踪一些求导计算是否正确经过一些调试最终结果会是这种非常小的值 1 0 − 7 10^{−7} 10−7那么你的实施可能是正确的。 在实施神经网络时我经常需要执行 foreprop 和 backprop然后我可能发现这个梯度检验有一个相对较大的值我会怀疑存在 bug然后开始调试调试调试调试一段时间后我得到一个很小的梯度检验值现在我可以很自信的说神经网络实施是正确的。 现在你已经了解了梯度检验的工作原理它帮助我在神经网络实施中发现了很多 bug希望它对你也有所帮助。 1.14 梯 度 检 验 应 用 的 注 意 事 项 Gradient Checking Implementation Notes 这节课分享一些关于如何在神经网络实施梯度检验的实用技巧和注意事项。 首先不要在训练中使用梯度检验它只用于调试。我的意思是计算所有值的 d θ a p p r o x [ i ] dθ_{approx}[i] dθapprox​[i]是一个非常漫长的计算过程为了实施梯度下降你必须使用和 backprop 来计算并使用 backprop 来计算导数只要调试的时候你才会计算它来确认数值是否接近。完成后你会关闭梯度检验梯度检验的每一个迭代过程都不执行它因为它太慢了。 第二点如果算法的梯度检验失败要检查所有项检查每一项并试着找出 bug也就是说如果 d θ a p p r o x [ i ] dθ_{approx}[i] dθapprox​[i]与[]的值相差很大我们要做的就是查找不同的值看看是哪个导致 d θ a p p r o x [ i ] dθ_{approx}[i] dθapprox​[i]与[]的值相差这么多。举个例子如果你发现相对某些层或某层的或的值相差很大但是dw[]的各项非常接近注意的各项与和的各项都是一一对应的这时你可能会发现在计算参数的导数的过程中存在 bug。反过来也是一样如果你发现它们的值相差很大 d θ a p p r o x [ i ] dθ_{approx}[i] dθapprox​[i]的值与[]的值相差很大你会发现所有这些项目都来自于或某层的可能帮你定位 bug 的位置虽然未必能够帮你准确定位 bug 的位置但它可以帮助你估测需要在哪些地方追踪 bug。 第三点在实施梯度检验时如果使用正则化请注意正则项。如果代价函数 J ( θ ) 1 m ∑ L ( y ^ ( i ) , y ( i ) ) λ 2 m ∑ ∣ ∣ W [ l ] ∣ ∣ 2 J(θ) \frac{1}{m}\sum{L(\hat{y}^{(i)},y^{(i)})} \frac{λ}{2m}\sum||W^{[l]}||^2 J(θ)m1​∑L(y^​(i),y(i))2mλ​∑∣∣W[l]∣∣2这就是代价函数的定义等于与相关的函数的梯度包括这个正则项记住一定要包括这个正则项。 第四点梯度检验不能与 dropout 同时使用因为每次迭代过程中dropout 会随机消除隐藏层单元的不同子集难以计算 dropout 在梯度下降上的代价函数。因此 dropout 可作为优化代价函数的一种方法但是代价函数被定义为对所有指数极大的节点子集求和。而在任何迭代过程中这些节点都有可能被消除所以很难计算代价函数。你只是对成本函数做抽样用dropout每次随机消除不同的子集所以很难用梯度检验来双重检验dropout的计算所以我一般不同时使用梯度检验和 dropout。如果你想这样做可以把 dropout 中的 keepprob 设置为 1.0然后打开 dropout并寄希望于 dropout 的实施是正确的你还可以做点别的比如修改节点丢失模式确定梯度检验是正确的。实际上我一般不这么做我建议关闭 dropout用梯度检验进行双重检查在没有 dropout 的情况下你的算法至少是正确的然后打开dropout。 最后一点也是比较微妙的一点现实中几乎不会出现这种情况。当和接近 0 时梯度下降的实施是正确的在随机初始化过中……但是在运行梯度下降时和变得更大。可能只有在和接近 0 时backprop 的实施才是正确的。但是当和变大时它会变得越来越不准确。你需要做一件事我不经常这么做就是在随机初始化过程中运行梯度检验然后再训练网络和会有一段时间远离 0如果随机初始化值比较小反复训练网络之后再重新运行梯度检验。 这就是梯度检验恭喜大家这是本周最后一课了。回顾这一周我们讲了如何配置训练集验证集和测试集如何分析偏差和方差如何处理高偏差或高方差以及高偏差和高方差并存的问题如何在神经网络中应用不同形式的正则化如2正则化和 dropout还有加快神经网络训练速度的技巧最后是梯度检验。这一周我们学习了很多内容你可以在本周编程作业中多多练习这些概念。祝你好运期待下周再见。
http://www.dnsts.com.cn/news/166495.html

相关文章:

  • 10.制作一个网站一般先要明确( )视频网站如何做引流
  • 移动网站备案公众号平台登陆
  • 网站系统使用手册学院网站建设方案 网站内容
  • 求职网站排名泰安网信科技
  • 高品质网站开发企业网站模板源码起名
  • 杭州电商网站建设成都网站建设定
  • 站长工具域名查询网站源码带采集
  • 唐山网站排名推广软件开发师
  • 中网自助建站个人主页排版
  • 锦州市做网站wordpress uploads 权限
  • 购物网站主要的功能模块上海广告公司大全
  • 口碑好的网站建设深圳外贸网络推广渠道
  • 广州做网站专业公司wordpress 菜单 icon
  • 在线免费网站建设平台手机制作报价单app
  • 做外包的网站有哪些问题提供做网站
  • 上海徐汇区网站建设公司天津市城乡建设网
  • 东莞化妆品网站建设杭州seo网
  • 做网站要注意哪一点郑州中小企业网站制作
  • 中国黄金集团建设有限公司官方网站网页美化与布局教程
  • 电商网站构成网站建设与维护课难吗
  • 网站不可以做哪些东西wordpress缩略图幻灯展现
  • 做知识产权相关的网站designspiration
  • 重庆网站模板建站网站推广方案及预算
  • 展示设计图片福州seo代理计费
  • 搜索引擎优化网站的网址聚名网登录
  • 十堰做网站的工作室酒水代理加盟免费铺货
  • aspcms网站图片不显示怎么利用wordpress做网站
  • 怎么做网站卖美瞳随州王章欣
  • 网站建设规划设计祥云平台英文网站
  • 万年历网站做温州推广团队