-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft eine Technologie zum Verarbeiten von Informationen.
-
STAND DER TECHNIK
-
Bei Ausführung eines Programmes werden häufig Betriebsbedingungen des Programmes definierende Parameter extern gesetzt. Da die in den Parametern eingestellten Werte die Ausführungsergebnisse oder die Leistung des Programms beeinflussen, müssen passende Parameter eingestellt werden. Derartige, extern eingestellte Parameter können als Hyperparameter bezeichnet werden, um die extern eingestellten Parameter von Parametern zu unterscheiden, die innerhalb des Programmes eingestellt oder aktualisiert werden.
-
Bei maschinellem Lernen, wie dem Deep Learning („tiefes Lernen“), werden Parameter von maschinellen Lernmodellen, welche zu erlernende Probleme kennzeichnen, auf Basis von Lernalgorithmen erlernt. Getrennt von derartigen zu lernenden Parametern werden Hyperparameter eingestellt (gesetzt) bei Auswahl eines maschinellen Lernmodells oder bei Ausführung eines Lernalgorithmus. Spezielle Beispiele für Hyperparameter für maschinelles Lernen sind Parameter, die eingesetzt werden in einem bestimmten maschinellen Lernmodell (z.B. eine Lernrate, eine Lernperiode, eine Rauschrate, ein Wichtungsabnahmekoeffizient und dergleichen in einem neuronalen Netzwerk). Werden mehrere maschinelle Lernmodelle eingesetzt, dann umfassen spezifische Beispiele von Parametern einen Typ des maschinellen Lernmodells, Parameter, die eingesetzt werden zum Aufbau von verschiedenen Typen von maschinellen Lernmodellen, z.B. die Anzahl der Layer (Schichten) in einem neuronalen Netzwerk, die Tiefe (Verzweigungstiefe eines Entscheidungsbaums und dergleichen) und dergleichen. Durch Einstellung passender Hyperparameter können die Vorhersagegenauigkeit, die Verallgemeinerungsfähigkeit, die Lerneffizienz und dergleichen verbessert werden.
-
Im Allgemeinen werden Hyperparameter durch den Anwender von Hand eingestellt oder sie werden automatisch durch eine Hyperparameteroptimierungssoftware oder dergleichen eingestellt. Beispielsweise sind als Hyperparameteroptimierungssoftware folgende bekannt: HyperOpt, SigOpt, Vizier, MOE, MetaOpt, SMAC, Spearmint und dergleichen.
-
Referenzliste
-
Patentdokument
-
Patentdokument 1: offengelegte
japanische Patentanmeldung 2017 -
49677 ; Patentdokument 2: offengelegte
japanische Patentanmeldung 2017-228068 .
-
KURZBESCHREIBUNG DER ERFINDUNG
-
Zu lösendes Problem
-
Bei der vorhandenen Hyperparameteroptimierungssoftware, wie oben genannt, definiert ein Anwender zu optimierende Hyperparameter und einen Bereich für jeweilige Hyperparameterwerte in der Hyperparameteroptimierungssoftware. Die Hyperparameteroptimierungssoftware stellt auf Basis der seitens des Anwenders vorgegebenen Hyperparameter und des Bereichs der jeweiligen Hyperparameterwerte definierte Hyperparameterwerte in die Hyperparameteroptimierungssoftware für ein Anwenderprogramm zum Erlernen eines maschinellen Lernmodells, welches durch Einsatz einer maschinellen Lernbibliothek („Library“) gegeben ist, wie beispielsweise „Chainer“ und „TensorFlow“, wobei das maschinelle Lernmodell entsprechend den eingestellten Hyperparametern trainiert wird.
-
Bei der bekannten Hyperparameteroptimierungssoftware werden aber die zu optimierenden Hyperparameter an einer Stelle bestimmt, die verschieden ist vom Anwenderprogramm, welches das Training des maschinellen Lernmodells oder dergleichen ausführt, und die eingestellten Hyperparameter werden durch das Anwenderprogramm verwendet, welches das Training des maschinellen Lernmodells ausführt. Das heißt: ein Programm, in dem die Hyperparameter definiert werden, ist getrennt von einem Programm, in dem die Hyperparameter verwendet werden, wodurch der Wartungsaufwand bezüglich des Programms für den Anwender erheblich ist.
-
Weiterhin müssen dann, wenn der Typ des maschinellen Lernmodells, wie ein neuronales Netzwerk und ein Entscheidungsbaum, durch die Hyperparameteroptimierungssoftware als Hyperparameter eingestellt sind, weitere Hyperparameter eingestellt werden entsprechend dem eingestellten maschinellen Lernmodell. Beispielsweise werden bei einem neuronalen Netzwerk Wichtungsabnahmekoeffizienten, eine „Drop-Out“-Rate und dergleichen als Hyperparameter eingestellt, während diese nicht als Hyperparameter verwendet werden bei einem Entscheidungsbaum. Wie gesagt, werden entsprechend einem bestimmten Hyperparametereinstellwert andere Hyperparameter zu ändern sein; jedoch kann bekannte Hyperparameteroptimierungssoftware nicht mit einer Hyperparametereinstellung mit einer Kontrollstruktur umgehen, welche eine derartige bedingte Verzweigung ermöglicht. Auch kann bei bekannter Hyperparameteroptimierungssoftware ein Quellcode für die Hyperparameteroptimierung nicht modularisiert werden.
-
Angesicht der obigen, zu überwindenden Probleme liegt der vorliegenden Beschreibung die Aufgabe zugrunde, eine Hyperparameteroptimierungstechnik bereitzustellen, die für den Anwender die Programmierung erleichtert.
-
Mittel zum Lösen des Problems
-
Um obige Probleme zu lösen, betrifft eine Ausführung der vorliegenden Beschreibung ein Hyperparameteroptimierungsverfahren mit Schritten, die durch einen oder mehrere Prozessoren ausgeführt werden, wobei das Hyperparameteroptimierungsverfahren einen Schritt beinhaltet zum Empfangen einer Anforderung zum Gewinnen eines Hyperparameters, wobei die Anforderung erzeugt wird entsprechend einem Hyperparametergewinnungscode, der in einem Anwenderprogramm beschrieben ist, und einem Schritt der Bereitstellung des Hyperparameters für das Anwenderprogramm entsprechend einem Anwendungsverlauf (Anwendungshistorie) von im Anwenderprogramm verwendeten Hyperparametern.
-
Figurenliste
-
- 1 ist eine schematische Darstellung zur Erläuterung von Hyperparametereinstellungen gemäß einem sogenannten „Define-by-Run“-Schema (dynamische Definition des Netzwerkes über Vorwärtsberechnung) entsprechend der vorliegenden Beschreibung;
- 2 ist ein Blockdiagramm zur Erläuterung einer Hardware-Konfiguration einer Hyperparameteroptimierungsvorrichtung gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung;
- 3 ist ein Flussdiagramm zur Erläuterung eines Hyperparameteroptimierungsverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung;
- 4 ist ein Sequenzdiagramm zur Erläuterung des Hyperparameteroptimierungsverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung;
- 5 zeigt einen Hyperparameteroptimierungscode gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung; und
- 6 zeigt einen Hyperparameteroptimierungscode gemäß einem weiteren Ausführungsbeispiel der vorliegenden Beschreibung.
-
BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
-
Nachfolgend werden Ausführungsbeispiele für eine Hyperparameteroptimierungsvorrichtung und ein Verfahren zum Einstellen von Hyperparametern zur Verwendung bei Ausführung eines Programms näher beschrieben.
-
Kurz gesagt betrifft die vorliegende Beschreibung eine Hyperparameteroptimierungsvorrichtung, die implementiert ist mit einem Hyperparameteroptimierungsprogramm oder mit Software, wobei bei Empfang einer Anforderung von einem Anwenderprogramm zum Gewinnen eines Hyperparameters die Hyperparameteroptimierungsvorrichtung entsprechend einem Anwendungsverlauf (Anwendungshistorie) von im Anwenderprogramm eingesetzten Hyperparametern den Hyperparameter für das Anwenderprogramm liefert. Das Anwenderprogramm erzeugt eine Hyperparametergewinnungsanforderung zum Gewinnen eines Hyperparameters, der zu gewinnen ist entsprechend einem Hyperparametergewinnungscode, der in das Anwenderprogramm geschrieben ist, wobei der mit dem Hyperparameteroptimierungsprogramm zu gewinnende Hyperparameter entsprechend der erzeugten Hyperparametergewinnungsanforderung sequenziell angefordert wird.
-
Das nachfolgende Ausführungsbeispiel stellt ab auf Hyperparameter, die eingesetzt werden in einem Trainingsprozess eines maschinellen Lernmodells. Allerdings sind die Hyperparameter gemäß der vorliegenden Beschreibung nicht hierauf beschränkt und können jegliche Hyperparameter sein, welche die Ausführungsergebnisse oder die Leistungsfähigkeit eines Anwenderprogrammes beeinflussen können.
-
Der Hyperparametergewinnungscode gemäß der vorliegenden Beschreibung kann geschrieben werden unter Einsatz einer Kontrollstruktur, bei der eine bedingte Verzweigung, wie eine bedingte Anweisung, und ein Wiederholungsprozess, wie eine sogenannte For-Anweisung, ausgeführt werden. Insbesondere fordert gemäß 1 ein Anwenderprogramm 10 zunächst von einem Hyperparameteroptimierungsprogramm 20 einen „Typ eines maschinellen Lernmodells“ als Hyperparameter an und in Antwort auf die Hyperparametergewinnungsanforderung seitens des Anwenderprogrammes 10 erwidert das Hyperparameteroptimierungsprogramm 20 beispielsweise: „ein neuronales Netzwerk“ als „Typ des maschinellen Lernmodells“. Ist das „neuronale Netzwerk“ als „Typ des maschinellen Lernmodells“ ausgewählt, fordert das Anwenderprogramm 10 verschiedene Hyperparameter für das „neuronale Netzwerk“ an (z.B. die Anzahl der Schichten (Layer), eine Lernrate und so weiter), entsprechend der Steuerstruktur des Hyperparametergewinnungscodes. Wie beschrieben, werden gemäß der vorliegenden Beschreibung die Hyperparameter eingestellt mit einem „Define-by-Run“-Schema.
-
Wird eine Kombination von Hyperparametern, die für den Trainingsprozess erforderlich sind, eingestellt, wendet das Anwenderprogramm 10 die gewonnene Kombination von Hyperparametern an, um das maschinelle Lernmodell zu trainieren und vermittelt eine Genauigkeit für das Hyperparameteroptimierungsprogramm 20, wie die Vorhersageleistungsfähigkeit des trainierten maschinellen Lernmodells. Der vorstehend beschriebene Prozess wird wiederholt, bis ein vorgegebene Abschlussbedingung erfüllt ist.
-
Zunächst wird mit Blick auf die 2 bis 4 ein Hyperparameteroptimierungsprogramm gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung näher beschrieben. Beim vorliegenden Ausführungsbeispiel führt eine Hyperparameteroptimierungsvorrichtung 100 den Prozess aus, insbesondere führt ein Prozessor der Hyperparameteroptimierungsvorrichtung 100 das Hyperparameteroptimierungsprogramm 20 aus, um das Verfahren auszuführen.
-
Entsprechend 2 kann die Hyperparameteroptimierungsvorrichtung 100 eine Konfiguration aufweisen, in der ein Prozessor 101, wie eine zentrale Prozessoreinheit (CPU) und eine Grafik-Prozessoreinheit (GPU), ein Speicher 102, wie ein Speicher mit wahlfreiem Zugriff (RAM) und ein Flash-Speicher, eine Festplatte 103 und eine Eingabe-/Ausgabeeinheit (I/O) als Schnittstelle 104 vorgesehen sind.
-
Der Prozessor 101 führt verschiedene Prozesse der Hyperparameteroptimierungsvorrichtung 100 aus und er führt weiterhin das Anwenderprogramm 10 und/oder das Hyperparameteroptimierungsprogramm 20 aus.
-
Der Speicher 102 speichert verschiedene Daten und ein Programm für die Hyperparameteroptimierungsvorrichtung 100 und das Anwenderprogramm 10 und/oder dem Hyperparameteroptimierungsprogramm 20, wobei er als Arbeitsspeicher eingesetzt ist, insbesondere bezüglich der Arbeitsdaten, des Ablaufprogrammes und dergleichen. Insbesondere speichert der Speicher 102 das Anwenderprogramm 10 und/oder das Hyperparameteroptimierungsprogramm 20, welches aus der Festplatte 103 geladen ist, und er arbeitet als Arbeitsspeicher bei Ausführung des Programmes durch den Prozessor 101.
-
Die Festplatte 103 speichert das Anwenderprogramm 10 und/oder das Hyperparameteroptimierungsprogramm 20.
-
Die I/O-Schnittstelle 104 dient der Eingabe von Daten in eine externe Einrichtung und der Ausgabe von Daten aus der externen Einrichtung. Beispielsweise dient die I/O-Schnittstelle 104 der Eingabe und Ausgabe von Daten mittels eines universellen seriellen Busses (USB), einer Kommunikationsleitung, einer Tastatur, einer Maus und einer Anzeigeeinrichtung.
-
Die Hyperparameteroptimierungsvorrichtung 100 gemäß der vorliegenden Beschreibung ist nicht auf die oben beschriebene Hardware-Konfiguration beschränkt und kann eine jegliche geeignete Hardware-Konfiguration aufweisen. Beispielsweise können einige oder alle der mit der Hyperparameteroptimierungsvorrichtung ausgeführten Hyperparameteroptimierungsprozesse, wie oben beschrieben, durch eine Prozessorschaltung oder eine elektronische Schaltung ausgeführt werden, die so verdrahtet ist, dass einige oder alle der Hyperparameteroptimierungsprozesse ausgeführt werden.
-
3 erläutert mit einem Flussdiagramm ein Hyperparameteroptimierungsverfahren gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung. Das Hyperparameteroptimierungsverfahren wird implementiert durch die Hyperparameteroptimierungsvorrichtung 100, die das Hyperparameteroptimierungsprogramm 20 ausführt entsprechend dem Anwenderprogramm 10, welches geschrieben ist unter beispielsweise Verwendung einer Bibliothek für maschinelles Lernen, beispielsweise Chainer oder TensorFlows.
-
Entsprechend 3 empfängt in Schritt S101 das Hyperparameteroptimierungsprogramm 20 eine Hyperparametergewinnungsanforderung.
-
Insbesondere bestimmt das Anwenderprogramm 10 einen Hyperparameter, der entsprechend einem in dem Anwenderprogramm beschriebenen Hyperparametergewinnungscode zu gewinnen ist, erzeugt weiterhin die Hyperparametergewinnungsanforderung bezüglich des Hyperparameters und überträgt die gewonnene Hyperparametergewinnungsanforderung an das Hyperparameteroptimierungsprogramm 20, woraufhin das Hyperparameteroptimierungsprogramm 20 die Hyperparametergewinnungsanforderung vom Anwenderprogramm 10 empfängt.
-
Beim Ausführungsbeispiel kann der Hyperparametergewinnungscode geschrieben sein unter Verwendung einer Kontrollstruktur, die beispielsweise eine Sequenzstruktur, eine Auswahlstruktur und/oder eine Wiederholungsstruktur haben kann. Insbesondere kann der Hyperparametergewinnungscode geschrieben sein unter Einsatz von bedingten Anweisungen oder von For-Anweisungen. Stellt beispielsweise das Hyperparameteroptimierungsprogramm 20 den „Typ des maschinellen Lernmodells“ auf ein „neuronales Netzwerk“ als Hyperparameter ein, bestimmt das Anwenderprogramm 10 einen Hyperparameter, der spezifisch ist für das „neuronale Netzwerk“ (z.B. die Anzahl der Schichten, die Anzahl der Schicht-Knoten, einen Wichtungsabnahmekoeffizienten, und so weiter) als Hyperparameter, die als nächstes zu gewinnen sind, entsprechend der Kontrollstruktur des Hyperparametergewinnungscodes. Wenn andererseits das Hyperparameteroptimierungsprogramm 20 den „Typ des maschinellen Lernmodells“ auf „einen Entscheidungsbaum“ als Hyperparameter einstellt, bestimmt das Anwenderprogramm 10 einen Hyperparameter, der spezifisch ist für den „Entscheidungsbaum“ (z.B. die Baumtiefe, die Anzahl der aus einem Knoten verzweigten Kanten und so weiter) als dann zu gewinnenden Hyperparameter entsprechend der Kontrollstruktur des Hyperparametergewinnungscodes. Wie beschrieben kann das Anwenderprogramm 10 die als nächstes zu gewinnenden Hyperparameter bestimmen auf Basis der Kontrollstruktur, gemäß der das Anwenderprogramm 10 beschrieben ist, und kann eine Hyperparametergewinnungsanforderung erzeugen für den bestimmten Hyperparameter.
-
In Schritt S102 liefert das Hyperparameteroptimierungsprogramm 20 den Hyperparameter auf Basis des Anwendungsverlaufs (der Anwendungshistorie) der Hyperparameter.
-
Insbesondere bestimmt das Hyperparameteroptimierungsprogramm 20 bei Empfang der Hyperparametergewinnungsanforderung für einen Hyperparameter vom Anwenderprogramm 10 einen Wert des angeforderten Hyperparameters auf Basis des Anwendungsverlaufs der Hyperparameter, die zuvor im Anwenderprogramm 10 eingesetzt worden sind, und gibt den so bestimmten Wert des Hyperparameters an das Anwenderprogramm 10. Betrifft die Hyperparametergewinnungsanforderung beispielsweise eine Lernrate, greift das Hyperparameteroptimierungsprogramm 20 auf die Werte der Lernraten und/oder andere Hyperparameterwerte, die zuvor für das Anwenderprogramm 10 eingestellt worden sind, um so einen Wert für die Lernrate, die als nächstes einzusetzen ist zu ermitteln, und es gibt den so ermittelten Wert der Lernrate an das Anwenderprogramm 10. Bei Gewinnung des Wertes der Lernrate bestimmt das Anwenderprogramm 10, ob ein zusätzlicher Hyperparameter erforderlich ist zum Ausführen des Trainingsprozesses mit dem maschinellen Lernmodell entsprechend dem Hyperparametergewinnungscode. Ist ein zusätzlicher Hyperparameter (z.B. eine Lernperiode, eine Rauschrate und so weiter) erforderlich, erzeugt das Anwenderprogramm 10 eine Hyperparametergewinnungsanforderung für den Hyperparameter und überträgt die erzeugte Hyperparametergewinnungsanforderung an das Hyperparameteroptimierungsprogramm 20. Das Anwenderprogramm 10 fährt fort mit der Übertragung der Hyperparametergewinnungsanforderung, bis die geforderte Kombination von Hyperparametern gewonnen ist und das Hyperparameteroptimierungsprogramm 20 wiederholt die Schritte S101 und S102, wie oben beschrieben, entsprechend der empfangenen Hyperparametergewinnungsanforderung.
-
Bei dem Ausführungsbeispiel kann das Hyperparameteroptimierungsprogramm 20 einen Hyperparameter bereitstellen, der entsprechend einem vorgegebenen Hyperparameterauswahlalgorithmus ausgewählt ist.
-
Insbesondere kann der Hyperparameterauswahlalgorithmus auf einer Bayes'schen Optimierung basieren unter Verwendung der Genauigkeit des maschinellen Lernmodells, welches gewonnen ist gemäß der Anwendungshistorie der Hyperparameter. Wie später noch näher beschrieben ist, setzt das Anwenderprogramm 10 zum Trainieren des maschinellen Lernmodells bei Erhalt der Kombination von für den Trainingsprozess erforderlichen Hyperparametern die Kombination von Hyperparametern ein, die durch das Hyperparameteroptimierungsprogramm 20 gesetzt sind. Das Anwenderprogramm 10 bestimmt die Genauigkeit, wie die Vorhersageleistung des maschinellen Lernmodells, welches mit der gesetzten Kombination von Hyperparametern trainiert ist, und liefert die ermittelte Genauigkeit an das Hyperparameteroptimierungsprogramm 20. Das Hyperparameteroptimierungsprogramm 20 kann zuvor eingestellte Kombinationen von Hyperparametern und die für die jeweiligen Kombinationen gewonnene Genauigkeit als Anwendungsverlauf (Anwendungshistorie) abspeichern und den abgespeicherten Anwendungsverlauf als Vorinformationen verwenden zum Bestimmen des als nächstes einzusetzenden Hyperparameters entsprechend einer Bayes'schen Optimierung oder einer Bayes'schen Folgerung. Durch Einsatz einer Bayes'schen Optimierung kann eine passendere Kombination von Hyperparametern eingestellt werden unter Einsatz des Anwendungsverlaufs als Vorinformation.
-
Andererseits kann der vorgegebene Hyperparameterauswahlalgorithmus auch auf eine Zufallssuche basiert werden. In diesem Fall setzt das Hyperparameteroptimierungsprogramm 20 eine Kombination von Hyperparametern ein, welche zuvor nicht angewendet worden ist unter Bezug auf den Anwendungsverlauf. Durch Einsatz der Zufallssuche können die Hyperparameter eingestellt werden durch einen einfachen Hyperparameterauswahlalgorithmus.
-
Das Hyperparameteroptimierungsprogramm 20 kann auch die Bayes'sche Optimierung kombinieren mit der Zufallssuche, wie oben beschrieben, um so die Kombination von Hyperparametern zu ermitteln. Wird beispielsweise nur die Bayes'sche Optimierung eingesetzt, kann die Kombination zu einer lokalen optimalen Kombination konvergieren und wird nur die Zufallssuche eingesetzt, dann kann eine Kombination ausgewählt werden, die signifikant von der optimalen Kombination abweicht. Eine Kombination aus zwei Hyperparameterauswahlalgorithmen, wie der Bayes'schen Optimierung und der Zufallssuche, kann eingesetzt werden zum Vermindern der oben beschriebenen Nachteile.
-
Der Hyperparameterauswahlalgorithmus entsprechend der vorliegenden Beschreibung ist nicht auf die Bayes'sche Optimierung oder die Zufallssuche beschränkt; vielmehr können andere geeignete Hyperparameterauswahlalgorithmen eingesetzt werden, einschließlich der sogenannten evolutionären Berechnung, einer Rastersuche und dergleichen.
-
In Schritt S103 gewinnt das Hyperparameteroptimierungsprogramm 20 ein Bewertungsergebnis des Anwenderprogramms auf Basis der eingesetzten Hyperparameter. Bei Gewinnung der Kombination von Hyperparametern seitens des Anwenderprogramms 10, welche erforderlich sind zur Ausführung des Trainingsprozesses, setzt das Anwenderprogramm 10 die Kombination von Hyperparametern ein zur Ausführung des Trainingsprozesses am maschinellen Lernmodell. Bei Abschluss des Trainingsprozesses berechnet das Anwenderprogramm 10 die Genauigkeit, wie die Vorhersageleistungsfähigkeit des maschinellen Lernmodells, welches als Ergebnis gewonnen ist, und liefert die berechnete Genauigkeit als Bewertungsergebnis an das Hyperparameteroptimierungsprogramm 20.
-
In Schritt S104 wird ermittelt, ob die Abschlussbedingung erfüllt ist und wenn die Abschlussbedingung erfüllt ist (S104: JA), wird der Hyperparameteroptimierungsprogramm abgeschlossen. Wird die Abschlussbedingung nicht erfüllt (S104: NEIN), geht der Hyperparameteroptimierungsprogramm zurück zu den Schritten S101 und S102 und das Anwenderprogramm 10 gewinnt eine neue Kombination von Hyperparametern. Dabei kann die Abschlussbedingung beispielsweise sein, dass die Anzahl der Anwendungen der Kombination von Hyperparametern einen vorgegebenen Schwellenwert erreicht hat. Das Verfahren gemäß Schritt S104 kann auch typischerweise in ein Hauptprogramm eingeschrieben sein, welches das Anwenderprogramm 10 und das Hyperparameteroptimierungsprogramm 20 steuert.
-
4 zeigt ein Sequenzdiagramm zur Erläuterung des Hyperparameteroptimierungsverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Beschreibung. Dabei wird das oben mit Bezug auf 3 beschriebene Hyperparameteroptimierungsverfahren beschrieben unter dem Gesichtspunkt des Datenaustauschs zwischen dem Anwenderprogramm 10 und dem Hyperparameteroptimierungsprogramm 20.
-
Entsprechend 4 wird in Schritt S201 das Anwenderprogramm 10 gestartet und in dem maschinellen Lernmodell zu aktualisierende Parameter werden initialisiert.
-
In Schritt S202 bestimmt das Anwenderprogramm 10 einen Hyperparameter P1, der zu gewinnen ist entsprechend dem Hyperparametergewinnungscode, welcher in das Anwenderprogramm 10 geschrieben ist, und das Anwenderprogramm 10 überträgt eine Hyperparametergewinnungsanforderung für den Hyperparameter P1 an das Hyperparameteroptimierungsprogramm 20. Bei Empfang der Hyperparametergewinnungsanforderung ermittelt das Hyperparameteroptimierungsprogramm 20 einen Wert des Hyperparameters P1 und gibt den ermittelten Wert des Hyperparameters P1 zurück an das Anwenderprogramm 10. Beim Gewinnen des Wertes des Hyperparameters P1 ermittelt in ähnlicher Weise das Anwenderprogramm 10 einen Hyperparameter P2, der auch zu gewinnen ist entsprechend der Kontrollstruktur des Hyperparametergewinnungscodes und es überträgt die Hyperparametergewinnungsanforderung für den Hyperparameter P2 an das Hyperparameteroptimierungsprogramm 20. Beim Empfang der Hyperparametergewinnungsanforderung ermittelt das Hyperparameteroptimierungsprogramm 20 einen Wert des Hyperparameters P2 und gibt den ermittelten Wert des Hyperparameters P2 an das Anwenderprogramm 10. In ähnlicher Weise wiederholen das Anwenderprogramm 10 und das Hyperparameteroptimierungsprogramm 20 den vorstehend beschriebenen Austausch, bis eine Kombination von Hyperparametern (P1, P2, ..., PN) gewonnen ist, die erforderlich ist zum Trainieren des maschinellen Lernmodells.
-
Zwar fordert jede Hyperparametergewinnungsanforderung gemäß der Figur einen einzigen Hyperparameter, jedoch ist die Hyperparametergewinnungsanforderung gemäß der vorliegenden Beschreibung nicht hierauf beschränkt. Jede der Hyperparametergewinnungsanforderungen kann mehrere Hyperparameter anfordern. Da beispielsweise Hyperparameter, wie eine Lernrate, eine Lernperiode, eine Rauschrate und dergleichen unabhängig voneinander einstellbar sind, können diese Hyperparameter zusammen durch eine einzige Hyperparametergewinnungsanforderung angefordert werden. Entsprechend wird ein Hyperparameter, wie der Typ des maschinellen Lernmodells, ein Lernalgorithmus oder dergleichen durch eine einzige Hyperparametergewinnungsanforderung angefordert, weil ein Hyperparameter die Auswahl des anderen Hyperparameters beeinflusst.
-
In Schritt S203 setzt das Anwenderprogramm 10 die gewonnene Kombination von Hyperparametern ein zum Trainieren des maschinellen Lernmodells. Bei Vervollständigung des Trainingsprozesses berechnet das Anwenderprogramm 10 die Genauigkeit des maschinellen Lernmodells, wie die Vorhersageleistungsfähigkeit, die als Ergebnis gewonnen wird.
-
In Schritt S204 liefert das Anwenderprogramm 10 die berechnete Genauigkeit als Bewertungsergebnis an das Hyperparameteroptimierungsprogramm 20. Das Hyperparameteroptimierungsprogramm 20 speichert die zuvor gewonnene Genauigkeit als Anwendungsverlauf in Verknüpfung mit der eingesetzten Kombination von Hyperparametern und der Anwendungsverlauf wird verwendet zum Auswählen von nachfolgenden Hyperparametern.
-
Die Schritte S202 bis S204 werden wiederholt, bis die Abschlussbedingung erfüllt ist, beispielsweise, dass die Schritte gemäß einer vorgegebenen Anzahl ausgeführt worden sind.
-
Bei diesem Ausführungsbeispiel kann die Hyperparametergewinnungsanforderung den Typ des maschinellen Lernmodells anfordern sowie einen Hyperparameter, der spezifisch ist für den Typ des maschinellen Lernmodells entsprechend der Kontrollstruktur.
-
Beispielsweise kann die Hyperparametergewinnungsanforderung generiert werden entsprechend einem Hyperparametergewinnungscode, der in 5 dargestellt ist. Zunächst werden „ein Typ des maschinellen Lernmodells“ oder „ein Typ des Classifiers (Klassifizierer)“ als Hyperparameter gewonnen. Beim in der Figur dargestellten Beispiel fragt das Anwenderprogramm 10 im Hyperparameteroptimierungsprogramm 20, ob „eine „Support Vector Classification (Stützvektor-Klassifizierung (SVC))“ oder das „Random Forest“-Verfahren (Klassifikationsverfahren mit unkorrelierten Entscheidungsbäumen) eingesetzt werden soll.
-
Wählt das Hyperparameteroptimierungsprogramm 20 „SVC“, dann überträgt das Anwenderprogramm 10 eine Hyperparametergewinnungsanforderung für „svc_c“ als zusätzlichen Hyperparameter an das Hyperparameteroptimierungsprogramm 20. Wählt das Hyperparameteroptimierungsprogramm 20 „Random Forest“, überträgt das Anwenderprogramm 10 eine Hyperparametergewinnungsanforderung für „rf_max_depth“ für einen weiteren Hyperparameter an das Hyperparameteroptimierungsprogramm 20.
-
Anschließend wendet das Anwenderprogramm 10 die gewonnenen Hyperparameter an, um den Trainingsprozess mit dem maschinellen Lernmodell auszuführen, berechnet die Genauigkeit oder den Fehler des im Ergebnis gewonnenen maschinellen Lernmodells und überträgt die Genauigkeit oder den Fehler an das Hyperparameteroptimierungsprogramm 20. Die Anzahl der Versuche (n_trial) ist definiert im Hauptprogramm und bei dem in der Figur dargestellten Beispiel wird der vorstehende Prozess 100 Mal wiederholt.
-
Mit dem Gegenstand der vorliegenden Beschreibung wird im Vergleich mit der Hyperparameteroptimierungssoftware gemäß dem Stand der Technik die Wartung des Programms für den Anwender verbessert durch Einschreiben des Hyperparametergewinnungscodes, welcher die zu gewinnenden Hyperparameter definiert, in das Anwenderprogramm 10, welches die Hyperparameter einsetzt, an Stelle der Hyperparameteroptimierungssoftware. Weiterhin kann eine komplexe Kontrollstruktur, mit z.B. bedingten Verzweigungen, eingesetzt werden für die Anforderung und die Gewinnung von passenden Hyperparametern entsprechend den sequenziell ausgewählten Hyperparametern.
-
Bei dem Ausführungsbeispiel kann der Hyperparametergewinnungscode ein Modul enthalten zum Einstellen von Hyperparametern, welche eine Struktur des maschinellen Lernmodells bestimmen, und eines Moduls zum Einstellen von Hyperparametern, welche einen Trainingsprozess des maschinellen Lernmodells bestimmen. Bei dem in 6 dargestellten Hyperparametergewinnungscode sind beispielsweise ein Modul bezüglich des Aufbaus des maschinellen Lernmodells (def create_model) und ein Modul für die Einstellung von Hyperparametern des maschinellen Lernmodells (def create_optimizer) getrennt geschrieben.
-
Wie beschrieben, kann gemäß der vorliegenden Beschreibung der Hyperparametergewinnungscode in verschiedene Module modularisiert werden, wodurch die Zusammenarbeit von mehreren Programmierern bei der Erzeugung des Hyperparametergewinnungscodes erleichtert wird.
-
Beim oben beschriebenen Ausführungsbeispiel wurde eine Hyperparameteroptimierungstechnik zum Einstellen von Hyperparametern in das Anwenderprogramm zum Trainieren eines maschinellen Lernmodells näher beschrieben. Jedoch ist das Anwenderprogramm gemäß der vorliegenden Beschreibung nicht hierauf beschränkt, es kann sich um ein jegliches Programm handeln. Das heißt: die Hyperparameteroptimierungstechnik gemäß der vorliegenden Beschreibung kann eingesetzt werden zum Einstellen von jeglichen Hyperparametern, welche die Ausführungsergebnisse oder die Leistungsfähigkeit des Anwenderprogramms beeinflussen. Beispiele hierfür, die verschieden sind vom maschinellen Lernen, sind die Steigerung der Geschwindigkeit eines Programms und die Verbesserung einer Nutzerschnittstelle. Beispielsweise kann bezüglich der Geschwindigkeit des Programms ein Wert bezüglich des eingesetzten Algorithmus und eine Puffergröße für die Hyperparameter eingesetzt werden und die Geschwindigkeit des Programms kann verbessert werden durch Optimierung der Hyperparameter zur Erhöhung der Geschwindigkeit. Bei Entwurf einer Nutzerschnittstelle kann die Anordnung und Größe der Tasten für die Hyperparameter eingesetzt werden und die Nutzerschnittstelle kann verbessert werden durch Optimierung der Hyperparameter, um damit das Verhalten des Nutzers zu verbessern.
-
Zwar wurde das Ausführungsbeispiel der vorliegenden Erfindung oben näher im Einzelnen beschrieben, jedoch ist die vorliegende Erfindung nicht auf das spezielle, oben beschriebene Ausführungsbeispiel beschränkt; es sind verschiedene Abwandlungen und Änderungen möglich, ohne den Umfang des beanspruchten Gegenstandes der vorliegenden Erfindung zu verlassen.
-
Diese internationale Patentanmeldung basiert auf der japanischen Patentanmeldung
2018-191250 , angemeldet am 9. Oktober 2018, und beansprucht deren Priorität; der gesamte Inhalt dieser Anmeldung ist in die vorliegende Anmeldung im Wege der Bezugnahme eingeschlossen.
-
Bezugszeichenliste
-
- 10
- Anwenderprogramm
- 20
- Hyperparameteroptimierungsprogramm
- 100
- Hyperparameteroptimierungsvorrichtung
- 101
- Prozessor
- 102
- Speicher
- 103
- Festplatte
- 104
- Eingabe-/Ausgabeschnittstelle
-
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 2017 [0005]
- JP 49677 [0005]
- JP 2017228068 [0005]
- JP 2018191250 [0052]