Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
COMPUTER-IMPLEMENTED METHOD FOR TRAINING AN ARTIFICIAL NEURAL NETWORK (ANN) USING A SAMPLE FOCUS OPTIMIZATION IN ORDER TO INCREASE THE CLASSIFICATION PRECISION OF THE ANN, AND TRAINING DEVICE
Document Type and Number:
WIPO Patent Application WO/2023/170088
Kind Code:
A1
Abstract:
The invention relates to a computer-implemented method for training an artificial neural network ANN, in particular in order to increase the classification precision of the ANN, having the steps of: providing (100) a labeled training data set (X, Y, Z) in order to train the ANN, wherein the labeled training data set has at least first data (X) which is assigned to a first data class (Kx), said first data (X) being formed from a plurality of first data samples (xi), and the training data set has second data (Y) which is assigned to a second data class (Ky), said second data (Y) being formed from a plurality of second data samples (yi); forward-propagating (200) the provided training data set from an input layer of the ANN to an output layer of the ANN through at least one hidden layer, in particular in order to map the first data sample (xi) and the second data sample (yi) into a multidimensional characteristic space; optimizing (300) a cost function (L) of the ANN, said optimization step being characterized in that the optimization process includes the process of determining (310) a first sample focus (cxi) for the plurality of first data samples (xi) and the process of determining a second sample focus (cyi) for the plurality of second data samples (yi), minimizing (320) the distance between the first data sample (xi) and the determined first sample focus (cxi), minimizing the distance between the second data sample (yi) and the determined second sample focus (cyi), and maximizing (330) the distance between the determined first sample focus (cxi) and the determined second sample focus (cyi).

Inventors:
LARSEN ANNA (DE)
LUX PAULINE (DE)
Application Number:
PCT/EP2023/055786
Publication Date:
September 14, 2023
Filing Date:
March 07, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BASLER AG (DE)
International Classes:
G06N3/04; G06N3/09
Other References:
CHENG SENLIN ET AL: "I-Center Loss for Deep Neural Networks", 30 December 2018, ADVANCES IN DATABASES AND INFORMATION SYSTEMS; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER INTERNATIONAL PUBLISHING, CHAM, PAGE(S) 34 - 44, ISBN: 978-3-319-10403-4, XP047498572
WEN YANDONG ET AL: "A Discriminative Feature Learning Approach for Deep Face Recognition", COMPUTER VISION ? ECCV 2016, 1 January 2016 (2016-01-01), Cham, pages 1 - 17, XP055950398, ISBN: 978-3-319-46478-7, Retrieved from the Internet [retrieved on 20220810], DOI: 10.1007/978-3-319-46478-7
PAPER C. QIF. SU: "Contrastive-center loss for deep neural networks", 2017 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP), 2017, pages 2851 - 2855
PAVEL GOLIKPATRICK DOETSCHHERMANN NEY, CROSS-ENTROPY VS. SQUARED ERROR TRAINING: A THEORETICAL AND EXPERIMENTAL COMPARISON, August 2013 (2013-08-01), pages 1756 - 1760
Attorney, Agent or Firm:
EISENFÜHR SPEISER PATENTANWÄLTE RECHTSANWÄLTE PARTGMBB (DE)
Download PDF:
Claims:
Ansprüche

1. Computerimplementiertes Verfahren zum Trainieren eines künstlichen neuronalen Netzes KNN und insbesondere zur Erhöhung einer Klassifikationsgenauigkeit des KNN, umfassend die Schritte:

Bereitstellen (100) eines gelabelten Trainingsdatensatzes (X, Y, Z) zum Trainieren des KNN, wobei der gelabelte Trainingsdatensatz wenigstens erste Daten (X) aufweist, die einer ersten Datenklasse (Kx) zugeordnet sind, wobei die ersten Daten (X) aus einer Vielzahl von ersten Datensamples (xi) ausgebildet sind und der Trainingsdatensatz zweite Daten (Y) aufweist, die einer zweiten Datenklasse (Ky) zugeordnet sind, wobei die zweiten Daten (Y) aus einer Vielzahl von zweiten Datensamples (yi) ausgebildet sind;

Vorwärtspropagieren (200) des bereitgestellten T rainingsdatensatzes von einer Eingangsschicht des KNN durch wenigstens eine versteckte Schicht bis zu einer Ausgangsschicht des KNN, insbesondere um die ersten Datensamples (xi) und die zweiten Datensamples (yi) in einen mehrdimensionalen Merkmalsraum abzubilden;

Optimieren (300) einer Kostenfunktion (L) des KNN, dadurch gekennzeichnet, dass das Optimieren ein Bestimmen (310) eines ersten Sampleschwerpunktes (cxi) für die Vielzahl der ersten Datensamples (xi) und ein Bestimmen eines zweiten Sampleschwerpunkts (Cyj) für die Vielzahl der zweiten Datensamples (yi) umfasst, und ein Minimieren (320) eines Abstands der ersten Datensamples (xi) zu dem bestimmten ersten Sampleschwerpunkt (cxi) und ein Minimieren eines Abstands der zweiten Datensamples (yi) zu dem bestimmten zweiten Sampleschwerpunkt (Cyj) umfasst, und ein Maximieren (330) eines Abstands des bestimmten ersten Sampleschwerpunktes (Cxi) zu dem bestimmten zweiten Sampleschwerpunkt (cyj) umfasst.

2. Verfahren nach Anspruch 1 , wobei die ersten und zweiten Daten Bilddaten sind und jedes Datensample in dem Merkmalsraum eine Abbildung eines einzelnen Bildes entspricht, das in das KNN eingegebenen wurde.

3. Verfahren nach Anspruch 1 oder 2, wobei das Verfahren mit einem Computer Vision System ausgeführt wird, insbesondere mit einer GPU.

4. Verfahren nach einem der vorstehenden Ansprüche, wobei das Optimieren der Kostenfunktion durch Anpassung von Gewichten des KNN in einem überwachten Lernverfahren erfolgt.

5. Verfahren nach einem der vorstehenden Ansprüche, wobei das Optimieren der Kostenfunktion mittels eines Gradientenabstiegsverfahren oder dergleichen optimiert wird.

6. Verfahren nach einem der vorstehenden Ansprüche, wobei das KNN ein tiefes KNN mit wenigstens zwei versteckten Schichten ist, und das KNN vorzugsweise zur Bildklassifikation eingerichtet ist, wobei das KNN insbesondere ein faltendes KNN (CNN) ist, ein rekurrentes neuronales Netz (RNN) ist, ein residuales neuronales Netz (ResNet) ist oder dergleichen.

7. Verfahren nach einem der vorstehenden Ansprüche, wobei die Abstände der Datensamples (x, yi) zu dem Sampleschwerpunkt (cXi, cyj) aufsummiert werden und die Berechnung der Abstände mittels mit einer Normberechnung bestimmt wird.

8. Verfahren nach einem der vorstehenden Ansprüche, wobei die Abstände der Sampleschwerpunkte zueinander aufsummiert werden und die Berechnung der Abstände der Sampleschwerpunkte mit einer Normberechnung bestimmt wird.

9. Verfahren nach einem der vorstehenden Ansprüche, wobei der gelabelte Trainingsdatensatz eine Vielzahl von Daten (X, Y, Z) aufweist, die jeweils einer unterschiedlichen Datenklasse (Kx, Ky, Kz) zugeordnet sind und die Daten (X, Y, Z) aus einer Vielzahl von Datensamples (x, yi, Zj) ausgebildet sind, und für jede Vielzahl von Datensamples (x, yi, Zj) jeweils ein Klassenschwerpunkt (cxi, cyj, cZj) bestimmt wird, und der Abstand der Datensamples (x.yi, Zj) zu den zugehörigen Klassenschwerpunkten (cxi, cyi, cZj) minimiert wird und anschließend der Abstand der Klassenschwerpunkte (cxi, cyj, cZj) zueinander maximiert wird.

10. Verfahren nach einem der vorstehenden Ansprüche, wobei das Optimieren der Kostenfunktion den zusätzlichen Schritt umfasst:

