IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7603698異なる時定数を使用するモーメント推定を用いた学習
<>
  • 特許-異なる時定数を使用するモーメント推定を用いた学習 図1
  • 特許-異なる時定数を使用するモーメント推定を用いた学習 図2
  • 特許-異なる時定数を使用するモーメント推定を用いた学習 図3
  • 特許-異なる時定数を使用するモーメント推定を用いた学習 図4
  • 特許-異なる時定数を使用するモーメント推定を用いた学習 図5
  • 特許-異なる時定数を使用するモーメント推定を用いた学習 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-12
(45)【発行日】2024-12-20
(54)【発明の名称】異なる時定数を使用するモーメント推定を用いた学習
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241213BHJP
【FI】
G06N20/00 130
【請求項の数】 19
(21)【出願番号】P 2022545373
(86)(22)【出願日】2021-02-04
(65)【公表番号】
(43)【公表日】2023-03-27
(86)【国際出願番号】 IB2021050895
(87)【国際公開番号】W WO2021161136
(87)【国際公開日】2021-08-19
【審査請求日】2023-07-21
(31)【優先権主張番号】16/787,443
(32)【優先日】2020-02-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】森村 哲郎
【審査官】新井 則和
(56)【参考文献】
【文献】国際公開第2017/183587(WO,A1)
【文献】特開2017-016414(JP,A)
【文献】Diederik P. Kingma, Jimmy Lei Ba,ADAM: A Method for Stochastic Optimization,[online], arXiv.org,2017年01月30日,[検索日 2024.07.28], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1412.6980>
【文献】Tom Schaul et al.,No More Pesky Learning Rates,[online], arXiv.org,2013年02月18日,[検索日 2024.07.28], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1206.1106>
【文献】Boris Ginsburg et al.,Training Deep Networks with Stochastic Gradient Normalized by Layerwise Adaptive Second Moments,[online], arXiv.org,2020年02月06日,[検索日 2024.07.28], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1905.11286>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
モデルをトレーニングするためのコンピュータ実装方法であって、
ハードウェア・プロセッサに動作可能に結合された1つまたは複数のコンピュータ可読記憶媒体上に記憶されたモデル・パラメータを有するモデルについてのトレーニング例を取得することであって、前記トレーニング例が第1結果および前記第1結果を説明するための特徴を含む、前記取得することと、
前記トレーニング例を使用して、前記モデルの前記モデル・パラメータに関する勾配を計算することと、
前記勾配を使用して、同じタイプのモーメントについて少なくとも2つの異なる時定数を用いて前記勾配の前記モーメントの少なくとも2つの推定を計算することと、
ハードウェア・プロセッサを使用して、前記少なくとも2つの異なる時定数を用いた前記モーメントの前記少なくとも2つの推定を使用して前記モデルの前記モデル・パラメータを更新し、前記勾配の前記モーメントの前記少なくとも2つの推定を計算する間の誤差を低減することと
を含むコンピュータ実装方法。
【請求項2】
前記モデル・パラメータのそれぞれが、保守的な方式で前記モーメントの前記少なくとも2つの推定のそれぞれの成分によって個々に決定される量で更新される、請求項1に記載の方法。
【請求項3】
前記モーメントの前記少なくとも2つの推定が第1のモデル・パラメータに対応する成分で不整合があることに応答して、前記モデルの前記第1のモデル・パラメータがゼロまたは小さい量で更新される、請求項2に記載の方法。
【請求項4】
前記モーメントの前記少なくとも2つの推定が前記第1のモデル・パラメータに対応する前記成分で整合することに応答して、前記第1のモデル・パラメータに対応する前記モーメントの前記少なくとも2つの推定のそれぞれの成分を組み合わせることによって生成される値に従って、前記第1のモデル・パラメータが更新される、請求項3に記載の方法。
【請求項5】
第1のモデル・パラメータに対応する前記モーメントの前記少なくとも2つの推定の成分の最大値または平均値に従って、前記モデルの前記第1のモデル・パラメータが更新される、請求項2ないし4のいずれかに記載の方法。
【請求項6】
前記モーメントが、異なるタイプとして1次モーメントおよび2次モーメントを含み、前記1次モーメントが前記勾配の平均を表し、前記2次モーメントが、前記モデルの前記モデル・パラメータについての個々の学習率をスケールする、請求項1ないし5のいずれかに記載の方法。
【請求項7】
前記モーメントが、異なるタイプとして1次モーメントおよび2次モーメントを含み、前記モデルの第1のモデル・パラメータが、前記第1のモデル・パラメータに対応する成分の前記1次モーメントの少なくとも2つの推定の間の不整合と、前記成分の前記2次モーメントの少なくとも2つの推定の間の大きさの関係とに応じた方式で更新される、請求項1ないし5のいずれかに記載の方法。
【請求項8】
前記時定数がモーメント推定のための指数関数的減衰率を変更し、前記時定数が、第1の時定数と、前記第1の時定数よりも大きい、または小さい第2の時定数とを含む、請求項1ないし7のいずれかに記載の方法。
【請求項9】
前記勾配を計算することと、前記モーメントの前記少なくとも2つの推定を計算することと、前記モデル・パラメータを更新することとが、新しいトレーニング例に応答して反復的に実施される、請求項1ないし8のいずれかに記載の方法。
【請求項10】
前記トレーニング例がストリーミング式に与えられ、新しいトレーニング例が到着するごとに、トレーニングすべき前記モデルが更新され、入力特徴に基づいて前記第1結果の値を予測するために前記モデルが使用される、請求項1ないし9のいずれかに記載の方法。
【請求項11】
前記入力特徴が、所定の期間にわたって観測された第2結果の過去の値のゆらぎを表す複数の要素を含む、請求項10に記載の方法。
【請求項12】
前記勾配が、反復ステップでの目的関数の確率的勾配であり、前記目的関数が、前記トレーニング例での前記第1結果と、前記トレーニング例での前記特徴から前記モデル・パラメータの現在値を用いて前記モデルによって行われた予測との間の損失を評価し、前記トレーニング例が、単一のトレーニング例またはトレーニング例のグループを含む、請求項1ないし11のいずれかに記載の方法。
【請求項13】
プログラム命令を実行することによってモデルをトレーニングするためのコンピュータ・システムであって、
前記プログラム命令と、モデル・パラメータを有するモデルについてのトレーニング例とを記憶するための1つまたは複数のコンピュータ可読記憶媒体と、
前記プログラム命令を実行するためのメモリと通信している処理回路であって、
前記1つまたは複数のコンピュータ可読記憶媒体からモデル・パラメータを有するモデルについてのトレーニング例を取得することであって、前記トレーニング例が結果および前記結果を説明するための特徴を含む、前記取得することと、
前記トレーニング例を使用して、前記モデルの前記モデル・パラメータに関する勾配を計算することと、
前記勾配を使用して、同じタイプのモーメントについて少なくとも2つの異なる時定数を用いて前記モーメントの少なくとも2つの推定を計算することと、
前記少なくとも2つの異なる時定数を用いた前記モーメントの前記少なくとも2つの推定を使用して前記モデルの前記モデル・パラメータを更新し、前記勾配の前記モーメントの前記少なくとも2つの推定を計算する間の誤差を低減することと
を行うように構成される、前記処理回路と
を備えるコンピュータ・システム。
【請求項14】
前記処理回路が、保守的な方式で前記モーメントの前記少なくとも2つの推定のそれぞれの成分によって個々に決定される量で前記モデル・パラメータのそれぞれを更新するように構成される、請求項13に記載のコンピュータ・システム。
【請求項15】
前記処理回路が、前記モーメントの前記少なくとも2つの推定が第1のモデル・パラメータに対応する成分で不整合があることに応答して、前記モデルの前記第1のモデル・パラメータをゼロまたは小さい量で更新するように構成され、前記モーメントの前記少なくとも2つの推定が前記第1のモデル・パラメータに対応する前記成分で整合することに応答して前記第1のモデル・パラメータに対応する前記モーメントの前記少なくとも2つの推定のそれぞれの成分を組み合わせることによって生成される値に従って、前記第1のモデル・パラメータが更新される、請求項14に記載のコンピュータ・システム。
【請求項16】
前記処理回路が、第1のモデル・パラメータに対応する前記モーメントの前記少なくとも2つの推定の成分の最大値または平均値に従って、前記モデルの前記第1のモデル・パラメータを更新するように構成される、請求項14に記載のコンピュータ・システム。
【請求項17】
前記モーメントが、異なるタイプとして前記勾配の1次モーメントおよび前記勾配の2次モーメントを含み、前記1次モーメントが前記勾配の平均を表し、前記2次モーメントが、前記モデルの前記モデル・パラメータについての個々の学習率をスケールする、請求項13ないし16のいずれかに記載のコンピュータ・システム。
【請求項18】
前記モーメントが、異なるタイプとして1次モーメントおよび2次モーメントを含み、前記モデルの第1のモデル・パラメータが、前記第1のモデル・パラメータに対応する成分の前記1次モーメントの少なくとも2つの推定の間の不整合と、前記成分の前記2次モーメントの少なくとも2つの推定の間の大きさの関係とに応じた方式で更新される、請求項13ないし17のいずれかに記載のコンピュータ・システム。
【請求項19】
モデルをトレーニングするためのコンピュータ・プログラムであって、コンピュータに、請求項1ないし12のいずれか一項に記載の方法を実行させるための、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般的に機械学習に関し、より詳細には、モーメント推定に基づいてモデルをトレーニングするためのコンピュータ実装方法、コンピュータ・システム、およびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
確率的勾配降下法(SGD)は、機械学習、特にオンライン学習の分野で広く使用されている。学習率が適切に設定される場合、学習プロセスは安定する。しかしながら、高い学習率の高速学習を試みるときは特に、学習プロセスはしばしば不安定になる。十分な学習率を発見することは、大規模タスクでは一般に難しい。高い学習率が使用される場合であっても、安定した性能が求められている。高速な収束を得ることの方が精度よりも重要であるいくつかの適用分野があり、したがって高速学習が求められている。理解できるように、入力の新しいパターンに動的に適応することが必要であるとき、そのような高速学習が適している。
【0003】
そのような難点を軽減するために、低次モーメントの適応推定に基づく、確率的目的関数(stochastic objective function)の1次勾配ベース最適化(first-order gradient-based optimization)のためのアルゴリズムなどの、学習率を適応させるための様々な技術が開発されている。この方法は、確率的勾配の1次および2次モーメントの推定から、様々なパラメータについての個々の適応学習率(adaptive learning rate)を計算する。
【0004】
しかしながら、こうした方法によって、より高速な収束特性のためにトレーニング時間が短縮され得るとしても、基本学習率(base learning rate)がより高くなるときに依然として学習プロセスが発散し得る。したがって、安定した学習と高速学習をどちらも達成するという視点からは従来技術のいずれも不十分である。したがって、前述の問題に対処することが当技術分野で求められている。
【発明の概要】
【0005】
第1の態様から見ると、本発明は、モデルをトレーニングするためのコンピュータ実装方法であって、ハードウェア・プロセッサに動作可能に結合された1つまたは複数のコンピュータ可読記憶媒体上に記憶されたモデル・パラメータを有するモデルについてのトレーニング例を取得することであって、トレーニング例が結果および結果を説明するための特徴を含む、取得することと、トレーニング例を使用して、モデルのモデル・パラメータに関する勾配を計算することと、勾配を使用して、同じタイプのモーメントについて少なくとも2つの異なる時定数を用いて勾配のモーメントの少なくとも2つの推定を計算することと、ハードウェア・プロセッサを使用して、少なくとも2つの異なる時定数を用いたモーメントの少なくとも2つの推定を使用してモデルのモデル・パラメータを更新し、勾配のモーメントの少なくとも2つの推定を計算する間の誤差を低減することとを含むコンピュータ実装方法を提供する。
【0006】
別の態様から見ると、本発明は、プログラム命令を実行することによってモデルをトレーニングするためのコンピュータ・システムであって、プログラム命令と、モデル・パラメータを有するモデルについてのトレーニング例とを記憶するための1つまたは複数のコンピュータ可読記憶媒体と、プログラム命令を実行するためのメモリと通信している処理回路であって、1つまたは複数のコンピュータ可読記憶媒体からモデル・パラメータを有するモデルについてのトレーニング例を取得することであって、トレーニング例が結果および結果を説明するための特徴を含む、取得することと、トレーニング例を使用して、モデルのモデル・パラメータに関する勾配を計算することと、勾配を使用して、同じタイプのモーメントについて少なくとも2つの異なる時定数を用いてモーメントの少なくとも2つの推定を計算することと、少なくとも2つの異なる時定数を用いたモーメントの少なくとも2つの推定を使用してモデルのモデル・パラメータを更新し、勾配のモーメントの少なくとも2つの推定を計算する間の誤差を低減することとを行うように構成される処理回路とを備えるコンピュータ・システムを提供する。
【0007】
別の態様から見ると、本発明は、モデルをトレーニングするためのコンピュータ・プログラム製品であって、プログラム命令と、モデル・パラメータを有するモデルについてのトレーニング例とが実施されたコンピュータ可読記憶媒体を含み、プログラム命令が、コンピュータ可読記憶媒体からモデル・パラメータを有するモデルについてのトレーニング例を取得することであって、トレーニング例が結果および結果を説明するための特徴を含む、取得することと、トレーニング例を使用して、モデルのモデル・パラメータに関する勾配を計算することと、勾配を使用して、同じタイプのモーメントについて少なくとも2つの異なる時定数を用いて勾配のモーメントの少なくとも2つの推定を計算することと、少なくとも2つの異なる時定数を用いたモーメントの少なくとも2つの推定を使用してモデルのモデル・パラメータを更新し、勾配のモーメントの少なくとも2つの推定を計算する間の誤差を低減することとを含むコンピュータ実装方法をコンピュータに実施させるようにコンピュータによって実行可能である、コンピュータ・プログラム製品を提供する。
【0008】
本発明の一実施形態によれば、モデルをトレーニングするためのコンピュータ実装方法が、ハードウェア・プロセッサに動作可能に結合された1つまたは複数のコンピュータ可読記憶媒体上に記憶されたモデル・パラメータを有するモデルについてのトレーニング例を取得することであって、トレーニング例が結果および結果を説明するための特徴を含む、取得することと、トレーニング例を使用して、モデルのモデル・パラメータに関する勾配を計算することと、勾配を使用して、同じタイプのモーメントについて少なくとも2つの異なる時定数を用いて勾配のモーメントの少なくとも2つの推定を計算することと、ハードウェア・プロセッサを使用して、少なくとも2つの異なる時定数を用いたモーメントの少なくとも2つの推定を使用してモデルのモデル・パラメータを更新し、勾配のモーメントの少なくとも2つの推定を計算する間の誤差を低減することとを含む。
【0009】
別の態様から見ると、本発明は、モデルをトレーニングするためのコンピュータ・プログラム製品であって、処理回路によって読み取り可能であり、本発明のステップを実施するための方法を実施するための処理回路による実行のための命令を記憶するコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品を提供する。
【0010】
別の態様から見ると、本発明は、コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、本発明のステップを実施するためのソフトウェア・コード部分を含むコンピュータ・プログラムを提供する。
【0011】
本発明の実施形態によるコンピュータ実装方法では、古いモデル・パラメータの影響のために勾配推定の大きな間違いをする危険が低減されると予想される。相異なる時定数を用いたモーメントの推定の両方が、モデル・パラメータ更新で考慮に入れられる。それによって、学習プロセスの安定性を低下させることなく高速学習を実施することが可能となる。
【0012】
一実施形態では、モデル・パラメータのそれぞれが、保守的な方式で勾配のモーメントの少なくとも2つの推定のそれぞれの成分によって個々に決定される量で更新され得る。したがって、勾配のモーメントの少なくとも2つの推定の間に不整合がある場合のモデル・パラメータの積極的な更新が抑制される。したがって、積極的な更新によるパラメータ更新での間違いの危険がさらに低減されると予想される。
【0013】
実施形態では、モーメントの少なくとも2つの推定が第1のモデル・パラメータに対応する成分で不整合があることに応答して、モデルの第1のモデル・パラメータがゼロまたは小さい量で更新され得る。モーメントの少なくとも2つの推定が第1のモデル・パラメータに対応する成分で整合することに応答して、第1のモデル・パラメータに対応するモーメントの少なくとも2つの推定のそれぞれの成分を組み合わせることによって生成される値に従って、第1のモデル・パラメータが更新され得る。それによって、更新規則は、モーメントの少なくとも2つの推定の間の整合性を有するモデル・パラメータを適切に更新すると共に、不確定性を有するモデル・パラメータを変更しない。したがって、不確定な方向についてのパラメータ更新による間違いの危険が低減されると予想される。
【0014】
一実施形態では、第1のモデル・パラメータに対応するモーメントの少なくとも2つの推定の成分の最大値または平均値に従って、モデルの第1のモデル・パラメータが更新され得る。それによって、モーメントの少なくとも2つの推定を考慮に入れることによってパラメータ更新の感度が調節される。
【0015】
実施形態では、モーメントは、異なるタイプとして勾配の1次モーメントおよび勾配の2次モーメントを含み得る。1次モーメントは勾配の平均を表す。2次モーメントは、モデルのモデル・パラメータについての個々の学習率をスケールする。
【0016】
一実施形態では、モーメントは、異なるタイプとして勾配の1次モーメントおよび勾配の2次モーメントを含み得る。モデルの第1のモデル・パラメータは、第1のモデル・パラメータに対応する成分の1次モーメントの少なくとも2つの推定の間の不整合と、成分の2次モーメントの少なくとも2つの推定の間の大きさの関係とに応じた方式で更新され得る。
【0017】
実施形態では、トレーニング例がストリーミング式に与えられ得、新しいトレーニング例が到着するごとに、トレーニングすべきモデルが更新され得、入力特徴に基づいて結果の値を予測するためにモデルが使用される。データがストリーミング式に与えられる適用分野では、入力で観測された新しいパターンに適応するためにモデル・パラメータを動的に更新する必要があり得る。そのような適用分野では、学習プロセスの安定性を低下させない高速学習の特徴が重要な役割を果たす。
【0018】
実施形態では、入力特徴は、所定の期間にわたって観測された結果の過去の値のゆらぎを表す複数の要素、または結果に関係する複数の要素を含み得る。
【0019】
一実施形態では、勾配は、反復ステップでの目的関数の確率的勾配であり得る。目的関数は、トレーニング例での結果と、トレーニング例での特徴からモデル・パラメータの現在値を用いてモデルによって行われた予測との間の損失を評価し得る。トレーニング例は、単一のトレーニング例またはトレーニング例のグループを含み得る。
【0020】
本発明の別の実施形態によれば、プログラム命令を実行することによってモデルをトレーニングするためのコンピュータ・システムが、プログラム命令と、モデル・パラメータを有するモデルについてのトレーニング例とを記憶するための1つまたは複数のコンピュータ可読記憶媒体と、プログラム命令を実行するためのメモリと通信している処理回路とを含む。処理回路は、1つまたは複数のコンピュータ可読記憶媒体からモデル・パラメータを有するモデルについてのトレーニング例を取得することであって、トレーニング例が結果および結果を説明するための特徴を含む、取得することと、トレーニング例を使用して、モデルのモデル・パラメータに関する勾配を計算することと、勾配を使用して、同じタイプのモーメントについて少なくとも2つの異なる時定数を用いて勾配のモーメントの少なくとも2つの推定を計算することと、少なくとも2つの異なる時定数を用いたモーメントの少なくとも2つの推定を使用してモデルのモデル・パラメータを更新し、勾配のモーメントの少なくとも2つの推定を計算する間の誤差を低減することとを行うように構成される。
【0021】
本発明の実施形態によるコンピュータ・システムを使用することにより、進行を学習する前の古いモデル・パラメータの影響による勾配計算の大きな間違いの危険が低減されると予想される。相異なる時定数を用いたモーメントの推定の両方がモデル・パラメータ更新で考慮に入れられ得る。このようにして、学習プロセスの安定性を低下させることなく高速学習が実施され得る。
【0022】
本発明の1つまたは複数の態様に関するコンピュータ・プログラム製品も、本明細書で説明され、特許請求される。
【0023】
本発明の実施形態を通じて追加の特徴および利点が実現される。本発明の他の実施形態および態様が本明細書で詳細に説明され、特許請求される発明の一部と見なされる。
【0024】
本発明の上記および他の特徴および利点は、添付の図面と共に行われる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0025】
図1】本発明の一実施形態による、予測モデルをトレーニングするためのモデル・トレーニング・モジュールを含む予報システムのブロック図である。
図2】本発明の一実施形態によるモデル・トレーニング・モジュールの詳細なブロック図である。
図3】本発明の一実施形態による、予測モデルをトレーニングするためのプロセスを示すフローチャートである。
図4】本発明の一実施形態による、予測モデルをトレーニングするためのプロセスを実装する擬似コードを示す図である。
図5】本発明の一実施形態による、長期時定数と短期時定数の両方を用いたモーメント推定を使用してモデル・パラメータを更新することを示す略図である。
図6】本発明の一実施形態によるコンピュータ・システムの略図である。
【発明を実施するための形態】
【0026】
以下では、本発明の例示的実施形態が説明される。以下で説明される実施形態は例として述べられるに過ぎず、本発明の範囲を限定するものではないことを当業者は理解されよう。
【0027】
本発明による1つまたは複数の実施形態は、予測モデルをトレーニングするためのコンピュータ実装方法、コンピュータ・システム、およびコンピュータ・プログラム製品を対象とし、予測モデルのモデル・パラメータが、モーメント推定およびパラメータ更新技術に基づく方式で更新される。
【0028】
初めに図1~2を参照して、本発明の一実施形態による、新規な適応モーメント推定を用いて確率的勾配降下法(SGD)技術に従って入力特徴から将来の結果を予報するために使用される予測モデルをトレーニングするためのコンピュータ・システムが説明される。図3~5を参照して、本発明の一実施形態による、適応モーメント推定を用いて確率的勾配降下法技術に従って予測モデルをトレーニングするためのコンピュータ実装方法およびコンピュータ・プログラム製品が説明される。さらに、図6を参照して、本発明の一実施形態によるコンピュータ・システムのハードウェア構成が説明される。
【0029】
図1を参照して、本発明の一実施形態による、モデル・トレーニング・モジュール130を含む予報システム100のブロック図が説明される。予報システム100は、予測時に利用可能な入力データ102に基づいて将来の結果を予測するように構成される。予測すべき結果は、適切なハードウェアを使用せずに、または適切なハードウェアを使用することによってシステム、デバイス、サンプル、または環境、あるいはその組合せから取得される任意のリアル・タイムまたは記録済み測定可能量であり得、適切なハードウェアは、物理的、化学的、生物学的、もしくは環境パラメータを測定するセンサ、またはそのような情報にアクセス可能であるインターフェース・デバイスであり得る。実施形態では、結果は、であり得る。
【0030】
特に限定はしないが、測定可能量の例には、温度、電圧、電流、および物質の量、物体の数、太陽黒点数などの現象もしくは事象の発生数、物体の存在、現象もしくは事象の発生、降水量や川の水位などの気象観測値、資源の値、前述の項目の任意の組合せを評価する統合値(たとえば、指標)などの任意の物理量が含まれ得る。
【0031】
結果は任意の需要および供給であり得、実施形態では、ネットワーク・トラフィック、電力需要または供給、最終的製品製造に従う部品の製造需要などを含み得ることが企図される。
【0032】
図1に示されるように、予報システム100は、入力データ102を取得するための入力取得モジュール110と、取得された入力データ102の現在および過去のデータに基づいてトレーニング・データを生成するためのトレーニング・データ生成モジュール120と、トレーニング・データに基づいてモデルをトレーニングするためのモデル・トレーニング・モジュール130と、モデル・トレーニング・モジュール130によってトレーニングされる予測モデル150とを含み得る。
【0033】
入力取得モジュール110は入力データ102を取得するように構成される。入力データ102は、ストリーミング式に、または順番に予報システム100に供給され得、結果自体の観測値と、必要な場合、結果に関連すると考えられる情報とを含み得る。入力データ102は適切な記憶デバイス内に記憶され得る。結果の実際の観測値が正しい情報(目的変数)として使用され、トレーニングのための特徴(1つまたは複数の説明変数)としても使用され得る。利用可能である場合、結果に関連すると考えられる情報が、トレーニングのための特徴(たとえば、1つまたは複数の説明変数)として使用される。
【0034】
トレーニング・データ生成モジュール120は、予測時に利用可能な取得された入力データ102の現在および過去のデータから結果を説明するために、結果の観測値を正しい情報および特徴として抽出することによって予測モデル150のためのトレーニング・データを生成するように構成される。トレーニング・データ内の各トレーニング例は、特徴ベクトルの形で与えられ得る、抽出された特徴と、過去に観測された、抽出された実際の結果とを含む。特徴は、結果自体の過去の値、または結果に関連すると考えられる情報、あるいはその両方を含み得る。実施形態では、特徴はまた、主に他のモデル(たとえば、サブモデル)で入力データを処理することによって得られたデータをも含み得る。
【0035】
トレーニング・データの特定の内容は、予測モデル150の特定の設計に依存し得る。所定の期間(たとえば、24時間)にわたる結果の過去の値のゆらぎに基づいて予測の時間から所定の時間(たとえば、6時間)の後の結果の将来の値を予測するように予測モデル150が設計される実施形態では、結果の現在観測された値が正しい情報として使用され、(予測の時間から所定の期間の前の時点で終了する)所定の期間にわたる結果の過去の値(たとえば、6から30時間前の過去の値)が特徴として使用される。このようにして、トレーニング例の特徴ベクトルは、所定の期間にわたって観測された結果の過去のゆらぎを表す複数の要素を含む。
【0036】
関連情報に基づいて結果の将来の値(現在から所定の時間にわたる需要など)を予測するように予測モデル150が設計される実施形態では、結果の現在観測された値(現在の前の所定の時間からの実際の需要)が正しい情報として使用され、現在利用可能な関連情報が特徴として使用される。現在利用可能な関連情報は、結果に関連すると考えられる情報を含む。現在利用可能な関連情報はまた、結果自体の過去の値をも含み得る。非限定的な一実施形態では、特徴ベクトルは、結果に関する複数の要素を含む。
【0037】
結果が電力需要であるケースでは、将来の電力需要が、過去の需要自体、ならびに曜日、季節、気象、最高温度および最低温度(予報値または実際の値)などの他の環境パラメータに関連すると考えられることが企図される。したがって、電力需要およびそのような環境パラメータの観測値が特徴として使用され得る。
【0038】
モデル・トレーニング・モジュール130は、新規なモーメント推定およびパラメータ更新技術に基づく方式で予測モデル150をトレーニングするように構成される。予測モデル150は、モデル・トレーニング・モジュール130によってチューニングされるモデル・パラメータ152を有する。予測モデル150のトレーニングは、本明細書で説明される適応モーメント推定を用いる確率的勾配降下法(SGD)に基づき得ると想定される。非限定的な一実施形態では、予測モデル150、より具体的にはモデル・パラメータ152が、新しいトレーニング例が到着する(利用可能になる)ごとに更新される。理解できるように、予測モデル150のトレーニングはオンライン学習であると見なされ得る。
【0039】
予測モデル150は、入力特徴に基づいて結果の将来の値を予測し、予報を予測結果104として出力するように構成される。入力取得モジュール110はまた、取得された入力データ102に基づいて、予測モデル150に特徴を入力する。入力特徴の特定の内容は、トレーニング・データの特定の内容と、予測モデル150の特定の設計とに依存し得る。非限定的な一実施形態では、所定の期間にわたる結果の最新の値が特徴として使用される。曜日、季節、気象、最高温度および最低温度などの、結果に関連すると考えられる現在観測された情報が入力特徴として使用され得ることが企図される。理解できるように、本明細書では、「将来」という用語は、予測の目標が入力特徴の時間範囲外にあることを示す。
【0040】
トレーニング・プロセスがSGDに基づくので、予測モデル150が標準SGDによってトレーニングすることのできる様々なモデルの中の任意のアーキテクチャに基づき得ることが想定される。予測モデル150のアーキテクチャの例には、限定はしないが、とりわけ、ロジスティック回帰、サポート・ベクトル・マシン(SVM)、線形回帰などの回帰分析、グラフィカル・モデル、DNN(ディープ・ニューラル・ネットワーク)、RNN(再帰型ニューラル・ネットワーク)、LSTM(長・短期記憶)、CNN(畳込みニューラル・ネットワーク)などの人工ニューラル・ネットワーク(ANN)が含まれる。
【0041】
非限定的な一実施形態では、予測モデル150は、ストリーミング式に与えられる入力特徴に基づいて結果の将来の値を予測する回帰モード(たとえば、リアル・タイム予報)であると一般的に説明される。実施形態では、入力の新しいパターンに動的に適応することが必要であり、したがってパラメータが頻繁に更新されるようなタスクに、モーメント推定およびパラメータ更新技術が適用される。しかしながら、予測モデル150は回帰モデルに限定されず、予測モデル150の目標は、結果の将来の値に限定されない。実施形態では、予測モデル150は、入力特徴によって特徴付けられる観測値が含まれるカテゴリまたはクラスを予測する分類モデルであり得る。分類モデルは、2進分類モデル、または複数の2進分類モデルを組み合わせることによって実装され得、複数の結果の値を出力するマルチクラス分類モデルであり得ることが想定される。理解できるように、予測はリアル・タイム予報に限定されない。実施形態では、トレーニング・データセット全体があらかじめ提供され得る。トレーニング・データセット全体が学習前に利用可能であるとしても、トレーニング・データセット全体からランダムに取り上げられる単一のトレーニング例またはトレーニング例のグループを使用することにより、モデル・パラメータが反復的に更新される。
【0042】
図2を参照して、モデル・トレーニング・モジュール130の詳細なブロック図が説明される。モデル・トレーニング・モジュール130は、予測モデル150のトレーニングのための設定を初期化するための初期化サブモジュール132と、トレーニング・データの単一のトレーニング例またはトレーニング例のグループ(ミニバッチ)を使用してトレーニング予測モデル150のパラメータに関して目的関数の確率的勾配を計算するための勾配計算サブモジュール134と、パラメータ更新についての適応モーメント推定のためのモーメント推定サブモジュール136、142と、モーメント推定に基づく方式で予測モデル150のモデル・パラメータ152を更新するためのパラメータ更新サブモジュール148とを含む。
【0043】
初期化サブモジュール132は、ハイパー・パラメータ、予測モデル150のモデル・パラメータ152、およびパラメータ更新のために使用される確率的勾配の低次モーメントの推定を初期化するように構成される。ハイパー・パラメータは、経験的に決定され、またはベイズ最適化、グリッド探索などの任意の周知のパラメータ最適化方法によって最適化され得る、所定の値またはデフォルト値に設定され得る。ハイパー・パラメータは、基本学習率適合を実現するための基本ステップ・サイズと、モーメント推定のための基本指数関数的減衰率(base exponential decay rate)とを含み得る。実施形態では、ハイパー・パラメータは、異なる時定数または追加の指数関数的減衰率自体を用いた追加のモーメント推定のための追加の指数関数的減衰率に基本指数関数的減衰率を変更するための要素(たとえば、べきまたは指数)を含む。初期モデル・パラメータがゼロ付近のランダムな値に設定され得、低次モーメントの推定がゼロに初期化され得ることが企図される。
【0044】
勾配計算サブモジュール134は、与えられたトレーニング・データの単一のトレーニング例またはトレーニング例のグループ(たとえば、ミニバッチ)を使用して予測モデル150のモデル・パラメータ152に関して目的関数の確率的勾配を計算するように構成される。理解できるように、「確率的」という用語は一般に、ランダムな確率にリンクされるプロセスを意味するが、独立同分布(I.I.D.)要件を満たす必要はない。本明細書の「確率的」勾配は、目的関数の勾配の推定が、データセット全体ではなくトレーニング・データセットの一部から計算されることを意味する。目的関数は、トレーニング例の結果と、トレーニング例の特徴からモデル・パラメータ152の現在値を用いた予測モデル150によって与えられる予測との間の損失を評価する。
【0045】
モーメント推定サブモジュール136、142は、勾配計算サブモジュール134によって計算された確率的勾配を使用して、異なる時定数を用いた確率的勾配のモーメントの推定を計算するように構成される。本明細書では、モーメント推定についての時定数は、平滑化応答(smoothed response)が元の値の所定の値(1-e-1)に達するための時間量と定義される。推定すべきモーメントは、1つのモーメントまたは複数のモーメントを含み得る。推定すべき複数のモーメントがあるとき、同じタイプの各モーメントについて異なる時定数が与えられる。
【0046】
実施形態では、推定すべきモーメントは、確率的勾配の1次モーメントと、確率的勾配の2次モーメントとを含む。理解できるように、変数のn次モーメントは、変数のn乗の期待値と定義される。1次モーメントは、確率的勾配の平均または平均値を表し、累積速度に関係する。2次モーメントは、平方確率的勾配(squared stochastic gradient)の平均または確率的勾配の(非中心)分散を表し、予測モデル150のモデル・パラメータ152についての個々の学習率をスケールするように働き、感度に関係する。したがって、1次モーメント推定サブモジュール136および2次モーメント推定サブモジュール142を含む2つのモーメント推定サブモジュールがある。
【0047】
1次モーメント推定サブモジュール136は、確率的勾配を使用して、異なる時定数を用いた確率的勾配の1次モーメントの複数の推定を計算するように構成される。非限定的な一実施形態では、推定の数および時定数の数は2である。したがって、1次モーメント推定サブモジュール136は、長期時定数についての確率的勾配の1次モーメントの推定を計算するための長期部分138と、短期時定数についての1次モーメントの推定を計算するための短期部分140とを含む。
【0048】
2次モーメント推定サブモジュール142は、確率的勾配を使用して、異なる時定数を用いた確率的勾配の2次モーメントの複数の推定を計算するように構成される。このようにして、2次モーメント推定サブモジュール142は、長期時定数についての2次モーメントの推定を計算するための長期部分144と、短期時定数についての確率的勾配の2次モーメントの推定を計算するための短期部分146とを含む。2次モーメントについての時定数は、1次モーメントについての時定数に等しいことがあり、または等しくないことがある。
【0049】
実施形態では、1次モーメントおよび2次モーメントのそれぞれについて2つの異なる時定数での2つの推定が得られ、合計で4つの推定が得られる。ハイパー・パラメータを調節する困難を最小限に抑えるために、モーメントの各タイプについての推定の数および時定数の数が2に設定される。しかしながら、各タイプのモーメントについて3つ以上の時定数が利用され得ることが企図される。さらに、1つのタイプのモーメントについての推定の数および時定数の数は、他のタイプのモーメントについての推定の数および時定数の数に等しいことがあり、または等しくないことがある。
【0050】
パラメータ更新サブモジュール148は、2つの異なる時定数を用いた1次モーメントおよび2次モーメントの合計4つの推定を使用して予測モデル150のモデル・パラメータ152を更新するように構成される。モデル・パラメータ152のそれぞれは、保守的な方式で確率的勾配のモーメントの推定の対応する成分によって個々に決定される量で更新される。理解できるように、確率的勾配または確率的勾配のモーメントは、それぞれの要素が予測モデル150のモデル・パラメータ152に対応するベクトルとして計算され得る。
【0051】
非限定的な一実施形態では、モデル・パラメータ152内の各パラメータは、対応する成分の1次モーメントの2つの推定の間の不整合と、対応する成分の2次モーメントの2つの推定の間の大きさの関係とに応じた方式で更新される。1次モーメントおよび2次モーメントの複数の推定を使用して予測モデル150のモデル・パラメータ152を更新することが、以下でさらに詳細に説明される。
【0052】
実施形態では、勾配計算サブモジュール134による確率的勾配の計算、1次モーメント推定サブモジュール136および2次モーメント推定サブモジュール142によって、異なる時定数を用いて1次モーメントおよび2次モーメントの推定を計算すること、およびパラメータ更新サブモジュール148によってモデル・パラメータ152を更新することが、新しいトレーニング例が到着するごとに反復的に実施される。
【0053】
図1に示される前述のモジュール110、120、130、および150のそれぞれと、図2に示されるモデル・トレーニング・モジュール130の前述のサブモジュール132、134、136、138、140、142、144、146、および148のそれぞれが、プログラム命令またはデータ構造あるいはその両方を含むソフトウェア・モジュールとして、プロセッサ、メモリなどのハードウェア構成要素と共に、電子回路を含むハードウェア・モジュールとして、あるいはそれらの組合せとして実装され得ることが企図される。図1に示されるモジュール110、120、130、および150と、図2に示されるサブモジュール132、134、136、138、140、142、144、146、および148が、パーソナル・コンピュータやサーバ・マシンなどの単一のコンピュータ・デバイス上で、またはコンピューティング・ノードのクラスタ、クライアント・サーバ・システム、エッジ・コンピューティング・システム、クラウド・コンピューティング・システムなどの複数のデバイスを介して分散式に実装され得ることが想定される。
【0054】
実施形態では、入力データ102およびモデル・パラメータ152は、モデル・トレーニング・モジュール130を実装するコンピュータ・システムの処理回路が動作可能に結合される適切な内部もしくは外部記憶デバイスまたは記憶媒体内に記憶され得る。モデル・パラメータ152の現在値を用いて予測モデル150によって生成された予測結果104が、適切な内部もしくは外部記憶デバイスまたは記憶媒体内に記憶され、またはデバイスから任意の形式で出力され得、デバイスは、ディスプレイ・デバイス、スピーカ、アラーム、光インジケータ、プリンタ、ネットワーク・アダプタ、後続のシステムに接続されたインターフェース・デバイスを含み得る。
【0055】
次に図3~5を参照して、本発明の例示的実施形態に従って予測モデル150をトレーニングするためのプロセスが説明される。
【0056】
図3は、予測モデル150をトレーニングするためのプロセスを示すフローチャートである。図4は、予測モデル150をトレーニングするためのプロセスを実装する擬似コードを示す。図3~4に示されるプロセスが、図1に示されるモデル・トレーニング・モジュール130と、図2に示されるそのサブモジュールとを少なくとも実装するコンピュータ・システムの処理装置などの処理回路によって実施されることが企図される。
【0057】
実施形態では、図3に示されるプロセスは、たとえば、予測モデル150のトレーニング・プロセスを開始することを求めるオペレータからの要求に応答して、または予報システム100が起動されたことに応答して、ステップS100から始まる。
【0058】
ステップS101で、処理装置は、1次モーメントおよび2次モーメントについての減衰率を含むハイパー・パラメータを取得し、短期時定数と長期時定数の両方について1次モーメントおよび2次モーメントの推定を初期化し得る。モデル・パラメータ152はまた、適切な初期値(たとえば、ゼロ付近のランダムな値)で初期化され、適切な初期値は、予測モデル150のアーキテクチャに依存し得る。
【0059】
図4に示される擬似コードでは、行010~120は、ステップS101でのパラメータおよび変数初期化に対応する。擬似コードでは、rは基本ステップ・サイズまたは基本学習率ハイパー・パラメータを表す。blおよびblは、それぞれが区間[0,1)内に含まれ、基本時定数を用いた1次モーメントおよび2次モーメントについての指数関数的減衰率を表す。pは、現反復ステップtでの予測モデルG(x;p)のモデル・パラメータを表し、ただしxは入力特徴ベクトルを表し、pはモデル・パラメータ・ベクトルを表す。したがって、pは、(t=0での)予測モデルGの初期モデル・パラメータ・ベクトルを表す。f(p)はモデル・パラメータ・ベクトルpを有する目的関数である。目的関数は損失関数{y-G(x;p)}であり得、ただしyは、1つのトレーニング例での観測結果を表し、G(x;p)は、トレーニング例での入力特徴ベクトルxが与えられたときの予測結果を出力する。
【0060】
目的関数f(p)は、モデル・パラメータpに関して微分可能または劣微分可能(sub-differentiable)である。しかしながら、任意の周知のライブラリによって少なくとも数値微分可能な任意の関数も目的関数として適用可能であり得る。
【0061】
d1、d2は、それぞれが正の実数であり(d1、d2>0)、基本指数関数的減衰率bl、blを、異なる時定数(追加の時定数と呼ばれる)を用いた追加のモーメント推定のための追加の指数関数的減衰率bs、bsに変更するためのべきを表す。非限定的な一実施形態では、図4に示される擬似コード中の行090~100に示されるように、d1およびd2は、追加の指数関数的減衰率bs、bsを、それぞれblおよびblのd1乗およびd2乗として与える。d1、d2>1であるとき、基本指数関数的減衰率bl、blは、長期時定数(すなわち、基本時定数が大きい)についての減衰率を表すのに対して、追加の指数関数的減衰率bs(=bl d1)、bs(=bl d2)は、短期時定数(すなわち、追加の時定数が小さい)についての減衰率を表す。基本時定数を追加の時定数に変更するための因子d1、d2を指定する代わりに、追加の指数関数的減衰率bs、bs自体が直接的に指定され得る。
【0062】
mlは、反復ステップtでの基本時定数についての1次モーメントの推定を表し、vlは、反復ステップtでの基本時定数についての2次モーメントの推定を表す。msおよびvsは、追加の時定数についての1次モーメントおよび2次モーメントの推定を表す。図4に示される擬似コードの行070、080、110、および120で、異なる基本時定数および追加の時定数を用いた1次モーメントおよび2次モーメントの初期推定ml、vl、ms、およびvsがゼロ(より正確には、ゼロのベクトル)に初期化される。行060で反復ステップtもゼロに初期化される。
【0063】
ステップS102で、処理装置は、モデル・トレーニング・モジュール130によって、トレーニング・プロセスが終了するか否かを判定し得る。トレーニング・プロセスがステップS102で終了しないと判定したことに応答して、プロセスはステップS103に進み、ステップS103~S108の反復を実施し得る。入力データ102がストリーミング式に与えられるとき、新しいデータが来なくなるまで、またはトレーニング・プロセスを終了するための明示的な命令が受信されるまで、トレーニング・プロセスは続行する。図4に示される擬似コードでは、行130~230のwhileループは、ステップS102からステップ108のループに対応する。理解できるように、図3のプロセスが、新しいデータが来なくなるまで、または明示的な終了命令が受信されるまで続行するものとして説明されたとしても、図4に示される擬似コードは、便宜上、モデル・パラメータ・ベクトルpが収束するまでトレーニング・プロセスを続行するものとして説明される。
【0064】
ステップS103で、処理装置は、モデル・トレーニング・モジュール130によって、新しいトレーニング例(x,y)を取得し得、ただしxは特徴ベクトルを表し、yは正しい情報としての観測結果を表す。新しいトレーニング例が、単一のデータ点(純粋SGD)、または所定のデータ点もしくはサブセットのグループ(ミニバッチSGD)として与えられ得ることが企図される。
【0065】
ステップS104で、処理装置は、勾配計算サブモジュール134によって、トレーニング・データのトレーニング例(x,y)を使用して、現反復ステップtでの目的関数f(p)の確率的勾配gを計算し得る。確率的勾配gは、目的関数f(p)の偏導関数の集合であり、そのそれぞれは、モデル・パラメータ・ベクトルpの1つの要素に対応する1つの変数に関する導関数である。目的関数f(p)は、損失関数{y-G(x;p)}の平均であり得る。図4に示される擬似コードでは、行150はステップS104に対応する。単一のデータ点(またはサンプル)または所定のデータ点のグループ(またはミニバッチ)について確率的勾配gが計算され得ることが想定される。
【0066】
ステップS105で、処理装置は、1次モーメント推定サブモジュール136および2次モーメント推定サブモジュール142によって、基本時定数と追加の時定数の両方ml、vl、ms、およびvsについて1次モーメントおよび2次モーメントの推定を更新し得る。図4に示される擬似コードでは、行160~190はステップS105に対応する。理解できるように、g は、確率的勾配gの要素ごとの平方を示す。図4に示される擬似コードの行160~190は、基本時定数および追加の時定数(または減衰率)について確率的勾配の指数移動平均(exponentially moving average)および平方確率的勾配を計算するようにコンピュータに命令する。モーメントの推定を計算する方式は、減衰率が異なることを除いて、基本時定数と追加の時定数について同一であり得ることが企図される。
【0067】
ステップS106~S108では、処理装置は、パラメータ更新サブモジュール148によって、基本時定数および追加の時定数ml、vl、ms、vsを用いた1次モーメントおよび2次モーメントの推定に基づいて、モデル・パラメータ・ベクトルpを更新し得る。モデル・パラメータ・ベクトルpの各要素が、要素に対応する成分の1次モーメントml、msの2つの推定の間の不整合と、対応する成分の2次モーメントvl、vsの2つの推定の間の大きさの関係とに応じて、平方確率的勾配の移動平均によって調節された確率的勾配の移動平均によって更新される。
【0068】
ステップS106で、処理装置は、パラメータ更新サブモジュール148によって、基本時定数および追加の時定数(長期時定数および短期時定数)についての1次モーメントの推定ml、msに基づいて、1次モーメントの最終的推定を計算し得る。図4に示される擬似コードでは、行200がステップS106に対応する。現反復ステップでの1次モーメントの最終的推定Mが以下のように計算され得る。
【数1】

