DE112020002822T5 - Hyperparameteroptimierungsverfahren, Programmversuchssystem und Computerprogramm - Google Patents

Hyperparameteroptimierungsverfahren, Programmversuchssystem und Computerprogramm Download PDF

Info

Publication number
DE112020002822T5
DE112020002822T5 DE112020002822.4T DE112020002822T DE112020002822T5 DE 112020002822 T5 DE112020002822 T5 DE 112020002822T5 DE 112020002822 T DE112020002822 T DE 112020002822T DE 112020002822 T5 DE112020002822 T5 DE 112020002822T5
Authority
DE
Germany
Prior art keywords
hyperparameter
program
value
description data
parameter description
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
DE112020002822.4T
Other languages
English (en)
Inventor
Shotaro Sano
Toshihiko Yanase
Takeru Ohta
Takuya Akiba
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.)
Preferred Networks Inc
Original Assignee
Preferred Networks Inc
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 Preferred Networks Inc filed Critical Preferred Networks Inc
Publication of DE112020002822T5 publication Critical patent/DE112020002822T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

Ein anwenderfreundliches Verfahren zum Optimieren eines Hyperparameters wird vorgestellt. Eine Variante der vorliegenden Beschreibung betrifft ein Verfahren zum Optimieren eines Hyperparameters, welches enthält: Gewinnen, mittels eines oder mehrerer Prozessoren, einer Programmausführungsinstruktion mit Parameterbeschreibungsdaten, die in eine Befehlsschnittstelle eingeschrieben sind, und Einstellen, mittels eines oder mehrerer Prozessoren, eines Wertes des Hyperparameters eines zu optimierenden Programmes entsprechend den Parameterbeschreibungsdaten, und Gewinnen eines Evaluationswertes bezüglich des Wertes des Hyperparameters.

Description

  • Technisches Gebiet
  • Die vorliegende Beschreibung betrifft ein Hyperparameteroptimierungsverfahren, ein Programmversuchssystem und ein Computerprogramm.
  • Stand der Technik
  • Beim Trainieren eines maschinellen Lernmodells ist die Anpassung von Hyperparametern erforderlich, wie eine Lernrate, die Batchgröße (Stapelgröße), die Anzahl der Lerniterationen, die Anzahl der Schichten eines neuronalen Netzwerkes und die Anzahl der Kanäle eines neuronalen Netzwerkes, Insbesondere werden dabei verschiedene Hyperparameterwerte gesetzt und das maschinelle Lernmodell wird gemäß den gesetzten Hyperparameterwerten trainiert.
  • Die Anpassungen der Hyperparameter beeinflussen die Genauigkeit eines trainierten tiefen Lernmodells (mehrschichtigen Lernmodells), wobei die Hyperparameter des tiefen Lernmodells zur Zeit entweder von Hand durch eine Bedienungsperson angepasst werden oder durch Ausführung eines Hyperparameter-Einstellprogrammes angepasst werden, welches durch einen Nutzer unter Verwendung einer spezifischen Programmsprache, wie Python, beschrieben ist. Hinzukommt, dass herkömmliche Hyperparameter-Einstellprogramme (siehe beispielsweise https://github.com/Epistimio/orion) nicht notwendigerweise anwenderfreundlich sind, weil es erforderlich ist, Code direkt in ein Zielprogramm (ein maschinelles Lernmodell), für welches die Hyperparameter einzustellen sind, einzuschreiben, um ein Beispiel zu nennen.
  • Kurzbeschreibung der Erfindung
  • Durch die Erfindung zu lösendes Problem
  • Die vorliegende Beschreibung stellt ein anwenderfreundlicheres Verfahren bereit für die Optimierung eines Hyperparameters.
  • Mittel zur Lösung des Problems
  • Um das vorstehend genannte Problem zu lösen, betrifft eine Variante der vorliegenden Beschreibung ein Hyperparameteroptimierungsverfahren, beinhaltend: Gewinnen, mittels eines oder mehrerer Prozessoren, einer Programmausführungsinstruktion mit Parameterbeschreibungsdaten, die in einer Befehlszeilen-Schnittstelle beschrieben sind, und Einstellen, mittels eines oder mehrerer Prozessoren, eines Wertes eines zu optimierenden Programm-Hyperparameters entsprechend den Parameterbeschreibungsdaten, und Gewinnen eines Evaluierungswertes für den Wert des Hyperparameters.
  • Figurenliste
    • 1 ist eine schematische Darstellung zur Erläuterung einer Hyperparameterkonfigurierungsvorrichtung gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung;
    • 2 erläutert schematisch Parameterbeschreibungsdaten als Beispiel gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung;
    • 3 ist ein Sequenzdiagramm zur Erläuterung eines Hyperparameterkonfigurierungsverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung;
    • 4 erläutert Parameterbeschreibungsdaten gemäß einem anderen Ausführungsbeispiel der vorliegenden Beschreibung;
    • 5 ist ein Sequenzdiagramm zur Erläuterung eines Hyperparameterkonfigurierungsverfahrens gemäß einem weiteren Ausführungsbeispiel der vorliegenden Beschreibung;
    • 6 ist ein Flussdiagramm zur Erläuterung des Hyperparameterkonfigurierungsverfahrens gemäß einem weiteren Ausführungsbeispiel der vorliegenden Beschreibung;
    • 7 erläutert Parameterbeschreibungsdaten als Beispiel gemäß einem weiteren Ausführungsbeispiel der vorliegenden Beschreibung; und
    • 8 ist ein Blockdiagramm zur Erläuterung einer Gerätekonfiguration einer Hyperparameterkonfigurierungsvorrichtung gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung.
  • Ausführungsform der Erfindung
  • Nachfolgend werden Ausführungsbeispiele der vorliegenden Beschreibung mit Bezug auf die Figuren näher erläutert. Mit den nachfolgenden Ausführungsbeispielen wird eine Hyperparameterkonfigurierungsvorrichtung (auch als Hyperparametereinstellvorrichtung zu bezeichnen) für ein Versuchszielmodell, wie ein tiefes Lernmodell (mehrschichtiges Lernmodell), beschrieben.
  • [Übersicht über die nachfolgende Beschreibung]
  • In einem Abriss beinhaltet die vorliegende Beschreibung, dass in Reaktion darauf, dass ein Nutzer eine Programmausführungsinstruktion mit Parameterbeschreibungsdaten zum Einstellen eines Hyperparameters für ein zu versuchendes Nutzerprogramm (Anwenderprogramm) in eine Befehlszeilen-Schnittstelle, wie eine Eingabeaufforderung, eine Konsole oder dergleichen, eingibt mit Darstellung auf einem Nutzerterminal, die Hyperparameterkonfigurierungsvorrichtung einen Wert des Hyperparameters in dem Nutzerprogramm (Anwenderprogramm) entsprechend den eingegebenen Parameterbeschreibungsdaten einstellt. Gemäß der vorliegenden Beschreibung überträgt der Nutzer die Programmausführungsinstruktion mit den Parameterbeschreibungsdaten des Hyperparameters aus der Befehlszeilenschnittstelle. Die Hyperparameterkonfigurierungsvorrichtung setzt den Wert des Hyperparameters des Anwenderprogramms entsprechend der Programmausführungsinstruktion einschließlich der gewonnenen Parameterbeschreibungsdaten. Dies ermöglicht dem Nutzer (Anwender), den Hyperparameter zu ermitteln, ohne dass ein Programm oder eine Datei in das Nutzerprogramm für die Einstellung des Hyperparameters geschrieben werden müsste. Weiterhin ermöglicht dies beispielsweise dem Nutzer die Suche nach einem Hyperparameter, der für das zu versuchende geschriebene Anwenderprogramm geeignet ist, unabhängig von der Art der Programmiersprache.
  • In der vorliegenden Beschreibung betrifft der Begriff „Hyperparameter“ einen Parameter, welcher das Verhalten eines maschinellen Lernalgorithmus steuert.
  • Insbesondere dann, wenn das maschinelle Lernmodell ein tiefes Lernmodell ist, betrifft der Hyperparameter einen Parameter, der nicht mit dem Gradientenverfahren, wie einer Lernrate, der Batchgröße, und der Anzahl der Lerniterationen optimiert werden kann. Weiterhin beinhaltet die Hyperparameteroptimierung, über die Evaluierung eines Wertes des Hyperparameters hinaus, eine Verbesserung (Auswahl eines vorzuziehenden Wertes) und eine Optimierung. Dabei zeigt die Evaluierung des Wertes des Hyperparameters, dass ein Anwenderprogramm ausgeführt wird unter Verwendung des Wertes des Hyperparameters und so wird ein Evaluierungswert gewonnen.
  • [Beispiel für eine Hyperparameterkonfigurierungsvorrichtung]
  • Zunächst soll eine Hyperparameterkonfigurierungsvorrichtung gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung mit Blick auf die 1 bis 3 beschrieben werden. 1 zeigt schematisch die Hyperparameterkonfigurierungsvorrichtung gemäß dem Ausführungsbeispiel der vorliegenden Beschreibung.
  • Entsprechend 1 enthält ein Programmversuchssystem 10 eine Hyperparameterkonfigurierungsvorrichtung 100, eine Programmversuchsvorrichtung 200 und eine Datenbasis 250 und sie ist an ein Nutzerendgerät 50 angeschlossen.
  • Gewinnt das Programmversuchssystem 10 beispielsweise Parameterbeschreibungsdaten zusammen mit einem zu versuchenden Nutzerprogramm (beispielsweise ein tiefes Lernmodell) über das Nutzerendgerät 50, ermittelt das Programmversuchssystem 10 einen Wert des Hyperparameters und stellt diesen ein für den Versuch mit dem Nutzerprogramm entsprechend den gewonnenen Parameterbeschreibungsdaten und der Programmausführungsinstruktion und es erfolgt der Versuch mit dem Nutzerprogramm entsprechend dem ermittelten Wert des Hyperparameters. Nach dem Versuch mit dem Nutzerprogramm auf Basis des ermittelten Wertes des Hyperparameters bestimmt das Programmversuchssystem 10 einen folgenden Wert des Hyperparameters entsprechend einem Ergebnis des Versuches und es wird der Versuch wiederholt, bis eine Beendigungsbedingung erfüllt ist. Bei Erfüllung einer vorgegebenen Beendigungsbedingung, wie der Durchführung einer seitens des Nutzers festgelegten Anzahl von Versuchen, ermittelt das Programmversuchssystem 10 einen Optimalwert des Hyperparameters für das Nutzerprogramm auf Basis eines Ergebnisses der Versuche, die unter Einsatz verschiedener Werte des Hyperparameters ausgeführt werden. Ist das Nutzerprogramm beispielsweise ein tiefes Lernmodell, dann wird ein tiefes Lernmodell, welches mit einem Optimalwert des Hyperparameters trainiert ist, eingesetzt für anschließende Klassifikationen, Vorhersagen und dergleichen. In der vorliegenden Beschreibung betrifft der Begriff „optimal“ eine Annäherung an einen optimalen Zustand und bedeutet nicht eine Einschränkung auf genau den optimalen Wert oder Zustand. Entsprechend bedeutet der Begriff „Optimum“ nicht notwendig streng einen Optimalwert,
  • Beim dargestellten Ausführungsbeispiel enthält das Programmversuchssystem 10 drei körperlich getrennte Einrichtungen, die Hyperparameterkonfigurierungsvorrichtung 100, die Programmversuchseinrichtung 200 und die Datenbasis 250, jedoch ist das Programmversuchssystem 10 entsprechend der vorliegenden Beschreibung nicht auf diese Struktur eingeschränkt und kann auch mit einer einzigen Vorrichtung implementiert sein, welche die Funktionen ausführt, die durch die Hyperparameterkonfigurierungsvorrichtung 100, die Programmversuchseinrichtung 200 und die Datenbasis 250 vorgegeben sind. Auch kann das Programmversuchssystem 10 entsprechend der vorliegenden Beschreibung implementiert sein mit einem oder mit mehreren Prozessoren und einem oder mit mehreren Speichern.
  • Das Nutzerendgerät 50 ist beispielsweise eine Recheneinrichtung, wie ein Personalcomputer, ein Tablet oder dergleichen. Der Nutzer erzeugt und speichert ein Nutzerprogramm, in dem ein Versuchszielmodell, wie ein maschinelles Lernmodell oder ein tiefer Lernmodell, welche zu trainieren sind, unter Einsatz des Nutzerendgerätes 50 eingeschrieben ist und es erfolgt eine Übertragung des Nutzerprogrammes zur Hyperparameterkonfigurierungsvorrichtung 100 des Programmversuchssystems 10.
  • Das Nutzerendgerät 50 liefert der Hyperparameterkonfigurierungsvorrichtung 100 auch eine Programmausführungsinstruktion einschließlich Parameterbeschreibungsdaten zur Spezifizierung eines im Nutzerprogramm einzusetzenden Hyperparameters. Insbesondere gibt der Nutzer zum Starten der Hyperparameterkonfigurierungsvorrichtung 100 eine Befehlszeile ein auf einer Befehlszeilenschnittstelle, wie einer Eingabeaufforderung oder auf einer Konsole, mit Anzeige auf dem Nutzerendgerät 50 und weiterhin erfolgt eine Eingabe einer Programmausführungsinstruktion einschließlich der Parameterbeschreibungsdaten für die Einstellung verschiedener Hyperparameter als eine Option bei dem Befehl.
  • Beispielsweise beginnt gemäß 2 der Nutzer zunächst mit dem Start der Hyperparameterkonfigurierungsvorrichtung 100 und er gibt ‟optunash run -n 100 --„ über die Befehlszeilen-Schnittstelle auf dem Nutzerendgerät 50 ein und er spezifiziert die Ausführung eines Hyperparameterkonfigurierungsprogramms (beim Beispiel gemäß 2 „optunash“) sowie die Anzahl der durch die Ausführung des Nutzerprogramms auszuführenden Versuche auf 100. Weiterhin gibt der Nutzer die Programmausführungsinstruktion mit den Parameterbeschreibungsdaten ein.
  • Beispielsweise gibt der Nutzer zunächst das Nutzerprogramm „nn-train“ ein, welches zu versuchen ist. Sodann spezifiziert der Nutzer beispielsweise die Lernrate „--learning-rate“ und die Anzahl der Schichten „--num_layers“ als Parameterbeschreibungsdaten. Insbesondere können die Parameterbeschreibungsdaten einen Einstellbereich des Hyperparameters über einen Verteilungsidentifizierer und einen Bereichsspezifikationswert definieren.
  • Der Nutzer gibt „--learning_rate={{uniform, 0.01, 0.1}}“ als Option für den Befehl als Lernrate ein. Entsprechend „--learning_rate={uniform, 0.01, 0,1}}“, bedeutet „uniform“ einen Verteilungsidentifizierer, der eine gleichförmige Verteilung angibt. Der Bereichsspezifikationswert „0.01“ und „0.1“ bedeutet einen Einstellbereich von „0.01“ bis „0.1“ und die Eingabe „--learning_rate={{uniform, 0.01, 0.1}“ bedeutet, dass die Lernrate ausgewählt wird mit einer gleichförmigen Verteilung im Einstellbereich von „0.01“ bis „0.1“.
  • Der Nutzer gibt weiterhin „---num_layers={int, 2, 8}“ für die Anzahl der Schichten ein. Gemäß „---num_layers={int, 2, 8}“ ist „int“ ein Verteilungsidentifizierer, der angibt, dass ein Auswahlziel nur eine ganze Zahl ist, während die Bereichsspezifikationswerte „2“ und „8“ einen Einstellbereich angeben von „2“ bis „8“, und „--num_layers={{int, 2, 8}“ bedeutet, dass die Anzahl der Schichten im Einstellbereich von „2“ bis „8“ ausgewählt wird.
  • Der Verteilungsidentifizierer ist nicht auf das Obige eingeschränkt. Beispielsweise können der Verteilungsidentifizierer „loguniform“, der eine logarithmische gleichförmige Verteilung angibt, der Verteilungsidentifizierer „discrete-uniform“, der eine gleichförmige Verteilung angibt, die durch einen speziellen Quantisierungsschritt ausgewählt ist, der Verteilungsidentifizierer „categorical“, der ein auszuwählendes Element angibt, oder dergleichen eingesetzt werden.
  • Es werden die Parameterbeschreibungsdaten, welche einen Einstellbereich des Hyperparameters mit dem Verteilungsidentifizierer und dem Bereichspezifizierungswert definieren, über die Befehlszeilen-Schnittstelle am Nutzerendgerät 50 eingegeben und über beispielsweise das Drücken einer Rück-Taste zur Hyperparameterkonfigurierungsvorrichtung 100 übertragen.
  • Die Hyperparameterkonfigurierungsvorrichtung 100 enthält eine Schnittstelleneinheit 110 und eine Hyperparameterkonfigurierungseinheit 120.
  • Die Schnittstelleneinheit 110 gewinnt die Programmausführungsinstruktion mit den Parameterbeschreibungsdaten zum Einstellen des Hyperparameters des Programmes, welches in der Befehlszeilen-Schnittstelle beschrieben ist. Entsprechend 1 werden beispielsweise die Programmausführungsinstruktionen mit dem Nutzerprogramm und den Parameterbeschreibungsdaten vom Nutzerendgerät 50 zur Hyperparameterkonfigurierungsvorrichtung 100 übertragen und mit der Schnittstelleneinheit 110 empfangen. Die Schnittstelleneinheit 110 gibt die empfangenen Programmausführungsinstruktionen mit dem Nutzerprogramm und den Parameterbeschreibungsdaten an die Programmversuchseinrichtung 200 und die Hyperparameterkonfigurierungseinheit 120.
  • Gewinnt beispielsweise die Schnittstelleneinheit 110 die Programmausführungsinstruktionen mit den Parameterbeschreibungsdaten verschiedener Hyperparameter entsprechend der Eingabe über die Befehlszeilen-Schnittstelle des Nutzerendgerätes 50, dann wandelt die Schnittstelleneinheit 110 die Parameterbeschreibungsdaten in den gewonnenen Programmausführungsinstruktionen in ein Datenformat, welches durch die Hyperparameterkonfigurierungseinheit 120 verarbeitet werden kann, und die gewandelten Parameterbeschreibungsdaten werden an die Hyperparameterkonfigurierungseinheit 120 gegeben.
  • Im Einzelnen: Die Schnittstelleneinheit 110 analysiert (parst) die gewonnenen Programmausführungsinstruktionen mit den Parameterbeschreibungsdaten und extrahiert einen spezifischen Musterabschnitt, wie „{{string}}“. Beim spezifischen Beispiel der Parameterbeschreibungsdaten gemäß 2 detektiert die Schnittstelleneinheit 110 zunächst „--leaming_rate={{uniform, 0.01, 0.1}}“ als spezifisches Muster aus den gewonnenen Parameterbeschreibungsdaten und sodann verwendet die Schnittstelleneinheit 110 die erste Größe „uniform“ als Verteilungsidentifizierer und extrahiert die zweiten und dritten Größen, also „0.01“ und „0.1“, als die Bereichsspezifikationswerte. Nach Extraktion des spezifischen Musterabschnittes spezifiziert die Schnittstelleneinheit 110 eine Parameteranforderung entsprechend dem extrahierten Verteilungsidentifizierer durch Bezugnahme auf eine entsprechende Tabelle oder dergleichen, die vorab vorgehalten ist, und stellt den extrahierten Bereichspezifikationswert als Argument in die spezifische Parameteranforderung.
  • Nachfolgend wird beispielhaft eine Ausführung näher beschrieben, bei der die Hyperparameteroptimierungssoftware Optuna (https://optuna.org/) in der Hyperparameterkonfigurierungseinheit 120 eingesetzt wird. Die Schnittstelleneinheit 110 kann „--learning_rate={ {uniform, 0.01, 0.1}}“ umwandeln in eine Parameteranforderung „trial.suggest-uniform(‚learning-rate‘, 0.01.0.1)“ wie Suggest API. Die Schnittstelleneinheit 110 überträgt die gewandelte Parameteranforderung an die Hyperparameterkonfigurierungseinheit 120. Anschließend führt die Schnittstelleneinheit 110 im Wesentlichen den gleichen Prozess aus für „--num_layers={int, 2, 8}“.
  • Die Hyperparameterkonfigurierungseinheit 120 stellt den Wert des Hyperparameters in dem Programm entsprechend den Parameterbeschreibungsdaten ein. Im Einzelnen: wenn entsprechend 1 die Parameterbeschreibungsdaten von der Schnittstelleneinheit 110 gewonnen sind, ermittelt die Hyperparameterkonfigurierungseinheit 120 den Wert des Hyperparameters in Bezug auf das Nutzerprogramm entsprechend den gewonnenen Parameterbeschreibungsdaten und führt den ermittelten Wert des Hyperparameters zur Schnittstelleneinheit 110 zurück.
  • Beispielsweise kann der Wert des Hyperparameters ausgewählt werden entsprechend dem Verteilungsidentifizierer und dem Bereichspezifikationswert der Parameteranforderung, die von der Schnittstelleneinheit 110 erhalten sind. Wird die Parameteranforderung „trial.suggAst-uniform(‚learning-rate‘, 0.01.0.1)“, wie oben beschrieben, empfangen, kann die Hyperparameterkonfigurierungseinheit 120 willkürlich den Wert des Hyperparameters setzen entsprechend der gleichförmigen Verteilung im Bereich „0.01“ bis „0.1“. Die Werte des Hyperparameters können auch gesetzt werden durch Verwendung einer Bayesian Optimierung, mit Gauss-Annahmen, einer Software für eine Hyperparameteroptimierung und dergleichen. Die Hyperparameterkonfigurierungseinheit 120 kann den gesetzten Wert des Hyperparameters in der Datenbasis 250 ablegen.
  • Wenn der Wert des durch die Hyperparameterkonfigurierungseinheit 120 gesetzten Hyperparameters gewonnen ist, gibt die Schnittstelleneinheit 110 den gewonnenen Wert des Hyperparameters zur Programmversuchseinrichtung 200 und instruiert die Programmversuchseinrichtung 200 zum Ausführen des Nutzerprogrammes mit dem Wert des Hyperparameters. Beträgt beispielsweise die learning-rate 0.02 und gilt num_layers=3, dann werden die entsprechenden Parameterbeschreibungsdaten ersetzt zum Erzeugen eines Ausführungsbefehls (command) „nn-train --learning_rate=0.02 --num_layers=3“ und der Ausführungsbefehl wird ausgeführt. In ähnlicher Weise wird dann, wenn die learning_rate 0.07 beträgt und num_layers=6, ein Ausführungsbefehl (command) „nn-train -- earning--rate=0.07 --num_layers=6“ erzeugt und ausgeführt. Nachdem das Nutzerprogramm ausgeführt ist mit dem spezifischen Wert des Hyperparameters, gewinnt die Schnittstelleneinheit 110 ein Versuchsergebnis von der Programmversuchseinrichtung 200.
  • Ist das Nutzerprogramm beispielsweise ein tiefes Lernmodell, welches zu trainieren ist, instruiert die Schnittstelleneinheit 110 die Programmversuchseinrichtung 200 zum Trainieren des tiefen Lernmodells mit dem Wert des Hyperparameters, welcher durch die Hyperparameterkonfigurierungseinheit 120 gesetzt ist. Die Programmversuchseinrichtung 200 verwendet beispielsweise Trainingsdaten, die im Voraus angefertigt sind, oder dergleichen, um das tiefe Lernmodell gemäß dem spezifizierten Wert des Hyperparameters zu trainieren, und zur Schnittstelleneinheit 110 wird ein Versuchsergebnis zurückgegeben einschließlich evaluierter Werte, wie der Genauigkeit, der Ausführungszeit und des Ausmaßes des Fortschrittes des trainierten tiefen Lernmodells.
  • Das Versuchsergebnis kann festgehalten werden als eine Standardausgabe (stdout) oder als Datei. Die Schnittstelleneinheit 110 gewinnt die Evaluierungswerte, wie die Genauigkeit, die Ausführungszeit und das Ausmaß des Fortschrittes des trainierten Lernmodells, aus dem Versuchsergebnis, welches gewonnen ist als Standardausgabe oder als Datei. Wird beispielsweise das Versuchsergebnis gewonnen als Standardausgabe unter Einsatz einer Funktion, die eine Eingangszeichenkette (string) empfängt und ein Versuchsergebnis extrahiert, dann kann der Evaluierungswert ein Wert sein, der gewonnen wird durch Lesen der letzten Zeile der Eingangszeichenkette und Wandlung der gelesenen Zeile in einen Gleitkommawert. Allerdings ist die Extraktion des Evaluierungswertes nicht hierauf beschränkt und anstelle einer Auslesung der letzten Zeile können die Evaluierungswerte auch gewonnen werden unter Einsatz einer Musteranpassung (match), wie mit einem regulären Ausdruck. Andererseits kann ein Muster für den Evaluierungswert auch durch ein Argument spezifiziert werden.
  • Ist das Versuchsergebnis von der Programmversuchseinrichtung 200 gewonnen, gibt die Schnittstelleneinheit 110 das gewonnene Versuchsergebnis zur Hyperparameterkonfigurierungseinheit 120. Die Hyperparameterkonfigurierungseinheit 120 speichert das gewonnene Versuchsergebnis in der Datenbasis 250 in Verknüpfung mit dem eingesetzten Wert des Hyperparameters. Anschließend stellt die Hyperparameterkonfigurierungseinheit 120 einen nächsten Wert des Hyperparameters entsprechend der gleichförmigen Verteilung im Einstellbereich von „0.01“ bis „0.1“ ein und überträgt den gesetzten Wert zur Schnittstelleneinheit 110. Das Nutzerprogramm wird in der Programmversuchseinrichtung 200 entsprechend der spezifizierten Anzahl der Versuche mit dem Wert des Hyperparameters, der eingestellt ist, erneut ausgeführt, wie oben beschrieben.
  • Die Programmversuchseinrichtung 200 ist beispielsweise eine Recheneinrichtung, wie ein Server, welcher ein Nutzerprogramm, welches Versuchen zu unterziehen ist, ausführt, wie beispielsweise ein tiefes Lernmodell. Beim dargestellten Ausführungsbeispiel ist die Programmversuchseinrichtung 200 gezeigt als eine Recheneinrichtung, getrennt von der Hyperparameterkonfigurierungsvorrichtung 100. Jedoch ist der Gegenstand der vorliegenden Beschreibung nicht auf eine solche Anordnung beschränkt und die Programmversuchseinrichtung 200 kann beispielsweise implementiert sein in derselben Recheneinrichtung wie die Hyperparameterkonfigurierungsvorrichtung 100.
  • Die Datenbasis 250 speichert das Versuchsergebnis bezüglich des Nutzerprogramms, welches gemäß dem Wert des Hyperparameters zu trainieren ist, der durch die Hyperparameterkonfigurierungseinheit 120 gesetzt ist. Beispielsweise kann nach einer vorgegebenen Anzahl von Ausführungen von Versuchen mit dem Nutzerprogramm der Nutzer das Versuchsergebnis einschließlich des Evaluationswertes gemäß Speicherung in der Datenbasis 250 gewinnen und den optimalen Wert des Hyperparameters aus den Versuchsergebnissen bestimmen, die gewonnen wurden durch Einsatz der Werte der verschiedenen Hyperparameter.
  • 3 ist ein Sequenzdiagramm zur Erläuterung eines Hyperparameterkonfigurierungsverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung. Beispielsweise kann der Hyperparameterkonfigurierungsprozess eingeleitet werden durch die Hyperparameterkonfigurierungsvorrichtung 100, die einen Hyperparameterkonfigurierungsprozess über das Nutzerendgerät 50 startet.
  • Entsprechend 3 liefert in Schritt S101 das Nutzerendgerät 50 der Schnittstelleneinheit 110 das Nutzerprogramm, welches mit Versuchen zu trainieren ist (beispielsweise ein tiefes Lernmodell, welches zu trainieren ist, oder dergleichen) und weiterhin liefert das Nutzerendgerät die Programmausführungsinstruktion einschließlich der Parameterbeschreibungsdaten des Hyperparameters, die in den Versuchen mit dem Nutzerprogramm einzusetzen sind. Insbesondere verwendet beispielsweise der Nutzer das Nutzerendgerät 50 zum Übertragen des Nutzerprogrammes, welches den Versuchen zugrunde gelegt wird, an die Hyperparameterkonfigurierungsvorrichtung 100 und es erfolgt eine Übertragung der Programmausführungsinstruktion mit den Parameterbeschreibungsdaten, welche den Hyperparameter spezifizieren, der in den Versuchen bezüglich des Nutzerprogrammes eingesetzt wird, über die Befehlszeilen-Schnittstelle des Nutzerendgerätes 50 zu der Hyperparameterkonfigurierungsvorrichtung 100.
  • In Schritt S102 erzeugt die Schnittstelleneinheit 110 eine Parameteranforderung auf Basis der Parameterbeschreibungsdaten, die vom Nutzerendgerät 50 gewonnen sind, und überträgt die erzeugte Parameteranforderung an die Hyperparameterkonfigurierungseinheit 120.
  • In Schritt S103 ermittelt die Hyperparameterkonfigurierungseinheit 120 den Wert des Hyperparameters für den Versuch bezüglich des Nutzerprogramms entsprechend der gewonnenen Parameteranforderung. Ist die gewonnene Parameteranforderung beispielsweise „trial.suggest_uniform(‚learning_rate‘, 0.01.0.1)“, wählt die Hyperparameterkonfigurierungseinheit 120 einen Wert der Lernrate aus entsprechend der gleichförmigen Verteilung im Bereich von „0.01“ bis „0.1“.
  • In Schritt S104 führt die Hyperparameterkonfigurierungseinheit 120 den ermittelten Wert des Hyperparameters zur Schnittstelleneinheit 110 zurück.
  • In Schritt S105 erzeugt die Schnittstelleneinheit 110 eine Programmausführungsinstruktion, in welcher die Parameterbeschreibungsdaten ersetzt werden durch den Wert des Hyperparameters, überträgt das Nutzerprogramm, welches mit Versuchen zu optimieren ist, und die Programmausführungsinstruktion, die durch den gesetzten Wert ersetzt ist, zur Programmversuchseinrichtung 200 und instruiert die Programmversuchseinrichtung 200 zum Versuch des Nutzerprogramms gemäß dem Wert des Hyperparameters.
  • In Schritt S106 führt die Programmversuchseinrichtung 200 das Nutzerprogramm mit dem gewonnenen Wert des Hyperparameters entsprechend der Versuchsinstruktion von der Schnittstelleneinheit 110 aus. Handelt es sich beispielsweise bei dem Nutzerprogramm um ein tiefes Lernmodell, trainiert die Programmversuchseinrichtung 200 das tiefe Lernmodell gemäß dem Wert des Hyperparameters, wie er durch die Hyperparameterkonfigurierungseinheit 120 gesetzt ist und evaluiert die Genauigkeit, die Ausführungszeit, das Ausmaß des Fortschritts und dergleichen bezüglich des tiefen Lernmodells, welches gemäß dem Wert des Hyperparameters trainiert wurde.
  • In Schritt S107 führt die Programmversuchseinrichtung 200 das Versuchsergebnis einschließlich der Evaluierungsergebnisse bezüglich Genauigkeit, Ausführungszeit und Ausmaß des Fortschrittes und dergleichen zur Schnittstelleneinheit 110 zurück.
  • In Schritt S108 extrahiert die Schnittstelleneinheit 110 die Evaluierungsergebnisse aus dem gewonnenen Versuchsergebnis und liefert der Hyperparameterkonfigurierungseinheit 120 die extrahierten Evaluierungsergebnisse.
  • In Schritt S109 speichert die Hyperparameterkonfigurierungseinheit 120 das gewonnene Versuchsergebnis in der Datenbasis 250 und stellt den Wert des Hyperparameters, der dem nächsten Versuch zugrunde gelegt werden soll, ein, falls die Anzahl der Versuche noch nicht eine vorgegebene Zahl erreicht hat. Die Schritte S104-S109 werden sodann wiederholt, bis die Anzahl der Versuche die vorgegebene Zahl erreicht.
  • Erreicht die Anzahl der Versuche die vorgegebene Zahl, liefert in Schritt S110 die Schnittstelleneinheit 110 dem Nutzerendgerät 50 das Versuchsergebnis, welches als Endergebnis gewonnen worden ist.
  • [Ein weiteres Ausführungsbeispiel der Hyperparameterkonfigurierungseinrichtung]
  • Nunmehr wird eine Hyperparameterkonfigurierungseinrichtung gemäß einem weiteren Ausführungsbeispiel der vorliegenden Beschreibung näher mit Blick auf 4 beschrieben. Beim obigen Ausführungsbeispiel werden verschiedene Typen von Hyperparameterwerten, wie die Lernrate und die Anzahl der Schichten, unabhängig voneinander bestimmt (das sogenannte „Define-and-run“-Verfahren), jedoch werden beim nunmehr beschriebenen Ausführungsbeispiel die Hyperparameterwerte eingestellt mit den sogenannten „Define-by-run“-Verfahren (Bestimmung beim Ablauf). Das heißt: sind mehrere Typen von Hyperparametern gesetzt, wird in Abhängigkeit von einem Wert eines bereits gesetzten Hyperparameters der Wert eines weiteren Hyperparameters gesetzt.
  • Beispielsweise spezifiziert gemäß 4 der Nutzer die Anzahl der Schichten mit „-n_layer5={int, 1, 8}“ und die Anzahl der verborgenen Schichten „--n_hidden={int, 1, 1024/n-layers}“ als Parameterbeschreibungsdaten über die Befehlszeilen-Schnittstelle .
  • Der Nutzer spezifiziert die Anzahl der Schichten auf Basis des Verteilungsidentifizierers „int“ und des Einstellbereichs von „1“ bis „8“. Sodann spezifiziert der Nutzer die Anzahl der verborgenen Schichten auf Basis des Verteilungsidentifizierers „int“ und des Einstellbereichs von „1“ bis „1024/n_layers“, Das heißt: der Einstellbereich der Anzahl verborgener Schichten wird eingestellt in Abhängigkeit von einem Wert der Anzahl der Schichten „n_layers“, welcher bereits eingestellt ist. Wie beschrieben, wird entsprechend den Parameterbeschreibungsdaten gemäß dem vorliegenden Ausführungsbeispiel der Wert der Anzahl der Schichten „n_layers“ zunächst in der Reihenfolge entsprechend der Befehlszeilen-Schnittstelle festgelegt und ein Paar der Hyperparameter „n-layers“ sowie der ermittelte Wert werden abgespeichert. Sodann wird beim Bestimmen des Einstellbereiches der Anzahl der verborgenen Schichten „n_hidden“ entsprechend „--n_hidden={int, 1, 1024/n_hidden“}" der Einstellbereich der Anzahl der verborgenen Schichten „n_hidden“ festgelegt in Abhängigkeit von dem gespeicherten Wert entsprechend der Anzahl von Schichten „n_layers“. Beispielsweise wird bei dem ausgewählten Beispiel nach 4 dann, wenn „n_layers“ auf „2“ gesetzt ist, ein Paar aus „n-layers“ und „2“ abgespeichert und verwendet zum Bestimmen von „n_hidden“. Wird „n_layers“ auf „7“ gesetzt, dann wird ein Paar aus „n-layers“ und „7“ abgespeichert und zum Bestimmen von „n_hidden“ verwendet. Das heißt: der Wert des Hyperparameters kann mit dem „Define-by-run“-Verfahren („Bestimmungbeim-Ablauf'-Verfahren) gesetzt werden, bei dem der Wert eines Hyperparameters gesetzt wird in Abhängigkeit von dem eingestellten Wert eines anderen Hyperparameters.
  • Gilt beispielsweise n_layers gleich 2 und gilt n_hidden gleich 16, dann werden die entsprechenden Parameterbeschreibungsdaten ersetzt zum Erzeugen einer Ausführungsinstruktion (Befehl) „nn-train --n_layers=2 --n_hidden= 16“ und die so erzeugte Ausführungsinstruktion wird ausgeführt. Gilt entsprechend n_layers gleich 7 und n_hidden gleich 25, dann wird eine Ausführungsinstruktion (Befehl) „nn-train -n_layers=7 --n_hidden=25“ erzeugt und die erzeugte Ausführungsinstruktion wird ausgeführt.
  • Sind die Parameterbeschreibungsdaten, für welche der Wert des Hyperparameters eingestellt ist mit dem Define-by-run-Verfahren, über das Nutzerendgerät 50 gewonnen, ermittelt und speichert die Hyperparameterkonfigurierungseinheit 120 die Werte der Hyperparameter in der Abfolge, wie sie in den gewonnenen Parameterbeschreibungsdaten gegeben ist, und bestimmt einen Wert eines weiteren Hyperparameters in Abhängigkeit von einem Wert des Hyperparameters, der bereits ermittelt und gespeichert worden ist.
  • [Weiteres Ausführungsbeispiel der Hyperparameterkonfigurierungsvorrichtung]
  • Nunmehr wird eine Hyperparameterkonfigurierungsvorrichtung gemäß einem weiteren Ausführungsbeispiel der vorliegenden Beschreibung mit Blick auf 5 näher beschrieben. Beim oben beschriebenen Ausführungsbeispiel wird das Nutzerprogramm um eine Anzahl ausgeführt, die durch den Nutzer festgelegt ist. Beim vorliegenden Ausführungsbeispiel hingegen wird das Training des Nutzerprogramms früh beendet entsprechend einer Zwischenevaluation des Versuchsergebnisses. Das heißt: die Versuche bezüglich des Nutzerprogrammes werden beendet auf Basis eines Zwischenergebnisses der Versuche bezüglich des Nutzerprogrammes, welches den Versuchen unterzogen wird, gemäß einem eingestellten Wert des Hyperparameters. 5 ist ein Sequenzdiagramm zur Erläuterung eines Hyperparameterkonfigurierungsverfahrens gemäß dem weiteren Ausführungsbeispiel der vorliegenden Beschreibung.
  • Entsprechend 5 wird in Schritt S201 vom Nutzerendgerät 50 das den Versuchen zu unterziehende Nutzerprogramm der Schnittstelleneinheit 110 zugeführt (beispielsweise ein tiefes Lernmodell, welches zu trainieren ist) und es werden auch Parameterbeschreibungsdaten des Hyperparameters übermittelt, der beim ersten Versuch bezüglich des Nutzerprogrammes eingesetzt wird.
  • In Schritt S202 erzeugt die Schnittstelleneinheit 110 die Parameteranforderung auf Basis der Parameterbeschreibungsdaten, wie sie vom Nutzerendgerät 50 empfangen sind, und überträgt die erzeugte Parameteranforderung an die Hyperparameterkonfigurierungseinheit 120.
  • In Schritt S203 ermittelt die Hyperparameterkonfigurierungseinheit 120 den Wert des Hyperparameters für den Versuch mit dem Nutzerprogramm auf Basis der gewonnenen Parameteranforderung.
  • In Schritt S204 führt die Hyperparameterkonfigurierungseinheit 120 den ermittelten Wert des Hyperparameters zur Schnittstelleneinheit 110 zurück.
  • In Schritt S205 überträgt die Schnittstelleneinheit 110 das dem Versuch zu unterziehende Nutzerprogramm und den gewonnenen Wert des Hyperparameters zu der Programmversuchseinrichtung 200 und instruiert die Programmversuchseinrichtung 200, das Nutzerprogramm mit dem Wert des Hyperparameters einem Versuch zu unterziehen.
  • In Schritt S206 führt die Programmversuchseinrichtung 200 das Nutzerprogramm mit dem gewonnenen Wert des Hyperparameters entsprechend der Versuchsinstruktion von der Schnittstelleneinheit 110 aus. Ist das Nutzerprogramm beispielsweise ein tiefes Lernmodell, trainiert die Programmversuchseinrichtung 200 das tiefe Lernmodell über mehrere Epochen, die mit dem Wert des Hyperparameters ausgeführt werden, welcher durch die Hyperparameterkonfigurierungseinheit 120 gesetzt ist, und es werden die Evaluationswerte, wie die Genauigkeit, die Ausführungszeit, das Ausmaß des Fortschrittes und dergleichen bezüglich des tiefen Lernmodells ausgegeben, welches mit dem Wert des Hyperparameters trainiert ist, als ein Versuchszwischenergebnis, beispielsweise am Ende jeder Epoche.
  • In Schritt S207 führt die Programmversuchseinrichtung 200 das Evaluationsergebnis für jede Epoche als Zwischenversuchsergebnis zur Schnittstelleneinheit 110 zurück.
  • In Schritt S208 liefert die Schnittstelleneinheit 110 der Hyperparameterkonfigurierungseinheit 120 das gewonnene Versuchszwischenergebnis.
  • In Schritt S209 kann die Hyperparameterkonfigurierungseinheit 120 das Versuchszwischenergebnis evaluieren (eine Zwischenevaluierung ausführen) bezüglich jeder Epoche, in der das Nutzerprogramm ausgeführt wurde, wobei das Versuchszwischenergebnis vor der normalen Trainingsbeendigung gewonnen ist, und es kann die Ausführung des Nutzerprogrammes beendet werden früher als im Normalfall auf Basis des Versuchszwischenergebnisses. Beispielsweise kann die Hyperparameterkonfigurierungseinheit 120 festlegen, das weitere Training des Nutzerprogrammes zu beenden auf Basis eines Zwischenevaluierungswertes mit einem oder mit mehreren Versuchszwischenergebnissen bezüglich Genauigkeit, Ausführungszeit und Ausmaß des Fortschrittes.
  • Das Versuchszwischenergebnis der Zwischenevaluierung, die eingesetzt wird für eine frühe Beendigung, kann verschieden sein von dem Versuchsergebnis bezüglich des Endergebnisses, wie es dem Benutzer mitgeteilt wird. Beispielsweise kann die Hyperparameterkonfigurierungseinheit 120 die weitere Ausführung des Trainings auf Basis eines Ausmaßes des Fortschrittes beenden und die Schnittstelleneinheit 110 kann dem Nutzerendgerät 50 die Ausführungszeit als Endergebnis mitteilen.
  • Wird in Schritt S210 ermittelt, dass das Nutzerprogramm früh beendet werden sollte, überträgt die Hyperparameterkonfigurierungseinheit 120 eine Instruktion zur frühen Beendigung an die Programmversuchseinrichtung 200 und die Schnittstelleneinheit 110 zum Beenden der Ausführung des Nutzerprogrammes. Erreicht die Anzahl der Versuche nicht die vorgegebene Anzahl in Schritt S211, wird der Wert des Hyperparameters, der im nächsten Versuch anzuwenden ist, gesetzt. Dabei können die Informationen bezüglich der Zwischenevaluierung in der Datenbasis 250 nach Bedarf abgespeichert werden.
  • Wird nicht festgelegt, dass eine frühe Beendigung durchgeführt werden soll, setzt die Programmversuchseinrichtung 200 die Ausführung des Nutzerprogrammes fort und geht zu Schritt S207 zurück, um der Schnittstelleneinheit 110 das Versuchszwischenergebnis der nächsten Epoche zuzuführen. Anschließend wiederholt das Verfahren den oben beschriebenen Prozess, solange die Bedingung für eine frühe Beendigung nicht erfüllt ist und bis die Bedingung für eine vollständige Beendigung, wie eine Ausführung einer vorgegebenen Anzahl von Epochen erfüllt ist.
  • In Schritt S211 speichert die Hyperparameterkonfigurierungseinheit 120 das gewonnene Versuchsergebnis in der Datenbasis 250 und setzt den Wert des Hyperparameters, der im nächsten Versuch eingesetzt wird, wenn die Anzahl der Versuche noch nicht die vorgegebene Zahl erreicht hat.
  • Anschließend werden die Schritte S204 bis S211 wiederholt, bis die Anzahl der Versuche die vorgegebene Anzahl erreicht hat.
  • Hat die Anzahl der Versuche die vorgegebene Anzahl in Schritt S212 erreicht, überführt die Schnittstelleneinheit 110 das Versuchsergebnis, welches als Endergebnis gewonnen worden ist, zum Nutzerendgerät 50.
  • Im Einzelnen gewinnt die Hyperparameterkonfigurierungsvorrichtung 100 den Zwischenevaluierungswert durch Überwachung des Standardausgangs der Programmversuchseinrichtung 200 während der Ausführung des Nutzerprogramms. Jedes Mal, wenn der Standardausgang der Programmversuchseinrichtung 200 für jede Epoche aktualisiert wird, führt die Hyperparameterkonfigurierungsvorrichtung 100 beispielsweise eine vorgegebene Zwischenevaluierung in Form einer Extraktionsfunktion aus zum Extrahieren des Zwischenevaluierungswertes, z.B. bezüglich der Genauigkeit und MSE. Sodann prüft die Hyperparameterkonfigurierungsvorrichtung 100, ob die Ausführung des Nutzerprogramms früh beendet werden kann entsprechend dem gewonnenen Zwischenevaluierungswert. Beispielsweise wird der extrahierte Zwischenevaluierungswert verglichen mit dem Zwischenevaluierungswert von Versuchen eines anderen Satzes von Werten des Hyperparameters und wenn der extrahierte Zwischenevaluierungswert kleiner ist oder gleich wie der Mittelwert, kann die Ausführung des Nutzerprogrammes beendet werden.
  • Bezüglich der Einführung einer frühen Beendigung des Verfahrens wird bei der nachfolgenden Beschreibung angenommen, dass ein maschinelles Lernprogramm zugrunde liegt mit 100 Werten des Hyperparameters und dass es 10 Sekunden braucht für jeden Wert des Hyperparameters zum Beenden des maschinellen Lernprogramms. Ein Zwischenevaluationswert wird jede Sekunde ausgegeben. In diesem Falle braucht es 100 x 10 Sekunden = 1000 Sekunden zum Evaluieren des maschinellen Lernprogramms für alle 100 Werte des Hyperparameters. Bezüglich einer frühen Beendigung kann die Hyperparameterkonfigurierungsvorrichtung 100 beispielsweise einen Zwischenevaluationswert zur fünften Sekunde mit Zwischenevaluationswerten der anderen Versuche vergleichen und den Versuch beenden, wenn beispielsweise der Zwischen-evaluationswert zur fünften Sekunde kleiner ist als der Mittelwert der Zwischenevaluationswerte der anderen Versuche. Die Einführung einer frühen Beendigung kann die Zeit zum Optimieren des Hyperparameters reduzieren.
  • Bei einem Ausführungsbeispiel können die Hyperparameterkonfigurierungsvorrichtung 100 und die Programmversuchseinrichtung 200 durch eine einzige Vorrichtung implementiert sein, die das Programmversuchssystem 10 bildet. In diesem Fall kann das Programmversuchssystem 10 den Hyperparameterkonfigurierungsprozess entsprechend dem Flussdiagramm nach 6 ausführen.
  • Entsprechend 6 gewinnt in Schritt S301 das Programmversuchssystem 10 das Nutzerprogramm und die Parameterbeschreibungsdaten vom Nutzerendgerät 50. Das heißt: das Programmversuchssystem 10 gewinnt das Nutzerprogramm, welches mit Versuchen zu optimieren ist (beispielsweise ein tiefes Lernmodell, welches zu Trainieren ist, oder dergleichen) und die Parameterbeschreibungsdaten der bei den Versuchen einzusetzenden Hyperparameter.
  • In Schritt S302 setzt das Programmversuchssystem 10 den Hyperparameter entsprechend den Hyperparameterbeschreibungsdaten.
  • In Schritt S303 führt das Programmversuchssystem 10 das Nutzerprogramm mit dem gesetzten Hyperparameter aus. Insbesondere wiederholt das Programmversuchssystem 10 das Nutzerprogramm gemäß einer Anzahl von Epochen.
  • In Schritt S304 gewinnt das Programmversuchssystem 10 den Zwischenevaluationswert für jede Epoche.
  • In Schritt S305 ermittelt das Programmversuchssystem 10, ob weitere Wiederholungen des Nutzerprogramms mit dem Wert, der für den Hyperparameter in Schritt S302 gesetzt worden ist, zu wiederholen sind, wobei die Prüfung auf dem gewonnenen Zwischenevaluationswert beruht. Ist der gewonnene Zwischenevaluationswert beispielsweise kleiner als der Mittelwert der Evaluationswerte der anderen Werte der bereits verwendeten Hyperparameter (305:JA), dann beendet das Programmversuchssystem 10 die weitere Wiederholung des Nutzerprogramms mit dem entsprechend gesetzten Wert des Hyperparameters und das Verfahren geht zu Schritt S307. Ist hingegen der gewonnene Zwischenevaluationswert größer oder gleich dem Mittelwert der Evaluationswerte der anderen Werte des Hyperparameters, die bereits versucht worden sind (S305:NEIN), dann geht das Programmversuchssystem 10 zu Schritt S306, ohne die schnelle Beendigung des Nutzerprogramms.
  • In Schritt S306 ermittelt das Programmversuchssystem 10, ob eine vorgegebene Maximalzahl von Epochen überschritten ist. Ist die Maximalzahl von Epochen nicht überschritten (S306:NEIN), dann geht das Programmversuchssystem 10 zurück zu Schritt S304 und gewinnt den Zwischenevaluationswert der nächsten Epoche, die mit dem gesetzten Hyperparameterwert ausgeführt wird. Ist die Maximalzahl der Epochen überschritten (S306:JA), dann geht das Programmversuchssystem 10 zu Schritt S307.
  • In Schritt S307 ermittelt das Programmversuchssystem 10, ob das Nutzerprogramm mit allen möglichen Werten des Hyperparameters ausgeführt worden ist. Ist das Nutzerprogramm bereits mit allen möglichen Werten des Hyperparameters (S307:JA) ausgeführt, dann beendet das Programmversuchssystem 10 den Hyperparameterkonfigurierungsprozess. Ist das Nutzerprogramm nicht mit allen möglichen Werten des Hyperparameters ausgeführt (S307:NEIN), dann setzt das Programmversuchssystem 10 den nächsten Wert des Hyperparameters in Schritt S302 und führt das Nutzerprogramm wiederholt entsprechend einer bestimmten Epochenzahl mit dem nächsten gesetzten Wert des Hyperparameters aus.
  • [Weiteres Ausführungsbeispiel der Hyperparameterkonfigurierungsvorrichtung]
  • Nunmehr wird eine Hyperparameterkonfigurierungsvorrichtung gemäß einem weiteren Ausführungsbeispiel der vorliegenden Beschreibung näher mit Bezug auf 7 beschrieben. Bei diesem Ausführungsbeispiel sind die Versuche bezüglich des Nutzerprogramms verteilt.
  • Beispielsweise gewinnt die Schnittstelleneinheit 110 die Parameterbeschreibungsdaten entsprechend 7 vom Nutzerendgerät 50. Wie sich aus den gezeigten Parameterbeschreibungsdaten ergibt, werden zwei identische Parameterbeschreibungsdaten über die Befehlszeile auf dem Nutzerendgerät 50 eingegeben. Werden die Parameterbeschreibungsdaten gewonnen, gibt die Schnittstelleneinheit 110 eine Parameteranforderung entsprechend den zwei Parameterbeschreibungsdaten an die Hyperparameterkonfigurierungseinheit 120 und die Hyperparameterkonfigurierungseinheit 120 setzt den Wert des Hyperparameters für jeden der Parameterbeschreibungsdatensätze und gibt die Parameterbeschreibungsdaten zurück zu der Schnittstelleneinheit 110. Die Schnittstelleneinheit 110 gibt die gesetzten zwei Werte des Hyperparameters zur Programmversuchseinrichtung 200 und instruiert die Programmversuchseinrichtung 200, Versuche bezüglich des Nutzerprogramms parallel gemäß den jeweiligen Werten des Hyperparameters auszuführen. Bei Vervollständigung der durch die Programmversuchseinrichtung 200 ausgeführten Versuche gewinnt die Schnittstelleneinheit 110 die Ergebnisse der jeweiligen Versuche des Nutzerprogramms, die gewonnen werden durch Ausführung der Versuche parallel, und sie gibt die Ergebnisse an die Hyperparameterkonfigurierungseinheit 120. Damit kann die Versuchsreihe für das Nutzerprogramm in einer kürzeren Ausführungszeit beendet werden.
  • [Hardware-Konfiguration der Hyperparameterkonfigurierungsvorrichtung]
  • Bei der Hyperparameterkonfigurierungsvorrichtung 100 gemäß dem Ausführungsbeispiel wird jede Funktion erreicht durch beispielsweise eine Analogschaltung, eine Digitalschaltung oder einen Schaltkreis mit analoger/digitaler Mischung. Auch kann eine Steuerschaltung vorgesehen sein, welche jede Funktion steuert. Die Implementierung der jeweiligen Schaltung kann erfolgen durch eine anwendungsspezifische integrierte Schaltung (ASIC), eine feldprogrammierbare Gatter-Anordnung (FPGA) oder dergleichen.
  • Bezüglich der gesamten obigen Beschreibung kann zumindest ein Teil der Hyperparameterkonfigurierungsvorrichtung als Hardware-Komponente vorgesehen werden, oder es kann eine Software-Komponente sein mit einer Ausführung durch eine zentrale Prozessoreinheit (CPU) oder dergleichen durch Verarbeitung der Software. Wird die Software-Komponente eingesetzt, kann ein Programm, welches die Hyperparameterkonfigurierungsvorrichtung oder zumindest Teile von Funktionen derselben implementiert, in einem Speichermedium gespeichert werden, welches durch einen Computer zur Ausführung ausgelesen wird. Das Speichermedium ist nicht auf ein entfernbares Medium eingeschränkt, wie eine magnetische Scheibe (z.B. eine biegsame Scheibe) oder eine optische Scheibe (z.B. eine CD-ROM oder eine DVD-ROM), vielmehr kann es sich auch um ein festes Speichermedium handeln, wie eine Festplatte oder ein Halbleiterlaufwerk (SSD) mit einem Speicher. Die Software-Informationen können also unter Einsatz von Hardware implementiert werden. Weiterhin können die Softwareprozesse auch implementiert sein mit Schaltungen, wie einer FPGA, und sie können durch eine entsprechende Hardwarekomponente ausgeführt werden. Die Ausführung der jeweiligen Funktionen können mit Beschleunigungsmitteln ausgeführt werden, wie beispielsweise Grafikprozessoren (GPU).
  • Beispielsweise kann ein Computer durch Auslesung der speziellen Software, die in einem computerlesbaren Medium abgelegt ist, als eine Einrichtung gemäß den obigen Ausführungsbeispielen funktionieren. Die Art des Speichermediums unterliegt keinen besonderen Einschränkungen. Durch Installation der speziellen Software, die über ein Kommunikationsnetzwerk in einen Rechner geladen wird, kann der Rechner als eine Einrichtung wirken entsprechend einem der obigen Ausführungsbeispiele. Auf diese Weise wird Software konkret implementiert unter Einsatz von Hardware.
  • 8 ist ein Blockdiagramm zur Darstellung eines Beispiels für eine Hardware-Konfiguration bei einem Ausführungsbeispiel gemäß der vorliegenden Beschreibung. Die Hyperparameterkonfigurierungsvorrichtung 100 enthält einen Prozessor 101, eine Hauptspeichereinrichtung 102, eine Hilfsspeichereinrichtung 103, eine Netzwerkschnittstelle 104 und eine Vorrichtungsschnittstelle 105, wobei diese Komponenten über einen Bus 106 verbunden sind, insgesamt eine Computereinrichtung.
  • Die Hyperparameterkonfigurierungsvorrichtung 100 gemäß 8 enthält jeweils einzelne Komponenten, jedoch können auch mehrere identische Komponenten enthalten sein. Zwar ist eine einzige Hyperparameterkonfigurierungsvorrichtung 100 dargestellt, jedoch kann die Software auch in mehreren Computereinrichtungen installiert sein und die jeweiligen Hyperparameterkonfigurierungsvorrichtungen 100 können unterschiedliche Teile des Prozesses gemäß der Software ausführen. In diesem Falle können die mehreren Hyperparameterkonfigurierungsvorrichtungen 100 über die Netzwerkschnittstelle 104 oder dergleichen kommunizieren.
  • Bei dem Prozessor 101 handelt es sich um eine elektronische Schaltung (eine Verarbeitungsschaltung oder eine Prozessschaltung) einschließlich einer Steuerung und einer arithmetischen Einrichtung der Hyperparameterkonfigurierungsvorrichtung 100. Der Prozessor 101 führt arithmetische Operationen aus entsprechend Daten und einem Programm, welche von jeweiligen Komponenten der Konfiguration der Hyperparameterkonfigurierungsvorrichtung 100 geliefert werden und es werden die Ergebnisse der arithmetischen Operationen oder ein Steuersignal an die jeweils entsprechende Einrichtung gegeben. Insbesondere steuert der Prozessor 101 die Komponenten, welche die Hyperparameterkonfigurierungsvorrichtung 100 bilden durch Ausführung eines Betriebssystems (OS), einer Anwendungssoftware und dergleichen der Hyperparameterkonfigurierungsvorrichtung 100. Der Prozessor 101 unterliegt in seiner Art keinen besonderen Einschränkungen, solange nur der oben beschriebene Prozess ausgeführt werden kann. Die Hyperparameterkonfigurierungsvorrichtung 100 und die jeweiligen Komponenten derselben können durch den Prozessor 101 realisiert sein. Der hier verwendete Begriff „Prozessorschaltung“ oder dergleichen kann sich auf eine oder auf mehrere elektronische Schaltungen beziehen, die auf einem Chip angeordnet sind, oder es kann sich um eine oder mehrere elektrische Schaltungen handeln, die auf zwei oder mehr Chips oder ähnlichen Einrichtungen verteilt sind, Werden mehrere elektronische Schaltungen eingesetzt, dann können die Schaltungen über Draht oder drahtlos kommunizieren.
  • Die Hauptspeichereinrichtung 102 speichert Instruktionen, die durch den Prozessor 101 ausgeführt werden, sowie verschiedene Daten und dergleichen. In der Hauptspeichereinrichtung 102 abgelegte Daten werden direkt durch den Prozessor 101 ausgelesen. Die Hilfsspeichereinrichtung 103 unterscheidet sich von der Hauptspeichereinrichtung 102. Dabei steht hier der Begriff Speichereinrichtung für eine jegliche elektronische Komponente, die elektronische Informationen abspeichern kann. Bei dem Speicher kann es sich um einen flüchtigen Speicher oder um einen nicht-flüchtigen Speicher handeln. Der verschiedene Daten der Hyperparameterkonfigurierungsvorrichtung 100 abspeichernde Speicher kann beispielsweise durch den Hauptspeicher 102 oder den Hilfsspeicher 103 realisiert sein. Beispielsweise kann ein Teil der Speicherung in der Hauptspeichereinrichtung 102 oder der Hilfsspeichereinrichtung 103 erfolgen. Bei einem weiteren Beispiel unter Einsatz eines Beschleunigers, kann zumindest ein Teil des oben beschriebenen Speichers durch einen in dem Beschleuniger vorgesehenen Speicher implementiert sein.
  • Die Netzwerkschnittstelle 104 verbindet zum Kommunikationsnetzwerk 108, sei es über Draht oder drahtlos. Die Netzwerkschnittstelle 104 kann gegebenen Standards für die Kommunikation entsprechen. Durch Einsatz der Netzwerkschnittstelle 104 können Informationen ausgetauscht werden mit einer externen Einrichtung 109A, die über ein Kommunikationsnetzwerk 108 angeschlossen ist.
  • Die externe Einrichtung 109A kann beispielsweise eine Kamera sein, eine Bewegungsaufnahmeeinrichtung, eine Ausgabebestimmungseinrichtung, ein externer Sensor, eine Einrichtung für Eingaben oder dergleichen. Die externe Einrichtung 109A kann eine Funktion eines Teils der Komponenten der Hyperparameterkonfigurierungsvorrichtung 100 übernehmen. Die Hyperparameterkonfigurierungsvorrichtung 100 kann einen Teil der Prozessergebnisse der Hyperparameterkonfigurierungsvorrichtung 100 über das Kommunikationsnetzwerk 108, wie eine Cloud, empfangen.
  • Die Einrichtungsschnittstelle 105 kann beispielsweise ein universeller serieller Bus (USB) sein, der direkt mit der externen Einrichtung 109B verbunden ist. Die externe Einrichtung 109B kann entweder ein externes Speichermedium oder eine Speichervorrichtung sein. Der Speicher kann durch die externe Einrichtung 109B implementiert sein.
  • Die externe Einrichtung 109B kann eine Ausgabeeinrichtung sein. Die Ausgabeeinrichtung kann beispielsweise eine Anzeigeeinrichtung sein, die ein Bild darstellt, oder eine Einrichtung, die ein akustisches Signal oder dergleichen ausgibt. Beispiele für die Ausgabeeinrichtung sind eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhre (CRT), eine Plasmaanzeigeeinrichtung (PDP), eine organische Elektrolumineszenz(-Anzeige) (EL), ein Lautsprecher oder dergleichen, wobei insoweit keine Einschränkung gegeben ist.
  • Die externe Einrichtung 109B kann auch eine Eingabeeinrichtung sein. Die Eingabeeinrichtung enthält Mittel, wie beispielsweise eine Tastatur, eine Maus, ein berührungsempfindliches Feld, ein Mikrofon und dergleichen, damit Informationen mit diesen Mitteln in die Hyperparameterkonfigurierungsvorrichtung 100 eingegeben werden können. Signale der Eingabeeinrichtung werden dem Prozessor 101 zugeführt.
  • Beispielsweise können die Schnittstelleneinheit 110, die Hyperparameterkonfigurierungseinheit 120 und ähnliche Komponenten der Hyperparameterkonfigurierungsvorrichtung 100 gemäß dem vorliegenden Ausführungsbeispiel durch den Prozessor 101 implementiert sein. Der Speicher der Hyperparameterkonfigurierungsvorrichtung 100 kann durch den Hauptspeicher 102 oder den Hilfsspeicher 103 implementiert sein. Die Hyperparameterkonfigurierungsvorrichtung 100 kann auch einen oder mehrere weitere Speicher enthalten.
  • In der vorliegenden Beschreibung bedeutet eine Aussage „zumindest eines von a, b und c“, dass eine Kombination mit mehreren gleichen Elementen, wie a-a, a-b-b, a-a-b-b-c-c, zusätzlich zu einer Kombination von a, b, c, a-b, a-c, b-c, a-b-c vorgesehen sein kann. Auch erfasst dieser Ausdruck eine Konfiguration mit einem von a, b und c verschiedenen Element, wie eine Kombination a-b-c-d.
  • In ähnlicher Weise enthält in der vorliegenden Beschreibung der Ausdruck „zumindest eines von a, b oder c“ eine Kombination mit mehreren identischen Elementen, wie a-a, a-b-b, a-a-b-b-c-c, zusätzlich zu einer Kombination von a, b, c, a-b, a-c, b-c, a-b-c. Auch erfasst der Ausdruck eine Konfiguration mit einem von a, b und c verschiedenen Element, wie eine Kombination a-b-c-d.
  • Zwar wurden oben Ausführungsbeispiele der vorliegenden Beschreibung näher beschrieben, jedoch ist die vorliegende Beschreibung nicht auf solche besonderen Ausführungsbeispiele, wie sie oben beschrieben sind, beschränkt und es sind verschiedene Abwandlungen und Änderungen möglich innerhalb des Umfanges des Gegenstandes der vorliegenden Offenbarung, wie er in den Ansprüchen wiedergegeben ist.
  • Die vorliegende Patentanmeldung basiert auf und beansprucht die Priorität der japanischen Patentanmeldung 2019-109537 , angemeldet am 12. Juni 2019, deren gesamter Inhalt hier durch Bezugnahme aufgenommen ist.
  • Bezugszeichenliste
  • 10
    Programmversuchssystem
    50
    Nutzerendgerät
    100
    Hyperparameterkonfigurierungsvorrichtung
    110
    Schnittstelleneinheit
    120
    Hyperparameterkonfigurierungseinheit
    101
    Prozessor
    102
    Hauptspeichereinrichtung
    103
    Hilfsspeichereinrichtung
    104
    Netzwerkschnittstelle
    105
    Einrichtungsschnittstelle
    108
    Kommunikationsnetzwerk
    109
    externe Einrichtung
    200
    Programmversuchseinrichtung
    250
    Datenbasis
  • 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
    • JP 2019109537 [0095]

Claims (9)

  1. Verfahren zum Optimieren eines Hyperparameters, wobei das Verfahren umfasst: Gewinnen einer Programmausführungsinstruktion einschließlich Parameterbeschreibungsdaten mittels eines oder mehrerer Prozessoren; und Einstellen, mittels des einen oder der mehreren Prozessoren, eines Wertes eines Hyperparameters eines zu optimierenden Programmes entsprechend den Parameterbeschreibungsdaten und Gewinnen eines Evaluationswertes des Wertes des Hyperparameters.
  2. Verfahren gemäß Anspruch 1, wobei die Parameterbeschreibungsdaten einen Einstellbereich des Hyperparameters auf Basis eines Verteilungsidentifizierers und eines Bereichsspezifikationswertes bestimmen.
  3. Verfahren gemäß einem der Ansprüche 1 oder 2, wobei das Einstellen beinhaltet, dass ein Wert eines zweiten Hyperparameters eingestellt wird in Abhängigkeit von einem Wert eines ersten Hyperparameters, wobei der Wert des ersten Hyperparameters bereits eingestellt ist.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, weiterhin umfassend, dass mittels des einen oder der mehreren Prozessoren ein Versuch eines Programmes auf Basis eines Zwischenversuchsergebnisses bezüglich des Programmes beendet wird, wobei das Programm gemäß dem eingestellten Wert des Hyperparameters einem Versuch unterzogen wird.
  5. Verfahren gemäß einem der Ansprüche 1 bis 4, wobei das Gewinnen beinhaltet, dass eine Mehrzahl von Parameterbeschreibungsdatensätzen gewonnen werden, und wobei das Einstellen beinhaltet, dass der Wert des Hyperparameters für jeden der Mehrzahl von gewonnenen Parameterbeschreibungsdatensätzen eingestellt wird.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei die Parameterbeschreibungsdaten in eine Befehlszeilen-Schnittstelle geschrieben werden.
  7. Modell, generiert durch das Verfahren gemäß einem der Ansprüche 1 bis 6.
  8. Programmversuchssystem, umfassend: zumindest einen Speicher; und zumindest einen Prozessor; wobei der zumindest eine Prozessor eingerichtet ist zum: Gewinnen einer Programmausführungsinstruktion mit Parameterbeschreibungsdaten; und Setzen eines Wertes eines Hyperparameters eines zu optimierenden Programmes entsprechend den Parameterbeschreibungsdaten und Gewinnen eines Evaluationswertes für den Wert des Hyperparameters.
  9. Speichermedium mit einem darin gespeichertem Computerprogramm zum Veranlassen eines oder mehrerer Computer, einen Prozess auszuführen, der umfasst: Gewinnen einer Programmausführungsinstruktion mit Parameterbeschreibungsdaten; und Einstellen eines Wertes eines Hyperparameters eines zu optimierenden Programmes entsprechend den Parameterbeschreibungsdaten und Gewinnen eines Evaluationswertes für den Wert des Hyperparameters.
DE112020002822.4T 2019-06-12 2020-06-05 Hyperparameteroptimierungsverfahren, Programmversuchssystem und Computerprogramm Pending DE112020002822T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019109537 2019-06-12
JP2019-109537 2019-06-12
PCT/JP2020/022428 WO2020250843A1 (ja) 2019-06-12 2020-06-05 ハイパーパラメタチューニング方法、プログラム試行システム及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
DE112020002822T5 true DE112020002822T5 (de) 2022-03-03

Family

ID=73781187

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020002822.4T Pending DE112020002822T5 (de) 2019-06-12 2020-06-05 Hyperparameteroptimierungsverfahren, Programmversuchssystem und Computerprogramm

Country Status (4)

Country Link
US (1) US20220100531A1 (de)
JP (1) JP7303299B2 (de)
DE (1) DE112020002822T5 (de)
WO (1) WO2020250843A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220245350A1 (en) * 2021-02-03 2022-08-04 Cambium Assessment, Inc. Framework and interface for machines
US20220335327A1 (en) * 2021-04-19 2022-10-20 Rohde & Schwarz Gmbh & Co. Kg Electronic device and method of setting processing parameters

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109537A (ja) 2019-02-28 2019-07-04 キヤノン株式会社 像加熱装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013242604A (ja) * 2010-09-10 2013-12-05 Fixstars Multi Core Labo Corp 実行モジュール最適化装置、実行モジュール最適化方法、およびプログラム
JP6620422B2 (ja) 2015-05-22 2019-12-18 富士通株式会社 設定方法、設定プログラム、及び設定装置
EP3625689A4 (de) * 2017-05-17 2021-04-28 Sigopt, Inc. Systeme und verfahren zur implementierung einer intelligenten optimierungsplattform
WO2018222205A1 (en) * 2017-06-02 2018-12-06 Google Llc Systems and methods for black-box optimization
JP6840627B2 (ja) * 2017-06-15 2021-03-10 株式会社日立製作所 ハイパーパラメータの評価方法、計算機及びプログラム
JP6974712B2 (ja) 2017-10-24 2021-12-01 富士通株式会社 探索方法、探索装置および探索プログラム
US11270217B2 (en) * 2017-11-17 2022-03-08 Intel Corporation Systems and methods implementing an intelligent machine learning tuning system providing multiple tuned hyperparameter solutions
US20190236487A1 (en) * 2018-01-30 2019-08-01 Microsoft Technology Licensing, Llc Machine learning hyperparameter tuning tool
CN109816116B (zh) 2019-01-17 2021-01-29 腾讯科技(深圳)有限公司 机器学习模型中超参数的优化方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109537A (ja) 2019-02-28 2019-07-04 キヤノン株式会社 像加熱装置

Also Published As

Publication number Publication date
JPWO2020250843A1 (de) 2020-12-17
JP7303299B2 (ja) 2023-07-04
US20220100531A1 (en) 2022-03-31
WO2020250843A1 (ja) 2020-12-17

Similar Documents

Publication Publication Date Title
DE60219048T2 (de) Sektionsextrahierungswerkzeug für pdf-dokumente
DE69934468T2 (de) Druckersystem und Drucker die Druckdaten wiederverwenden
DE102018128158A1 (de) Vorrichtung zur inspektion des erscheinungsbilds
DE102013207049A1 (de) Überwachen der Datenstrompufferung zur Optimierung der Operatorverarbeitung
DE10241400A1 (de) Systeme und Verfahren zum Verwalten einer Prozeßsteuerung in einer graphischen Benutzerschnittstelle
EP1353276A2 (de) Drucken mit variablen Daten unter Verwendung einer dynamischen Ausschiessvorlage
DE202013012465U1 (de) End-to-End-Exposition von nativen Datentypen an Drittanbieteranwendungen
EP1975821A2 (de) Verfahren zur digitalen Speicherung von Daten auf einem Datenspeicher mit beschränktem verfügbarem Speicherplatz
DE112020002822T5 (de) Hyperparameteroptimierungsverfahren, Programmversuchssystem und Computerprogramm
DE112008002340T5 (de) Ultraschall-Diagnosegerät und Ultraschall-Diagnosesystem
DE102013213047A1 (de) System, Verfahren und Computerprogrammprodukt zum Testen von Vorrichtungsparametern
DE102010028884A1 (de) Ursachenanalyse für Verarbeitung komplexer Ereignisse
DE112017003884T5 (de) Benutzerschnittstelle für Protokollabfragen
DE112015002101T5 (de) Systeme und Verfahren für einen verbesserten Datenstrukturspeicher
DE10234135A1 (de) Systeme und Verfahren zum Verknüpfen einer Graphikanzeige und einer n-dimensionalen Datenstruktur in einer graphischen Benutzerschnittstelle
DE102022119975A1 (de) Kombinierte tdecq-messung und senderabstimmung mit hilfe von maschinellem lernen
DE102012223587B4 (de) Verfahren zum Testen einer Applikation
DE10219167A1 (de) Objektorientierter Rahmen für eine Abtasteinrichtung/Workstation-Konfiguration
DE102012108407A1 (de) Verfahren und Vorrichtung zum Ermitteln von Testmengen von Betriebsparameterwerten für eine elektronische Komponente
DE112016007411T5 (de) Fuzzy-eingabe für autoencoder
DE10002096A1 (de) Vorrichtung und Verfahren zum selektiven Herunterladen von Datendateien von einem optischen Scanner
DE112018005620T5 (de) Auftragsverwaltung in einem datenverarbeitungssystem
DE102021124445A1 (de) Metamerkmal-trainingsmodelle für maschinenlernalgorithmen
DE102016006202A1 (de) Numerische Steuervorrichtung zum Verwalten von Bearbeitungsdaten und Bearbeitungsergebnissen
DE102020208245A1 (de) Datenspeicherungsvorrichtung und Datenspeicherungsprogramm

Legal Events

Date Code Title Description
R012 Request for examination validly filed