Initiieren des ersten Sampleschwerpunktes und/oder des zweiten Sampleschwerpunkts mit einem Initialwert.

11 . Verfahren nach einem der vorstehenden Ansprüche, der Schritt Optimieren (300) der Kostenfunktion (L) des KNN den zusätzlichen Schritt umfasst:

Einstellen eines Skalierungsfaktors A, wobei der Skalierungsfaktor A ein skalarer Faktor ist zum Einstellen eines Einflusses eines Terms der zu optimierenden Kostenfunktion.

12. Trainingseinrichtung zum Trainieren eines künstlichen neuronalen Netzes KNN und zur Erhöhung einer Klassifikationsgenauigkeit des KNN, wobei die Trainingseinrichtung wenigstens einen Datenspeicher aufweist zum Bereitstellen eines gelabelten Trainingsdatensatzes (X, Y, Z) zum Trainieren des KNN, wobei der gelabelte Trainingsdatensatz wenigstens erste Daten (X) aufweist, die einer ersten Datenklasse (Kx) zugeordnet sind, wobei die ersten Daten (X) aus einer Vielzahl von ersten Datensamples (xi) ausgebildet sind und der Trainingsdatensatz zweite Daten (Y) aufweist, die einer zweiten Datenklasse (Ky) zugeordnet sind, wobei die zweiten Daten (Y) aus einer Vielzahl von zweiten Datensamples (yi) ausgebildet sind, und die T rainingseinrichtung ein Trainingsmodul mit dem zu trainierenden KNN aufweist, wobei das Trainingsmodul zum Vorwärtspropagieren des bereitgestellten Trainingsdatensatzes von einer Eingangsschicht des KNN durch wenigstens eine versteckte Schicht bis zu einer Ausgangsschicht des KNN eingerichtet ist, insbesondere um die ersten Datensamples (x) und die zweiten Datensamples (yi) in einen mehrdimensionalen Merkmalsraum abzubilden, und das Trainingsmodul zudem zum Optimieren einer Kostenfunktion (L) des KNN eingerichtet ist, dadurch gekennzeichnet, dass das Trainingsmodul zum Optimieren einen ersten Sampleschwerpunkt (cxi) für die Vielzahl der ersten Datensamples (xi) bestimmt und einen zweiten Sampleschwerpunkt (cyj) für die Vielzahl der zweiten Datensamples (yi) bestimmt, und das Trainingsmodul einen Abstand der ersten Datensamples (xi) zu dem ersten Sampleschwerpunkt (Cxi) minimiert und einen Abstand der zweiten Datensamples (yi) zu dem zweiten Sampleschwerpunkt (cyj) minimiert, und das Trainingsmodul einen Abstand des bestimmten ersten Sampleschwerpunktes (cxi) zu dem bestimmten zweiten Sampleschwerpunkt (cyj) maximiert.

13. Trainingseinrichtung nach Anspruch 12, wobei die Trainingseinrichtung zur Ausführung des Verfahrens nach einem der vorstehenden Ansprüche 1 bis 11 eingerichtet ist.

14. Trainingseinrichtung nach Anspruch 12 oder 13, wobei das Trainingsmodul auf oder in einer GPU ausgeführt wird.

Description:
Computerimplementiertes Verfahren zum Trainieren eines künstlichen neuronalen Netzes (KNN) mit einer Sampleschwerpunktoptimierung zur Erhöhung einer Klassifikationsgenauigkeit des KNN und Trainingseinrichtung

Die vorliegende Erfindung betrifft ein computerimplementiertes Verfahren zum Trainieren eines künstlichen neuronalen Netzes. Zudem betrifft die vorliegende Erfindung eine Trainingseinrichtung zum Trainieren eines künstlichen neuronalen Netzes. Künstliche neuronale Netze (KNN) sind Stand der Technik für viele Anwendungen und haben Marktreife für industrielle Anwendungen erlangt, beispielsweise im Bereich Computer Vision. Dort werden KNN beispielsweise zur Bildklassifizierung o- der zur Gesichtserkennung eingesetzt. Klassifizieren bedeutet dabei das Zuordnen eines unbekannten Datensamples zu einer Datenklasse. Moderne Architekturen von KNN, die sich vor allem auf Bilder als Datengrundlage beziehen, und die als Netzwerkarchitekturen bezeichnet werden können, sind beispielsweise Convolutional Neural Networks (CNN), die in weitere Unterklassen unterteilt werden können, wie in das Residual Network (ResNet) oder das VGG Net- work (z.B. VGG-16). Die genannten Netzwerke sind Beispiele für bekannte Netzwerkarchitekturen. Diese KNN erreichen für Problemstellungen der Klassifikation oder Detektion auf komplexen Datensätzen mit einigen hundert bis tausend Klassen, eine gute Performance.

Für den Einsatz in der Industrie ist eine hohe Anforderung bezüglich der Klassifikationsgenauigkeit an KNN gestellt. Aus diesem Grund werden Anstrengungen unternommen, KNN zu optimieren damit sie eine ausreichend hohe Klassifikationsgenauigkeit erreichen.

Dabei sind im Stand der Technik verschiedene Methoden bekannt, um die Klassifikationsgenauigkeit von KNN zu erhöhen.

Es ist beispielsweise bekannt, tiefere, breitere und komplexere Netzwerkstrukturen zu verwenden, um verbesserte/komplexere Bildmerkmale zu erhalten/abbilden zu können. Das Ziel bei diesem Ansatz ist, durch die Verwendung größerer Architekturen, mehr diskriminierende Bildmerkmale zu erhalten. Diskriminierende Bildmerkmale können auch als Unterscheidungsmerkmale oder unterscheidbare Merkmale verstanden werden. Problematisch an diesem Ansatz ist aber, dass das Training solcher großen Netze relativ schwierig und nicht so effektiv ist.

Andere Bemühungen betreffen eine Optimierung der Netzwerkarchitektur selbst. Beispielsweise ist es bekannt verschiedene nichtlineare Aktivierungen der Knoten der KNN vorzunehmen, sog. Dropout-Funktionen in Knoten des KNN durchzuführen oder eine Batch-Normalisierung in den verstecken Schichten durchzuführen, um die Leistung bzw. Klassifikationsgenauigkeit der KNN zu verbessern.

Ein dritter bekannter Ansatz ist, auf den sich auch die vorliegende Erfindung bezieht, eine Verwendung von Hilfsfunktionen, die als zusätzlicher Term in einer zu minimierenden Kostenfunktion beim Trainieren des KNN berücksichtigt werden.

Eine aus dem Bereich des dritten Ansatzes bekannter Stand der Technik ist das Paper C. Qi and F. Su, "Contrastive-center loss for deep neural networks," 2017 IEEE International Conference on Image Processing (ICIP), 2017, pp. 2851-2855, doi: 10.1109/ICI P.2017.8296803. Darin wird eine Berücksichtigung des sogenannten „contrastive-center loss“ vorgeschlagen, der in der zu minimierenden Kostenfunktion berücksichtigt wird, um die Klassifikationsgenauigkeit eines KNN zu erhöhen. Dies wird in dem genannten Paper erreicht, indem in einem hochdimensionalen Raum gleichzeitig die Entfernungen der Trainingssamples zu ihren entsprechenden Klassenzentren und die Summe der Entfernungen der Trainingssamples zu ihren nicht-korrespondierenden Klassenzentren optimiert werden. Die Klassenzentren können auch als Klassenschwerpunkte verstanden werden.

Das Ziel, das dieser Ansatz verfolgt, und das auch die anderen zuvor genannten Optimierungsansätze verfolgen, ist also, die mit dem KNN extrahierten Bildmerkmale möglichst diskret in einem hochdimensionalen Raum zu verteilen, damit die Klassifizierung der Bildmerkmale einfacher erfolgen kann. Einfach gesprochen, möchte man erreichen, dass die Bildmerkmale bzw. die Bildsamples in dem hochdimensionalen Raum für unterschiedliche Klassen gut voneinander zu unterscheiden sind.

