Das Neuronale Netz müsste dann auf diese Rechner verteilt werden. Angenommen man verteilt Schicht für Schicht, sprich Layer für Layer auf die einzelnen Rechner, dann könnte der 1. Rechner mit Layer 1 anfangen zu rechnen. Der 2. Rechner müsste nun auf den Rechner 1 warten da dessen Output des Layers jader Input des 2. Rechners wäre. Der 3. Rechner müsste auf den 1. dann 2. Rechner warten usw. usw.
Allerdings nachdem der 1. Rechner fertig ist kann er schon mit den nächsten Daten weitermachen und so entsteht eine Art Pipeline so wie in modernen CPU's. Tatsächlich gibt es auf parallelen Neuronalen Netzen in Hardware die gleichen Probleme wie mit Piplines in modernen CPU's. Denn zB. das Recurrent Cascade Network, wie oben angewendet, hat Recurrente Verknüpfungen der Neuronen zu deren Vorgänger Neuronen. Anders ausgedrückt der Output eines Neuronsin Layer 3. kann als Input eines Neurons in Layer 1. dienen. Nun muß der Rechner der Layer 1. berechnet also wiederum auf das Resultat des Rechners 3. für Layer 3. warten. Dieser Rechner kann aber erst sein Resultat liefern wenn Rechner 2. = Layer 2. fertig ist.
Nun, leider sind es aber die Recurrenten Netze die sozusagen ein Gedächtnis besitzen, eben auf Grund der Recurrenten Links. Und erst die Fähigkeit eines Gedächnisses ermöglicht das Lernen von sequentiellen Abfolgen und Mustern. Als Beispiel: ein Netzwerk soll das Morsealphabeth lernen. Dabei gibt es nur EINEN Input in das netzund über diesen kommt der Morsecode als sequentielle Folge rein. An den Ausgängen des Netzwerkes sollen diedekodierten Buchstaben anliegen. Solche Traningsaufgaben lassen sich nur mit Recurrenten Netzwerken umsetzen. Die meisten interessanten Probleme sind sequentieller Natur und bedürfern somit Recurrenter Netzwerke.
Leider lassen sich solche Netze nicht parallelisieren
Man kann versuchen das Problem zu parallelisieren, und das läuft darauf hinaus das das Problem in Teilprobleme zerlegt wird. Für jedes Teilproblem ein eigenes Netzwerk das dann natürlich auf einem eigenen Rechner laufen würde. Nur, das bringt nicht viel
Denn die finale Laufzeit eines Netzwerkes ist enorm schnell im Vergleich zur Trainingsphase. Das was das Netzwerk so langsam macht ist also nicht die Forward Propagation sondern das Training auf ein Problem.
Gruß Hagen