Ich versuche Bayes'sche Netzwerke zu implementieren.
Mein Hauptdiagramm ist ein Faktordiagramm, das ich für die Glaubensfortpflanzung verwenden möchte. Aber bei der Glaubensweitergabe bei der Berechnung von Nachrichten werden nicht alle Argumente an die Funktion übergeben, und die letzte Funktion wird eine Beschränkung der gemeinsamen Verteilung sein.
Der beste Weg, der mir in den Sinn kommt, besteht darin, die Funktionen irgendwie einzuschränken, um nicht jedes Mal die gesamte Ersetzung vorzunehmen, wenn ich einen Randwert für einen neuen Wert berechnen möchte.
Ich fragte, wie man eine solche Funktion hier implementiert.
>Ich möchte wissen, ob es eine bessere Möglichkeit gibt, so etwas zu tun, oder ob es einfachere und schnellere Ansätze gibt als die, die ich machen möchte.
Hier ist ein Vorschlag: Erstellen Sie eine Closure, die eine Map akzeptiert, die die Anfangsvariablen und ihre jeweiligen Werte als Schlüssel / Wert-Paare für die erste Berechnung enthält. Die gleiche Schließung gibt eine innere Funktion zurück, die eine andere Karte mit den verbleibenden Variablen und Werten für die endgültige Berechnung akzeptiert.
Definieren Sie also einen Abschluss, bei dem die erste Teilberechnung in der äußeren Funktion erfolgt. Basierend auf Ihrer Verbindung ist die partielle Berechnung eine Summe, aber ich stelle mir vor, dass Sie Produkte von Wahrscheinlichkeiten berechnen werden. Die innere Funktion hat Zugriff auf die Partialsumme als freie Variable. Die Berechnung ist abgeschlossen, wenn Sie sie mit einer Zuordnung aufrufen, die die verbleibenden Variablenwertpaare enthält.
Sie können auch in der äußeren Funktion eine Menge definieren, die alle Variablen enthält, die bei der ersten Berechnung verwendet werden. Dann erlaube der inneren Funktion, auch auf diese Menge als freie Variable zuzugreifen. Dies stellt sicher, dass die Werte aller variablen Schlüssel, die bei der ersten Berechnung angetroffen werden, bei der endgültigen Berechnung ausgeschlossen werden.
All dies wird unten veranschaulicht.
%Vor%Tags und Links python bayesian-networks belief-propagation