(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-21
(54)【発明の名称】機械学習ハイパーパラメータチューニング
(51)【国際特許分類】
G06N 3/0985 20230101AFI20240514BHJP
【FI】
G06N3/0985
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023571357
(86)(22)【出願日】2022-05-15
(85)【翻訳文提出日】2024-01-12
(86)【国際出願番号】 US2022072332
(87)【国際公開番号】W WO2022246378
(87)【国際公開日】2022-11-24
(32)【優先日】2021-05-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ウー,ジアシュン
(72)【発明者】
【氏名】イェ,ズーチュアン
(72)【発明者】
【氏名】デン,ミンゴー
(72)【発明者】
【氏名】ホルマティ,アミル
(57)【要約】
方法(400)は、データ処理ハードウェア(144)により実行されるときに、データ処理ハードウェア(144)に、機械学習モデル(210)の1つまたは複数のハイパーパラメータ(22)の最適化を要求するハイパーパラメータ最適化要求(20)をユーザデバイス(10)から受け取ることを含む動作を実行させる。動作は、機械学習モデル(210)をトレーニングするためのトレーニングデータ(152)を取得することと、ハイパーパラメータのハイパーパラメータパーミュテーション(232)のセットを決定することとを含む。ハイパーパラメータパーミュテーションのセット内のそれぞれのハイパーパラメータパーミュテーションの各々に関して、動作は、トレーニングデータおよびそれぞれのハイパーパラメータパーミュテーションを使用してユニーク機械学習モデルをトレーニングすることと、トレーニングされたモデルのパフォーマンス(182)を決定することとを含む。動作は、ユーザデバイスのトレーニングされたユニーク機械学習モデルの各々のパフォーマンスに基づいて、トレーニングされたモデルのうちの1つを選択することを含む。動作は、トレーニングされたモデルのうちの選択された1つを使用して1つまたは複数の予測を生成することを含む。
【特許請求の範囲】
【請求項1】
データ処理ハードウェア(144)により実行されるときに前記データ処理ハードウェア(144)に動作を実行させるコンピュータが実行する方法(400)であって、前記動作は、
ユーザデバイス(10)から、機械学習モデル(210)の1つまたは複数のハイパーパラメータ(22)の最適化を要求するハイパーパラメータ最適化要求(20)を受け取ることと、
前記機械学習モデル(210)をトレーニングするためのトレーニングデータ(152)を取得することと、
前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)のハイパーパラメータパーミュテーション(232)のセットを決定することと、
前記ハイパーパラメータパーミュテーション(232)のセット内のそれぞれのハイパーパラメータパーミュテーション(232)の各々に関して、
前記トレーニングデータ(152)および前記それぞれのハイパーパラメータパーミュテーション(232)を使用してユニーク機械学習モデル(210)をトレーニングすることと、
トレーニングされた前記ユニーク機械学習モデル(210)のパフォーマンス(182)を決定することと、
トレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)に基づいて、トレーニングされた前記ユニーク機械学習モデル(210)のうちの1つを選択することと、
トレーニングされた前記ユニーク機械学習モデル(210)のうちの選択された前記1つを使用して1つまたは複数の予測(174)を生成することとを含む、方法(400)。
【請求項2】
前記ハイパーパラメータパーミュテーション(232)のセットを決定することは、前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)のハイパーパラメータ探索空間(234)で探索を実行することを含む、請求項1に記載の方法(400)。
【請求項3】
前記ハイパーパラメータ探索空間(234)で前記探索を実行することは、バッチ式ガウス過程バンディット最適化を使用して前記探索を実行することを含む、請求項2に記載の方法(400)。
【請求項4】
前記ハイパーパラメータパーミュテーション(232)のセットを決定することは、前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)と少なくとも1つのハイパーパラメータ(22)を各々共有する1つまたは複数の先にトレーニングされた機械学習モデル(210)に基づく、請求項1~請求項3のいずれかに記載の方法(400)。
【請求項5】
前記1つまたは複数の先にトレーニングされた前記機械学習モデル(210)は、前記ユーザデバイス(10)のユーザ(12)と関係づけられる、請求項4に記載の方法(400)。
【請求項6】
前記ユニーク機械学習モデル(210)をトレーニングすることは、並列に2つ以上のユニーク機械学習モデル(210)をトレーニングすることを含む、請求項1~請求項5のいずれかに記載の方法(400)。
【請求項7】
トレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンスを前記ユーザデバイス(10)に提供することは、どのトレーニングされたユニーク機械学習モデル(210)が前記トレーニングデータ(152)に基づいて最高のパフォーマンス(182)を有するかを示す指示を前記ユーザデバイス(10)に提供することを含む、請求項1~請求項6のいずれかに記載の方法(400)。
【請求項8】
前記ハイパーパラメータ最適化要求(20)は、SQLクエリを含む、請求項1~請求項7のいずれかに記載の方法(400)。
【請求項9】
前記ハイパーパラメータ最適化要求(20)は、バジェット(320)を含み、
前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)の前記ハイパーパラメータパーミュテーション(232)のセットのサイズは、前記バジェット(320)に基づく、請求項1~請求項8のいずれかに記載の方法(400)。
【請求項10】
前記データ処理ハードウェア(144)は、分散型コンピューティングデータベースシステム(140)の一部である、請求項1~請求項9のいずれかに記載の方法(400)。
【請求項11】
トレーニングされた前記ユニーク機械学習モデル(210)のうちの前記1つを選択することは、
前記ユーザデバイス(10)へトレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)を送信することと、
前記ユーザデバイス(10)から、トレーニングされた前記ユニーク機械学習モデル(210)のうちの前記1つを選択するトレーニングされたユニーク機械学習モデル(210)選択を受け取ることとを含む、請求項1~請求項10のいずれかに記載の方法(400)。
【請求項12】
データ処理ハードウェア(144)と、
前記データ処理ハードウェア(144)と通信するメモリハードウェア(146)とを備え、前記メモリハードウェア(146)は、命令を記憶し、前記命令は、前記データ処理ハードウェア(144)上で実行されるときに、前記データ処理ハードウェア(144)に動作を実行させ、前記動作は、
ユーザデバイス(10)から、機械学習モデル(210)の1つまたは複数のハイパーパラメータ(22)の最適化を要求するハイパーパラメータ最適化要求(20)を受け取ることと、
前記機械学習モデル(210)をトレーニングするためのトレーニングデータ(152)を取得することと、
前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)のハイパーパラメータパーミュテーション(232)のセットを決定することと、
前記ハイパーパラメータパーミュテーション(232)のセット内のそれぞれのハイパーパラメータパーミュテーション(22)の各々に関して、
前記トレーニングデータ(152)および前記それぞれのハイパーパラメータパーミュテーション(232)を使用してユニーク機械学習モデル(210)をトレーニングすることと、
トレーニングされた前記ユニーク機械学習モデル(210)のパフォーマンス(182)を決定することと、
トレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)に基づいて、トレーニングされた前記ユニーク機械学習モデル(210)のうちの1つを選択することと、
トレーニングされた前記ユニーク機械学習モデル(210)のうちの選択された前記1つを使用して1つまたは複数の予測(174)を生成することとを含む、システム(100)。
【請求項13】
前記ハイパーパラメータパーミュテーション(232)のセットを決定することは、前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)のハイパーパラメータ探索空間(234)で探索を実行することを含む、請求項12に記載のシステム(100)。
【請求項14】
前記ハイパーパラメータ探索空間(234)で前記探索を実行することは、バッチ式ガウス過程バンディット最適化を使用して前記探索を実行することを含む、請求項13に記載のシステム(100)。
【請求項15】
前記ハイパーパラメータパーミュテーション(232)のセットを決定することは、前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)と少なくとも1つのハイパーパラメータ(22)を各々共有する1つまたは複数の先にトレーニングされた機械学習モデル(210)に基づく、請求項12~請求項14のいずれかに記載のシステム(100)。
【請求項16】
前記1つまたは複数の先にトレーニングされた前記機械学習モデル(210)は、前記ユーザデバイス(10)のユーザ(12)と関係づけられる、請求項15に記載のシステム(100)。
【請求項17】
前記ユニーク機械学習モデル(210)をトレーニングすることは、並列に前記ユニーク機械学習モデル(210)のうちの2つ以上をトレーニングすることを含む、請求項12~請求項16のいずれかに記載のシステム(100)。
【請求項18】
トレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)を前記ユーザデバイス(10)に提供することは、どのトレーニングされたユニーク機械学習モデル(210)が前記トレーニングデータ(152)に基づいて最高のパフォーマンス(182)を有するかを示す指示を前記ユーザデバイス(10)に提供することを含む、請求項12~請求項17のいずれかに記載のシステム(100)。
【請求項19】
前記ハイパーパラメータ最適化要求(20)は、SQLクエリを含む、請求項12~請求項18のいずれかに記載のシステム(100)。
【請求項20】
前記ハイパーパラメータ最適化要求(20)は、バジェット(320)を含み、
前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)の前記ハイパーパラメータパーミュテーション(232)のセットのサイズは、前記バジェット(320)に基づく、請求項12~請求項19のいずれかに記載のシステム(100)。
【請求項21】
前記データ処理ハードウェア(144)は、分散型コンピューティングデータベースシステム(140)の一部である、請求項12~請求項20のいずれかに記載のシステム(100)。
【請求項22】
トレーニングされた前記ユニーク機械学習モデル(210)のうちの前記1つを選択することは、
前記ユーザデバイス(10)へトレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)を送信することと、
前記ユーザデバイス(10)から、トレーニングされた前記ユニーク機械学習モデル(210)のうちの前記1つを選択するトレーニングされたユニーク機械学習モデル(210)選択を受け取ることとを含む、請求項12~請求項21のいずれかに記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
この開示は、機械学習ハイパーパラメータチューニングに関する。
【発明の概要】
【発明が解決しようとする課題】
【0002】
背景
機械学習ハイパーパラメータは、機械学習モデルの学習プロセスを制御するために使用される値である。例えば、機械学習ハイパーパラメータは、モデルのトポロジー、モデルのサイズ、およびモデルの学習率を含む。ハイパーパラメータがトレーニングデータにモデルをフィッティングしている間には推論され得ないという理由で、ハイパーパラメータチューニングは、従来は手作業の試行錯誤の試みである。このように、従来の機械学習モデルでは、時間およびリソースのかなりの部分が、最適なハイパーパラメータを探索することまたは決定することを狙って高度で、手作業の、そして骨の折れる検討を実行することを要求されることがある。
【課題を解決するための手段】
【0003】
概要
開示の1つの態様は、データ処理ハードウェアにより実行されるときにデータ処理ハードウェアに動作を実行させる機械学習ハイパーパラメータチューニングを実行するためのコンピュータが実行する方法を提供する。動作は、ユーザデバイスから、機械学習モデルの1つまたは複数のハイパーパラメータの最適化を要求するハイパーパラメータ最適化要求を受け取ることを含む。動作はまた、機械学習モデルをトレーニングするためのトレーニングデータを取得することと、機械学習モデルの1つまたは複数のハイパーパラメータのハイパーパラメータパーミュテーションのセットを決定することとを含む。ハイパーパラメータパーミュテーションのセット内のそれぞれのハイパーパラメータパーミュテーションの各々に関して、動作は、トレーニングデータおよびそれぞれのハイパーパラメータパーミュテーションを使用してユニーク機械学習モデルをトレーニングすることと、トレーニングされたユニーク機械学習モデルのパフォーマンスを決定することとを含む。動作はまた、トレーニングされたユニーク機械学習モデルの各々のパフォーマンスに基づいて、トレーニングされたユニーク機械学習モデルのうちの1つを選択することも含む。動作は、トレーニングされたユニーク機械学習モデルのうちの選択された1つを使用して1つまたは複数の予測を生成することを含む。
【0004】
開示の実装形態は、下記の任意選択の特徴のうちの1つまたは複数を含むことがある。いくつかの実装形態では、動作は、機械学習モデルの1つまたは複数のハイパーパラメータのハイパーパラメータ探索空間で探索を実行することを含むハイパーパラメータパーミュテーションのセットを決定することを含む。これらの実装形態のうちのいくつかでは、動作は、バッチ式ガウス過程バンディット最適化を使用して探索を実行することを含む。任意選択で、動作は、機械学習モデルの1つまたは複数のハイパーパラメータと少なくとも1つのハイパーパラメータを各々共有する1つまたは複数の先にトレーニングされた機械学習モデルに基づいてハイパーパラメータパーミュテーションのセットを決定することを含む。1つまたは複数の先にトレーニングされた機械学習モデルは、ユーザデバイスのユーザと関係づけられることがある。
【0005】
いくつかの例では、ユニーク機械学習モデルをトレーニングすることは、並列に2つ以上のユニーク機械学習モデルをトレーニングすることを含む。任意選択で、トレーニングされたユニーク機械学習モデルの各々のパフォーマンスをユーザデバイスに提供することは、どのトレーニングされたユニーク機械学習モデルがトレーニングデータに基づいて最高のパフォーマンスを有するかを示す指示をユーザデバイスに提供することを含む。ハイパーパラメータ最適化要求は、SQLクエリを含むことがある。任意選択で、ハイパーパラメータ最適化要求は、バジェットを含み、そして機械学習モデルの1つまたは複数のハイパーパラメータのハイパーパラメータパーミュテーションのサイズは、バジェットに基づく。いくつかの例では、データ処理ハードウェアは、分散型コンピューティングデータベースシステムの一部である。もう1つの実装形態では、トレーニングされたユニーク機械学習モデルのうちの1つを選択することは、ユーザデバイスへトレーニングされたユニーク機械学習モデルの各々のパフォーマンスを送信することと、ユーザデバイスから、トレーニングされたユニーク機械学習モデルの1つを選択するトレーニングされたユニーク機械学習モデル選択を受け取ることとを含む。
【0006】
開示のもう1つの態様は、機械学習ハイパーパラメータチューニングを実行するためのシステムを提供する。システムは、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを含む。メモリハードウェアは、データ処理ハードウェア上で実行されるときに、データ処理ハードウェアに動作を実行させる命令を記憶する。動作は、ユーザデバイスから、機械学習モデルの1つまたは複数のハイパーパラメータの最適化を要求するハイパーパラメータ最適化要求を受け取ることを含む。動作はまた、機械学習モデルをトレーニングするためのトレーニングデータを取得することと、機械学習モデルの1つまたは複数のハイパーパラメータのハイパーパラメータパーミュテーションのセットを決定することとを含む。ハイパーパラメータパーミュテーションのセット内のそれぞれのハイパーパラメータパーミュテーションの各々に関して、動作は、トレーニングデータおよびそれぞれのハイパーパラメータパーミュテーションを使用してユニーク機械学習モデルをトレーニングすることと、トレーニングされたユニーク機械学習モデルのパフォーマンスを決定することとを含む。動作はまた、トレーニングされたユニーク機械学習モデルの各々のパフォーマンスに基づいて、トレーニングされたユニーク機械学習モデルのうちの1つを選択することも含む。動作は、トレーニングされたユニーク機械学習モデルのうちの選択された1つを使用して1つまたは複数の予測を生成することを含む。
【0007】
この態様は、下記の任意選択の特徴のうちの1つまたは複数を含むことがある。いくつかの実装形態では、動作は、機械学習モデルの1つまたは複数のハイパーパラメータのハイパーパラメータ探索空間で探索を実行することを含むハイパーパラメータパーミュテーションのセットを決定することを含む。これらの実装形態のうちのいくつかでは、動作は、バッチ式ガウス過程バンディット最適化を使用して探索を実行することを含む。任意選択で、動作は、機械学習モデルの1つまたは複数のハイパーパラメータと少なくとも1つのハイパーパラメータを各々共有する1つまたは複数の先にトレーニングされた機械学習モデルに基づいてハイパーパラメータパーミュテーションのセットを決定することを含む。1つまたは複数の先にトレーニングされた機械学習モデルは、ユーザデバイスのユーザと関係づけられることがある。
【0008】
いくつかの例では、ユニーク機械学習モデルをトレーニングすることは、並列に2つ以上のユニーク機械学習モデルをトレーニングすることを含む。任意選択で、トレーニングされたユニーク機械学習モデルの各々のパフォーマンスをユーザデバイスに提供することは、どのトレーニングされたユニーク機械学習モデルがトレーニングデータに基づいて最高のパフォーマンスを有するかを示す指示をユーザデバイスに提供することを含む。ハイパーパラメータ最適化要求は、SQLクエリを含むことがある。任意選択で、ハイパーパラメータ最適化要求は、バジェットを含み、そして機械学習モデルの1つまたは複数のハイパーパラメータのハイパーパラメータパーミュテーションのサイズは、バジェットに基づく。いくつかの例では、データ処理ハードウェアは、分散型コンピューティングデータベースシステムの一部である。もう1つの実装形態では、トレーニングされたユニーク機械学習モデルのうちの1つを選択することは、ユーザデバイスへトレーニングされたユニーク機械学習モデルの各々のパフォーマンスを送信することと、ユーザデバイスから、トレーニングされたユニーク機械学習モデルのうちの1つを選択するトレーニングされたユニーク機械学習モデル選択を受け取ることとを含む。
【0009】
開示の1つまたは複数の実装形態の詳細は、添付の図面および下記の説明に記述される。他の態様、特徴、および利点は、説明および図面から、ならびに特許請求の範囲から明らかであろう。
【図面の簡単な説明】
【0010】
【
図1】機械学習ハイパーパラメータチューニングのための例のシステムの模式図である。
【
図2】ハイパーパラメータ探索空間を探索するためのハイパーパラメータコントローラの構成要素の模式図である。
【
図3A】パーミュテーションコントローラ用の増加しているバジェットを受け取るハイパーパラメータコントローラの模式図である。
【
図3B】パーミュテーションコントローラ用の減少しているバジェットを受け取る
図3Aのハイパーパラメータコントローラの模式図である。
【
図4】機械学習ハイパーパラメータチューニングを実行する方法の動作の例の配列のフローチャートである。
【
図5】本明細書において説明されるシステムおよび方法を実装するために使用されることがある例のコンピューティングデバイスの模式図である。
【発明を実施するための形態】
【0011】
様々な図面では類似の参照符号は、類似の要素を表す。
詳細な説明
機械学習ハイパーパラメータは、機械学習モデルの学習プロセスを制御するために使用される値である。例えば、機械学習ハイパーパラメータは、モデルのトポロジー、モデルのサイズ、およびモデルの学習率を含む。ハイパーパラメータがトレーニングデータにモデルをフィッティングしている間には推論され得ないという理由で、ハイパーパラメータチューニングは、従来方式では手作業の試行錯誤の試みである。このように、従来方式の機械学習モデルでは、時間およびリソースのかなりの部分が、最適なハイパーパラメータの決定および/または探索に要求されることがある。このように、ハイパーパラメータチューニングおよび機械学習モデルのトレーニングを完全にまたは部分的に自動化できる(すなわち、手作業のチューニングを削減するまたは削除できる)コントローラを組み込むことが有利であり、クラウドコンピューティングシステムを活用することによって効率をさらに最適化することができる。
【0012】
本明細書における実装形態は、分散型コンピューティングシステム(例えば、クラウドデータベースシステム)同士の間で自動ハイパーパラメータチューニングを実施するハイパーパラメータコントローラを含む。コントローラは、ユーザがクラウドコンピューティングシステム内でハイパーパラメータチューニングを自動化することを可能にする構造化クエリ言語(SQL)に基づくインターフェースを実装することができ、探索アルゴリズムは、機械学習モデルをトレーニングするための最適ハイパーパラメータを自動的に探索することができる。例えば、コントローラは、機械学習モデルのトレーニング中の使用のための自動ハイパーパラメータ探索のための探索空間を含んでもよい。
【0013】
加えて、コントローラは、将来のモデルのトレーニングを実行するために先にトレーニングされたモデルを集めそして適用することができる。これが、システム内の新しいモデルをアップデートしトレーニングするために、先の記憶されている情報を利用することによってシステムの効率を最大にする。最適化されているハイパーパラメータを探索し適用する自動化されているプロセスは、ユーザが手作業で探索することおよび個々のモデルレベルでの比較を行うことから解放されるように、ユーザにとっての効率を最大にする。システムは、トレーニング時間を大いに削減するために1回のイテレーションで(すなわち、並列に)複数のモデルをトレーニングすることが可能である。システムは、各々のトレーニングされたモデルのパフォーマンスをユーザに提供することができ、いくつかの例では、自動的にトレーニングされたモデルの各々から最良のモデルを選択することができる。
【0014】
ここで
図1を参照すると、いくつかの実装形態では、例のハイパーパラメータチューニングシステム100は、ネットワーク112を介して1つまたは複数のユーザデバイス10と通信するリモートシステム140を含む。リモートシステム140は、単一のコンピュータ、複数のコンピュータまたは、コンピューティングリソース144(例えば、データ処理ハードウェア)および/もしくはストレージリソース146(例えば、メモリハードウェア)を含むスケーラブル/エラスティックリソース142を有している分散型システム(例えば、クラウド環境)であってもよい。データストア150(すなわち、リモートストレージデバイス)は、クライアント(例えば、ユーザデバイス10)またはコンピューティングリソース144のうちの1つまたは複数によるストレージリソース146のスケーラブルな使用を可能にするために、ストレージリソース146上にオーバーレイされてもよい。データストア150は、(例えば、クラウドデータベース内に)トレーニングデータ152を記憶するように構成される。トレーニングデータ152は、ユーザ12と関係づけられるまたはユーザ12により制御されることがある。
【0015】
リモートシステム140は、例えば、ネットワーク112を介してそれぞれのユーザ12に関係づけられているユーザデバイス10からハイパーパラメータ最適化要求20を受け取るように構成される。ユーザデバイス10は、デスクトップワークステーション、ラップトップワークステーション、またはモバイルデバイス(すなわち、スマートフォン)などのいずれかのコンピューティングデバイスに対応してもよい。ユーザデバイス10は、コンピューティングリソース18(例えば、データ処理ハードウェア)および/またはストレージリソース16(例えば、メモリハードウェア)を含む。ユーザ12は、構造化クエリ言語(SQL)インターフェース14を使用して要求20を作成することができる。すなわち、ユーザ12は、SQLクエリを使用してハイパーパラメータ最適化要求20を生成することができる。各々のハイパーパラメータ最適化要求20は、機械学習モデル210の1つまたは複数のハイパーパラメータ22、22a~nを最適化することをリモートシステム140に要求する。
【0016】
リモートシステム140は、ハイパーパラメータコントローラ160が機械学習モデル210の1つまたは複数のハイパーパラメータ22を最適化しそして最適化されているハイパーパラメータ22を使用してモデル210をトレーニングすることをハイパーパラメータコントローラ160に要求する要求20を受け取るハイパーパラメータコントローラ160を実行させる。チューニングするためのハイパーパラメータコントローラ160用の各々のハイパーパラメータ22は、機械学習モデル210をトレーニングするために使用されることがある複数の可能な値を有する。これらのハイパーパラメータ22のある種の可能な値は、他の可能なハイパーパラメータ値22よりもさらに最適である(例えば、より早いまたはより効率的なトレーニングプロセスをもたらす)。
【0017】
ハイパーパラメータコントローラ160は、要求20を受け取りそしてハイパーパラメータ22を取得するパーミュテーションコントローラ230を含む。要求は、チューニング用のハイパーパラメータ22のうちのいくつかまたはすべてを識別できる。加えてまたは代わりに、パーミュテーションコントローラ230は、要求20によっては識別されない1つまたは複数のデフォルトハイパーパラメータ22を取得する。パーミュテーションコントローラ230は、ハイパーパラメータ22に基づいてハイパーパラメータパーミュテーション232、232a~nのセットを生成するまたは決定する。各々のハイパーパラメータパーミュテーション232は、ハイパーパラメータ22のうちの少なくとも1つに関する異なる値を含む。明確にするために単純化されている例を使用すると、パーミュテーションコントローラ230が1、2、または3の可能な値を各々有する3つのハイパーパラメータ22を受け取ると、パーミュテーションコントローラ230は、値{1,1,1}を有する第1のハイパーパラメータパーミュテーション232、値{1,1,2}を有する第2のハイパーパラメータパーミュテーション232、値{1,1,3}を有する第3のハイパーパラメータパーミュテーション232、値{1,2,1}を有する第4のハイパーパラメータパーミュテーション232、等を生成することができる。ハイパーパラメータパーミュテーション232のセットは、機械学習モデル210のハイパーパラメータ22に関する可能性のある値の異なる組み合わせのうちのいくつかまたはすべてを含む。
【0018】
パーミュテーションコントローラ230は、1つまたは複数のチューニングアルゴリズムを使用してハイパーパラメータパーミュテーション232のセットを決定することができる(すなわち、ハイパーパラメータ22をチューニングすることができる)。チューニングアルゴリズムのうちの1つまたは複数は、デフォルトであってもよいおよび/またはユーザ12により(例えば、要求20を介して)選択されてもよい。チューニングアルゴリズムは、機械学習モデル210をトレーニングするために使用されるハイパーパラメータ22、22a~nをチューニングするために(すなわち、値を調節するために)使用されることがある。いくつかの実装形態では、パーミュテーションコントローラ230は、ハイパーパラメータ22が有効であるかまたは無効であるかどうかを決定する。パーミュテーションコントローラ230が、ハイパーパラメータ22が無効である(例えば、無効な値、他のハイパーパラメータ22またはモデル210と不適合である、等)ことを決定すると、そのときには、パーミュテーションコントローラ230は、無効なハイパーパラメータ22を含んでいるハイパーパラメータパーミュテーション232を破棄することができるまたはそうでなければ使用しないことがある。
【0019】
いくつかの例では、要求20は、生成すべき複数のハイパーパラメータパーミュテーション232(または、下記により詳細に論じるように、トレーニングすべき複数の機械学習モデル210)を含む。すなわち、要求は、トレーニングバジェットを含むことができる。パーミュテーションコントローラ230は、バジェットに達したときにハイパーパラメータパーミュテーション232を生成することを停止することができる。例えば、要求20は、生成するハイパーパラメータパーミュテーション232の最大数が100であることをユーザ12が望むことを示す。
【0020】
ハイパーパラメータコントローラ160はまた、モデルトレーナ240も含む。モデルトレーナ240は、機械学習モデル210をトレーニングするためのトレーニングデータ152を取得する。モデルトレーナ240は、例えば、データストア150からトレーニングデータ152を検索することができる。他の例では、要求20は、トレーニングデータ152を含む。トレーニングデータ152は、機械学習モデル210が(例えば、テキスト、画像、オーディオ、等)を受け取るようにトレーニングされる任意のタイプのデータを含むことができる。例えば、トレーニングデータ152は、データベースからのデータを含み、そして機械学習モデル210は、データベースからの値に基づいて将来の値を予測するためにトレーニングされる。モデルトレーナ240はまた、ハイパーパラメータパーミュテーション232のセット(すなわち、ハイパーパラメータ22の各々に対して異なる値の異なる組み合わせ)も受け取る。
【0021】
ハイパーパラメータパーミュテーション232のセット内のそれぞれのハイパーパラメータパーミュテーション232の各々に関して、モデルトレーナ240は、トレーニングデータ152およびそれぞれのハイパーパラメータパーミュテーション232を使用してユニーク機械学習モデル210、210a~nをトレーニングすることができる。例えば、50個の異なるハイパーパラメータパーミュテーション232があるときに、モデルトレーナ240は、50個の異なる機械学習モデル210(すなわち、50個の異なるハイパーパラメータパーミュテーション232の各々について1個)をトレーニングする。いくつかの例では、要求20は、トレーニングされるモデル210の数をハイパーパラメータパーミュテーション232の全数よりも少ない数に限定するまたは制限する。各々の機械学習モデル210は、対応するハイパーパラメータパーミュテーション232により要求されるハイパーパラメータ22を使用する同じトレーニングデータ152を使用してトレーニングされることがある。すなわち、各々の機械学習モデル210は、同じトレーニングデータ152であるがハイパーパラメータ22に関しては異なる値を使用してトレーニングされる。モデルトレーナ240は、下記により詳細に説明されるように、並列に(すなわち、同時に)機械学習モデル210のうちの2つ以上をトレーニングすることができる。あるいは、モデルトレーナ240は、直列にモデル210をトレーニングすることができる。
【0022】
ここで
図2を参照すると、ハイパーパラメータコントローラ160のパーミュテーションコントローラ230は、ハイパーパラメータ探索空間234から(すなわち、ハイパーパラメータ探索空間234を探索することによって)ハイパーパラメータパーミュテーション232のセットを決定する。ハイパーパラメータ探索空間234は、ハイパーパラメータ22チューニングに関するすべての可能な解決策のセットを規定する利用可能な領域を表す。例えば、100個の可能な値を各々有する状態の10個のハイパーパラメータ22を用いると、ハイパーパラメータ探索空間234は、全部で100
10個の可能な解を含む。ハイパーパラメータ22の数が多くなるにつれて、ハイパーパラメータ探索空間234は計り知れないサイズに急速に大きくなることは容易に明らかである。したがって、パーミュテーションコントローラ230は、既知の取るに足りない部分を破棄することによっておよび/または既知の効果的な部分に焦点を当てることによってハイパーパラメータ探索空間234をインテリジェントにまたは効率的に「削減する」ことを試みることができる。
【0023】
いくつかの実装形態では、パーミュテーションコントローラ230は、モデルトレーナ240により先にトレーニングされたモデル210に少なくとも部分的に基づいてハイパーパラメータパーミュテーション232のセットを決定する。模式
図200により示されるように、パーミュテーションコントローラ230は、1つまたは複数のモデル210を決定し、モデルトレーナ240は、(例えば、ユーザ12のプロファイルもしくは識別情報を介して)ユーザ12について先にトレーニングされた、および/またはユーザ12は(例えば、要求20を介して)先にトレーニングされたモデル210のうちの1つもしくは複数を選択するもしくは提供する。これらの実装形態では、先にトレーニングされたモデル210は、ユーザデバイス10のユーザ12に関係づけられる。他の例では、パーミュテーションコントローラ230は、現在のトレーニングデータに類似のトレーニングデータ152とともに先にトレーニングされたモデル210を選択する。ソースに拘わらず、パーミュテーションコントローラ230は、ガイドとして先にトレーニングされたモデル210用に選択されたハイパーパラメータ22を使用してハイパーパラメータパーミュテーション232を決定することができる。例えば、パーミュテーションコントローラ230は、現在の機械学習モデル210および/または要求20のハイパーパラメータ22と少なくとも1つのハイパーパラメータ22を各々共有する1つまたは複数の先にトレーニングされた機械学習モデル210に基づいてハイパーパラメータパーミュテーション232のセットを決定する。パーミュテーションコントローラ230は、先にトレーニングされた機械学習モデル210のハイパーパラメータに沿っているハイパーパラメータ22の値を凍結することまたは制限することによってハイパーパラメータ探索空間234を縮小するために先にトレーニングされた機械学習モデル210のハイパーパラメータ22を使用することができる。パーミュテーションコントローラ230は、データストア150からハイパーパラメータを検索することができる。同様に、一旦、機械学習モデル210をトレーニングすることが完了すると、トレーニングされたモデルのうちの1つまたは複数のハイパーパラメータ22は、データストア150のところのハイパーパラメータテーブルまたは他のデータ構造内に記憶されることがある。テーブルは、モデルトレーナ240が新しい機械学習モデル210をトレーニングするにつれて更新されることがある。
【0024】
いくつかの実装形態では、パーミュテーションコントローラ230は、ハイパーパラメータ22の選択を改善するために転移学習を使用する。これらの実装形態では、パーミュテーションコントローラ230は、最適なハイパーパラメータ22を探索することを改善するために同じハイパーパラメータ22の少なくともあるサブセットを含み、ユーザ12に関係づけられている先にトレーニングされた(すなわち、現在の最適化要求20を受け取る前にトレーニングされた)機械学習モデル210からのデータを活用する。転移学習は、ハイパーパラメータ22の初期バッチがランダムエクスプロレーション(random exploration)を介して選択される「コールドスタート」の回避に役立つことがある。上に論じたように、先にトレーニングされた機械学習モデル210は、現在の最適化要求20を提供した同じユーザ12と関係づけられることがある。他の例では、先にトレーニングされた機械学習モデル210は、同じユーザ12には関係づけられていない。
【0025】
いくつかの実装形態では、パーミュテーションコントローラ230は、(例えば、ガウス過程バンディット、共分散行列適応進化戦略、ランダム探索、グリッド探索、等に基づいて)ハイパーパラメータ探索空間234内の最適なハイパーパラメータ22を自動的に見つけるまたは探索するアルゴリズムを使用する。
【0026】
いくつかの例では、ユーザ12は、要求20を介してハイパーパラメータ探索空間234への制限を提供する。例えば、要求20は、1つまたは複数のハイパーパラメータ22の値についての制限または特定のアルゴリズムに対するパーミュテーションコントローラ230の限定を含んでもよい。要求20がそのような限定を提供しないときには、パーミュテーションコントローラ230は、ハイパーパラメータ探索空間234への1つまたは複数のデフォルト限定を適用することができる。加えてまたは代わりに、パーミュテーションコントローラ230は、特定の条件が満足されるときを与えられると適用可能であるだけである条件付きハイパーパラメータ22をサポートする。
【0027】
いくつかの例では、パーミュテーションコントローラ230は、ブラックボックス最適化問題を解くことによって、すなわち、「ブラックボックス」関数目標f:X->Rを最適化するX*を見つけるためにハイパーパラメータチューニングを始める。「ブラックボックス」と言うと、比較的高いコストを有する入力された有限時間が与えられた関数出力を観察できるだけであり、関数のグラジエントおよびヘッシアン、等のような関数fの他の情報を利用できない。いくつかの実装形態では、コントローラは、上記のブラックボックス最適化問題を解くためにデフォルトアルゴリズムとしてガウスプロセスバンディットを使用する、とはいえ、他のアルゴリズム(例えば、共分散行列適応評価戦略、ランダム探索、グリッド探索、等)もまたデフォルトであってもよい。要求20は、特定のアルゴリズムを指定することによっておよび/または外部アルゴリズムを提供することによってデフォルトアルゴリズムを無視してもよい。関数fがxのパラメータ化されているガウス過程として、またはより具体的に、平均u(x)および共分散k(x,x’)を有するf(x)~GP(u(x),k(x,x’))としてモデル化されるときに、コントローラは、ガウス過程回帰フィッティングを使用して解くことができる。
【0028】
いくつかの例では、過去の観測対:(x_1,f(x_1)),(x_2,f(x_2)),...,(x_t,f(x_t))が与えられると、パーミュテーションコントローラ230は、過去の観測を用いてパラメータ化されているガウス過程モデル(ガウス過程リグレッサ)をフィッティングするおよび/またはアップデートする。パーミュテーションコントローラ230は、ベイジアンサンプリング手順を使用してx_t+1を示唆でき、そしてモデル化されているf(x)の平均および分散の両方を最大化するマルチアームドバンディット問題(すなわち、x)に関する探査/利用バランス戦略が、最大確率を有するx_t+1として選択されるだろう。
【0029】
ここで
図3Aおよび
図3Bを参照すると、ユーザは、例えば、要求20を介して提供されているバジェット320に基づいてトレーニングされたモデル210の総数(および並列にトレーニングされたモデル210の数)を設定することができるまたは特定することができるまたは要求することができる。バジェット320は、ユーザ12が実行してしまうように要求する試みの数、リモートシステム140を動作させるもしくは利用するコストに関係する金銭的な値、ユーザ12がトレーニングされてしまうことを選択するモデル210の数、および/またはユーザ12がパラメータを設定してしまうことがある他の態様に対応することがある。例えば、
図3Aに描かれているように、ユーザ12は、5つのハイパーパラメータパーミュテーション232、232a~eを生成しているパーミュテーションコントローラ230をもたらすバジェット320の増加を設定する。ハイパーパラメータパーミュテーション232の数は、この例では、モデルトレーナ240がトレーニングするモデル210の数に直接対応する。模式
図300aは、パーミュテーションコントローラ230から受け取られている5つのハイパーパラメータパーミュテーション232、232a~eと対応する5つのモデル210、210a~eをトレーニングしているモデルトレーナ240を含む。
図3Aの例を続けると、模式
図300b(
図3B)は、より少ないモデル210がトレーニングされるようにバジェット320を減少させるユーザ12を図示する。ここでは、減少しているバジェット320は、パーミュテーションコントローラ230により生成される2つのハイパーパラメータパーミュテーション232a、232bをもたらす。結果として、モデルトレーナ240は、2つのモデル210a、210bをトレーニングする。バジェット320は、5つよりも多くのモデル210、210a~nが5つよりも多くのパーミュテーション232、232a~nを使用してトレーニングされ得るおよび/または単一のモデル210が単一のハイパーパラメータパーミュテーション232を使用してトレーニングされ得るように、ユーザ12の計算パラメータに応じて調節されることがある。これらは、単純化されている例であり、リモートシステムは、数百の、数千の、またはそれどころか数百万の異なるハイパーパラメータパーミュテーション232を生成することができる。
【0030】
モデルトレーナ240によりトレーニングされたモデル210の数は、パーミュテーションコントローラ230からのハイパーパラメータパーミュテーション232の数に直接関係を持つことがある。バジェット320は、パーミュテーションコントローラ230により決定されるハイパーパラメータパーミュテーション232の数を指図することによってトレーニングされるモデル210の数をこのように指図することができる。別なふうに言うと、ユーザ12は、バジェット320のサイズを調節することによって生成されるモデル210の数を調節することができる。加えてまたは代わりに、バジェット320は、ハイパーパラメータ探索空間234を探索するデフォルト量がバジェット320に基づいて選択され得るように、ハイパーパラメータ探索空間234を探索する大きさ(例えば、持続時間、費やすべきリソースの量、等)を決定するために使用されることがある。例えば、ハイパーパラメータコントローラ160は、割り当てられているバジェット320内のモデル210の優先順位に基づいてハイパーパラメータ22をチューニングする。
【0031】
図1に戻って参照すると、一旦、モデルトレーナ240がモデル210をトレーニングすると、パフォーマンスコントローラ180は、各々のトレーニングされたモデル210のそれぞれのパフォーマンス182、182a~nを決定する。例えば、パフォーマンスコントローラ180は、トレーニングサンプルのラベルまたはアノテーションを各々のモデル210により生成される予測と比較することによって各々のモデル210の精度を測定するためにトレーニングデータ152のうちのいくつかまたはすべてを使用する。パフォーマンスコントローラ180は、ユーザデバイス10へ決定されているパフォーマンス182を提供する。ハイパーパラメータコントローラ160は、パフォーマンス182とともにモデル210の他の属性(例えば、モデル210のサイズ)を送ることができる。ユーザ12は、提供されているパフォーマンス182および/または他の属性に基づいてトレーニングされたモデル210のうちの1つまたは複数を選択することができる。いくつかの例では、ハイパーパラメータコントローラ160は、モデル210(例えば、最高のパフォーマンス182を有するモデル210またはデフォルト基準または他の予め選択された基準を満足するモデル210)を自動的に選択する。これらの例では、ハイパーパラメータコントローラ160は、モデル210が選択されたユーザ12へ指示を提供することができる。いくつかの実装形態では、パフォーマンス182に加えて、パフォーマンスコントローラ180は、トレーニングされたモデル210がトレーニングデータ152に基づいて最高のパフォーマンス182を有する指示184を(すなわち、ネットワーク112を介して送信することによって)提供する。ユーザ12は、指示184、およびハイパーパラメータコントローラ160により提供されているいずれかの他の属性に基づいてトレーニングされたモデル210のうちのどれを選択するかをさらに判断することができる。
【0032】
ユーザ12は、ハイパーパラメータコントローラ160の予測生成器170へトレーニングされたモデル選択172を送ることによってトレーニングされた機械学習モデル210のうちの1つを選択することができる。他の例では、パフォーマンスコントローラ180は、予測生成器170へトレーニングされたモデル選択172を送る。予測生成器170は、ユーザデバイス10から受け取っているモデル選択172に基づいて予測174を生成する。例えば、予測生成器170は、追加データを(例えば、データストア150を介してまたはユーザデバイス10を介して)受け取り、そして選択されるモデル210は、追加データに基づいて1つまたは複数の予測を作成する。予測174は、ユーザデバイス10へ提供されることがある。あるいは、ハイパーパラメータコントローラ160は、ユーザデバイスをバイパスしてもよく、そして直接に最高のパフォーマンス182を有するトレーニングされたユニークモデル210のうちの1つを選択するトレーニングされたモデル選択17を単純に生成し、次いで予測174を生成するために直接的に予測生成器170へトレーニングされたモデル選択172を提供する。
【0033】
図4は、ハイパーパラメータ22をチューニングする方法400に関する動作の例示的な配列のフローチャートである。コンピュータが実行する方法400は、データ処理ハードウェア144により実行されるときに、データ処理ハードウェア144に動作を実行させる。方法400は、動作402において、ユーザデバイス10から、ハイパーパラメータ最適化要求20を受け取ることを含む。ハイパーパラメータ最適化要求20は、機械学習モデル210の1つまたは複数のハイパーパラメータ22の最適化を要求する。方法400は、動作404において、機械学習モデル210をトレーニングするためのトレーニングデータ152を取得することを含む。方法400は、動作406において、機械学習モデル210のハイパーパラメータパーミュテーション232のセットを決定することを含む。方法400は、動作408において、トレーニングデータ152およびそれぞれのハイパーパラメータパーミュテーション232を使用してユニーク機械学習モデル210をトレーニングすることを含む。方法400は、動作410において、トレーニングされたユニーク機械学習モデル210のパフォーマンス182を決定することを含む。方法400は、動作412において、トレーニングされたユニーク機械学習モデル210の各々のパフォーマンス182に基づいて、トレーニングされたユニーク機械学習モデル210のうちの1つを選択することを含む。動作414において、方法400は、トレーニングされたユニーク機械学習モデル210のうちの選択された1つを使用して1つまたは複数の予測174を生成することを含む。
【0034】
図5は、この文書で説明しているシステムおよび方法を実行するために使用され得る例のコンピューティングデバイス500の模式図である。コンピューティングデバイス500は、ラップトップ、デスクトップ、ワークステーション、パーソナルディジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどのディジタルコンピュータの様々な形態を表すものである。ここに示されている構成要素、それらの接続および関係、ならびにそれらの機能は、単に例示的であることを意味し、この文書において説明しているおよび/または権利を主張している開示の実装形態を限定することを意味しない。
【0035】
コンピューティングデバイス500は、プロセッサ510、メモリ520,ストレージデバイス530、メモリ520と高速拡張ポート550とを接続している高速インターフェース/コントローラ540、および低速バス570とストレージデバイス530とを接続している低速インターフェース/コントローラ560を含む。構成要素510、520、530、540、550、および560の各々は、様々なバスを使用して相互接続され、そして共通マザーボード上にまたは必要に応じて他の方式でマウントされてもよい。プロセッサ510は、高速インターフェース540につなげられているディスプレイ580などの外部入力/出力デバイス上のグラフィカルユーザインターフェース(GUI)用のグラフィカル情報を表示するためにメモリ520内にまたはストレージデバイス530に記憶されている命令を含め、コンピューティングデバイス500内での実行のための命令を処理できる。他の実装形態では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよび複数のタイプのメモリとともに使用されることがある。また、複数のコンピューティングデバイス500は、(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)各々のデバイスが必要な動作の一部分を提供する状態で接続されてもよい。
【0036】
メモリ520は、コンピューティングデバイス500内に一過性ではなく情報を記憶する。メモリ520は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってもよい。非一過性メモリ520は、コンピューティングデバイス500による使用のために一時的にまたは恒久的なベースでプログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を記憶するために使用されている物理デバイスであってもよい。不揮発性メモリの例は、フラッシュメモリおよび読出し専用メモリ(ROM)/プログラマブル読出し専用メモリ(PROM)/消去可能プログラマブル読出し専用メモリ(EPROM)/電子的消去可能プログラマブル読出し専用メモリ(EEPROM)(例えば、ブートプログラムなどのファームウェア用に典型的に使用される)を含むが、これらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)ならびにディスクまたはテープを含むが、これらに限定されない。
【0037】
ストレージデバイス530は、コンピューティングデバイス500用の大容量ストレージを提供することが可能である。いくつかの実装形態では、ストレージデバイス530は、コンピュータ可読媒体である。様々な異なる実装形態では、ストレージデバイス530は、フロッピディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の類似の固体メモリデバイス、またはストレージエリアネットワークもしくは他の構成のデバイスを含めデバイスのアレイであってもよい。さらなる実装形態では、コンピュータプログラム製品は、情報キャリアに実体的に具現化される。コンピュータプログラム製品は、実行されたときに、上に説明したものなどの1つまたは複数の方法を実行する命令を含む。情報キャリアは、メモリ520、ストレージデバイス530、またはプロセッサ510上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0038】
高速コントローラ540は、コンピューティングデバイス500用の帯域幅集中動作を管理し、一方で低速コントローラ560は、より低い帯域幅集中動作を管理する。デューティのこのような割り当ては、単に例示に過ぎない。いくつかの実装形態では、高速コントローラ540は、メモリ520に、(例えば、グラフィックプロセッサまたはアクセラレータを通して)ディスプレイ580に、そして様々な拡張カード(図示せず)を受け入れられる高速拡張ポート550につなげられる。いくつかの実装形態では、低速コントローラ560は、ストレージデバイス530および低速拡張ポート590につなげられる。様々な通信ポート(例えば、USB、Bluetooth(登録商標)、Ethernet(登録商標)、ワイアレスEthernet)を含むことができる低速拡張ポート590は、キーボード、ポインティングデバイス、スキャナなどの1つもしくは複数の入力/出力デバイス、または、例えば、ネットワークアダプタを介して、スイッチもしくはルータなどのネットワーキングデバイスにつなげられてもよい。
【0039】
コンピューティングデバイス500は、図に示されているように、複数の異なる形態で実装されることがある。例えば、標準サーバ500aとしてもしくはこのようなサーバ500aのグループで複数回、ラップトップコンピュータ500bとして、またはラックサーバシステム500cの一部として実装されてもよい。
【0040】
本明細書において説明されるシステムおよび技術の様々な実装形態が、ディジタル電子回路および/もしくは光回路、集積回路、特別に設計されているASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはこれらの組み合わせで実現されることが可能である。これらの様々な実装形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受け取るようにそして上記デバイスへデータおよび命令を送信するようにつなげられている用途特定または汎用であり得る少なくとも1つのプログラマブルプロセッサを含んでいるプログラマブルシステム上で実行可能であるおよび/または解釈可能である1つまたは複数のコンピュータプログラムでの実装を含むことが可能である。
【0041】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを呼ぶことがある。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アップ(app)」、または「プログラム」と呼ばれることがある。例のアプリケーションは、システム診断アプリケーション、システム管理アプリケーション、システム維持管理アプリケーション、ワードプロセシングアプリケーション、スプレッドシートアプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲーミングアプリケーションを含むが、これらに限定されない。
【0042】
これらのコンピュータプログラム(また、プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)は、プログラマブルプロセッサ用の機械命令を含み、高レベル手続き型言語および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械言語で実装されることが可能である。本明細書で使用されるように、「機械可読媒体」および「コンピュータ可読媒体」という用語は、任意のコンピュータプログラム製品、非一過性のコンピュータ可読媒体、機械可読信号として機械命令を受け取る機械可読媒体を含め、プログラマブルプロセッサへ機械命令および/またはデータを提供するために使用される装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を呼ぶ。「機械可読信号」という用語は、プログラマブルプロセッサへ機械命令および/またはデータを提供するために使用される任意の信号を呼ぶ。
【0043】
この明細書で説明しているプロセスおよび論理フローは、入力データを処理することおよび出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサ、またデータ処理ハードウェアとも呼ばれる、により実行されることが可能である。プロセスおよび論理フローはまた、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)により実行されることも可能である。コンピュータプログラムの実行のために適しているプロセッサは、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方、ならびにいずれかの種類のディジタルコンピュータのうちの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読出し専用メモリまたはランダムアクセスメモリまたは両方から命令およびデータを受け取るだろう。コンピュータの必須の要素は、命令を実行するためのプロセッサならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、例えば、磁気ディスク、光磁気ディスク、または光ディスクからデータを受け取るために、上記デバイスへデータを伝送するためにまたは両方のために含むだろうまたは動作上でつなげられるだろう。しかしながら、コンピュータは、そのようなデバイスを必ずしも有する必要がない。コンピュータプログラム命令およびデータを記憶するために適しているコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、例えば、内部ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびに、CDROMディスクおよびDVD-ROMディスクを含め、不揮発性メモリ、媒体およびメモリデバイスのすべての形態を含む。プロセッサおよびメモリは、専用論理回路により補完されるまたは組み込まれることが可能である。
【0044】
ユーザとの対話を提供するために、開示の1つまたは複数の態様は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーン、ならびにユーザがコンピュータに入力を与えることが可能な任意選択のキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。他の種類のデバイスは、同様にユーザとの対話を提供するために使用されることが可能であり、例えば、ユーザへ提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、そしてユーザからの入力は、音響入力、会話入力、または触覚入力を含め任意の形態で受け取られてもよい。加えて、コンピュータは、ユーザにより使用されるデバイスへ文書を送ることによっておよび上記デバイスから文書を受け取ることによって、例えば、ウェブブラウザから受け取られる要求に応じてユーザのクライアントデバイス上のウェブブラウザへウェブページを送ることによってユーザと対話できる。
【0045】
多数の実装形態が、説明されてきている。それにも関わらず、様々な修正形態が開示の精神および範囲から乖離せずに行われ得ることが理解されるだろう。したがって、他の実装形態は、別記の特許請求の範囲の範囲内である。
【手続補正書】
【提出日】2024-02-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データ処理ハードウェア(144)により実行されるときに前記データ処理ハードウェア(144)に動作を実行させるコンピュータが実行する方法(400)であって、前記動作は、
ユーザデバイス(10)から、機械学習モデル(210)の1つまたは複数のハイパーパラメータ(22)の最適化を要求するハイパーパラメータ最適化要求(20)を受け取ることと、
前記機械学習モデル(210)をトレーニングするためのトレーニングデータ(152)を取得することと、
前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)のハイパーパラメータパーミュテーション(232)のセットを決定することと、
前記ハイパーパラメータパーミュテーション(232)のセット内のそれぞれのハイパーパラメータパーミュテーション(232)の各々に関して、
前記トレーニングデータ(152)および前記それぞれのハイパーパラメータパーミュテーション(232)を使用してユニーク機械学習モデル(210)をトレーニングすることと、
トレーニングされた前記ユニーク機械学習モデル(210)のパフォーマンス(182)を決定することと、
トレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)に基づいて、トレーニングされた前記ユニーク機械学習モデル(210)のうちの1つを選択することと、
トレーニングされた前記ユニーク機械学習モデル(210)のうちの選択された前記1つを使用して1つまたは複数の予測(174)を生成することとを含む、方法(400)。
【請求項2】
前記ハイパーパラメータパーミュテーション(232)のセットを決定することは、前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)のハイパーパラメータ探索空間(234)で探索を実行することを含む、請求項1に記載の方法(400)。
【請求項3】
前記ハイパーパラメータ探索空間(234)で前記探索を実行することは、バッチ式ガウス過程バンディット最適化を使用して前記探索を実行することを含む、請求項2に記載の方法(400)。
【請求項4】
前記ハイパーパラメータパーミュテーション(232)のセットを決定することは、前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)と少なくとも1つのハイパーパラメータ(22)を各々共有する1つまたは複数の先にトレーニングされた機械学習モデル(210)に基づく、請求項1~請求項3のいずれかに記載の方法(400)。
【請求項5】
前記1つまたは複数の先にトレーニングされた前記機械学習モデル(210)は、前記ユーザデバイス(10)のユーザ(12)と関係づけられる、請求項4に記載の方法(400)。
【請求項6】
前記ユニーク機械学習モデル(210)をトレーニングすることは、並列に2つ以上のユニーク機械学習モデル(210)をトレーニングすることを含む、請求項1~請求項
3のいずれかに記載の方法(400)。
【請求項7】
トレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンスを前記ユーザデバイス(10)に提供することは、どのトレーニングされたユニーク機械学習モデル(210)が前記トレーニングデータ(152)に基づいて最高のパフォーマンス(182)を有するかを示す指示を前記ユーザデバイス(10)に提供することを含む、請求項1~請求項
3のいずれかに記載の方法(400)。
【請求項8】
前記ハイパーパラメータ最適化要求(20)は、SQLクエリを含む、請求項1~請求項
3のいずれかに記載の方法(400)。
【請求項9】
前記ハイパーパラメータ最適化要求(20)は、バジェット(320)を含み、
前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)の前記ハイパーパラメータパーミュテーション(232)のセットのサイズは、前記バジェット(320)に基づく、請求項1~請求項
3のいずれかに記載の方法(400)。
【請求項10】
前記データ処理ハードウェア(144)は、分散型コンピューティングデータベースシステム(140)の一部である、請求項1~請求項
3のいずれかに記載の方法(400)。
【請求項11】
トレーニングされた前記ユニーク機械学習モデル(210)のうちの前記1つを選択することは、
前記ユーザデバイス(10)へトレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)を送信することと、
前記ユーザデバイス(10)から、トレーニングされた前記ユニーク機械学習モデル(210)のうちの前記1つを選択するトレーニングされたユニーク機械学習モデル(210)選択を受け取ることとを含む、請求項1~請求項
3のいずれかに記載の方法(400)。
【請求項12】
データ処理ハードウェア(144)と、
前記データ処理ハードウェア(144)と通信するメモリハードウェア(146)とを備え、前記メモリハードウェア(146)は、命令を記憶し、前記命令は、前記データ処理ハードウェア(144)上で実行されるときに、前記データ処理ハードウェア(144)に動作を実行させ、前記動作は、
ユーザデバイス(10)から、機械学習モデル(210)の1つまたは複数のハイパーパラメータ(22)の最適化を要求するハイパーパラメータ最適化要求(20)を受け取ることと、
前記機械学習モデル(210)をトレーニングするためのトレーニングデータ(152)を取得することと、
前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)のハイパーパラメータパーミュテーション(232)のセットを決定することと、
前記ハイパーパラメータパーミュテーション(232)のセット内のそれぞれのハイパーパラメータパーミュテーション(22)の各々に関して、
前記トレーニングデータ(152)および前記それぞれのハイパーパラメータパーミュテーション(232)を使用してユニーク機械学習モデル(210)をトレーニングすることと、
トレーニングされた前記ユニーク機械学習モデル(210)のパフォーマンス(182)を決定することと、
トレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)に基づいて、トレーニングされた前記ユニーク機械学習モデル(210)のうちの1つを選択することと、
トレーニングされた前記ユニーク機械学習モデル(210)のうちの選択された前記1つを使用して1つまたは複数の予測(174)を生成することとを含む、システム(100)。
【請求項13】
前記ハイパーパラメータパーミュテーション(232)のセットを決定することは、前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)のハイパーパラメータ探索空間(234)で探索を実行することを含む、請求項12に記載のシステム(100)。
【請求項14】
前記ハイパーパラメータ探索空間(234)で前記探索を実行することは、バッチ式ガウス過程バンディット最適化を使用して前記探索を実行することを含む、請求項13に記載のシステム(100)。
【請求項15】
前記ハイパーパラメータパーミュテーション(232)のセットを決定することは、前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)と少なくとも1つのハイパーパラメータ(22)を各々共有する1つまたは複数の先にトレーニングされた機械学習モデル(210)に基づく、請求項12~請求項14のいずれかに記載のシステム(100)。
【請求項16】
前記1つまたは複数の先にトレーニングされた前記機械学習モデル(210)は、前記ユーザデバイス(10)のユーザ(12)と関係づけられる、請求項15に記載のシステム(100)。
【請求項17】
前記ユニーク機械学習モデル(210)をトレーニングすることは、並列に前記ユニーク機械学習モデル(210)のうちの2つ以上をトレーニングすることを含む、請求項12~請求項
14のいずれかに記載のシステム(100)。
【請求項18】
トレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)を前記ユーザデバイス(10)に提供することは、どのトレーニングされたユニーク機械学習モデル(210)が前記トレーニングデータ(152)に基づいて最高のパフォーマンス(182)を有するかを示す指示を前記ユーザデバイス(10)に提供することを含む、請求項12~請求項
14のいずれかに記載のシステム(100)。
【請求項19】
前記ハイパーパラメータ最適化要求(20)は、SQLクエリを含む、請求項12~請求項
14のいずれかに記載のシステム(100)。
【請求項20】
前記ハイパーパラメータ最適化要求(20)は、バジェット(320)を含み、
前記機械学習モデル(210)の前記1つまたは複数のハイパーパラメータ(22)の前記ハイパーパラメータパーミュテーション(232)のセットのサイズは、前記バジェット(320)に基づく、請求項12~請求項
14のいずれかに記載のシステム(100)。
【請求項21】
前記データ処理ハードウェア(144)は、分散型コンピューティングデータベースシステム(140)の一部である、請求項12~請求項
14のいずれかに記載のシステム(100)。
【請求項22】
トレーニングされた前記ユニーク機械学習モデル(210)のうちの前記1つを選択することは、
前記ユーザデバイス(10)へトレーニングされた前記ユニーク機械学習モデル(210)の各々の前記パフォーマンス(182)を送信することと、
前記ユーザデバイス(10)から、トレーニングされた前記ユニーク機械学習モデル(210)のうちの前記1つを選択するトレーニングされたユニーク機械学習モデル(210)選択を受け取ることとを含む、請求項12~請求項
14のいずれかに記載のシステム(100)。
【国際調査報告】