-
-
Hallo skoopy,
ich hatte einfach mal einen Simulator runtergeladen und rumprobiert: Je nach Menge der Eingangsneuronen und Komplexität der Aufgabe sollte die Größe des Netzes angepasst werden, d.h. für eine simple AND-Lösung reichen direkte Verlinkungen der Eingangs-/Ausgangneuronen. Wenn das Netz zu groß ist, lernt es Deine angelegten Muster auswendig und hat keine Ahnung, wie es bei neuen Mustern reagieren soll.
Abhängig davon, wie viele verschiedene Muster Du zum Trainieren anlegst und wie viele Ein-/Ausgangswerte Du hast, kannst Du mit ein wenig rumprobieren herausbekommen, wie viele Neuronen in wie vielen Schichten Sinn machen. Die Anzahl der Links wird dann irgendwann auch mal eine Frage Deiner Hardware...
Mit SNNS bin ich nicht klargekommen, ich hab mit Membrain rumprobiert, ich glaub, das gibts hier unter Downloads.
Hoffe, ich konnte Dir ein klein bischen weiterhelfen.
Gruß,
Gutzufuss2005
-
Erfahrener Benutzer
Roboter Genie
Bücher:
Zell: Simulation Neuronaler Netze
Haykin: Neural Networks
Es gibt noch etliche Andere. Auch das Buch von PaulRoja ist sehr gut. Das Buch von Zell ist schon älteren Datums aber immer noch sehr empfehelenswert für den Einstieg. Gute Mathekenntnisse muss man bei allen mitbringen.
Es gibt einige C/C++ Bibliotheken, in denen schon kNNs implementiert sind. U.a. in der ltilib (gibts auf sourceforge).
-
Neuer Benutzer
Öfters hier
Hallo skoopy,
dein Problem läßt sich wahrscheinlich am besten mit einem Feed-Forward Netz lösen. Ich würde mit einer versteckten (Hidden) Schicht anfangen.
Deine Eingangsparameter sollten auf den Bereich 0..1 bzw. -1..1 normiert sein, je nachdem, ob sie nur positiv oder auch negativ sein können.
Im ersteren Fall empfehle ich eine logistische Übertragungsfunktion, im zweiten Fall tangens hyperbolicus.
Schwieriger ist da schon die Kodierung des Netz-Ausgangs, ich weiß nicht, ob da ein Neuron reicht (für die Anlasstemperatur).
Hast Du schon Datensätze zum Trainieren? Kannst sie mir gerne mal schicken, dann kann ich Dir vielleicht etwas Support damit geben (ich bin der Autor des neuronale Netze Simulators MemBrain)
http://www.membrain-nn.de
Grüße,
Friggle
(Thomas Jetter)
-
Hallo Leute
erst einmal danke fuer die Tipps. Bislang habe ich es geschafft den javaNNS zum laufen zu bringen, das war easy. Was auf jedenfall nicht eintretten soll ist was Gast geschrieben hat: "Wenn das Netz zu groß ist, lernt es Deine angelegten Muster auswendig und hat keine Ahnung, wie es bei neuen Mustern reagieren soll." Das NN soll mit nicht bekanntet Datensätzen was anfangen können. Also nichts auswendig gelerntes.
Friggle ich werde mal versuchen auch deinen Simulator zum laufen zu bringen.
So wie ich mir das ganze erarbeitet habe, habe ich momentan 24 Eingangsparameter, wobei man diese zu 7Grruppen gruppieren kann. Für den Ausgang benötige ich 2 Ausgangsparameter (Anlasstemperatur T und Anlasszeit t). Beide müssen bestimmt werden.
Trainigsdaten habe ich auch. Da mir ne ganze Datenbank zur Verfügung steht, muss ich noch die entsprechenden Daten zusammentragen. Dann kann ich sie dir zukommenlassen.
Also habe ich euch richtig verstanden: Der Aufbau eines NN entsteht durch probieren?? stehen hier keine Gesetzmaessigkeiten hinter?
gruss skoopy
-
Erfahrener Benutzer
Roboter Genie
Es gibt Netztypen, die ihre Topologie selbständig finden. S. Zell, da ist das erklärt.
Wenn Du ein FF-Netz mit einem Backprop (oder verwandten) Training verwenden willst, kannst Du mit der Größe der verdeckten Schicht experimentieren. Da Du 7 Gruppen hast, könntest Du mit 7 oder 14 Neuronen in der verdeckten Schicht beginnen.
Sollten die Parameter zwischen den Gruppen voneinander unabhängig sein, ist es vielleicht besser mehrere einzelne Netze zu Trainieren (also max 7) und dann deren Ausgabe auf ein weiteres Netz zu geben, dass die Ausgaben generiert. Es könnte sein, dass die Generalisierungsfähigkeit dadurch verbessert wird. Auf jeden Fall sinkt die zum Training erforderliche Rechenleistung, da die Gewichtsmatrizen erheblich kleiner werden.
-
Fragen?!?
Hallo Leute
Kann mir jemand sagen, wovon die Aktivierungsfunktionen abhängig sind?? Wie erkenne ich welche Aktivierungsfunktion eingesetzt werden soll??
Eine Weitere Frage: Ich habe zwar 4 Ausgänge (TA1, TA2, tA1, tA2) dabei sind TA2 und tA2 von TA1 und tA1 abhängig. Kann ich TA1und tA1 jeweils mit TA2 und tA2 verbinden, obwohl beide als Ausgaenge gelten?
gruss
skoopy
-
Erfahrener Benutzer
Roboter Genie
Wenn die Abhängigkeiten bekannt sind, ist es einfacher, die im Nachhinein zu berechnen. Damit vereinfachen sich die Netztopologie und das Training, der Berechnungsaufwand sinkt.
-
Hallo alle zusammen, zur Eingagsfrage bzgl. echter KI:
Bereits vor einigen Jahren gab es mal einen Bericht über ein Projekt namens Cyc (www.cyc.com), welches als das letzte vielversprechende Projekt auf dem Gebiet der künstlichen Intelligenz (KI) bezeichnet wurde.
Cyc kann man m.E. als wirklich echte KI bezeichnen!
-
@McCrown
jop und es gibt eine open soure version... opencyc http://sourceforge.net/projects/open...4.zip/download
Geändert von KIDz (25.05.2012 um 15:17 Uhr)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen