DE112020000584T5 - Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen - Google Patents

Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen Download PDF

Info

Publication number
DE112020000584T5
DE112020000584T5 DE112020000584.4T DE112020000584T DE112020000584T5 DE 112020000584 T5 DE112020000584 T5 DE 112020000584T5 DE 112020000584 T DE112020000584 T DE 112020000584T DE 112020000584 T5 DE112020000584 T5 DE 112020000584T5
Authority
DE
Germany
Prior art keywords
class
image
images
neural network
pose
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020000584.4T
Other languages
English (en)
Inventor
Ming-Yu Liu
Xun Huang
Tero Karras
Timo Aila
Jaakko LEHTINEN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE112020000584T5 publication Critical patent/DE112020000584T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)

Abstract

Ein Algorithmus für unüberwachte Bild-zu-Bild-Übersetzung mit wenigen Aufnahmen (few-shot, unsupervised image-to-image translation - „FUNIT“) wird offenbart, der Bilder von zuvor unbekannten Zielklassen als Eingabe annimmt. Diese Zielklassen sind zum Zeitpunkt der Inferenz nur durch einige wenige Bilder vorgegeben, wie etwa ein einzelnes Bild oder ein Paar von Eingabebildern eines Objekts des Zieltyps. Ein FUNIT-Netzwerk kann unter Verwendung eines Datensatzes trainiert werden, der Bilder vieler verschiedener Objektklassen enthält, um Bilder von einer Klasse in eine andere Klasse zu übersetzen, indem wenige Eingabebilder der Zielklasse genutzt werden. Indem das Netzwerk lernt, Erscheinungsbildmuster aus den wenigen Bildern für die Übersetzungsaufgabe zu extrahieren, lernt es einen generalisierbaren Erscheinungsbildmusterextraktor, der für ein Aufgabe der Bild-zu-Bildübersetzung mit wenigen Aufnahmen zum Übersetzungszeitpunkt auf Bilder unbekannter Klassen angewendet werden kann.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht den Nutzen der Priorität von US-Anmeldung Nr. 16/261,395 , eingereicht am 29. Januar 2019, mit dem Titel „METHOD FOR FEW-SHOT UNSUPERVISED IMAGE-TO-IMAGE TRANSLATION“, deren vollständige Offenbarung durch Bezugnahme zu allen Zwecken in den vorliegenden Gegenstand einbezogen wird.
  • ALLGEMEINER STAND DER TECHNIK
  • Fortschritte bei der Verarbeitungsleistung und Bildmanipulationssoftware haben eine zunehmende Vielfalt von Bilderzeugungs- und -manipulationsfähigkeiten ermöglicht. Beispielsweise kann ein Bild eines ersten Objekttyps verwendet werden, um ein Bild zu erzeugen, das den ersten Objekttyp mit einem Aspekt eines zweiten Objekttyps zeigt. Um eine derartige Erzeugung zu bewerkstelligen, muss ein Benutzer jedoch entweder manuell ein Bild erzeugen oder manipulieren oder muss eine große Anzahl von Eingabebildern des ersten Objekttyps bereitstellen, die eine angemessene Erzeugung des Zielbildes ermöglichen. Dies kann im Fall einer manuellen Erzeugung komplex und zeitaufwendig sein und kann in Situationen, in denen ein Benutzer möglicherweise nur ein oder zwei Bilder des ersten Objekttyps hat, nicht praktikabel sein.
  • Figurenliste
  • Verschiedene Ausführungsformen gemäß der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben, in denen Folgendes gilt:
    • 1 veranschaulicht eine beispielhafte Bildübersetzung, die gemäß verschiedenen Ausführungsformen durchgeführt werden kann.
    • 2 veranschaulicht Komponenten eines beispielhaften Bildübersetzungsnetzwerks, das gemäß verschiedenen Ausführungsformen verwendet werden kann.
    • 3 veranschaulicht ein beispielhaftes System, das verwendet werden kann, um eine Bildübersetzung gemäß verschiedenen Ausführungsformen durchzuführen.
    • 4 veranschaulicht einen beispielhaften Prozess zum Durchführen einer Bildübersetzung gemäß verschiedenen Ausführungsformen.
    • 5 veranschaulicht ein beispielhaftes System zum Trainieren eines Bildsynthesenetzwerks, das gemäß verschiedenen Ausführungsformen verwendet werden kann.
    • 6 veranschaulicht Schichten eines beispielhaften statistischen Modells, das gemäß verschiedenen Ausführungsformen verwendet werden kann.
    • 7 veranschaulicht beispielhafte Komponenten einer Rechenvorrichtung, die verwendet werden kann, um Aspekte der verschiedenen Ausführungsformen umzusetzen.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung werden verschiedene Ausführungsformen beschrieben. Zu Zwecken der Erläuterung werden spezifische Konfigurationen und Details dargelegt, um ein umfassendes Verständnis der Ausführungsformen bereitzustellen. Es wird jedoch auch für den Fachmann offensichtlich sein, dass die Ausführungsformen ohne die spezifischen Details umgesetzt werden können. Ferner können hinlänglich bekannte Merkmale weggelassen oder vereinfacht dargestellt sein, um die beschriebene Ausführungsform nicht unkenntlich zu machen.
  • Ansätze gemäß verschiedenen Ausführungsformen stellen die Erzeugung von Bildern bereit, die Darstellungen von Objekten mit einem oder mehreren spezifischen Aspekten beinhalten. Insbesondere stellen verschiedene Ausführungsformen einen Algorithmus für unüberwachte Bild-zu-Bild-Übersetzung mit wenigen Aufnahmen (few-shot, unsupervised image-to-image translation - „FUNIT“) bereit, der auf zuvor unbekannten Zielklassen arbeitet, die zum Zeitpunkt der Inferenz nur durch wenige Beispielbilder vorgegeben werden, wie etwa ein einzelnes Bild oder ein Paar von Eingabebildern eines Objekts des Zieltyps. Ein FUNIT-Netzwerk kann unter Verwendung eines Datensatzes trainiert werden, der Bilder vieler verschiedener Objektklassen enthält, um Bilder von einer Klasse in eine andere Klasse zu übersetzen, indem wenige Eingabebilder der Zielklasse genutzt werden. Indem das Netzwerk Erscheinungsbildmuster aus den wenigen Eingabebildern für die Übersetzungsaufgabe lernt, lernt es einen generalisierbare Erscheinungsbildmusterextraktor, der zum Übersetzungszeitpunkt auf Bilder unbekannter Klassen für eine Bild-zu-BildÜbersetzungsaufgabe mit wenigen Aufnahmen angewendet werden kann.
  • Verschiedene andere Funktionen können in den verschiedenen Ausführungsformen umgesetzt sowie an anderer Stelle in dieser Schrift erörtert und vorgeschlagen sein.
  • 1 veranschaulicht eine beispielhafte Bildübersetzung 100, die gemäß verschiedenen Ausführungsformen durchgeführt werden kann. Die Übersetzung kann ein Eingabebild 106 (oder eine digitale Darstellung eines Bildes), das eine Darstellung eines Objekttyps beinhaltet, in diesem Fall einer Hunderasse, die einem Mops entspricht, annehmen. Es könnte erwünscht sein, ein Bild des Mopses in einer anderen Pose zu erzeugen, wie etwa um die Darstellung des Mopses von der Pose des Zielbildes 106 in eine Zielpose zu übersetzen, wie etwa die Pose in einem ausgewählten oder bereitgestellten Bild 104. Wie veranschaulicht, beinhaltet das Bild mit der Zielpose eine Darstellung eines anderen Objekttyps, in diesem Beispiel eines Löwen. Die Bildübersetzung kann das, was sie aus Bildern von Löwen (und anderen derartigen Objektklassen) gelernt hat, nehmen und dieses Lernen verwenden, um ein Bild 108 eines Mopses zu erzeugen, der die Zielpose zeigt. Von Interesse in diesem Beispiel ist die Tatsache, dass das Bildübersetzungsnetzwerk unter Verwendung von Bildern 102 vieler Klassen von Objekttypen trainiert wurde, die viele Bilder des Objekttyps Löwe beinhalten. Das Bildübersetzungsnetzwerk wurde zuvor nicht mit Bildern, die eine Darstellung eines Mopses beinhalten, trainiert und hat keine solchen Bilder verarbeitet.
  • Ansätze gemäß verschiedenen Ausführungsformen können eine derartige Bilderzeugung oder -übersetzung, wie in dieser Schrift bezeichnet, unter Verwendung eines oder mehrerer Bild-zu-Bild Übersetzungsverfahren durchführen. In verschiedenen Ausführungsformen können unüberwachte Bild-zu-Bild-Übersetzungstechniken verwendet werden, die lernen, Bilder in einer bestimmten Klasse auf ein analoges Bild in einer anderen Klasse abzubilden, wobei sie unstrukturierte (d. h. nicht registrierte) Datensätze von Bildern heranziehen. Während einige herkömmliche Ansätze Bilder mit Übersetzungen in Objektpose bereitstellen können, erfordern diese Ansätze entweder während des Trainierens oder zum Zeitpunkt der Übersetzung Zugriff auf viele Bilder sowohl in der Quellklasse (die z. B. die Zielpose zeigen) als auch in der Bestimmungsklasse (die das zuvor unbekannte Objekts beinhalten, um die gewünschte Pose zu erhalten). Die Notwendigkeit einer großen Anzahl von Eingabebildern der gewünschten Objektklasse schränkt die Nützlichkeit dieser herkömmlichen Ansätze stark ein. Indem sie sich von der menschlichen Fähigkeit, das Wesen eines neuen Objekts aus einer kleinen Anzahl von Beispielen zu erfassen inspirieren lassen und von dort aus eine Generalisierung vornehmen verwenden Ansätze gemäß verschiedenen Ausführungsformen einen Algorithmus für unüberwachte Bild-zu-Bild-Übersetzung mit wenigen Aufnahmen, der auf zuvor unbekannten Zielklassen arbeitet, die zum Übersetzungszeitpunkt nur durch wenige Beispielbilder, wie etwa ein einzelnes Bild oder ein Paar von Eingabebildern eines Objekts des Zieltyps, vorgegeben werden. In einigen Ausführungsformen verwendet der Algorithmus drei oder weniger, während ein derartiger Algorithmus in anderen Ausführungsformen mit weniger als fünf Eingabebildern der Zielklasse arbeiten kann. In einigen Ausführungsformen kann ein einzelnes Bild verwendet werden, aber die Genauigkeit oder der Fotorealismus können unter Verwendung eines zweiten oder dritten Bildes der Zielobjektklasse in verschiedenen Posen erhöht werden. Ein beispielhaftes Modell erreicht diese Vorstellungsfähigkeit mit wenigen Aufnahmen, indem ein kontradiktorisches Trainingsschema mit einem neuartigen Netzwerkdesign gekoppelt wird.
  • Wie bereits erwähnt, das menschliche Gehirn bemerkenswert gut bei der Generalisierung. Wenn das menschliche Gehirn beispielsweise ein Bild von einer zuvor unbekannten Tierart erhält, kann es sich ein lebhaftes mentales Bild des zuvor unbekannten Tieres in verschiedenen Posen machen, insbesondere wenn dieser Mensch zuvor Bildern oder Ansichten von ähnlichen, aber unterschiedlichen Tieren in diesen Posen ausgesetzt war. Zum Beispiel wird eine Person, die einen stehenden Mops zum ersten Mal sieht (wie in dem beispielhaften Eingabebild 106 aus 1 veranschaulicht), kaum oder gar keine Schwierigkeiten haben, sich vorzustellen, wie der Mops auf seinen Hinterbeinen sitzend (wie in dem beispielhaften Ausgabebild 108) oder liegend aussehen würde, da sie über lebenslange Erfahrung mit anderen Tieren in ähnlichen Posen und damit wie diese Tiere in diesen Posen aussehen verfügt.
  • Während einige herkömmliche unüberwachte Bild-zu-Bild-Übersetzungsalgorithmen angemessene Ergebnisse bei der Übertragung komplexer Erscheinungsbildänderungen über Bildklassen bereitstellen, ist die Fähigkeit, aus einigen wenigen Beispielen einer neuen Klasse auf Grundlage auf Vorwissen zu generalisieren, unter Verwendung dieser Algorithmen nicht möglich. Konkret erfordern diese Algorithmen große Trainingssätze für alle Klassen von Bildern, an denen eine Übersetzung durchgeführt werden soll, und diese Algorithmen unterstützen die Generalisierung mit wenigen Aufnahmen nicht.
  • Ansätze gemäß verschiedenen Ausführungsformen versuchen die Lücke zwischen menschlicher und maschineller Vorstellungsfähigkeit unter Verwendung dessen, was in dieser Schrift als Rahmen für unüberwachte Bild-zu-Bildübersetzung mit wenigen Aufnahmen (Few-shot UN-supervised Image-to-image Translation - „FUNIT“) bezeichnet wird, zu überbrücken. Ein FUNIT-Rahmen kann ein Bild-zu-Bild-Übersetzungsmodell zum Abbilden eines Bildes einer Quellklasse auf ein analoges Bild eine Zielklasse durch Einsetzen einiger weniger Bilder (d. h. zwei oder weniger) der Zielklasse, die zum Zeitpunkt der Übersetzung gegeben sind, lernen. Das Übersetzungsmodell wurde möglicherweise während des Trainings oder ansonsten nie mit Bildern der Zielklasse konfrontiert oder hat solche Bilder nie verarbeitet, wird jedoch aufgefordert, einige davon zum Testzeitpunkt zu erzeugen. Der Ansatz kann auf der Vorstellung basieren, dass sich die Fähigkeit des Menschen zur Erzeugung mit wenigen Aufnahmen aus seinen früheren visuellen Erfahrungen entwickelt. Beispielsweise kann sich eine Person Ansichten eines neuen Objekts besser vorstellen, wenn die Person in der Vergangenheit viele verschiedene Objektklassen gesehen hat. Unter Verwendung eines derartigen Ansatzes kann ein FUNIT-Modell unter Verwendung eines Datensatzes trainiert werden, der Bilder vieler verschiedener Objektklassen enthält, um diese früheren visuellen Erfahrungen zu simulieren. Insbesondere kann das Modell trainiert werden, um Bilder von einer Klasse in eine andere Klasse zu übersetzen, indem wenige Bilder der Zielklasse eingesetzt werden. Indem das Modell lernt, Erscheinungsbildmuster aus den wenigen Bildern für die Übersetzungsaufgabe zu extrahieren, lernt es einen generalisierbaren Erscheinungsbildmusterextraktor, der für ein Aufgabe der Bild-zu-Bildübersetzung mit wenigen Aufnahmen zum Übersetzungszeitpunkt auf Bilder unbekannter Klassen angewendet werden kann. In zumindest einigen Ausführungsformen verbessert sich die Leistung eines derartigen Ansatzes zur Übersetzung mit wenigen Aufnahmen, wenn die Anzahl von Klassen in dem Trainingssatz zunimmt. Zu Zwecken der Erörterung in dieser Schrift bezieht sich die Quellklasse auf eine Objektklasse, die in den Trainingsdaten enthalten ist, die die gewünschte Pose oder einen anderen derartigen Aspekt eines Objekts der Quellklasse beinhaltet. Eine Zielklasse bezieht sich auf eine Objektklasse, die nicht in den Trainingsdaten enthalten ist und nur zum Zeitpunkt des Testens, der Umwandlung oder der Inferenz auftritt.
  • Ein Bildübersetzungsrahmen gemäß verschiedenen Ausführungsformen kann auf einem generativen kontradiktorischen Netzwerk (Generative Adversarial Network - GAN) basieren. Die Verwendung eines kontradiktorischen Trainingsschemas, das mit einer bestimmten Art von Netzwerkdesign gekoppelt ist, kann die gewünschte Fähigkeit zur unüberwachten Bild-zu-Bild-Übersetzung mit wenigen Aufnahmen erreichen. Eine unüberwachte und/oder ungepaarte Bild-zu-Bild-Übersetzung kann versuchen, eine Funktion zur konditionalen Bilderzeugung zu lernen, die ein Eingabebild einer Quellklasse auf ein analoges Bild einer Zielklasse ohne Paarüberwachung abbilden kann. Ein derartiger Ansatz ist möglicherweise nicht ausreichend, da er versucht, die gemeinsame Verteilung unter Verwendung von Beispielen aus Randverteilungen wiederherzustellen. Um das Problem zu bewältigen, verwenden herkömmliche Ansätze zusätzliche Einschränkungen, wie etwa um die Übersetzung zu erzwingen, um bestimmte Eigenschaften der Quelldaten, wie etwa Pixelwerte, Pixelgradienten, semantische Merkmale, Klassenlabels oder paarweise Beispielabstände, zu bewahren. Andere Ansätze werden ebenfalls verwendet.
  • Ansätze gemäß verschiedenen Ausführungsformen verwenden eine teilweise geteilte latente Raumannahme, die für eine Aufgabe zur unüberwachten Bild-zu-Bild-Übersetzung mit wenigen Aufnahmen ausgelegt ist. Während herkömmliche unüberwachte Bild-zu-Bildübersetzungsmodelle zur Erzeugung realistischer Übersetzungsausgaben fähig sind, sind sie in mindestens zwei Aspekten eingeschränkt. Erstens sind diese Modelle beispielineffizient und erzeugen schlechte Übersetzungsausgaben, wenn zum Trainingszeitpunkt nur wenige Bilder gegeben sind. Zweitens sind die erlernten Modelle auf das Übersetzen von Bildern zwischen zwei Klassen beschränkt. Ein trainiertes Modell für eine Übersetzungsaufgabe kann trotz Ähnlichkeit zwischen der neuen Aufgabe und der ursprünglichen Aufgabe nicht direkt für eine neue Aufgabe wiederverwendet werden. Zum Beispiel kann ein Husky-zu-Katze-Übersetzungsmodell nicht für eine Husky-zu-Tiger-Übersetzung umfunktioniert werden, obwohl eine Katze und ein Tiger eine große Ähnlichkeit aufweisen können. Während einige herkömmliche Ansätze einen unüberwachten Bild-zu-Bild-Übersetzungsrahmen verwenden, um den ersten Aspekt teilweise anzugehen, nehmen Ansätze gemäß verschiedenen Ausführungsformen viele Quellklassenbilder, aber wenige Zielklassenbilder an. Darüber hinaus kann angenommen werden, dass die wenigen Zielklassenbilder nur zum Test- oder Übersetzungszeitpunkt verfügbar sind und aus vielen verschiedenen Objektklassen stammen können.
  • Unüberwachte Bild-zu-Bild-Übersetzung über mehrere Klassen erweitert die unüberwachten Bild-zu-Bild-Übersetzungsverfahren auf mehrere Klassen. Ansätze gemäß verschiedenen Ausführungsformen verwenden einen Trainingsdatensatz, der aus Bildern mehrerer Klassen besteht, aber anstatt Bilder zwischen den beobachteten Klassen zu übersetzen, wird der Fokus darauf gelegt, Bilder dieser beobachteten Klassen in analoge Bilder von zuvor unbekannten Klassen zu übersetzen.
  • Ein FUNIT-Rahmen gemäß verschiedenen Ausführungsform kann ein Bild einer Quellklasse auf ein analoges Bild einer unbekannten Zielklasse durch Einsetzen weniger Zielklassenbilder, die zu dem Zeitpunkt der Übersetzung verfügbar gemacht werden, abbilden. Die Trainingsdaten können aus ungepaarten Bildern aus einem Satz von Objektklassen (z. B. Bildern verschiedener Hunde- und Katzenrassen), die in dieser Schrift als Quellklassen bezeichnet werden, bestehen. Diese Bilder können verwendet werden, um ein unüberwachtes Bild-zu-Bild-Übersetzungsmodell zu trainieren, das Bilder zwischen zwei beliebigen Quellklassen übersetzt. Während des Testens können wenige Bilder aus einer neuen Objektklasse (z. B. einer Berglöwenklasse), die als Zielklasse bezeichnet wird, als Eingabe für das Modell bereitgestellt werden. Das Modell kann die wenigen Zielbilder einsetzen, um ein beliebiges Quellklassenbild in ein analoges Bild der Zielklasse zu übersetzen.
  • Ein FUNIT-Rahmen gemäß verschiedenen Ausführungsform kann einen konditionalen Bildgenerator G und einen kontradiktorischen Diskriminator D für mehrere Aufgaben beinhalten. Im Gegensatz zu konditionalen Bildgeneratoren in herkömmlich unüberwachten Bild-zu-Bild-Übersetzungsrahmen, die ein Bild als Eingabe nehmen, kann ein Generator gemäß verschiedenen Ausführungsformen ein Inhaltsbild x, das zu einer ersten Klasse gehört, und einen Satz von Bildern (y1, ..., yK), die zu einer zweiten Klasse gehören, gleichzeitig als Eingabe annehmen. Ein Ausgabebild kann über die folgende Gleichung erzeugt werden: x ¯ = G ( x , { y 1 , y K } )
    Figure DE112020000584T5_0001
  • Es kann angenommen werden, dass das Inhaltsbild zu der Bestimmungsobjektklasse gehört, während jedes der K-Klassenbilder zu der Quellobjektklasse gehört. Der Generator kann ein Eingabeinhaltsbild auf ein Ausgabebild abbilden, sodass das Ausgabebild das Erscheinungsbild eines Bildes aufweist, das zu der Bestimmungsobjektklasse gehört, jedoch mit einer Pose der Quellobjektklasse, wobei die Quell- und Bestimmungsobjekte zumindest eine gewisse strukturelle Ähnlichkeit aufweisen. Während des Trainings kann der Generator lernen, Bilder zwischen zwei zufällig ausgewählten Quellklassen zu übersetzen. Zum Übersetzungszeitpunkt kann der Generator ein oder wenige Bilder aus einer unbekannten Zielklasse als Bestimmungsklassenbilder als Eingabe annehmen und ein aus einer beliebigen der Quellklassen ausgewähltes Bild auf ein analoges Bild der Ziel- oder Bestimmungsklasse abbilden.
  • 2 veranschaulicht Komponenten eines beispielhaften FUNIT-Rahmens 200, der gemäß verschiedenen Ausführungsformen verwendet werden kann. Wie bereits erwähnt, kann ein Trainingssatz aus Bildern verschiedener Objektklassen oder Quellklassen bestehen. Ein Modell, wie etwa ein GAN, kann trainiert werden, um Bilder zwischen beliebigen oder allen dieser Quellobjektklassen zu übersetzen. Im Einsatz kann das trainierte Modell nur sehr wenige Bilder der Zielklasse als Eingabe empfangen, was ausreichend ist, um Bilder der Quellklassen in ein oder mehrere analoge Bilder der Zielklasse zu übersetzen. Ein beispielhafter FUNIT-Generator kann ein Inhaltsbild und ein oder mehrere Zielklassenbilder als Eingabe annehmen. Der Generator kann eine Übersetzung des Eingabeinhaltsbildes erzeugen, das dem bzw. den Bildern der Zielklasse ähnelt oder ein Erscheinungsbild dieser aufweist. Wie in 2 veranschaulicht, kann der FUNIT-Generator ein Bild einer ersten Objektklasse und einen Satz von Bildern einer zweiten Objektklasse als Eingabe annehmen und kann eine Übersetzungsausgabe erzeugen. Die Übersetzungsausgabe sollte Bildern der zweiten Objektklasse ähneln und dasselbe klasseninvariante Erscheinungsbild wie das Eingabebild aufweisen.
  • Ein beispielhafter Generator G besteht aus vier Hauptkomponenten: einem Inhaltscodierer, einem Klassencodierer, einem adaptiven Instanznorm-(adaptive instancenorm - AdaIN-)Decodierer und einem Bilddecodierer. Instanznorm- und gleichgerichtete lineare Einheiten (rectified linear units - ReLUs) können auf jede Faltungsschicht und vollständig verbundene Schicht des Netzwerks angewendet werden. Der Inhaltscodierer kann mehrere Faltungsschichten enthalten, auf die mehrere Restblöcke folgen. Der Inhaltscodierer kann ein Eingangsinhaltsbild x auf eine räumlich verteilte Merkmalskarte zx abbilden, die in dieser Schrift als der latente Inhaltscode bezeichnet wird. Der Klassencodierer kann mehrere Faltungsschichten umfassen, auf die eine durchschnittliche Pooling-Schicht folgt. Der Klassencodierer kann die Klassenbilder als Eingabe annehmen und gibt einen latenten Klassencode aus. Die durchschnittliche Pooling-Schicht kann Aktivierungen zuerst über räumliche Dimensionen (z. B. Höhe und Breite) und dann über den Satz von Bildern mitteln. Der Bilddecodierer kann mehrere AdaIN-Restblöcke umfassen, auf die ein Paar von höheren Faltungsschichten folgt. Der AdaIN-Restblock kann ein Restblock sein, der die AdaIN-Schicht als Normalisierungsschicht verwendet. Für jedes Beispiel kann die AdaIN-Schicht (auch als Normalisierungsschicht bezeichnet) zuerst die Aktivierungen in jedem Kanal auf eine Verteilung mit einem Mittelwert von null und einer Varianz von eins normalisieren. Die Normalisierungsschicht kann dann die Verteilung durch einen Denormalisierungsprozess so umwandeln, dass sie bestimmte Mittel- und Varianzwerte aufweist. Ein Hauptziel des Bilddecodierers besteht darin, den latenten Inhaltscode und den latenten Klassencode zu decodieren, um eine Übersetzung des Eingabeinhaltsbildes zu erzeugen. In einigen Ausführungsformen ist der AdaIN-Decodierer ein mehrschichtiges Perzeptron. Es decodiert den latenten Klassencode in einen Satz von Mittelwert- und Varianzvektoren, die als die neuen Mittelwerte und Varianzen für die jeweiligen Kanäle in dem jeweiligen AdaIN-Restblock in dem Bilddecodierer verwendet werden. Unter Verwendung eines derartigen Generatordesigns kann eine klasseninvariante latente Darstellung (z. B. eine Objektpose) unter Verwendung des Inhaltscodierers extrahiert werden und kann eine klassenspezifische latente Darstellung (z. B. ein Objekterscheinungsbild) unter Verwendung des Klassencodierers extrahiert werden. Indem der latente Klassencode über die AdaIN-Schichten dem Bilddecodierer zugeführt wird, wird es den Klassenbildern ermöglicht, die räumlich invarianten Mittelwerte und Varianzen zu steuern, während das Inhaltsbild die verbleibenden Informationen bestimmt. Zum Trainingszeitpunkt kann der Klassencodierer lernen, eine klassenspezifische latente Darstellung aus den Bildern der Quellklassen zu extrahieren. Zum Test- oder Übersetzungszeitpunkt werden diese zu Bildern einer zuvor unbekannten Klasse generalisiert.
  • Ein beispielhafter kontradiktorischen Diskriminator D für mehrere Aufgaben wird trainiert, indem mehrere kontradiktorische Klassifizierungsaufgabe gleichzeitig gelöst werden. Der Diskriminator ist in einigen Ausführungsformen ein Patch-GAN-Diskriminator, der eine räumliche Ausgabekarte für ein Eingabebild rendern kann, wobei jeder Eintrag in der Karte die Bewertung für das entsprechende Patch in dem Eingabebild anzeigt. Jede der zu lösenden Aufgaben kann in einigen Ausführungsformen eine binäre Klassifizierungsaufgabe sein, die bestimmt, ob ein Eingabebild in D ein reales Bild einer Quellklasse oder eine von dem Generator stammende Übersetzungsausgabe ist. Da es eine Anzahl von Quellklassen gibt, kann der Diskriminator dazu ausgelegt sein, eine entsprechende Anzahl von Ausgaben zu erzeugen. Beim Aktualisieren von D für ein reales Image der Quellklasse kann D bestraft werden, wenn eine bestimmte Ausgabe negativ ist. Für eine Übersetzungsausgabe, die ein falsches Bild der Quellklasse ergibt, kann D bestraft werden, wenn eine entsprechende Ausgabe positiv ist. D kann nicht dafür bestraft werden, dass keine negativen Ausgaben für Bilder anderer Klassen vorhergesagt wurden. Wenn der Generator G aktualisiert wird, kann G nur bestraft werden, wenn die vorgegebene Ausgabe von D negativ ist. Der Diskriminator D kann in einigen Ausführungsformen auf Grundlage eines klassenkonditionalen Diskriminators ausgelegt sein, der aus mehreren Restblöcken besteht, auf die eine globale durchschnittliche Pooling-Schicht folgt. Das von der globalen durchschnittlichen Pooling-Schicht erzeugte Merkmal wird als Diskriminatormerkmal bezeichnet, aus dem Klassifizierungsbewertungen unter Verwendung von linearen Abbildungen erzeugt werden können.
  • Ein beispielhafter FUNIT-Rahmen kann trainiert werden, indem ein Minimax-Optimierungsproblem gelöst wird, das gegeben ist durch: D min G max L G A N ( D , G ) + λ R L R ( G ) + λ F M L F M + λ G P L G P ( D )
    Figure DE112020000584T5_0002
    wobei LGAN, LR, LFM und LGP der GAN-Verlust, der Inhaltsrekonstruktionsverlust, der Merkmalsanpassungsverlust bzw. der Gradientenstrafverlust sind. Die Skalare λR, λFM und λGP steuern die relative Bedeutung der Terme und ihre Werte sind auf 0,1, 1 bzw. 10 gesetzt. Der GAN-Verlust kann ein konditionaler Verlust sein. Der Diskriminator kann trainiert werden, um einen Wert wie etwa „wahr“ für ein reales Bild und „falsch“ für eine Übersetzungsausgabe vorherzusagen, während der Generator trainiert werden kann, um den Diskriminator für eine geeignete Übersetzungsausgabe wahr vorhersagen zu lassen.
  • In einigen Ausführungsformen kann das FUNIT-Modelltraining unter Verwendung des Bildrekonstruktionsverlusts regularisiert werden. Insbesondere wenn dasselbe Bild wie das Eingabeinhaltsbild und das Eingabeklassenbild verwendet wird, sollte das Modell ein Ausgabebild erzeugen, das mit der Eingabe identisch ist. Der Merkmalsanpassungsverlust LFM kann verwendet werden, um die Übersetzungsleistung mit wenigen Aufnahmen weiter zu verbessern. Insbesondere kann ein als Df bezeichneter Merkmalsextraktor konstruiert werden, indem die letzte (d. h. die Vorhersage-)Schicht aus D entfernt wird. Df kann verwendet werden, um Merkmale aus der Übersetzungsausgabe und den Klassenbildern zu extrahieren und den gegebenen Verlust L1 zu minimieren. Für ein stabileres GAN-Training kann in einigen Ausführungsformen ein nullzentrierter Gradientenstrafverlust auf reale Bilder angewendet werden. Dies kann das Bestrafen des Diskriminators dafür beinhalten, dass er ein Gradientenfeld ungleich null aufweist.
  • 3 veranschaulicht eine beispielhafte Umgebung 300, die verwendet werden kann, um Aspekte der verschiedenen Ausführungsformen umzusetzen. In einigen Ausführungsformen kann ein Benutzer eine Client-Vorrichtung 602 verwenden, um ein Eingabebild bereitzustellen, bei dem es sich um ein Bild handeln kann, das eine Darstellung eines Objekts beinhaltet, mit der ein Bildgeneratornetzwerk 328 wie in dieser Schrift erörtert zuvor noch nicht konfrontiert wurde. Der Benutzer kann die Client-Vorrichtung auch verwenden, um ein Bild auszuwählen, das eine Zielpose angibt, für die eine Übersetzung für das Objekt in dem Eingabebild durchgeführt werden soll. Die Client-Vorrichtung kann eine beliebige geeignete Rechenvorrichtung sein, die es einem Benutzer ermöglichen kann, Bilder zur Verarbeitung auszuwählen und/oder bereitzustellen, wie etwa u. a. ein Desktop-Computer, ein Notebook-Computer, ein Smartphone, ein Tablet-Computer, eine Computer-Workstation, eine Spielkonsole und dergleichen. Ein Benutzer kann die Umwandlungseingabe über eine Benutzeroberfläche (user interface - UI) einer Bildbearbeitungsanwendung 306 (oder eines anderen Bildmanipulations- oder -generierungssoftwarepakets), die auf der Client-Vorrichtung ausgeführt wird, auswählen, bereitstellen oder anderweitig vorgeben, wenngleich zumindest eine gewisse Funktionalität in einigen Ausführungsformen auch auf einer entfernten Vorrichtung, einer vernetzten Vorrichtung oder in „der Cloud“ ausgeführt werden kann. Der Benutzer kann neben anderen derartigen Optionen Eingaben für die UI wie etwa über eine berührungsempfindliche Anzeige 304 oder durch Bewegen eines auf einem Anzeigebildschirm angezeigten Mauscursors bereitstellen. Wie bereits erwähnt, kann der Benutzer in der Lage sein, ein Eingabebild einer Zielklasse bereitzustellen und kann ein Bild auswählen, das eine gewünschte Pose oder einen anderen derartigen Aspekt anzeigt, die bzw. der von einem Objekt in einem Bild einer Quellklasse gezeigt werden kann. Die Client-Vorrichtung kann mindestens einen Prozessor 308 (z. B. eine CPU oder GPU), um die Anwendung auszuführen und/oder Aufgaben im Auftrag der Anwendung auszuführen, und einen Speicher 310 zum Einschließen der nicht transitorischen computerlesbaren Anweisungen zur Ausführung durch der Prozessor beinhalten. Bilder, die der Anwendung bereitgestellt oder über diese erzeugt werden, können neben anderen derartigen Optionen lokal auf einem lokalen Speicher 312, wie etwa einer Festplatte oder einem Flash-Speicher, gespeichert sein.
  • In einigen Ausführungsformen können Eingabebilder, die auf der Client-Vorrichtung 302 empfangen oder ausgewählt werden, auf der Client-Vorrichtung verarbeitet werden, um ein Bild mit der gewünschten Übersetzung zu erzeugen, wie etwa um das Erscheinungsbild eines Zielbildes auf eine aus einem Satz von Quellbildern extrahierte Pose anzuwenden. In anderen Ausführungsformen kann die Client-Vorrichtung 302 kann die Eingabebilder, aus den Bildern extrahierte Daten oder Daten, die die Bilder angeben, über mindestens ein Netzwerk 314 senden, um von einem entfernten Rechensystem empfangen zu werden, wie es Teil einer Ressourcenanbieterumgebung 316 sein kann. Das mindestens eine Netzwerk 314 kann ein beliebiges geeignetes Netzwerk beinhalten, darunter ein Intranet, das Internet, ein Mobilfunknetz, ein lokales Netzwerk (LAN) oder ein beliebiges anderes derartiges Netzwerk oder eine Kombination, und Kommunikationen über das Netzwerk können über drahtgebundene und/oder drahtlose Verbindungen ermöglicht werden. Die Anbieterumgebung 316 kann beliebige geeignete Komponenten zum Empfangen von Anforderungen und zum Zurückgeben von Informationen oder zum Durchführen von Handlungen als Reaktion auf diese Anforderungen beinhalten. Als Beispiel könnte die Anbieterumgebung Webserver und/oder Anwendungsserver zum Empfangen und Verarbeiten von Anforderung und dann Zurückgeben von Daten oder anderen Inhalten oder Informationen als Reaktion auf die Anforderung beinhalten.
  • An die Anbieterumgebung 316 empfangene Kommunikationen können an eine Schnittstellenschicht 318 empfangen werden. Die Schnittstellenschicht 318 kann Anwendungsprogrammierschnittstellen (application programming interfaces - APIs) oder andere exponierte Schnittstellen beinhalten, die einem Benutzer ermöglichen, Anforderungen an die Anbieterumgebung zu senden. Die Schnittstellenschicht 318 kann in diesem Beispiel auch andere Komponenten beinhalten, wie etwa mindestens einen Webserver, Routingkomponenten, Lastverteiler und dergleichen. Komponenten der Schnittstellenschicht 318 können eine Art von Anforderung oder Kommunikation bestimmen und können die Anforderung zu dem geeigneten System oder Dienst leiten. Wenn eine Kommunikation sich beispielsweise darauf bezieht, ein Bildübersetzungsnetzwerk für Klassen von Bildinhalten, wie etwa Vögel, Tiere oder Menschen, zu trainieren, kann die Kommunikation zu einem Bildmanager 320 geleitet werden, bei dem es sich um ein System oder einen Dienst handeln kann, das bzw. der unter Verwendung verschiedener Ressourcen der Anbieterumgebung 316 bereitgestellt wird. Die Kommunikation oder die Informationen aus der Kommunikation können zu einem Trainingsmanager 324 geleitet werden, der ein geeignetes Modell oder Netzwerk auswählen und dann das Modell unter Verwendung relevanter Trainingsbilder und/oder -daten 324 trainieren kann. Wenn ein Netzwerk trainiert und erfolgreich bewertet wurde, kann das Netzwerk beispielsweise in einem Modellarchiv 326 gespeichert werden, das verschiedene Modelle oder Netzwerke für verschiedene Arten der Bildübersetzung oder -verarbeitung speichern kann. Wenn eine Anfrage an der Schnittstellenschicht 318 empfangen wird, die eine für eine Bildübersetzung zu verwendende Eingabe beinhaltet, können Informationen für die Anfrage zu einem Bildgenerator 328 geleitet werden, der in dieser Schrift auch als Teil eines Bildübersetzungsnetzwerks oder -dienstes bezeichnet wird, der das entsprechende trainierte Netzwerk, wie etwa ein trainiertes generatives kontradiktorisches Netzwerk (GAN), wie in dieser Schrift erörtert, aus dem Modellspeicher 326 erhalten kann, wenn es nicht bereits lokal zu dem Generator 328 gespeichert ist. Der Bildgenerator 328 kann das Zielbild (oder wenige Bilder) und Daten, die die Zielpose angeben, wie sie durch ein ausgewähltes Quellbild gezeigt werden kann, wie in dieser Schrift erörtert als Eingabe verwenden. Der Bildgenerator 328 kann dann veranlassen, dass die Eingabe verarbeitet wird, um ein Bild zu erzeugen, das die Zielumwandlung darstellt. Wie bereits erwähnt, kann dies beinhalten, dass die Eingabe durch den Inhaltscodierer 330 verarbeitet wird, um eine klasseninvariante latente Darstellung zu extrahieren, wie sie etwa der ausgewählten Pose entsprechen kann. Der Klassencodierer 332 kann die klassenspezifische latente Darstellung (z. B. ein Objekterscheinungsbild) aus dem Eingabezielbild extrahieren. Der latente Klassencode kann dem AdaIN-Decodierer 334 zugeführt werden, der den latenten Klassencode in einen Satz von Mittelwert- und Varianzvektoren decodiert, die als die neuen Mittelwerte und Varianzen für die jeweiligen Kanäle in dem jeweiligen AdaIN-Restblock in dem Bilddecodierer 336 verwendet werden. Das erzeugte Bild kann dann an die Client-Vorrichtung 302 zur Anzeige auf dem Anzeigeelement 304 oder für eine andere derartige Verwendung gesendet werden. Wenn der Benutzer beliebige Aspekte des Bildes modifizieren möchte, kann der Benutzer der Anwendung 306 zusätzliche Eingaben bereitstellen, was bewirken kann, dass ein neues oder aktualisiertes Bild unter Verwendung desselben Prozesses für die neue oder aktualisierte Eingabe erzeugt wird, wie etwa ein zusätzliches Bild der Zielklasse oder die Vorgabe einer anderen Pose, neben anderen derartigen Optionen. In einigen Ausführungsformen kann ein Bilderzeugungsnetzwerk ein tiefes generatives Modell verwenden, das lernen kann, Bilder anhand eines Trainingsdatensatzes zu untersuchen. Die verwendeten Modelle können beispielsweise generative kontradiktorische Netzwerke (GANs) und Variational Auto-Encoder-(VAE)-Netzwerke beinhalten, während eine Bildübersetzungsaufgabe angestrebt wird. Ein Bildübersetzungsnetzwerk oder -übersetzer 340 kann in verschiedenen Ausführungsformen ein GAN umfassen, das aus einem Generator 328 und einem Diskriminator 338 besteht. Der Generator 328 kann verwendet werden, um übersetzte Bilder zu erzeugen, sodass der Diskriminator nicht zwischen real und erzeugt unterscheiden kann.
  • In verschiedenen Ausführungsformen ist der Prozessor 308 (oder ein Prozessor des Trainingsmanagers 322 oder Bildübersetzers 340) eine zentrale Verarbeitungseinheit (central processing unit - CPU). Wie bereits erwähnt, können Ressourcen in derartigen Umgebungen jedoch GPUs verwenden, um Daten für zumindest bestimmte Arten von Anforderungen zu verarbeiten. Mit Tausenden von Kernen sind GPUs dazu ausgelegt, erhebliche parallele Workloads zu bewältigen und sind daher im Deep Learning zum Trainieren neuronaler Netze und zum Generieren von Vorhersagen populär geworden. Während die Verwendung von GPUs für Offline-Builds schnelleres Trainieren größerer und komplexerer Modelle ermöglicht hat, bedeutet die Offline-Erzeugung von Vorhersagen, dass entweder keine Anforderungszeiteingabemerkmale verwendet werden können oder Vorhersagen für alle Permutationen von Merkmalen erzeugt und in einer Lookup-Tabelle gespeichert werden müssen, um Echtzeit-Anforderungen zu bedienen. Wenn der Deep-Learning-Rahmen einen CPU-Modus unterstützt und das Modell klein und einfach genug ist, um eine Vorwärtskopplung auf der CPU mit einer angemessenen Latenz durchzuführen, dann könnte ein Dienst auf einer CPU-Instanz das Modell aufnehmen. In diesem Fall kann das Training offline auf der GPU und die Inferenz in Echtzeit auf der CPU erfolgen. Wenn der CPU-Ansatz keine praktikable Option ist, kann der Dienst auf einer GPU-Instanz ausgeführt werden. Da GPUs jedoch andere Leistungs- und Kostenmerkmale als CPUs aufweisen, kann das Ausführen eines Dienstes, der den Laufzeitalgorithmus auf die GPU auslagert, erfordern, dass dieser anders als ein CPU-basierter Dienst ausgelegt ist.
  • 4 veranschaulicht einen beispielhaften Prozess 400 zum Erzeugen eines Bildes, das eine Übersetzung einer Darstellung eines zuvor unbekannten Objekts darstellt, sodass es eine Pose aufweist, die aus einer bekannten Quellobjektklasse gelernt wurde, der gemäß verschiedenen Ausführungsformen verwendet werden kann. Es versteht sich für diesen und andere in dieser Schrift erörterte Prozesse, dass im Rahmen der verschiedenen Ausführungsformen, sofern nicht anders angegeben, zusätzliche, alternative oder weniger Schritte in ähnlicher oder alternativer Reihenfolge oder parallel durchgeführt werden können. Ferner können, wenngleich die Pose als Hauptbeispiel verwendet wird, andere Aspekte der Quellbildklasse verwendet werden, um eine Umwandlung eines Eingabeobjekts wie in dieser Schrift erörtert und vorgeschlagen zu erzeugen. In diesem Beispiel wird ein digitales Eingabebild 402 empfangen oder auf andere Weise erhalten oder vorgegeben, das eine Darstellung eines relevanten Objekts umfasst. In diesem Beispiel gehört das Objekt einer Quellklasse an, mit der ein neuronales Netz noch nicht konfrontiert wurde, um zum Verarbeiten des Bildes verwendet zu werden, oder ist zumindest von einer Art, die nicht zum Trainieren des Netzwerks verwendet wurde. Es kann auch eine Auswahl eines Quellbildes erhalten 404 werden, wobei das Quellbild eine Darstellung eines Quellobjekts einer Objektklasse beinhaltet, die verwendet wurde, um das neuronale Netz zu trainieren. In einigen Ausführungsformen kann neben anderen in dieser Schrift erörterten und vorgeschlagenen Optionen ein Benutzer das Quellobjekt auswählen, während in anderen das System oder das Netzwerk ein Quellbild oder eine Quellpose auswählen kann.
  • Wenn das Eingabebild und das Quellbild (oder die Angabe des Quellbildes) erhalten wurden, können sie an das trainierte neuronale Netz als Eingabe bereitgestellt 406 werden. Wie in dieser Schrift erörtert, kann das Netzwerk unter Verwendung vieler Bilder mehrerer Objektklassen, einschließlich der Quellklasse, trainiert worden sein, um zu lernen, zwischen Objekten der verschiedenen Klassen zu übersetzen. Ein oder mehrere Codierer eines Generators des Netzwerks können eine klasseninvariante latente Darstellung entsprechend der Zielpose aus dem Quellbild oder der Quellklasse extrahieren 408. Eine klassenspezifische latente Darstellung kann ebenfalls extrahiert 410, werden die einem Erscheinungsbild des Zielobjekts aus dem Eingabebild entspricht. Das neuronale Netz kann dann verwendet werden, um zumindest teilweise auf Grundlage dieser latenten Darstellungen ein übersetztes Bild abzuleiten 412, das eine Darstellung eines Objekts der Zielklasse, das die Zielpose aufweist, beinhaltet. Wie bereits erwähnt, kann ein derartiger Prozess ein qualitativ hochwertiges übersetztes Bild erzeugen, ohne eine große Anzahl von Eingabebildern der Zielklasse zu erfordern.
  • Wie bereits erwähnt, nutzen verschiedene Ausführungsformen maschinelles Lernens. Beispielsweise wurden auf Prozessoren entwickelte tiefe neuronale Netze (deep neural networks - DNNs) für verschiedene Anwendungsfälle verwendet, von selbstfahrenden Autos bis hin zur schnelleren Medikamentenentwicklung, von der automatischen Bildunterschrift in Online-Bilddatenbanken bis hin zur intelligenten Echtzeit-Sprachübersetzung in Video-Chat-Anwendungen. Deep Learning ist eine Technik, die den neuronalen Lernprozess des menschlichen Gehirns modelliert und dabei kontinuierlich lernt, kontinuierlich intelligenter wird und im Laufe der Zeit immer schneller genauere Ergebnisse liefert. Ein Kind lernt zunächst von einem Erwachsenen, verschiedene Formen richtig zu erkennen und zu klassifizieren, und ist schließlich in der Lage, Formen ohne Anleitung zu erkennen. Ebenso muss ein Deep-Learning- oder neuronales Lernsystem in der Objekterkennung und - klassifizierung trainiert werden, damit es intelligenter und effizienter beim Identifizieren von grundlegenden Objekten, verdeckten Objekten usw. wird, während es außerdem Objekten Kontext zuweist.
  • Auf der einfachsten Ebene betrachten Neuronen im menschlichen Gehirn verschiedene Eingaben, die empfangen werden, werden jeder dieser Eingaben Bedeutungsniveaus zugewiesen und wird eine Ausgabe an andere Neuronen weitergegeben, um auf diese zu handeln. Ein künstliches Neuron oder Perzeptron ist das grundlegendste Modell eines neuronalen Netzes. In einem Beispiel kann ein Perzeptron eine oder mehrere Eingaben empfangen, die verschiedene Merkmale eines Objekts darstellen, zu deren Erkennung und Klassifizierung das Perzeptron trainiert ist, und wird jedem dieser Merkmale auf Grundlage der Bedeutung dieses Merkmals beim Definieren der Form eines Objekts eine bestimmte Gewichtung zugewiesen.
  • Ein Modell eines tiefen neuronalen Netzes (DNN) beinhaltet mehrere Schichten vieler verbundener Perzeptronen (z. B. Knoten), die mit enormen Mengen an Eingabedaten trainiert werden können, um komplexe Probleme mit hoher Genauigkeit schnell zu lösen. In einem Beispiel zerlegt eine erste Schicht des DLL-Modells ein Eingabebild eines Kraftfahrzeugs in verschiedene Abschnitte und sucht nach grundlegenden Mustern, wie etwa Linien und Winkeln. Die zweite Schicht stellt die Linien zusammen, um nach Mustern auf höherer Ebene, wie etwa Rädern, Windschutzscheiben und Spiegeln, zu suchen. Die nächste Schicht identifiziert den Fahrzeugtyp und die letzten wenigen Schichten erzeugen ein Label für das Eingabebild, das das Modell einer bestimmten Kraftfahrzeugmarke identifiziert. Wenn das DNN trainiert wurde, kann das DNN eingesetzt und verwendet werden, um Objekte oder Muster in einem als Inferenz bekannten Prozess zu identifizieren und zu klassifizieren. Beispiele für Inferenz (der Prozess, durch den ein DNN nützliche Informationen aus einer gegebenen Eingabe extrahiert) beinhalten die Identifizierung handgeschriebener Zahlen auf Schecks, die in Geldautomaten eingezahlt werden, die Identifizierung von Bildern von Freunden in Fotos, das Abgeben von Filmempfehlungen an über fünfzig Millionen Nutzer, das Identifizieren und Klassifizieren verschiedene Arten von Kraftfahrzeugen, Fußgängern und Straßengefahren bei fahrerlosen Autos oder das Übersetzen menschlicher Sprache in Echtzeit.
  • Während des Trainings fließen in einer Vorwärtspropagierungsphase Daten durch das DNN, bis eine Vorhersage erzeugt wird, die ein Label, das der Eingabe entspricht, anzeigt. Wenn das neuronale Netz die Eingabe nicht mit dem korrekten Label versieht, werden Fehler zwischen dem korrekten Label und dem vorhergesagten Label analysiert und die Gewichtungen werden während einer Rückwärtspropagierungsphase für jedes Merkmal angepasst, bis das DNN die Eingabe und andere Eingaben in einem Trainingsdatensatz mit dem korrekten Label versieht. Das Training komplexer neuronaler Netze erfordert enorme Mengen an paralleler Rechenleistung, einschließlich Gleitkomma-Multiplikationen und - Additionen, die unterstützt werden. Inferencing ist weniger rechenintensiv als Training, da es sich um einen latenzempfindlichen Prozess handelt, bei dem ein trainiertes neuronales Netz auf neue Eingaben angewendet wird, die es zuvor nicht gesehen hat, um Bilder zu klassifizieren, Sprache zu übersetzen und im Allgemeinen neue Informationen abzuleiten.
  • Neuronale Netze stützen sich stark auf mathematische Matrixoperationen und komplexe mehrschichtige Netzwerke erfordern enorme Mengen an Gleitkommaleistung und Bandbreite, sowohl für Effizienz als auch Geschwindigkeit. Mit Tausenden von Verarbeitungskernen, die für mathematische Matrixoperationen optimiert sind und eine Leistung von zehn bis Hunderten von TFLOPS bieten, kann eine Rechenplattform die für auf tiefen neuronalen Netzen basierte künstliche Intelligenz und Anwendung für maschinelles Lernen erforderliche Leistung liefern.
  • 5 veranschaulicht ein beispielhaftes System 500, das verwendet werden kann, um Daten zu klassifizieren oder Inferenzen zu erzeugen, gemäß verschiedenen Ausführungsformen. Es können auch verschiedene Vorhersagen, Labels oder andere Ausgaben für Eingabedaten erzeugt werden, wie in Anbetracht der in dieser Schrift enthaltenen Lehren und Vorschläge offensichtlich sein sollte. Ferner kann in verschiedenen in dieser Schrift erörterten Ausführungsformen sowohl überwachtes als auch unüberwachtes Training verwendet werden. In diesem Beispiel wird ein Satz klassifizierter Daten 502 als Eingabe bereitgestellt, um als Trainingsdaten zu fungieren. Die klassifizierten Daten können Instanzen mindestens eines Objekttyps beinhalten, für den ein statistisches Modell trainiert werden soll, sowie Informationen, die diesen Objekttyp identifizieren. Die klassifizierten Daten können beispielsweise einen Satz von Bildern beinhalten, die jeweils eine Darstellung eines Objekttyps beinhalten, wobei jedes Bild außerdem ein Label, Metadaten, eine Klassifizierung oder eine andere Information, die den in dem jeweiligen Bild dargestellten Objekttyp identifiziert, beinhaltet oder solchen zugeordnet ist. Als Trainingsdaten können auch verschiedene andere Arten von Daten verwendet werden, die Textdaten, Audiodaten, Videodaten und dergleichen beinhalten können. Die klassifizierten Daten 502 in diesem Beispiel werden einem Trainingsmanager 504 als Trainingseingabe bereitgestellt. Der Trainingsmanager 504 kann ein System oder ein Dienst sein, das bzw. der Hardware und Software beinhaltet, wie etwa eine oder mehrere Rechenvorrichtungen, die eine Trainingsanwendung zum Trainieren des statistischen Modells ausführen. In diesem Beispiel empfängt der Trainingsmanager 504 eine Anweisung oder Anforderung, die einen für das Training zu verwendenden Modelltyp angibt. Das Modell kann ein beliebiges geeignetes statistisches Modell, Netzwerk oder ein beliebiger geeigneter Algorithmus sein, das bzw. der für derartige Zwecke nützlich ist, und kann ein künstliches neuronales Netz, einen Deep-Learning-Algorithmus, einen Learning-Klassifikator, ein Bayes-Netzwerk und dergleichen beinhalten. Der Trainingsmanager 504 kann ein Basismodell oder ein anderes nicht trainiertes Modell aus einem geeigneten Archiv 506 auswählen und die klassifizierten Daten 502 verwenden, um das Modell zu trainieren, wodurch ein trainiertes Modell 508 erzeugt wird, das verwendet werden kann, um ähnliche Arten von Daten zu klassifizieren. In einigen Ausführungsformen, in denen keine klassifizierten Daten verwendet werden, kann das geeignete Basismodell trotzdem für das Trainieren an den Eingabedaten durch den Trainingsmanager ausgewählt werden.
  • Das Modell kann auf einer Anzahl unterschiedlicher Weisen trainiert werden, die teilweise von der Art des ausgewählten Modells abhängen können. Beispielsweise kann in einer Ausführungsform einem Algorithmus für maschinelles Lernen ein Satz von Trainingsdaten bereitgestellt werden, wobei das Modell ein durch den Trainingsprozess erzeugtes Modellartefakt ist. Jede Instanz von Trainingsdaten enthält die richtige Antwort (z. B. Klassifizierung), die als Ziel oder Zielattribut bezeichnet werden kann. Der Lernalgorithmus findet Muster in den Trainingsdaten, die die Eingabedatenattribute auf das Ziel, die vorherzusagende Antwort, abbilden und ein Modell für maschinelles Lernen wird ausgegeben, das diese Muster erfasst. Das Modell für maschinelles Lernen kann dann verwendet werden, um Vorhersagen zu neuen Daten zu erhalten, für die das Ziel nicht vorgegeben ist.
  • In einem Beispiel kann ein Trainingsmanager aus einem Satz von Modellen für maschinelles Lernen auswählen, die binäre Klassifizierungs-, mehrklassige Klassifizierungs- und Regressionsmodelle beinhalten. Die Art des zu verwendenden Modells kann zumindest teilweise von der Art des vorherzusagenden Ziels abhängen. Modelle für maschinelles Lernen für binäre Klassifizierungsprobleme sagen ein binäres Ergebnis vorher, wie etwa eine von zwei möglichen Klassen. Ein Lernalgorithmus, wie etwa logistische Regression, kann verwendet werden, um binäre Klassifizierungsmodelle zu trainieren. Modelle für maschinelles Lernen für mehrklassige Klassifizierungsprobleme ermöglichen die Erzeugung von Vorhersagen für mehrere Klassen, z. B. um mehr als zwei Ergebnisse vorherzusagen. Multinominale logistische Regression kann zum Trainieren von Mehrklassenmodellen nützlich sein. Modelle für maschinelles Lernen für Regressionsprobleme sagen einen numerischen Wert vorher. Lineare Regression kann zum Trainieren von Regressionsmodellen nützlich sein.
  • Um ein Modell für maschinelles Lernen gemäß einer Ausführungsform zu trainieren, muss der Trainingsmanager die Eingabetrainingsdatenquelle sowie andere Informationen, wie etwa den Namen des Datenattributs, das das vorherzusagende Ziel enthält, erforderliche Datenumwandlungsanweisungen und Trainingsparameter, bestimmen, um den Lernalgorithmus zu steuern. Während des Trainingsprozesses kann ein Trainingsmanager in einigen Ausführungsformen automatisch den geeigneten Lernalgorithmus auf Grundlage des in der Trainingsdatenquelle vorgegebenen Zieltyps auswählen. Algorithmen für maschinelles Lernen können Parameter annehmen, die verwendet werden, um bestimmte Eigenschaften des Trainingsprozesses und des resultierenden Modells für maschinelles Lernen zu steuern. Diese werden in dieser Schrift als Trainingsparameter bezeichnet. Wenn keine Trainingsparameter vorgegeben sind, kann der Trainingsmanager Standardwerte verwenden, von denen bekannt ist, dass sie für einen großen Bereich von Aufgaben des maschinellen Lernens gut funktionieren. Beispiele für Trainingsparameter, für die Werte vorgegeben werden können, beinhalten die maximale Modellgröße, die maximale Anzahl von Durchgängen über Trainingsdaten, den Mischtyp, den Regularisierungstyp, die Lernrate und den Normalisierungsbetrag. Es können Standardeinstellungen mit Optionen zum Anpassen der Werte zur Feinabstimmung der Leistung vorgegeben werden.
  • Die maximale Modellgröße ist die Gesamtgröße, in Einheiten von Bytes, von Mustern, die während des Trainieren des Modells erzeugt werden. Ein Modell kann standardmäßig mit einer vorgegebenen Größe erstellt werden, wie etwa ein Modell von 100 MB. Wenn der Trainingsmanager nicht genügend Muster bestimmen kann, um die Modellgröße auszufüllen, kann ein kleineres Modell erstellt werden. Wenn der Trainingsmanager mehr Muster findet, als in die vorgegebene Größe passen, kann eine maximale Grenze durch Beschneiden der Muster, die die Qualität des gelernten Modells am wenigsten beeinträchtigen, erzwungen werden. Die Wahl der Modellgröße ermöglicht die Kontrolle des Kompromisses zwischen der Vorhersagequalität eines Modells und den Einsatzkosten. Kleinere Modelle können dazu führen, dass der Trainingsmanager, viele Muster entfernt, um in die maximale Größenbeschränkung zu passen, was die Qualität der Vorhersagen beeinträchtigt. Bei größeren Modellen hingegen kann die Abfrage nach Echtzeitvorhersagen teurer sein. Größere Eingabedatensätze führen nicht unbedingt zu größeren Modellen, da Modelle Muster speichern und keine Eingabedaten; wenn es nur wenige und einfache Muster gibt, ist das resultierende Modell klein. Bei Eingabedaten, die eine große Anzahl von Rohattributen (Eingabespalten) oder abgeleiteten Merkmalen (Ausgaben der Datenumwandlungen) aufweisen, werden wahrscheinlich mehr Muster während des Trainingsprozesses gefunden und gespeichert.
  • In einigen Ausführungsformen kann der Trainingsmanager mehrere Durchgänge oder Iterationen über die Trainingsdaten vornehmen, um Muster zu entdecken. Es kann eine Standardanzahl von Durchgängen geben, wie etwa zehn Durchgänge, während in einigen Ausführungsformen bis zu einer maximalen Anzahl von Durchgängen eingestellt werden kann, wie etwa bis zu einhundert Durchgängen. In einigen Ausführungsformen kann es keinen maximalen Satz geben, oder es kann einen Konvergenz- oder einen anderen Kriteriensatz geben, der ein Ende des Trainingsprozesses auslöst. In einigen Ausführungsformen kann der Trainingsmanager die Qualität von Mustern (d. h. die Modellkonvergenz) während des Trainings überwachen und kann das Training automatisch stoppen, wenn es keine Datenpunkte oder Muster mehr zu entdecken gibt. Datensätze mit nur wenigen Beobachtungen erfordern möglicherweise mehr Durchgänge über die Daten, um eine höhere Modellqualität zu erzielen. Größere Datensätze können viele ähnliche Datenpunkte enthalten, was die Notwendigkeit einer großen Anzahl von Durchgängen reduzieren kann. Die potenzielle Auswirkung der Auswahl von mehreren Datendurchgängen über die Daten besteht darin, dass das Modelltraining länger dauern und in Bezug auf Ressourcen und Systemauslastung mehr kosten kann.
  • In einigen Ausführungsformen werden die Trainingsdaten vor dem Training oder zwischen den Trainingsdurchgängen gemischt. Das Mischen ist in vielen Ausführungsformen ein zufälliges oder pseudozufälliges Mischen, um eine wirklich zufällige Reihenfolge zu erzeugen, wenngleich es einige Einschränkungen geben kann, um sicherzustellen, dass es keine Gruppierung bestimmter Datentypen gibt, oder die gemischten Daten können neu gemischt werden, wenn eine derartige Gruppierung vorhanden ist usw. Durch das Mischen ändert sich die Reihenfolge oder Anordnung, in der die Daten zum Trainieren verwendet werden, sodass der Trainingsalgorithmus nicht mit Gruppierungen ähnlicher Datentypen oder einem einzelnen Datentyp für zu viele Beobachtungen hintereinander konfrontiert wird. Beispielsweise könnte ein Modell trainiert werden, um einen Produkttyp vorherzusagen, wobei die Trainingsdaten Film-, Spielzeug- und Videospielprodukttypen beinhalten. Die Daten könnten vor dem Hochladen nach Produkttyp sortiert werden. Der Algorithmus kann die Daten dann alphabetisch nach Produkttyp verarbeiten, wobei zuerst nur Daten für einen Typ, wie etwa Filme, gesehen werden. Das Modell beginnt, Muster für Filme zu lernen. Das Modell wird dann nur mit Daten für einen anderen Produkttyp konfrontiert, wie etwa Spielzeug, und versucht, das Modell an den Spielzeugprodukttyp anzupassen, was die Muster, die zu Filmen passen, verschlechtern kann. Dieser plötzliche Wechsel vom Film- zum Spielzeugtyp kann ein Modell erzeugen, das nicht lernt, Produkttypen genau vorherzusagen. Das Mischen kann in einigen Ausführungsformen durchgeführt werden, bevor der Trainingsdatensatz in Trainings- und Bewertungsteilmengen aufgeteilt wird, sodass eine relativ gleichmäßige Verteilung der Datentypen für beide Phasen verwendet wird. In einigen Ausführungsformen kann der Trainingsmanager die Daten automatisch unter Verwendung von beispielsweise einer pseudozufälligen Mischtechnik mischen.
  • Beim Erzeugen eines Modells für maschinelles Lernen kann der Trainingsmanager in einigen Ausführungsformen einem Benutzer ermöglichen, Einstellungen vorzugeben oder benutzerdefinierten Optionen anzuwenden. Zum Beispiel kann ein Benutzer eine oder mehrere Bewertungseinstellungen vorgeben, die einen Teil der Eingabedaten angeben, der zum Bewerten der Vorhersagequalität des Modells für maschinelles Lernen reserviert werden soll. Der Benutzer kann ein Rezept vorgeben, das angibt, welche Attribute und Attributumwandlungen für das Modelltraining verfügbar sind. Der Benutzer kann außerdem verschiedene Trainingsparameter vorgeben, die bestimmte Eigenschaften des Trainingsprozesses und des resultierenden Modells steuern.
  • Wenn der Trainingsmanager bestimmt hat, dass das Trainieren des Modells abgeschlossen ist, wie etwa durch Verwenden mindestens eines in dieser Schrift erörterten Endkriteriums, kann das trainierte Modell 508 zur Verwendung durch einen Klassifikator 514 beim Klassifizieren nicht klassifizierter Daten 512 bereitgestellt werden. In vielen Ausführungsformen wird das trainierte Modell 508 jedoch zuerst an einen Bewerter 510 übergeben, der eine Anwendung oder einen Prozess beinhalten kann, die bzw. der auf mindestens einer Rechenressource zum Bewerten der Qualität (oder eines anderen derartigen Aspekts) des trainierten Modells ausgeführt wird. Das Modell wird ausgewertet, um zu bestimmen, ob das Modell zumindest ein minimales akzeptables oder Schwellenleistungsniveau beim Vorhersagen des Ziels auf neuen und zukünftigen Daten bereitstellt. Da zukünftige Dateninstanzen oft unbekannte Zielwerte haben, kann es wünschenswert sein, eine Genauigkeitsmetrik des maschinellen Lernens an Daten zu überprüfen, für die die Zielantwort bekannt ist, und diese Bewertung als Proxy für die Vorhersagegenauigkeit an zukünftigen Daten zu verwenden.
  • In einigen Ausführungsformen wird ein Modell unter Verwendung einer Teilmenge der klassifizierten Daten 502, die für das Training bereitgestellt wurden, ausgewertet. Die Teilmenge kann unter Verwendung eines Misch- und Aufteilansatzes, wie vorstehend erörtert, bestimmt werden. Diese Teilmenge der Bewertungsdaten wird mit dem Ziel gekennzeichnet und kann somit als Quelle der Ground Truth für die Bewertung dienen. Das Bewerten der Vorhersagegenauigkeit eines Modells für maschinelles Lernen mit den denselben Daten, die zum Trainieren verwendet wurden, ist nicht sinnvoll, da positive Bewertungen für Modelle erzeugt werden könnten, die sich an die Trainingsdaten erinnern, anstatt aus diesen zu generalisieren. Wenn das Trainieren abgeschlossen wurde, wird die Bewertungsdatenteilmenge unter Verwendung des trainierten Modells 508 verarbeitet und der Bewerter 510 kann die Genauigkeit des Modells bestimmen, indem er die Ground-Truth-Daten mit der entsprechenden Ausgabe (oder den Vorhersagen/Beobachtungen) des Modells vergleicht. Der Bewerter 510 kann in einigen Ausführungsformen eine Zusammenfassung oder Leistungsmetrik bereitstellen, die angibt, wie gut die vorhergesagten und wahren Werte übereinstimmen. Wenn das trainierte Modell nicht mindestens ein Mindestleistungskriterium oder einen anderen derartigen Genauigkeitsschwellenwert erfüllt, kann der Trainingsmanager 504 angewiesen werden, weiteres Training durchzuführen oder in einigen Fällen zu versuchen, ein neues oder anderes Modell zu trainieren, neben anderen derartigen Optionen. Wenn das trainierte Modell 508 die relevanten Kriterien erfüllt, kann das trainierte Modell zur Verwendung durch den Klassifikator 514 bereitgestellt werden.
  • Beim Erzeugen und Trainieren eines Modells für maschinelles Lernen kann es in zumindest einigen Ausführungsformen wünschenswert sein, Modelleinstellungen oder Trainingsparameter vorzugeben, die zu einem Modell führen, das in der Lage ist, die genauesten Vorhersagen zu treffen. Beispielparameter umfassen die Anzahl der durchzuführenden Durchgänge (vorwärts und/oder rückwärts), die Regularisierung, die Modellgröße und den Mischtyp. Wie bereits erwähnt, kann jedoch das Auswählen von Modellparametereinstellungen, die die beste Vorhersageleistung an den Bewertungsdaten ergeben, zu einer Überanpassung des Modells führen. Überanpassung tritt auf, wenn ein Modell gemerkte Muster aufweist, die in den Trainings- und Bewertungsdatenquellen vorkommen, aber die Muster in den Daten nicht generalisiert hat. Eine Überanpassung tritt häufig auf, wenn die Trainingsdaten alle in der Auswertung verwendeten Daten enthalten. Ein Modell, das überangepasst wurde, kann während der Auswertung eine gute Leistung erbringen, kann jedoch keine genauen Vorhersagen an neuen oder anderweitig nicht klassifizierten Daten treffen. Um zu vermeiden, dass ein überangepasstes Modell als bestes Modell ausgewählt wird, kann der Trainingsmanager zusätzliche Daten reservieren, um die Leistung des Modells zu validieren. Der Trainingsdatensatz könnte beispielsweise in 60 Prozent für das Training und 40 Prozent für die Bewertung oder Validierung aufgeteilt werden, die in zwei oder mehr Phasen unterteilt werden kann. Nach dem Auswählen der Modellparameter, die für die Bewertungsdaten gut funktionieren, was zu einer Konvergenz bei einer Teilmenge der Validierungsdaten, wie etwa der Hälfte der Validierungsdaten, führt, kann eine zweite Validierung mit einem Rest der Validierungsdaten ausgeführt werden, um die Leistung der Modell sicherzustellen. Wenn das Modell die Erwartungen auf den Validierungsdaten erfüllt, liegt keine Überanpassung der Daten durch das Modell vor. Alternativ kann zum Testen der Parameter ein Testsatz oder ein Vorhaltesatz verwendet werden. Die Verwendung eines zweiten Validierungs- oder Testschritts hilft bei der Auswahl geeigneter Modellparameter, um eine Überanpassung zu verhindern. Wenn jedoch mehr Daten aus dem Trainingsprozess zur Validierung vorgehalten werden, stehen weniger Daten für das Trainieren zur Verfügung. Dies kann bei kleineren Datensätzen problematisch sein, da möglicherweise nicht genügend Daten für das Trainieren zur Verfügung stehen. Ein Ansatz in einer derartigen Situation besteht darin, eine Kreuzvalidierung durchzuführen, wie an anderer Stelle in dieser Schrift erörtert.
  • Es gibt viele Metriken oder Einsichten, die zur Überprüfung und Bewertung der Vorhersagegenauigkeit eines bestimmten Modells verwendet werden können. Ein beispielhaftes Bewertungsergebnis enthält eine Vorhersagegenauigkeitsmetrik, um über den Gesamterfolg des Modells zu berichten, sowie Visualisierungen, um die Genauigkeit des Modells über die Vorhersagegenauigkeitsmetrik hinaus zu untersuchen. Das Ergebnis kann auch eine Möglichkeit bereitstellen, um die Auswirkung des Festlegens eines Bewertungsschwellenwerts zu überprüfen, wie etwa für die binäre Klassifizierung, und kann Warnungen zu Kriterien erzeugen, um die Gültigkeit der Bewertung zu überprüfen. Die Wahl der Metrik und Visualisierung kann zumindest teilweise von der Art des bewerteten Modells abhängen.
  • Wenn des trainierte Modell für maschinelles Lernen zufriedenstellend trainiert und bewertet wurde, kann es verwendet werden, um eine Anwendung für maschinelles Lernen zu erstellen oder zu unterstützen. In einer Ausführungsform ist das Erstellen einer Anwendung für maschinelles Lernen ein iterativer Prozess, der eine Folge von Schritten umfasst. Das bzw. die Kernprobleme des maschinellen Lernens können in Bezug darauf, was beobachtet wird und welche Antwort das Modell vorhersagen soll, formuliert werden. Dann können Daten erfasst, bereinigt und aufbereitet werden, um die Daten für den Verbrauch durch einen Trainingsalgorithmus für ein Modell für maschinelles Lernen geeignet zu machen. Die Daten können visualisiert und analysiert werden, um Plausibilitätsprüfungen durchzuführen, um die Qualität der Daten zu validieren und die Daten zu verstehen. Es kann vorkommen, dass die Rohdaten (z. B. die Eingabevariablen) und die Antwort (z. B. das Ziel) nicht in einer Weise dargestellt werden, die zum Trainieren eines hochgenauen Vorhersagemodells verwendet werden kann. Daher kann es wünschenswert sein, aus den Rohvariablen genauere Vorhersageeingabedarstellungen oder -merkmale zu konstruieren. Die resultierenden Merkmale können dem Lernalgorithmus zugeführt werden, um Modelle zu erstellen und die Qualität der Modelle auf den Daten zu bewerten, die aus der Modellerstellung vorgehalten wurden. Das Modell kann dann verwendet werden, um Vorhersagen der Zielantwort für neue Dateninstanzen zu erzeugen.
  • In dem beispielhaften System 500 aus 5 wird das trainierte Modell 510 nach der Bewertung einem Klassifikator 514 bereitgestellt oder zur Verfügung gestellt, der in der Lage ist, das trainierte Modell zu verwenden, um nicht klassifizierte Daten zu bearbeiten. Diese können beispielsweise Daten beinhalten, die von Benutzern oder Dritten empfangen werden, die nicht klassifiziert sind, wie etwa Abfragebilder, die nach Informationen dazu suchen, was in diesen Bildern dargestellt ist. Die nicht klassifizierten Daten können durch den Klassifikator unter Verwendung des trainierten Modells verarbeitet werden und die Ergebnisse 516 (d. h. die Klassifizierungen oder Vorhersagen), die erzeugt werden, können an die jeweiligen Quellen zurückgesendet oder anderweitig verarbeitet oder gespeichert werden. In einigen Ausführungsformen, und wo eine derartige Verwendung erlaubt ist, können die nun klassifizierten Dateninstanzen in dem Archiv für klassifizierte Daten gespeichert werden, das zum weiteren Trainieren des trainierten Modells 508 durch den Trainingsmanager verwendet werden kann. In einigen Ausführungsformen wird das Modell kontinuierlich trainiert, wenn neue Daten verfügbar sind, aber in anderen Ausführungsformen werden die Modelle in Abhängigkeit von Faktoren wie etwa der Größe des Datensatzes oder der Komplexität des Modells periodisch neu trainiert, wie etwa einmal am Tag oder in der Woche.
  • Der Klassifikator kann geeignete Hardware und Software zum Verarbeiten der nicht klassifizierten Daten unter Verwendung des trainierten Modells beinhalten. In einigen Fällen beinhaltet der Klassifikator einen oder mehrere Computerserver, von denen jeder eine oder mehrere Grafikverarbeitungseinheiten (graphic processing units - GPUs) aufweist, die in der Lage sind, die Daten zu verarbeiten. Die Konfiguration und das Design von GPUs können ihre Verwendung bei der Verarbeitung von Daten für maschinelles Lernen wünschenswerter als CPUs oder andere derartige Komponenten machen. Das trainierte Modell kann in einigen Ausführungsformen in GPU-Speicher geladen werden und eine empfangene Dateninstanz kann der GPU zur Verarbeitung bereitgestellt werden. GPUs können eine viel größere Anzahl von Kernen aufweisen als CPUs, und die GPU-Kerne können außerdem viel weniger komplex sein. Dementsprechend kann eine bestimmte GPU in der Lage sein, Tausende von Dateninstanzen gleichzeitig über verschiedene Hardware-Threads zu verarbeiten. Eine GPU kann auch dazu konfiguriert sein, den Gleitkomma-Durchsatz zu maximieren, was erhebliche zusätzliche Verarbeitungsvorteile für einen großen Datensatz bereitstellen kann.
  • Selbst wenn GPUs, Beschleuniger und andere derartige Hardware zum Beschleunigen von Aufgaben, wie etwa dem Trainieren eines Modells oder der Klassifizierung von Daten unter Verwendung eines derartigen Modells verwendet werden, können derartige Aufgaben trotzdem erhebliche Zeit, Ressourcenzuweisung und Kosten erfordern. Wenn das Modell für maschinelles Lernen beispielsweise unter Verwendung von 100 Durchgängen trainiert werden soll und der Datensatz 1.000.000 Dateninstanzen beinhaltet, die für das Training verwendet werden sollen, dann müssten für j eden Durchgang alle Millionen Instanzen verarbeitet werden. Verschiedene Teile der Architektur können auch von verschiedenen Arten von Vorrichtungen unterstützt werden. Zum Beispiel kann das Trainieren unter Verwendung einer Reihe von Servern an einem logisch zentralisierten Standort durchgeführt werden, wie als Dienst angeboten werden kann, während die Klassifizierung von Rohdaten durch einen derartigen Dienst oder auf einer Client-Vorrichtung durchgeführt werden kann, neben anderen derartigen Optionen. Diese Vorrichtungen können in verschiedenen Ausführungsformen auch derselben Entität oder mehreren Entitäten gehören, von diesen betrieben oder gesteuert werden.
  • 6 veranschaulicht ein beispielhaftes neuronales Netz 600 oder ein anderes statistisches Modell, das gemäß verschiedenen Ausführungsformen verwendet werden kann. In diesem Beispiel ist das statistische Modell ein künstliches neuronales Netz (artificial neural network - ANN), das mehrere Knotenschichten beinhaltet, einschließlich einer Eingabeschicht 602, einer Ausgabeschicht 606 und mehrerer Schichten 604 von Zwischenknoten, die oft als „verborgene“ Schichten bezeichnet werden, da die internen Schichten und Knoten in herkömmlichen neuronalen Netzen typischerweise nicht sichtbar oder zugänglich sind. Wie an anderer Stelle in dieser Schrift erörtert, können neben anderen derartigen Optionen auch zusätzliche Arten von statistischen Modellen sowie andere Arten von neuronalen Netzen, einschließlich anderer Anzahlen von Auswahlen von Knoten und Schichten, verwendet werden. In diesem Netzwerk sind alle Knoten einer bestimmten Schicht mit allen Knoten einer benachbarten Schicht verbunden. Wie veranschaulicht, sind die Knoten einer Zwischenschicht dann jeweils mit Knoten zweier benachbarter Schichten verbunden. Die Knoten werden in einigen Modellen auch als Neuronen oder verbundene Einheiten bezeichnet und Verbindungen zwischen Knoten werden als Kanten bezeichnet. Jeder Knoten kann eine Funktion für die empfangenen Eingaben ausführen, wie etwa durch Verwenden einer vorgegebenen Funktion. Knoten und Kanten können während des Trainierens unterschiedliche Gewichtungen erhalten und einzelne Knotenschichten können bestimmte Arten von Umwandlungen auf der empfangenen Eingabe durchführen, wobei diese Umwandlungen auch während des Trainierens gelernt oder angepasst werden können. Das Lernen kann überwachtes oder unüberwachtes Lernen sein, wie es zumindest teilweise von der Art der im Trainingsdatensatz enthaltenen Informationen abhängen kann. Es können verschiedene Arten von neuronalen Netzen verwendet werden, die ein neuronalen Faltungsnetzwerk (convolutional neural network - CNN) beinhalten können, das eine Anzahl von Faltungsschichten und einen Satz von Pooling-Schichten beinhaltet und sich für Anwendungen wie etwa Bilderkennung als vorteilhaft erwiesen hat. CNNs können aufgrund einer relativ geringen Anzahl von zu bestimmenden Parametern außerdem leichter zu trainieren sein als andere Netzwerke.
  • In einigen Ausführungsformen kann ein derartiges komplexes Modell für maschinelles Lernen unter Verwendung verschiedener Abstimmungsparameter trainiert werden. Das Auswählen der Parameter, das Anpassen des Modells und das Bewerten des Modells sind Teile des Modell-Abstimmungsprozesses, die oft als HyperparameterOptimierung bezeichnet werden. Eine derartige Abstimmung kann in zumindest einigen Ausführungsformen eine Introspektion des zugrundeliegenden Modells oder der Daten beinhalten. In einer Trainings- oder Produktionsumgebung kann ein robuster Workflow wichtig sein, um eine Überanpassung der Hyperparameter zu vermeiden, wie an anderer Stelle in dieser Schrift erörtert. Kreuzvalidierung und Hinzufügen von Gaußschem Rauschen zu dem Trainingsdatensatzes sind Techniken, die nützlich sein können, um eine Überanpassung an einen beliebigen Datensatz zu vermeiden. Für die Hyperparameteroptimierung kann es in einigen Ausführungsformen wünschenswert sein, die Trainings- und Validierungssätze fest zu halten. In einigen Ausführungsformen können Hyperparameter in bestimmten Kategorien abgestimmt werden, die Datenvorverarbeitung (anders ausgedrückt Übersetzen von Wörtern in Vektoren), CNN-Architekturdefinition (zum Beispiel Filtergrößen, Anzahl von Filtern), stochastische Gradientenabstiegsparameter (zum Beispiel Lernrate) und Regularisierung (zum Beispiel Dropout-Wahrscheinlichkeit) neben anderen derartigen Optionen beinhalten können.
  • In einem beispielhaften Vorverarbeitungsschritt können Instanzen eines Datensatzes in einen niedrigeren dimensionalen Raum einer bestimmten Größe eingebettet werden. Die Größe dieses Raums ist ein abzustimmender Parameter. Die Architektur des CNN enthält viele abstimmbare Parameter. Ein Parameter für Filtergrößen kann eine Interpretation der Informationen darstellen, die der Größe einer zu analysierenden Instanz entsprechen. In der Computerlinguistik wird dies als N-Gramm-Größe bezeichnet. Ein beispielhaftes CNN verwendet drei verschiedene Filtergrößen, die potenziell unterschiedliche N-Gramm-Größen darstellen. Die Anzahl der Filter pro Filtergröße kann der Filtertiefe entsprechen. Jeder Filter versucht etwas anderes aus der Struktur der Instanz zu lernen, wie etwa die Satzstruktur für Textdaten. In der Faltungsschicht kann die Aktivierungsfunktion eine gleichgerichtete lineare Einheit sein und der Pooling-Typ als maximales Pooling festgelegt sein. Die Ergebnisse können dann zu einem eindimensionalen Vektor verkettet werden und die letzte Schicht ist vollständig mit einer zweidimensionalen Ausgabe verbunden. Dies entspricht der binären Klassifikation, auf die eine Optimierungsfunktion angewendet werden kann. Eine derartige Funktion ist eine Umsetzung eines Effektivwert-(root mean square - RMS-)Propagierungsverfahrens des Gradientenabstiegs, wobei beispielhafte Hyperparameter Lernrate, Batchgröße, maximale Gradientennormale und Epochen beinhalten können. Bei neuronalen Netzen kann die Regularisierung ein äußerst wichtiger Aspekt sein. Wie bereits erwähnt, können die Eingabedaten in einigen Ausführungsformen relativ spärlich sein. Ein Haupthyperparameter in einer derartigen Situation kann der Dropout auf der vorletzten Schicht sein, der einen Anteil der Knoten darstellt, die bei jedem Trainingszyklus nicht „ausgelöst“ werden. Ein beispielhafter Trainingsprozess kann auf Grundlage von Feedback für die Leistung vorheriger Konfigurationen verschiedene Hyperparameterkonfigurationen vorschlagen. Das Modell kann mit einer vorgeschlagenen Konfiguration trainiert werden, die auf einem festgelegten Validierungssatz und den Leistungsberichten bewertet wurde. Dieser Prozess kann wiederholt werden, um beispielsweise Exploration (mehr über verschiedene Konfigurationen lernen) und Exploitation (vorheriges Wissen nutzen, um bessere Ergebnisse zu erzielen) abzuwägen.
  • Da das Trainieren von CNNs parallelisiert werden kann und GPU-fähige Rechenressourcen verwendet werden können, können mehrere Optimierungsstrategien für verschiedene Szenarien versucht werden. Ein komplexes Szenario ermöglicht das Abstimmen der Modellarchitektur und der Vorverarbeitungs- und stochastischen Gradientenabstiegsparameter. Dies erweitert den Modellkonfigurationsraum. In einem Basisszenario werden nur die Vorverarbeitungs- und stochastische Gradientenabstiegsparameter abgestimmt. In dem komplexen Szenario kann es eine größere Anzahl von Konfigurationsparametern als in dem Basisszenario geben. Die Abstimmung in einem gemeinsamen Raum kann unter Verwendung einer linearen oder exponentiellen Anzahl von Schritten, einer Iteration durch die Optimierungsschleife für die Modelle, durchgeführt werden. Die Kosten für einen derartigen Abstimmungsprozess können deutlich geringer sein als für Abstimmungsprozesse wie etwa Zufallssuche und Rastersuche, ohne einen erheblichen Leistungsverlust.
  • Einige Ausführungsformen können Rückpropagierung verwenden, um einen Gradienten zu berechnen, der zum Bestimmen der Gewichtungen für das neuronale Netz verwendet wird. Rückpropagierung ist eine Form der Differenzierung und kann von einem Gradientenabstiegs-Optimierungsalgorithmus verwendet werden, um die auf die verschiedenen Knoten oder Neuronen angewendeten Gewichtungen wie vorstehend erörtert anzupassen. Die Gewichtungen können in einigen Ausführungsformen unter Verwendung des Gradienten der relevanten Verlustfunktion bestimmt werden. Rückpropagierung kann die Ableitung der Verlustfunktion in Bezug auf die durch das statistische Modell erzeugte Ausgabe verwenden. Wie bereits erwähnt, können die verschiedenen Knoten zugehörige Aktivierungsfunktionen aufweisen, die die Ausgabe der jeweiligen Knoten definieren. Verschiedene Aktivierungsfunktionen können wie jeweils angemessen verwendet werden, darunter radiale Basisfunktionen (radial basis functions - RBFs) und Sigmoide, die von verschiedenen Stützvektormaschinen (support vector machines - SVMs) zur Umwandlung der Daten verwendet werden können. Die Aktivierungsfunktion einer Zwischenschicht von Knoten wird in dieser Schrift als innerer Produktkern bezeichnet. Diese Funktionen können beispielsweise Identitätsfunktionen, Sprungfunktionen, Sigmoidalfunktionen, Rampenfunktionen und dergleichen beinhalten. Aktivierungsfunktionen können neben anderen derartigen Optionen auch linear oder nichtlinear sein.
  • 7 veranschaulicht einen Satz beispielhafter Komponenten einer Rechenvorrichtung 700, die verwendet werden kann, um Aspekte der verschiedenen Ausführungsformen umzusetzen. In diesem Beispiel beinhaltet die Vorrichtung mindestens einen Prozessor 702 zum Ausführen von Anweisungen, die in einer Speichervorrichtungen oder einem Speicherelement 704 gespeichert sein können. Wie für den Durchschnittsfachmann offensichtlich ist, kann die Vorrichtung viele Arten von Speicher, Datenspeicher oder computerlesbaren Medien beinhalten, wie etwa einen ersten Datenspeicher für Programmanweisungen zur Ausführung durch den Prozessor 702, kann derselbe oder ein getrennter Speicher für Bilder oder Daten verwendet werden, kann ein Wechselspeicher zum Austauschen von Informationen mit anderen Vorrichtungen verfügbar sein und kann eine beliebige Anzahl von Kommunikationsansätzen zum Austauschen mit anderen Vorrichtungen verfügbar sein. Die Vorrichtung beinhaltet typischerweise eine gewisse Art von Anzeigeelement 706, wie etwa einen Touchscreen, eine organische lichtemittierende Diode (organic light emitting diode - OLED) oder ein Flüssigkristalldisplay (liquid crystal display - LCD), wenngleich Vorrichtungen wie etwa tragbare Mediaplayer Informationen über andere Mittel übermitteln können, wie etwa durch Audiolautsprecher. Wie zuvor erörtert, beinhaltet die Vorrichtung in vielen Ausführungsformen mindestens eine Kommunikationskomponente 708 und/oder Netzwerkkomponenten 710, die etwa drahtgebundene oder drahtlose Kommunikationen über mindestens ein Netzwerk, wie etwa das Internet, ein lokales Netzwerk (LAN), Bluetooth® oder ein Mobilfunknetzwerk, neben anderen derartigen Optionen, unterstützen können. Die Komponenten können dem Gerät ermöglichen, mit entfernten Systemen oder Diensten zu kommunizieren. Die Vorrichtung kann außerdem mindestens eine zusätzliche Eingabevorrichtung 712 beinhalten, die in der Lage ist, herkömmliche Eingaben von einem Benutzer zu empfangen. Diese herkömmlichen Eingaben können beispielsweise eine Drucktaste, ein Touchpad, einen Touchscreen, ein Rad, einen Joystick, eine Tastatur, eine Maus, einen Trackball, einen Tastenfeld oder eine beliebige andere derartige Vorrichtung oder ein beliebiges anderes derartiges Element beinhalten, durch welche ein Benutzer einen Befehl in die Vorrichtung eingeben kann. Diese E/A-Vorrichtungen könnten in einigen Ausführungsformen sogar über eine drahtlose Infrarot- oder Bluetooth- oder eine andere Verbindung verbunden sein. In einigen Ausführungsformen jedoch, beinhaltet eine derartige Vorrichtung möglicherweise überhaupt keine Tasten und wird möglicherweise nur durch eine Kombination aus visuellen und akustischen Befehlen gesteuert, sodass ein Benutzer die Vorrichtung steuern kann, ohne mit der Vorrichtung in Kontakt stehen zu müssen.
  • Die verschiedenen Ausführungsformen können in einer breiten Vielfalt von Betriebsumgebungen umgesetzt sein, die in einigen Fällen einen oder mehrere Benutzercomputer oder Rechenvorrichtungen beinhalten können, die verwendet werden können, um eine beliebige einer Anzahl von Anwendungen zu betreiben. Benutzer- oder Client-Vorrichtungen können eine beliebige Anzahl von Universalcomputem beinhalten, wie etwa Desktop- oder Laptop-Computer, auf denen ein standardmäßiges Betriebssystem ausgeführt wird, sowie Mobilfunk-, drahtlose und tragbare Vorrichtungen, auf denen mobile Software ausgeführt wird und die dazu in der Lage sind, eine Anzahl von Networking- und Messaging-Protokollen zu unterstützen. Ein derartiges System kann auch eine Anzahl von Workstations beinhalten, auf denen ein beliebiges von einer Vielfalt von kommerziell erhältlichen Betriebssystemen und sonstige bekannte Anwendungen für Zwecke wie etwa Entwicklung und Datenbankverwaltung ausgeführt werden. Diese Vorrichtungen können außerdem andere elektronische Vorrichtungen beinhalten, wie etwa Dummy Terminals, Thin Clients, Spielesysteme und andere Vorrichtungen, die in der Lage sind, über ein Netzwerk zu kommunizieren.
  • Die meisten Ausführungsformen verwenden mindestens ein Netzwerk, das dem Fachmann auf dem Gebiet zur Unterstützung von Kommunikationen unter Verwendung einer Vielfalt von kommerziell erhältlichen Protokollen, wie etwa TCP/IP oder FTP, bekannt wäre. Das Netzwerk kann zum Beispiel ein lokales Netzwerk, ein Weitbereichsnetzwerk, ein virtuelles privates Netzwerk, das Internet, ein Intranet, ein Extranet, ein öffentliches Fernsprechwählnetz, ein Infrarot-Netzwerk, ein Drahtlosnetzwerk und eine beliebige Kombination davon sein. In Ausführungsformen, die einen Webserver verwenden, kann der Webserver eine beliebige einer Vielfalt von Server- oder Mid-Tier-Anwendungen ausführen, einschließlich HTTP-Servern, FTP-Servern, CGI-Servern, Datenservern, Java-Servern und Geschäftsanwendungsservern. Der bzw. die Server können zudem in der Lage sein, Programme oder Skripte als Reaktion auf Anforderungen von Benutzervorrichtungen auszuführen, wie etwa durch Ausführen einer oder mehrerer Webanwendungen, die als ein oder mehrere Skripte oder Programme umgesetzt sein können, die in einer beliebigen Programmiersprache, wie etwa Java®, C, C# oder C++, oder einer beliebigen Skriptsprache, wie etwa Python, sowie Kombinationen davon geschrieben sind. Der bzw. die Server können auch Datenbankserver beinhalten, einschließlich, aber nicht beschränkt auf diejenigen, die von Oracle®, Microsoft®, Sybase® und IBM® kommerziell erhältlichen sind.
  • Die Umgebung kann eine Vielfalt von Datenspeichern und anderen Arbeitsspeicher- und Speichermedien, wie vorstehend erörtert, beinhalten. Diese können an vielfältigen Stellen angeordnet sein, wie etwa auf einem Speichermedium, das zu einem oder mehreren der Computer lokal (und/oder darin angeordnet) ist oder von beliebigen oder allen der Computer über das Netzwerk hinweg entfernt ist. In einem bestimmten Satz von Ausführungsformen können die Informationen in einem Storage Area Network (SAN), das dem Fachmann bekannt ist, angeordnet sein. Gleichermaßen können beliebige erforderliche Dateien zum Durchführen der Funktionen, die den Computern, Servern oder anderen Netzwerkvorrichtungen zugeschrieben sind, wie jeweils angemessen lokal und/oder entfernt gespeichert sein. Wenn ein System computergestützte Vorrichtungen beinhaltet, kann jede derartige Vorrichtung Hardwareelemente beinhalten, die über einen Bus elektrisch gekoppelt sein können, wobei die Elemente zum Beispiel mindestens eine zentrale Verarbeitungseinheit (CPU), mindestens eine Eingabevorrichtung (z. B. eine Maus, eine Tastatur, einen Controller, ein berührungsempfindliches Anzeigeelement oder Tastenfeld) und mindestens eine Ausgabevorrichtung (z. B. eine Anzeigevorrichtung, einen Drucker oder einen Lautsprecher) beinhalten. Ein derartiges System kann außerdem eine oder mehrere Speichervorrichtungen beinhalten, wie etwa Plattenlaufwerke, optische Speichervorrichtungen und Solid-State-Speichervorrichtungen, wie etwa Direktzugriffsspeicher (random access memory - RAM) oder Festwertspeicher (read-only memory - ROM), sowie entfernbare Medienvorrichtungen, Speicherkarten, Flash-Karten usw.
  • Derartige Vorrichtungen können außerdem ein computerlesbares Speichermedien-Lesegerät, eine Kommunikationsvorrichtung (z. B. ein Modem, eine Netzwerkkarte (drahtlos oder drahtgebunden), eine Infrarot-Kommunikationsvorrichtung usw.) und Arbeitsspeicher beinhalten, wie vorstehend beschrieben Das computerlesbare Speichermedien-Lesegerät kann mit einem computerlesbaren Speichermedium, das entfernte, lokale, feste und/oder entfernbare Speichervorrichtungen sowie Speichermedien für vorübergehendes und/oder dauerhaftes Enthalten, Speichern, Übertragen und Abrufen von computerlesbaren Information darstellt, verbunden sein oder dazu ausgelegt sein, dieses aufzunehmen. Das System und die verschiedenen Vorrichtungen beinhalten typischerweise außerdem eine Anzahl von Softwareanwendungen, Modulen, Diensten oder anderen Elementen, die sich innerhalb von mindestens einer Arbeitsspeichervorrichtung befinden, einschließlich eines Betriebssystems und Anwendungsprogrammen, wie etwa einer Client-Anwendung oder eines Webbrowsers. Es versteht sich, dass alternative Ausführungsformen zahlreiche Variationen von den vorstehend beschriebenen aufweisen können. Zum Beispiel kann zudem angepasste Hardware verwendet werden und/oder können bestimmte Elemente in Hardware, Software (einschließlich portabler Software wie etwa Applets) oder beiden umgesetzt sein. Ferner kann eine Verbindung mit anderen Rechenvorrichtungen, wie etwa Netzwerk-Eingabe/AusgabeVorrichtungen, eingesetzt werden.
  • Speichermedien und andere nicht transitorische computerlesbare Medien zum Aufnehmen von Code oder Codeabschnitten können beliebige geeignete Medien beinhalten, die in der Technik bekannt sind oder verwendet werden, wie etwa ohne Einschränkung flüchtige und nicht flüchtige, entfernbare und nicht entfernbare Medien, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen, wie etwa computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen oder anderen Datentypen, umgesetzt sind, einschließlich RAM, ROM, EEPROM, Flash-Speicher oder anderer Speichertechnologien, CD-ROM, Digital Versatile Disk (DVD) oder anderer optischer Speicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder anderer magnetische Speichervorrichtungen oder eines beliebigen anderen Mediums, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das von einer Systemvorrichtung zugegriffen werden kann. Auf Grundlage der Offenbarung und der in dieser Schrift bereitgestellten Lehren versteht der Durchschnittsfachmann andere Möglichkeiten und/oder Verfahren zum Umsetzen der verschiedenen Ausführungsformen.
  • Die Beschreibung und die Zeichnungen sind dementsprechend in einem veranschaulichenden und nicht einschränkenden Sinne zu verstehen Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne von dem umfassenderen Wesen und Umfang der Erfindung abzuweichen, wie in den Patentansprüchen dargelegt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/261395 [0001]

