76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

Begonnen von DS_Starter, 11 Februar 2024, 14:11:00

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo 300P,

ich hab jetzt alle Werte über 6000 gelöscht. Es gab lediglich 2~3 Werte die größer waren.

Ich erhalte jetzt folgendes Ergebnis:
Trainingsbewertung: ok (ok)
Lernverhalten: early früh konvergiert (8.9 % Epochenausnutzung)
Einstellhinweise:

    Momentum prüfen: liegt der aktuelle Wert über 0.7, um 0.1–0.2 reduzieren (z.B. 0.8 → 0.6) – ein hohes Momentum kann das Netz über das optimale Minimum hinausschießen lassen und zu früher Konvergenz beitragen (aiControl->aiConMomentum)
    Lernrate leicht reduzieren: aktuellen Wert um Faktor 2-3 verringern (z.B. 0.01 -> 0.003-0.005), damit das Netz feiner optimieren kann (aiControl->aiConLearnRate)
    Mit 104 Inputs und nur 2975 Trainingsdaten lässt sich das Daten-zu-Parameter-Verhältnis (Zielwert 8–20) mit keiner sinnvollen Architektur erreichen - aiConTrainLimit erhöhen oder mehr Daten sammeln bevor die Architektur weiter angepasst wird
Normierungsgrenzen: PV=16687 Wh, Hausverbrauch: Min=0 Wh / Max=5565 Wh
Trainingsdaten: 3719 Datensätze (Training=2975, Validation=744)
Architektur: Inputs=104, Hidden Layers=64-32, Outputs=1
Hyperparameter: Learning Rate=0.0005, Momentum=0.3, BitFail-Limit=0.34
Aktivierungen: Hidden=SIGMOID, Steepness=0.9, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Profile=v1_heatpump_active_pv
Zufallsgenerator: Mode=1, Period=15
Modellalter: - h
Was kann ich jetzt noch ändern - die morgige Vorhersage liegt bei 18 kWh (50% über der Erwartung). Bei den Einstellungen bei aiControl hab ich nichts geändert.

Viele Grüße Gisbert
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

300P

Hallo Gisbert,

verändere diese 3 Werte mal:

aiControl->aiConLearnRate=0.0001
aiControl->aiConMomentum=0.9
aiControl->aiConSteepness=0.7

und lass neu trainieren....


PS:
Mit der V2.7.0 beginnt nach 6 Stunden schon die Rekalibrierung - danach also erst einmal bis Montag laufen lassen, da werden in der Nacht sicherlich schon Verbesserungen der Ergebnisse "rekalibriert" :)
=>> War jedenfalls bei mir so ;)


Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

DS_Starter

Hallo @all,

bin wieder "im Dienst"  ;)

Ein Problem mit den Daten von Gisbert habt ihr bereits beseitigt.

Ein weiteres Thema ist dieses:
Mit 104 Inputs und nur 2975 Trainingsdaten lässt sich das Daten-zu-Parameter-Verhältnis (Zielwert 8–20) mit keiner sinnvollen Architektur erreichen - aiConTrainLimit erhöhen oder mehr Daten sammeln bevor die Architektur weiter angepasst wird

Hier hilft einerseits nur warten bis mehr Daten vorhanden sind, andererseits kann es helfen die Anzahl der Inputs zu reduzieren. Das kann man nur indirekt machen, indem ein anderes, einfacheres Profil gewählt wird.

@Gisbert, ich würde zusätzlich vorschlagen das Profil v1_common oder v1_common_active zu verwenden. Dort fehlen zwar die WP-bezogenen Zusatzfeatures, jedoch verringern sich die Inputs auf ca. 70.
@300P, aiConMomentum=0.9 wird bei Gisbert vermutlich eine zeitige Konvergenz beschleunigen. Wir brauchen eine längere Trainingsphase, also eher ein geringeres Momentum. Die Einstellung Momentum=0.3 war schon konservativ genug. Man kann 0.9 mal testen, aber ich tendieren ehere 0.3-0.5 einzustellen. Kommt darauf an wie sich das veränderte Profil auswirkt.

Probierts mal aus, vllt. ist FANN ja clever und ein intensiveres Training ohne zu zeitige Konvergenz hat in deinem Fall einen positiven Effekt.
Gisbert, wenn du neu trainierst, hänge bitte das Trainingslog an (ctrlDebug=aiProcess). Daraus lässt sich sehr viel ableiten.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

300P

Zitat von: DS_Starter am 14 Juni 2026, 19:38:40@300P, aiConMomentum=0.9 wird bei Gisbert vermutlich eine zeitige Konvergenz beschleunigen. Wir brauchen eine längere Trainingsphase, also eher ein geringeres Momentum. Die Einstellung Momentum=0.3 war schon konservativ genug. Man kann 0.9 mal testen, aber ich tendieren ehere 0.3-0.5 einzustellen. Kommt darauf an wie sich das veränderte Profil auswirkt.

Probierts mal aus, vllt. ist FANN ja clever und ein intensiveres Training ohne zu zeitige Konvergenz hat in deinem Fall einen positiven Effekt.

So war mein Ansinnen dabei 😇
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

DS_Starter

Ich hatte bei mir auch schon den Fall wenn Momentum sehr klein UND Steepness bei 0.4 lernt das Netz überhaupt nichts mehr, geht schnell auf ein konvergiertes Plateau. Dann ist Slope=0.0 -> unbrauchbar.
Es gibt also Beziehungen zwischen den Parametern die sich gegenseitig beeinflussen und nicht nur für sich genommen den einen oder anderen Effekt haben.

