MoonBit月兔编程语言 现代编程思想 第十二课 案例:自动微分现代编程思想 案例:自动微分 Hongbo Zhang ## 微分 • 微分被应用于机器学习领域 ◦ 利用梯度下降求局部极值 牛顿迭代法求函数解: $ x^{3}-10x^{2}+x+1=0 $ • 我们今天研究简单的函数组合 ○ 例: $ f(x_{0},x_{1})=5x_{0}^{2}+x_{1} $ ■ $ f(10,100)=600 $ ■ $ \frac{\partial jpg) ## 牛顿迭代法  ## 微分 • 微分被应用于机器学习领域 ◦ 利用梯度下降求局部极值 牛顿迭代法求函数解: $ x^{3}-10x^{2}+x+1=0 $ • 我们今天研究简单的函数组合 ○ 例: $ f(x_{0}, f}{\partial x_{1}}(10,100)=1 $ ## 微分 • 函数微分的几种方式 ☐ 手动微分:纯天然计算器 ■ 缺点:对于复杂表达式容易出错 ○ 数值微分: $ \frac{f(x+\delta x)-f(x)}{\delta x} $ ■ 缺点:计算机无法精准表达小数,且绝对值越大,越不精准 符号微分:Mul(Const(2), Var(1)) -> Const(2)0 码力 | 30 页 | 3.24 MB | 2 年前3
深度学习与PyTorch入门实战 - 16. 什么是梯度## PyTorch ## 什么是梯度 主讲人:龙良曲 ## Clarification 导数, derive - 偏微分, partial derive 梯度, gradient $$ \nabla f=\left(\frac{\partial f}{\partial x_{1}};\frac{\partial f}{\partial x_{2}};\ldots;\frac{\partial0 码力 | 17 页 | 1.49 MB | 2 年前3
机器学习课程-温州大学-高等数学回顾## 机器学习-高等数学回顾 黄海广 副教授 2021年07月 ## 高等数学 ### 1. 导数定义: 导数和微分的概念 $$ f^{\prime}(x_{0})=\lim_{\Delta x\to0}\frac{f(x_{0}+\Delta x)-f(x_{0})}{\Delta x} $$ 或者: $ f'(x_{0}) = \lim_{x \to x_{0}} \frac{f(x) -uv^{\prime}}{v^{2}}(v\neq0) $ $$ d(\frac{u}{v})=\frac{vdu-udv}{v^{2}} $$ ## 高等数学 ### 6. 基本导数与微分表 (1) y = c (常数) 则: $ y' = 0 \quad dy = 0 $ (2) $ y = x^{\alpha} $ ( $ \alpha $ 为实数) 则: $ (16) y = chx 则: $ y' = shx $ $ d(chx) = shxdx $ ## 高等数学 ### 7. 复合函数,反函数,隐函数以及参数方程所确定的函数的微分法 (1) 反函数的运算法则: 设 $ y = f(x) $ 在点 x 的某邻域内单调连续,在点 x 处可导且 $ f'(x) \neq 0 $ ,则其反函数在点 x 所对应的 y 处可导,并且有0 码力 | 28 页 | 787.86 KB | 2 年前3
机器学习课程-温州大学-02-数学基础回顾-0.机器学习的数学基础整理(国内教材)机器学习的数学基础.....1 高等数学.....1 线性代数.....9 概率论和数理统计.....19 ## 机器学习的数学基础 ## 高等数学 ### 1. 导数定义: 导数和微分的概念 $$ f^{\prime}(x_{0})=\lim_{\Delta x\to0}\frac{f(x_{0}+\Delta x)-f(x_{0})}{\Delta x} $$ $$ \prime}-uv^{\prime}}{v^{2}}(v\neq0) $$ $$ d(\frac{u}{v})=\frac{vdu-udv}{v^{2}} $$ ### 6. 基本导数与微分表 (1) y = c (常数) 则: $ y' = 0 $ dy = 0 (2) $ y = x^{\alpha} $ ( $ \alpha $ 为实数) 则: $ y' = chxdx $ (16) y = chx 则: $ y' = shx $ $ d(chx) = shxdx $ ### 7. 复合函数,反函数,隐函数以及参数方程所确定的函数的微分法 (1) 反函数的运算法则:设 $ y = f(x) $ 在点x的某邻域内单调连续,在点x处可导且 $ f'(x) \neq 0 $ 。 0,则其反函数在点x所对应的y处可导,并且有 $0 码力 | 31 页 | 1.18 MB | 2 年前3
PyTorch OpenVINO 开发实战系列教程第一篇facebook 发布的开源机器学习(深度学习)框架,Pytorch 最初的来源历史可以追溯到另外两个机器学习框架,第一个是 torch 框架,第二个是 Chainer,实现了 Eager 模式与自动微分,Pytoch 集成了这两个框架的优点,把 Python 语言作为框架的首选编程语言,所以它的名字是在 torch 的前面加上 Py 之后的 Pytorch。由于 Pytorch 吸取了之前一些深度 lse、while、for等关键字,而在深度学习框架中编程模式主要是基于计算图、张量数据、自动微分、优化器等组件构成。面向对象编程运行的结果是交互式可视化的,而深度学习通过训练模型生成模型文件,然后再使用模型预测,本质数据流图的方式工作。所以学习深度学习首先必须厘清深度学习编程中计算图、张量数据、自动微分、优化器这些基本术语概念,下面分别解释如下: ## 张量 张量是深度学习编程框架中需要理解 流向。 ## ☑ 自动微分 使用 Pytorch 构建神经网络(计算图)模型之后,一般都是通过反向传播进行训练,使用反向传播算法对神经网络中每个参数根据损失函数功能根据梯度进行参数值的调整。为了计算这些梯度完成参数调整,深度学习框架中都会自带一个叫做自动微分的内置模块,来自动计算神经网络模型训练时候的各个参数梯度值并完成参数值更新,这种技术就是深度学习框架中的自动微分。 ### 1.4 Pytorch0 码力 | 13 页 | 5.99 MB | 2 年前3
MoonBit月兔编程语言 现代编程思想 第十三课 案例:神经网络
expected: Int) -> Double { 5. -inputs[expected].log().value() 6. } ## 神经网络训练 ## • 后向微分:计算梯度 ☐ 从现有参数构建,积累微分 1. fn Backward::param(param: Array[Array[Double]], diff: Array[Array[Double]], 2. i: { value: param[i][j], backward: fn { d => diff[i][j] = diff[i][j] + d} 4. } ## ○ 计算并根据损失函数求微分 1. fn diff(inputs: Array[Double], expected: Int, 2. param_hidden: Array[Array[Backward]], param_output: jpg) ○ 指数衰减学习率: $ f(x)=ae^{-bx} $ ,其中a、b为常数,x为训练次数 ## 神经网络训练 - 将数据随机分成两个部分 ◦ 训练集:每一轮根据训练集的数据进行计算并求微分 ☐ 验证集:在训练结束后验证成果,避免过拟合 • 数据量较少,可以直接进行完整训练 ◦ 每一轮训练都使用训练集中的全部数据 ☐ 如果数据较多,则需要考虑分批训练 ## 总结 • 本章节介绍了神经网络的基础知识0 码力 | 17 页 | 521.66 KB | 2 年前3
动手学深度学习 v2.02.3.11 关于线性代数的更多信息 ..... 62 2.4 微积分 ..... 63 2.4.1 导数和微分 ..... 64 2.4.2 偏导数 ..... 68 2.4.3 梯度 ..... 68 2.4.4 链式法则 ..... 68 2.5 自动微分 ..... 69 2.5.1 一个简单的例子 ..... 70 2.5.2 非标量变量的反向传播 .... 通常会被深度学习框架的高级抽象隐藏起来。特别是在基础教程中,我们希望读者了解在给定层或优化器中发生的一切。在这些情况下,我们通常会提供两个版本的示例:一个是我们从零开始实现一切,仅依赖张量操作和自动微分;另一个是更实际的示例,我们使用深度学习框架的高级API编写简洁的代码。一旦我们教了您一些组件是如何工作的,我们就可以在随后的教程中使用高级API了。 ## 内容和结构 全书大致可分为三个部分,在图1中用不同的颜色呈现: 需要依靠简化对现实的假设来获得有用的模型。当数据丰富时,可以用更准确地拟合实际情况的非参数模型来代替。在某种程度上,这反映了物理学在上个世纪中叶随着计算机的出现所经历的进步。现在人们可以借助于相关偏微分方程的数值模拟,而不是用手来求解电子行为的参数近似。这导致了更精确的模型,尽管常常以牺牲可解释性为代价。 与以前工作的另一个不同之处是接受次优解,处理非凸非线性优化问题,并且愿意在证明之前尝试。这0 码力 | 797 页 | 29.45 MB | 2 年前3
机器学习课程-温州大学-01机器学习-引言|Φ|φ|phi|fai|斐| |X|χ|chi|khai|喜| |Ψ|ψ|psi|psai|普西| |Ω|ω|omega|omiga|欧米| ### 3. 机器学习的背景知识-数学基础 ## 高等数学 导数、微分、泰勒公式..... ## 线性代数 向量、矩阵、行列式、秩、线性方程组、特征值和特征向量..... ## 概率论与数理统计 随机事件和概率、概率的基本性质和公式、常见分布、期望、协方差.. x}\bigg|_{x=x_{0}}\quad 或 \quad\frac{\mathrm{d}f(x)}{\mathrm{d}x}\bigg|_{x=x_{0}} $$ ## 高等数学-基本导数与微分表 (1) y = c (常数) 则: $ y' = 0 $ (2) $ y = x^{\alpha} $ ( $ \alpha $ 为实数) 则: $ y' = \alpha SciPy是构建在NumPy的基础之上的,它提供了许多的操作NumPy的数组的函数。 SciPy是一款方便、易于使用、专为科学和工程设计的Python工具包,它包括了统计、优化、整合以及线性代数模块、傅里叶变换、信号和图像图例,常微分方差的求解等 |scipy.cluster|向量量化| |---|---| |scipy.constants|数学常量| |scipy.fftpack|快速傅里叶变换| |scipy.integrate|积分|0 码力 | 78 页 | 3.69 MB | 2 年前3
机器学习课程-温州大学-01深度学习-引言|Φ|φ|phi|fai|斐| |X|χ|chi|khai|喜| |Ψ|ψ|psi|psai|普西| |Ω|ω|omega|omiga|欧米| ### 3. 深度学习的背景知识-数学基础 ## 高等数学 导数、微分、泰勒公式..... ## 线性代数 向量、矩阵、行列式、秩、线性方程组、特征值和特征向量..... ## 概率论与数理统计 随机事件和概率、概率的基本性质和公式、常见分布、期望、协方差.. x}\bigg|_{x=x_{0}}\quad 或 \quad\frac{\mathrm{d}f(x)}{\mathrm{d}x}\bigg|_{x=x_{0}} $$ ## 高等数学-基本导数与微分表 (1) y = c (常数) 则: $ y' = 0 $ (2) $ y = x^{\alpha} $ ( $ \alpha $ 为实数) 则: $ y' = \alpha SciPy是构建在NumPy的基础之上的,它提供了许多的操作NumPy的数组的函数。 SciPy是一款方便、易于使用、专为科学和工程设计的Python工具包,它包括了统计、优化、整合以及线性代数模块、傅里叶变换、信号和图像图例,常微分方差的求解等 scipy.cluster 向量量化 scipy.constants 数学常量 scipy.fftpack 快速傅里叶变换 scipy.integrate 积分 scipy.interpolate0 码力 | 80 页 | 5.38 MB | 2 年前3
机器学习课程-温州大学-06深度学习-优化算法jpg) 在第t次迭代中,该算法会照常计算当下mini-batch的微分dW,db,所以我会保留这个指数加权平均数,我们用到新符号 $ S_{dW} $ ,而不是 $ v_{dW} $ ,因此 $ S_{dW}=\beta S_{dW}+(1-\beta)dW^{2} $ ,澄清一下,这个平方的操作是针对这一整个符号的,这样做能够保留微分平方的加权平均数,同样 $ S_{db}=\beta S_{db}+(1-\beta)db^{2}0 码力 | 31 页 | 2.03 MB | 2 年前3
共 39 条
- 1
- 2
- 3
- 4













