【神经网络】梯度检测

news2024/12/22 18:28:43

在神经网络中,使用前向或者反向传播计算后,再使用梯度下降去寻找代价函数最小时 θ \theta θ的取值是一个可行的方法,但是它很容易出错:因为在这个算法中含有海量的细节,容易产生微小而又难以察觉的bug。即便是存在bug,梯度下降计算出来的 J ( θ ) J(\theta) J(θ)还是会照常迭代下降,但是得出来的结果的误差将会比正确的情况高出一个量级。因此我们需要使用梯度检验的方法赖解决这种问题,只要需要使用类似梯度下降或者反向传播的算法都可以使用这种方法,这种方法能够确保你的前向\反向传播完全正确。

首先我们以下图为例子,其中有一个点 θ \theta θ,而 ϵ \epsilon ϵ是一个很小的数,类似于微积分中的微小增量,一般可以将 ϵ \epsilon ϵ取作 1 0 − 4 10^{-4} 104
在这里插入图片描述
而另外两个点分别为 ( θ − ϵ , J ( θ − ϵ ) ) (\theta-\epsilon , J(\theta-\epsilon )) (θϵ,J(θϵ)) ( θ + ϵ , J ( θ + ϵ ) ) (\theta+\epsilon , J(\theta+\epsilon )) (θ+ϵ,J(θ+ϵ)),这和导数十分像不是吗?那当然我们可以得出如下的式子 δ δ θ J ( θ ) ≈ g r a d A p p r o x = J ( θ + ϵ ) − J ( θ − ϵ ) 2 ϵ \frac{\delta }{\delta \theta } J(\theta )\approx gradApprox= \frac{J(\theta+\epsilon )-J(\theta-\epsilon )}{2\epsilon } δθδJ(θ)gradApprox=2ϵJ(θ+ϵ)J(θϵ)

接下来我们呢考虑更加广泛的情况比如假设 θ \theta θ是一个n维向量,也就是 θ ∈ R n , θ = [ θ 1 , θ 2 , θ 3 , . . . , θ n ] \theta \in R^n,\theta=[\theta_1,\theta_2,\theta_3,...,\theta_n] θRnθ=[θ1,θ2,θ3,...,θn],那么我们可以使用相同的办法得出对应偏导数的大约值
在这里插入图片描述
接下来我们需要使用到反向传播所计算出来的导数向量 D   V e c = [ D ( 1 ) , D ( 2 ) , D ( 3 ) . . . D ( n ) ] D\:Vec=[D^{(1)},D^{(2)},D^{(3)}...D^{(n)}] DVec=[D(1),D(2),D(3)...D(n)],检查 g r a d A p p r o x ≈ D   V e c gradApprox\approx D\:Vec gradApproxDVec,如果成立的话,则可以认为反向传播是正确的,把DVex用于梯度下降则可以得出较好的结果

主要的步骤如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/653220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么 Serverless 能提升资源利用率?

作者:木吴 阿里云智能高级技术专家 业务的负载往往不是一成不变的,而是随着时间呈现一定的上下波动。传统的应用构建方式一般是备足充分的资源以保障业务可用性,造成资源利用率不高的现象。随着容器技术的普及,应用可以通过弹性伸…

二叉树相关OJ练习题(1、锯齿形层序遍历 2、二叉搜索子树的最大键值和 3、验证二叉树 4、剑指 Offer II 047. 二叉树剪枝)

接上次博客:https://mp.csdn.net/mp_blog/creation/editor/130934670​​​​​​ 目录 1、锯齿形层序遍历 2、二叉搜索子树的最大键值和 3、验证二叉树 4、剑指 Offer II 047. 二叉树剪枝 最近临近期末,忙得焦头烂额的…… 天天都是高数、微观经济…

疫情下基于Java的居民购菜平台设计+第六稿+文档

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 疫情下基于Java的居民购菜平台设计第六稿文档 视频演示 视频去哪了呢?_哔哩哔哩_bilibili 系统介绍 疫情下基于Java的居民购菜平台设计 …

uniapp设置滚动条滚动到指定位置