Claims (20)

  1. Computerimplementiertes Verfahren, umfassend: Empfangen eines Eingabebildes, das eine Darstellung eines Zielobjekts eines unbekannter Typs, das eine erste Pose aufweist, beinhaltet; Empfangen einer Angabe eines Quellbildes, das eine Darstellung eines Quellobjekts einer Quellklasse beinhaltet, wobei das Quellobjekt des Quellbildes eine zweite Pose aufweist; Bereitstellen des Eingabebildes und des Quellbildes an ein neuronales Netz, wobei das neuronale Netz unter Verwendung von Bildern einer Vielzahl von Objektklassen, die die Quellklasse beinhalten, trainiert wird, um eine klasseninvariante Darstellung der zweiten Pose und eine klassenspezifische latente Darstellung eines Erscheinungsbildes des Zielobjekts zu extrahieren; und Ableiten eines Ausgabebildes, das das Zielobjekt in der zweiten Pose darstellt.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei das neuronale Netz ist ein generatives kontradiktorisches Netzwerk (generative adversarial network - GAN) ist, das einen konditionalen Bildgenerator und einen kontradiktorischen Diskriminator für mehrere Aufgaben beinhaltet.
  3. Computerimplementiertes Verfahren nach Anspruch 2, ferner umfassend: Extrahieren der klasseninvarianten Darstellung der zweiten Pose unter Verwendung eines Inhaltscodierers des konditionalen Bildgenerators; und Extrahieren der klassenspezifischen latenten Darstellung des Erscheinungsbildes des Zielobjekts unter Verwendung eines Klassencodierers des konditionalen Bildgenerators.
  4. Computerimplementiertes Verfahren nach Anspruch 2, ferner umfassend: Normalisieren, durch eine Normalisierungsschicht des kontradiktorischen Diskriminators für mehrere Aufgaben, von Schichtaktivierungen auf eine Verteilung mit einem Mittelwert von null und einer Varianz von eins; und Denormalisieren der normalisierten Schichtaktivierungen unter Verwendung einer affinen Transformation.
  5. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend: Durchführen von kontradiktorischem Training des neuronalen Netzes, um Posen zwischen der Vielzahl von Objektklassen zu übersetzen.
  6. Computerimplementiertes Verfahren, umfassend: Empfangen einer digitalen Darstellung eines Bildes, das ein Objekt in einer ersten Pose beinhaltet; und Ableiten, unter Verwendung eines neuronalen Netzes, eines Ausgabebildes, das das Objekt in einer zweiten Pose darstellt, wobei das neuronale Netz einen konditionalen Generator und einen kontradiktorischen Diskriminator zum Extrahieren einer klasseninvarianten Darstellung der zweiten Pose und einer klassenspezifischen Darstellung eines Erscheinungsbildes des Objekts beinhaltet.
  7. Computerimplementiertes Verfahren nach Anspruch 6, wobei das neuronale Netzwerk nicht unter Verwendung von Bildern einer Objektklasse des Objekts trainiert wurde.
  8. Computerimplementiertes Verfahren nach Anspruch 6, ferner umfassend: Durchführen von unüberwachtem Training des neuronalen Netzes unter Verwendung eines Trainingsdatensatzes, der eine Vielzahl von Bildern mehrerer Objektklassen enthält, wobei das neuronale Netz lernt, Posen zwischen den Objektklassen zu übersetzen.
  9. Computerimplementiertes Verfahren nach Anspruch 6, wobei das neuronale Netz ein generatives kontradiktorisches Netzwerk (generative adversarial network - GAN) ist.
  10. Computerimplementiertes Verfahren nach Anspruch 6, ferner umfassend: Extrahieren einer klasseninvarianten Darstellung der zweiten Pose unter Verwendung eines Inhaltscodierers des konditionalen Generators; und Extrahieren der klassenspezifischen latenten Darstellung eines Erscheinungsbildes des Zielobjekts unter Verwendung eines Klassencodierers des konditionalen Generators.
  11. Computerimplementiertes Verfahren nach Anspruch 6, ferner umfassend: Normalisieren, durch eine Normalisierungsschicht des kontradiktorischen Diskriminators, von Schichtaktivierungen auf eine Verteilung mit einem Mittelwert von null und einer Varianz von eins; und Denormalisieren der normalisierten Schichtaktivierungen unter Verwendung einer affinen Transformation.
  12. Computerimplementiertes Verfahren nach Anspruch 11, ferner umfassend: Zuführen von latentem Klassencode zu einem adaptiven Instanznorm-(AdaIN)-Decodierer, der dazu konfiguriert ist, den latenten Klassencode in einen Satz von Mittelwert- und Varianzvektoren zu decodieren, die als neue Mittelwerte und Varianzen für die jeweiligen Kanäle in einem jeweiligen AdaIN-Restblock eines Bilddecodierers des neuronale Netzes fungieren.
  13. Computerimplementiertes Verfahren nach Anspruch 6, wobei der konditionale Generator einen Inhaltscodierer beinhaltet, der eine Vielzahl von Faltungsschichten umfasst, auf die eine Vielzahl von Restblöcken folgt, und wobei der konditionale Generator einen Klassencodierer beinhaltet, der eine Vielzahl von Faltungsschichten umfasst, auf die eine durchschnittliche Pooling-Schicht folgt.
  14. Computerimplementiertes Verfahren nach Anspruch 13, ferner umfassend: Veranlassen der durchschnittlichen Pooling-Schicht, die Aktivierungen über räumliche Dimensionen zu mitteln, bevor sie Aktivierungen über einen Satz von Bildern mittelt.
  15. System, umfassend: mindestens einen Prozessor; und Speicher, der Anweisungen beinhaltet, die bei Ausführung durch den mindestens einen Prozessor das System zu Folgendem veranlassen: Empfangen einer digitalen Darstellung eines Bildes, das ein Objekt in einer ersten Pose beinhaltet; und Ableiten, unter Verwendung eines neuronalen Netzes, eines Ausgabebildes, das das Objekt in einer zweiten Pose darstellt, wobei das neuronale Netz einen konditionalen Generator und einen kontradiktorischen Diskriminator zum Extrahieren einer klasseninvarianten Darstellung der zweiten Pose und einer klassenspezifischen Darstellung eines Erscheinungsbildes des Objekts beinhaltet.
  16. System nach Anspruch 15, wobei das neuronale Netz nicht unter Verwendung von Bilder einer Objektklasse des Objekts trainiert wurde.
  17. System nach Anspruch 15, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen: Durchführen von unüberwachtem Training des neuronalen Netzes unter Verwendung eines Trainingsdatensatzes, der eine Vielzahl von Bildern verschiedener Objektklassen enthält, wobei das neuronale Netz lernt, Posen zwischen den verschiedenen Objektklassen zu übersetzen.
  18. System nach Anspruch 15, wobei das neuronale Netz ein generatives kontradiktorisches Netzwerk (GAN) ist.
  19. System nach Anspruch 15, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen: Extrahieren einer klasseninvarianten Darstellung der zweiten Pose unter Verwendung eines Inhaltscodierers des konditionalen Generators; und Extrahieren der klassenspezifischen latenten Darstellung eines Erscheinungsbildes des Zielobjekts unter Verwendung eines Klassencodierers des konditionalen Generators.
  20. System nach Anspruch 15, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen: Normalisieren, durch eine Normalisierungsschicht des kontradiktorischen Diskriminators, von Schichtaktivierungen auf eine Verteilung mit einem Mittelwert von null und einer Varianz von eins; und Denormalisieren der normalisierten Schichtaktivierungen unter Verwendung einer affinen Transformation.