Aufgabe der vorliegenden Erfindung ist es deshalb, eines der oben genannten Probleme zu adressieren, den allgemeinen Stand der Technik zu verbessern oder eine Alternative zu bisher Bekanntem bereitzustellen. Insbesondere soll eine Lösung bereitgestellt werden mit der die Klassifikationsgenauigkeit eines künstlichen neuronalen Netzes erhöht wird.

Erfindungsgemäß wird dazu ein computerimplementiertes Verfahren zum Trainieren eines künstlichen neuronalen Netzes gemäß Anspruch 1 vorgeschlagen. Der Begriff künstliches neuronales Netz wird durch KNN abgekürzt. Das computerimplementierte Verfahren ist in einer besonderen Ausführungsform zur Erhöhung einer Klassifikationsgenauigkeit des KNN geeignet.

Es wird also ein Verfahren vorgeschlagen, dass Verfahren mit oder auf einem Computersystem bzw. computergestützt ausgeführt wird. Das KNN ist also in dem Computersystem implementiert und es ist trainierbar ausgebildet. Das Verfahren umfasst den Schritt Bereitstellen eines gelabelten Trainingsdatensatzes zum Trainieren des KNN. Ein gelabelter Trainingsdatensatz ist dabei ein Datensatz, der aus einer Vielzahl von Trainingsdaten ausgebildet ist, wobei die Trainingsdaten in Klassen bzw. Datenklassen klassifiziert sind. Bekannte gelabelte Trainingsdatensätze sind beispielsweise MNIST oder CIFAR10. Der MNIST Trainingsdatensatz weist beispielsweise 60000 einzelne Trainingsbilder und 10000 Testbilder auf. Die Bilder sind dabei in 10 Klassen unterteilt. Es gibt also 6000 Bilder die einer ersten (Daten-) Klasse zugeordnet sind, weitere 6000 Bilder die einer zweiten Klasse zugeordnet sind, 6000 Bilder die einer dritten Klasse zugeordnet sind, usw. Die zehn Klassen des MNIST Trainingsdatensätze sind beispielsweise von 0 bis 9 durchnummeriert. Ein gelabelter Trainingsdatensatz ist also aus gelabelten Trainingsdaten ausgebildet, also aus Daten die zum Trainieren des KNN verwendet werden. Unter gelabelten Daten werden sowohl unabhängige Variablen (Features) als auch abhängige Variablen (Label) verstanden. Das Label fließt mit in das Modelltraining des KNN ein, damit das trainierte Modell bzw. KNN bei neuen Daten (ohne Label) das Label Vorhersagen kann.

Das Bereitstellen des gelabelten Trainingsdatensatzes erfolgt beispielsweise mit einem dazu eingerichteten Datenspeicher, der beispielsweise Teil des Computersystems ist, das das computerimplementierte Verfahren ausführt oder der Teil einer Trainingseinrichtung ist, die zum Ausführen des vorgeschlagenen Verfahrens eingerichtet ist.

Der gelabelte T rainingsdatensatz weist dabei wenigstens erste Daten auf, die einer ersten Datenklasse zugeordnet sind. Die ersten Daten sind dabei aus einer Vielzahl von ersten Datensamples ausgebildet. Es wird also vorgeschlagen, dass der Trainingsdatensatz eine Vielzahl von ersten klassifizierten Daten aufweist und die Gesamtmenge der ersten Daten aus den einzelnen Datensamples ausgebildet ist. Ein Beispiel für solche Daten sind zum Beispiel Bilddaten bzw. digitale Bilder, die aus der Vielzahl von klassifizierten einzelnen Bildern ausgebildet sind, wobei die einzelnen Bilder einer ersten Datenklasse zugeordnet sind. Die Daten können grundsätzlich beliebig sein, es kann sich z. B. auch um klassifizierte Audiodaten oder sonstige klassifizierte Messdaten handeln, je nach Anwendung. An dem zuvor beschriebenen MNIST Datensatz veranschaulicht, sind die ersten Daten z. B. 6000 Bilder, die einer ersten Klasse zugeordnet sind, und die Vielzahl der Datensamples sind die einzelnen Bilder.

Der Trainingsdatensatz weist zudem zweite Daten auf, die einer zweiten Datenklasse zugeordnet sind. Dabei sind die zweiten Daten aus einer Vielzahl von zweiten Datensamples ausgebildet. Es wird also vorgeschlagen, dass der Trainingsdatensatz wenigstens aus zwei klassifizierten Datensätzen ausgebildet ist. Erneut an dem MNIST Datensatz veranschaulicht, sind die ersten Daten z.B. 6000 Bilder, die einer ersten Klasse zugeordnet sind und die zweiten Daten sind z. B. 6000 Bilder die einer anderen zweiten Klasse zugeordnet sind.

Die Daten, also die ersten und zweiten Daten, können synonym als Trainingsdaten bezeichnet werden. Die Datensamples, also die ersten und zweiten Datensamples, können synonym als Trainingssamples bezeichnet werden.

Das Verfahren umfasst zudem den Schritt Vorwärtspropagieren des bereitgestellten Trainingsdatensatzes von einer Eingangsschicht des KNN durch wenigstens eine versteckte Schicht bis zu einer Ausgangsschicht des KNN. Es wird also vorgeschlagen, dass das KNN mit dem Trainingsdatensatz in einem Trainingsverfahren trainiert wird und dazu der Trainingsdatensatz, der aus den zwei unterschiedlich klassifizierten Daten besteht, in das KNN eingeben wird. Durch die Formulierung „wenigstens eine versteckte Schicht“, wird dabei zum Ausdruck gebracht, dass das vorgeschlagene Verfahren auch auf ein KNN mit nur einer versteckten Schicht anwendbar ist. Es kann aber auch für tiefe KNN verwendet werden. Die Architektur des KNN richtet sich entsprechend nach der Komplexität der Klassifikationsaufgabe. Das Vorwärtspropagieren erfolgt bevorzugt Batchweise, das heißt, es werden mehrere erste und zweite Datensamples in das KNN eingegeben bevor die Gewichte angepasst werden. Die Größe des Batches wird typischerweise über die sogenannte „Batch Size“ vorgegeben. Die Batch Size definiert dabei wie viele Bilder pro Update der Gewichte des KNN zum Training verwendet werden. In einer besonders bevorzugten Ausführungsform werden durch das Vorwärtspropagieren die ersten Datensamples und die zweiten Datensamples in einen mehrdimensionalen Merkmalsraum abgebildet. Dieser Raum ist auch als Featureraum oder hochdimensionaler Raum bekannt.

Der Schritt Vorwärtspropagieren kann deshalb auch als Abbilden der Daten bzw. Datensamples in den mehrdimensionalen Merkmalsraum aufgefasst werden.

Das KNN bzw. die versteckten Schichten werden auch als „Feature Extractor“ bezeichnet, da es Bildmerkmale aus den in das KNN eingegebene Daten extrahiert und die Datensamples bzw. Trainingssamples in den mehrdimensionalen Merkmalsraum abbildet.

Das Vorwärtspropagieren erfolgt beispielsweise mit einem dazu eingerichteten Trainingsmodul, das beispielsweise Teil des Computersystems ist, das das computerimplementierte Verfahren ausführt oder das Teil einer Trainingseinrichtung ist, die zum Ausführen des vorgeschlagenen Verfahrens eingerichtet ist.

Das Verfahren umfasst zudem den Schritt Optimieren einer Kostenfunktion des KNN. Es versteht sich, dass das Optimieren der Kostenfunktion in der Regel erfolgt, indem die Gewichte des KNN iterativ angepasst werden, bis die Kostenfunktion minimal ist oder zumindest ein Minimum gefunden wurde. Das Optimieren einer Kostenfunktion durch Trainieren bzw. Anpassung der Gewichte des KNN ist grundsätzlich bekannt. Im Prinzip erfolgt das Anpassen der Gewichte des KNN solange, bis die verwendete Kostenfunktion ein Minimum aufweist. Zum Minimieren und Anpassen der Gewichte sind verschiedene Verfahren bekannt, wie z.B. Gradientenabstiegsverfahren, Stochastischer Gradientenabstieg (engl. „Stochastic Gradient Descent“, SGD), Batch-Gradientenabstieg, Mini-Batch-Gra- dientenabstieg, Levenberg-Marquardt Algorithmus oder dergleichen.

