(57)【要約】      （修正有）【課題】機械学習システムによって予測される結果の潜在的な発散を評価するための方法、システム、およびプログラムを提供する。【解決手段】目標値に関連付けられる観測値の第１のセットに対してモデルをトレーニングし、トレーニングされたモデルを観測値のランダムに生成した第２のセットに適用する。それにより第２のセットの各観測値に関連付けられた目標値を得て、観測値の第１および第２のセットならびにそれらの関連の目標値をインデックスへインデックス付け、観測値の第１および第２のセットのサブセットの選択を可能にする第１のクエリを受け取り、第１のクエリと第１のセットの観測値だけを返すことになる追加の制約とを含む第２のクエリの生成と、第１のクエリと第２のセットの観測値だけを返すことになる追加の制約とを含む第３のクエリの生成を行う。そして、第２および第３のクエリを使用したインデックスのクエリに対する応答を返す。【選択図】図３
2017126329.tif 000002
【特許請求の範囲】
【請求項１】
機械学習システムによって予測される結果の潜在的な発散を評価するためのコンピュータ実施方法であって、
観測値の第１のセットに対してモデルをトレーニングするステップ（Ｓ１０）であって、各観測値は、目標値に関連付けられる、ステップと、
観測値の第２のセットを生成するステップと、
前記トレーニングされたモデルを前記第２のセットに適用し（Ｓ２０）、それにより前記第２のセットの各観測値に関連付けられた目標値を得るステップと、
観測値の前記第１および第２のセットならびにそれらの関連の目標値をインデックスへインデックス付けするステップ（Ｓ３０）と、
観測値の前記第１および第２のセットのサブセットの選択を可能にする第１のクエリを受け取るステップ（Ｓ４０）と、
前記第１のクエリと、前記第１のセットの観測値だけを返すことになる追加の制約とを含む第２のクエリを生成するステップ（Ｓ５０）と、
前記第１のクエリと、前記第２のセットの観測値だけを返すことになる追加の制約とを含む第３のクエリを生成するステップ（Ｓ５２）と、
前記第２および第３のクエリを使用して前記インデックスをクエリするステップと、
前記第２および第３のクエリに対する応答を返すステップ（Ｓ６０）と
を含むことを特徴とする方法。
【請求項２】
観測値の前記第１のセットの各観測値は、１つまたは複数の変数に関連付けられ、各変数は、値に関連付けられることを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項３】
観測値の第１のセットに対してモデルをトレーニングする前記ステップの前に、
前記第１のセットの前記１つまたは複数の変数を連続的なセグメントに対して、または離散集合に対して定義するステップをさらに含むことを特徴とする請求項２に記載のコンピュータ実施方法。
【請求項４】
観測値の前記第２のセットのランダムな生成は、
前記第１のセットの各変数に対して、確率分布を関連付けることを含むことを特徴とする請求項３に記載のコンピュータ実施方法。
【請求項５】
前記確率分布は、前記第１のセットの前記各変数に従って決定されることを特徴とする請求項４に記載のコンピュータ実施方法。
【請求項６】
確率分布関数は、一様確率分布であることを特徴とする請求項３乃至５のいずれか一項に記載のコンピュータ実施方法。
【請求項７】
少なくとも１つの確率変数ジェネレータを使用することによって、前記連続的なセグメントにわたって、または離散集合に対して値を生成するステップと、
前記少なくとも１つの確率変数ジェネレータから得られた前記値の組合せを計算するステップと
をさらに含むことを特徴とする請求項３乃至６のいずれか一項に記載のコンピュータ実施方法。
【請求項８】
前記変数間の依存性を決定するステップと、
前記決定された依存性を満たさない前記計算された組合せの中の組合せを除去するステップと
をさらに含むことを特徴とする請求項７に記載のコンピュータ実施方法。
【請求項９】
前記確率変数の組合せを計算することは、前記確率変数の前記組合せすべてを計算することを含むことを特徴とする請求項７または８に記載のコンピュータ実施方法。
【請求項１０】
観測値の前記第１のセットは、第１の行列に格納され、観測値の第２のセットは、第２の行列に格納されることを特徴とする請求項１乃至９のいずれか一項に記載のコンピュータ実施方法。
【請求項１１】
観測値の前記第２のセットは、ランダムに生成されたものとしてマークされることを特徴とする請求項１乃至１０のいずれか一項に記載のコンピュータ実施方法。
【請求項１２】
インデックス付けする前記ステップにて、観測値の前記インデックス付けされた第２のセットは、前記第２のセットの前記観測値がランダムに生成されたことを示すメタデータに関連付けられることを特徴とする請求項１１に記載のコンピュータ実施方法。
【請求項１３】
返す前記ステップの前に、
前記第２のクエリと前記第３のクエリの結果を比較するステップをさらに含むことを特徴とする請求項１乃至１２のいずれか一項に記載のコンピュータ実施方法。
【請求項１４】
請求項１乃至１３のいずれか一項に記載の方法を実行するための命令を含むことを特徴とするコンピュータプログラム。
【請求項１５】
メモリに結合されたプロセッサを備えるシステムであって、前記メモリには、請求項１４に記載のコンピュータプログラムが記録されていることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、機械学習システムによって予測される結果の潜在的な発散を評価するための方法、システム、およびプログラムに関する。
【背景技術】
【０００２】
機械学習では、トレーニングされたモデルが不適切である、入力変数の選出が無効である、またはトレーニングサンプルの選出が新しいデータを表すものでないことにより、予測エラーが発生することがある。時には、モデルの選出が（たとえば、手近の問題のために良好に機能することが知られているモデルに）限定され、入力変数の選出が（たとえば、収集することができる変数に）限定される。
【０００３】
したがって、解析のために発生する問題は、所与のモデル、および入力変数の所与のセットについて、トレーニングサンプルの選出によるエラーのリスク、または目標値が知られている観測値のセット（このセットは、タグ付きデータとも呼ばれる）の使用可能性をいかに評価するかである。
【０００４】
トレーニングされたモデルをテストするための方法が開発されている。第１の方法は、デルタおよびガンマテストと呼ばれる。特許文献１に提示されているガンマテストは、滑らかなモデルのエラーを、トレーニングサンプルだけに基づいて推定する。滑らかなモデルは、その出力が入力の滑らかな関数であるモデル（ニューラルネットワークなど）である。滑らかな関数は、有限部分一階および二階微分を伴う関数である。直感的に、これは、どの方向にわたっても関数の曲線が滑らかであり、角度をなさないことを意味する。デルタテストは、滑らかなモデルを必要とせず、連続的モデルを必要とする。連続的モデルは、その出力が入力の連続関数であるモデルである。連続関数は、点の系列Ｓが点Ｐに収束する場合、Ｓ上のその値がＰ上のその値に向かう関数である。デルタテストは、ガンマテストに対して前方である。これはモデルに関して、より弱い仮定をするが、同様の質でモデルのエラーを推定するために、より大きなデータセット密度を必要とする。
【０００５】
しかし、この方法には欠点がある。特に、これは制限された種類のモデルに適用される。デルタおよびガンマテストは、観測値の実際の目標値と滑らかな関数によって生成することができる目標値との間のエラーを推定する。出力は、必ずしもあらゆるモデルで入力の滑らかな関数でない。いくつかのタイプの人工ニューラルネットワークにとっては事実であるが、現在、多数の機械学習問題に対する最高の実行手法として選ばれる決定木またはスタブに基づくアンサンブル法にとっては事実でない。
【０００６】
第２の方法は、非特許文献２で論じられている交差検証である。交差検証は、使用可能なタグ付きデータをトレーニングデータとテストデータに分けることにある。モデルは、トレーニングデータに基づいてトレーニングされ、次いでテストデータに基づいてテストされる。テストされるとき、トレーニングされたモデルの出力は、標的データの実際の値に比較される。Ｋ分割は、使用可能なタグ付きデータをよりよく使用するために複数（Ｋ個、たとえばＫ＝５）の交差検証にある。最初の交差検証では、タグ付きデータがおおよそ同じサイズのＫ個のセットに分割される（タグ付きデータのサイズが複数のＫとは異なり得るのでおおよそである）。次いで、各連続する実行について、テストデータセットは、以前にテストセットで（以前の実行で）使用されていないサンプルで作成され、各実行でのトレーニングデータは、タグ付きデータセットの残りである。モデルの性能が各実行について測定される。最終的な性能尺度は、典型的にはすべての実行の平均である。
【０００７】
第３の方法は、エラー率が異なるサイズのトレーニングセットについてプロットされる交差検証の特定の場合である。より具体的には、この第３の方法は、２つのエラー率曲線をプロットすることにある。一方は、トレーニングセットからの観測値でのモデルのエラーに対応し、他方は、テストセットからの観測値でのモデルのエラーに対応する。トレーニングセットの観測値でのエラー率は、トレーニングセットサイズに関して連続的に減少すべきであり、一方、テストセットの観測値でのエラー率は、少なくともより低いトレーニングセットサイズについて減少すべきである。それより後で増大し始める点があり得る。この変曲点が、トレーニングセットの最適なサイズであり、それより前でアンダーフィッティングが発生し、それより後でオーバーフィッティングが発生する。この点が存在しない場合、オーバーフィッティングはなく、最適なトレーニングセットが最大である。
【０００８】
これらの第２の方法および第３の方法は、モデルをトレーニングするためにすべての使用可能なタグ付きデータを使用することを可能にはしない。理想的な場合（モデルがオーバーフィッティングしないとき）には、モデルをトレーニングするために可能な限り多くのデータを使用することが有益であり、その結果、実際には、モデルは一般にすべての使用可能なタグ付きデータでトレーニングされる。これらの場合には、これらの方法は、トレーニングされるモデルが生産で実行することになるときその性能を正確に測定しない。これは、タグ付きデータがほとんどないとき問題である。
【０００９】
これらの方法のいずれも、トレーニングデータの選出に関連するエラーのリスクを補償しない。トレーニング時に使用可能なすべてのタグ付きデータがトレーニングに使用されるときでさえ、これらの方法は、トレーニング時に使用可能なタグ付きデータの分布に関連するエラーのリスクを補償しない。実際には、これは重要な問題である。なぜなら、タグ付きデータが収集されたとき発生した状況をタグ付きデータが表すにすぎず、これは、将来発生し得る状況とは異なり得るからである。データを必ずしも収集することができない場合、使用可能なタグ付きデータは、発生した状況のサブセット、すなわち、データを収集することが可能であったとき発生した状況を表すにすぎず、これは、可能な状況のセット全体を表すものではないことがある。
【００１０】
たとえば、交差検証は、テストセットの観測値に似た、すなわち使用可能なタグ付きデータ内で見出された観測値に似た観測値でのエラーのリスクを評価することを可能にするにすぎない。
【００１１】
トレーニングセットとテストセットでのエラー率を比較し、一方、トレーニングセットのサイズを変えることの問題は、まさにトレーニングセットのサイズを変えるにすぎず、トレーニングセット内の観測値の選出ではないことである。これは、トレーニングセット内の観測値がすべての可能な観測値を表すものであると考えられること、およびそれらが完璧にランダムな順序で取り込まれると考えられることを意味する。たとえば、すべての観測値が可能な観測値の空間の小さいエリア内に位置する２クラス分類モデルのトレーニングセットを考える場合である。このモデルは、その特定の部分空間内の２クラス間でいかに区別するかという些細な詳細を学習することになる。観測値の空間の他のエリア内の２クラス間でいかに区別するかは学習しないことになる。このモデルは、トレーニングセットのサイズのせいではなくトレーニングセット内の観測値の分布のせいでオーバーフィッティングすることになる。
【００１２】
デルタおよびガンマテストは、使用可能なタグ付きデータをトレーニングセットとテストセットに分割することを必要としない。しかし、それらは、依然として使用可能なタグ付きデータがすべての可能な入力データ（将来の入力データを含む）を表すものであると考える。
【００１３】
したがって、これらの方法を用いるリスク評価がないことは、現象が通常、時間と共に進展するので問題である。その結果、トレーニングデータの分布は、何らかの点で時代遅れになる。たとえば、自動車レースでいつピットストップをするかという予測は、通常、サーキットと車の挙動を説明する入力データに依拠する。たとえば、気候の変化と共に、極端な温度が、フォーミュラワンサーキットで初めて発生することがある。極端な温度は、タイヤの密着、ならびにエンジンとブレーキパッドの挙動に影響を及ぼし得る。しかし、極端な温度の結果は、モデルによって学習されない可能性がある。特にこれらの温度が現在のサーキットで以前に決してみられなかった場合、そのような状況は、使用可能なタグ付きデータでは捕捉されなかった可能性がある。ピットストップを行うのに最適な瞬間を決定する助けとなるように使用される機械学習モデルは、通常とは非常に異なる状況において不適切な推奨をもたらす可能性がある。ピットストップにおけるフォーミュラワンカーでの不適切な動作または不適切なタイミングは、チームのパフォーマンスを低下させるだけでなく、危険な状況をもたらす可能性がある。
【００１４】
この状況の中で、機械学習システムによって予測される結果の潜在的な発散を評価することが依然として求められている。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】Ｓｔｅｆａｎｓｓｏｎ，  Ａｄｏａｌｂｊｏｒｎ，  Ｎ．  Ｋｏｎｃａｒ，  ａｎｄ  Ａｎｔｏｎｉａ  Ｊ．  Ｊｏｎｅｓ．  ”Ａ  ｎｏｔｅ  ｏｎ  ｔｈｅ  ｇａｍｍａ  ｔｅｓｔ．”  Ｎｅｕｒａｌ  Ｃｏｍｐｕｔｉｎｇ  ＆  Ａｐｐｌｉｃａｔｉｏｎｓ  ５．３  （１９９７）：  １３１−１３３
【非特許文献２】Ｋｏｈａｖｉ，  Ｒｏｎ．  ”Ａ  ｓｔｕｄｙ  ｏｆ  ｃｒｏｓｓ−ｖａｌｉｄａｔｉｏｎ  ａｎｄ  ｂｏｏｔｓｔｒａｐ  ｆｏｒ  ａｃｃｕｒａｃｙ  ｅｓｔｉｍａｔｉｏｎ  ａｎｄ  ｍｏｄｅｌ  ｓｅｌｅｃｔｉｏｎ．”  Ｉｊｃａｉ．  Ｖｏｌ．  １４．  Ｎｏ．  ２．  １９９５
【発明の概要】
【００１６】
したがって、機械学習システムによって予測される結果の潜在的な発散を評価するためのコンピュータ実施方法が提供される。本方法は、
−  観測値の第１のセットに対してモデルをトレーニングするステップであって、各観測値は、目標値に関連付けられる、ステップと、
−  観測値の第２のセットを生成するステップと、
−  トレーニングされたモデルを第２のセットに適用し、それにより第２のセットの各観測値に関連付けられた目標値を得るステップと、
−  観測値の第１および第２のセットならびにそれらの関連の目標値をインデックスへインデックス付けするステップと、
−  観測値の第１および第２のセットのサブセットの選択を可能にする第１のクエリを受け取るステップと、
−  第１のクエリと、第１のセットの観測値だけを返すことになる追加の制約とを含む第２のクエリを生成するステップと、
−  第１のクエリと、第２のセットの観測値だけを返すことになる追加の制約とを含む第３のクエリを生成するステップと、
−  第２および第３のクエリを使用してインデックスをクエリするステップと、
−  第２および第３のクエリに対する応答を返すステップとを含む。
【００１７】
本方法は、以下の１つまたは複数を含んでもよい。
−  観測値の第１のセットの各観測値は、１つまたは複数の変数に関連付けられ、各変数は、値に関連付けられる。
−  観測値の第１のセットに対してモデルをトレーニングするステップの前に、第１のセットの１つまたは複数の変数を連続的なセグメントに対して、または離散集合に対して定義する。
−  観測値の第２のセットのランダムな生成は、第１のセットの各変数に対して、確率分布を関連付ける。
−  確率分布は、第１のセットの前記各変数に従って決定される。
−  確率分布関数は、一様確率分布である。
−  少なくとも１つの確率変数ジェネレータを使用することによって、連続的なセグメントにわたって、または離散集合に対して値を生成し、少なくとも１つの確率変数ジェネレータから得られた値の組合せを計算する。
−  変数間の依存性を決定し、決定された依存性を満たさない計算された組合せの中の組合せを除去する。
−  確率変数の組合せを計算することは、確率変数の組合せすべてを計算することを含む。
−  観測値の第１のセットは、第１の行列に格納され、観測値の第２のセットは、第２の行列に格納される。
−  観測値の第２のセットは、ランダムに生成されたものとしてマークされる。
−  インデックス付けするステップにて、観測値のインデックス付けされた第２のセットは、観測値がランダムに生成されたことを示すメタデータに関連付けられる。
−  返すステップの前に、第２のクエリと第３のクエリの結果を比較する。
【００１８】
本方法を実行するための命令を含むコンピュータプログラムがさらに提供される。
【００１９】
このコンピュータプログラムが記録されているコンピュータ可読記憶媒体がさらに提供される。
【００２０】
メモリに結合されたプロセッサを備えるシステムがさらに提供され、メモリには、このコンピュータプログラムが記録されている。
【図面の簡単な説明】
【００２１】
次に、本発明の実施形態について、非限定的な例として、添付の図面を参照して述べる。
【図１】モデルをトレーニングするための観測値の行列の一例の図である。
【図２】自然観測値および合成観測値を含む観測値の行列の一例の図である。
【図３】本方法の一例の図である。
【図４】本方法を実行するためのシステムの一例の図である。
【発明を実施するための形態】
【００２２】
図３の流れ図を参照すると、機械学習システムによって予測される結果の潜在的な発散を評価するためのコンピュータ実施方法が提案されている。本方法は、観測値の第１のセットに対してモデルをトレーニングするステップであって、各観測値は、目標値に関連付けられる、ステップを含む。本方法は、観測値の第２のセットをランダムに生成するステップをさらに含む。次いで、トレーニングされたモデルが観測値の第２のセットに適用される。その結果、目標値が得られ、第２のセットの各観測値に関連付けられる。次いで、本方法は、観測値の第１のセットおよび観測値の第２のセットならびにそれらの関連の目標値をインデックスへインデックス付けするステップを含む。次に、第１のクエリが受け取られ、第１のクエリは、観測値の第１および第２のセットのサブセットの選択を可能にする。第２のクエリは、第１のものから生成され、第１のクエリと、第１のセットの観測値だけを返すことになる追加の制約とを含む。第３のクエリもまた第１のものから生成され、第１のクエリと、第２のセットの観測値だけを返すことになる追加の制約とを含む。次に、第２および第３のクエリを使用してインデックスがクエリされる。第２および第３のクエリに対する応答が返される。
【００２３】
そのような方法は、機械学習システムによって予測される結果の潜在的な発散の評価を改善する。実際、使用可能なタグ付きデータ（タグ付きデータは、目標値が知られている観測値のセットである）に関連するリスクを評価することは、使用可能なタグ付きデータを将来のデータと比較することにある。将来のデータは使用可能でないため、本発明はこの問題を、使用可能なタグ付きデータを理論的に可能なデータと比較することによって解決する。少なくとも将来のデータは理論的に可能であり、その結果、将来のデータに関する最悪の場合のシナリオが理論的に可能なデータに含まれる。
【００２４】
リスクはモデルの正確さに関係付けることができ、モデルが間違っている場合には、モデルからの出力に基づいて何らかの誤った判断が下される可能性がある。しかし、所与の（可能な、または将来の観測値のセット内の）観測値において、同様の観測値に対応するタグ付きデータがない場合、モデルの正確さを予測する方法はない。
【００２５】
本発明は、可能な観測値すべてにおいてモデル正確さの粗い推定値を提供することによってこの問題を解決する。この推定値は、その点周りでの使用可能なタグ付き観測値の密度である。基本的に、点周りでのトレーニングデータが密であるほど、モデルはよりよくトレーニングされることになり、その点周りでよりよく機能することになる。本発明では、この粗い推定値を提供することは、合成データに関するクエリに対する応答（任意の可能な観測値を表すことを可能にする）、および使用可能なタグ付きデータに関するクエリに対する応答（その点周りでのタグ付きデータの密度を表すことを可能にする）を提供することにある。
【００２６】
リスクはモデルによって返される値に関係付けることができ、モデルからの出力に基づいて行動しようと決めた場合には、モデルの出力は、下されることになる判断を決定する。リスクがこれらの判断に関連しており、その結果、リスクがモデルの出力に関連している。たとえば、判断は、自動車レースにおけるピットストップ中になされる調整の一部として機械部品に加えられる力とすることができ、リスクは、その機械部品が自動車レースの残りのラップ中に破損することである。
【００２７】
本発明は、タグ付きデータによってカバーされない理論的に可能な点におけるモデルの値を明らかにする。なぜなら、本発明によれば、モデルは合成サンプル上でさえ動作し、モデルの出力は、対応する入力と共にインデックス付けされるからである。
【００２８】
リスクを評価することは、通常「もし〜したらどうなる」という質問を含む。本発明は、これをクエリにより解決する。ユーザは、データを説明する１またはいくつかの変数に関する明細で表してそれらのクエリを指定する。たとえば、レース前に、サーキット上の温度がレース中に極値に達すると予想されることをチームが理解している場合、チームは、予想される温度を指定するクエリを発行することによってレースのためのモデルの正確さについて質問することができる。さらに、レース中、予想されないにわか雨など新しい状況が展開した場合、チームはやはり、機械学習モデルを使用することによって、またそれをトレーニングするために使用されたデータを与えられて提供される推奨をどう納得するか理解するために、にわか雨の発生を含む現在の状況を説明するいくつかの値を指定するクエリを発行することができる。次いで、そのクエリを使用し、１つは使用可能なタグ付きデータに関し、１つは合成サンプルに関する２つのクエリを生成し、その特定の質問についてさえ、上記の利益を得る。
【００２９】
本発明は、任意の種類のモデル、たとえば機械学習に同じようにあてはまる。これは、モデルに関して仮定をしない。本発明は、完全に使用可能なタグ付きデータを使用しモデルをトレーニングし、次いで合成サンプルを使用し、それをテストすることを可能にする。本発明は、使用可能なタグ付きデータがすべての可能なデータを完璧に表すものであること、またはそれらのセット内のデータの順序が完璧にランダムであることという仮定に依拠しない。これは、すべての可能な観測値を表すために使用可能なタグ付きデータに依拠しないからである。その代わりに、可能な観測値の理論的な分布に基づいて合成サンプルを生成する。テストサンプルは合成であるため、我々は、モデルをこれらのサンプルに適用する前に標的変数の関連の値を有していない。合成サンプルはタグ付けされない。その結果、本方法は、サンプルに関するエラー率を返さない。代わりに、トレーニングセット内のサンプルに似た、または似ていないサンプルに関する予測の変動性を提供する。本方法は、リスクがあるかどうか（トレーニングデータが理論的に可能なデータを表さない場合）を提供して、そのリスクがどのように起こり得るか（どの次元に相違があるか）理解し、（トレーニングデータによってカバーされないエリアにおける）予測の理論的な変動性に関連するリスクを評価することを可能にする。
【００３０】
本方法は、コンピュータによって実施される。これは、本方法のステップ（または実質的にすべてのステップ）が少なくとも１つのコンピュータ、または任意の同様のシステムによって実行されることを意味する。したがって、本方法のステップは、コンピュータによって、おそらくは完全に自動で、または半自動で実行される。例では、本方法のステップの少なくともいくつかをトリガすることは、ユーザ−コンピュータインタラクションを通じて実行され得る。必要とされるユーザ−コンピュータインタラクションのレベルは、予見される自動のレベルに依存し、ユーザの望みを実施するための必要とバランスをとってもよい。例では、このレベルは、ユーザによって定義され、および／または予め定義されてもよい。
【００３１】
本方法のコンピュータ実施の典型的な例は、この目的のために適合されたシステムで本方法を実行することである。このシステムは、メモリに結合されたプロセッサとグラフィカルユーザインターフェースとを含んでもよく、メモリには本方法を実行するための命令を含むコンピュータプログラムが記録されている。また、メモリは、データベースを記憶してもよい。メモリは、そのようなストレージのために適合された任意のハードウェアであり、おそらくはいくつかの物理的に異なる部分（たとえば、プログラムのための部分、またおそらくはデータベースのための部分）を含む。
【００３２】
「データベース」は、検索および取出しのために編成されたデータ（すなわち、情報）の任意の集まりを意味する（たとえば所定の構造化言語、たとえばＳＱＬに基づく、たとえばリレーショナルデータベース）。メモリに記憶されたとき、データベースは、コンピュータによる迅速な検索および取出しを可能にする。実際、データベースは、様々なデータ処理操作と共にデータの記憶、取出し、修正、および削除を容易にするように構造化される。データベースは、そのそれぞれが１つまたは複数のフィールドからなるレコードに分解することができるファイルまたはファイルのセットからなってもよい。フィールドは、データ記憶の基本単位である。ユーザは、主にクエリを通じてデータを取り出してもよい。ユーザは、キーワードおよび分類コマンドを使用して、多数のレコード内のフィールドを迅速に検索、再編、グループ化、および選択し、使用されるデータベース管理システムの規則に従ってデータの特定の集合体に関するレポートを取り出す、または作成することができる。
【００３３】
インデックス付けは、観測値を、それらの目標値を含めて、変数の予め定義されたセットに対する値によってクエリを最適化するように意図された方法で記憶することを意味する。有限の数の可能な値を有する変数は、逆リスト内に格納されるべきである。たとえば、自動車レースの所与のラップ中の雨の発生が「雨なし」のための０と「雨」のための１で表される場合、この変数のためには可能な値が２つしかない。逆リストは、各値についてポインタのリストを有する値のリストである。各ポインタは、この値が発生する記憶された観測値を指す。逆リストは、値による迅速なクエリを可能にする。変数によっては、順序の概念および値間の差が重要である。たとえば、ラップＬ１が温度Ｔ１＝２２Ｃで発生し、ラップＬ２が温度Ｔ２＝２３Ｃで発生し、ラップＬ３が温度Ｔ３＝３０Ｃで発生する場合、Ｌ１およびＬ２は、温度に関してＬ２およびＬ３より似ている。これらの変数の場合、セグメントによるクエリに意味がある。インデックスでは、これらの値は、典型的にはセグメントによってクエリを迅速にする構造内（メモリ内）に記憶される。インデックス付けされたとき、これらの変数は、典型的には、最も速い読出しアクセスを提供する、サポートされた物理メモリに記憶される。これは、所与の変数の値がセグメントに入り得るすべての観測値の迅速なクエリを可能にするためである。セグメントによるクエリのための１つの手法は、離散化された値（あるレベルの精度に丸められる）をインデックス付けすること、およびセグメント内に含まれる離散的な値すべてをクエリすることである。インデックスは、データを関連のメタデータを有するドキュメントとして記憶する。ドキュメントは観測値であり、関連の入力および目標値はメタデータである。ドキュメントのメタデータは、ドキュメントが使用可能なタグ付きデータからの観測値を表すか、または合成サンプルからの観測値か決定するのに十分なものであるべきである。たとえば、特定のメタデータを、この情報を含むように設定することができる。
【００３４】
本方法は、概して観測値のセットを操作する。観測値は、変数のセットであり、各変数は、値に関連付けられる。変数は、システムの、またはその一部の状態、あるいはシステムもしくはその一部に関連する、またはシステムもしくはその一部に対して影響を有する要素の状態を表す。たとえば、車の観測値の変数は、車の温度、油圧、瞬間燃料消費、レース中の平均燃料消費、タイヤの種類、空気の温度、天気（雨、晴天、雪）．．．とすることができる。変数は、変数の状態を定量化する値に関連付けられる。観測値は、所与の時点でのシステムの状態を表す。したがって、観測値のセットは、異なる時点での変数の値である。実際には、システムは、航空宇宙、建築、建設、消費財、ハイテクデバイス、産業機器、輸送、海洋、および／またはオフショア石油／ガス生産もしくは輸送を含めて、様々な無限の産業分野に属することができる。したがって、本方法によって使用される観測値のセットは、陸上輸送手段のシステムまたはその一部（たとえば、車および軽量トラック機器、レーシングカー、オートバイ、トラックおよびモータ機器、トラックおよびバス、列車を含む）、航空輸送手段のシステムまたはその一部（たとえば、機体機器、航空宇宙機器、推進機器、防衛製品、航空機機器、宇宙機器を含む）、船舶輸送手段のシステムまたはその一部（たとえば、海軍機器、商船、オフショア機器、ヨットおよび作業船、海洋機器を含む）、一般機械システムまたは機械システムの一部（たとえば、産業用製造機械、自動車重機械または機器、据え付け機器、産業機器製品、金属製品、タイヤ製造製品を含む）、電気機械または電子部品システムまたはその一部（たとえば、家電、防犯および／または制御および／または計器製品、コンピューティングおよび通信機器、半導体、医療デバイスおよび機器を含む）、消費財（たとえば、家具、住宅および庭製品、レジャー用品、ファッション製品、耐久消費財小売業者の製品、非耐久財小売業者の製品を含む）、包装（たとえば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭製品の包装を含む）など、任意の機械システムであってよい産業システムに関連する変数を含んでもよい。
【００３５】
図１は、観測値の一例を示す。各線１２は、観測値を表し、各列１４（図１には、見やすくするために１つだけが点線で表されている）は、変数に対応し、各矩形１８は、観測値のための変数の値を表す。この例では、観測値のセットは、行列１０に格納される。各観測値は、その値が「入力変数」（観測値を説明するためにトレーニングされたモデルの入力として提供されるため）としても知られるいわゆる「記述変数」に対して説明される。興味深いことに、セットの各観測値は、セットの他の観測値と同じ変数を含む。各観測値について、１つまたは複数の変数を空とすることができる、すなわち値に関連付けられないことを理解されたい。各観測値は、「入力変数」としても知られるいわゆる「標的変数」に対する対応する値に関連付けられる。標的変数は、トレーニングされたモデルが新しい観測値について評価しなければならない変数である。標的変数は、モデルのユーザがシステムの挙動を理解する、および／または予測する、および／または反応する助けとなる情報を提供し得る意味で、モデルのユーザにとって意味がある。この例では、標的変数はまた、行列１６に格納される。各観測値の値および標的変数は、行列１０、１６を含む単一の行列に格納することができることを理解されたい。観測値および標的変数は、タグ付きデータのセットを形成する（またそのように称される）。各標的変数は、各観測値についての値、いわゆる目標値を伴うことを理解されたい。
【００３６】
図４は、システムの一例を示し、このシステムは、クライアントコンピュータシステム、たとえば、ユーザのワークステーションである。
【００３７】
この例のクライアントコンピュータは、内部通信バス１０００に接続された中央処理ユニット（ＣＰＵ）１０１０と、やはりバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを含む。クライアントコンピュータは、バスに接続されたビデオランダムアクセスメモリ１１００に関連付けられているグラフィカル処理ユニット（ＧＰＵ）１１１０をさらに備える。ビデオＲＡＭ１１００は、当技術分野でフレームバッファとしても知られている。大容量記憶デバイスコントローラ１０２０は、ハードドライブ１０３０など大容量メモリデバイスへのアクセスを管理する。コンピュータプログラムおよびデータを有形に実施するのに適した大容量メモリデバイスは、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイス、内部ハードディスクおよび取外し式ディスクなど磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスク１０４０など、半導体メモリデバイスを含む、すべての形態の不揮発性メモリを含む。前述のいずれかは、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補われても、それらに組み込まれてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。また、クライアントコンピュータは、カーソル制御デバイス、キーボードなど、ハプティックデバイス１０９０を含んでもよい。カーソル制御デバイスは、クライアントコンピュータ内で、ユーザがディスプレイ１０８０上の任意の場所にカーソルを選択的に位置決めすることを可能にするために使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御デバイスは、制御信号をシステムに入力するためにいくつかの信号生成デバイスを含む。典型的には、カーソル制御デバイスはマウスであってもよく、マウスのボタンは、信号を生成するために使用される。代替として、またはそれに加えて、クライアントコンピュータシステムは、感応式パッドおよび／または感応式スクリーンを含んでもよい。
【００３８】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでもよく、これらの命令は、上記のシステムに本方法を実行させるための手段を含む。プログラムは、システムのメモリを含めて、任意のデータ記憶媒体に記憶可能であってよい。プログラムは、たとえば、デジタル電子回路内で、またはコンピュータハードウェア、ファームウェア、ソフトウェア内で、またはそれらの組合せで実施されてもよい。プログラムは、装置、たとえばプログラム可能なプロセッサによって実行可能であるように機械可読記憶デバイス内で有形に実施される製品として実施されてもよい。方法ステップは、命令のプログラムを実行し、入力データに作用し出力を生成することによって本方法の機能を実行するプログラム可能なプロセッサによって実行されてもよい。したがって、プロセッサはプログラム可能であり、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するように結合されてもよい。アプリケーションプログラムは、上位手続き型もしくはオブジェクト指向プログラミング言語で、または望むならアセンブリもしくは機械言語で実施されてもよい。いずれの場合も、言語は、コンパイル型またはインタープリタ型言語であってよい。プログラムは、完全インストールプログラムであっても更新プログラムであってもよい。システム上でプログラムを適用することは、いずれの場合も、本方法を実行するための命令をもたらす。
【００３９】
機械学習アルゴリズムによって予測されるシステムの挙動の潜在的な発散を評価することにより、システムの適正な使用を確保するプロセスの少なくとも一部であるアクション、またはシステムとのインタラクションが指定される。したがって、本方法は、システムの予測される挙動に応答しての通常のアクション、およびシステムの実際の挙動とその予測された挙動との間で潜在的な発散が検出された場合のフォールバックアクションをプログラミングすることを含み得る。潜在的な発散は、経験的データ（タグ付きデータ）が新しい状況を適切に表すことができない場合検出されることになる。したがって、フォールバックは、経験的データに依拠しない理論的考察またはエキスパートルールに基づく判断システムに基づいてもよい。
【００４０】
次に図３を参照して、本発明の一例について論じる。
【００４１】
ステップＳ１０では、観測値の第１のセットをトレーニングすることによって、トレーニングされたモデルが得られる。観測値のセットは、図１を参照して論じたものであり、観測値のセットの各観測値は、目標値に関連付けられる。したがって、モデルは、標的変数の対応する値に関連付けられた（タグ付けされた）観測値を使用してトレーニングされる意味で、タグ付きデータに対してトレーニングされる。これらの観測値は、いわゆるトレーニングセットを形成する。モデルのトレーニングは、機械学習の分野で知られているように実行される。トレーニングされたモデルは、典型的には、ストレージに、たとえば実行のためにはランダムアクセスメモリに、永続性のためにはファイルシステムに記憶される。観測値の第１のセットは、観測値の各変数に関連付けられた値が現実の世界から観測された（または測定された）値であることに関係して自然サンプルと称することができる。たとえば、所与の時点で測定される回転機械の回転速度は、変数「回転速度」の自然値である。
【００４２】
次に、ステップＳ２０で、確率変数生成アルゴリズムを使用して、観測値の第２のセットが生成される。観測値のこの第２のセットは、第１のものと同じ構造を有する。すなわち、第２のセットの各観測値が同じ変数を有し、変数に関連付けられた値だけが異なり得る。観測値の第２のセットは、合成サンプルとも称され、ここで合成という用語は、自然サンプルという用語と対比され、変数の値は、観測されておらず、計算されている。
【００４３】
合成観測値の生成は、以下のように実施されてよい。観測値は、観測値のセットの観測値を特徴付ける変数に関連するいくつかの値によって説明される。トレーニングされたモデルは、これらの値が入力で与えられたとき、セットの対応する観測値に関連付けられる目標値を生成する。たとえば、回転機械の故障の確率を予測するためには、モデルは、入力で、回転機械の回転速度、機械加工される部品の材料、切削冷媒、切削流体、切削の深さ、切削速度、インサート形状、インサートサイズなどをとり得る。いくつかのモデルは、数値（行列）計算によって機能し、数値入力を期待する。その結果、トレーニング用にも予測用にも、これらの入力データのいずれかを、モデルに入力される前に、数値に変換することができる。たとえば、変数「切削冷媒」は、水、鉱油、空気．．．であってよい。切削冷媒は、水について０、鉱油について１、空気について２で変換させることができる。あるいは、変数「切削冷媒」は、「切削冷媒が水を含む」「切削冷媒がミネラルを含む」「切削冷媒が空気を含む」など、いくつかのバイナリ変数に変換させることができる。これらの変数のそれぞれは、真について１、偽について０として表すことができるバイナリ値をとる。
【００４４】
いくつかの変数は、無限のセットで定義されてもよい。しかし、物理的な観測値は、現実的な値の区間に制限され得る。たとえば、実際には、回転機械の回転速度は、区間［１０，２０００］の毎分回転数（ｒｐｍ）に制限される可能性があり、２０００ｒｐｍを超える回転は、理論的には受け入れられるが、実際には使用されない。したがって、観測値の第１のセットの変数（記述変数）は、連続的なセグメントに対して、または離散集合に対して定義されてよく、これは変数に依存する。したがって、ステップＳ１０でのトレーニングされるモデルは、連続的なセグメントに対して、または離散集合に対して定義された変数と共に、観測値の第１のセットでトレーニングすることができる。連続的なセグメントに対して、または離散集合に対して定義された観測値のこの第１のセットは、第２のセットを生成するために使用されることになる。
【００４５】
いま、記述変数が連続的なセグメントに対して、または離散集合に対して定義されたので、理論的な確率分布を各変数に対して関連付けることが可能である。したがって、確率分布の選出は、変数に依存する。たとえば、回転機械の回転速度に関連付けられる理論的な確率は、最小回転速度および最大回転速度以外の情報が知られていない場合、セグメント［１０ｒｐｍ，２０００ｒｐｍ］に対する一様分布に基づくことができる。一様確率分布は、セグメントまたはセットのすべての値の確率が等しいことを指定する。メトリックが非一様分布、たとえば正規分布、ポアソン分布、パレート分布などを生成するプロセスの結果であることを知っているとき、非一様分布が使用されることがある。あるいは、第１の変数が他の変数の関数であることが知られている場合、第１の変数の値は、他の変数のための値を生成し、第１の変数の対応する値を毎回計算することによって生成することができる。
【００４６】
以後、変数の可能な値のセグメントまたはセットにわたって、また各変数に以前に関連付けられた、関連の確率分布に従って、ランダムサンプルを生成することが可能である。これは、既知の技法を使用することによって実行される。実際には、それらは、一般にモンテカルロ法で使用される確率変数ジェネレータにある。したがって、確率変数ジェネレータは、観測値の各変数について理論的に可能な値を返す。
【００４７】
説明のために、確率変数ジェネレータは、ランダム変数の特定の結果を、それらの定義範囲でそれらの確率分布に従って生成するプログラムである。
【００４８】
各変数のランダムサンプルが計算された後で、ランダム観測値が生成される。この目的のために、各変数について生成された値が組み合わされ、したがって、ランダムに生成される観測値の第２のセットは、これらのランダム値の可能な組合せすべてをカバーする。
【００４９】
観測値の合成セット（第２のセット）を生成するこのステップでは、ランダムサンプルのすべての組合せが計算された。観測値の第２のセットのサイズを削減するために、現実的でない（すなわち、実際に観測されないであろう）観測値が抑圧される。これは、観測値のセットの変数間に依存性があるかどうか決定することによって実行され得る。これらの依存性は、アプリオリに知られていることを理解されたい。これらの依存性を使用し、それらの依存性を満たさないランダムサンプルの組合せの計算することを防止することができ、またはそれらを、それらの依存性を満たさないランダムサンプルの組合せを除去するために使用することができる。たとえば、今年公開されたインサート形状は、公開日より古い観測値において部品の機械加工のために使用することはできなかった。
【００５０】
このステップで、観測値の第２のセットがランダムに生成された。しかし、この第２のセットは、目標値に関連付けられておらず、使用可能なタグ付きデータ（第１のセット）は、合成データが含まない目標値を含む。第２のセットの標的データを計算するために、ステップＳ２０で、トレーニングされたモデルが、ランダムに生成された第２のセットに対して適用される。各合成観測値がトレーニングされたモデルに入力され、目標値がモデルの出力に設定される。目標値が得られ、第２のセットの各観測値に関連付けられる。トレーニングされたモデルを第２のセットに対して適用することは、当技術分野で知られているように実行される。第２のセットおよびその目標値は、第１のセットとして、すなわち、図１を参照して論じられている行列を使用することによって記憶することができることが好ましい。
【００５１】
本方法のこのステップでは、観測値の２つのセットが使用可能である。これらの２つのセットは、図２に示されているように、行列１０、１６内で（または単一の行列内でも）マージされてもよい。図２では、実線で表されている観測値が第１のセットの観測値（および変数）であり、一方、点線で表されている観測値が第２のセットの観測値（および変数）である。興味深いことに、行列１０、１６は、各観測値について、観測値が自然のものであるか生成されたか否かの情報を含む補足行列２０に関連付けることができる。したがって、各観測値は、自然なもの、または生成されたものとして、たとえば自然なものについて値０、生成されたものについて値１としてマークされる。
【００５２】
次に、ステップＳ３０で、観測値の２つのセットおよびそれらの関連の目標値から、インデックスが構築される。インデックスについては、上記で論じられている。インデックスという用語は、ここではプロセスの数、記憶デバイス、サーバ、またはアドレスに関して制約なしで使用される。具体的な場合は、別個のプロセスが、異なるサーバに位置するデータにアクセスするように働くインデックスである。一実施では、１つのプロセスが自然観測値の要求に応答してもよく、別のプロセスが、生成された観測値の要求に応答してもよく、観測値のこれらの２つのセットが、異なるロケーションに記憶されてもよく、２つのプロセスが、異なるアドレス（ＵＲＬ）を使用してアクセス可能であってもよい。これは、自然観測値の入来する流れを最もよくサポートするハードウェアサーバが、生成された観測値の入来する流れを最もよくサポートするハードウェアサーバと同じでないことがあるとき有利となり得る。また、これは、記憶された生成された観測値を変えるために自然観測値を収集する、またはその逆であるプロセスを保護するために有利となり得る。
【００５３】
インデックスの一例として、１つではなく２つのインデックス、すなわち、情報の各セットのためのインデックスが構築され得る。すなわち、このインデックスは、観測値の第１のセットのための第１のインデックスと、観測値の第２のセットのための第２のインデックスとを含む。この例では、２つのセットの行列はマージされないことが好ましい。また、補足行列２０は必要でない。なぜなら、観測値が第１のセットまたは第２のセットに属するという制約がクエリのＵＲＬの選出によって指定されるからである。
【００５４】
次いで、ステップＳ４０で、第１のクエリがインデックスによって受け取られる。クエリは、データを説明する１またはいくつかの変数で表して指定される。クエリは、ユーザによって記述されてもよい。クエリは、回答を要求するシステムによって自動的に記述されてもよい。たとえば、回転機械の動作を指令するシステムは、新しい回転速度での穿孔の結果に対して要求してもよい。たとえば、クエリは、「もしアルミニウム部品を、水をクーラとして、切削の深さ０．５ｍｍ、タイプＢのインサート形状の場合、穿孔したらどうなる」であり得る。コマンドシステムによって要求される回答は、穿孔の結果の予想される品質の尺度、たとえば結果の滑らかさの尺度である。したがって、異なる回転速度に対応する複数のそのようなクエリを発行することにより、コマンドシステムは、最良の結果をもたらす回転速度を選択することができる。したがって、クエリは、インデックス付けされたドキュメントに対する制約の和である。たとえば、上記のクエリは、（それだけには限らないが）以下の形態、すなわち、「１２８．０．０．１：１００００／ｑ？ｃｏｏｌｅｒ：ｗａｔｅｒ  ＡＮＤ  ｃｕｔ＿ｄｅｐｔｈ：０．５  ＡＮＤ  ｉｎｓｅｒｔ＿ｓｈａｐｅ：Ｂ」をとることが可能である。ホスト１２８．０．０．１上のポート１００００をリッスンするプロセスが、クエリストリング「ｃｏｏｌｅｒ：ｗａｔｅｒ  ＡＮＤ  ｃｕｔ＿ｄｅｐｔｈ：０．５  ＡＮＤ  ｉｎｓｅｒｔ＿ｓｈａｐｅ：Ｂ」でクエリされることになり、変数「ｃｏｏｌｅｒ」に対応する逆リスト内の値「ｗａｔｅｒ」に関連し、かつ変数「ｃｕｔ＿ｄｅｐｔｈ」に対応する逆リスト内の値「０．５」に関連し、かつ変数「ｉｎｓｅｒｔ＿ｓｈａｐｅ」に対応する逆リスト内の値「Ｂ」に関連するドキュメントすべてを取り出すことによって応答することになる。
【００５５】
このクエリの結果として、ステップＳ４０の第１のクエリから、２つのクエリが生成される。生成は、第１のクエリが２つのクエリ、すなわち第２のクエリおよび第３のクエリに変形されることを意味する。これらは、同時に生成されても、順に生成されてもよく、第２のものが第３のものより前に生成されても、第３の要求が第２のものより前に生成されてもかまわない。
【００５６】
第２のクエリは、サーバによって生成され（Ｓ５０）、ステップＳ４０の第１のクエリと、第１のセットの１つまたは複数の観測値だけを返すことになる追加の制約とを含む。
【００５７】
第３のクエリは、サーバによって生成され（Ｓ５２）、ステップＳ４０の第１のクエリと、第２のセットの１つまたは複数の観測値だけを返すことになる追加の制約とを含む。
【００５８】
第２のクエリおよび第３のクエリの生成の結果として、第２および第３の生成されたクエリを共に使用して、インデックスがクエリされる。
【００５９】
したがって、クエリされたインデックスは、２つの結果を返す（ステップＳ６０）。第１の結果は、第２のクエリによって提供され、クエリに一致する第１のセットの使用可能な観測値を含む。したがって、第２のクエリに対する応答は、第１のセットの使用可能なタグ付きデータを提供し、これは、タグ付きデータの密度を表すことを可能にする。第２の結果は、第３のクエリによって提供され、クエリに一致する第２のセットの使用可能な観測値を含む。したがって、合成データに対するこのクエリは、任意の可能な観測値を表すサンプルを表すことを可能にする。
【００６０】
これらの２つの結果から、２つの結果間で比較を実行することができる。この比較は、Ｎ個の観測値の各隣接値について実行されてもよい。この隣接値内で、第１のセットの観測値の数を計数し、第１のセットの観測値の数が高いほど、モデルはより良好である。それに対して、第１のセットの観測値の数が低いほど、モデルは悪化する。Ｋが隣接値内の第１のセットの観測値の数、Ｎ−Ｋが第２のセットの観測値の数である場合、Ｋ／Ｎは、隣接値内の自然観測値の密度である。所与の新しい観測値周りでのサイズＮの隣接値内の自然観測値の密度のパーセンタイル値（サイズＮの他の隣接値内の自然観測値の密度に比べて）は、その新しい観測値のためのモデルの相対的な潜在的発散を説明する新しいメトリックである。これは、モデルによって提供される予測における相対的な信頼の尺度として働くことができる。モデルに依拠すること、または依拠しないことを選ぶパーセンタイル値は、とりわけ、発散のコスト、および代替のフォールバック判断システムの期待される質に依存する。
【００６１】
ステップＳ１０、Ｓ２０、Ｓ３０、Ｓ５０、Ｓ５２、Ｓ６０、およびＳ７０は、観測値の第１のセットを記憶するサーバによって実施されることが好ましい。ステップＳ４０は、典型的には、サーバに接続されるクライアント上で実行される。サーバとクライアントは共に、図４を参照して表されているシステムとすることができる。他の実施が企図され得ることを理解されたい。たとえば、ステップＳ５０およびステップＳ５２は、サーバ側ではなくクライアント側で実行されてもよい。別の代替形態では、比較がクライアント上で実行されてもよい。
【図１】
2017126329.tif 000003
【図２】
2017126329.tif 000004
【図３】
2017126329.tif 000005
【図４】
2017126329.tif 000006
【外国語明細書】
2017126329000001.pdf