DE112020000584.4T 2019-01-29 2020-01-27 Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen Pending DE112020000584T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/261,395 US20200242736A1 (en) 2019-01-29 2019-01-29 Method for few-shot unsupervised image-to-image translation
US16/261,395 2019-01-29
PCT/US2020/015262 WO2020159890A1 (en) 2019-01-29 2020-01-27 Method for few-shot unsupervised image-to-image translation

Publications (1)

Publication Number Publication Date
DE112020000584T5 true DE112020000584T5 (de) 2021-12-23

Family

ID=69726793

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000584.4T Pending DE112020000584T5 (de) 2019-01-29 2020-01-27 Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen

Country Status (5)

Country Link
US (1) US20200242736A1 (de)
CN (1) CN113366494A (de)
DE (1) DE112020000584T5 (de)
GB (2) GB2618917B (de)
WO (1) WO2020159890A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102481885B1 (ko) * 2017-09-08 2022-12-28 삼성전자주식회사 클래스 인식을 위한 뉴럴 네트워크 학습 방법 및 디바이스
US11514330B2 (en) * 2019-01-14 2022-11-29 Cambia Health Solutions, Inc. Systems and methods for continual updating of response generation by an artificial intelligence chatbot
US10902295B2 (en) * 2019-02-08 2021-01-26 Sap Se Using transformations to verify computer vision quality
US11842283B2 (en) * 2019-06-17 2023-12-12 Axell Corporation Learning method, computer program, classifier, generator, and processing system
US11531895B2 (en) * 2019-11-08 2022-12-20 Unknot Inc. Systems and methods for processing audiovisual data using latent codes from generative networks and models
US11238275B2 (en) * 2019-11-08 2022-02-01 Dst Technologies, Inc. Computer vision image feature identification via multi-label few-shot model
US11556825B2 (en) * 2019-11-26 2023-01-17 International Business Machines Corporation Data label verification using few-shot learners
CN111831813B (zh) * 2020-09-21 2021-02-05 北京百度网讯科技有限公司 对话生成方法、装置、电子设备及介质
US11762951B2 (en) * 2020-11-18 2023-09-19 Adobe Inc. Generative image congealing
US20240071050A1 (en) * 2021-02-11 2024-02-29 Carnegie Mellon University System and method for domain-agnostic bias reduction with selected sampling for few-shot learning
CN113569928B (zh) * 2021-07-13 2024-01-30 湖南工业大学 一种列车运行状态检测数据缺失处理模型及重建的方法
CN113283403B (zh) * 2021-07-21 2021-11-02 武汉大学 基于对抗学习的伪造人脸视频检测方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102403494B1 (ko) * 2017-04-27 2022-05-27 에스케이텔레콤 주식회사 생성적 대립 네트워크에 기반한 도메인 간 관계를 학습하는 방법
CN107292813B (zh) * 2017-05-17 2019-10-22 浙江大学 一种基于生成对抗网络的多姿态人脸生成方法
SG11201912745WA (en) * 2017-10-16 2020-01-30 Illumina Inc Deep learning-based splice site classification
KR102416048B1 (ko) * 2017-10-16 2022-07-04 일루미나, 인코포레이티드 변이체 분류를 위한 심층 컨볼루션 신경망
US10540757B1 (en) * 2018-03-12 2020-01-21 Amazon Technologies, Inc. Method and system for generating combined images utilizing image processing of multiple images
EP3579196A1 (de) * 2018-06-05 2019-12-11 Cristian Sminchisescu Kleidungsübertragungsverfahren, system und vorrichtung
US10810466B2 (en) * 2018-08-23 2020-10-20 Fuji Xerox Co., Ltd. Method for location inference from map images
CN111127304B (zh) * 2018-10-31 2024-02-20 微软技术许可有限责任公司 跨域图像转换
CN109753992B (zh) * 2018-12-10 2020-09-01 南京师范大学 基于条件生成对抗网络的无监督域适应图像分类方法
CN110097103A (zh) * 2019-04-22 2019-08-06 西安电子科技大学 基于生成对抗网络的半监督图像分类方法
CN115049841A (zh) * 2022-06-14 2022-09-13 西安电子科技大学 基于深度无监督多步对抗域自适应的高分辨sar图像地物要素提取方法