Das Optimieren der Kostenfunktion bzw. Anpassen der Gewichte des KNN erfolgt beispielsweise mit einem dazu eingerichteten Anpassungsmodul, das beispielsweise Teil des Computersystems ist, das das computerimplementierte Verfahren ausführt oder das Teil einer Trainingseinrichtung ist, die zum Ausführen des vorgeschlagenen Verfahrens eingerichtet ist.

Das Optimieren der Kostenfunktion umfasst dabei den Schritt Bestimmen eines ersten Sampleschwerpunktes für die Vielzahl der ersten Datensamples und Bestimmen eines zweiten Sampleschwerpunkts für die Vielzahl der zweiten Datensamples. Die Sampleschwerpunkte können synonym auch als Klassenschwerpunkte bezeichnet werden. Es wird also vorgeschlagen, dass wenigstens ein erster und ein zweiter Klassenschwerpunkt für die unterschiedlichen klassifizierten Datensamples bestimmt wird. Die Bestimmung der Klassenschwerpunkte erfolgt dabei in dem mehrdimensionalen Merkmalsraum. Werden beispielsweise nur Datensamples verwendet, die einer ersten und einerzweiten Klasse zugeordnet sind, wird für die Datensamples der ersten Klasse ein erster Klassenschwerpunkt bestimmt und für die Datensamples der zweiten Klasse ein anderer zweiter Klassenschwerpunkt bestimmt. Werden Datensamples verwendet, die zehn Klassen aufweisen, werden entsprechend zehn Klassenschwerpunkte bestimmt, usw.

Das Optimieren umfasst zudem den Schritt Minimieren eines Abstands der ersten Datensamples zu dem bestimmten ersten Sampleschwerpunkt und ein Minimieren eines Abstands der zweiten Datensamples zu dem bestimmten zweiten Sampleschwerpunkt. Es wird also vorgeschlagen, dass nachdem die Sampleschwerpunkte der jeweiligen Klassen bestimmt wurden, der Abstand der Datensamples zu dem bestimmten Sampleschwerpunkt minimiert wird. Es versteht sich, dass das Minimieren der Abstände der Datensamples zu dem jeweiligen Sampleschwerpunkt durch eine Anpassung der Gewichte des KNN erfolgt. Durch Anpassung der Gewichte werden die Datensamples sozusagen in dem Merkmalsraum verschoben, bis der Abstand der Summe aller Datensamples zu dem Sampleschwerpunkt minimal ist.

Das Optimieren umfasst zudem den Schritt Maximieren eines Abstands des bestimmten ersten Sampleschwerpunktes zu dem bestimmten zweiten Sampleschwerpunkt. Es wird also vorgeschlagen, dass zudem der Abstand der Sampleschwerpunkte zueinander maximiert wird. Das Maximieren des Abstandes der Sampleschwerpunkte erfolgt dabei analog wie zuvor beschrieben durch Anpassung der Gewichte. Werden mehr als zwei Sampleschwerpunkte bestimmt, erfolgt die Maximierung aller Abstände der Sampleschwerpunkte zueinander.

Es versteht sich dabei, dass die Reihenfolge der Schritte Minimieren der Abstände der Datensamples zu den Sampleschwerpunkten und Maximieren der Abstände der Sampleschwerpunkte zueinander beliebig ist. Diese Schritte können gleichzeitig ausgeführt werden oder auch nacheinander oder in umgekehrter Reihenfolge stattfinden. Es könnte also zuerst der Abstand der Datensamples zu den jeweiligen Sampleschwerpunkten minimiert werden und anschließend der Abstand der Sampleschwerpunkte zueinander maximiert werden, oder umgekehrt. Die Minimierung und die Maximierung können auch gleichzeitig erfolgen.

In einem konkreten Anwendungsbeispiel kann die zuvor beschrieben Optimierung erfolgen, in dem beim Trainieren des KNN eine Kostenfunktion verwendet wird, die einen Hilfsterm umfasst, der die zuvor genannten Schritte bewirkt.

Die Schritte Minimieren eines Abstands der ersten Datensamples zu dem bestimmten ersten Sampleschwerpunkt und ein Minimieren eines Abstands der zweiten Datensamples zu dem bestimmten zweiten Sampleschwerpunkt und Maximieren eines Abstands des bestimmten ersten Sampleschwerpunktes zu dem bestimmten zweiten Sampleschwerpunkt können demnach auch aufgefasst ausgedrückt werden als: Optimieren einer Kostenfunktion durch Anpassung von Gewichten des KNN, wobei die Kostenfunktionen eine Minimierung eines Abstandes der ersten Datensamples zu dem bestimmten ersten Sampleschwerpunkt bewirkt und die Kostenfunktion eine Minimierung eines Abstandes der zweiten Datensamples zu einem zweiten Sampleschwerpunkt bewirkt und die Kostenfunktion eine Maximierung eines Abstands des bestimmten ersten Sampleschwerpunktes zu dem bestimmten zweiten Sampleschwerpunkt bewirkt.

Das zu trainierende KNN weist anpassbare Gewichte auf. Die Gewichte oder Gewichtungen von KNN sind dabei grundsätzlich bekannt. Das zuvor beschriebene Minimieren und Maximieren erfolgt beispielsweise mit einem dazu eingerichteten Optimierungsmodul, das beispielsweise Teil des Computersystems ist, das das computerimplementierte Verfahren ausführt oder das Teil einer T rainingseinrichtung ist, die zum Ausführen des vorgeschlagenen Verfahrens eingerichtet ist.

Es wurde vorliegend erkannt, dass durch eine Maximierung der bestimmten Sampleschwerpunkte bzw. Klassenschwerpunkte zueinander im Vergleich zu bekannten Optimierungsverfahren eine erhöhte Klassifikationsgenauigkeit erreicht werden kann. Hervorgerufen wird die erhöhte Klassifikationsgenauigkeit durch die Maximierung der Sampleschwerpunkt zueinander, da die mit dem KNN klassifizierten Datensamples diskret und beanstandet zueinander im Merkmalsraum abgebildet werden, nachdem der Optimierungsprozess bzw. das Training des KNN abgeschlossen ist. Zudem ist das vorgeschlagene Verfahren im Gegensatz zu anderen Ansätzen sehr einfach zu implementieren und auch unabhängig von der Architektur des KNN anwendbar.

Das zuvor beschriebene Optimierungsverfahren eignet sich grundsätzlich um beliebige KNN zu trainieren, die in verschiedenen speziellen Anwendungsgebieten eingesetzt werden, wie z.B. im speziellen Anwendungsgebiet der Bildverarbeitung, der Sprachverarbeitung, der Fehlererkennung für vorbeugende Instandhaltung, medizinischer Analysen, selbstfahrende Autos, Schätzverfahren etc. Da eine Kostenfunktion optimiert wird, ist auch die Architektur des KNN im Grunde beliebig. Das vorgeschlagene Verfahren kann als beispielsweise auf flache oder tiefe KNN gleichermaßen angewendet werden, also z.B. für faltende KNN, residuale KNN oder dergleichen.

Auch das verwendete Trainingsverfahren ist im Grunde beliebig, solange eine Kostenfunktion darin optimiert wird. Beispielsweise kann das Trainingsverfahren ein überwachtes oder ein bestärkendes Lernverfahren sein.

In einer technisch vorteilhaften Ausführungsform umfasst die Kostenfunktion eine Summe und/oder eine Differenz aus einem Kreuzentropie Term (CE) und einem Class Separation Loss (CSL) Term. Bei dem CE Term kann es sich um eine (Kreuzentropie-)Verlustfunktion handeln. Beispielhaft ist ein CE Term in Pavel Golik, Patrick Doetsch und Hermann Ney. „Cross-Entropy vs. Squared Error Training: a Theoretical and Experimental Comparison“, in: Aug. 2013, S. 1756-1760 beschrieben. Insbesondere kann der Wert des CE Terms von der jeweiligen Differenz (oder Fehler) zwischen jeweiligem Vorhersagevektor und Label abhängen.

