-
Technisches Gebiet
-
Die Erfindung betrifft ein Verfahren zum Bestimmen von Gewichten einer Funktion, zur Durchführung eines evolutionären/genetischen Algorithmus für ein neuronales Netz gemäß Anspruch 1 sowie eine Vorrichtung gemäß Anspruch 10 und ein Computerprogramm gemäß Anspruch 11 zur Ausführung des Verfahrens. Ferner betrifft die Erfindung ein künstliches neuronales Netz gemäß Anspruch 12 unter Verwendung von Gewichten einer Funktion gemäß dem Verfahren.
-
Hintergrund der Erfindung
-
Künstliche neuronale Netze umfassen Neuronen, die den Neuronen des menschlichen Hirnes nachgebildet sind, wobei künstliche Neuronen schichtweise in sogenannten Layern, d.h., Schichten angeordnet und in der Regel in einer festen Hierarchie miteinander verbunden sind. Zwischen den Layern oder Schichten ist jedes Neuron der einen Schicht in der Regel mit allen Neuronen der nächsten Schicht verbunden. Ausgehend von einer Eingabeschicht fließen Informationen über eine oder mehrere Zwischenschichten bis hin zur Ausgabeschicht. Dabei entspricht die Ausgabe des einen Neurons der Eingabe des nächsten Neurons. Somit wird zumindest ein Eingangswert auf zumindest einen Ausgangswert abgebildet. Die jeweiligen Eingangswerte werden von den Neuronen aufgenommen, von innen verarbeitet bzw. gewichtet und anschließend an weitere Neuronen einer darauffolgenden Schicht weitergegeben oder als Ergebnis ausgegeben. Bei rekurrenten Netzen ist auch eine Rückkopplung auf Neuronen einer Vorgängerschicht oder auf sich selbst möglich. Die Ausgabe des Ergebnisses stellt im Allgemeinen den Endpunkt eines Informationsflusses in einem künstlichen neuronalen Netz dar und enthält das Ergebnis der Informationsverarbeitung durch das künstliche neuronale Netzwerk.
-
Künstliche neuronale Netzwerke sind eine Methode des maschinellen Lernens, welche in der Regel für Klassifikations- oder Regressionsaufgaben genutzt werden. Über Trainingsverfahren und unter zur Hilfenahme von Trainingsdaten wird die jeweilige Optimierungsaufgabe schrittweise gelöst. Hierbei wird versucht eine möglichst zuverlässige Abbildung von gegebenen Eingabevektoren auf gegebene Ausgabevektoren zu erzielen. Die Qualität der Abbildung wird über eine Fehlerfunktion beschrieben, wobei versucht wird iterativ den Fehler zu minimieren
-
Zur Bestimmung der Gewichte, mit denen Eingangswerte von einem Neuron auf Ausgangswerte abgebildet werden, werden beispielsweise genetische Algorithmen eingesetzt. Genetische Algorithmen sind unter gewissen Voraussetzungen in der Lage, auch komplexe Optimierungsprobleme zu behandeln und aus einer sehr großen Zahl von möglichen Lösungen die beste oder zumindest sehr gute - im Sinne eines Gütemaßes bzw. einer Fitness-Funktion - zu ermitteln. Nach dem Vorbild natürlicher Auslese und Fortpflanzung werden dabei Lösungskandidaten bzw. Individuen hoher Güte ermittelt und bevorzugt zur Erzeugung neuer Individuen verwendet, in der Erwartung, noch bessere Lösungen zu erhalten. Mehrere Individuen bilden dabei eine sogenannte Population, wobei die einzelnen Individuen im vorliegenden Kontext gewissermaßen ein Satz von Gewichten - auch Gewichtsset bezeichnet - für ein neuronales Netz darstellen. Demgemäß können evolutionäre/genetische Algorithmen auch zur Lösung von Optimierungsproblemen eingesetzt werden. Bei Optimierungsproblemen soll aus einer großen Menge möglicher Lösungen diejenige gefunden werden, die ein oder mehrere Zielkriterien bestmöglich erfüllt.
-
Eine Schwierigkeit bei der Lösung von Optimierungsproblemen liegt darin, dass bei der Optimierung von Gewichten künstliche neuronale Netze während des Lernprozesses in ein lokales Extremum, d. h. Minimum oder Maximum konvergieren können. Dieses lokale Extremum ist jedoch nicht das geringste Minimum aller Minima bzw. das größte Maximum aller Maxima. Das geringste Minimum wird als globales Minimum und das größte Maximum wird als globales Maximum bezeichnet bzw. im Allgemeinen als globales Extremum.
-
Herkömmliche Lernverfahren zur Überwindung lokaler Extrema, wie zum Beispiel das Fehlerrückführungs-Verfahren, versucht das globale Minimum zu finden, bleibt je nach Parametrisierung jedoch ggf. in einem lokalen Minimum hängen oder überspringt infolgedessen das globale Minimum.
-
Als weiteres Lernverfahren für neuronale Netze kann ein evolutionäres/genetisches Verfahren verwendet werden. Dabei unterliegt die Bestimmung eines globalen Extremums derselben Problematik wie die Bestimmung bei den herkömmlichen Lernverfahren. Über eine sogenannte „Mutation“ eines oder mehrerer Individuen wird eine Diversität in der Population der Individuen erzeugt, um ein lokales Extremum zu überwinden. Allerdings führen die herkömmlichen Formen der Diversitätserzeugung nur zu einer geringfügigen und nicht zu einer nachhaltigen Verbesserung der beschriebenen Problemstellung.
-
Es ist demnach wünschenswert ein Verfahren, eine Vorrichtung sowie ein neuronales Netz und ein Computerprogramm zur Ausführung des Verfahrens bereitzustellen, mit deren Hilfe ein globales Extremum bzw. ein globales Minimum oder Maximum einer Funktion zuverlässig ermittelt und bereitgestellt werden kann.
-
Ferner ist es wünschenswert, ein Konzept zur Bestimmung von Gewichten eines Individuums zu schaffen, dass eine schnelle Konvergenz des eingesetzten Lernverfahrens mittels der künstlichen neuronalen Netzes erlaubt.
-
Zusammenfassung der Erfindung
-
Daher wird ein Verfahren mit den Merkmalen von Anspruch 1 vorgeschlagen. Ausführungsformen und weitere vorteilhafte Aspekte dieses Verfahrens bzw. einer Vorrichtung, eines Computerprogramms und eines künstlichen neuronalen Netzes sind in den jeweils abhängigen Patentansprüchen genannt.
-
Ein Ausführungsbeispiel gemäß der Erfindung schafft ein Verfahren zum Bestimmen von Gewichten einer Funktion, die zumindest einen Eingangswert auf zumindest einen Ausgangswert abbildet, derart, dass ein Fehler minimiert wird, der eine Abweichung des zumindest einen Ausgangwerts von einem Soll-Zustand angibt, wobei die Gesamtheit der Gewichte, die die Funktion bildet, ein Individuum darstellt. Dazu wird ein evolutionärer/genetischer Algorithmus unter Verwendung einer ersten Population durchgeführt, der mehrere Individuen für die Funktion aufweist, bis ein erstes Abbruchkriterium erfüllt ist, um eine aktuelle Population zu erzeugen. Das erste Abbruchkriterium kann beispielsweise eine vorherbestimmte Anzahl von Iterationen oder ein Unterschreiten oder Überschreiten eines vorherbestimmten Schwellwerts sein. Ein bestes Individuums wird aus der aktuellen Population ausgewählt, das den geringsten Fehler aufweist. Mit anderen Worten gesagt, erfolgt eine Selektion aufgrund einer Güte- bzw. Fitnessfunktion, die im vorliegenden Fall das Individuum ist, das beispielsweise in Summe der Gewichte eine geringste Abweichung zum Soll-Zustand darstellt. Durch die Selektion wird abhängig von der Fitness ein Individuum für die Reproduktion ausgewählt. So wird der Evolution eine Richtung gegeben, indem gute Zustände konserviert und schlechte Zustände eliminiert werden. Gleichzeitig wird dadurch allerdings die Diversität der Population, d. h. der Grad der Verschiedenartigkeit der Individuen, stark reduziert. Diesem Diversitätsverlust wirkt eine Variation entgegen. Im vorliegenden Fall - werden die Gewichte des Individuums verändert und somit neue, verschiedenartige Individuen einer neuen Population erzeugt.
-
Ausgehend davon werden neue Populationen von Individuen beziehungsweise Generationen von Populationen solange generiert bzw., der genetische Algorithmus erneut ausgeführt, bis ein zweites Abbruchkriterium erfüllt ist. Auch das zweite Abbruchkriterium kann beispielsweise eine vorherbestimmte Anzahl von Iterationen oder ein Unterschreiten oder Überschreiten eines vorherbestimmten Schwellwerts sein, wobei das erste und zweite Abbruchkriterium voneinander verschieden oder gleich sein können. Eine neue Population wird unter Verwendung des besten Individuums generiert, wobei jedes neue Individuum der neuen Population dadurch erzeugt wird, dass jedes Gewicht des besten Individuums individuell um einen Betrag variiert, d.h. erhöht oder erniedrigt wird, der in einem Bereich, der einem vorbestimmten Prozentsatz der Größe des jeweiligen Gewichts entspricht, zufällig ist, wobei die neue Population das beste Individuum und die neuen Individuen aufweist. Dieses Verfahren berücksichtigt, dass kleine Gewichte nur geringfügig und größere Gewichte stärker verändert werden können. Der evolutionäre/genetische Algorithmus wird unter Verwendung der neuen Population durchgeführt, wobei ein neues bestes Individuum aus der neuen Population ausgewählt wird. Auch dieser evolutionäre/genetische Algorithmus kann einem Abbruchkriterium unterliegen. Mit anderen Worten wird dieser Verfahrensschritt so lange durchgeführt, bis eine vollständige Population mit neuen Individuen erzeugt wurde, wobei das Individuum mit dem geringsten Fehler aus der vorhergehenden Population ebenfalls Teil der neuen Population ist. Diese neue Population durchläuft das evolutionäre/genetische Lernverfahren erneut.
-
Wird das zweite Abbruchkriterium erfüllt, werden die Werte des aktuellen Individuums ausgegeben.
-
Aufgrund ihrer breiten Anwendbarkeit eignen sich genetische Algorithmen auch für komplexe Suchräume. Abgesehen davon gibt es keine einschränkenden Anforderungen an die Abbildungsfunktion bzw. Zielfunktion, die weder stetig noch differenzierbar sein muss.
-
Verallgemeinernd kann gesagt werden, dass die Abbruchkriterien derart gewählt werden, dass sie eine zur Ausführung erforderliche Rechenzeit begrenzen oder insbesondere verkürzen. Demnach kann das Abbruchkriterium beispielsweise das Erreichen einer maximalen Rechenzeit, einer vorherbestimmten Anzahl von Iterationsschritten, das Über- oder Unterschreiten eines vorherbestimmten Schwellwerts oder ein weiteres Konvergenzkriterium in einem Suchraum, der durch die Werte bzw. Parameter für die Abbildungsfunktion definiert ist, darstellen. Im Zusammenhang der vorliegenden Offenbarung ist Konvergenz ein Sich-Aufeinander-zu-Entwickeln von zwei oder mehreren Ausgangszuständen auf einen gemeinsamen Endzustand hin zu verstehen.
-
Gemäß einer bevorzugten Ausführungsform ist das erste Abbruchkriterium eine vorherbestimmte Anzahl von Iterationen des evolutionären/genetischen Algorithmus. Dabei ist die Anzahl von Iterationen vorzugsweise derart gewählt, dass mit einer hohen Wahrscheinlichkeit eine Verbesserung, d. h. Annäherung an ein gewünschtes Optimum, in einer überschaubaren Zeit erreicht werden kann.
-
Gemäß einer weiteren bevorzugten Ausführungsform ist das erste Abbruchkriterium ein Unterschreiten oder Überschreiten eines vorherbestimmten Schwellwerts. Im Zusammenhang mit dem evolutionären/genetischen Lernverfahren, mit abschließender Auslöschung und Neuberechnung der Population kann der Schwellwert beispielsweise ein Gesamtfehler sein, der sich nach einer beliebigen oder vorherbestimmt oft wiederholenden Iterationszahl einstellt. Dabei ist der Gesamtfehler durch den Wertebereich eingegrenzt, innerhalb dessen der „wahre“ Wert der Messgröße mit einer anzugebenden Wahrscheinlichkeit liegt. Das Gesamtlernverfahren könnte im Sinne darwinistischen Evolutionsprinzips des „survival of the fittest“ als „die out“-Verfahren verstanden werden, bei dem bis auf das eine beste Individuum alle anderen aussterben. Dieses offenbarungsgemäße „die out“-Verfahren kann für alle Netz-Topologien bzw. Netz-Strukturen wie z.B. feedforward, recurrent oder auch Convolutional Neural Network (ConvNet) genutzt werden.
-
Analog verhält es sich im Falle des zweiten Abbruchkriteriums, das gemäß einem Ausführungsbeispiel einer vorherbestimmten Anzahl von Iterationen der Schleife und/oder einem Unterschreiten oder Überschreiten eines vorherbestimmten Schwellwerts entspricht. Die vorstehend im Zusammenhang mit dem ersten Abbruchkriterium beschriebenen Effekte und Vorteile treffen in gleicher Weise auf das zweite Abbruchkriterium zu.
-
Um eine besonders hohe Diversität, d. h. der Grad der Verschiedenartigkeit der Individuen, zu erreichen, wird gemäß eines Ausführungsbeispiels zum Generieren des jeweiligen Gewichts des neuen Individuums das jeweilige Gewicht des besten Individuums individuell um einen Betrag variiert, d. h. um einen bestimmten Betrag addiert oder subtrahiert, wobei der Betrag einem Produkt aus einem zufällig ausgewählten Prozentsatz mit dem Gewicht des besten Individuums entspricht. Dabei kann der zufällige ausgewählte Prozentsatz einem Bruchteil oder einem Vielfachen des Gewichts des besten Individuums entsprechen. Beispielsweise kann der zufällige Prozentsatz einem Produkt aus einer Zufallszahl und dem jeweiligen Gewicht des besten Individuums entsprechen, wobei die Zufallszahl beispielsweise zwischen -1 und +1 liegt, was einem Bereich des Gewichts von -100 % bis 100 % entspräche. Gemäß weiterer Ausführungsbeispiele kann allerdings der gewählte Prozentsatz auch ein Vielfaches +/-1000 % ausmachen bzw. die Zufallszahl beispielsweise zwischen -10 und +10, wenn beispielsweise der Algorithmus in dem bestehenden Variationsbereich in ein lokales Extremum konvergiert. Mit anderen Worten gesagt, entspricht das neue Gewicht dem besten Gewicht +/- einem prozentualen Anteil von dem besten Gewicht selbst. Dabei kann eine Varianz des zufällig ausgewählten Prozentsatzes über die Gewichtsgröße unterschiedlich gewichtet sein. Darüber hinaus kann eine Größe des Gewichts berücksichtigt werden, so dass bei kleinen Gewichten eine kleine Änderung und bei großen Gewichten eine große Änderung erfolgt.
-
Für eine Quantifizierung der Gewichte bzw. für die Erzeugung eines definierten Wertebereichs der Gewichte kann die Maximale und Minimale Größe der Gewichte eingeschränkt werden. Beispielsweise können nur Gewichte erzeugt werden die zwischen -10 und +10 liegen. Darüber hinaus kann auch das Verhältnis der Gewichte eines Individuums zueinander gesteuert werden, indem ausgewählte Gewichte des desselben Individuums in Abhängigkeit von einem oder mehreren Gewichten desselben Individuums individuell eingeschränkt oder begrenzt werden. Das Gewicht selbst beinhaltet die Information wie stark ein Input das Ergebnis des Neurons beeinflusst. Durch die oben beschriebenen Einschränkungen kann eine Fokussierung auf bestimmte Inputs ermöglicht werden.
-
Gemäß einem zweckmäßigen Ausführungsbeispiel ist es zielführend, wenn der vorherbestimmte Prozentsatz der Variation eines Gewichts des besten Individuums der Größe des jeweiligen Gewichts gemäß einem vorherbestimmten Konvergenzkriterium eingestellt ist oder wird.
-
Beispielsweise könnte eine Anpassung des Prozentsatzes zur Laufzeit des Verfahrens erfolgen. Wenn beispielsweise das Verfahren in einem lokalen Minimum „festhängt“, würde eine Vergrößerung des Prozentsatzes beim Ablauf des Verfahrens aus dem lokalen Minimum herausführen. Das Konvergenzverhalten könnte beispielsweise derart gesteuert werden, dass zumindest das beste und das zweitbeste Individuum einer Population - Generation - zwischengespeichert wird, um eine Tendenz zum Konvergieren oder Divergieren festzustellen, um abhängig davon den Prozentsatz der Größe der Streuung bei den Gewichten neu zu definieren. Unter Generation wird im Sinne der Offenbarung die Gesamtheit der Individuen einer Population bei/nach einem bestimmten Iterationsschritt des Lernverfahrens verstanden. So lässt sich beispielsweise der Prozentsatz über ein Fehlerdelta steuern, wobei beim Unterschreiten eines Schwellwerts des Fehlerdeltas von einem zum nächsten Iterationsschritt, eine Anpassung des Prozentsatzes für die Anpassung der Gewichte erfolgt.
-
Um eine besonders hohe Vielfältigkeit bzw. Diversität der Individuen der ersten Population zu erzielen, weisen die einzelnen Gewichte der jeweiligen Individuen zufällige Werte auf. Eine Vielzahl zufälliger sich voneinander stark unterscheidender Werte ist insoweit vorteilhaft, dass ein großer Wertebereich der abzubildenden Funktion berücksichtigt wird, so dass auch der Bereich mit dem gesuchten globalen Extremum mit hoher Wahrscheinlichkeit darin enthalten ist.
-
Unter bestimmten Voraussetzungen, beispielsweise bei Kenntnis bestimmter Randbedingungen oder bei Betrachtung eingeschränkter Bereiche, empfiehlt es sich, dass die Individuen der ersten Population vorherbestimmte Werte oder zufällige Werte von Gewichten aufweisen, die bestimmten Randbedingungen genügen. Dadurch kann ein Erreichen der Lösung beschleunigt werden und eine Konvergenz des Lernalgorithmus des Lernverfahrens gerichtet, d. h. insbesondere zielführend erfolgen.
-
Zur Ausführung des offenbarten Lernverfahrens eignet sich gemäß einem weiteren Aspekt der Offenbarung jede elektronische Vorrichtung zur Datenverarbeitung, umfassend eine Datenverarbeitungseinheit die zur Ausführung des Verfahrens eingerichtet ist. Dies können herkömmliche PCs sein oder auch speziell konfigurierte Chips, wie beispielsweise ASICs, die in kleinen bis miniaturisierten Vorrichtungen Platz finden. Dadurch ist das Einsatzgebiet für den Lernalgorithmus so gut wie überall möglich.
-
Gemäß einem weiteren Aspekt der Offenbarung wird ein Computerprogramm bereitgestellt, das Befehle umfasst, die bei der Ausführung des Programms durch einen Computer bzw. eine elektronische Vorrichtung zur Datenverarbeitung diesen veranlassen, die vorherstehend beschriebenen Ausführungsbeispiele des Verfahrens auszuführen. Damit kann das offenbarte Lernverfahren flexibel auf unterschiedlichen Plattformen eingesetzt werden und beispielsweise durch Änderung bestimmter Befehle des Computerprogramms einfach an bestimmte Aufgabentypen angepasst und/oder optimiert werden.
-
Gemäß noch einem weiteren Aspekt der Offenbarung wird ein künstliches neuronales Netz bereitgestellt, das eingerichtet ist, um eine Abweichung von einem gewünschten Soll-Zustand in Abhängigkeit von Gewichten eines Individuums zu berechnen, das gemäß Ausführungsbeispielen des vorherstehend beschriebenen Verfahren bestimmt wurde.
-
Mittels des vorherstehend beschriebenen Verfahrens können sämtliche Arten und Topologien von neuronalen Netzen trainiert werden. Insbesondere eignet sich der Lernalgorithmus für die meisten Steuer- und Regelsysteme unter Verwendung neuronaler Netze. Zu weiteren Anwendungsbeispielen gehören Zeichenerkennung, das Trainieren von virtuellen Sensoren oder auch eine Einspritzsteuerung bei Verbrennungsmotoren und dergleichen.
-
Mit anderen Worten gesagt, kann durch das beschriebene Verfahren der Lernalgorithmus selbstständig ein lokales Minimum überwinden. Durch Veränderung der Iterationszahl des evolutionären/genetischen Lernalgorithmus und der Gesamtzahl der Iterationen einschließlich der Populationsauslöschungen (bzw. über die Populationsauslöschungen hinweg) kann so der Gesamtlernerfolg gesteuert werden. So können suboptimale Zustände, d. h. größere lokale Minima überwunden werden, indem die Anzahl der Populationsauslöschungen erhöht wird und die Anzahl der Iterationen des evolutionären/genetischen Lernalgorithmus gering gehalten wird.
-
Wenn die Anzahl der Iterationen des evolutionären/genetischen Lernalgorithmus erhöht wird und die Anzahl der Populationsauslöschungen verringert wird, kann z. B. die Auflösungs- und Rechengenauigkeit im Bereich des globalen Minimums gesteigert werden.
-
Natürlich kann auch eine Steuerung über Schwellwerte bzw. Fehlerhürden erzielt werden. Dabei wird z. B. der evolutionäre/genetische Lernalgorithmus so lange durchgeführt, bis eine gewünschte Fehlergrenze unterschritten wird. Erst nach diesem Abbruchkriterium wird eine Populationsauslöschung durchgeführt.
-
Diese Ausführungsbeispiele gemäß der Erfindung basieren auf der Erkenntnis, dass ein guter Kompromiss zwischen Komplexität und Zuverlässigkeit bei der Bestimmung von Gewichten des Individuums zur Identifikation des globalen Extremums innerhalb einer vorherbestimmten oder absehbar endlichen Zeit besteht.
-
Figurenliste
-
Einige Ausführungsbeispiele sind exemplarisch in der Zeichnung dargestellt und werden nachstehend erläutert. Es zeigen:
- 1 ein vereinfachtes Flussdiagramm zum Bestimmen eines Individuums mit einer Mehrzahl von Gewichten einer Funktion, die zumindest einen Eingangswert auf zumindest einen Ausgangswert abbildet, gemäß einem Ausführungsbeispiel.
-
Detaillierte Beschreibung der Ausführungsbeispiele
-
Im Folgenden werden Ausführungsbeispiele mit Bezug auf die Figur näher beschrieben, wobei Elemente mit derselben oder ähnlichen Funktion mit denselben Bezugszeichen versehen sind. Verfahrensschritte, die in einem Blockdiagramm oder Flussdiagramm dargestellt und mit Bezugnahme auf dasselbe erläutert werden, können auch in einer anderen als der abgebildeten beziehungsweise beschriebenen Reihenfolge ausgeführt werden. Außerdem sind Verfahrensschritte, die ein bestimmtes Merkmal einer Vorrichtung betreffen mit eben diesem gleichen Merkmal der Vorrichtung austauschbar, was ebenso andersherum gilt.
-
In der 1 wird ein stark vereinfachtes und verallgemeinertes Flussdiagramm eines Lernverfahrens mittels eines genetischen/evolutionären Algorithmus bei dem ein Individuum mit einer Mehrzahl von Gewichten einer Funktion, die zumindest einen Eingangswert auf zumindest einen Ausgangswert abbildet gemäß einem Ausführungsbeispiel veranschaulicht.
-
Das Verfahren bestimmt die Gewichte der Funktion derart, dass ein Fehler minimiert wird, der eine Abweichung des zumindest einen Ausgangswerts von einem Soll-Zustand angibt, wobei die Gesamtheit der Gewichte, die die Funktion bildet, das Individuum darstellt. Dabei repräsentiert jedes Individuum eine mögliche Lösung eines Optimierungsproblems, deren Güte bzw. Fitness mithilfe einer Zielfunktion - hier der Abweichung des Ausgangswerts vom Soll Zustand - bestimmt wird.
-
Die Stärke von genetischen Algorithmen ist ihre Fähigkeit, Lösungen selbst für sehr komplexe Optimierungsprobleme zu finden, bei denen andere Suchverfahren scheitern. Das in 1 veranschaulichte Verfahren entspricht einem genetischen Algorithmus, der mithilfe einer Population von mehreren Individuen eine parallele Suche in einem Suchraum des Optimierungsproblems erlaubt. Abhängig von der Güte bzw. der Fitness der einzelnen Individuen wird gemäß der Erfindung ein einziges Individuum ausgewählt, welches die Grundlage für eine Reproduktion einer neuen bzw. aktualisierten Population bildet. Durch die Auswahl des besten Individuums, das die höchste Güte bzw. Fitness aufweist, wird der Evolution eine Richtung gegeben, wobei gleichzeitig ein vorläufig bestes Individuum konserviert und schlechte Individuen eliminiert werden. Durch das Eliminieren bzw. Aussterben „die-out“ aller weiteren Individuen, wird abgesehen von dem Individuum bester Güte allerdings die Diversität der Population, d. h. der Grad der Verschiedenartigkeit der Individuen, reduziert. Um diesen Diversitätsverlust zu kompensieren, wird eine neue Population durch Variation einzelner Gewichte des besten Individuums gebildet, wobei die Information der Individuen - deren Gewichte - verändert wird und somit neue verschiedenartige Individuen erzeugt werden. Die auf diese Art und Weise generierte neue Population wird nun wieder dem genetischen bzw. evolutionären Algorithmus unterzogen, solange bis ein gewünschtes Abbruchkriterium erfüllt wird.
-
Im Folgenden werden beispielhaft einzelne Arbeitsschritte des Verfahrens und Varianten des im vorherstehenden beschriebenen Verfahrens anhand des Ausführungsbeispiels in 1 ausgeführt.
-
Ausgehend von einem initialisieren Schritt S1 wird eine Startpopulation bzw. erste Population einem evolutionären/genetischen Algorithmus zugeführt, der in einem Schritt S3 ausgeführt wird. In der 1 entspricht die dem im initialisierenden Schritt dem evolutionären/genetischen Algorithmus zugeführte erste Population aus Schritt S1 einer aktuellen Population, wie sie in Schritt S2 dargestellt ist. Um eine besonders hohe Vielfältigkeit bzw. Diversität der Individuen der ersten Population zu erzielen, sind diese beispielsweise zufällig gewählt. Dadurch kann ein besonders großer Wertebereich der abzubildenden Funktion berücksichtigt werden und damit auch die Wahrscheinlichkeit das gesuchte Extremum, beispielsweise das globale Minimum der Abweichung von dem Soll-Zustand zu finden, erhöht werden. Bei einem alternativen Ausführungsbeispiel kann es vorteilhaft sein, bestimmten Gewichten der Individuen der ersten Population Werte zuzuweisen, die bestimmten Randbedingungen genügen. Dadurch könnte das Erreichen einer Lösung bzw. eine Konvergenz des Verfahrens beschleunigt werden.
-
In einem Schritt S4 überprüft das Verfahren nach Anwendung des evolutionären/genetischen Algorithmus in Schritt S3 ob bereits ein Individuum der ersten Population aus Schritt S1 einem ersten Abbruchkriterium genügt oder nicht. Bevorzugt entspricht das erste Abbruchkriterium dem Erreichen der Zielfunktion bzw. der „Übereinstimmung“ eines Individuums mit einem gewünschten Soll-Zustand bzw. einem Über- oder Unterschreiten eines vorherbestimmten Schwellwerts, beispielsweise eines tolerierbaren Fehlers. Ein weiteres erstes Abbruchkriterium im Schritt S4 kann gemäß einem weiteren Ausführungsbeispiel eine vorherbestimmte Anzahl von Iterationsschritten sein, nach deren Erreichen das Verfahren abgebrochen wird. Wenn das erste Abbruchkriterium nicht erfüllt ist wird der evolutionäre/genetische Algorithmus in Schritt 3 erneut ausgeführt.
-
Sobald das Abbruchkriterium aus Schritt S4 erreicht wird, wird in einem Schritt S5 jenes Individuum, dessen Gewichtsset die geringste Abweichung von einem Soll-Zustand aufweist, als bestes Individuum aus der aktuellen Population - hier der ersten Population - ausgewählt.
-
In einem darauf folgenden Schritt S6 wird geprüft, ob ein zweites Abbruchkriterium erfüllt wird oder nicht. Bevorzugt entspricht das zweite Abbruchkriterium ebenfalls dem Erreichen der Zielfunktion bzw. der „Übereinstimmung“ eines Individuums mit einem gewünschten Soll-Zustand bzw. einem Über- oder Unterschreiten eines vorherbestimmten Schwellwerts, beispielsweise eines tolerierbaren Fehlers. Ein weiteres zweites Abbruchkriterium im Schritt S6 kann gemäß einem weiteren Ausführungsbeispiel auch eine vorherbestimmte Anzahl von Iterationsschritten sein, nach deren Erreichen das Verfahren abgebrochen wird. Allerdings würde bei Erreichen des zweiten Abbruchkriteriums das Verfahren in einem Schritt S8 beendet werden, weil das beste Individuum der aktuellen Population beispielsweise unterhalb eines vorherbestimmten Schwellwerts, beispielsweise eines vorherbestimmten minimal zulässigen Fehlers, liegt oder sogar die Zielfunktion, d. h. den Soll-Zustand erreicht. Nach Beenden des Verfahrens in Schritt S8 erfolgt eine Ausgabe bzw. ein Bereitstellen des besten Individuums.
-
Sofern das zweite Abbruchkriterium nicht erreicht wird, wird in einem Schritt S7 eine neue Population unter Verwendung des vorläufigen bzw. aktuellen besten Individuums generiert - alle im anderen Individuen, die vergleichbar minderwertiger sind, werden verworfen. Dabei wird gemäß einem Ausführungsbeispiel jedes neue Individuum der neuen Population dadurch erzeugt, dass jedes einzelne Gewicht des besten Individuums um einen Betrag variiert wird und einem entsprechenden Gewicht des neuen Individuums zugeordnet wird. Je nach Ausführungsform kann das jeweilige Gewicht des neuen Individuums durch Variation, d. h. Addition oder Subtraktion eines bestimmten Betrags, des entsprechenden Gewichts des besten Individuums, um einen festgelegten oder zufälligen Prozentsatz des jeweiligen Gewichts erzeugt werden. Mit anderen Worten entspricht beispielsweise ein Wert eines Gewichts des neuen Individuums einer Summe oder Differenz des besten Gewichts mit einen bestimmten Betrag, wobei der Betrag einem Produkt des besten Gewichts mit einem vorherbestimmten oder zufälligen Prozentsatz entspricht. Beispielhaft sei angeführt, dass wenn ein ausgewählter Prozentsatz: 30% beträgt, ein Gewicht W1=0.01 um den zufälligen Wertebereich zwischen -0.003 bis +0.003 variiert werden kann oder im Falle eines Gewichts W2=60 der Wertebereich für die Zufallszahl zwischen -18 bis +18 variiert werden kann. Hierdurch kann die Größe des Gewichts berücksichtigt werden, so dass bei kleinen Gewichten eine kleine Änderung und bei großen Gewichten eine große Änderung erfolgt.
-
Bei einem weiteren Ausführungsbeispiel kann der zufällig ausgewählte Prozentsatz einem Bruchteil oder einem Vielfachen des Gewichts des besten Individuums entsprechen.
-
Je nach Ausführungsbeispiel kann eine Varianz des zufällig ausgewählten Prozentsatzes über die Gewichtsgröße unterschiedlich gewichtet sein. Gemäß einem weiteren zweckmäßigen Ausführungsbeispiel ist es zielführend, wenn der vorherbestimmte Prozentsatz der Variation eines Gewichts des besten Individuums gemäß einem vorherbestimmten Konvergenzkriterium eingestellt ist oder wird.
-
Die in dem Schritt S7 generierte neue Population umfasst die neu gebildeten Individuen sowie das beste Individuum, aus dem die neuen Individuen gebildet wurden. Die neue Population entspricht nun der aktuellen Population, die erneut in einem Schritt S2 dem evolutionären/genetischen Algorithmus in S3 zugeführt wird. Dadurch, dass die neue bzw. aktuelle Population das beste Individuum aus dem vorhergehenden Durchlauf enthält, kann sichergestellt werden, dass keine „schlechtere“ Lösung gefunden wird.
-
Die Schritte S2 bis S7 werden so lange ausgeführt, bis das zweite Abbruchkriterium in Schritt S6 erreicht wird - vergleiche Ausführungen weiter oben zu Schritt S6.
-
Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.
-
Einige oder alle der Verfahrensschritte können durch einen Hardware-Apparat (oder unter Verwendung eines Hardware-Apparats), wie zum Beispiel einen Mikroprozessor, einen programmierbaren Computer oder einer elektronischen Schaltung durchgeführt werden. Bei einigen Ausführungsbeispielen können einige oder mehrere der wichtigsten Verfahrensschritte durch einen solchen Apparat ausgeführt werden.
-
Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software oder zumindest teilweise in Hardware oder zumindest teilweise in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer BluRay Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das digitale Speichermedium computerlesbar sein.
-
Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
-
Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft.
-
Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
-
Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinen-lesbaren Träger gespeichert ist. Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft.
-
Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist. Der Datenträger oder das digitale Speichermedium oder das computerlesbare Medium sind typischerweise greifbar und/oder nicht flüchtig.
-
Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
-
Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen. Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
-
Ein weiteres Ausführungsbeispiel gemäß der Erfindung umfasst eine Vorrichtung oder ein System, die bzw. das ausgelegt ist, um ein Computerprogramm zur Durchführung zumindest eines der hierin beschriebenen Verfahren zu einem Empfänger zu übertragen. Die Übertragung kann beispielsweise elektronisch oder optisch erfolgen. Der Empfänger kann beispielsweise ein Computer, ein Mobilgerät, ein Speichergerät oder eine ähnliche Vorrichtung sein. Die Vorrichtung oder das System kann beispielsweise einen Datei-Server zur Übertragung des Computerprogramms zu dem Empfänger umfassen.
-
Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
-
Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.
-
Bezugszeichenliste
-
- S1
- Initialisierung des Verfahrens mit Startpopulation
- S2
- Zuweisung der jeweiligen Population einer aktuellen Population
- S3
- Durchführung des evolutionären/genetischen Algorithmus
- S4
- Prüfen des ersten Abbruchkriteriums
- S5
- Auswahl/Selektion des Individuums mit dem geringsten Fehler
- S6
- Prüfen des zweiten Abbruchkriteriums
- S7
- Generieren einer neuen Population
- S8
- Beendigung des Verfahrens und Ausgabe des Individuums