-
Die vorliegende Erfindung betrifft künstliche neuronale Netzwerke, insbesondere für den Einsatz zum Ermitteln einer Klassifikation, einer Regression, und/oder einer semantischen Segmentierung physikalischer Messdaten.
-
Stand der Technik
-
Für das zumindest teilweise automatisierte Führen eines Fahrzeugs im Straßenverkehr ist es notwendig, das Umfeld des Fahrzeugs zu beobachten und die in diesem Umfeld enthaltenen Objekte zu erkennen und gegebenenfalls deren Position relativ zum eigenen Fahrzeug zu bestimmen. Auf dieser Basis kann anschließend entschieden werden, ob das Vorhandensein und/oder eine erkannte Bewegung dieser Objekte es erforderlich macht, das Verhalten des eigenen Fahrzeugs zu ändern.
-
Da beispielsweise eine optische Abbildung des Umfelds des Fahrzeugs mit einer Kamera einer Vielzahl von Einflussfaktoren unterliegt, werden keine zwei Abbildungen ein und derselben Szenerie völlig identisch sein. Daher werden für die Erkennung von Objekten typischerweise künstliche neuronale Netzwerke, KNN, mit idealerweise großer Kraft zur Verallgemeinerung eingesetzt. Diese KNNs werden so trainiert, dass sie Lern-Eingangsdaten nach Maßgabe einer Kostenfunktion gut auf Lern-Ausgangsdaten abbilden. Es wird dann erwartet, dass die KNNs auch in Situationen, die nicht Gegenstand des Trainings waren, Objekte zutreffend erkennt.
-
Bei tiefen Netzwerken mit einer Vielzahl von Schichten wird es problematisch, dass keine Kontrolle darüber besteht, in welchen Größenordnungen sich die Zahlenwerte der von dem Netzwerk verarbeiteten Daten bewegen. Beispielsweise können in der ersten Schicht des Netzwerks Zahlen im Bereich zwischen 0 und 1 vorliegen, während in tieferen Schichten Zahlenwerte in der Größenordnung 1000 erreicht werden können. Kleine Änderungen an den Eingangsgrößen können dann große Änderungen an den Ausgangsgrößen bewirken. Dies kann zur Folge haben, dass das Netzwerk „nicht lernt“, d.h., dass die Trefferquote der Erkennung nicht signifikant über die eines zufälligen Ratens hinausgeht.
-
(S. loffe, C. Szegedy, „Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift“, arXiv: 1502.03167v3 [cs.LG] (2015)) offenbart, die Zahlenwerte der im KNN erzeugten Daten pro verarbeitetem Mini-Batch an Trainingsdaten auf eine einheitliche Größenordnung zu normieren.
-
(D.-A. Clevert, T. Unterthirner, S. Hochreiter, „Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)“, arXiv:1511.07289 [cs.LG] (2016)) offenbart, Aktivierungen von Neuronen mit einer neuartigen Aktivierungsfunktion, die das genannte Problem dämpft.
-
Offenbarung der Erfindung
-
Im Rahmen der Erfindung wurde ein künstliches neuronales Netzwerk entwickelt. Dieses Netzwerk umfasst eine Vielzahl hintereinander geschalteter Verarbeitungsschichten. Die Verarbeitungsschichten sind jeweils dazu ausgebildet, Eingangsgrößen nach Maßgabe trainierbarer Parameter des KNN zu Ausgangsgrößen zu verarbeiten. Dabei können insbesondere die Ausgangsgrößen einer Schicht jeweils als Eingangsgrößen in mindestens die nächste Schicht geführt sein.
-
In mindestens eine Verarbeitungsschicht, und/oder zwischen mindestens zwei Verarbeitungsschichten, ist ein neuartiger Normierer geschaltet.
-
Dieser Normierer umfasst ein Übersetzungsglied. Dieses Übersetzungsglied ist dazu ausgebildet, in den Normierer geführte Eingangsgrößen mit einer vorgegebenen Transformation in einen oder mehrere Eingabe-Vektoren zu übersetzen. Dabei geht jede der Eingangsgrößen in genau einen Eingabe-Vektor ein. Es entsteht also ein einzelner Eingabe-Vektor oder eine Sammlung aus Eingabe-Vektoren mit insgesamt genauso viel Information, also beispielsweise genauso vielen Zahlenwerten, wie dem Normierer in den Eingangsgrößen zugeführt wurden.
-
Der Normierer umfasst weiterhin ein Normierungsglied. Dieses Normierungsglied ist dazu ausgebildet, den oder die Eingabe-Vektoren anhand einer Normierungsfunktion auf einen oder mehrere Ausgabe-Vektoren zu normieren. Unter einer Normierung eines Vektors wird im Sinne dieser Erfindung insbesondere eine Rechenoperation verstanden, die die Anzahl der Komponenten des Vektors und seine Richtung im vieldimensionalen Raum ungeändert lässt, jedoch seine in diesem vieldimensionalen Raum erklärte Norm zu ändern vermag. Die Norm kann beispielswiese einer Länge des Vektors in dem vieldimensionalen Raum entsprechen. Die Normierungsfunktion kann insbesondere so beschaffen sein, dass sie Vektoren, die stark unterschiedliche Normen aufweisen, auf Vektoren abzubilden vermag, die ähnliche oder gleiche Normen aufweisen.
-
Die Normierungsfunktion weist mindestens zwei verschiedene Regime auf und wechselt in Abhängigkeit einer Norm des Eingabe-Vektors an einem Punkt und/oder in einem Bereich, dessen Lage von einem vorgegebenen Parameter ρ abhängt, zwischen den Regimen. Das bedeutet, dass Eingabe-Vektoren, deren Norm links des Punktes bzw. Bereichs liegt (also etwa kleiner ist), von der Normierungsfunktion anders behandelt werden als Eingabe-Vektoren, deren Norm rechts des Punktes bzw. Bereichs liegt (also etwa größer ist). Insbesondere kann das eine Regime beispielsweise beinhalten, die Norm des Eingabe-Vektors bei der Bildung des Ausgabe-Vektors absolut und/oder relativ weniger stark abzuändern als dies gemäß dem anderen Regime vorgesehen ist. Eines der Regime kann beispielsweise auch beinhalten, den Eingabe-Vektor gar nicht abzuändern, sondern ihn unverändert als Ausgabe-Vektor zu übernehmen.
-
Der Normierer umfasst weiterhin ein Rückübersetzungsglied. Das Rückübersetzungsglied ist dazu ausgebildet, die Ausgabe-Vektoren mit der Umkehrung der vorgegebenen Transformation in Ausgangsgrößen zu übersetzen. Diese Ausgangsgrößen haben die gleiche Dimensionalität wie die dem Normierer zugeführten Eingangsgrößen. Dadurch kann der Normierer an beliebiger Stelle zwischen zwei Verarbeitungsschritten in dem KNN eingesetzt werden. In der weiteren Verarbeitung durch das KNN können die Ausgangsgrößen des Normierers daher an die Stelle derjenigen Größen treten, die im KNN zuvor erarbeitet und dem Normierer als Eingangsgrößen zugeführt worden waren.
-
Es wurde erkannt, dass gerade durch den Wechsel des Regimes abhängig von der Norm des Eingabe-Vektors und von dem vorgegebenen Parameter ρ die numerische Stabilität der Normierungsfunktion verbessert werden kann. Insbesondere wird der Tendenz von Normierungsfunktionen entgegengewirkt, die bei der maschinellen Verarbeitung von Eingangsgrößen unvermeidlichen Rundungsfehler sowie das in physikalischen Messdaten immer enthaltene Rauschen zu verstärken.
-
Die Rundungsfehler und das Rauschen erzeugen innerhalb des KNNs kleine von Null verschiedene Zahlenwerte an Stellen, an denen im Idealfall eigentlich Nullen stehen sollten. Im Vergleich hierzu sind Zahlenwerte, die das in den physikalischen Messdaten enthaltene Nutzsignal bzw. die hieraus gezogenen Schlüsse repräsentieren, deutlich größer. Werden nun zwischen zwei Verarbeitungsschritten im KNN die Zahlenwerte, die bereits vorhandene Zwischenergebnisse repräsentieren, zu Vektoren zusammengefasst und diese Vektoren normiert, so kann dies zur Folge haben, dass ein ursprünglich vorhandener Abstand zwischen dem Nutzsignal und dessen Verarbeitungsprodukten einerseits und Rauschen bzw. Rundungsfehlern andererseits teilweise oder gar vollständig eingeebnet wird.
-
Durch den Wechsel zwischen den Regimes kann nun beispielsweise festgelegt werden, dass alle Eingabe-Vektoren, deren Norm ein gewisses Mindestmaß nicht erreicht, nicht oder nur schwach in ihrer Norm verändert werden. Wenn gleichzeitig beispielsweise Eingabe-Vektoren mit größeren Normen auf Ausgabe-Vektoren mit gleichen oder ähnlichen Normen abgebildet werden, verbleibt immer noch ein hinreichend großer normmäßiger Abstand zu den Ausgabe-Vektoren, die auf Rauschen bzw. Rundungsfehler zurückgehen.
-
Dies wiederum senkt die Anforderungen bezüglich der Statistik der Eingangsgrößen, die dem Normierer zugeführt werden. Es ist nicht notwendig, grundsätzlich auf Eingangsgrößen zurückzugreifen, die auf verschiedene dem KNN zugeführte Samples von Eingangsgrößen zurückgehen. Stattdessen bleibt die wesentliche in dem besagten Zwischenergebnis des KNN enthaltene Aussage erhalten, wenn nur Zahlenwerte dieses Zwischenergebnisses, die sich auf ein einziges dem KNN zugeführtes Sample von Eingangsgrößen beziehen, dem Normierer zugeführt werden.
-
Somit können die bislang mit Hilfe der „Batch-Normalization“ erzielbaren Vorteile im gleichen oder in einem höheren Maße erzielt werden, ohne dass es hierfür notwendig ist, die Normierung auf beim Training des KNN verarbeitete Mini-Batches von Trainingsdaten zu beziehen. Damit ist die Wirkung der Normierung insbesondere auch nicht mehr von der beim Training gewählten Größe der Mini-Batches abhängig.
-
Dies wiederum ermöglicht es, die Größe der Mini-Batches völlig frei zu wählen, beispielsweise nach dem Gesichtspunkt des Datendurchsatzes beim Training des KNN. Für einen maximalen Durchsatz ist es insbesondere vorteilhaft, die Größe der Mini-Batches so zu wählen, dass ein Mini-Batch gerade in den verfügbaren Arbeitsspeicher (etwa Video-RAM verwendeter Grafikprozessoren, GPUs) passt und parallel verarbeitet werden kann. Dies ist nicht immer die gleiche Größe von Mini-Batches, die auch optimal für die „Batch-Normalization“ ist, im Sinne einer maximalen Leistungsfähigkeit (z.B. Klassifikationsgenauigkeit) des Netzwerkes. Vielmehr kann für die „Batch-Normalization“ eine kleinere oder größere Größe der Mini-Batches vorteilhaft sein, wobei eine optimale „Batch-Normalization“ (und somit eine optimale Genauigkeit im Sinne der Aufgabe) dann im Zweifel typischerweise Vorrang hätte vor einem optimalen Datendurchsatz beim Training. Des Weiteren funktioniert die „Batch-Normalization“ für kleine Batchgrößen sehr schlecht, da die Statistik des Mini-Batches dann die Statistik der gesamten Trainingsdaten nur sehr unzulänglich approximiert.
-
Weiterhin ist der von dem Normierungsglied verwendete Parameter ρ, im Unterschied zur Batch-Größe der „Batch-Normalization“, ein kontinuierlicher und kein diskreter Parameter. Dieser Parameter ρ ist somit deutlich besser einer Optimierung zugänglich. Er kann beispielsweise gemeinsam mit den trainierbaren Parametern des KNN trainiert werden. Eine Optimierung der Batch-Größe der „Batch-Normalization“ hingegen kann es erforderlich machen, für jede getestete Kandidaten-Batch-Größe das vollständige Training des KNN erneut durchzuführen, was den Trainingsaufwand entsprechend vervielfacht.
-
In der Summe kann das KNN insgesamt effizient trainiert werden und wird zugleich auch robust gegen Manipulationsversuche mit sogenannten „Adversarial Examples“. Diese Versuche zielen darauf ab, durch eine kleine, unscheinbare Änderung in den Daten, die dem KNN zugeführt werden, bewusst beispielsweise eine Falschklassifikation durch das KNN herbeizuführen. Durch die Normierung wird der Einfluss derartiger Änderungen innerhalb des KNN zurückgedrängt. Um also die gewünschte Falschklassifikation zu erzielen, müsste am Eingang des KNN eine entsprechend größere Manipulation vorgenommen werden, die dann mit größerer Wahrscheinlichkeit auffällt.
-
In einer besonders vorteilhaften Ausgestaltung ist mindestens eine Normierungsfunktion dazu ausgebildet, Eingabe-Vektoren, deren Norm geringer ist als der Parameter
ρ, unverändert zu lassen und Eingabe-Vektoren, deren Norm größer ist als der Parameter
ρ, unter Beibehaltung der Richtung auf eine einheitliche Norm zu normieren. Ein Beispiel für eine solche Normierungsfunktion, die auf Vektoren
in einem beliebigen mehrdimensionalen Raum erklärt ist, ist:
-
Sofern die Norm
des Vektors
kleiner als
ρ ist, bleibt der Vektor
unverändert. Dies ist das erste Regime der Normierungsfunktion
Sofern
hingegen mindestens gleich p ist, projiziert
den Vektor
auf eine Kugeloberfläche mit Radius p. Das heißt, der normierte Vektor zeigt dann in die gleiche Richtung wie zuvor, endet jedoch auf der Kugeloberfläche. Dies ist das zweite Regime der Normierungsfunktion
Bei
wird zwischen den beiden Regimen gewechselt.
-
In einer weiteren besonders vorteilhaften Ausgestaltung wird der Wechsel mindestens einer Normierungsfunktion zwischen den verschiedenen Regimen durch eine Softplus-Funktion gesteuert, deren Argument einen Nulldurchgang hat, wenn die Norm des Eingabe-Vektors gleich dem Parameter
ρ ist. Ein Beispiel für eine solche Funktion ist
Hierin ist die Softplus-Funktion gegeben durch softplus(y) = ln (1 | exp(y)).
-
Der Vorteil dieser Funktion ist, dass sie in
ρ differenzierbar ist. Vektoren
mit
unterhalb von
ρ bleiben nun nicht mehr unverändert, aber sie werden im Vergleich zu Vektoren
mit größerer Norm
deutlich weniger verändert. Wenn
gegen 0 geht, dann wird unabhängig vom Wert von
ρ die Norm
des Vektors
im vieldimensionalen Raum um etwa 25 % reduziert. Es gibt keine Norm
für die
zu einer Erhöhung der Norm führt. Es wird also nicht nur vermieden, dass der Einfluss beispielsweise von Rundungsfehlern und Rauschen verstärkt wird, sondern dieser Einfluss wird sogar noch weiter reduziert, indem zu kleine Normen
weiter abgesenkt und eben nicht auf ein einheitliches Niveau angehoben werden.
-
In einer weiteren besonders vorteilhaften Ausgestaltung beinhaltet mindestens eine vorgegebene Transformation von den Eingangsgrößen des Normierers zu den Eingabe-Vektoren, einen Tensor von Eingangsgrößen in einen oder mehrere Eingabe-Vektoren umzuwandeln. Der Tensor beinhaltet eine Anzahl f von Merkmalskarten, welche jeweils n verschiedenen Orten eine Merkmalsinformation zuordnen. Der Tensor lässt sich beispielsweise schreiben als
Der Normierer benötigt dann nur mindestens Merkmalsinformationen, die aus einem einzigen Sample der in das KNN eingegebenen Eingangsgrößen hervorgegangen sind. Die Verwendung von Mini-Batches von Samples ist weiterhin möglich, aber freigestellt.
-
In einer weiteren besonders vorteilhaften Ausgestaltung beinhaltet mindestens eine vorgegebene Transformation, für jede der f Merkmalskarten die in dieser Merkmalskarte enthaltenen Merkmalsinformationen zu allen Orten in einem dieser Merkmalskarte zugeordneten Eingabe-Vektor zusammenzufassen. Es wird also für i=1, ..., f die komplette i-te Merkmalskarte ausgelesen, und die in ihr enthaltenen Werte werden nacheinander in den Eingabe-Vektor
geschrieben:
-
Auf diese Weise wird der Tensor X sukzessive in Eingabe-Vektoren
mit i=1, ..., f umgewandelt. Normen
werden somit über ganze Merkmalskarten gebildet und sind umso größer, je größer die Ausprägung bestimmter Merkmale in den Eingangsgrößen insgesamt ist.
-
In einer weiteren besonders vorteilhaften Ausgestaltung beinhaltet mindestens eine vorgegebene Transformation, für jeden der n Orte die diesem Ort durch alle Merkmalskarten zugeordneten Merkmalsinformationen in einem diesem Ort zugeordneten Eingabe-Vektor zusammenzufassen. Es wird also für j=1, ..., n zu dem j-ten Ort die in allen Merkmalskarten jeweils der genau diesem Ort vermerkte Wert der Merkmalsinformation ausgelesen, und die so erhaltenen Werte werden nacheinander in den Eingabe-Vektor
geschrieben:
-
Auf diese Weise wird der Tensor X sukzessive in Eingabe-Vektoren
umgewandelt. Normen
werden somit über Repertoires der Merkmale gebildet, die einzelnen Orten jeweils zugeordnet sind, und sind umso größer, je merkmalsreicher die Eingangsgrößen in Bezug auf den konkreten Ort sind.
-
In einer weiteren besonders vorteilhaften Ausgestaltung beinhaltet mindestens eine vorgegebene Transformation, alle Merkmalsinformationen aus dem Tensor X in einem einzigen Eingabe-Vektor zusammenzufassen. Die Norm
dieses Eingabe-Vektors
ist dann umso größer, je merkmalsreicher das verwendete Sample der dem KNN zugeführten Eingangsgrößen insgesamt ist.
-
In jeder der genannten Ausgestaltungen kann der Tensor X, bzw. können die Vektoren
und
vor der Anwendung der Normierungsfunktion einer weiteren Vorverarbeitung unterzogen werden. Im einzelnen kann
- • von allen Merkmalsinformationen jeweils ein über alle Merkmalsinformationen gebildeter arithmetischer Mittelwert („overall sample mean“ = Mittelwert über alle Information zu dem betreffenden Sample der Eingangsgrößen des KNN) subtrahiert werden; und/oder
- • von den in jeder der f Merkmalskarten jeweils enthaltenen Merkmalsinformationen jeweils ein über diese Merkmalskarte gebildeter arithmetischer Mittelwert der Merkmalsinformation subtrahiert werden; und/oder
- • von den jedem der n Orte durch alle Merkmalskarten zugeordneten Merkmalsinformationen jeweils ein über alle Merkmalskarten gebildeter arithmetischer Mittelwert der zu diesem Ort gehörenden Merkmalsinformationen subtrahiert werden.
-
Wie zuvor erläutert, kann der Normierer an beliebiger Stelle im KNN „eingeschleift“ werden, da seine Ausgangsgrößen die gleiche Dimensionalität wie seine Eingangsgrößen haben und somit bei der weiteren Verarbeitung im KNN an die Stelle dieser Eingangsgrößen treten können.
-
In einer besonders vorteilhaften Ausgestaltung erhält mindestens ein Normierer eine gewichtete Summierung von Eingangsgrößen einer Verarbeitungsschicht als Eingangsgrößen. Die Ausgangsgrößen dieses Normierers sind in eine nichtlineare Aktivierungsfunktion zur Bildung von Ausgangsgrößen der Verarbeitungsschicht geführt. Wenn in vielen oder gar in allen Verarbeitungsschichten an diese Stelle ein Normierer geschaltet ist, dann kann das Verhalten der nichtlinearen Aktivierungsfunktionen innerhalb des KNN zu einem guten Teil vereinheitlicht werden, da diese Aktivierungsfunktionen immer auf Werte in im Wesentlichen gleicher Größenordnung wirken.
-
In einer weiteren besonders vorteilhaften Ausgestaltung erhält mindestens ein Normierer Ausgangsgrößen einer ersten Verarbeitungsschicht, die durch Anwendung einer nichtlinearen Aktivierungsfunktion gebildet wurden, als Eingangsgrößen. Die Ausgangsgrößen dieses Normierers sind als Eingangsgrößen in eine weitere Verarbeitungsschicht geführt, die diese Eingangsgrößen nach Maßgabe der trainierbaren Parameter gewichtet summiert. Wenn viele oder gar alle Übergänge zwischen benachbarten Verarbeitungsschichten in dem KNN über einen Normierer führen, dann können die Größenordnungen der Eingangsgrößen, die jeweils in die gewichtete Summierung eingehen, innerhalb des KNN im Wesentlichen vereinheitlicht werden. Dies sorgt dafür, dass das Training besser konvergiert.
-
Wie zuvor erläutert, kann bei dem beschriebenen KNN insbesondere die Genauigkeit, mit der es eine Klassifikation, eine Regression und/oder eine semantische Segmentierung realer und/oder simulierter physikalischer Messdaten erlernt, deutlich verbessert werden. Die Genauigkeit kann insbesondere beispielsweise mit Hilfe von Validierungs-Eingangsgrößen, die nicht bereits beim Training verwendet wurden und für die Validierungs-Ausgangsgrößen (also etwa eine zu erzielende Soll-Klassifikation oder ein zu erzielender Soll-Regressionswert) als „ground truth“ bekannt sind, gemessen werden. Weiterhin ist auch die Anfälligkeit gegenüber „Adversarial Examples“ vermindert. Daher ist in einer besonders vorteilhaften Ausgestaltung das KNN als Klassifikator und/oder als Regressor ausgebildet.
-
Ein als Klassifikator ausgebildetes KNN kann beispielsweise zur Erkennung von im Rahmen der jeweiligen Anwendung gesuchten Objekten und/oder Zuständen von Objekten in den Eingangsgrößen des KNN genutzt werden. So muss etwa ein autonomer Agent, wie beispielsweise ein Roboter oder ein zumindest teilweise automatisiert fahrendes Fahrzeug, Objekte in seiner Umgebung erkennen, um in der durch eine bestimmte Konstellation von Objekten charakterisierten Situation angemessen handeln zu können. Ein als Klassifikator ausgebildetes KNN kann beispielsweise auch im Rahmen der medizinischen Bildgebung Merkmale (wie etwa Schädigungen) erkennen, aus denen eine medizinische Diagnose ableitbar ist. Analog kann ein solches KNN auch im Rahmen der optischen Inspektion eingesetzt werden, um zu kontrollieren, ob gefertigte Produkte oder andere Arbeitsergebnisse (wie etwa Schweißnähte) in Ordnung sind oder nicht.
-
Eine semantische Segmentierung physikalischer Messdaten kann beispielsweise gebildet werden, indem Bestandteile der Messdaten dahingehend klassifiziert werden, zu welcher Art Objekt sie gehören.
-
Die physikalischen Messdaten können insbesondere beispielsweise Bilddaten sein, die durch ortsaufgelöste Sensierung elektromagnetischer Wellen beispielsweise im sichtbaren Bereich, oder auch beispielsweise mit einer Thermalkamera im Infrarotbereich, aufgenommen wurden. Die ortsaufgelösten Bestandteile der Bilddaten können je nach dem konkreten Raum, in dem diese Bilder leben, d.h. je nach Dimensionalität der Bilddaten, beispielsweise Pixel, Stixel oder Voxel sein. Die physikalischen Messdaten können auch beispielsweise durch Erfassen von Reflexen einer Abfragestrahlung im Rahmen von Radar-, LIDAR- oder Ultraschallmessungen erhalten werden.
-
In den genannten Anwendungen kann alternativ oder in Kombination hierzu auch ein als Regressor ausgebildetes KNN genutzt werden. In dieser Funktion kann das KNN eine Aussage über eine im Rahmen der jeweiligen Anwendung gesuchte kontinuierliche Größe liefern. Beispiele für derartige Größen sind Abmessungen und/oder Geschwindigkeiten von Objekten sowie kontinuierliche Bewertungsmaße für die Produktqualität (etwa die Rauigkeit oder die Anzahl von Fehlstellen in einer Schweißnaht) oder für Merkmale, die für eine medizinische Befundung verwendbar sind (etwa ein prozentualer Anteil eines Gewebes, der als geschädigt anzusehen ist).
-
Somit ist allgemein besonders vorteilhaft das KNN als Klassifikator und/oder Regressor zur Erkennung und/oder quantitativen Bewertung von im Rahmen der jeweiligen Anwendung gesuchten Objekten und/oder Zuständen in den Eingangsgrößen des KNN ausgebildet.
-
Besonders vorteilhaft ist das KNN als Klassifikator zur Erkennung von
- • Verkehrszeichen, und/oder
- • Fußgängern, und/oder
- • anderen Fahrzeugen, und/oder
- • sonstigen Objekten, die eine Verkehrssituation charakterisieren,
aus physikalischen Messdaten, die durch Beobachtung einer Verkehrssituation im Umfeld eines eigenen Fahrzeugs mit mindestens einem Sensor erhalten wurden, ausgebildet. Dies ist eine der wichtigsten Aufgaben für das zumindest teilweise automatisierte Fahren. Auch im Bereich der Robotik oder bei allgemeinen autonomen Agenten kommt der Umfeldwahrnehmung eine große Rolle zu.
-
Die zuvor beschriebene, mit dem Normierer in einem KNN erzielbare Wirkung ist prinzipiell nicht daran gebunden, dass der Normierer eine in irgendeiner Form abgekapselte Einheit darstellt. Wichtig ist nur, dass an einer geeigneten Stelle im KNN bei der Verarbeitung entstandene Zwischenprodukte der Normierung unterzogen werden und dass bei der weiteren Verarbeitung in dem KNN an Stelle der Zwischenprodukte das Ergebnis der Normierung verwendet wird.
-
Daher bezieht sich die Erfindung allgemein auf ein Verfahren zum Betreiben eines KNN mit einer Vielzahl hintereinander geschalteter Verarbeitungsschichten, die jeweils dazu ausgebildet sind, Eingangsgrößen nach Maßgabe trainierbarer Parameter des KNN zu Ausgangsgrößen zu verarbeiten.
-
Im Rahmen dieses Verfahrens wird in mindestens einer Verarbeitungsschicht, und/oder zwischen mindestens zwei Verarbeitungsschichten, dem KNN ein Satz von bei der Verarbeitung ermittelten Größen als Eingangsgrößen für eine Normierung entnommen. Die Eingangsgrößen für die Normierung werden mit einer vorgegebenen Transformation in einen oder mehrere Eingabe-Vektoren übersetzt, wobei jede dieser Eingangsgrößen in genau einen Eingabe-Vektor eingeht.
-
Der oder die Eingabe-Vektoren werden anhand einer Normierungsfunktion auf einen oder mehrere Ausgabe-Vektoren normiert, wobei diese Normierungsfunktion mindestens zwei verschiedene Regime aufweist und in Abhängigkeit einer Norm des Eingabe-Vektors an einem Punkt und/oder in einem Bereich, dessen Lage von einem vorgegebenen Parameter ρ abhängt, zwischen den Regimen wechselt.
-
Die Ausgabe-Vektoren werden mit der Umkehrung der vorgegebenen Transformation in Ausgangsgrößen der Normierung übersetzt, die die gleiche Dimensionalität wie die Eingangsgrößen der Normierung haben. Anschließend wird die Verarbeitung in dem KNN fortgesetzt, wobei die Ausgangsgrößen der Normierung an die Stelle der zuvor entnommenen Eingangsgrößen der Normierung treten.
-
Sämtliche in Bezug auf die Funktionalität des Normierers zuvor gegebene Offenbarung ist ausdrücklich auch für dieses Verfahren gültig.
-
Nach dem zuvor Beschriebenen bezieht sich die Erfindung auch auf ein System, das dazu ausgebildet ist, andere technische Systeme auf der Basis einer Auswertung von physikalischen Messdaten mit dem KNN anzusteuern. Das System umfasst mindestens einen Sensor zur Aufnahme physikalischer Messdaten, das zuvor beschriebene KNN sowie eine Ansteuereinheit. Die Ansteuereinheit ist dazu ausgebildet, aus Ausgangsgrößen des KNN ein Ansteuersignal für ein Fahrzeug oder einen sonstigen autonomen Agenten (wie etwa einen Roboter), ein Klassifikationssystem, ein System für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder ein System für die medizinische Bildgebung, zu bilden. All die genannten Systeme profitieren davon, dass das KNN insbesondere eine gewünschte Klassifikation, Regression und/oder semantische Segmentierung besser erlernt als KNN, die auf eine „Batch-Normalization“ oder auf eine „ELU“-Aktivierungsfunktion setzen.
-
Der Sensor kann beispielsweise einen oder mehrere Bildsensoren für Licht beliebiger sichtbarer oder unsichtbarer Wellenlängen, und/oder mindestens einen Radar-, Lidar- oder Ultraschall-Sensor umfassen.
-
Nach dem zuvor Beschriebenen bezieht sich die Erfindung auch auf ein Verfahren zum Trainieren und Betreiben des zuvor beschriebenen KNN. Im Rahmen dieses Verfahrens werden dem KNN Lern-Eingangsgrößen zugeführt. Die Lern-Eingangsgrößen werden von dem KNN zu Ausgangsgrößen verarbeitet. Nach Maßgabe einer Kostenfunktion wird eine Bewertung der Ausgangsgrößen ermittelt, die besagt, wie gut die Ausgangsgrößen mit zu den Lern-Eingangsgrößen gehörenden Lern-Ausgangsgrößen in Einklang stehen.
-
Die trainierbaren Parameter des KNN werden gemeinsam mit mindestens einem zuvor beschriebenen Parameter ρ, der den Übergang zwischen den beiden Regimes einer Normierungsfunktion charakterisiert, optimiert. Das Ziel dieser Optimierung ist, beim weiteren Verarbeiten von Lern-Eingangsgrößen Ausgangsgrößen zu erhalten, deren Bewertung durch die Kostenfunktion voraussichtlich besser ist. Das bedeutet nicht, dass jeder Optimierungsschritt zwangsläufig eine Verbesserung in dieser Hinsicht sein muss; vielmehr kann die Optimierung auch aus „Irrwegen“, die zunächst zu einer Verschlechterung führen, lernen.
-
Bei der großen Anzahl trainierbarer Parameter von typischerweise mehreren 1000 bis hin zu mehreren Millionen fallen ein oder mehrere zusätzliche Parameter ρ beim Trainingsaufwand für das KNN insgesamt nicht nennenswert ins Gewicht. Dies steht im Gegensatz zur Optimierung diskreter Parameter, wie etwa der Batch-Größe für eine „Batch-Normalization“. Wie zuvor erläutert, macht es eine Optimierung solcher diskreter Parameter erforderlich, für jeden Kandidaten-Wert des diskreten Parameters das komplette Training des KNN erneut zu durchlaufen. Indem der zusätzliche Parameter ρ nun im Rahmen des Trainingsverfahrens als kontinuierlicher Parameter mittrainiert wird, wird also gegenüber der „Batch-Normalization“ der Gesamtaufwand deutlich reduziert.
-
Weiterhin kann das gemeinsame Training der Parameter des KNN sowie eines oder mehrerer zusätzlicher Parameter ρ auch Synergieeffekte zwischen beiden Trainings nutzen. So können beispielsweise beim Lernen Änderungen der trainierbaren Parameter, die die Verarbeitung der Eingangsgrößen von Verarbeitungsschichten zu Ausgangsgrößen unmittelbar steuern, mit Änderungen der zusätzlichen Parameter ρ, die auf die Normierungsfunktion wirken, vorteilhaft zusammenwirken. Mit solchermaßen „vereinten Kräften“ können beispielsweise besonders „schwierige Fälle“ der Klassifikation und/oder Regression bewältigt werden.
-
Dem fertig trainierten KNN können mit mindestens einem Sensor aufgenommene physikalische Messdaten als Eingangsgrößen zugeführt werden. Diese Eingangsgrößen können dann von dem trainierten KNN zu Ausgangsgrößen verarbeitet werden. Aus den Ausgangsgrößen kann dann ein Ansteuersignal für ein Fahrzeug oder einen sonstigen autonomen Agenten (wie etwa einen Roboter), ein Klassifikationssystem, ein System für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder ein System für die medizinische Bildgebung, gebildet werden. Das Fahrzeug, das Klassifikationssystem, das System für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder das System für die medizinische Bildgebung, kann schließlich mit diesem Ansteuersignal angesteuert werden.
-
Nach dem zuvor Beschriebenen bezieht sich die Erfindung auch auf ein weiteres Verfahren, das die vollständige Wirkkette vom Bereitstellen des KNN bis zur Ansteuerung eines technischen Systems beinhaltet.
-
Dieses weitere Verfahren beginnt mit der Bereitstellung des KNN. Sodann werden die trainierbaren Parameter des KNN, sowie optional mindestens ein Parameter ρ, der den Übergang zwischen den beiden Regimes einer Normierungsfunktion optimiert, so trainiert, dass Lern-Eingangsgrößen von dem KNN zu solchen Ausgangsgrößen verarbeitet werden, die nach Maßgabe einer Kostenfunktion im Einklang mit zu den Lern-Eingangsgrößen gehörenden Lern-Ausgangsgrößen stehen.
-
Dem fertig trainierten KNN werden mit mindestens einem Sensor aufgenommene physikalische Messdaten als Eingangsgrößen zugeführt. Diese Eingangsgrößen werden von dem trainierten KNN zu Ausgangsgrößen verarbeitet. Aus den Ausgangsgrößen wird ein Ansteuersignal für ein Fahrzeug oder einen sonstigen autonomen Agenten (wie etwa einen Roboter), ein Klassifikationssystem, ein System für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder ein System für die medizinische Bildgebung, gebildet. Das Fahrzeug, das Klassifikationssystem, das System für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder das System für die medizinische Bildgebung, wird mit diesem Ansteuersignal angesteuert.
-
Die zuvor beschriebenen verbesserten Lernfähigkeiten des KNN haben in diesem Kontext die Wirkung, dass durch die Ansteuerung des entsprechenden technischen Systems mit höherer Wahrscheinlichkeit diejenige Aktion ausgelöst wird, die in der durch die physikalischen Messdaten repräsentierten Situation angemessen ist.
-
Die Verfahren können insbesondere ganz oder teilweise computerimplementiert sein. Daher bezieht sich die Erfindung auch auf ein Computerprogramm mit maschinenlesbaren Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer dazu veranlassen, eines der beschriebenen Verfahren auszuführen. In diesem Sinne sind auch Steuergeräte für Fahrzeuge und Embedded-Systeme für technische Geräte, die ebenfalls in der Lage sind, maschinenlesbare Anweisungen auszuführen, als Computer anzusehen.
-
Ebenso bezieht sich die Erfindung auch auf einen maschinenlesbaren Datenträger und/oder auf ein Downloadprodukt mit dem Computerprogramm. Ein Downloadprodukt ist ein über ein Datennetzwerk übertragbares, d.h. von einem Benutzer des Datennetzwerks downloadbares, digitales Produkt, das beispielsweise in einem Online-Shop zum sofortigen Download feilgeboten werden kann.
-
Weiterhin kann ein Computer mit dem Computerprogramm, mit dem maschinenlesbaren Datenträger bzw. mit dem Downloadprodukt ausgerüstet sein.
-
Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand von Figuren näher dargestellt.
-
Figurenliste
-
Es zeigt:
- 1 Ausführungsbeispiel des KNN 1;
- 2 Ausführungsbeispiel des Normierers 3;
- 3 Beispielhafter Tensor 31' mit Eingangsgrößen 31 des Normierers 3;
- 4 Ausführungsbeispiel des Systems 10 mit dem KNN 1;
- 5 Ausführungsbeispiel des Verfahrens 100 zum Trainieren und Betreiben des KNN 1;
- 6 Ausführungsbeispiel des Verfahrens 200 mit vollständiger Wirkkette vom Bereitstellen des KNN 1 bis zur Ansteuerung eines technischen Systems.
-
Das in 1 beispielhaft gezeigte KNN 1 umfasst drei Verarbeitungsschichten 21-23. Jede Verarbeitungsschicht 21-23 erhält Eingangsgrößen 21a-23a und verarbeitet diese zu Ausgangsgrößen 21b-23b. Die Eingangsgrößen 21a der ersten Verarbeitungsschicht 21 sind zugleich auch die Eingangsgrößen 11 des KNN 1 als Ganzes. Die Ausgangsgrößen 23b der dritten Verarbeitungsschicht 23 sind zugleich die Ausgangsgrößen 12, 12' des KNN 1 als Ganzes. Reale KNN 1, speziell für den Einsatz in der Klassifikation oder in anderen Computer Vision-Anwendungen, sind wesentlich tiefer und umfassen einige zehn Verarbeitungsschichten 21-23.
-
In 1 sind zwei beispielhafte Möglichkeiten eingezeichnet, wie ein Normierer 3 in das KNN 1 eingebracht werden kann.
-
Eine Möglichkeit besteht darin, dem Normierer 3 die Ausgangsgrößen 21b der ersten Verarbeitungsschicht 21 als Eingangsgrößen 31 zuzuführen und die Ausgangsgrößen 35 des Normierers dann der zweiten Verarbeitungsschicht 22 als Eingangsgrößen 22a zuzuführen.
-
Innerhalb des Kastens 22 ist die in der zweiten Verarbeitungsschicht 22 ablaufende Verarbeitung schematisch dargestellt, einschließlich einer zweiten Möglichkeit, den oder die Normierer 3 einzubinden. Die Eingangsgrößen 22a werden zunächst nach Maßgabe trainierbarer Parameter 20 des KNN 1 zu einer oder mehreren gewichteten Summen summiert, was durch das Summenzeichen angedeutet ist. Das Ergebnis wird dem Normierer 3 als Eingangsgrößen 31 zugeführt. Die Ausgangsgrößen 35 des Normierers 3 werden mit einer nichtlinearen Aktivierungsfunktion (in 1 als ReLU-Funktion angedeutet) zu den Ausgangsgrößen 22b der zweiten Verarbeitungsschicht 22 verrechnet.
-
Innerhalb ein und desselben KNN 1 können mehrere verschiedene Normierer 3 zum Einsatz kommen. Jeder Normierer 3 kann dann insbesondere seinen eigenen Parameter p für den Übergang zwischen den Regimen seiner Normierungsfunktion 33 haben. Weiterhin kann jeder Normierer 3 auch mit einer eigenen spezifischen Vorverarbeitung gekoppelt sein.
-
2 zeigt ein Ausführungsbeispiel des Normierers 3. Der Normierer 3 übersetzt seine Eingangsgrößen 31 mit einem Übersetzungsglied 3a, das eine vorgegebene Transformation 3a' implementiert, in einen oder mehrere Eingabe-Vektoren 32. Diese Eingabe-Vektoren 32 werden dem Normierungsglied 3b zugeführt und dort zu Ausgabe-Vektoren 34 normiert. Die Ausgabe-Vektoren 34 werden in dem Rückübersetzungsglied 3c gemäß der Umkehrung 3a'' der vorgegebenen Transformation 3a' in Ausgangsgrößen 35 des Normierers 3 übersetzt, die die gleiche Dimensionalität wie die Eingangsgrößen 31 des Normierers 3 haben.
-
Innerhalb des Kastens 3b ist im Detail dargestellt, wie die Normierung der Eingabe-Vektoren 32 zu den Ausgabe-Vektoren 34 abläuft. Die verwendete Normierungsfunktion 33 hat zwei Regime 33a und 33b, in denen sie jeweils ein qualitativ unterschiedliches Verhalten zeigt und insbesondere verschieden stark auf die Eingabe-Vektoren 32 einwirkt. Die Norm 32a des jeweiligen Eingabe-Vektors 32 entscheidet im Zusammenspiel mit mindestens einem vorgegebenen Parameter ρ darüber, welches der Regime 33a und 33b zur Anwendung kommt. Dies ist in 2 zur Veranschaulichung als binäre Entscheidung dargestellt. In der Realität ist es jedoch besonders vorteilhaft, wenn die Regime 33a und 33b fließend ineinander übergehen, insbesondere in einer Weise, die differenzierbar in dem Parameter ρ ist.
-
3 zeigt einen beispielhaften Tensor 31' von Eingangsgrößen 31 des Normierers 3. Der Tensor 31' ist in diesem Beispiel als Stapelung von f Merkmalskarten 31a organisiert. Ein Index i über die Merkmalskarten 31a läuft also von 1 bis f. Jede Merkmalskarte 31a ordnet n Orten 31b jeweils Merkmalsinformation 31c zu. Ein Index j über die Orte 31b läuft also von 1 bis n.
-
In 3 sind beispielhaft zwei Möglichkeiten eingezeichnet, wie Eingabe-Vektoren 32 gebildet werden können. Gemäß einer ersten Möglichkeit werden jeweils alle Merkmalsinformationen 31c einer Merkmalskarte 31a (hier der Merkmalskarte 31a für i=1) in einem Eingabe-Vektor 32 zusammengefasst. Gemäß einer zweiten Möglichkeit werden jeweils alle Merkmalsinformationen 31c, die zum gleichen Ort 31b gehören (hier der Ort 31b für j=1), in einem Eingabe-Vektor 32 zusammengefasst. Eine dritte, der Übersichtlichkeit halber in 3 nicht eingezeichnete Möglichkeit besteht darin, alle Merkmalsinformationen 31c aus dem gesamten Tensor 31' in einen einzelnen Eingabe-Vektor 32 zu schreiben.
-
4 zeigt ein Ausführungsbeispiel des Systems 10, mit dem weitere technische Systeme 50-80 angesteuert werden können. Es ist mindestens ein Sensor 6 zur Aufnahme physikalischer Messdaten 6a vorgesehen. Die Messdaten 6a werden dem KNN 1, das insbesondere in seinem fertig trainierten Zustand 1* vorliegen kann, als Eingangsgrößen 11 zugeführt. Die vom KNN 1, 1* gelieferten Ausgangsgrößen 12' werden in der Auswerteeinheit 7 zu einem Ansteuersignal 7a verarbeitet. Dieses Ansteuersignal 7a ist für die Ansteuerung eines Fahrzeug oder eines sonstigen autonomen Agenten (etwa eines Roboters) 50, eines Klassifikationssystems 60, eines Systems 70 für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder eines Systems 80 für die medizinische Bildgebung, bestimmt.
-
5 ist ein Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 100 zum Trainieren und Betreiben des KNN 1. In Schritt 110 werden dem KNN 1 Lern-Eingangsgrößen 11a zugeführt. In Schritt 120 werden die Lern-Eingangsgrößen 11a von dem KNN 1 zu Ausgangsgrößen 12 verarbeitet, wobei das Verhalten des KNN 1 durch trainierbare Parameter 20 charakterisiert ist. In Schritt 130 wird nach Maßgabe einer Kostenfunktion 13 bewertet, inwieweit die Ausgangsgrößen 12 mit zu den Lern-Eingangsgrößen 11a gehörenden Lern-Ausgangsgrößen 12a in Einklang stehen. Die trainierbaren Parameter 20 werden in Schritt 140 optimiert mit dem Ziel, bei weiterer Verarbeitung von Lern-Eingangsgrößen 11a durch das KNN 1 Ausgangsgrößen 12 zu erhalten, für die in Schritt 130 bessere Bewertungen 130a ermittelt werden.
-
6 ist ein Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 200 mit der vollständigen Wirkkette vom Bereitstellen eines KNN 1 bis zur Ansteuerung der genannten Systeme 50, 60, 70, 80.
-
In Schritt 210 wird das KNN 1 bereitgestellt. In Schritt 220 werden die trainierbaren Parameter 20 des KNN 1 trainiert, so dass der trainierte Zustand 1* des KNN 1 entsteht. In Schritt 230 werden physikalische Messdaten 6a, die mit mindestens einem Sensor 6 ermittelt wurden, dem trainierten KNN 1* als Eingangsgrößen 11 zugeführt. In Schritt 240 werden von dem trainierten KNN 1* Ausgangsgrößen 12' gebildet. In Schritt 250 wird aus den Ausgangsgrößen 12' ein Ansteuersignal 7a gebildet. In Schritt 260 werden eines oder mehrere der Systeme 50, 60, 70, 80 mit dem Ansteuersignal 7a angesteuert.