Um abschätzen zu können wie hoch die Komplexität des Netzes ist benötigt man die Anzahl der Hidden Units = Neuronen. Nun angenommen es existieren 5 Neuronen in einem RCC Netzwerk, mit 2 Inputs und 2 Outputs. Die 2 Outputs sind verküpft mit den 2 Inputs, d.h. es existieren 4 Nervenstränge. Nun wird das 1. Neuron eingefügt. Dieses hat 2 Nervenstränge zu den 2 Inputs. Die Outputs verlinken wiederum zu diesem Neuron. D.h. unser Netzwerk hat nun 4+2+2 = 8 Nervenstränge. Nun fügen wir das 2. Neuron ein. Da es ein Cascade Netzwerk ist wird dieses 2. Neuron zusätzlich noch mit dem 1. Neuron verknüpft. Das Netz hat nun 13 Nervenstränge, beim 3. Neuron sind es 19, beim 4. Neuron schon 26 beim 5. dann 34 Nervenstränge, usw. usw. Bei diesen Berechnungen fehlen aber noch die Bias Inputs, jeweils ein Biasinput pro Neuron und Output und es fehlen die Recurrenten Nervenstränge. Dies sind Nervenstränge an jedem Neuron von dessen Output als seperater Input. D.h. jedes Neuron hat als zusätzlichen Input einen Nervenstrang zu seinem eigenen Output. Dadurch entsteht ein Gedächtnis, d.h. das Netz kann sequentielle Eingaben an den Inputs erlernen. JEDER dieser Nervenstränge IST eine Zahl=Double, das Gewicht bzw. die Dämpfung, und simuliert die "Leitfähigkeit" bzw. die "Verstärkung" der "elekrischen Impulse" zwischen den "Nervenzellen" unseres Hirnes. Natürlich muß beim Training eines NN's der angelegte Impuls an den Inputs ALLE diese Zahlen berechnen und berücksichtigen. Somit wird bei jedem neuen Neuron/
Unit im NN dessen Komplexität immer größer. Nun wird auch ersichtlich warum die Wahl der richtigen Datenstrukturen so wichtig ist bei der Programmierung. Je effizienter diese Strukturen sind um so schneller wird das Netz, aber auch um so unübersichtlicher. Nach meinen Erfahrungen ist es fast aussichtslos die Funktionsweise einen Netzwerkes an Hand der Sourcen begreifen zu wollen.
Gruß hagen