本発明は、一般に、例えば機械学習もしくは深層学習又はその組み合わせなどの人工知能(「AI」)の分野に関する。機械学習は、コンピュータシステムまたは特殊な処理回路などの自動処理システム(「機械」)が、特定のデータセットに関する一般化を開発し、一般化を使用して、例えば、新しいデータを分類することによって関連する問題を解決することを可能にする。機械は、入力データまたはトレーニングデータからの既知の特性により一般化を学習すると(またはそれを用いてトレーニングされると)、その一般化を将来のデータに適用して未知の特性を予測することができる。
さらに、機械学習は、システムが明示的なプログラミングによってではなく、データから学習することを可能にするAIの一形態である。機械学習研究の主な焦点は、複雑なパターンを認識し、データに基づいてインテリジェントな意思決定を行うことを自動的に学習し、機械学習モデルやパイプラインをより効率的にトレーニングすることである。しかし、機械学習は単純なプロセスではない。アルゴリズムが学習データを摂取すると、そのデータに基づいてより精度の高いモデルを生成することができるようになる。機械学習モデルとは、機械学習アルゴリズムがデータによりトレーニングされたときに生成される出力である。トレーニング後、機械学習モデルに入力が提供され、出力が生成される。例えば、予測アルゴリズムは、予測モデルを作成してもよい。そして、予測モデルにデータが提供され、モデルをトレーニングしたデータに基づいて予測が生成される(例えば、「出力」)。
機械学習では、機械学習モデルを導入する前にデータセットで学習させることができる。機械学習モデルの中には、オンラインで継続的に学習できるものもある。このオンラインモデルの反復プロセスにより、データ要素間の関連付けの種類が改善される。機械学習モデルやニューラルネットワークモデルを作成するために、さまざまな従来技術が存在する。既存の手法の基本的な前提条件としては、データセットがあること、機械学習モデルの合成、ニューラルネットワークアーキテクチャの合成、コーディングスキルなどの基本的な知識があることが挙げられる。
一実施形態において、自動AI機械学習(「ML」)システム(「自動AIシステム」または自動機械学習システム「自動MLシステム」)は、複数(例えば、数百)の機械学習パイプラインを生成し得る。機械学習パイプラインの設計には、例えば、どのデータ準備および前処理動作を適用すべきか、どの機械アルゴリズムをどの設定(ハイパーパラメータ)で使用すべきか、といったいくつかの決定が含まれる。AI機械学習システムは、承認された、または満足に実行されているパイプラインを自動的に検索することができる。この目的のために、いくつかの機械学習パイプラインを選択し、収束するまでトレーニングさせることができる。その性能は、データのホールドアウトセットで推定される。しかし、データセット全体、特に時系列データセットで機械学習モデルをトレーニングし、収束するまで待つことは、時間がかかる。
時系列データは多くのシステムで生成され、多くの場合、これらのシステムにおける将来の事象を予測、予知するための基礎となるものである。例えば、データセンターでは、監視システムが数万から数十万の時系列データを生成し、それぞれが特定の構成要素(例えば、サーバのプロセッサとメモリの使用率、ネットワークリンクの帯域幅使用率など)の状態を表していることがある。自己回帰統合移動平均法(「ARIMA」)は、時系列データのモデリングと時系列の将来値の予測に使用される統計モデルの一種である。このようなモデリングと予測は、将来の事象を予測し、事前対策を講じ、もしくは異常な傾向を検出することまたはその組み合わせのために使用される。時系列分析は、例えば、金融、インターネットオブシングス(「IoT」)、もしくは技術産業またはその組み合わせなど、様々な種類の産業において極めて重要である。時系列はノイズが多く複雑な場合があり、可能であれば意味のあるモデルを学習するために、大規模なデータセット、多大な時間、専門知識を必要とする場合がある。
そのため、特に時系列データに関連する機械学習パイプラインを最適化するためのトレーニングおよび識別に課題が生じる。一態様において、機械学習パイプラインは、例示的な機械学習パイプラインを示す図5に示されるように、一連の変換器と推定器を含むワークフローを指す場合がある。このように、最適化された機械学習パイプラインを特定し選択することは、時系列予測のための自動機械学習システムにおける重要な構成要素である。さらに、時系列機械学習パイプライン予測のためのランク付けされた機械学習パイプラインを迅速に特定することは、課題である。例えば、時系列予測のための最適化された、または「トップパフォーマンス」の機械学習パイプラインを特定することは、1)大きく異なるドメインからの大規模なデータセット、2)マルチモーダルおよび多変量の時系列の複雑さ、もしくは3)機械学習パイプライン内の多数の推定器および変換器またはその組み合わせのために難しい。また、機械学習パイプラインの性能を単純な線形回帰で予測し、入力時系列の特性を考慮せずに固定的にデータを割り当てるなど、非効率なデータ割り当て方式により、データ割り当てを伴う機械学習パイプラインの評価ベースの運用は、時系列予測にさらなる課題をもたらす。さらに、機械学習パイプラインを実行する評価ベースの命令は、1)時系列データは一連であり、その順序をランダムにすることができない、2)時系列データには季節性や傾向があり、データ割り当てスキーマで考慮しなければならない、3)データは時間とともに進化するため、時間の経過とともに履歴データの関連性が低くなる、という理由から表形式のデータを対象に設計されており、時系列(「TS」)データに直接適用できない。このように、学習データが多ければ多いほど精度が上がるという推定は不正確なものである。
したがって、時系列機械学習パイプライン予測のための機械学習パイプラインの自動評価と診断を提供する必要性が存在する。より詳細には、時系列機械学習パイプライン予測のための時系列予測機械学習パイプラインのランク付けに対するニーズが存在する。このように、本発明の様々な実施形態は、評価ベースの共同最適化装置を用いて機械学習パイプラインを選択する自動機械学習システムであって、機械学習パイプラインを増加的なデータ割り当てにより実行するものを提供する。
そのため、本明細書に記載されるように、図示された実施形態のメカニズムは、時系列データの割り当てを実行することによって機械学習パイプラインを実行し、実行時間を改善するために事前に計算された特徴をキャッシュする「評価ベースの共同オプティマイザ」(「ジョイントオプティマイザ」)を使用する自動機械学習システムを提供する。ジョイントオプティマイザは、1)時系列データ(例えば、入力データ)の時系列特性に基づいて割り当てサイズを決定し、2)時間的に遡ってデータ割り当てを実行し、もしくは3)事前計算された特徴をキャッシュ、またはこれらの組み合わせにより最終推定量を更新し得る。
図示された実施形態のメカニズムは、増加的なデータ割り当ておよび学習曲線予測に基づく時系列パイプラインの共同最適化のための上限を用いた時系列データ割り当て(「TDAUB」)を提供することによって、現在の技術状態に勝る利点を提供する。TDAUBは、不確実性の下での楽観主義の原則に従い、本明細書で上限を用いたデータ割り当て(「DAUB」)モデルと呼ばれるデータ割り当て戦略に基づいてもよい。すなわち、より多くのトレーニングデータを割り当てることの効用逓減のマイルドな推定の下で、DAUBモデルは、トレーニングコスト関数があまり異質でない場合、トレーニングコストの点でのサブリニアリグレットに拡張する、ミスアロケーションデータにおけるサブリニアリグレットを達成する。さらに、DAUBモデルは、精度関数を推定することなく、漸近的に厳しいミスアロケーションデータに関する境界を得ることができる。このようにして、DAUBモデルを利用するシステムは、与えられたデータセットが大きく、分類器のトレーニングが全データセットで数週間かかる可能性がある場合でも、広範囲の分析ツール(例えば、自動化ツール)のライブかつ動的な監視と分析、およびこのシステムとの対話能力をデータサイエンティストに提供できる。
共同最適化のためのTDAUB演算の使用において、本発明の実施形態は、増加的なデータ割り当て及び学習曲線予測に基づく時系列パイプラインの共同最適化を提供することができる。時系列データのデータ割り当てサイズは、時系列データセットの1つ以上の特性に基づいて決定されてもよい。入力データのサイズが大きく、候補の機械学習パイプラインの入力セットが大きい可能性があるため、データの割り当てが重要であることに留意されたい。候補の機械学習パイプラインのそれぞれが入力データセット全体を提供される場合、自動AI機械学習システムの実行時間は、特に候補のパイプラインを微調整するためにハイパーパラメータ最適化(「HPO」)が利用される場合、時間がかかりすぎることがある。このように、時系列データのデータ割り当ては、元の時系列データセットのより小さな部分を候補の機械学習パイプラインに割り当てる。機械学習パイプラインのサブセットは、縮小されたデータセットでの性能に基づいて、候補の機械学習パイプラインから選択される。時系列データは、データ割り当てサイズに基づいて、候補の機械学習パイプラインが使用するために割り当てられることができる。
時系列データの特徴は、候補の機械学習パイプラインによって決定され、キャッシュされる場合がある。少なくとも1つ以上の特徴を使用する候補の機械学習パイプラインのそれぞれの予測が評価される場合がある。機械学習パイプラインのランク付けされたリストは、1つ以上の候補の機械学習パイプラインのそれぞれの予測の評価に基づいて、時系列予測のための候補の機械学習パイプラインから自動的に生成されてもよい。学習曲線(1つ以上の部分学習曲線を含み得る)は、機械学習パイプラインの性能レベルを予測し得る。
追加の実施形態では、データ割り当てサイズに基づいて時系列データを割り当てる間、時系列データセットの一連の順序が使用される場合がある。時系列データを割り当てるために、ホールドアウトデータセット、テストデータセット、及びトレーニングデータセットが時系列データから識別され、決定される場合がある。時系列データは、時間的に遡って割り当てられる場合がある。
別の実施形態では、候補となる機械学習パイプラインは、時系列データ、ホールドデータセット、テストデータセット、及び時系列データからのトレーニングデータセットを用いてトレーニング及び評価されることであってもよい。
別の実施形態では、特徴は、1つ以上の候補の機械学習パイプラインによって使用するために以前に決定された特徴と組み合わせてもよく、特徴は、1つ以上の候補の機械学習パイプラインの最終推定器にキャッシュされてもよい。
本明細書で使用する場合、2種類の学習曲線が存在する可能性があることに留意されたい。一態様では、(例えば、定義1)、学習曲線は、費やされたトレーニングの反復数を検証損失に対応付ける関数であってもよい。別の態様では、(例えば、定義2)、学習曲線は、全トレーニングデータから使用されるデータの割合を検証損失にマッピングする関数であってもよい。学習曲線は、機械学習モデルに対してより多くのトレーニング時間が費やされるほど、長くなる可能性がある。したがって、例えば自動機械学習システムなどの図示された実施形態のメカニズムは、任意の長さと両方の定義タイプを有する(例えば、様々な学習曲線は組み合わせることもできる)各学習曲線を処理し取り扱うことが可能となる。
一態様において、検証損失は、機械学習モデルがどの程度良好に(例えば、測定可能な値、ランク付け、値の範囲、もしくは性能レベルを示すパーセンテージまたはその組み合わせ)動作するかを定義するメトリックであってよい。検証損失は、機械学習モデルのトレーニングに使用されていないデータで計算された損失であってもよく、新しいデータで実際に使用されるときにモデルがどの程度うまくいくかを知ることができる。
追加の態様において、本明細書で使用されるように、機械学習パイプラインは、機械学習プロセスまたはモデルをトレーニングするための1つ以上のプロセス、動作、またはステップ(例えば、コンピューティングアプリケーションコードの作成、種々のデータ操作の実行、1つ以上の機械学習モデルの作成、機械学習モデルまたは動作の調整もしくはチューニング又はその組み合わせ、または機械学習動作を伴う種々の定義された連続動作もしくはその組み合わせ)でもよい。加えて、機械学習パイプラインは、結果を達成するためにテストおよび評価され得る機械学習モデルにおいて、データのシーケンスが変換され、一緒に相関されることを可能にし得る1つ以上の機械学習ワークフローであってもよい。さらに、トレーニングされた機械学習パイプラインは、異なるデータキュレーションおよび前処理ステップの任意の組合せを含んでもよい。機械学習パイプラインは、少なくとも1つの機械学習モデルを含んでもよい。また、トレーニングされた機械学習パイプラインは、少なくとも1つのトレーニングされた機械学習モデルを含んでもよい。
ある態様では、機械学習モデルは、キュレーションされ前処理されたデータを入力とし、タスクに応じて予測(例えば、機械学習パイプラインの前に起こったすべてのステップの出力)を出力するシステムであってよく、予測(prediction)は、予測(forecast)、クラス、もしくは、例えば、翻訳の場合の文のようなより複雑な出力またはその組み合わせであってよい。別の態様では、機械学習モデルは、機械学習アルゴリズムをデータでトレーニングする際に生成される出力である。トレーニング後、機械学習モデルには入力が提供されることがあり、機械学習モデルは出力を提供することになる。
一般に、本明細書で使用される場合、「最適化」は、「最大化」、「最小化」、または1つ以上の特定のターゲット、目的、ゴール、または意図を達成することを指し、もしくは定義することまたはその組み合わせができる。最適化はまた、ユーザに対する利益を最大化することを指す場合がある(例えば、トレーニングされた機械学習パイプライン/モデルの利益を最大化する)。また、最適化とは、状況、機会、またはリソースを最も効果的または機能的に使用することを指す場合もある。
さらに、最適化は、最良の解決策または結果を指す必要はないが、例えば、特定のアプリケーションに対して「十分な」解決策または結果を指すことがある。いくつかの実装形態では、目的は、前処理動作(「プレプロセッサー」)もしくは機械学習モデル/機械学習パイプラインまたはその組み合わせの「最良の」組み合わせを提案することであるが、前処理動作(「プレプロセッサー」)もしくは機械学習モデル又はその両方の組み合わせの代替提案をもたらす可能性がある様々な要因が存在し得、より良い結果がもたらされる。ここで、「最適化」という用語は、最小値(または、最適化問題で考慮されるパラメータに応じて最大値)に基づくそのような結果を指す場合がある。追加の態様において、用語「最適化(optimize)」もしくは「最適化する(optimizing)」またはその両方は、最適な結果が実際に達成されるかどうかにかかわらず、実行コストの削減またはリソース使用の増加などの改善された結果を達成するために行われる動作を指す場合がある。同様に、「最適化(optimize)」という用語は、そのような改善動作を行うためのコンポーネントを指す場合があり、「最適化された(optimized)」という用語は、そのような改善動作の結果を表すために使用することができる。
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウドコンピューティング環境に限定されないことが予め理解される。むしろ、本発明の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
特性は以下の通りである。
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
展開モデルは以下の通りである。
プライベートクラウド:このクラウドインフラストラクチャは、組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスへの懸念)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図1を参照すると、クラウドコンピューティングノードの一例の概略図が示されている。クラウドコンピューティングノード10は、好適なクラウドコンピューティングノードの一例に過ぎず、本明細書に記載の本発明の実施形態の使用範囲または機能性に関する制限を示唆することを意図するものではない。関係なく、クラウドコンピューティングノード10は、本明細書で規定された機能性のいずれかを実装もしくは実行またはその両方をすることが可能である。
クラウドコンピューティングノード10では、多数の他の汎用または特殊目的のコンピューティングシステム環境または構成で運用可能なコンピュータシステム/サーバ12が存在する。コンピュータシステム/サーバ12と共に使用するのに適した周知のコンピューティングシステム、環境、もしくは構成またはその組み合わせの例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル家電、ネットワークPC、ミニコンシステム、メインフレームコンピュータシステム、上記のシステムまたは装置のいずれかを含む分散クラウドコンピューティング環境等があるがそれに限定されない。
コンピュータシステム/サーバ12は、プログラムモジュールなどのコンピュータシステム実行可能な命令がコンピュータシステムによって実行されるという一般的なコンテクストで説明されることがある。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、論理、データ構造などを含むことができる。コンピュータシステム/サーバ12は、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される分散型クラウドコンピューティング環境において実施され得る。分散型クラウドコンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートコンピュータシステム記憶媒体の両方に配置されることがある。
図1に示すように、クラウドコンピューティングノード10のコンピュータシステム/サーバ12は、汎用コンピューティングデバイスの形態で示されている。コンピュータシステム/サーバ12の構成要素は、1つ以上のプロセッサまたは処理ユニット16、システムメモリ28、およびシステムメモリ28を含む様々なシステム構成要素を処理ユニット16に結合するバス18を含むことができるが、これらに限定されるものではない。
バス18は、メモリバスまたはメモリコントローラ、周辺機器バス、加速グラフィックスポート、および様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含む、いくつかのタイプのバス構造のうちのいずれか1つまたは複数を表す。限定ではない一例として、かかるアーキテクチャは、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、およびペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
コンピュータシステム/サーバ12は一般的に、種々のコンピュータシステム可読媒体を含む。かかる媒体は、コンピュータシステム/サーバ12によってアクセス可能な任意の利用可能な媒体でよく、揮発性媒体および不揮発性媒体の両方と、取り外し可能媒体および取り外し不能媒体の両方とを含むことができる。
システムメモリ28は、ランダムアクセスメモリ(RAM)30もしくはキャッシュメモリ32またはその両方など、揮発性メモリとしてのコンピュータシステム可読媒体を含むことができる。コンピュータシステム/サーバ12はさらに、他の取り外し可能/取り外し不能コンピュータシステム可読媒体および揮発性/不揮発性コンピュータシステム可読媒体を含んでもよい。一例として、ストレージシステム34は、取り外し不能な不揮発性磁気媒体もしくはソリッドステートドライブまたはその両方(不図示。一般に「ハードドライブ」と呼ばれる)への読み書きのために設けることができる。また、図示は省略するが、取り外し可能な不揮発性磁気ディスク(例えば、フロッピーディスク)への読み書きのための磁気ディスクドライブ、および取り外し可能な不揮発性光学ディスク(CD-ROM、DVD-ROMや他の光学媒体など)への読み書きのための光学ディスクドライブを設けることができる。これらの例において、それぞれを、1つ以上のデータ媒体インタフェースによってバス18に接続することができる。以下でさらに図示および説明するように、システムメモリ28は、本発明の実施形態の機能を実行するように構成されたプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
限定ではない一例として、プログラムモジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40は、オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータと同様に、システムメモリ28に記憶することができる。オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータ、またはそれらのいくつかの組み合わせの各々は、ネットワーク環境の実装形態を含むことができる。プログラムモジュール42は一般に、本明細書に記載の本発明の実施形態の機能もしくは方法またはその両方を実行する。
また、コンピュータシステム/サーバ12は、キーボード、ポインティングデバイス、ディスプレイ24などの1つ以上の外部装置14、ユーザとコンピュータシステム/サーバ12との対話を可能にする1つ以上の装置、もしくはコンピュータシステム/サーバ12と1つ以上の他のコンピュータ装置との通信を可能にする任意の装置(例えば、ネットワークカードやモデムなど)またはこれらの組み合わせと通信することができる。かかる通信は、入力/出力(I/O)インタフェース22を介して行うことができる。さらに、コンピュータシステム/サーバ12は、ネットワークアダプタ20を介して1つ以上のネットワーク(ローカルエリアネットワーク(LAN)、汎用広域ネットワーク(WAN)、もしくはパブリックネットワーク(例えばインターネット)またはこれらの組み合わせなど)と通信することができる。図示するように、ネットワークアダプタ20は、バス18を介してコンピュータシステム/サーバ12の他のコンポーネントと通信することができる。なお、図示は省略するが、他のハードウェアコンポーネントもしくはソフトウェアコンポーネントまたはその両方を、コンピュータシステム/サーバ12と併用することができる。それらの一例としては、マイクロコード、デバイスドライバ、冗長化処理ユニット、外付けディスクドライブアレイ、RAIDシステム、テープドライブ、データアーカイブストレージシステムなどがあるが、これらに限定されるものではない。
ここで図2を参照すると、例示的なクラウドコンピューティング環境50が示されている。図示のように、クラウドコンピューティング環境50は1つまたは複数のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、パーソナルデジタルアシスタント(PDA)もしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図2に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
ここで図3を参照すると、図2に示されるクラウドコンピューティング環境50によって提供される機能的抽象化レイヤのセットを示すブロック図である。なお、図3に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
デバイスレイヤ55は、クラウドコンピューティング環境50において様々なタスクを実行するために、電子機器、センサ、アクチュエータ、および他のオブジェクトと一緒にもしくは独立又はその組み合わせにより埋め込まれた、物理的もしくは仮想的またはその両方のデバイスを含む。デバイスレイヤ55のデバイスのそれぞれは、デバイスから得られた情報もしくは他の抽象化レイヤからの情報又はその両方がデバイスに提供され得るように、他の機能抽象化レイヤへのネットワーキング能力を組み込む。一実施形態では、デバイスレイヤ55を包含する様々なデバイスは、「インターネットオブシングス」(IoT)として集合的に知られているエンティティのネットワークを組み込むことができる。エンティティのそのようなネットワークは、当業者が理解するように、非常に多様な目的を達成するために、データの相互通信、収集、および普及を可能にする。
図示のようなデバイスレイヤ55は、センサ52、アクチュエータ53、統合処理、センサ、およびネットワーク電子機器を有する「学習」サーモスタット56、カメラ57、制御可能な家庭用コンセント/レセプタクル58、および制御可能な電気スイッチ59を含む。他の可能なデバイスには、様々な追加のセンサデバイス、ネットワークデバイス、電子機器デバイス(遠隔操作デバイスなど)、追加のアクチュエータデバイス、冷蔵庫や洗濯機/乾燥機などのいわゆる「スマート」家電、および多種多様な他の可能な相互接続オブジェクトが含まれるが、これらに限定されない。
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75。
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、本発明の図示の実施形態のコンテクストでは、コンピューティング環境(例えば、ニューラルネットワークアーキテクチャ)における時系列予測機械学習パイプラインをランク付けするための様々なワークロードおよび機能96が含まれる。さらに、コンピューティング環境における時系列予測機械学習パイプラインをランク付けするためのワークロードおよび機能96は、分析、深層学習、およびさらに説明されるように、ユーザおよびデバイス管理機能などの動作を含み得る。当業者であれば、コンピューティング環境における時系列予測機械学習パイプラインをランク付けするためのワークロードおよび機能96は、ハードウェアおよびソフトウェア60、仮想化70、管理80、および他のワークロード90(たとえば、データ分析処理94など)におけるものなど、様々な抽象化レイヤの他の部分と連携して、本発明の例示された実施形態の様々な目的を達成してもよいことを理解するだろう。
前述のように、本発明は、コンピューティングシステム内の1つ以上のプロセッサによるコンピューティング環境において、時系列予測機械学習パイプラインをランク付けする新規ソリューションを提供する。時系列データは、時系列データの季節性または時間的依存性の程度に基づいて、候補の機械学習パイプラインによるテストのために時系列データセットから増加的に割り当てられる場合がある。各時系列データの割り当てに続いて、候補の機械学習パイプラインのそれぞれによって中間評価スコアが提供される場合がある。中間評価スコアから生成された予測の学習曲線に基づいて、1つ以上の候補の機械学習パイプラインのランク付けされたリストから1つ以上の機械学習パイプラインが自動的に選択されることがある。
追加の態様において、様々な実施形態が、時系列パイプライン(変換器および推定器を含む)を共同で最適化し、増加的なデータ割り当てスキーマを介して完全/十分なデータセットで各パイプラインをトレーニングすることなく、1つ以上の最適化またはトップパフォーマンスの機械学習パイプラインを選択するために提供される。一態様では、時系列データ、変換器および推定器のライブラリが、入力として取得され得る。出力として、1つ以上の最適化またはトップパフォーマンスの機械学習パイプラインが識別/選択され、中間評価スコアが決定される場合がある。
1つの態様では、増加的なデータ割り当てスキーマを使用して、季節性または時間依存性のレベルのいずれかに基づいてトレーニングデータを割り当てることができる。各データ割り当てに続いて評価スコアを提供するために、パイプライン評価命令が実行されることがある。学習曲線が予測され、複数のテストセットが学習曲線の予測と評価の繰り返しに使用されることがある。学習曲線上のカットオフポイントが特定され、履歴/昔のデータ(もしあれば)に対して位置づけられることがある。
ここで図4を参照すると、図示された実施形態の様々なメカニズムに従って、コンピューティング環境において(例えば、ニューラルネットワークアーキテクチャにおいて)時系列予測機械学習パイプラインをランク付けするためのシステム400の例示的な機能コンポーネントを示すブロック図が示される。一態様では、図1~3で説明したコンポーネント、モジュール、サービス、アプリケーション、もしくは機能またはその組み合わせのうちの1つまたは複数が、図4で使用され得る。このことからわかるように、機能ブロックの多くは、図1~3で先に説明したのと同じ記述的な意味で、機能性の「モジュール」または「コンポーネント」とも見なされ得る。
本発明の様々な態様に従って様々な計算、データ処理および他の機能を実行するための処理装置420(「プロセッサ」)を組み込んだ、時系列予測機械学習パイプラインランク付けサービス410が示される。一態様では、プロセッサ420およびメモリ430は、時系列予測機械学習パイプラインランク付けサービス410の内部もしくは外部又はその両方、ならびにコンピュータシステム/サーバ12の内部もしくは外部又はその両方であり得る。時系列予測機械学習パイプラインランク付けサービス410は、図1で説明したように、コンピュータシステム/サーバ12に含まれるもしくは外部にある又はその両方であってもよい。プロセッサ420は、メモリ430と通信してもよい。時系列予測機械学習パイプラインランク付けサービス410は、機械学習コンポーネント440、割り当てコンポーネント450、評価コンポーネント460、ジョイントオプティマイザコンポーネント470、および学習コンポーネント490を含んでもよい。
一態様において、システム400は、仮想化コンピューティングサービス(すなわち、仮想化コンピューティング、仮想化ストレージ、仮想化ネットワーキングなど)を提供してもよい。より具体的には、システム400は、ハードウェア基板上で実行される仮想化コンピューティング、仮想化ストレージ、仮想化ネットワーキングおよび他の仮想化サービスを提供してもよい。
機械学習コンポーネント440は、割り当てコンポーネント450、評価コンポーネント460、ジョイントオプティマイザコンポーネント470、および学習コンポーネント490と関連して、コンピューティングシステム内の1つ以上のプロセッサによるコンピューティング環境において、時系列予測機械学習パイプラインをランク付けしてもよい。
一態様において、機械学習コンポーネント440は、機械学習モデルもしくは機械学習パイプラインまたはその両方、機械学習モデルもしくは機械学習パイプラインまたはその両方をテストするために使用されるデータセット(例えば、時系列データセット)のデータセットを受信、識別、もしくは選択またはその組み合わせをし得る。
機械学習コンポーネント440は、割り当てコンポーネント450、評価コンポーネント460、ジョイントオプティマイザコンポーネント470と関連して、時系列データセットの1つまたは複数の特性に基づいて、時系列データのデータ割り当てサイズを決定してもよい。機械学習コンポーネント440は、割り当てコンポーネント450と関連して、データ割り当てサイズに基づいて、1つ以上の候補の機械学習パイプラインによって使用するために時系列データを割り当ててもよい。
機械学習コンポーネント440は、割り当てコンポーネント450、評価コンポーネント460、ジョイントオプティマイザコンポーネント470と関連して、時系列データの季節性または時間依存性の程度に基づいて、候補の機械学習パイプラインによるテストのために、時系列データセットから時系列データを増加的に割り当ててもよい。
機械学習コンポーネント440は、割り当てコンポーネント450、評価コンポーネント460、ジョイントオプティマイザコンポーネント470と関連して、中間評価スコアを決定してもよく、各時系列データの割り当てに続いて候補の機械学習パイプラインのそれぞれによって提供されてもよい。機械学習コンポーネント440は、割り当てコンポーネント450、評価コンポーネント460、ジョイントオプティマイザコンポーネント470と関連して、中間評価スコアから生成された予測の学習曲線に基づいて、1つ以上の候補の機械学習パイプラインのランク付けされたリストから1つ以上の機械学習パイプラインを自動的に選択してもよい。
追加の実施形態では、機械学習コンポーネント440は、割り当てコンポーネント450、評価コンポーネント460、ジョイントオプティマイザコンポーネント470と関連して、1つ以上の候補の機械学習パイプラインのそれぞれに時間的に遡って時系列データの定義されたサブセットを割り当ててもよい。時間ベースの閾値を超える時系列データの一部は、履歴時系列データとして識別されてもよい。履歴時系列データは、より最近のトレーニングデータと比較して、より精度の低いトレーニングデータである。
機械学習コンポーネント440は、割り当てコンポーネント450、評価コンポーネント460、ジョイントオプティマイザコンポーネント470と関連して、時系列データの各割り当て量について各候補の機械学習パイプラインをトレーニングおよび評価してもよい。1つ以上の候補の機械学習パイプラインにおけるトレーニングデータの割り当て量は、トレーニングデータの1つ以上の以前の割り当て量からの中間評価スコアに基づいて段階的に増加してもよい。学習コンポーネント490は、決定/計算され得る中間評価スコアのそれぞれから生成される学習曲線を予測、生成、または提供してもよい。候補の機械学習パイプラインのそれぞれは、予測の学習曲線に基づいてランク付けされてもよい。
機械学習コンポーネント440は、割り当てコンポーネント450と関連して、データ割り当てサイズに基づいて時系列データを割り当てる間、時系列データセットの一連の順序を使用することができる。機械学習コンポーネント440は、割り当てコンポーネント450と関連して、時系列データを割り当てるために、時系列データからホールドアウトデータセット、テストデータセット、およびトレーニングデータセットを決定もしくは識別またはその両方をしてもよい。機械学習コンポーネント440は、割り当てコンポーネント450と関連して、時系列データを時間的に遡って割り当ててもよい。
他の実施形態では、機械学習コンポーネント440は、割り当てコンポーネント450、評価コンポーネント460、およびジョイントオプティマイザコンポーネント470と関連して、時系列データ、ホールドデータセット、テストデータセット、および時系列データからの学習データセットを使用して、候補の機械学習パイプラインをトレーニングおよび評価し得る。
他の実施形態では、機械学習コンポーネント440は、割り当てコンポーネント450、評価コンポーネント460、ジョイントオプティマイザコンポーネント470、およびキャッシュコンポーネント480と関連して、1つ以上の候補の機械学習パイプラインによって使用するために1つ以上の特徴を以前に決定した特徴と組み合わせ、その特徴は1つ以上の候補の機械学習パイプラインの最終推定器でキャッシュされてもよい。
一態様では、本明細書に記載の機械学習コンポーネント440は、教師あり学習、教師なし学習、時間差学習、強化学習などの多種多様な方法または方法の組み合わせを使用して、様々な機械学習動作を実行し得る。本技術と共に使用され得る教師あり学習のいくつかの非限定的な例としては、AODE(平均化一依存性推定量)、人工ニューラルネットワーク、バックプロパゲーション、ベイズ統計、ナイーブベイズ分類器、ベイズネットワーク、ベイズ知識ベース、ケースベース推論、デシジョンツリー、誘導論理プログラミング、ガウス過程回帰、遺伝子発現プログラミング、データ処理グループ法(GMDH)、学習自動化、学習ベクトル量子化、最小メッセージ長(デシジョンツリー、デシジョングラフ、その他)、遅延学習、インスタンスベース学習、最近傍アルゴリズム、類推モデリング、PAC(probably approximately correct)学習、リップルダウンルール、知識獲得手法、記号的機械学習アルゴリズム、サブ記号的機械学習アルゴリズム、サポートベクターマシン、ランダムフォレスト、分類器のアンサンブル、ブートストラップ集計(bagging)、ブースティング(meta-algorithm)、序列分類、回帰分析、情報ファジーネットワーク(IFN)、統計分類、線形分類器、フィッシャーの線形判別、ロジスティック回帰、パーセプトロン、サポートベクターマシン、二次分類器、k近傍、隠れマルコフモデル及びブーストが挙げられる。本技術で使用され得る教師なし学習の非限定的な例としては、人工ニューラルネットワーク、データクラスタリング、期待値最大化、自己組織化マップ、放射基底関数ネットワーク、ベクトル量子化、生成地形マップ、情報ボトルネック法などがある、IBSEAD(distributed autonomous entity systems based interaction)、連想規則学習、アプリオリアルゴリズム、イークラットアルゴリズム、FPグロースアルゴリズム、階層型クラスタリング、単一連結クラスタリング、概念クラスタリング、部分的クラスタリング、kミーンズアルゴリズム、ファジークラスタリング、強化学習が挙げられる。時間差学習のいくつかの非限定的な例は、Q-ラーニングおよび学習オートマトンを含み得る。本段落で説明した教師あり、教師なし、時間差、または他の機械学習の例のいずれかに関する具体的な詳細は、既知であり、本開示の範囲内である。また、1つ以上の機械学習モデルを展開する場合、コンピューティングデバイスは、公共の場で展開される前に、制御された環境で最初にテストされ得る。また、公共の環境(例えば、制御された、テスト環境の外部)に展開されるときでさえ、コンピューティングデバイスは、コンプライアンスを監視され得る。
次に、図5を参照すると、コンピューティング環境における機械学習パイプライン500を示すブロック図が示される。一態様では、図1~4に記載されたコンポーネント、モジュール、サービス、アプリケーション、もしくは機能またはその組み合わせのうちの1つまたは複数が、図5において使用され得る。示されるように、機能の様々なブロックは、システム500のブロックの互いの関係を指定し、プロセスフロー(例えば、ステップまたは動作)を示すための矢印で描かれている。さらに、システム500の機能ブロックのそれぞれに関連する説明的な情報も示される。示されるように、機能ブロックの多くは、図1~4で先に説明されたものと同じ記述的な意味で、機能性の「モジュール」とも見なされ得る。前述のことを念頭に置いて、システム500のモジュールブロックは、本発明によって、コンピューティング環境における機械学習モデルの自動評価のためのシステムの様々なハードウェアおよびソフトウェアコンポーネントに組み込まれることもできる。システム500の機能ブロックの多くは、分散型コンピューティングコンポーネント内または他の場所で、様々なコンポーネント上のバックグラウンドプロセスとして実行され得る。
一態様では、機械学習パイプライン500は、例えば、変換器510、520(例えば、ウィンドウ変換器「変換器」、インピュータ「変換器2」)などの一連の変換器と、例えば、最終推定器530(例えば、出力)などの一つ以上の推定器を含むワークフローを指す場合がある。
次に図6を参照すると、ブロックフロー図は、プロセッサを使用するコンピューティング環境における、時系列予測機械学習パイプラインのランク付けのための共同最適化を行う例示的なシステム600および機能が示される。一態様では、図1~図5で説明したコンポーネント、モジュール、サービス、アプリケーション、もしくは機能またはその組み合わせのうちの1つまたは複数が、図6において使用され得る。
示されるように、機能性の様々なブロックは、システム600のブロックが互いに関係し、プロセスの流れ(例えば、ステップまたは動作)を示すように指定する矢印で描かれている。さらに、システム600の機能ブロックのそれぞれに関連する説明的な情報も示される。示されるように、機能ブロックの多くは、図1~5で先に説明されたものと同じ記述的な意味で、機能性の「モジュール」ともみなされ得る。前述のことを念頭に置いて、システム600のモジュールブロックは、本発明によって、コンピューティング環境における機械学習モデルの自動評価のためのシステムの様々なハードウェアおよびソフトウェアコンポーネントに組み込まれることもできる。システム600の機能ブロックの多くは、分散型コンピューティングコンポーネント内または他の場所で、様々なコンポーネント上のバックグラウンドプロセスとして実行され得る。
図6に示されるように、ブロック602(時系列データの入力)で開始すると、1つ以上の候補の機械学習パイプライン604は、時系列データ(前処理済み)を受け取ることができる。候補の機械学習パイプライン604は、1つ以上の変換器(例えば、変換器1-N)および1つ以上の推定器を含んでもよい。候補の機械学習パイプライン604は、変換器(例えば、変換器1、2、および3)および推定器(例えば、推定器1、2、および3)を共同最適化し、ジョイントオプティマイザ(例えば、TDAUB命令)を使用してパイプラインを形成してもよい。
ブロック606のようなジョイントオプティマイザ(例えば、TDAUB命令)は、ブロック604の機械学習パイプラインを、時系列データの最小配分で開始することによってトレーニングすることができる。追加の時系列データは、a)季節性もしくはb)時間的依存性のレベルまたはその組み合わせに基づいて割り当てられる場合がある。学習曲線が予測され、学習曲線上のデータの古くなった部分を示すカットオフポイントがマークされ識別される場合がある。
ブロック608では、ハイパーパラメータ最適化命令が実行されることがある。一態様において、ハイパーパラメータ最適化は、学習アルゴリズムのための最適なハイパーパラメータのセットをセレクト/チューズするプロセスである。ハイパーパラメータは、その値が学習プロセスを制御するために使用されるパラメータであってよい。
ブロック610(例えば、ブロック606および608の出力)では、1つ以上の機械学習パイプラインが、TDAUB中間評価メトリクスに基づいてランク付けされ、関連するトレーニングデータに関する提案が提供されることがある。
次に図7を参照すると、ブロック図700は、コンピューティング環境における自動時系列予測パイプライン生成のための共同最適化を行う例示的なシステム700および機能性を示している。示されるように、機能の様々なブロックは、システム700のブロックの互いの関係を指定し、プロセスフロー(例えば、ステップまたは動作)を示すための矢印で描かれている。さらに、システム700の機能ブロックのそれぞれに関連する説明的な情報も示される。示されるように、機能ブロックの多くは、図1~6で先に説明されたものと同じ記述的な意味で、機能性の「モジュール」とも見なされ得る。前述のことを念頭に置いて、システム700のモジュールブロックは、本発明によって、コンピューティング環境における自動時系列予測機械学習パイプライン生成のためのシステムの様々なハードウェアおよびソフトウェアコンポーネントに組み込まれることもできる。機能ブロック700の多くは、分散型コンピューティングコンポーネント内またはその他の場所で、様々なコンポーネント上のバックグラウンドプロセスとして実行され得る。
示されるように、自動化された時系列予測パイプライン生成のための共同最適化を行うデータ割り当てスキーマである。示されるように、トレーニングデータセット702(例えば、時系列データセット)が受信され、トレーニングデータセット702の選択された部分(例えば、ラスト/ファイナルまたは「最も右(right most)」の部分)をテストセット(「テスト」)として取り、トレーニングデータの小さなサブセットを順次後方に割り当てる。
例えば図4のジョイントオプティマイザコンポーネント470のようなジョイントオプティマイザは、時系列データ割り当て上限(「TDAUB」)命令/モデルを採用することができる。一態様では、TDAUB命令は、例えば機械学習パイプライン704A~Dのような機械学習パイプラインの大規模なセットの間で、トレーニングデータセット702の割り当てられたサイズの1つ以上のサブセット(例えば、小さなサブセット)を順次割り当てるジョイントオプティマイザである。機械学習パイプライン704A~Dのそれぞれの実行および評価は、優先順位キューに基づいて実行されてもよく、より有望なパイプライン(例えば、機械学習パイプライン704D)が最初に競合することが期待される。共同最適化命令(例えば、TDAUB命令)は、例えば機械学習パイプライン704A~Dのような予め選択されたパイプラインの各変換器および推定器に対して実施されてもよい。共同最適化は、TDAUB命令、ADMM、もしくは連続共同最適化またはその組み合わせを含んでもよい。
さらに、本明細書に記載のジョイントオプティマイザは、固定データ割り当てサイズの使用のみに限定されず、時系列固有のデータ割り当てスキームも含む。すなわち、時系列固有のジョイントオプティマイザは、1)データサイズの割り当てを自動化してもよく(例えば、割り当てられたデータサイズは固定ではない)、データサイズの割り当ては、季節性パターン、トレンドパターンなどの入力時系列の特徴に適応的に依存してもよい。時系列固有のジョイントオプティマイザは、入力時系列から固定ホールドアウトセット、固定テストセット、およびトレーニングセットを定義し、候補のパイプラインのトレーニングデータを時間的に遡って割り当てることができる。時系列固有のジョイントオプティマイザは、割り当てられたトレーニングセットと固定テストセットで候補の機械学習パイプラインをトレーニングして評価し、次のデータ割り当てのために潜在的に最善/最適な候補の機械学習パイプラインを見つけることができる。
そしてnはアロケーション数である。
スペクトルは、下式を用いて決定/計算することができる。
Spkは、時系列データの季節長である。
このように、第4のステップでは、季節長Spkが選択されることがある。第5のステップにおいて、データ割り当てサイズは、それが等しいところで決定されてもよい。
C* Spk (4)
Cは、予め選択された整数である。このように、データ割り当てサイズは、季節長に基づいて選択/決定することができ、各データ割り当て命令は、少なくとも時系列データの1つの完全な季節周期をカバー/含むことを保証する。
さらに、TDAUB命令のために、以下を含むこともできる。一態様において、入力時系列データの全長は「L」と示され、パイプラインの数は「np」と示され得る。DAUBは、例えば、入力時系列データの全長が最小割り当てサイズ(「min_allocation_size」)よりも大きい場合(例えば、「L>min_allocation_size」)実行され、最小割り当てサイズ(「min_allocation_size」)はTDAUBをトリガするために先験的に選択された閾値となる。
一態様において、最小データ割り当てサイズ(「min_allocation_size」)は、データが1K以下の場合、最小データ割り当て量であってもよく、パイプラインはデータ全体を使って評価され、選択的にユーザ入力も可能である。
固定配置部については、以下の動作を行うことができる。
ステップ1.1において、最小割り当てサイズ(「min_allocation_size」)データは、最新のデータ(例えば、機械学習パイプライン704A)から始まる、例えば、機械学習パイプライン704A~Dなどの各機械学習パイプラインに割り当てられてもよい。初期データの割り当ては、トレーニングセット(「トレイン」)とテストセット(「テスト」)とに分割/スプリントされ得る。機械学習パイプライン704A~Dは、トレーニングセットでトレーニングされ、その後、機械学習パイプライン70A~Dのそれぞれは、テストセットでスコア付けされてもよい。機械学習パイプライン704A~Dのそれぞれについて、スコア(「score 1」)が記録されてもよい。
ステップ1.2において、追加および増加的なデータ(例えば、allocation_increment data)が、例えば機械学習パイプライン704A~Dなどのパイプラインのそれぞれに時間的に遡って割り当てられてもよい。機械学習パイプライン704A~Dのそれぞれは、トレーニングセット上でトレーニングされてもよく、機械学習パイプライン704A~Dのそれぞれについて、テストセット上でスコアが決定されてもよい。スコア(「score 2」)は、機械学習パイプライン704A~Dのそれぞれについて記録されてもよい。
一態様において、allocation_incrementは、季節性に基づく割り当て量であってもよい。時系列データの季節性は、高速フーリエ変換を使用して推定される場合がある。allocation_incrementは、季節長に等しく設定され得る(例えば、allocation_increment = seasonality length)。一態様では、トレーニングデータが少数の季節長しか含まない場合、allocation_incrementは、割り当て数で割った季節長に等しく設定されてもよい(例えば、allocation_increment = seasonality length /number of desired allocations)。また、時間的依存性に基づいて割り当てを行うこともできる。相関ラグの数は、基準法「AIC」及び「BIC」を用いて推定することができる。allocation_incrementは、予め選択された整数に有意なラグの数を乗じたものに等しく設定されてもよい(例えば、allocation_increment = C* number of significant lags)。
ステップ1.3において、固定割り当てカットオフ(「fixed_allocation_cutoff」)は、テストセットの後に後方へのallocation_incrementのn回、すなわちn=(fixed_allocation_cutoff/allocation_increment)として指示/表示され得る。ステップ1.3は、n-1回繰り返すことができる。
固定割り当て部分の後、サンプルサイズ[min_allocation_size, min_allocation_size+ allocation_increment, …, fixed_allocation_cutoff]に対応するパイプラインごとにスコア[score 1, … score n]のベクトル(「V」)が収集されて集まる場合がある。
ステップ1.4では、各パイプラインについて、ターゲット変数のスコアVの予測サンプルサイズについて回帰フィットが実行される場合がある。サンプルサイズが入力時系列データの全長「L」に等しい場合、スコアが予測されることがある。予測されたスコアベクトルは、例えば機械学習パイプライン704A~Dのようなパイプライン1、パイプライン2、…、パイプラインnpに対応する、[S1, S2, …Snp]と示される場合がある。
ステップ1.5で、予測されたスコアベクトル[S1, S2, …Snp]は、スコアが小さいほどパイプラインがより正確であると推定して、最小(「min」)から最大(「max」)までランク付けされる場合がある。ランク付けされたスコアベクトルは、[S'1, S'2, …S'np]のように示されることがあり、対応するパイプラインは、優先順位キューに保持されることがある。
割り当て加速部/パートでは、すべての機械学習パイプラインが追加のデータ割り当てを受けるわけではない。むしろ、上位の機械学習パイプラインのみが追加のデータ割り当てを受けることになる。追加データの割り当ては幾何学的に増加する。例えば、以下に示す通りである。
rounded_inc_mult = int(last_allocation * initial_geo_allocation_increment)))/ allocation_increment.
next_allocation = int(rounded_inc_mult * allocation_increment)
ステップ2.1において、追加のnext_allocationデータポイントは、優先順位キュー内のトップ/最適化された機械学習パイプライン(例えば、機械学習パイプライン704D)に割り当てられてもよい。以前に使用されたものと同じテストセットが与えられると、機械学習パイプライン704Dは、トレーニングセット上でトレーニングされてもよく、パイプライン(例えば、機械学習パイプライン704D)は、テストセット上でスコアリングされてもよい。新しいスコアは、このトップパイプライン(例えば、機械学習パイプライン704D)のスコアベクトルに記録されてもよい。線形回帰は、更新されたスコアVs予測サンプルサイズ上で再適合するために適用されてもよい。サンプルサイズがL(例えば、入力時系列データの全長)に等しい場合、スコアが予測されてもよい。
ステップ2.2において、トップ/最適化パイプライン(例えば、機械学習パイプライン704D)の以前に得られたスコアは、ランク付けされたスコアベクトルにおいて、新たに予測されたものによって置換されてもよい。スコアベクトルは再びランク付けされてもよく、対応する優先順位キューが更新されてもよい。
ステップ2.3では、ステップ2.1-2.2のそれぞれを、これ以上データを割り当てることができなくなるまで繰り返すことができる。
TDAUB命令は、通常、複数のテストセットに対して複数回実行されることに留意されたい。その結果は多数決によって結合される。
図7に示すように、DUABによって学習曲線が予測されることがある。一態様では、早期の学習曲線予測のために、より多くのデータポイントを割り当てた後でも、内部テストデータセットで「同様のエラー分布(similar error distribution)」となる機械学習モデルは、以下を示唆する。機械学習モデルは、1)追加的な利益を伴わない学習を既に獲得している、2)機械学習モデルのパフォーマンスが著しく低い場合、何らかのパラメータを変更するよう指示するか、早期に決定する、3)「競合における早期フィードバックの導入」、つまりパフォーマンスが低いパイプラインのパフォーマンスを高める機会を増やす。例えば、パイプラインAが1回目のデータ割り当てで与えられたデータに基づいて、1つ以上のパラメータを調整したと推定する。また、あるパラメータの設定が望ましい結果を達成していないと推定する。このように、初期のフィードバックは、最初の5ラウンドのデータ割り当てが完了する前に、パイプラインがパラメータを調整する機会をもたらす可能性がある。
また、内部テストデータは変化しないので、同様の誤差分布を適用して、発生する誤差に対してより多くのデータポイントを割り当てた場合の効果を比較する比較演算が可能である。
次に図8を参照すると、グラフ図800は、プロセッサによるコンピューティング環境における時系列予測機械学習パイプラインを時間ランク付けするための例示的なオペレーション800を示している。一態様では、図1~7で説明したコンポーネント、モジュール、サービス、アプリケーション、もしくは機能またはその組み合わせのうちの1つまたは複数が、図8において使用され得る。
グラフ800に示されるように、テスト精度はY軸に描かれ、行数(データの古さ)はX軸に沿って描かれる。したがって、テストセットが与えられると、トップ/最適化されたrun_to_completion機械学習パイプラインが選択され、利用可能なデータの残りでトレーニングされる。最終的なスコアは、記録され、ランク付けされることがある。時系列予測のための機械学習パイプラインの最終ランク付けされたリストが、特定され、決定され、選択され得る。
中間TDAUB精度メトリクスに基づき、学習曲線が減少し始める時間閾値またはポイントが特定され、1つ以上の勧告が、データの古くなった部分についてユーザに提供されることがある。例えば、時間閾値に到達する前は、追加のデータにより行数あたりのテスト精度が向上する。しかし、時間閾値に到達し、それを超えると、追加データは冗長になるか、有害になる可能性があり、時系列データのテストの精度が低くなる。
ここで図9を参照すると、プロセッサを使用するコンピューティング環境において時系列予測機械学習パイプラインをランク付けするための方法900が示されており、この方法では、図示された実施形態の様々な態様が実装され得る。機能900は、マシン上で命令として実行される方法(例えば、コンピュータ実装方法)として実装されてもよく、命令は少なくとも1つのコンピュータ可読媒体または1つの非一過性の機械可読記憶媒体に含まれる。機能900は、ブロック902で開始することができる。
ブロック904に示すように、時系列データは、時系列データの季節性または時間依存性の程度に基づいて、候補の機械学習パイプラインによるテストのために時系列データセットから増加的に割り当てられる場合がある。ブロック906に示すように、中間評価スコアは、各時系列データの割り当てに続いて候補の機械学習パイプラインのそれぞれによって提供される場合がある。ブロック908に示すように、中間評価スコアから生成された予測の学習曲線に基づいて、1つ以上の機械学習パイプラインが、1つ以上の候補の機械学習パイプラインのランク付けされたリストから自動的に選択される場合がある。機能900は、ブロック910に示すように、終了してもよい。
一態様では、図9の少なくとも1つのブロックと関連して、もしくはその一部として、またはその両方において、方法900のオペレーションは、以下の各項目を含み得る。900のオペレーションは、1つ以上の候補の機械学習パイプラインのそれぞれに時間的に遡って時系列データの定義されたサブセットを割り当てることができる。
900のオペレーションは、時間ベースの閾値を超える時系列データの一部を履歴時系列データとして識別し、履歴時系列データはより精度の低いトレーニングデータであり、時系列データの各割り当てについて1つ以上の候補の機械学習パイプラインをトレーニングし、評価し得る。
900のオペレーションは、1つ以上の候補の機械学習パイプラインにおけるトレーニングデータの割り当て量を、トレーニングデータの1つ以上の以前の割り当て量からの中間評価スコアに基づいて段階的に増加させ得る。
900のオペレーションは、中間評価スコアのそれぞれから生成される学習曲線を決定し、予測の学習曲線に基づいて1つ以上の候補の機械学習パイプラインのそれぞれをランク付けしてもよい。
本発明は、システム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークネットワークまたはその組み合わせ)を介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するように、汎用コンピュータ、特殊用途コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読プログラム命令が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他のデバイスまたはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
コンピュータ、他のプログラム可能な装置、または他のデバイス上でフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を構成する。いくつかの代替の実施形態では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行され、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
本発明の実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。本発明の範囲から逸脱することなく、多くの修正および変更が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に記載の実施形態を理解できるようにするために選択された。