Durch den zusätzlichen CSL Term in der Kostenfunktion wird beispielsweise der technische Vorteil erreicht, dass eine geeignetere und bessere Merkmals-Repräsentation generiert wird. Folglich können die Bildmerkmale bzw. die Bildsamples im Merkmalsraum für unterschiedliche Klassen besser voneinander unterschieden werden. Damit kann die Klassifizierung der Bildmerkmale einfacher erfolgen. Es wird somit die Klassifikationsgenauigkeit des KNNs erhöht. Zusätzlich wird der technische Vorteil erreicht, dass die Trennung der Datenklassen, auch Task-über- greifend, verbessert ist. Es ist somit eine verbesserte Trennbarkeit der einzelnen Datenklassen gewährleistet und zudem das Einordnen neuer Datenklassen begünstigt.

In einer technisch vorteilhaften Ausführungsform kann der Class Separation Loss (CSL) Term einen ersten Term und einen zweiten Term umfassen, wobei der erste Term und der zweite Term zueinander in Bezug gesetzt werden - beispielsweise durch Quotientenbildung und/oder Differenzbildung und/oder Ähnliches.

Vorzugsweise basiert der erste Term auf einer Summe der Abstände des jeweiligen Datensample Xj zu dem jeweiligen Sampleschwerpunkt c». Ergänzend oder alternativ basiert der zweite Term auf einer Summe von (beispielsweise paarweisen) Abständen der bestimmten Sampleschwerpunkte c Xi und c y j.

Dadurch wird der technische Vorteil erreicht, dass die Klassifikationsleistung des KNNs weiter verbessert wird, also eine bessere Klassifikationsgenauigkeiten (beispielsweise zur Bildklassifikation) des neuronalen Netzes insgesamt erreicht wird.

In einer technisch vorteilhaften Ausführungsform ist der Class Separation Loss (CSL) Term gegeben durch wobei r gegeben ist durch eine Summe aus dem Abstand des ersten Datensamples zu dem bestimmten ersten Sampleschwerpunkt und dem Abstand des zweiten Datensamples zu dem bestimmten zweiten Sampleschwerpunkt. Weiter ist s gegeben durch den Abstand des bestimmten ersten Sampleschwerpunktes zu dem bestimmten zweiten Sampleschwerpunkt.

In einer technisch vorteilhaften Ausführungsform werden die Verfahrensschritte für mehr als zwei Datensamples und/oder mehr als zwei Sampleschwerpunkte durchgeführt. In solch einem Fall ist der r gegeben ist durch eine Summe aus den Abständen der jeweiligen Datensamples zu dem jeweiligen bestimmten Sampleschwerpunkt. Weiter ist s gegeben durch eine Summe aus den (paarweisen) Abständen der bestimmten Sampleschwerpunkte.

Der CSL Term kann somit vorzugsweise gegeben sein durch mit | | — n wobei den Trainingsdatensatz und

C = {c 1 , . . . c m } mit

1 J die (ersten, zweiten, etc.) Sampleschwerpunkte beschreibt.

Vorzugsweise dient der Parameter A der Skalierung. In einer technisch vorteilhaften Ausführungsform kann mittels Skalierung mit A die Anzahl der Trainingssample mit einbezogen werden. Vorzugsweise setzt sich die Kostenfunktion durch eine Kombination von CE zu CSL zusammen und kann innerhalb des Verfahrens optimiert, vorzugsweise minimiert werden. In einer vorteilhaften Ausführungsform ist die Kostenfunktion gegeben durch

Der Parameter a kann zur Gewichtung der beiden Terme dienen. Dadurch wird beispielsweise der technische Vorteil erreicht, dass die CE und CSL unterschiedlich stark gewichtet werden können. Eine größere Wahl von a führt zu einer stärkeren Gewichtung der Kreuzentropie CE. Ein kleineres a erwirkt einen stärkeren Einfluss des CSL. Der Wert a = 1 entspricht der alleinigen Verwendung der Kreuzentropie CE. Der Wert a = 0 entspricht der alleinigen Verwendung der Class Separation Loss (CSL). Eine Veränderung von a bewirkt eine Veränderung der Genauigkeit (beispielsweise die Accuracy; definiert als der prozentuale Anteil der richtigen Vorhersagen) der Vorhersage des KN Ns. Der Parameter a kann experimentell eingestellt werden. Vorzugsweise kann der Parameter a so gewählt werden, dass das Verhältnis von CSL zu CE vor dem Training 1 : 1 entspricht.

In einer technisch vorteilhaften Ausführungsform ist a im Bereich von 0,5 bis 0,9, bevorzugt im Bereich 0,6 bis 0,8, besonders bevorzugt ist a = 0,7. Dadurch wird beispielsweise der technische Vorteil erreicht, dass die Genauigkeit der Vorhersage des KNNs zunehmend verbessert wird gegenüber eines Trainings ohne CSL.

Vorzugsweise sind die ersten und zweiten Daten Bilddaten und jedes Datensample in dem Merkmalsraum entspricht einer Abbildung eines einzelnen Bildes, das in das KNN eingegebenen wurde. Es wird also bevorzugt ein bildverarbeitendes KNN vorgeschlagen, mit dem beispielsweise eine Bildklassifikation durchführbar ist. Vorzugsweise wird das Verfahren mit einem Computer Vision System ausgeführt, insbesondere mit oder auf einer GPU. Es wird also vorgeschlagen, dass das Verfahren für das spezielle Anwendungsgebiet Computer Vision bzw. im Bereich der Bildverarbeitung eingesetzt wird.

Vorzugsweise erfolgt das Optimieren der Kostenfunktion durch Anpassung von Gewichten des KNN in einem überwachten Lernverfahren. Überwachte Lernverfahren sind dabei grundsätzlich bekannt.

Vorzugsweise wird das Optimieren der Kostenfunktion mittels eines Gradientenabstiegsverfahren oder dergleichen optimiert. Das Gradientenabstiegsverfahren ist ein besonders einfaches und robustes Lernverfahren, weshalb sich dieses besonders gut für das vorgeschlagen Verfahren eignet.

Vorzugsweise ist das KNN ein tiefes KNN mit wenigstens zwei versteckten Schichten. In einer besonders bevorzugten Ausführungsform ist das KNN zur Bildklassifikation eingerichtet. In einer besonders bevorzugten Ausführungsform ist das KNN ein faltendes KNN (CNN), ein rekurrentes neuronales Netz (RNN), ein residuales neuronales Netz (ResNet) oder dergleichen.

Vorzugsweise werden die Abstände der Datensamples zu dem Sampleschwerpunkt aufsummiert und die Berechnung der Abstände wird mittels einer Normberechnung ( ||-|| ) bestimmt. Es wird also vorgeschlagen, dass die einzelnen Abstände der einzelnen Datensamples zu dem jeweiligen Sampleschwerpunkt mit einer Normberechnung bestimmt bzw. berechnet werden und sämtliche Abstände einer Klasse aufsummiert werden, um einen Gesamtabstand zu bestimmen. Es wird dann durch die Optimierung (Anpassung der Gewichte) ein minimaler Wert für die aufsummierten Abstände bzw. den Gesamtabstand gesucht.

Vorzugsweise werden die Abstände der Sampleschwerpunkte zueinander aufsummiert und die Berechnung der Abstände der Sampleschwerpunkte wird mit einer Normberechnung ( ||-|| ) bestimmt. Es wird also vorgeschlagen, dass die einzelnen Abstände der einzelnen Sampleschwerpunkte zueinander mit einer Norm- berechnung bestimmt bzw. berechnet werden und die Abstände sämtlicher Sampleschwerpunkte zueinander aufsummiert werden. Es wird dann durch die Optimierung (Anpassung der Gewichte) ein maximaler Wert für die aufsummierten Abstände bzw. den Gesamtabstand gesucht.