上式でI(A)は、条件Aが真である場合に1を返し、そうでない場合に0を返す特性関数を表し、°(円演算子)は要素ごとの積、すなわちアダマール積を表し、H(a,b)はベクトルaおよびbの要素ごとの演算子を表す。
【0069】
関数H(a,b)は以下のように定義され得る。
【数2】

【数3】

または
【数4】

上式で、すべての演算子(加算、除算、乗算、平方根、sin関数、min関数、絶対値関数)はベクトルaおよびbの要素ごとの演算を表す。
【0070】
理解できるように、関数Hの中のベクトルml/(1-bl )およびベクトルms/(1-bs )は、それぞれ基本時定数および追加の時定数を用いた1次モーメントの偏り補正推定を表す。実施形態では、偏り補正は、推定がゼロのベクトルに初期化される場合のモーメントの推定の初期化偏りを相殺するように実施される。その分母は時間の経過につれて漸進的1に近づき、したがって偏り補正推定は、大きいtを用いた1次モーメントの偏りのある推定とほぼ同等である。実施されるものとして一般的に説明されるが、偏り補正が省略され得ることが企図される。
【0071】
1次モーメントの最終的推定Mが、特性関数Iと要素ごとの演算子関数Hの要素ごとの積(たとえば、アダマール積)によって計算される。1次モーメントの2つの推定mlおよびmsが特性関数Iに基づく対応する成分で不整合であるとき、1次モーメントの最終的推定Mは、ゼロに設定される要素を有する(実施形態では、ゼロに近い非常に小さい値も企図される)。そうでない場合、1次モーメントの最終的推定Mの要素が、要素ごとの演算子関数Hを使用して、1次モーメントの2つの推定のmlおよびmsの対応する成分を組み合わせることによって生成された値に設定される。
【0072】
図5は、長期時定数と短期時定数の両方を用いた複数のモーメント推定を使用してモデル・パラメータを更新するための方法を示す略図を示す。図5は、2次元パラメータ空間内の目的関数の輪郭プロットを示し、実施形態では、モデル・パラメータは2つのパラメータpxおよびpyを含む。図5では、破線は、トレーニング・プロセス中に進展するモデル・パラメータ152の軌道を概略的に表し、実線の矢印は、短期時定数についての1次モーメントの推定(または確率的勾配の移動平均)を表し、破線の矢印は、長期時定数についての1次モーメントの推定を表し、太線の矢印は1次モーメントの最終的推定を表す。
【0073】
図5に示されるように、トレーニングが進行するにつれて、モデル・パラメータ152は、最適解(誤差最小点)に近づくと予想される。図5に示される軌道では、2つの点(px,py)および(px,py)が取り上げられる。第1の点(px,py)では、長期時定数および短期時定数を用いた1次モーメントの2つの推定が、px成分とpy成分の両方で整合する。このようにして、太字の矢印によって表される最終的推定のベクトルが成分px、pyの値を有し、そのそれぞれは、1次モーメントの2つの推定(たとえば、平均)のそれぞれの成分を組み合わせることによって生成される。
【0074】
しかしながら、第2の点(px,py)では、長期時定数および短期時定数を用いた1次モーメントの2つの推定が、py成分で不整合である。このようにして、一方の推定は正であり、他方の推定は負である。その結果、パラメータpyに対応する最終的推定の成分がゼロに設定され、太字の矢印によって表される最終的推定のベクトルは、成分pxのみについて新しい値(たとえば、平均)を有する。
【0075】
実施形態では、1次モーメントについて3つ以上の時定数も利用され得る。3つ以上の時定数が利用される非限定的な一実施形態では、複数の推定の対応する成分のいずれかが不整合である場合、保守的な規則が最終的推定の成分にゼロを割り当て得る。複数の推定の対応する成分の大部分が整合するとき、いくつかの対応する成分が不整合である場合であっても、より緩和された規則が非ゼロ値を割り当て得る。
【0076】
再び図3を参照すると、ステップS107で、処理装置は、パラメータ更新サブモジュール148によって、長期時定数および短期時定数の2次モーメントの推定vl、vsに基づいて2次モーメントの最終的推定をさらに計算し得る。図4に示される擬似コードでは、行210はステップS107に対応する。現反復ステップでの2次モーメントの最終的推定Vが以下のように計算され得る。
【数5】

