微分

PyTorch的Autograd: 自动微分

被刻印的时光 ゝ 提交于 2020-03-10 23:47:54
原文出自 http://studyai.com/pytorch-1.4/beginner/blitz/autograd_tutorial.html 在PyTorch的所有神经网络中,核心是 autograd 包。让我们先简单介绍一下, 然后我们将开始训练我们的第一个神经网络。 autograd package 为张量上的所有操作提供自动微分(automatic differentiation)。 它是一个按运行定义的框架(define-by-run framework), 这意味着您的后端(backprop)由您的代码运行方式来定义,并且每个迭代都可能是不同的。 让我们用更简单的术语来看这一点,并举几个例子。 张量(Tensor) torch.Tensor 是此package的核心类。 如果你将它的属性 .requires_grad 设置为 True, 它就开始跟踪在它上面的所有运算操作。当你完成计算时你可以调用 .backward() , 这会使得所有的梯度都被自动计算出来。对于这个tensor的梯度将会被累加到 .grad 属性中去。 如果想要阻止一个tensor不去跟踪历史(tracking history), 你可以调用 .detach() 方法 把它从计算历史中分离出来, 并且会阻止进一步的计算被跟踪。 若要防止跟踪历史记录(并使用内存),还可以把代码块封装在with语句

一维常物性无源对流导热微分方程数值解(大概)

与世无争的帅哥 提交于 2020-03-04 21:10:36
计算传热学第一次大作业 1 Taylor级数展开法 1.1 网格划分 Taylor级数展开发的网格划分使用外点法 1.2 离散方程表达式 ρ u d ϕ d x = Γ d 2 ϕ d x 2 (1) \rho u\frac{d\phi}{d x}=\Gamma \frac{d^{2}\phi}{dx^{2}}\tag{1} ρ u d x d ϕ ​ = Γ d x 2 d 2 ϕ ​ ( 1 ) 将 ϕ \phi ϕ 分别在 i i i +1点和 i i i -1点在 i i i 点展开 ϕ ( i + 1 ) = ϕ ( i ) + d ϕ d x ∣ i δ x + d 2 ϕ d x 2 ∣ i δ x 2 2 ! + … … (2) \phi(i+1) = \phi(i)+\left.\frac{d\phi}{dx}\right|_{i}\delta x+\left.\frac{d^{2}\phi}{dx^{2}}\right|_{i}\frac{\delta x^{2}}{2!}+…… \tag{2} ϕ ( i + 1 ) = ϕ ( i ) + d x d ϕ ​ ∣ ∣ ∣ ∣ ​ i ​ δ x + d x 2 d 2 ϕ ​ ∣ ∣ ∣ ∣ ​ i ​ 2 ! δ x 2 ​ + … … ( 2 ) ϕ ( i − 1 ) = ϕ ( i ) − d ϕ d

我的PID库与PID基本优化(二)

笑着哭i 提交于 2020-03-03 23:58:52
本系列旨在以我自己写的PID lib为例,讲一下PID的几点基本优化,PID的基本原理网上有很多资料,因此本系列将不会涉及PID的基本实现原理,在这里特别推荐Matlab tech talk的PID教程: https://ww2.mathworks.cn/videos/series/understanding-pid-control.html 。 由于笔者大一在读,还没有学习自动控制原理等课程,因此本系列将不会从自控原理角度展开,相反的,本系列将试图 从“直觉”展开 ,通过直观的描述让大家从直觉上感受并理解PID的一些包括微分先行、积分分离等基础的优化。 由于笔者水平有限,文中难免存在一些不足和错误之处,诚请各位批评指正。 我的PID库与PID基本优化(一) 中讲解了代码结构与代码使用,算法有关内容于该篇开始 1 梯形积分 1.1 问题 积分项的作用在绝大多数情况下是消除静差,为了更精准的消除静差,我们需要提高积分项的计算精度。在一般的PID算法中,我们通过矩形面积来近似计算积分,在微积分中我们了解到,当 \(\Delta t\) 趋近于无穷小时,这些矩形面积的累加就会无限逼近曲线与坐标轴围成的面积。 1.2 解决方案 为了达到更精准的控制,我们一般可以通过提高控制频率来实现,但在某些情况下受制于控制设备算力,我们无法以很高的频率来运行我们的算法。因此我们可以用梯形代替矩形

高等数学——讲透微分中值定理