Normberechnungen sind grundsätzlich bekannt und hängen davon ab, für welchen (Vektor-) Raum der Abstand mit der Norm bestimmt werden soll. Eine Norm ist dabei eine Abbildung, die einem Objekt eine Zahl zuordnet, die auf gewisse Weise die Größe des Objekts beschreiben soll. Die Normberechnung kann auch als Abstandsberechnung aufgefasst werden. Es versteht sich, dass die anzuwendende Normberechnung davon abhängt, für welchen Raum diese bestimmt wird, also mathematisch gesprochen, für welchen Vektorraumen die Berechnung erfolgt. Für einen endlichdimensionalen Raum, wie ein zweidimensionaler Raum, ist beispielweise die Euklidische Norm | |x| | oder die p-Norm | |x| | bekannt. Für einen un- endlichdimensionalen Raum ist beispielsweise die L p -Norm | |x| | bekannt.

Vorzugsweise weist der gelabelte Trainingsdatensatz eine Vielzahl von Daten auf, die jeweils einer unterschiedlichen Datenklasse zugeordnet sind und die Daten sind aus einer Vielzahl von Datensamples ausgebildet, und für jede Vielzahl von Datensamples wird jeweils ein Klassenschwerpunkt bestimmt, und der Abstand der Datensamples zu den zugehörigen Klassenschwerpunkten wird minimiert und der Abstand der Klassenschwerpunkte wird zueinander maximiert. Es wird also vorgeschlagen, dass Trainingsdaten beliebig viele Klassen aufweisen und das Optimierungsverfahren für jede Klasse erfolgt. Es wird also zu jeder Klasse zuerst ein Sampleschwerpunkt bzw. Klassenschwerpunkt bestimmt. Es werden die Abstände der jeweiligen Datensamples zu dem jeweiligen und zugehörigen Sampleschwerpunkt minimiert. Anschließend werden die Abstände aller Sampleschwerpunkte zueinander maximiert.

Vorzugsweise umfasst das Optimieren der Kostenfunktion den zusätzlichen Schritt Initiieren des ersten Sampleschwerpunktes und/oder des zweiten Sampleschwerpunkts mit einem Initialwert. Es versteht sich, dass wenn mehr als zwei Klassen vorliegen und mehr als zwei Sampleschwerpunkte bestimmt werden, die Initiierung der sämtlichen Sampleschwerpunkte erfolgt. Der Initialwert kann beispielsweise ein Zufallswert sein.

Vorzugsweise umfasst der Schritt Optimieren der Kostenfunktion des KNN den zusätzlichen Schritt Einstellen eines Skalierungsfaktors A, wobei der Skalierungsfaktor A ein skalarer Faktor ist zum Einstellen eines Einflusses eines Terms der zu optimierenden Kostenfunktion. Es wird also vorgeschlagen, dass ein zusätzlicher Parameter zum Einstellen der Kostenfunktion vorgesehen wird, mit dem beispielsweise der Einfluss der zuvor beschriebenen Minimierung und Maximierung einstellbar ist.

Zudem versteht sich, dass die Optimierung so lange erfolgt, bis eine vorbestimmtes Abbruchkriterium erfüllt ist. Das Abbruchkriterium kann beispielsweise ein Erreichen einer gewünschten Klassifikationsgenauigkeit sein oder ein zeitliches Abbruchkriterium oder dergleichen. Das Abbruchkriterium kann auch eine festgelegte Anzahl an Trainingsschritten oder Updates der Gewichte sein.

In einem weiteren erfindungsgemäßen Aspekt wird eine Trainingseinrichtung zum Trainieren eines künstlichen neuronalen Netzes KNN und zur Erhöhung einer Klassifikationsgenauigkeit des KNN vorgeschlagen. Die Trainingseinrichtung kann dabei Teil eines Computersystems sein, auf dem das zuvor beschriebene Trainingsverfahren ausgeführt wird.

Die Trainingseinrichtung weist wenigstens einen Datenspeicher zum Bereitstellen eines gelabelten Trainingsdatensatzes zum Trainieren des KNN auf, wobei der gelabelte Trainingsdatensatz wenigstens erste Daten aufweist, die einer ersten Datenklasse zugeordnet sind, wobei die ersten Daten aus einer Vielzahl von ersten Datensamples ausgebildet sind und der T rainingsdatensatz zweite Daten aufweist, die einer zweiten Datenklasse zugeordnet sind, wobei die zweiten Daten aus einer Vielzahl von zweiten Datensamples ausgebildet sind.

Zudem weist die T rainingseinrichtung ein T rainingsmodul mit dem zu trainierenden KNN auf, wobei das Trainingsmodul zum Vorwärtspropagieren des bereitgestellten Trainingsdatensatzes von einer Eingangsschicht des KNN durch wenigstens eine versteckte Schicht bis zu einer Ausgangsschicht des KNN eingerichtet ist, insbesondere um die ersten Datensamples und die zweiten Datensamples in einen mehrdimensionalen Merkmalsraum abzubilden.

Zudem ist das Trainingsmodul zum Optimieren einer Kostenfunktion des KNN eingerichtet, wobei das Trainingsmodul zum Optimieren einen ersten Sampleschwerpunkt für die Vielzahl der ersten Datensamples bestimmt und einen zweiten Sampleschwerpunkt für die Vielzahl der zweiten Datensamples bestimmt.

Zudem minimiert das Trainingsmodul zum Optimieren der Kostenfunktion einen Abstand der ersten Datensamples zu dem ersten Sampleschwerpunkt und es minimiert einen Abstand der zweiten Datensamples zu dem zweiten Sampleschwerpunkt.

Zudem maximiert das Trainingsmodul einen Abstand des bestimmten ersten Sampleschwerpunktes zu dem bestimmten zweiten Sampleschwerpunkt.

Zum Durchführen der zuvor beschriebenen Minimierung und der Maximierung weist das Trainingsmodul vorzugsweise ein Optimierungsmodul auf, das zum Speichern einer Kostenfunktion und zum Berechnen eines Verlustes der gespeicherten Kostenfunktion eingerichtet ist.

Zum Optimieren bzw. zum Anpassen von Gewichten des KNN weist das Trainingsmodul vorzugsweise ein Anpassungsmodul auf, das dazu eingerichtet ist, die Gewichte des KNN in Abhängigkeit des mit der Kostenfunktion bestimmten Verlustes anzupassen.

Das Trainingsmodul ist somit Teil des Computersystems und es ist dazu eingerichtet, das in dem Computersystem hinterlegte KNN zu trainieren, beispielsweise durch Anpassung der Gewichte des KNN. Das Trainingsmodul ist beispielsweise Teil einer GPU oder einer CPU des Computersystems. Das Trainingsmodul ist also ein Modul, das eine funktional geschlossene Einheit darstellt und einen bestimmten Dienst bereitstellt, nämlich das KNN zu trainieren. Es versteht sich, dass die Gewichte des KNN dazu veränderlich ausgebildet sind und von dem Anpassungsmodul anpassbar sind.

Zudem versteht sich, dass die Optimierung so lange erfolgt, bis ein vorbestimmtes Abbruchkriterium erfüllt ist. Das Abbruchkriterium kann beispielsweise eines der obig beschriebenen Abbruchkriterien sein.

Vorzugsweise ist die Trainingseinrichtung zur Ausführung des Verfahrens nach einer der vorstehenden Ausführungsformen eingerichtet.

Vorzugsweise wird das Trainingsmodul auf einer GPU ausgeführt. Vorzugsweise ist der Datenspeicher Teil der GPU oder Teil einer CPU oder ein externer Speicher, auf den das Trainingsmodul zugreifen kann.

Vorzugsweise umfasst das Trainingsmodul ein Vorverarbeitungsmodul, das dazu eingerichtet ist, den gelabelten Trainingsdatensatz in ein für das KNN geeignetes Format zu transformieren.

Hinsichtlich der beschriebenen Vorteile, bevorzugten Ausführungsformen und Einzelheiten zur Trainingseinrichtung wird auf die entsprechenden oben beschriebenen Vorteile, bevorzugten Ausführungsformen und Einzelheiten zu dem Optimierungsverfahren verwiesen.

