Ecuación diferencial regular divina EDO neuronal

ODA neuronal

Ecuación diferencial ordinaria ODE
Solución del método de Euler: El proceso de solución del método de Euler es un proceso recursivo. Esta idea es similar al método de Newton y al método de descenso de gradiente. Y discretiza la función y la divide en pequeños segmentos para resolver. La forma de las ecuaciones diferenciales ordinarias resueltas por el método de Euler suele ser: Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Imagen de Zhihu Neural ODE, el mundo es continuo después de todo

Ejemplo de uso del método de Euler para resolver ecuaciones: Extraído del código del método de Euler para encontrar soluciones aproximadas al
Insertar descripción de la imagen aquí
código de ecuaciones diferenciales ordinarias (EDO):

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=y0
    for x in np.linspace(0,1,n):
        '''求函数在区间[0,1]近似解,分n份'''
        y1=y0+f(x,y0)/n
        y.append(y1)
        y0=y1
    return y
y=Eular(1,10,f=f)
x=np.linspace(0,1,len(y))
plt.plot(x,y,color='blue')
plt.show()

Ecuaciones diferenciales ordinarias divinas:
Insertar descripción de la imagen aquí
al resolver ecuaciones diferenciales ordinarias, puede utilizar ODEsolver. Es equivalente a una calculadora: le damos la inicial a, h (t0), la red neuronal y el tiempo requerido t, y puede resolverlo automáticamente.
Insertar descripción de la imagen aquí
ODEsolver esencialmente utiliza métodos de solución numérica para resolver T paso a paso. El método numérico para encontrar wi+1 es wi más la tasa de cambio promedio en el intervalo del paso h*. Diferentes algoritmos tienen diferentes métodos para determinar la tasa de cambio promedio.
La tasa de cambio promedio del método de Euler toma la derivada del punto ti
Euler mejorado:
primero use el método de Euler para encontrar el valor del siguiente punto wi+1' desde el punto actual, y luego use el promedio del gradiente del punto actual y el gradiente del punto de pronóstico como la tasa de cambio promedio del intervalo. Encuentre el valor del punto real wi+1.
Insertar descripción de la imagen aquí
El método de Runge-Kutta tiene mayor precisión que el de Euler.
rk2:
Primero use el método de Euler para estimar el gradiente en h/2 y luego use este valor para calcular wi+1.

rk4:
wi+1 está determinado por wi y el promedio ponderado de los cuatro gradientes, con un tamaño de paso de h.
k 1 es la derivada usando el método de Euler al comienzo de este paso;
k 2 es la derivada en h/2, basada en k 1;
k 3 sigue siendo la derivada en h/2, basada en k2;
k 4 es la derivada en h/2, basado en k2 La derivada en el punto final h basado en k3.
Al comparar varias soluciones numéricas con soluciones reales, la precisión del método RK es relativamente alta.

El algoritmo general de retropropagación necesita guardar el mapa de activación durante el proceso de cálculo directo. ODE utiliza el método adjunto, que puede calcular gradientes sin guardar el mapa de activación.
Debido a que el método adjunto considera el proceso inverso como un nuevo problema de solución de valor inicial (IVP) de ODE, el valor del gradiente se calcula directamente utilizando ODE Solver. Esto reduce el uso de memoria.

solicitud:

Investigaciones recientes han descubierto que el proceso iterativo del algoritmo de descenso de gradiente (GDA) puede verse como una discretización de Euler de ecuaciones diferenciales ordinarias (ODE).
Insertar descripción de la imagen aquí
Diseñar una red para estimar el gradiente del parámetro que requerimos, aquí el prototipo p.
Después de tener el gradiente estimado, use odesolver para resolver el valor de p en el momento especificado. Este momento designado M está determinado por los hiperparámetros utilizados durante la fase de entrenamiento para hacer que la pérdida converja.

Supongo que te gusta

Origin blog.csdn.net/weixin_44040169/article/details/129772596
Recomendado
Clasificación