Neural ODE 神经常微分方程

news/2024/10/21 5:49:47/

Neural ODE

ODE常微分方程
欧拉法求解:欧拉法求解过程是一个递归的过程,这个思想和牛顿法、梯度下降法是相似的。并且它将函数离散化,分割成一个个小段来求解。欧拉法求解的常微分方程的形式通常为在这里插入图片描述
在这里插入图片描述
图片来自知乎Neural ODE,这个世界终究是连续的

使用欧拉法解方程的例子:摘自欧拉法(Euler‘s method)求常微分方程(ODE)近似解
在这里插入图片描述
代码:

import numpy as np
import matplotlib.pyplot as plt
y0=1 #初始条件
def f(x,y):return y-2*x/y
def Eular(y0,n,f):y=[y0] #储存各个点的函数值y0=y0for x in np.linspace(0,1,n):'''求函数在区间[0,1]近似解,分n份'''y1=y0+f(x,y0)/ny.append(y1)y0=y1return y
y=Eular(1,10,f=f)
x=np.linspace(0,1,len(y))
plt.plot(x,y,color='blue')
plt.show()

神经常微分方程:
在这里插入图片描述
求解常微分方程时,可以用ODEsolver。它就相当于是计算器,我们给出初始to,h(t0),神经网络,要求的时间t ,它就可以自动求解。
在这里插入图片描述
ODEsolver本质上就是用数值解法一步步求解到T。数值法求wi+1是由wi加上步长h*区间上的平均变化率。不同的算法,对平均变化率的取法不同。
Euler方法的平均变化率取的ti点的导数
改进Euler:
先由当前点用欧拉法求出下一点wi+1’的值,再用当前点梯度和预报点梯度的平均 作为 区间平均变化率 求解真正wi+1点的值。
在这里插入图片描述
龙格-库塔方法比Euler有更高的精度。
rk2:
先用欧拉法估计h/2处的梯度,再用这个值计算wi+1。

rk4:
wi+1由wi和四个梯度的加权平均确定,步长 h。
k 1 是这一步开始处使用欧拉方法的导数;
k 2 是 h/2 处的导数,在 k 1基础上;
k 3 依旧是 h/2 处的导数,在k2基础上;
k 4 是在k3基础上终点h 处的导数。
几种数值解法和真实解的对比,RK方法的准确率比较高。

一般的反向传播算法 要保存前向计算过程中的activation激活图。而ODE使用adjoint method (伴随方法),不需要保存激活图也能计算梯度。
因为伴随方法 把反向过程 看作一个新的ODE初值求解问题 (IVP),直接用ODE Solver计算得到梯度值。这样减少内存占用。

应用:

最近的研究发现梯度下降算法的迭代过程(GDA) 可以看作是常微分方程 (ODE) 的欧拉离散化。
在这里插入图片描述
设计一个网络来估计我们要求的参数的梯度,这里是原型p。
有了估计的梯度后,使用odesolver求解p在指定时刻的值。这个指定时刻M由训练阶段使损失收敛的超参决定。


http://www.ppmy.cn/news/53834.html

相关文章

ES集群配置

一、高并发下如何保证读写一致 1.1 写操作 对于写操作,一致性级别支持 quorum/one/all,默认为 quorum,即只有当大多数分片可用时才允许写操作。但即使大多数可用,也可能存在因为网络等原因导致写入副本失败,这样该副本…

Jenkins实战教程|Jenkins安装与使用大全

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想…

C++内联函数

目录 一、常规函数和内联函数的对比 二、如何使用 三、内联函数的特性 四、内联函数与宏 五、如何查看内联函数 六、【面试题】 前言-----内联函数是C中为程序运行速度所做的一项该进。常规函数和内联函数之间的主要区别不在于编写方式,而在于C编译器如何将他…

华东师范大学副校长周傲英:未来,中国需要什么样的数据库?

本文为华东师范大学副校长,CCF 会士周傲英教授在第一届 OceanBase 开发者大会带来的分享。欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 3 月 25 日,第一届 OceanBase 开发者大会在北京举行,华东师范大学副校…

7、如何使用接口?

1、基本用法 我们需要定义这样一个函数,参数是一个对象,里面包含两个字段:firstName 和 lastName,也就是英文的名和姓,然后返回一个拼接后的完整名字。来看下函数的定义: // 注:这段代码为纯Ja…

2023年第十四届蓝桥杯C++B组复盘

第十四届蓝桥杯CB组复盘 A: 日期统计(5分)问题描述思路 B: 01 串的熵(5分)问题描述思路 C: 冶炼金属(10分)问题描述输入格式输出格式样例输入样例输出样例说明评测用例规模与约定思路 D: 飞机降落&#xff…

2023年五月份图形化二级打卡试题

活动时间 从2023年5月1日至5月21日,每天一道编程题。 本次打卡的规则如下: 小朋友每天利用10~15分钟做一道编程题,遇到问题就来群内讨论,我来给大家答疑。 小朋友做完题目后,截图到朋友圈打卡并把打卡的截图发到活动群…

config: 分布式配置中心 bus: 消息总线

文章目录 hello world热刷新Spring Cloud Bus:消息总线 每一个应用程序在运行时都需要相应的yml配置,分布式架构下多个服务器和应用服务面临着多个配置文件,在修改和发布上难度较大,需要有一个管理中心来统一管理,优雅的解决了配置…