Die vorliegende Erfindung wird nun nachfolgend exemplarisch anhand von Ausführungsbeispielen unter Bezugnahme auf die begleitenden Figuren näher erläutert, wobei für gleiche oder ähnliche Baugruppen dieselben Bezugszeichen verwendet werden:

Fig. 1 zeigt schematisch das Grundprinzip eines Anwendungsgebietes eines KNN.

Fig. 2 zeigt schematisch den Ablauf des erfindungsgemäßen Verfahrens zum Trainieren eines KNN in einer Ausführungsform. Fig. 3 zeigt schematisch eine T rainingseinrichtung in einer Ausführungsform.

Fig. 4 zeigt einen mehrdimensionalen Merkmalsraum in dem Datensample abgebildet sind ohne und mit Sampleschwerpunktoptimierung.

Fig. 5A - C zeigen jeweils einen Vergleich der erfindungsgemäßen Sampleschwerpunktoptimierung mit dem bekannten Stand der Technik.

Figur 1 zeigt schematisch das Grundprinzip eines Anwendungsgebietes eines KNN 110, nämlich ein Computer Vision System. Das gezeigte Grundprinzip ist dabei, dass mit einer Bilderfassung 2, beispielsweise mit einem Kamerasystem ein Trainingsdatensatz erstellt wird, der in einem Datenspeicher 101 zum Trainieren eines KNN 110 bereitgestellt wird. Der gezeigte Trainingsdatensatz ist in der Figur 1 aus einer Vielzahl von Daten X, Y und Z ausgebildet, die wiederum aus einer Vielzahl von Datensamples Xj, und Zj ausgebildet sind. Die Datensamples x, y; und Zj sind dabei verschiedenen Datenklassen K x , K y und K z zugeordnet. Die Daten X könnten beispielsweise Hundebilder sein, die Daten Y könnten Katzenbilder sein und die Daten Z könnten Mäusebilder sein, um ein einfaches Beispiel zu nennen. Die Gesamtmenge an Hundebildern X ist dann aus der Vielzahl von einzelnen Hundebildern Xj ausgebildet. Analoges gilt für die Daten Y und Z.

Der gelabelte Trainingsdatensatz wird in das KNN zum Trainieren des KNN eingeben. Das Trainieren des KNN erfolgt dabei, indem die Gewichte des KNN angepasst werden, was grundsätzlich bekannt ist.

Wenn das Training abgeschlossen ist, ist das KNN trainiert und es ist dann zur Klassifikation von nicht gelabelten Bildern eingerichtet. Wird beispielsweise dem KNN 110 nach dem Training ein Katzenbild gezeigt, klassifiziert das KNN das Katzenbild eigenständig als Katze, was durch die Hervorhebung hinter dem KNN 110 in der Figur 1 gezeigt ist.

Figur 2 zeigt schematisch den Ablauf des erfindungsgemäßen Verfahrens zum Trainieren eines KNN in einer Ausführungsform. Das in der Figur 2 schematisch dargestellt computerimplementierte Verfahren zum Trainieren eines künstlichen neuronalen Netzes KNN, umfassend die folgenden Schritte:

In einem ersten Schritt 100 erfolgt ein Bereitstellen eines gelabelten Trainingsdatensatzes X, Y, Z zum Trainieren des KNN, wobei der gelabelte Trainingsdatensatz wenigstens erste Daten X aufweist, die einer ersten Datenklasse K x zugeordnet sind, wobei die ersten Daten X aus einer Vielzahl von ersten Datensamples Xj ausgebildet sind und der Trainingsdatensatz zweite Daten Y aufweist, die einer zweiten Datenklasse K y zugeordnet sind, wobei die zweiten Daten Y aus einer Vielzahl von zweiten Datensamples y; ausgebildet sind. Das Bereitstellen des Datensatzes ist durch den rundlichen Block 101 veranschaulicht.

In einem zweiten Schritt 200 erfolgt ein Vorwärtspropagieren des bereitgestellten Trainingsdatensatzes von einer Eingangsschicht des KNN durch wenigstens eine versteckte Schicht bis zu einer Ausgangsschicht des KNN, insbesondere um die ersten Datensamples x und die zweiten Datensamples yi in einen mehrdimensionalen Merkmalsraum 104 abzubilden. Dieser Schritt ist rechts neben dem Block 200 in der Figur 2 grafisch dargestellt. Der T rainingsdatensatz X, Y, Z der aus den Daten X, Y und Z ausgebildet ist, wird in das KNN 110 eingegeben, das auch als Feature Extractor bezeichnet werden kann. Das KNN bildet die Daten X, Y und Z bzw. dessen einzelne Datensamples Xj, und Zj in den Merkmalsraum 104 ab. Es sind dabei beispielhaft drei Klassen und insgesamt neun Datensamples veranschaulicht. Die drei dreieckigen Datensamples x sind beispielsweise einer ersten Klasse K x zugeordnet. Die drei rechteckigen Datensamples sind beispielsweise einer zweiten Klasse K y zugeordnet. Die drei runden Datensamples zi sind beispielsweise einer dritten Klasse Kz zugeordnet, wie beispielsweise in der Figur 1 veranschaulicht.

Der Schritt 300 ist der Schritt Optimieren einer Kostenfunktion des KNN. Dieser Schritt weist die drei weiteren Schritte 310 bis 330 auf, die nachfolgend beschrieben werden. Im Schritt 310 erfolgt ein Bestimmen eines ersten Sampleschwerpunktes c xi für die Vielzahl der ersten Datensamples Xj und ein Bestimmen eines zweiten Sampleschwerpunkts Cyj für die Vielzahl der zweiten Datensamples yi. Dieser Schritt ist rechts neben dem Block 310 in der Figur 2 grafisch dargestellt. Für die drei Datensamples Xj (Dreiecke) wird ein Klassenschwerpunk c xi bestimmt. Für die drei Datensamples yi (Rechtecke) wird ein Klassenschwerpunk c y j bestimmt. Für die drei Datensamples Zj (Kreise) wird ein Klassenschwerpunk c Z j bestimmt.

In Schritt 320 erfolgt ein Minimieren eines Abstands dxi der ersten Datensamples Xj zu dem bestimmten ersten Sampleschwerpunkt Cxi und ein Minimieren eines Abstands dyj der zweiten Datensamples zu dem bestimmten zweiten Sampleschwerpunkt Cyj. Dieser Schritt ist rechts neben dem Block 320 in der Figur 2 grafisch dargestellt. Für die drei Datensamples Xj (Dreiecke) wird jeweils der Abstand dxi zum Klassenschwerpunk Cxi bestimmt. Für die drei Datensamples yi (Rechtecke) wird jeweils der Abstand d y j zum Sampleschwerpunkt c y j bestimmt. Für die drei Datensamples zi (Kreise) wird jeweils der Abstand dzi zum Klassenschwerpunk c Z j bestimmt. Diese Abstände werden dabei mit einer Normberechnung bestimmt, sämtliche Abstände dann aufsummiert und das Minimum für den aufsummierten Gesamtabstand bestimmt, was durch die gezeigte Formel zum Schritt 320 veranschaulicht wird.

In Schritt 320 erfolgt ein Maximieren eines Abstands d Ci des bestimmten ersten Sampleschwerpunktes Cxi zu dem bestimmten zweiten Sampleschwerpunkt c y j. Dieser Schritt ist rechts neben dem Block 330 in der Figur 2 grafisch dargestellt. Für die drei Sampleschwerpunkte c», c y j und c Z j werden jeweils die Abstände untereinander bestimmt. Diese einzelnen Abstände werden mit einer Normberechnung bestimmt, sämtliche Abstände dann aufsummiert und das Maximum für den aufsummierten Gesamtabstand bestimmt, was durch die gezeigte Formel zum Schritt 330 veranschaulicht wird. Wie zu erkennen ist, sind in der gezeigten Formel Ci und Ck dargestellt, die Sampleschwerpunkte verschiedener Klassen beschreiben.

Cyj, Ci und Ck beschreiben in den gezeigten Formeln die verschiedenen Sampleschwerpunkte bzw. Klassenschwerpunkte. Xj beschreibt in den gezeigten Formeln die verschiedenen Datensamples bzw. Trainingssamples.

