hi!
Ich glaube, du meinst was anderes als ich. Natürlich dürfte der Ausgabevektor
nach jedem Lernschritt anders sein, aber ich meinte schon die Auswertung dieses
Vektors,
Vektor? Da haben wir Neuronalnetze völlig unterschiedlich verstanden.
Ein MLP erhält eine Menge von geordneten Eingabewerten und spuckt eine Menge von
geordneten Ausgabewerten aus. Da sind wir uns offenbar einig (siehe dein Beispiel).
Wie formulierst du mathematisch eine Menge geordneter Werte, wenn nicht als Vektor?
also in diesem Fall den tatsächlichen Gegenstand, der als Lösung präsentiert
wird.
Der ändert sich ggf. nach jedem Training. Wie gesagt, offensichtlich haben wir da
völlig unterschiedliche Vorstellungen.
Normalerweise arbeitet die Klassifizierung bei einem neuronalen Netz so (a sei der
Eingabevektor, b der Ausgabevektor und c der Index der größten Komponente von b):
a -> [MLP] -> b und c = argmax_i b_i
b spuckt das neuronale Netz aus und ändert sich nach jedem Lernschritt, aber das
Ergebnis der Klassifikation c sollte, wenn es richtig ist, möglich konstant bleiben für
den gleichen Eingabevektor a.
Mal ein sehr stark vereinfachtes Beispiel: [Tiererkennung]
Ja, ich weiß, was ein neuronales Netz ist und wie es funktioniert. Und irgendwie meinen
wir ja doch das gleich... ;)
Mit "global" meinte ich, dass jedes eingestellte Gewicht Einfluss auf die gesamte
Abbildung hat, was zb. bei den unten genannten RBFs nicht so ist.
Nein? Warum nicht? Ein _nur_ RBF-Netz ohne MLP gibt es meiner Meinung nach
nicht. Idealerweise kann jedes Neuron mit jedem in Verbindung stehen. Jede
Änderung hat somit Auswirkungen auf das Gesamte. Wie _groß_ diese sind, ist
abhängig von der Stärke der einzelnene Verbindungen. Diese sind abhängig vom
Training.
Nicht nur, sondern das hängt auch mit den Aktivierungsfunktionen zusammen. Beim
Perzeptron, aus dem ein MLP besteht, hat man eine sigmoide Aktivierungsfunktion,
die den Eingaberaum durch eine Hyperebene trennt: liegt die Eingabe auf der einen
Seite der Hyperebene, feuert das Perzeptron, liegt sie auf der anderen Seite, tut es
nichts.
RBFs sind aber nicht sigmoid, sondern gaußförmig (also glockenförmig oder wie immer
die der Eingabedimension angepasste Form aussieht). Dadurch reagiert eine RBF in
einem Netz nur auf Eingaben in einem relativ eingeschränkten Bereich, und nicht auf
die Hälfte des Eingaberaums. Daher kann man RBF-Netze viel leichter einstellen, ohne
dass es Auswirkungen auf die gesamte Abbildung hat.
[So genau wollte ich eigentlich gar nicht auf RBFs eingehen, das war nur eine kleine
Anmerkung, welchen Nachteil MLPs haben... ;)]
Ich erkläre noch mal anders, wie ich mir den Algorithmus vorstellen könnte: man
rechnet mit Vektoren, deren Komponenten die jeweiligen Fragen repräsentieren.
Hat man am Ende einen Eingabevektor mit den Antworten des Benutzers,
vergleicht man diesen mit einem ähnlichen Vektor, den das System als "richtige"
Antwort gespeichert hat. Der ähnlichste gewinnt. Als Maß dafür könnte man den
Kosinus der Winkel bzw. das Skalarprodukt wählen. Daher meine obige Idee mit
der linearen Abbildung durch eine Wissensmatrix.
Dann wären die Fragen also rein zufällig? Den "Eingabevektor mit den Antworten
des Benutzers" hat man ja erst, wenn alle Antworten gegeben sind.
Darüber hatte ich gar nichts geschrieben, wie die Fragen ausgewählt werden. Dafür
braucht man natürlich auch irgendeine sinnvolle Strategie, um möglichst früh auf
eine gute Lösung zu kommen. Ich hoffe, dass man für meinen vorgeschlagenen
Algorithmus o.B.d.A. annehmen kann, dass eine Menge von Fragen zufällig ausgewählt
wird und die restlichen Komponenten auf 0 gesetzt werden... ;)
Ansonsten ist das schon das, was ich beschrieben habe. Nach jeder Frage wird
geprüft, welche Folgefrage bereits zum Erfolg geführt hat. Diese wird gestellt. Mit
jeder Antwort kann man den "Eingabevektor mit den Antworten des Benutzers" neu
berechnen, bis er schließlich ausreichend mit einem gespeicherten übereinstimmt.
Das wird aber ein sehr komplexer Algorithmus.
Wieso meinst du, dass er so komplex ist? Wie sonst wird das Problem deiner Meinung
nach hier gelöst? Und immerhin ist die Originalversion von 20Q über 15 Jahre alt,
soweit ich weiß.
bye, Frank!
--
Never argue with an idiot. He will lower you to his level and then beat you with experience.