Gerade in den Haushalten haben wir so viele nicht deterministische Einflußfaktoren, dass ich immer wieder staune wie gut FANN doch im Allgemeinen in der Lage ist eine Prognose abzugeben. Es gibt ja noch modernere Bibliotheken die man theoretisch auch an SF anschließen könnte, aber dann braucht man mehr Infrastruktur und nicht nur eine einfach zu installierende Linux Executable.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

300P

Hier meine aktuellen Infos dazu:

Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 11.06.2026 20:52:11 / Laufzeit in Sekunden: 605
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 96.45 ms
Alpha: 0.8
Verbrauchernummer Wärmepumpe: 08

Bewertungsüberblick
Trainingsbewertung: ok (ok)
Lernverhalten: early früh konvergiert (4.8 % Epochenausnutzung)
Einstellhinweise:
Momentum prüfen: liegt der aktuelle Wert über 0.7, um 0.1–0.2 reduzieren (z.B. 0.8 → 0.6) – ein hohes Momentum kann das Netz über das optimale Minimum hinausschießen lassen und zu früher Konvergenz beitragen (aiControl->aiConMomentum)
Lernrate leicht reduzieren: aktuellen Wert um Faktor 2-3 verringern (z.B. 0.01 -> 0.003-0.005), damit das Netz feiner optimieren kann (aiControl->aiConLearnRate)
Architektur möglicherweise zu komplex für die Datenmenge: Verhältnis Trainingsdaten zu Netzparametern beträgt nur 0.9 (Zielwert: 8–20) - das Netz hat mehr Freiheitsgrade als die Daten zuverlässig füllen können; kleinere Architektur wie z.B. 14-8 versuchen (aiControl->aiConHiddenLayers)
Empfohlene Lernrate für die vorgeschlagene Architektur 14-8 mit 104 Inputs: 0.0050 (aiControl->aiConLearnRate)
Große Datenmenge (10130 Datensätze gesamt): falls saisonale Effekte die Prognosequalität beeinträchtigen, Training auf die neuesten Datensätze begrenzen (z.B. aiControl->aiConTrainLimit=5000) um das Modell auf aktuelle Verbrauchsmuster zu fokussieren. Der Hinweis ist für stochastische Haushalte weniger relevant als für strukturierte.

Rauschen Bewertung: merkliches Rauschen, Interpretation mit Vorsicht (borderline)
Drift Bewertung: low
Empfehlung für Retrain: keine keine

Modellparameter
Normierungsgrenzen: PV=10450 Wh, Hausverbrauch: Min=0 Wh / Max=6970 Wh
Trainingsdaten: 10130 Datensätze (Training=8104, Validation=2026)
Architektur: Inputs=104, Hidden Layers=64-32-16, Outputs=1
Hyperparameter: Learning Rate=0.0001, Momentum=0.9, BitFail-Limit=0.28
Aktivierungen: Hidden=SIGMOID_SYMMETRIC, Steepness=0.7, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Profile=v1_heatpump_active_pv
Zufallsgenerator: Mode=1, Period=20
Modellalter: 71 h

Trainingsmetriken
bestes Modell bei Epoche: 720 (max. 15000)
Training MSE: 0.002720
Validation MSE: 0.002347
Validation MSE Average: 0.002246
Validation MSE Standard Deviation: 0.000028
Validation Bit_Fail: 1
Model Bias: 181 Wh
Model Slope: 0.86
Trainingsbewertung: ok

Fehlermaße der Prognosen
MAE: 245.66 Wh
MedAE: 175.65 Wh
RMSE: 282.19 Wh
RMSE relative: 25 %
RMSE Rating: good
MAPE: 23.12 %
MdAPE: 14.65 %
R²: 0.83

Rauschen
Rauschen Bewertung: borderline
Empfehlung für Bit_Fail: 0.34 (Einstellung von aiControl->aiConBitFailLimit)

Drift-Kennzahlen (berechnet ab Modellalter > 6 h)
Analysefenster: 96 h
Drift RMSE Ratio: 2.41
Semantic Ratio: 0.75
Slope Reference: 0.85
Slope Live: 0.62
Slope Drift: 0.734
Bias Reference: 440
Bias Live: 294.67
Bias Drift: -145.05
Score: 1.37
Index: 1.39
Drift Bewertung: low
Empfehlung für Retrain: keine keine
letzte Rekalibrierung: 13.06.2026 12:00:16

Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

DS_Starter

#6336
Ja genau, das meinte ich:

Momentum prüfen: liegt der aktuelle Wert über 0.7 .... ein hohes Momentum kann das Netz über das optimale Minimum hinausschießen lassen und zu früher Konvergenz beitragen

Gisbert hat 0.3 eingestellt und eine frühe Konvergenz. Wenn er das Momentum weiter erhöht auf > 0.7 wird die frühe Konvergenz vermutlich noch beschleunigt, das was wir nicht wollen.

Hatte ich da etwas falsch verstanden?  :-\

Man muß natürlich auch bedenken, dass die early Bewertung auch nur einen Anhaltspunkt darstellt. Am Ende zählt das Ergebnis.  :)  Wenn es gut ist, passt alles. Wenn nicht, versucht man die Hinweise umzusetzen und bekommt im positiven Fall bessere Ergebnisse.
Die Bewertung durch den "Berater" soll nicht als Dogma verstanden werden, sondern eher als Anhaltspunkt/Hilfe zur potentiellen Verbesserung.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter