Documentation

LeanPool.Kuramoto.Hebbian

Hebbian phase/weight dynamics #

A joint phase/weight Lyapunov function hebbianL with a Frobenius weight penalty, the Hebbian weight flow hebbianWeightF, and the joint Lyapunov descent property.

noncomputable def hebbianUpdateWeight {N : } (W : Fin NFin N) (i j : Fin N) (x : ) :
Fin NFin N

Update a single weight entry W i j to x (used to differentiate in that entry).

Equations
Instances For
    noncomputable def hebbianL (K lam : ) (N : ) (W : Fin NFin N) (θ : Fin N) :

    Joint phase/weight Lyapunov function with a Frobenius weight penalty.

    Equations
    Instances For
      noncomputable def hebbianWeightF (K lam : ) (N : ) (W : Fin NFin N) (θ : Fin N) (i j : Fin N) :

      Unprojected Hebbian weight flow, the negative weight-gradient of hebbianL.

      Equations
      Instances For
        theorem hebbian_weight_gradient_identity (K lam : ) (N : ) (W : Fin NFin N) (θ : Fin N) (i j : Fin N) :
        hebbianWeightF K lam N W θ i j = -deriv (fun (x : ) => hebbianL K lam N (hebbianUpdateWeight W i j x) θ) (W i j)
        theorem hebbian_phase_gradient_identity (K lam : ) (N : ) (W : Fin NFin N) (hW : ∀ (i j : Fin N), W i j = W j i) (θ : Fin N) (i : Fin N) :
        weightedKuramotoF K N W i θ = -deriv (fun (x : ) => hebbianL K lam N W (Function.update θ i x)) (θ i)
        theorem hebbian_joint_lyapunov_descent (K lam : ) (N : ) (W : Fin NFin N) (hW : ∀ (i j : Fin N), W i j = W j i) (θ : Fin N) :
        i : Fin N, weightedKuramotoF K N W i θ * deriv (fun (x : ) => hebbianL K lam N W (Function.update θ i x)) (θ i) + i : Fin N, j : Fin N, hebbianWeightF K lam N W θ i j * deriv (fun (x : ) => hebbianL K lam N (hebbianUpdateWeight W i j x) θ) (W i j) 0