Also Published As

Publication number Publication date
WO2020159890A1 (en) 2020-08-06
GB202112269D0 (en) 2021-10-13
GB2618917A (en) 2023-11-22
GB2595609B (en) 2024-01-10
GB202307740D0 (en) 2023-07-05
US20200242736A1 (en) 2020-07-30
CN113366494A (zh) 2021-09-07
GB2618917B (en) 2024-03-06
GB2595609A (en) 2021-12-01

Similar Documents

Publication Publication Date Title
DE112020000584T5 (de) Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen
DE112020000688T5 (de) Kombinierte vorhersage und pfadplanung für autonome objekte unter verwendung neuronaler netze
US20190279075A1 (en) Multi-modal image translation using neural networks
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
DE112020003127T5 (de) Erweiterung von dynamischem Verarbeitungselement-Array
CN111489412A (zh) 用于使用神经网络生成基本逼真图像的语义图像合成
DE112016005006T5 (de) Automatische videozusammenfassung
DE202020101701U1 (de) Trainieren neuronaler Netze unter Verwendung von Datenvermehrungsstrategien
DE112020005610T5 (de) Identifizieren von optimalen gewichtungen zum verbessern einervorhersagegenauigkeit bei methoden für maschinelles lernen
DE202017007528U1 (de) Differenzmetrik für auf maschinellem Lernen basierende Verarbeitungssysteme
DE112011104487T5 (de) Verfahren und System zur prädiktiven Modellierung
DE112018005205T5 (de) Komprimierung von vollständig verbundenen / wiederkehrenden Schichten von einem oder mehreren tiefen Netzen durch Durchsetzen von räumlicher Lokalität für Gewichtsmatrizen und erwirken von Frequenzkomprimierung
CN112074828A (zh) 训练图像嵌入模型和文本嵌入模型
DE102021004562A1 (de) Abwandlung von Szenengraphen auf Grundlage von Befehlen in natürlicher Sprache
DE102020210352A1 (de) Verfahren und Vorrichtung zum Transferlernen zwischen modifizierten Aufgaben
DE112021002453T5 (de) Iteratives trainieren eines modells für maschinelles lernen
DE102022202017A1 (de) Konzeptbasiertes kontradiktorisches Erzeugungsverfahren mit steuerbarer und diverser Semantik
DE102022003003A1 (de) Automatische Fotobearbeitung mittels sprachlicher Anweisung
DE102021125856A1 (de) Erkennen von feindlichen angriffen auf ein tiefes neuronales netz (deep neural network (dnn))
DE112021006280T5 (de) Generieren von daten auf grundlage von vorab trainierten modellen unter verwendung generierender konkurrierender modelle
DE112021005569T5 (de) Kontradiktorisches, halbüberwachtes one-shot-lernen
DE102018127802A1 (de) Hybrider klassifikator eines gepulsten neuronalen netzwerks und einer support-vektor-maschine
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
US20220222934A1 (en) Neural network construction method and apparatus, and image processing method and apparatus
DE112016007411T5 (de) Fuzzy-eingabe für autoencoder

Legal Events

Date Code Title Description
R012 Request for examination validly filed