Ein Netz kann mehrere Ausgänge haben, also prinzipiell auch mehrere unterschiedliche Ergebnisse liefern...
Allerdings sollte man, wenn mehrere verschiedene Aufgaben ausgeführt werden sollen die wenig miteinander zu tun haben, lieber mehrere kleine Netze nehmen statt einem großen. Es ist also z.B. nicht sinnvoll ein riesiges NN zu erstellen, das an den Eingängen alle Sensorwerte erhält und dann mit den Ausgängen direkt sämtliche vorhandenen Aktoren steuern soll. (es dürfte auch kaum möglich sein für so ein Netz sinnvolle Trainingsdaten zu erzeugen)
Meist wird ein Neuronales Netz verwendet um irgendein Teilproblem zu lösen, das mit "normalen" Mitteln nicht oder nur schlecht lösbar ist.
Ich denke wenn man bei einem Neuronalen Netz eine gute Vorstellung davon hat wie (also mit welchen Daten) es trainiert werden kann, dann stehen die Chancen nicht schlecht daß es später auch das tut was es soll.
mal ein Beispiel...
angenommen man möchte ein NN programmieren das Buchstaben erkennen kann. Das Netz würde dann z.B. an den Eingängen eben das Bild eines Buchstaben erhalten (es bräuchte also so viele Eingänge wie das Bild Pixel hat), und hätte für jeden der 26 Buchstaben einen eigenen Ausgang, der auf 1 gesetzt wird falls das Netz der Meinung ist diesen Buchstaben erkannt zu haben.
In diesem Fall ist es eigentlich klar wie das Netz trainiert werden kann. Man muss ihm nur Bilder von Buchstaben zeigen, und jeweils dazu angeben welcher Buchstabe jeweils zu sehen ist, also welcher der Ausgänge auf 1 gesetzt werden soll. Wenn das Netz lang genug trainiert wurde, wird es (hoffentlich) in der Lage sein die Buchstaben auch dann noch zu erkennen, wenn sie nicht exakt so aussehen wie auf den Testbildern. (ein Problem bei zu großen Netzen ist, daß sie dazu neigen die Testdaten "auswendig" zu lernen, also zwar bei den Testdaten korrekte Ergebnisse liefern, aber bei echten Daten dann nurnoch Müll)
Hier lässt sich also recht leicht beschreiben wie das Netz trainiert werden kann. Deshalb muss jetzt auch mal ein Gegenbeispiel her, also eine Aufgabe bei der man nichtmal eine grobe Vorstellung davon hat, wie das Training aussehen muss:
Es ist ein Roboter vorhanden, also ein Mikrocontroller der mit diversen Sensoren und Aktoren verbunden ist. Dieser soll folgende Aufgaben ausführen:
- Hindernissen ausweichen
- auf Lichtquellen zufahren
Diese Funktionalität lässt sich völlig problemlos direkt in jeder beliebigen Programmiersprache realisieren, also kann es ja so kompliziert nicht sein.
Aber wenn ein Neuronales Netz dafür verwendet werden soll...
also ich zumindest hätte da überhaupt keine Ahnung, wie man dem Netz erklären könnte was es eigentlich tun muss.
Lesezeichen