Wahrscheinlichkeiten für Ereignisse berechnen
Posted: Wed 14. Sep 2011, 14:43
Hallo zusammen,
vorne weg muss ich sagen, dass ich kein Mathematiker, Programmierer oder ähnliches bin und von neuronalen Netzen auch erst seit ein paar Tagen einen Ansatz "verstehe". Das Programm Membrain habe ich mir runtergeladen und so weit auch verstanden von der Bedienung. Kann ein Netz generieren, Input, Output, etc. festlegen und über CSV-Dateien füttern und dann mit einem Training von Daten aus der Vergangenheit das Netz trainieren. Habe auch schon eine Kontrolle über X% der Daten gefahren (Splitting der Database), etc. um den Net Error zu "bestätigen".
Bzgl. des Netzaufbaus habe ich natürlich noch kaum Ahnung (bisher Input, eine Linie hidden mit verschieden vielen Neuronen und dann direkt Output "designt") und auch mit Delay-Neuronen usw. kaum gearbeitet aber das würde ich jetzt nach und nach versuchen mir anzueignen.
Mein Problem / Aufgabe ist folgende, die ich gerne mit einem neuronalen Netz abbilden würde (als ersten Test um das Prinzip zu verstehen):
Ich habe X Input-Faktoren, die aber diskret sind, sprich bei mir Mitspieler einer Hobby-Mannschaft (hoffe diskret ist der richtige Begriff! Also unabhängig von einander und nicht "fortlaufend" wie z.B. ein Temperaturskala). Die Daten habe ich mit Nummern versehen, also eine Liste Spieler 1-100 z.B.
Diese werden in verschiedenen Kombinationen verwendet (wobei nicht jeder Mitspieler immer spielt) und das Ergebnis ist dann im Output ein Ergebnis der Mannschaft (entweder z.B 6:2 oder nur Sieg / Unentschieden / Niederlage wobei bei 6:2 zwei Outputs wären (Punkte eigene und fremde Mannschaft)). Momentan habe ich die Aufstellung nur für die eigene Mannschaft würde es später aber gerne um den Gegner erweitern.
Nun folgende Fragen:
1. Gibt es eine Einstellung, dass Membrain weiß, dass die Daten diskret sind und nicht fortlaufend. Also dass Spieler 1 und 2 genau so unterschiedlich sind wie 1 und 100 (wo ja bei Skalen nebeneinander liegende Zahlen einen Bezug haben und somit 1 und 2 "näher" sind als 1 und 100)? Oder ist das automatisch richtig wenn ich die Input-Neuronen mit den Spielernr. "füttere"? Kann ich sonst auch Text als Input nehmen damit Membrain das weiß statt Nummern? Oder ist die Frage einfach nur "naiv"?
2. Gibt es eine Möglichkeit, dass eine Spielernr. einen Einfluss auf das Ergebnis hat unabhängig von der Frage in welchem Input-Neuron er auftaucht? Nehmen wir an es spielen immer 2 Spieler (zur Vereinfachung). Dann hätte ich 2 Input-Neuronen (nennen wir sie N1 und N2). In einer Woche spielen Spieler 1 und 2 (N1=1 und N2=2), danach die Woche 1 und 3 (N1=1 und N2=3). Wenn jetzt in der nächsten Woche 2 und 3 spielen würde N1=2 und N2=3 sein. Da aber Spieler 2 vorher in Neuron 2 aufgetreten ist kann das Programm ja keinen Zusammenhang zur jetzigen Aufstellung wo Spieler 2 in Neuron 1 auftritt herstellen, oder? Für 2 Spieler ist das noch zu umgehen aber bei einer Mannschaft von 4 oder mehr eher nicht denke ich.
Ziel soll es später sein nicht nur die eigene, sondern auch fremde Mannschaften abzubilden und somit dann im Vergleich die beste Aufstellung zu finden, die die größten "Siegchancen" hat gegen den Gegner.
Ist eigentlich eine Spielerei aber als Einstieg für mich ganz interessant und gut um was über neuronale Netze zu lernen, die mich echt begeistern (wie auch das einfach zu bedienende Programm Membrain).
Letzten Fragen: Wie interpretiert man den MSOE? Klar ist, je niedriger desto besser aber gibt es da Werte, die man erreichen sollte damit eine Prognose sinnvoll ist? Und gibt es eine Quelle wo man für bestimmte Probleme gute Ansätze findet wie man Netze aufbaut oder ist das Versuch und Irrtum über den Error? Gibt es da Standard-Konstruktionen die sinnvoll sind?
Vielen Dank für jedwede Hilfe an einen Noob wie mich Vielleicht passt meine Testaufgabe auch gar nicht zum Programm oder zu neuronalen Netzen oder ich stell mir das alles viel zu einfach vor...
vorne weg muss ich sagen, dass ich kein Mathematiker, Programmierer oder ähnliches bin und von neuronalen Netzen auch erst seit ein paar Tagen einen Ansatz "verstehe". Das Programm Membrain habe ich mir runtergeladen und so weit auch verstanden von der Bedienung. Kann ein Netz generieren, Input, Output, etc. festlegen und über CSV-Dateien füttern und dann mit einem Training von Daten aus der Vergangenheit das Netz trainieren. Habe auch schon eine Kontrolle über X% der Daten gefahren (Splitting der Database), etc. um den Net Error zu "bestätigen".
Bzgl. des Netzaufbaus habe ich natürlich noch kaum Ahnung (bisher Input, eine Linie hidden mit verschieden vielen Neuronen und dann direkt Output "designt") und auch mit Delay-Neuronen usw. kaum gearbeitet aber das würde ich jetzt nach und nach versuchen mir anzueignen.
Mein Problem / Aufgabe ist folgende, die ich gerne mit einem neuronalen Netz abbilden würde (als ersten Test um das Prinzip zu verstehen):
Ich habe X Input-Faktoren, die aber diskret sind, sprich bei mir Mitspieler einer Hobby-Mannschaft (hoffe diskret ist der richtige Begriff! Also unabhängig von einander und nicht "fortlaufend" wie z.B. ein Temperaturskala). Die Daten habe ich mit Nummern versehen, also eine Liste Spieler 1-100 z.B.
Diese werden in verschiedenen Kombinationen verwendet (wobei nicht jeder Mitspieler immer spielt) und das Ergebnis ist dann im Output ein Ergebnis der Mannschaft (entweder z.B 6:2 oder nur Sieg / Unentschieden / Niederlage wobei bei 6:2 zwei Outputs wären (Punkte eigene und fremde Mannschaft)). Momentan habe ich die Aufstellung nur für die eigene Mannschaft würde es später aber gerne um den Gegner erweitern.
Nun folgende Fragen:
1. Gibt es eine Einstellung, dass Membrain weiß, dass die Daten diskret sind und nicht fortlaufend. Also dass Spieler 1 und 2 genau so unterschiedlich sind wie 1 und 100 (wo ja bei Skalen nebeneinander liegende Zahlen einen Bezug haben und somit 1 und 2 "näher" sind als 1 und 100)? Oder ist das automatisch richtig wenn ich die Input-Neuronen mit den Spielernr. "füttere"? Kann ich sonst auch Text als Input nehmen damit Membrain das weiß statt Nummern? Oder ist die Frage einfach nur "naiv"?
2. Gibt es eine Möglichkeit, dass eine Spielernr. einen Einfluss auf das Ergebnis hat unabhängig von der Frage in welchem Input-Neuron er auftaucht? Nehmen wir an es spielen immer 2 Spieler (zur Vereinfachung). Dann hätte ich 2 Input-Neuronen (nennen wir sie N1 und N2). In einer Woche spielen Spieler 1 und 2 (N1=1 und N2=2), danach die Woche 1 und 3 (N1=1 und N2=3). Wenn jetzt in der nächsten Woche 2 und 3 spielen würde N1=2 und N2=3 sein. Da aber Spieler 2 vorher in Neuron 2 aufgetreten ist kann das Programm ja keinen Zusammenhang zur jetzigen Aufstellung wo Spieler 2 in Neuron 1 auftritt herstellen, oder? Für 2 Spieler ist das noch zu umgehen aber bei einer Mannschaft von 4 oder mehr eher nicht denke ich.
Ziel soll es später sein nicht nur die eigene, sondern auch fremde Mannschaften abzubilden und somit dann im Vergleich die beste Aufstellung zu finden, die die größten "Siegchancen" hat gegen den Gegner.
Ist eigentlich eine Spielerei aber als Einstieg für mich ganz interessant und gut um was über neuronale Netze zu lernen, die mich echt begeistern (wie auch das einfach zu bedienende Programm Membrain).
Letzten Fragen: Wie interpretiert man den MSOE? Klar ist, je niedriger desto besser aber gibt es da Werte, die man erreichen sollte damit eine Prognose sinnvoll ist? Und gibt es eine Quelle wo man für bestimmte Probleme gute Ansätze findet wie man Netze aufbaut oder ist das Versuch und Irrtum über den Error? Gibt es da Standard-Konstruktionen die sinnvoll sind?
Vielen Dank für jedwede Hilfe an einen Noob wie mich Vielleicht passt meine Testaufgabe auch gar nicht zum Programm oder zu neuronalen Netzen oder ich stell mir das alles viel zu einfach vor...