放肆的年华 提交于 2020-02-21 09:54:28
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天和大家回顾一下高数当中的微分中值定理,据说是很多高数公式的基础。由于本人才疏学浅,所以对于这点没有太深的认识。但是提出中值定理的几个数学家倒是如雷贯耳,前段时间抽空研究了一下,发现很有意思,完全没有想象中那么枯燥。所以今天的文章和大家聊聊这个话题,我会跳过一些无关紧要或者意义不大的证明部分,尽量讲得浅显有趣一些。 费马引理 首先上场的是费马引理,它是我们介绍后面罗尔中值定理的前提。这个费马引理非常简单,不需要太多篇幅。所以在介绍它之前,先来讲讲费马这个人。 费马在数学届大名鼎鼎,他最著名的理论是费马大小定理。定理的内容我不讲了,和这篇文章也没啥关系。但是这背后有一段著名的故事,说是费马在提出费马大定理的时候并没有觉得它有多么出彩,因此没有加以详细的证明。有一天他在翻阅自己笔记本的时候突然灵感迸发想出了一个绝妙的证明方法。但是由于笔记本旁边空白的区域太小,所以费马这人就在书页边写了一句话,他说: 我已发现一种绝妙的证明方法,可惜这里空间太小,写不下。 没想到费马不当回事的定理在日后的数学界非常重要,出人意料的是无数数学家尝试证明费马大定理的正确性,但是都没有成功。虽然这个定理广泛使用,大家也都觉得应该是正确的,但是就是没有人能证明。这一度也称为数学界的顶级难题,一直到1995年,据说也是靠着计算机提供了算力支撑

走进基础数学—一位学霸的心路历程

巧了我就是萌 提交于 2020-02-21 02:54:30
作者 | 何通木 来源 | 知乎 大家好,我是来自清华大学数学系的准大四学生何通木。学了三年现代数学,我想把自己的一些感悟记录下来。回头看这三年,觉得走了很多弯路、做了很多意义不大的事情,想来是跟学长、老师们的深层次沟通少了,所以想用剖析自己的经历、优缺点的方式,向大家展示一个天分普通的学生的本科学习历程,希望后来人能够更好地利用这三年时间。 对于不想从头看到尾的同学,可以根据目录挑选想看的部分,也可以只看第八节:修习顺序建议。以下观点仅为个人观点,欢迎大家讨论! 目录 一、指导思想 二、最基本的语言:数分、线代、抽代、拓扑、流形 三、启发性的直观:黎曼曲面、微分拓扑、微分几何 四、大一统的理论:代数拓扑、代数几何 五、辅助性的工具:同调代数、交换代数 六、数学的皇后:代数数论 七、准备丘赛 八、修习顺序建议 九、附录:课程大纲 一、指导思想:广度优先 为什么我是大三结束的时候来写这篇建议呢,因为到了大四大家已经要开始准备自己那一个小方向的毕业论文了,前三年才是基础数学的基础性学习阶段。老师们都说,在本科时候要多学点东西;丘成桐先生也经常说,数学家至少要精通两个方向,才有可能发现不同方向的联系,才能做出大成就。“发现不同学科的联系”是我逐渐领悟到的努力目标,其本质是更好地理解数学,同时也是把冗余的东西缩并起来,化归到自己原有的知识体系中。 所以这篇建议的(来源于我的)局限性在于

微分几何 随便一说

大城市里の小女人 提交于 2020-01-20 02:29:30
本文 是 我在 民科吧 帖 《学微分几何的人都喜欢装神弄鬼,故作高深骗人》 http://tieba.baidu.com/p/6451514218 里 的 回复 。 7 楼 一看到 “标架” 我就想笑, 跟 计算机 里 的 微服务 容器 Service Mesh 之类 一样 。 看看 网上 对 Service Mesh 的 介绍, 《什么是 Service Mesh》 https://www.cnblogs.com/williamjie/p/9497435.html : “ 这个词最早使用由开发 Linkerd 的 Buoyant 公司提出,并在内部使用。2016 年 9 月 29 日第一次公开使用这个术语。2017 年的时候随着 Linkerd 的传入,Service Mesh 进入国内技术社区的视野。最早翻译为“服务啮合层”,这个词比较拗口。用了几个月之后改成了服务网格。后面我会给大家介绍为什么叫网格。 ” 看到没有,里面有一个 词, “服务啮合层”, 是不是 跟 “标架” 神似 ? 微分几何 能做什么事? 能说说吗? 不用 那么多 术语, 微分几何 能做的, 用 解析几何 和 古典微积分 一样能做, 还有什么好说的 ? 来源: https://www.cnblogs.com/KSongKing/p/12216172.html

如何理解三大微分中值定理?(转)

