Egregore v5.0 : moteur cognitif auto-homéostatique de géométrie topologique de haute dimension basé sur PyTorch
(github.com/PJHkorea)J’ai développé et documenté, dans le cadre d’une recherche personnelle, un projet de couche cognitive (Egregore v5.0) qui fusionne des mécanismes issus de la physique mathématique et de la théorie quantique des champs dans des fonctions objectif de deep learning et des structures de variétés.
Comme j’adopte souvent d’abord une approche cognitive avant de la compléter, il est fort possible que des mises à niveau supplémentaires soient fréquentes.
Au-delà d’un simple prototype, j’ai fait évoluer le projet de la v1.0 à la v5.0 afin de construire une infrastructure réellement exploitable dans un environnement d’apprentissage distribué à grande échelle, et j’y ai consigné le processus de troubleshooting ainsi que les améliorations architecturales rencontrées en chemin.
Dans chaque document README, j’ai également ajouté mes limites actuelles et la démarche suivie pour les dépasser.
Points clés d’implémentation et de refactorisation
-
Morphing de variétés différentiable sur toute la plage : sans branchement conditionnel (If-Else), j’ai mappé parfaitement la transition topologique entre les variétés sphère (Sphere) et tore (Torus) à l’aide d’une combinaison continue de fonctions Sigmoid/Tanh.
-
Introduction d’une fonction de perte topologique à couplage tripartite (Advanced Topological Loss) : afin d’empêcher l’effondrement topologique (Topological Collapse) et le mode collapse, où les poids se biaisent et adhèrent à un plan spécifique, j’ai combiné polynomialement une perte d’alignement de courbure, l’entropie d’information de Casimir (maximisation de l’entropie de Shannon) et la longueur d’arc géodésique sur variété riemannienne (
torch.acos). -
Mise en place de garde-fous Zero-NaN et mémoire pour la production : j’ai imposé un traitement
torch.clamppour empêcher la divergence des dérivées des fonctions trigonométriques inverses, l’injection deEPSILONpour prévenir l’explosion des dérivées de racine, la prévention des explosions eninfde la fonctionexp, ainsi qu’un cast forcé enfloat(loss.item())pour bloquer les fuites mémoire (Memory Leak). -
Isolation du taux d’apprentissage par couche (LLRD) : grâce au suivi des adresses mémoire basé sur
id(), le taux d’apprentissage des paramètres de porte topologique a été isolé et contrôlé à un niveau 100 fois plus faible que celui du backbone général, afin d’assurer la stabilité de l’apprentissage.
L’analyse des causes d’échec de « paradigmes de physique mathématique rejetés » (Rejected Paradigms), tels que les tentatives d’implémentation de l’intégrale de chemin de Feynman ou de l’égalité de Jarzynski, a également été documentée en coréen et en anglais.
J’espère que cela pourra offrir une bonne direction à celles et ceux qui s’intéressent à l’implémentation pratique sous PyTorch de la géométrie de l’information (Information Geometry) ou de l’IA fondée sur la physique (PINN).
Ce projet suit la licence GPLv3, un principe puissant de copyleft open source.
4 commentaires
Je l’ai lu avec intérêt. Quelques détails d’implémentation m’interpellent et j’aimerais vous poser quelques questions.
Perte géodésique
acos+ dead zone duclampVous calculez la longueur d’arc géodésique avec
torch.acos, mais la dérivée deacosdiverge quand l’entrée s’approche de ±1. Vous dites avoir bloqué cela avec unclamp. Cependant, dans la zone de transition topologique où la sphère et le tore coïncident presque, la valeur du produit scalaire va converger vers ±1 ; à ce moment-là, si leclamps’applique, le gradient de ce terme ne devient-il pas nul, faisant disparaître le signal d’apprentissage ? On a l’impression qu’au niveau de la frontière topologique la plus significative, l’apprentissage risque au contraire de s’arrêter. Comment avez-vous géré cette dead zone ?Conflit de signe entre le terme d’alignement de courbure et le terme de maximisation de l’entropie
La pression qui cherche à aligner/converger la courbure et la pression entropique qui cherche à aplatir la distribution sont des objectifs qui entrent directement en concurrence sur la variété. Selon le ratio des poids, l’optimum peut changer complètement ; comment avez-vous déterminé ce ratio ? N’y a-t-il pas un risque qu’un terme domine pendant que l’autre ne fonctionne plus en pratique que comme une simple régularisation bruitée ? Avez-vous des résultats d’ablation en retirant chacun des termes ?
Définition de la « Casimir information entropy »
Le Casimir relève du contexte physique, tandis que l’entropie de Shannon est une quantité issue de la théorie de l’information ; or, dans le code, cela ressemble au final à un calcul standard de l’entropie de Shannon sur la distribution des poids. L’appellation « Casimir » correspond-elle à un terme distinct réellement introduit dans les équations, ou est-ce simplement un nom donné à une régularisation entropique classique ? Si c’est le premier cas, pourriez-vous montrer la formule fermée de ce terme ?
acos+ zone morte declampmargin = 0.95
leaky_slope = 0.01
leaky_cos = torch.where(
torch.abs(x) < margin * bound,
x, # 1. Dans la zone sûre (en dessous de 0.95), préservation parfaitement linéaire de la distance géodésique
torch.sign(x) * (margin * bound + leaky_slope * (torch.abs(x) - margin * bound)) # 2. Courbure douce à l’entrée dans la surface de frontière
)
return torch.clamp(leaky_cos, min=-bound, max=bound)
Conflit de signe entre le terme d’alignement de courbure et le terme de maximisation de l’entropie
Avec une répartition d’équilibre dynamique 2:1 entre attraction et répulsion, et dans l’architecture la plus récente, nous avons basculé vers une chaîne d’opérations
F.log_softmaxgarantissant une stabilité numérique extrême, de sorte que même sous la pression des conflits de signe, la valeur de perte ne s’emballe pas et puisse coexister.Entropie informationnelle de Casimir
La formule elle-même correspond bien à l’entropie de Shannon.
Malgré cela, si ce terme a reçu le nom de « Casimir », c’est parce que la source de la distribution de probabilité sur laquelle cette entropie est calculée provient de la sortie d’un filtre qui simule l’effet physique de Casimir.
J’ai également développé la formule sous forme fermée dans le README après correction.
https://github.com/PJHkorea/Egregore/blob/main/README.md
Merci infiniment. Grâce à votre vérification, j’ai encore apporté une évolution à l’implémentation.
https://github.com/PJHkorea/Egregore/…
Je l’ai corrigée vers cette version. Merci vraiment du fond du cœur. Vous m’avez donné une inspiration immense.
On voit souvent ce genre de choses en ce moment ; est-ce qu’il y a quelqu’un qui spamme avec un agent à qui on a donné en gros le prompt « fabriquer quelque chose qui a l’air expert et le poster sur des sites communautaires » ?
Je suis désolé. Comme j’ai travaillé de manière indépendante, j’ai eu un côté dogmatique.
Je vais corriger cela.