场景:左侧菜单栏,每次切换时,需要右侧商品展示区保持滚动条及页面在最顶部 1.利用scroll-view 中scroll-top属性实现 1.1设置scrollToTop属性为0 data() {return {// 保证每次切换,滚动条位置都在最顶部scrollToTop: 0,}; } 1.…

实验篇(7.2) 13. 站对站安全隧道 - 仅一方发起连接(FortiGate-IPsec) ❀ 远程访问

【简介】上一篇实验发现,两端都是可以远程的公网IP的话,两端防火墙都可以发出连接请求,并且都能够连通。这样的好处是安全隧道不用随时在线,只在有需求时才由发起方进行连接。但是现实中很多情况下只有一端公网IP可以远程&#xf…

C++语言与C的不同之处

头文件 C语言的引用头文件的方式是include名字.h的方式进行引用&#xff0c;而C去掉了.h&#xff0c;但是又是完全兼容C语言的。在库前面添加一个c来表明这个库是来自于C语言的。 //C语言的方法&#xff1a;带.h的方式进行include #include<stdio.h> #include<math.…

Python实现PSO粒子群优化支持向量机分类模型(svc算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 PSO是粒子群优化算法&#xff08;Particle Swarm Optimization&#xff09;的英文缩写&#xff0c;是一…

DevChat 上线 VSCode 插件!国内开源的 AI 编程,做不被 AI 取代的新程序员!

打不过就加入。与其担心被 AI 取代&#xff0c;不如现在就学习驾驭它。 &#xff08;要用 AI 来辅助写代码&#xff0c;国际主流的几个大语言模型的表现都不尽如人意&#xff0c;谁用谁知道……除了 Claude 我们还在测试中。于是&#xff0c;我们基于大语言模型&#xff0c;做…

数据指北 AI

大家好&#xff0c;我是脚丫先生 (o^^o) &#x1f604; &#x1f600; 与GPT-AI聊天是一件很有趣的事情&#xff01; 最近一直没更新&#xff0c;在忙于研究搭建GPT~~~搭建了一个可以二开的数据指北AI。 目前模型是用的GPT3&#xff0c;有点不精准。 鲁迅和周树人的关系都搞…

阿里云数据库PolarDB MySQL版倚天ARM架构详解

阿里云云原生数据库PolarDB MySQL版推出倚天ARM架构&#xff0c;倚天ARM架构规格相比X86架构规格最高降价45%&#xff0c;PolarDB针对自研倚天芯片&#xff0c;从芯片到数据库内核全链路优化&#xff0c;助力企业降本增效。基于阿里云自研的倚天服务器&#xff0c;同时在数据库…

html2canvas给指定区域添加满屏水印

效果图如下&#xff1a; 直接贴上代码 下载插件&#xff1a; npm i html2canvas <template><div ref"imageDom"><el-button click"downloadPicture">下载</el-button><div><el-tableclass"tableX":height&q…

JUC并发编程:Condition的简单理解与使用

目录 1&#xff1a;概述 2&#xff1a;举例 3&#xff1a;condition 的一些方法 1&#xff1a;概述 Condition本质上是一个接口&#xff0c;Condition因素与Object监视器方法&#xff08; wait &#xff0c; notify和notifyAll &#xff09;成不同的对象&#xff0c;以得到具…

医院信息化PACS系统源码(影像阅片、报告模板、三维重建)

随着互联网强势走进医院行业&#xff0c;医院信息化建设已成为推动医院机构正常运转和进行现代化管理的基本要素。影像检查作为医院机构在疾病诊断中的高频诊疗项目&#xff0c;业务量自然不容小觑&#xff0c;为减轻医生工作压力&#xff0c;PACS系统成为机构“必选项”。 一、…

sheetJS实现把excel导入数据库

1、问题描述 最近在做报表导入数据库的需求&#xff0c;报表文件为excel里面有多个sheet。 2、解决方法 使用FileReader异步读取上传的文件。使用sheet.js进行excel表格内容的解析。使用bootstrap.js的tab组件对上传的表格进行一个页面预览的展示。 3、参考代码 ImportReportF…

Linux 文件实时备份 rsync+lsyncd

一、原理和说明 lsyncd官网 &#xff08;一&#xff09;软件说明 目的是每次只把新修改的同步&#xff0c;而不是全量备份。 Rsync&#xff08;同步&#xff09;&#xff1a;将一个服务器的一个文件夹的内容提交到另外一个服务器的文件夹 lsyncd&#xff08;差异检测并调用r…

Java阶段四Day06

Java阶段四Day06 文章目录 Java阶段四Day06关于配置响应内容中不包含Null的属性关于配置跨域关于如何不用添加RequestBody也可以接收请求 关于配置响应内容中不包含Null的属性 响应内容中的null可以使用以下三种方式中的一种即可解决&#xff0c;且范围越小&#xff0c;越优先 …

新人如何在实际工作做性能测试?怎么合理选择并发数?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 从小入手&#xf…

C++ 11(3) | 新的类功能、可变参数模板、lambda表达式

前文中我们讲述了C11中新增的右值引用&#xff0c;在本文中我们将继续讲解C11中的新的类功能、可变参数模板、lambda表达式。 新的类功能 默认成员函数 之前我们学习过在C中有六个默认成员函数构造函数、析构函数、拷贝构造函数、拷贝赋值重载、取地址重载、const 取地址重载…

【59天|503.下一个更大元素II ● 42. 接雨水】

503.下一个更大元素II class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {stack<int> st;int n nums.size();vector<int> res (n, -1);for(int i0; i<2*n;i){while(!st.empty()&&nums[i%n]>nums[st.t…

第13章_事务基础知识

第13章_事务基础知识 1.数据库事务概述 事务是数据库区别于文件系统的重要特性之一&#xff0c;当我们有了事务就会让数据库始终保持一致性&#xff0c;同时我们还能通过事务的机制恢复到某个时间点&#xff0c;这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。 1…