做~自己de王妃 提交于 2020-01-18 19:49:54
今天看高数的微分中值定理,前两个中值定理到还是看的很简单,但是到了第三的柯西中值定理的时候,有了一些疑惑,我一直想研究它的几何意义,可惜课本并没有画出来,按照课本的意思柯西中值定理就是拉格朗日中值定理的参数方程形式,我头铁的想直接用两个拉格朗日中值定理的表达式凑出柯西中值定理表达式,结果却发现两个ξ可能不是同一个,后来发现了这样一篇文章,通过画图,利用一些物理现象来解释微分中值定理,尤其是哪个二维空间运动的图形用于解释柯西中值定理真的是太形象了。 转载自 https://zhuanlan.zhihu.com/p/47436090 微分中值定理是很重要的基础定理,很多定理都是以它为基础进行证明的。 1 罗尔中值定理 1.1 直觉 这是往返跑: 可以认为他从 点出发,经过一段时间又回到了 点,画成 (位移-时间)图就是: 根据常识,因为要回到起点,中间必定有速度为0的点: 拳击比赛中,步伐复杂: 但不论怎样,只要最后回到起点,中间必定有速度为0的点: 这就是罗尔中值定理。 1.2 罗尔中值定理 设函数满足以下三个条件: 在闭区间 上连续 在开区间 上可导 则存在 ,使得 在闭区间 连续是必须的,否则有可能没有 : 在开区间 可导也是必须的: 1.3 拓展 可能有的同学觉得,定理中的条件“ 在闭区间 连续、在 可导”比较古怪,为什么不是“ 在闭区间 连续、在 可导”? 大概有两个原因

PyTorch自动微分

点点圈 提交于 2019-12-28 01:43:32
autograd包是pytorch中所有升级网络的核心。autograd软件包为tensor上的所有操作提供自动微分。它是一个由运行定义的框架,这意味着以代码运行方式定义你的后向传播,并且每次迭代都可以不同。 TENSOR 跟踪 torch.Tensor是包的核心类。如果将其属性 .requires_grad 设置为True,则会开始 跟踪 针对tensor的所有操作。完成计算后,可以调用 .backward() 来自动计算所有梯度。该张量的梯度将累积到.grad属性中。 停止跟踪 要 停止 tensor历史记录的跟踪,可以调用 .detach() ,它将其与技术历史记录分离,并防止将来的计算被跟踪。 要停止跟踪历史记录和使用内存,还可以将代码块使用 with torch.no_grad(): 包装起来。在评估模型时,特别有用,因为模型在训练阶段具有 requires_grad = True 的可训练参数有利于调参,但在评估阶段我们不需要梯度。 FUNCTION 还有一个类对于autograd实现非常重要的,是Function。Tensor和Function互相连接并构建一个非循环图,它保存真个完整的计算过程的历史信息。每个张量都有一个 .grad_fn 属性保存着创建了张量的Function的引用。如果用户自己创建张量,则 grad_fn 是None。 如果计算导数,可以调用

我国数学家丁小平先生在微积分研究领域所取得的成就

。_饼干妹妹 提交于 2019-12-21 08:42:56
图一 丁小平先生回母校清华大学参加校庆时与同学合影 来源:环球网 时间: 2019-09-17 16:45 从丁小平先生在第四届世界数学科学大会发表《浅谈现行微积分原理的错误》和《新微积分原理简介》算起,至今已有九年。这九年中,丁小平先生一直通过发表论文和讲学等方式揭示现行微积分原理的错误,同时,讲授他的新微积分原理,到目前为止,不了解他的学术结论的数学家已经寥寥无几,但公开支持他学术结论的不多,试图驳倒他的一个都没有成功,而私下支持他学术结论的却比比皆是。笔者试 从科学史角度谈谈自己对丁小平研究工作的浅见 。 微积分的历程 牛顿和莱布尼兹,分别在1665年和1673年独自创建微积分方法体系并建立各自的微积分原理,其结果是:微积分方法放之四海而皆准,但微积分原理始终不能自圆其说。在牛顿的微积分原理中,由于构造流数(即导数)的需要,牛顿人为地引入小量,可是,当流数构造出之后,牛顿又觉得流数后的小量或“o”的组合项是个麻烦,于是,牛顿又人为地将它舍弃。逻辑学告知世人,如果一个量无论多小都得引入,那它就不可以忽视;如果一个量小得可以忽视,那它就不必引入。据此,基督教北爱尔兰地区克罗因主教贝克莱嘲笑牛顿的“o”是幽灵。在莱布尼兹的微积分原理中,莱布尼兹定义两个要多近就可以多近的变量的差为微分,微分的逐点累加就是积分(将积分区分为不定积分与定积分是多余的),积分的微化就是微分