上式で、maxは要素ごとの演算を表す。
【0077】
実施形態では、2次モーメントの最終的推定Vが、2次モーメントの2つの推定のそれぞれの成分の最大値を有するベクトルとして計算される。最大値などの大きさの関係を利用する代わりに、成分の相加平均または相乗平均も企図される。2次モーメントのために3つ以上の時定数が使用される実施形態では、3つ以上の推定の最大値または平均が利用され得る。
【0078】
ステップS108で、処理装置は、パラメータ更新サブモジュール148によって、以下で表される更新規則に従って、1次モーメントおよび2次モーメントの最終的推定MおよびVに基づいてモデル・パラメータ152の現在値を更新し得る。
【数6】

上式でeは一般に、ゼロによる除算を回避するために加えられる、非常に小さい値(たとえば10-8)を表す。
【0079】
更新規則に関して上記で説明されたように、1次モーメントの最終的推定Mは、勾配の方向を指す勾配ベクトルを表し、2次モーメントの最終的推定Vの逆数は、基本学習率rに基づいてモデル・パラメータpについての個々の学習率をスケールする働きをする感度として機能する。
【0080】
本明細書で説明されるように、1次モーメントの最終的推定Mは、1次モーメントの2つの推定mlおよびmsの対応する成分が不整合であるときにゼロに設定される要素を有する。理解できるように、更新規則は、不確定なパラメータを変更せず、現状態を保ち、したがってパラメータ更新の方式は保守的である。
【0081】
2次モーメントの推定Vの成分が大きくなる実施形態では、成分に対応するパラメータについての個々の学習率が小さくなる。2次モーメントの最終的推定Vが、2次モーメントの2つの推定のそれぞれの成分の最大値を有するベクトルとして計算されるので、各モデル・パラメータについて、より小さい学習率が選択され、したがってパラメータ更新の方式は保守的である。
【0082】
ステップS108でのパラメータ更新の後、プロセスはステップS102にループバックし得る。新しいデータが取得されないことに応答して、またはトレーニング・プロセスを終了するための明示的な命令が受信されたことに応答して、プロセスはステップS109に分岐し得る。ステップS109で、処理装置は、予測モデル150のモデル・パラメータ152の最終的な最適化された値を返し得、プロセスはステップS110で終了する。
【0083】
本開示の実施形態によれば、学習プロセスの安定性を低下させることなく高速学習が可能なモデルをトレーニングするためのコンピュータ実装方法、コンピュータ・システム、およびコンピュータ・プログラム製品が提供される。
【0084】
理解できるように、確率的勾配のモーメントは、モデル・パラメータの現在値に対する依存関係を有する。したがって、トレーニングが進行するにつれて、確率的勾配のモーメントは変化する。一般に、モーメントの現推定は、古いパラメータに基づく過去の推定を含み、したがって、モーメントが過去の推定に偏る傾向がある。したがって、トレーニング・プロセスが過去の推定を忘れる割合を適切に調節することが役立つ。
【0085】
理解できるように、(過去の推定が忘れられる割合を記述する)少なくとも2つの異なる時定数を用いた確率的勾配のモーメントの少なくとも2つの推定をモデル・パラメータ更新で考慮に入れることにより、古いモデル・パラメータの影響のために勾配推定の大きな間違いをする危険が低減され得る。したがって、学習プロセスの安定性を低下させることなく高速学習が実施され得る。
【0086】
本明細書では1つまたは複数の実施形態がSGDの特定の変種の変形であると説明されたが、様々な他の技術を使用してモーメント推定が実施され得ることが企図される。モーメント推定を用いるSGDの変形の実施形態は、モーメントおよびRMSProp(平方自乗平均伝播)を用いる確率的勾配降下法などを含み得る。本明細書で説明される実施形態によるモーメント推定およびパラメータ更新技術は、モーメント推定がモデルをトレーニングするために実施される限り、任意の技術に適用可能であり得ることが想定される。このようにして、従来のモーメント推定が、本明細書で説明されるモーメント推定技術で置き換えられ得、従来のパラメータ更新規則が、本明細書で説明される、異なる時定数を用いた確率的勾配のモーメントの少なくとも2つの推定を考慮に入れるパラメータ更新規則で置き換えられ得る。
【0087】
本発明による実施形態に関して得られる利点が説明されたが、いくつかの実施形態はこうした潜在的利点を有さないことがあり、こうした潜在的利点は必ずしもすべての実施形態に対して必要とされるわけではないことを理解されたい。
【0088】
次に図6を参照すると、予報システム100のために使用され得るコンピュータ・システム10の一例の略図が示されている。実施形態では、コンピュータ・システム10はコンピュータ・システムとして実装される。理解できるように、コンピュータ・システム10は、適切な処理デバイスの一例に過ぎず、本明細書で説明される発明の実施形態の使用または機能の範囲に関する何らかの限定を示唆するものではない。したがって、コンピュータ・システム10は、前述の機能のいずれかを実装または実施あるいはその両方を行うように構成される。
【0089】
実施形態では、コンピュータ・システム10は、多数の他の汎用または専用コンピューティング・システム環境または構成と共に動作可能である。コンピュータ・システム10と共に使用するのに適していることがある周知のコンピューティング・システム、環境、または構成、あるいはその組合せの例には、限定はしないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、車両内デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれる。
【0090】
コンピュータ・システム10は、コンピュータ・システムによって実行中の、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実施し、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジックデータ構造などを含み得る。
【0091】
コンピュータ・システム10は、図6では汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム10の構成要素は、限定はしないが、プロセッサ(または処理装置)12と、様々なバス・アーキテクチャのいずれかを使用する、メモリ・バスまたはメモリ・コントローラ、およびプロセッサまたはローカル・バスを含むバスによってプロセッサ12に結合されたメモリ16とを含み得る。
【0092】
実施形態では、コンピュータ・システム10は様々なコンピュータ・システム可読媒体を含み得る。そのような媒体は、コンピュータ・システム10によってアクセス可能である、任意の入手可能な媒体であり得、そのような媒体には、揮発性媒体と不揮発性媒体、取外し可能媒体と取外し不能媒体の両方が含まれることが企図される。
【0093】
メモリ16は、ランダム・アクセス・メモリ(RAM)などの揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム10は、他の取外し可能/取外し不能な揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単に例として、取外し不能な不揮発性磁気媒体から読み取り、それに書き込むための記憶システム18が設けられ得る。以下でさらに図示され、説明されるように、記憶システム18は、本明細書で説明される本発明の実施形態の機能を実施するように構成されるプログラム・モジュールのセット(たとえば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0094】
非限定的な一実施形態では、プログラム・モジュールのセット(たとえば、少なくとも1つ)を有するプログラム/ユーティリティ、ならびにオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データが、記憶システム18内に記憶され得る。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはそれらの何らかの組合せのそれぞれは、ネットワーキング環境の実装を含み得る。理解できるように、プログラム・モジュールは、本明細書で説明される、本発明の実施形態の機能または方法あるいはその両方を実施するように構成される。
【0095】
実施形態では、コンピュータ・システム10はまた、キーボード、ポインティング・デバイス、カー・ナビゲーション・システム、オーディオ・システムなどの1つまたは複数の周辺機器24、ディスプレイ26、ユーザがコンピュータ・システム10と対話することを可能にする1つまたは複数のデバイス、またはコンピュータ・システム10が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(たとえば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信し得る。そのような通信は、入力/出力(I/O)インターフェース22を介して行われ得ることが企図される。実施形態では、コンピュータ・システム10は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、一般の広域ネットワーク(WAN)、または公衆ネットワーク(たとえば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと通信し得る。非限定的な一実施形態では、ネットワーク・アダプタ20は、バスを介してコンピュータ・システム10の他の構成要素と通信する。図示していないが、マイクロコード、デバイス・ドライバ、冗長処理装置、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、データ保存記憶システムなどの他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方が、コンピュータ・システム10と共に使用され得ることが想定される。
【0096】
本発明は、コンピュータ・システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含み得る。
【0097】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組合せであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、以下が含まれる:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック(R)、フロッピ(R)・ディスク、パンチ・カード、または命令が記録された溝の中の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組合せ。本明細書では、コンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体を通じて伝播する電磁波(たとえば、光ファイバ・ケーブルを通る光パルス)、あるいはワイヤを通じて伝送される電気信号など、本質的に一時的信号であると解釈されるべきではない。
【0098】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体内に記憶するためにコンピュータ可読プログラム命令を転送する。
【0099】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または類似のプログラミング言語などの従来の手続型プログラミング言語とを含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードのどちらかであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上、かつ部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータまたはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され得、あるいは(たとえば、インターネット・サービス・プロバイダを使用して、インターネットを通じて)外部コンピュータに接続が行われ得る。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路を個別設定し得る。
【0100】
本発明の態様が、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書で説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せが、コンピュータ可読プログラム命令によって実装され得ることを理解されよう。
【0101】
こうしたコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令により、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実装するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに与えられ、マシンが作り出され得る。こうしたコンピュータ可読プログラム命令はまた、命令を記憶したコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示し得るコンピュータ可読記憶媒体内に記憶され得る。
【0102】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実装するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実施させて、コンピュータ実装プロセスが作り出され得る。
【0103】
図中のフローチャートまたはブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、指定の論理的機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表し得る。いくつかの代替の実装では、ブロック内に記載の機能は、図に記載されている以外の順序で行われ得る。たとえば、連続して示される2つのブロックは、実際にはほぼ同時に実行され得、またはブロックは、関係する機能に応じて、時には逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せが、指定の機能または動作を実施し、あるいは専用ハードウェアおよびコンピュータ命令の組合せを実施する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されよう。
【0104】
明細書で使用される用語は、特定の実施形態を説明するためのものに過ぎず、本発明を限定するものではない。本明細書では、単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでない限り、複数形も含むものとする。本明細書では、「備える、含む("comprises" and/or "comprising")」という用語は、明記された特徴、ステップ、層、要素、または構成要素、あるいはその組合せの存在を指定するが、1つまたは複数の他の特徴、ステップ、層、要素、構成要素、またはそのグループ、あるいはその組合せの存在または追加を除外しないことをさらに理解されよう。
【0105】
以下の特許請求の範囲のすべての手段またはステップおよび機能要素の対応する構造、材料、動作、および均等物は、具体的に特許請求されるように、他の特許請求される要素と組み合わせて機能を実施するための任意の構造、材料、または動作を含むものとする。本発明の1つまたは複数の態様の説明は、例示および説明のために提示されたものであり、網羅的なものではなく、開示された形態の発明に限定されないものとする。
【0106】
記載の実施形態の範囲から逸脱することなく、多くの変更形態および変形形態が当業者には明らかとなるであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に勝る実際の応用または技術的改善を最良に説明するように、あるいは当業者が本明細書で開示される実施形態を理解することを可能にするように選ばれた。
図1
図2
図3
図4
図5
図6