Ich habe jetzt in den letzten 3 Monaten an einem Fuzzy Logic SDK gearbeitet, und es kommt zu dem Punkt, an dem ich anfangen muss, die Engine stark zu optimieren. Wie bei den meisten "Utility" - oder "Bedarf" -basierten AI-Systemen funktioniert mein Code, indem er verschiedene Werbungen auf der ganzen Welt platziert, diese Werbungen mit den Attributen verschiedener Agenten vergleicht und die Werbungen auf einem Pro Agent "bewertet" Grundlage] entsprechend.Mithilfe von maschinellem Lernen den Zusammenbruch und die Stabilisierung komplexer Systeme vorhersagen?
Dies wiederum erzeugt stark repetitive Graphen für die meisten Simulationen mit einem einzelnen Agens. Wenn jedoch verschiedene Agenten berücksichtigt werden, wird das System sehr komplex und drastisch schwieriger für meinen Computer zu simulieren (Da Agenten Werbung untereinander austauschen können, wird ein NP Algorithmus erstellt).
Unten: Beispiel der repetitiveness Systeme berechnet gegen 3-Attribut auf einem einzigen agenten:
Top: Beispiel des Systems berechnet gegen 3 Attribute und 8 Mittel:
(Zusammenbruch am Anfang und Wiederherstellung kurz danach. Dies ist das beste Beispiel, das ich produzieren könnte, das auf ein Bild passen würde, da die Wiederherstellungen im Allgemeinen sehr langsam sind)
Wie Sie aus beiden Beispielen sehen können, ist das System immer noch sehr repetitiv und verbraucht daher wertvolle Rechenzeit, selbst wenn die Agentenanzahl zunimmt.
Ich habe versucht, das Programm so zu rearchitekturieren, dass die Aktualisierungsfunktion in Zeiträumen mit hoher Wiederholungsrate nur fortlaufend das Liniendiagramm wiederholt.
Während es sicherlich möglich ist für meinen Fuzzy-Logik-Code vorherzusagen, einen Kollaps und/oder eine Stabilisierung des Systems zu berechnen, ist es extrem belastend für meine CPU. Ich denke, maschinelles Lernen wäre der beste Weg, um dies zu tun, da es scheint, dass, wenn das System erst einmal eingerichtet wurde, Perioden der Instabilität immer ungefähr gleich lang sind (sie treten jedoch bei "halb" auf) zufällige Zeiten, ich sage halb, da es normalerweise leicht erkennbar ist durch verschiedene Muster, die auf dem Graphen gezeigt sind, aber, wie die Länge der Instabilität, variieren diese Muster stark von Aufbau zu Aufbau.
Offensichtlich, wenn die instabilen Perioden alle die gleiche Zeitlänge, sobald ich weiß, wann das System zusammenbricht, ist es sehr leicht herauszufinden, wann es ein Gleichgewicht erreichen wird.
Eine Randnotiz über dieses System, sind nicht alle Konfigurationen 100% stabil in Zeiten der Wiederholung.
Es ist sehr deutlich in der Grafik dargestellt:
So müsste die Maschine Lernlösung, die eine Art und Weise zwischen „Pseudo“ zusammenbricht, und voll kollabiert zu unterscheiden.
Wie lebensfähig wäre die Verwendung einer ML-Lösung? Kann jemand Algorithmen oder Implementierungsansätze empfehlen, die am besten funktionieren?
Bei den verfügbaren Ressourcen wird der Scoring-Code überhaupt nicht gut zu parallelen Architekturen zugeordnet (aufgrund der reinen Verbindungen zwischen Agenten), wenn ich also ein oder zwei CPU-Threads für diese Berechnungen verwenden muss . (Ich würde es vorziehen, keine GPU dafür zu verwenden, da die GPU mit einem nicht verwandten Nicht-AI-Teil meines Programms besteuert wird).
Während dies höchstwahrscheinlich keinen Unterschied macht, hat das System, auf dem der Code ausgeführt wird, 18 GB RAM während der Ausführung übrig. Daher wäre die Verwendung einer potenziell höchst datenabhängigen Lösung sicherlich machbar. (Obwohl ich es lieber vermeiden würde, wenn es nicht notwendig ist)
Also anstatt das Experiment zu tun, wollen Sie es durch eine Schätzung ersetzen, wie es aussehen könnte? – ziggystar
Ja, genau das möchte ich machen. –
Das klingt wie eine böse Idee. Wenn du irgendwie daraus folgern könntest, dass dein System periodisch vom Wissen seiner internen Arbeitsweise abhängt, wäre das in Ordnung. Aber einige Ausgaben zu betrachten und zu vermuten, dass es wahrscheinlich auf diese Weise weitergeht, scheint fehlerhaft zu sein. – ziggystar