Die Reihenfolge der Schritte 320 und 330 ist beliebig. Diese Schritte können gleichzeitig ausgeführt werden oder auch nacheinander oder in umgekehrter Reihenfolge stattfinden. Es könnte also zuerst der Abstand der Datensamples zu den jeweiligen Sampleschwerpunkten minimiert werden und anschließend der Abstand der Sampleschwerpunkte zueinander maximiert werden, oder umgekehrt. Die Minimierung und die Maximierung können auch gleichzeitig erfolgen. In der Figur 2 erfolgt zuerst die zuvor beschriebene Minimierung und anschließend die zuvor beschriebene Maximierung.

Figur 3 zeigt schematisch eine Trainingseinrichtung 10 in einer Ausführungsform. Die Trainingseinrichtung 10 ist beispielsweise Teil eines Computersystems 1.

Die Trainingseinrichtung 10 ist zum Trainieren des künstlichen neuronalen Netzes 110 eingerichtet und trägt zur Erhöhung einer Klassifikationsgenauigkeit des KNN bei. Die Trainingseinrichtung 10 umfasst dabei wenigstens einen Datenspeicher 101. In dem Datenspeicher ist ein gelabelter Trainingsdatensatz bereitgestellt. Der Datenspeicher 101 ist also zum Bereitstellen eines gelabelten Trainingsdatensatzes X, Y zum Trainieren des KNN eingerichtet. Der gelabelte Trainingsdatensatz wenigstens weist erste Daten X auf, die einer ersten Datenklasse K x zugeordnet sind, wobei die ersten Daten X aus einer Vielzahl von ersten Datensamples x ausgebildet sind. Der Datensatz kann auch weitere Daten umfassen, wie beispielsweise die Daten Z, die in der Figur 1 und 2 dargestellt sind. Der Trainingsdatensatz weist zudem zweite Daten Y auf, die einer zweiten Datenklasse K y zugeordnet sind, wobei die zweiten Daten Y aus einer Vielzahl von zweiten Datensamples yi ausgebildet sind. Der Trainingsdatensatz ist beispielweise in der Figur 1 detaillierter gezeigt.

Die Trainingseinrichtung 10 weist ein Trainingsmodul 120 mit dem zu trainierenden KNN 110 auf. Das Trainingsmodul ist zum Vorwärtspropagieren des bereitgestellten Trainingsdatensatzes X, Y von einer Eingangsschicht des KNN 110 durch we- nigstens eine versteckte Schicht bis zu einer Ausgangsschicht des KNN eingerichtet und bildet so die ersten Datensamples Xj und die zweiten Datensamples in einen mehrdimensionalen Merkmalsraum ab.

Das Trainingsmodul 120 ist zudem zum Optimieren einer Kostenfunktion L des KNN eingerichtet. Die Kostenfunktion ist in der Figur 3 mit zwei Termen LX und LY dargestellt.

Das Trainingsmodul 120 ist mit einem Optimierungsmodul 140 dazu eingerichtet, einen ersten Sampleschwerpunkt c xi für die Vielzahl der ersten Datensamples x zu bestimmt und einen zweiten Sampleschwerpunkt c y j für die Vielzahl der zweiten Datensamples zu bestimmen.

Das Trainingsmodul 120 ist zudem mit dem Optimierungsmodul 140 dazu eingerichtet, einen Abstand der ersten Datensamples Xj zu dem ersten Sampleschwerpunkt Cxi zu minimieren und einen Abstand der zweiten Datensamples y; zu dem zweiten Sampleschwerpunkt c y j zu minimieren.

Das Trainingsmodul 120 ist zudem mit dem Optimierungsmodul 140 dazu eingerichtet, einen Abstand des bestimmten ersten Sampleschwerpunktes c xi zu dem bestimmten zweiten Sampleschwerpunkt c y j zu maximieren.

Das Trainingsmodul 120 ist mit einem Anpassungsmodul 150 zum Optimieren der Kostenfunktion L eingerichtet, wobei das Optimieren mittels Anpassung von Gewichten des KNN 110 mit dem Anpassungsmodul 150 erfolgt. Die Gewichte sind veränderbar ausgebildet.

Zudem veranschaulicht die Figur 3, den zusätzlichen bevorzugten Schritt Einstellen eines Skalierungsfaktors A, wobei der Skalierungsfaktor A ein skalarer Faktor ist zum Einstellen eines Einflusses eines Terms der zu optimierenden Kostenfunktion. Wie zu erkennen ist, wird durch den Faktor A der zweite Termin LY gewichtet. Zudem veranschaulicht die Figur 3 ein Vorverarbeitungsmodul 130 das dazu eingerichtet ist, den gelabelten Trainingsdatensatz in ein für das KNN geeignetes Format zu transformieren.

Figur 4 zeigt einen mehrdimensionalen Merkmalsraum in dem Datensamples abgebildet sind ohne und mit Sampleschwerpunktoptimierung. Es ist in der linken Veranschaulichung zu erkennen, dass die Datensamples Xj, und Zj großflächig im Merkmalsraum verteilt sind und sich teilweise überschneiden. Dies macht eine eindeutige Klassifizierung der Datensamples besonders in den überschneidenden Bereich schwierig. In der rechten Veranschaulichung ist zu erkennen, dass mit einer Minimierung der Abstände zu einem Sampleschwerpunkt und einer Maximierung der Sampleschwerpunkte zueinander, die Datensamples x, und wesentlich geordneter im Merkmalsraum verteilt sind und auch weiter voneinander beanstandet sind. Damit wird die die Klassifikationsgenauigkeit erhöht, da sich die Datensamples nur wenig überschneiden.

Die Figuren 5A bis 5C zeigen jeweils einen Vergleich der erfindungsgemäßen Sampleschwerpunktoptimierung mit dem bekannten Stand der Technik.

In der Figur 5A ist das Ergebnis des erfindungsgemäßen Verfahrens rechts gegenüber dem Stand der Technik links dargestellt, nämlich der bekannten Optimierungsmethode mit dem sog. „contrastive-center loss“. Im Vergleich sind die Datensamples des Stands der Technik zwar auch geordnet, aber nicht in einem so hohen Maß, wie in der rechten Figur gezeigt. Wie der Formel in der Figur 5A zu entnehmen ist, wird nicht ein Abstand von Sampleschwerpunkten zueinander maximiert. Weder im Zähler noch im Nenner der Formel ist eine Abstandsbestimmung von Sampleschwerpunkten zueinander offenbart.

In der Figur 5B ist das Ergebnis des erfindungsgemäßen Verfahrens rechts gegenüber dem Stand der Technik links dargestellt, nämlich der bekannten Optimierungsmethode mit dem sog. „softmax loss“. Im Vergleich sind die Datensamples zwar auch geordnet, aber nicht in einem so hohen Maß, wie in der rechten Figur gezeigt. Besonders in der Mitte gibt es im Stand der Technik viele Überschneidungen und damit ist die Wahrscheinlichkeit von falscher Klassifizierung erhöht. In der Figur 5C ist das Ergebnis des erfindungsgemäßen Verfahrens rechts gegenüber dem Stand der Technik links dargestellt, nämlich der bekannten Optimierungsmethode mit dem sog. „center loss“. Im Vergleich sind die Datensamples des Stands der Technik zwar auch geordnet, aber nicht in einem so hohen Maß wie in der rechten Figur gezeigt. Wie der Formel in der Figur 5C zu entnehmen ist, wird nicht ein Abstand von Sampleschwerpunkten zueinander maximiert.

Bezuqszeichenliste

1 Computersystem

2 Bilderfassung

10 Trainingseinrichtung 101 Datenspeicher

102 Trainingsdatensatz

104 mehrdimensionaler Merkmalraum

110 KNN

120 Trainingsmodul 130 Vorverarbeitungsmodul

140 Optimierungsmodul

150 Anpassungsmodul

X, Y, Z Daten oder Trainingsdaten

K x , K y , K z Datenklasse Xj, yi, Zj Datensample oder Trainingssample

Cxi, Cyj, c Z j Sampleschwerpunkt oder Klassenschwerpunkt