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

从0开始学习计算机视觉--Day06--反向传播算法

尽管解析梯度可以让我们省去巨大的计算量,但如果函数比较复杂,对这个损失函数进行微分计算会变得很困难。我们通常会用反向传播技术来递归地调用链式法则来计算向量每一个方向上的梯度。具体来说,我们将整个计算过程的输入与输入具体化,用计算图表示:

以SVM为例,如果是求梯度,在点乘处直接做偏导就行了,但如果函数并没有那么简单,由很多个不同的点乘和加法构成呢,那么函数只会在最后形成,要求偏导的话,就要用间接的关系,反相传播的意思就是,假如在第一个节点f与A有关,第二个节点A与要求的偏导B和C有关,那么在正向求完每个节点的梯度值后,就可以用f对A的偏导,再乘以A对B和C的偏导,约去分子分母的同项,从而得到该方向上的剃度了。那么也就是说,假如计算过程可以写成计算图的形式,那么计算每种损失函数的微分都可以实现,区别只是快慢。

假如我们的损失函数是f(w,x)=\frac{1}{1+e^{-(w_{0}x_{0}+w_{1}x_{1}+w_{2})}},把计算过程拆解为计算图:

从这个复杂的例子我们就能理解,假如我们直接对损失函数进行求导,这个计算过程会很复杂,难度大的同时还增加计算时间,换成反向传播之后,我们只需根据输入值,一步一步地进行简单计算,然后从最后根据上一个节点传来的值计算偏导再乘到一起就行。

值得注意的是,在实际应用的时候,我们并不一定要拆解成每一步,我们可以将其中一部分当成一个整体,类似于指代的过程,这样我们就可以先通过公式计算完外部的整体求导,再对内部进行反向传播的运算。

学习来自斯坦福教程:Stanford University CS231n: Deep Learning for Computer Vision

http://www.lryc.cn/news/577235.html

相关文章:

  • 【FR801xH】富芮坤FR801xH之PMU GPIO
  • Stable Diffusion 项目实战落地:从0到1 掌握ControlNet 第三篇: 打造光影字形的创意秘技-文字与自然共舞
  • [面试] js手写题-树转数组
  • 文心大模型 4.5 系列开源首发:技术深度解析与应用指南
  • uni-app使用uview2自定义tabber
  • PHP 全面解析:从入门到实践的服务器端脚本语言
  • 计算机网络中那些常见的路径搜索算法(一)——DFS、BFS、Dijkstra
  • Qt Quick 与 QML(四)qml中的Delegate系列委托组件
  • Python I/O 库 包 iopath
  • ExGeo代码理解(七)main.py(运行模型进行训练和测试)
  • 生成式人工智能实战 | 变分自编码器(Variational Auto-Encoder, VAE)
  • 如何让Excel自动帮我们算加减乘除?
  • PHP语法基础篇(七):函数
  • 电脑开机加速工具,优化启动项管理
  • 深入比较 Gin 与 Beego:Go Web 框架的两大选择
  • 深度学习04 卷积神经网络CNN
  • 国科大深度学习作业2-基于 ViT 的 CIFAR10 图像分类
  • 工业级PHP任务管理系统开发:模块化设计与性能调优实践
  • DBeaver 设置阿里云中央仓库地址的操作步骤
  • 提示技术系列——链式提示
  • 数据结构入门-图的基本概念与存储结构
  • 【软考高项论文】论信息系统项目的干系人管理
  • 利用不坑盒子的Copilot,快速排值班表
  • upload-labs靶场通关详解:第15-16关
  • docker-compose部署Nacos、Seata、MySQL
  • 《Effective Python》第十一章 性能——使用 timeit 微基准测试优化性能关键代码
  • 初始CNN(卷积神经网络)
  • C++ cstring 库解析:C 风格字符串函数
  • 深入理解Webpack的灵魂:Tapable插件架构解析
  • 人工智能和云计算对金融未来的影响