(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-04
(45)【発行日】2025-07-14
(54)【発明の名称】深層ニューラル・ネットワークにおける外れ値検出
(51)【国際特許分類】
G06N 3/02 20060101AFI20250707BHJP
【FI】
G06N3/02
(21)【出願番号】P 2023519802
(86)(22)【出願日】2021-09-20
(86)【国際出願番号】 IB2021058530
(87)【国際公開番号】W WO2022069991
(87)【国際公開日】2022-04-07
【審査請求日】2024-02-15
(32)【優先日】2020-09-30
(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)【参考文献】
【文献】米国特許出願公開第2020/0074269(US,A1)
【文献】国際公開第2020/156924(WO,A1)
【文献】国際公開第2020/049087(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02
(57)【特許請求の範囲】
【請求項1】
外れ値検出のためのコンピュータ実施方法であって、
1つまたは複数のプロセッサによって、入力アイテムを受信することと、
前記1つまたは複数のプロセッサによって、前記入力アイテムに対して深層ニューラル・ネットワーク・モデルを実行することと、
前記1つまたは複数のプロセッサによって、前記入力アイテムから第1の特徴ベクトルを抽出することと、
前記1つまたは複数のプロセッサによって、抽出された前記第1の特徴ベクトルを離散値に量子化することと、
前記1つまたは複数のプロセッサによって、前記入力アイテムにおけ
るt元特徴組み合わせの第1の数を計算することと、
前記1つまたは複数のプロセッサによって、計算された前記
入力アイテムにおけるt元特徴組み合わせの第1の数を計算された閾値と比較することと、
前記比較に基づいて、前記1つまたは複数のプロセッサによって、前記入力アイテムに外れ値としてフラグ設定することと、
前記1つまたは複数のプロセッサによって、フラグ設定された前記入力アイテムを含む警告を生成することと、
を含む、方法。
【請求項2】
前記入力アイテムに対して前記深層ニューラル・ネットワークを実行することが、
外れ値検出のために前記深層ニューラル・ネットワークを訓練することをさらに含み、前記訓練することが、
前記1つまたは複数のプロセッサによって、訓練データセットに対して前記深層ニューラル・ネットワークを実行することと、
前記1つまたは複数のプロセッサによって、前記訓練データセットから第2の特徴ベクトルを抽出することと、
前記1つまたは複数のプロセッサによって、抽出された前記第2の特徴ベクトルを離散値に量子化することと、
前記1つまたは複数のプロセッサによって、前記訓練データセットにおけるt元特徴組み合わせの発生カウントを判定することと、
前記訓練データセットにおけ
るt元特徴組み合わせの前記発生カウントに基づいて、前記1つまたは複数のプロセッサによって、
前記訓練データセットにおけるt元特徴組み合わせの第2の数を定義することと、
前記1つまたは複数のプロセッサによって、前記訓練データセットにおいて訓練入力アイテム毎に定義された前記
訓練データセットにおけるt元特徴組み合わせの第2の数についての計算された前記閾値を算出することと、
を含む、請求項1に記載の方法。
【請求項3】
前記入力アイテムにおけ
るt元特徴組み合わせの第1の数および前記訓練データセットにおけるt元特徴組み合わせの前記第2の数が、全てのn<Nに対して、n回未満発生する
前記訓練データセットにおけるt元特徴組み合わせの数を含む、請求項2に記載の方法。
【請求項4】
前記訓練データセットにおけ
るt元特徴組み合わせの前記第2の数についての計算された前記閾値を算出することが、
前記1つまたは複数のプロセッサによって、前記訓練データセットにおける全ての入力アイテムについての
前記訓練データセットにおけるt元特徴組み合わせのカウントの平均(m)+
前記訓練データセットにおけるt元特徴組み合わせの前記カウントの標準偏差(s)+前記訓練データセットにおける入力アイテム毎の
前記訓練データセットにおけるt元特徴組み合わせの前記カウントの平方根(sqrt)を算出することを含む、請求項3に記載の方法。
【請求項5】
前記計算された
前記入力アイテムにおけるt元特徴組み合わせの第1の数を前記計算された閾値と比較することが、
前記計算された閾値を超える
前記訓練データセットにおけるt元特徴組み合わせの前記カウントに基づいて、前記1つまたは複数のプロセッサによって、前記入力アイテムに外れ値としてフラグ設定することをさらに含む、請求項4に記載の方法。
【請求項6】
前記入力アイテムにおけ
るt元特徴組み合わせの第1の数および前記訓練データセットにおけるt元特徴組み合わせの前記第2の数が、顕著t元特徴組み合わせの数を含み、前記顕著t元特徴組み合わせの数が、確率によって示唆されるよりも多く共に出現する特徴のt元組み合わせを含む、請求項2に記載の方法。
【請求項7】
前記訓練データセットにおけ
るt元特徴組み合わせの前記第2の数についての前記計算された閾値を算出することが、
前記1つまたは複数のプロセッサによって、前記訓練データセットにおける入力アイテム毎の前記顕著t元特徴組み合わせの数のカウントの平均(m)-前記顕著t元特徴組み合わせの数の前記カウントの標準偏差(s)の5倍を算出することを含む、請求項6に記載の方法。
【請求項8】
前記計算された
前記入力アイテムにおけるt元特徴組み合わせの第1の数を前記計算された閾値と比較することが、
前記入力アイテムにおける前記顕著t元特徴組み合わせのカウントが前記計算された閾値より低いことに基づいて、前記1つまたは複数のプロセッサによって、前記入力アイテムに外れ値としてフラグ設定することをさらに含む、請求項7に記載の方法。
【請求項9】
前記警告が、映像通知および音声通知のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項10】
外れ値検出のためのコンピュータ・システムであって、
1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読有形記憶デバイスと、前記1つまたは複数のメモリの少なくとも1つを介した前記1つまたは複数のプロセッサの少なくとも1つによる実行のために前記1つまたは複数の記憶デバイスの少なくとも1つの上に記憶されるプログラム命令と、を備え、前記コンピュータ・システムが、
1つまたは複数のプロセッサによって、入力アイテムを受信することと、
前記1つまたは複数のプロセッサによって、前記入力アイテムに対して深層ニューラル・ネットワーク・モデルを実行することと、
前記1つまたは複数のプロセッサによって、前記入力アイテムから第1の特徴ベクトルを抽出することと、
前記1つまたは複数のプロセッサによって、抽出された前記第1の特徴ベクトルを離散値に量子化することと、
前記1つまたは複数のプロセッサによって、前記入力アイテムにおけ
るt元特徴組み合わせの第1の数を計算することと、
前記1つまたは複数のプロセッサによって、計算された前記
入力アイテムにおけるt元特徴組み合わせの第1の数を計算された閾値と比較することと、
前記比較に基づいて、前記1つまたは複数のプロセッサによって、前記入力アイテムに外れ値としてフラグ設定することと、
前記1つまたは複数のプロセッサによって、フラグ設定された前記入力アイテムを含む警告を生成することと、
を含む方法を実行可能な、コンピュータ・システム。
【請求項11】
前記入力アイテムに対して前記深層ニューラル・ネットワークを実行することが、
外れ値検出のために前記深層ニューラル・ネットワークを訓練することをさらに含み、前記訓練することが、
前記1つまたは複数のプロセッサによって、訓練データセットに対して前記深層ニューラル・ネットワークを実行することと、
前記1つまたは複数のプロセッサによって、前記訓練データセットから第2の特徴ベクトルを抽出することと、
前記1つまたは複数のプロセッサによって、抽出された前記第2の特徴ベクトルを離散値に量子化することと、
前記1つまたは複数のプロセッサによって、前記訓練データセットにおけるt元特徴組み合わせの発生カウントを判定することと、
前記訓練データセットにおけ
るt元特徴組み合わせの前記発生カウントに基づいて、前記1つまたは複数のプロセッサによって、
前記訓練データセットにおけるt元特徴組み合わせの第2の数を定義することと、
前記1つまたは複数のプロセッサによって、前記訓練データセットにおいて訓練入力アイテム毎に定義された前記
訓練データセットにおけるt元特徴組み合わせの第2の数についての計算された前記閾値を算出することと、
を含む、請求項10に記載のコンピュータ・システム。
【請求項12】
前記入力アイテムにおけ
るt元特徴組み合わせの第1の数および前記訓練データセットにおけるt元特徴組み合わせの前記第2の数が、全てのn<Nに対して、n回未満発生する
前記訓練データセットにおけるt元特徴組み合わせの数を含む、請求項11に記載のコンピュータ・システム。
【請求項13】
前記訓練データセットにおけ
るt元特徴組み合わせの前記第2の数についての計算された前記閾値を算出することが、
前記1つまたは複数のプロセッサによって、前記訓練データセットにおける全ての入力アイテムについての
前記訓練データセットにおけるt元特徴組み合わせのカウントの平均(m)+
前記訓練データセットにおけるt元特徴組み合わせの前記カウントの標準偏差(s)+前記訓練データセットにおける入力アイテム毎の
前記訓練データセットにおけるt元特徴組み合わせの前記カウントの平方根(sqrt)を算出することを含む、請求項12に記載のコンピュータ・システム。
【請求項14】
前記計算された
前記入力アイテムにおけるt元特徴組み合わせの第1の数を前記計算された閾値と比較することが、
前記計算された閾値を超える
前記訓練データセットにおけるt元特徴組み合わせの前記カウントに基づいて、前記1つまたは複数のプロセッサによって、前記入力アイテムに外れ値としてフラグ設定することをさらに含む、請求項13に記載のコンピュータ・システム。
【請求項15】
前記入力アイテムにおけ
るt元特徴組み合わせの第1の数および前記訓練データセットにおけるt元特徴組み合わせの前記第2の数が、顕著t元特徴組み合わせの数を含み、前記顕著t元特徴組み合わせの数が、確率によって示唆されるよりも多く共に出現する特徴のt元組み合わせを含む、請求項11に記載のコンピュータ・システム。
【請求項16】
前記訓練データセットにおけ
るt元特徴組み合わせの前記第2の数についての前記計算された閾値を算出することが、
前記1つまたは複数のプロセッサによって、前記訓練データセットにおける入力アイテム毎の前記顕著t元特徴組み合わせの数のカウントの平均(m)-前記顕著t元特徴組み合わせの数の前記カウントの標準偏差(s)の5倍を算出することを含む、請求項15に記載のコンピュータ・システム。
【請求項17】
前記計算された
前記入力アイテムにおけるt元特徴組み合わせの第1の数を前記計算された閾値と比較することが、
前記入力アイテムにおける前記顕著t元特徴組み合わせのカウントが前記計算された閾値より低いことに基づいて、前記1つまたは複数のプロセッサによって、前記入力アイテムに外れ値としてフラグ設定することをさらに含む、請求項16に記載のコンピュータ・システム。
【請求項18】
前記警告が、映像通知および音声通知のうちの少なくとも1つを含む、請求項10に記載のコンピュータ・システム。
【請求項19】
コンピュータが実行する、外れ値検出のためのコンピュータ・プログラムであって、
前記コンピュータに、
入力アイテムを受信することと、
前記入力アイテムに対して深層ニューラル・ネットワーク・モデルを実行することと、
前記入力アイテムから第1の特徴ベクトルを抽出することと、
抽出された前記第1の特徴ベクトルを離散値に量子化することと、
前記入力アイテムにおけ
るt元特徴組み合わせの第1の数を計算することと、
計算された前記
入力アイテムにおけるt元特徴組み合わせの第1の数を計算された閾値と比較することと、
前記比較に基づいて、前記入力アイテムに外れ値としてフラグ設定することと、
フラグ設定された前記入力アイテムを含む警告を生成することと、
を実行させる、コンピュータ・プログラム。
【請求項20】
前記入力アイテムに対して前記深層ニューラル・ネットワークを実行することが、
外れ値検出のために前記深層ニューラル・ネットワークを訓練することであって、
訓練データセットに対して前記深層ニューラル・ネットワークを実行することと、
前記訓練データセットから第2の特徴ベクトルを抽出することと、
抽出された前記第2の特徴ベクトルを離散値に量子化することと、
前記訓練データセットにおけるt元特徴組み合わせの発生カウントを判定することと、
前記訓練データセットにおけ
るt元特徴組み合わせの前記発生カウントに基づいて、
前記訓練データセットにおけるt元特徴組み合わせの第2の数を定義することと、
前記訓練データセットにおいて訓練入力アイテム毎に定義された前記
訓練データセットにおけるt元特徴組み合わせの第2の数についての計算された前記閾値を算出することと、
を含む、請求項19に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、機械学習の分野に関し、より詳細には、深層ニューラル・ネットワーク(DNN:deep neural network)・モデルを用いて外れ値検出(outlier detection)を実行するための方法、システム、およびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
外れ値検出(または異常検出)は、正常挙動の概念に従わない、データ内のデータ・ポイントまたはパターンの識別である。異常データは、医療問題、構造欠陥、故障機器などの問題または希事象に結び付けられることが多いため、異常挙動を検出する能力は、産業全体に有用な見識を提供し得る。特に、医用撮像処置においては、外れ値の検出は、正確な解釈および診断に非常に重要である。概して、外れ値の検出および関連する特徴は、分類前の重要なプロセスである。
【0003】
一方、DNNは、大量のデータを用いて効率的に進行する能力を実証している。DNNは、従来のニューラル・ネットワークと比較して非線形変換およびデータ表現のより高い効率を有する。具体的には、DNNは、入力空間内の画像の深層階層変換を実行し得る。さらに、DNNは、多層アーキテクチャのおかげで、大量のデータを処理および分析し得るだけでなく、様々な分野における認知プロセスをモデル化し得る。しかしながら、DNNは、訓練に用いられる入力のセットに大きく依存する。
【発明の概要】
【0004】
本開示は、外れ値検出方法およびDNNに関連する短所および問題を認識する。特に、大規模訓練データセットの必要性および画像または入力アイテムの種類に対する出力の予測不可能性は、以前はDNNモデルにより見られなかった。これにより、例えば、訓練データセットにおいて表現されなかった破損画像が、DNNが与えたどんな分類を用いても気付かれなくなることがある。別の例では、インプラントのないマンモグラム画像を用いて訓練されたDNNモデルは、インプラントを含む画像と共に提示されるときに誤った結果を生じる場合がある。したがって、正常な入力アイテムに対する最小限の影響で異常入力アイテム(例えば、画像)にフラグ設定するために訓練済みDNNから生成された特徴ベクトル値の統計値を収集可能なt元特徴組み合わせを用いた、深層ニューラル・ネットワークにおける外れ値検出のための方法およびシステムに対する必要性がある。
【0005】
1つまたは複数のプロセッサによって入力アイテムを受信することを含む、外れ値検出のためのコンピュータ実施方法の提供を通して、従来技術の短所が克服され、追加の利点がもたらされる。1つまたは複数のプロセッサは、入力アイテムに対して深層ニューラル・ネットワーク・モデルを実行し、その後離散値(discrete value)に量子化される、入力アイテムからの第1の特徴ベクトルを抽出する。1つまたは複数のプロセッサは、入力アイテムにおける特別t元特徴組み合わせ(special t-way feature combination)の第1の数を計算し、計算された特別t元特徴組み合わせの第1の数を計算された閾値と比較する。比較に基づいて、1つまたは複数のプロセッサは、入力アイテムに外れ値としてフラグ設定し、フラグ設定された入力アイテムを含む警告を生成する。
【0006】
本開示の別の実施形態は、上述した方法に基づいて、外れ値検出のためのコンピュータ・プログラム製品を提供する。
【0007】
本開示の別の実施形態は、上述した方法に基づいて、外れ値検出のためのコンピュータ・システムを提供する。
【0008】
例として与えられ、発明をそれのみに限定することを意図しない以下の詳細な説明は、添付図面と併せて最もよく理解されるであろう。
【図面の簡単な説明】
【0009】
【
図1】本開示の実施形態による、ネットワーク化されたコンピュータ環境を示すブロック図である。
【
図2】本開示の実施形態による、t元特徴組み合わせを用いた深層ニューラル・ネットワークにおける外れ値検出のためのシステムを示す図である。
【
図3A】本開示の実施形態による、t元特徴組み合わせを用いた外れ値検出に深層ニューラル・ネットワーク・モデルを使用するためのコンピュータ実施方法のステップを示すフローチャートである。
【
図3B】本開示の実施形態による、t元特徴組み合わせを用いた外れ値検出のための、
図3Aのコンピュータ実施方法の例としての実施態様を示すフローチャートである。
【
図4】本開示の実施形態による、コンピュータ・システムの内部コンポーネントおよび外部コンポーネントのブロック図である。
【
図5】本開示の実施形態による、例示的なクラウド・コンピューティング環境のブロック図である。
【
図6】本開示の実施形態による、
図5の例示的クラウド・コンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0010】
図面は、必ずしも一定の縮尺ではない。図面は、単なる概略的表現であり、発明の特定のパラメータを描写することを意図しない。図面は、発明の典型的な実施形態のみを示すことを意図している。図面において、類似の番号は、類似の要素を表す。
【0011】
特許請求された構造および方法の詳細な実施形態が、本明細書において開示される。しかしながら、開示される実施形態は、多様な形式において具現化され得る特許請求された構造および方法の単なる例示であると、理解され得る。一方、本発明は、多くの異なる形式で具現化されてもよく、本明細書に述べられている例示的実施形態に限定されるように解釈されるべきではない。説明において、周知の特徴および技術の詳細は、提示された実施形態を不必要に不明瞭にしないようにするために省略される場合がある。
【0012】
本発明の実施形態は、t元特徴組み合わせを用いたDNNにおける外れ値検出のための方法、システム、およびコンピュータ・プログラム製品を提供する。以下で説明される例示的実施形態は、特に、訓練中に計算されたDNN特徴ベクトルを分析し、訓練セット内で顕著であるように見える特徴(外れ値)を発見し、顕著な特徴に基づいて、提案される方法がプロダクションの間に計算された特徴ベクトルを分析し、顕著な特徴がうまく表現されていない入力にフラグを設定し、統計分析を行って訓練中の顕著な特徴の出現率をプロダクションの出現率と比較するための、システム、方法、およびコンピュータ・プログラム製品を提供する。したがって、本実施形態は、深層ニューラル・ネットワークにおいてt元特徴組み合わせを用いて正常画像に対して最小限の影響で異常画像(外れ値)にフラグ設定することによって、機械学習の技術分野を改善する能力を有する。具体的には、正常画像に対する影響は、正常画像に稀にしかフラグ設定されないように閾値を調整することによって、大幅に低下され得る。さらに、本実施形態は、外れ値を検出するためにDNNを訓練するコストの高いプロセスを回避することを助け得る。
【0013】
ここで
図1を参照すると、本開示の実施形態による、例示的なネットワーク化コンピュータ環境100が示されている。
図1は、1つの実施形態の単なる例示を提供するだけであり、異なる実施形態が実施され得る環境に関していかなる限定も示唆しない。図示される環境に対する多くの変更が、特許請求の範囲によって列挙される本発明の範囲から逸脱することなく当業者により行われ得る。
【0014】
ネットワーク化コンピュータ環境100は、クライアント・コンピュータ102および通信ネットワーク110を含み得る。クライアント・コンピュータ102は、外れ値検出プログラム108を実行することが可能なプロセッサ104、およびデータ記憶デバイス106を含み得る。クライアント・コンピュータ102は、例えば、モバイル・デバイス、電話(スマートフォンを含む)、携帯情報端末、ネットブック、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータ、またはネットワークにアクセス可能な任意の種類のコンピューティング・デバイスであってもよい。
【0015】
ネットワーク化コンピュータ環境100は、ソフトウェア・プログラム112を実行することが可能なプロセッサ118、およびデータ記憶デバイス120を有するサーバ・コンピュータ114も含み得る。いくつかの実施形態では、サーバ・コンピュータ114は、リソース管理サーバ、ウェブサーバ、またはデータを受信および送信することが可能な任意の他の電子デバイスであってもよい。別の実施形態では、サーバ・コンピュータ114は、クラウド・コンピューティング環境などの、複数のコンピュータをサーバ・システムとして使用するサーバ・コンピューティング・システムを表し得る。
【0016】
クライアント・コンピュータ102上で動作する外れ値検出プログラム108は、通信ネットワーク110を介してサーバ・コンピュータ114上で動作するソフトウェア・プログラム112と通信し得る。
図4を参照して説明されるように、クライアント・コンピュータ102およびサーバ・コンピュータ114は、内部コンポーネントおよび外部コンポーネントを含み得る。
【0017】
ネットワーク化コンピュータ環境100は、複数のクライアント・コンピュータ102およびサーバ・コンピュータ114を含んでもよく、その中の1つだけが図示されている。通信ネットワーク110は、本開示の実施形態による、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、公衆電話交換網(PSTN)、セルラもしくはモバイル・データ・ネットワーク(例えば、モバイル電話モバイル通信の第3世代もしくは第4世代によって提供され得るワイヤレス・インターネット)、構内交換機(PBX)、それらの任意の組み合わせ、またはクライアント・コンピュータ102とサーバ・コンピュータ114との間の通信をサポートする任意の組み合わせの接続およびプロトコルなどの様々な種類の通信ネットワークを含み得る。通信ネットワーク110は、有線、無線、または光ファイバ接続を含んでもよい。当業者により既知の通り、ネットワーク化コンピュータ環境100は、図示されない追加のコンピューティング・デバイス、サーバ、または他のデバイスを含み得る。
【0018】
複数のインスタンスは、本明細書に記載されたコンポーネント、動作、または構造を単一インスタンスとして提供され得る。様々なコンポーネント、動作、およびデータ・ストア間の境界は、いくらかは任意であり、具体的な例示構成のコンテキストにおいて特定の動作が示される。機能性の他の割り当てが想定され、本発明の範囲内に入り得る。概して、例示的構成において別個のコンポーネントとして提示される構造および機能性は、結合された構造またはコンポーネントとして実施され得る。同様に、単一コンポーネントとして提示される構造および機能性は、別個のコンポーネントとして実施され得る。これらのおよび他の変形、変更、追加、および改良は、本発明の範囲内に入り得る。
【0019】
ここで
図2を参照すると、本開示の実施形態による、t元特徴組み合わせを用いたDNNにおける外れ値検出のためのシステム200が示されている。本実施形態では、DNNモデル210は、複数の入力アイテム(以下、「入力アイテム」)を含む訓練データセットに対して予測を実行するために使用される。入力アイテムは、マンモグラムおよび他の診断撮像画像などのX線画像を含み得るが、これらに限定されない。当業者により既知の通り、DNNは、モデルが訓練データセットに対して起こすエラーに応答してネットワークの重みを更新することによって、入力から出力へのマッピング機能を学習する。十分に良いモデルが見つかるまで、または学習プロセスがスタックおよび停止するまで、このエラーを継続的に減少させるために更新が行われる。
【0020】
その後、特徴抽出プロセスは、特徴抽出エンジン212によって行われ、特徴抽出エンジン212において、特徴ベクトル(例えば、完全接続された層の最後)が、全ての入力から生成される。抽出された特徴ベクトルは、図面に示されるように、ベクトル量子化エンジン214に供給される。
【0021】
実施形態によれば、外れ値は、多数の希少t元組み合わせを有することによって認識され得る。ベクトル量子化エンジン214は、抽出された特徴ベクトルを(例えば、訓練データセットの全ての特徴ベクトルの中の値の中央値より小さいかまたは大きい)離散値に量子化し、訓練データセットにおけるt元特徴組み合わせの発生をカウントする。例えば、t=2の場合、特徴ベクトル内の2つの特徴毎に、4つの組み合わせ00、01、10、11を有してもよく、そのそれぞれが、別々にカウントされる。さらに、訓練データセット内のアイテム毎に、ベクトル量子化エンジン214は、全てのn<Nに対して、希少t元特徴組み合わせ(rare t-way feature combination)、即ちn回未満発生する組み合わせの数をカウントし、ここで、Nはt元組み合わせの比較的少ない数を表す。例えば、N=5であるとき、全てのn<Nに対して、0、1、2、3、または4回現れたカウント組み合わせが、別々にカウントされることを意味する。このカウントは、処理されたアイテムにおける特徴組み合わせの発生を含まない。
【0022】
閾値算出(threshold calculation)エンジン216は、全てのn<Nに対してカウント閾値を計算する。例えば、カウント閾値は、以下の式1に示されるように、希少t元特徴組み合わせのカウントの平均(m)+希少t元特徴組み合わせのカウントの標準偏差(s)+希少t元特徴組み合わせのカウントの平方根(sqrt)として算出され得る。
【0023】
【0024】
したがって、希少t元特徴組み合わせの数のカウントが、算出されたカウント閾値を超えるとき、対応する入力アイテムは、外れ値としてフラグ設定される。
【0025】
追加としてまたは代替として、訓練セットは、訓練入力アイテムの大半に対して外れ値である入力アイテムをフィルタリングすることによって精密化され得る。このステップは、訓練データセット内に外れ値が存在し得ることが疑わしいときに有用であり得る。訓練入力アイテムに対して繰り返すこと、カウントのいずれかがカウント閾値より大きい入力アイテムを除去すること、および閾値を再び計算することによって、フィルタリングが行われる。当業者により既知の通り、よりきれいな訓練データセットを有することは、プロダクション時間における分析を改善すると見られている。
【0026】
訓練後、システム200は、判定された入力における外れ値を検出するために使用され得る(プロダクション)。したがって、入力アイテムを仮定すると、DNN予測が実行され、特徴ベクトルは、上述した訓練インスタンスと同一動作を用いて抽出および量子化される。訓練カウントは、以前説明したように、入力アイテムにおけるt元特徴組み合わせのそれぞれについて取得され得る。全てのn<Nに対して、訓練カウントnがnについてのカウント閾値より大きいt元組み合わせの数の場合、入力アイテムは、外れ値としてフラグ設定される。
【0027】
別の実施形態によれば、外れ値は、少ない数の「顕著」t元特徴組み合わせを有することによって認識され得る。ベクトル量子化エンジン214は、上述の通り、抽出された特徴ベクトルを(例えば、訓練データセットの全ての特徴ベクトルの中の値の中央値より小さいかまたは大きい)離散値に量子化し、訓練データセットにおけるt元特徴組み合わせの発生をカウントする。しかしながら、本実施形態では、ベクトル量子化エンジン214は、全ての訓練データセットにおけるその特徴の値に対して、抽出された特徴ベクトル内の各特徴値の確率を算出する。
【0028】
さらに、ベクトル量子化エンジン214は、それらの確率が示唆するよりも著しく多く共に出現する特徴のt元組み合わせを「顕著」として定義する。例えば、特徴3が1である確率が0.5であり、特徴17の確率が0.7である場合、両方が1である確率は、0.35であると予期される。実際には、例えば、100サンプルのうちの50において、特徴3および特徴17の両方が1であることが分かった場合、特徴3および特徴17の組み合わせは、「顕著」として定義される。
【0029】
本実施形態では、閾値算出エンジン216は、訓練入力毎に顕著t元特徴組み合わせ(significant t-way feature combination)の数のカウントの平均(m)および標準偏差(s)を計算し、以下に示すようにカウント閾値を算出する。
【0030】
【0031】
所与の入力についての顕著t元特徴組み合わせの数のカウントが、訓練データセットに対して計算された平均より著しく小さいとき、入力は、外れ値としてフラグ設定される。上記式(2)によって示される通り、著しく小さいとは、例えば、顕著t元特徴組み合わせのカウントの平均よりも小さい5標準偏差であってもよい。
【0032】
訓練後、システム200は、判定された入力における外れ値を検出するために使用され得る(プロダクション)。したがって、上記で説明した通り、入力アイテムが与えられるとき、システム200は、DNN予測を実行し、特徴ベクトルを抽出し、抽出された特徴を上述した訓練実施形態と同一の動作を用いて(例えば、訓練データセット内の顕著t元特徴組み合わせの平均を、入力アイテムにフラグ設定するための基準として使用して)量子化する。このように、この代替実施形態では、所与の入力についての顕著t元特徴組み合わせの数のカウントが、訓練データセットの計算された平均より著しく小さいとき、入力は、外れ値としてフラグ設定される。
【0033】
ここで
図3Aを参照すると、本開示の実施形態による、外れ値識別のためのコンピュータ実施方法のステップを示すフローチャート310が示されている。具体的には、フローチャート310は、t元特徴組み合わせを用いた外れ値検出のためのDNNモデルを訓練するために必要なステップを示す。
【0034】
ステップ312において、DNNモデルが、複数の訓練入力アイテム(以下、「訓練入力アイテム」)を含む訓練データセットに対して実行される。上述の通り、訓練入力アイテムは、例えば、マンモグラムなどのX線画像を含み得る。ステップ314において、特徴ベクトルは、処理された訓練データセットから抽出される。抽出された特徴ベクトルは、その後、
図2を参照して上記で以前説明したように、ステップ316において離散値に量子化される。ステップ318において、量子化された特徴ベクトルにおけるt元特徴組み合わせの発生カウントが判定され、外れ値識別のための閾値を算出するために使用される。
【0035】
実施形態では、ステップ318において、訓練データセット内の訓練入力アイテム毎に、Nが例えば5である全てのn<Nに対して、n回未満発生するt元特徴組み合わせの数のカウントが、判定される。このカウントは、処理されたアイテムにおける特徴組み合わせの発生を含まないことに留意されたい。具体的には、検査された入力アイテムの全ての特徴組み合わせが、少なくとも一度存在するため、訓練データセットをフィルタリングするとき、この入力アイテムがカウントされたという事実を考慮に入れ、それに従ってカウントを修正しなければならない。
【0036】
次いで、この実施形態では、カウント閾値が、ステップ320において全てのn<Nに対して、上記式1に示されたように、t元特徴組み合わせのカウントの平均(m)、t元特徴組み合わせのカウントの標準偏差(s)、およびt元特徴組み合わせのカウントの平方根(sqrt)の合計を行うことによって、算出される。よって、この実施形態では、希少t元特徴組み合わせの数のカウントが、(式(1)に従って)算出されたカウント閾値を超えるとき、対応する訓練入力アイテム(例えば、画像)が外れ値としてフラグ設定される。
【0037】
別の実施形態または代替の実施形態では、ステップ318において、訓練データセットにおけるt元特徴組み合わせの発生カウントを判定した後、全ての訓練データセットにおけるその特徴の値に関して、抽出された特徴ベクトルにおける各特徴値の確率が、判定される。この判定に基づいて、それらの確率より著しく多く共に出現する特徴のt元組み合わせが、顕著t元組み合わせとして識別される。この実施形態において、訓練入力毎の顕著t元特徴組み合わせの数のカウントの平均(m)および標準偏差(s)が算出されてもよく、ステップ320において、画像フラグ設定のための閾値がセットされる。例えば、閾値は、上記式(2)において示されるように、顕著t元特徴組み合わせの数のカウントの平均(m)-標準偏差(s)の5倍として計算され得る。その結果、所与の入力についての「顕著」t元特徴組み合わせの数のカウントが、計算された閾値より小さいとき、入力アイテムは、外れ値としてフラグ設定される。
【0038】
ここで、
図3Bを参照すると、本開示の実施形態による、t元特徴組み合わせを用いた外れ値検出のための、
図3Aのコンピュータ実施方法の例としての実施態様を示すフローチャート330が示される。
【0039】
この実施形態では、ステップ332において、例えば、X線画像を含む入力アイテムが受信される。ステップ334において、DNN予測モデルが実行され、
図3Aを参照して上述した方法で受信した入力アイテムについての特徴ベクトルが抽出される。
図3Aのステップ316と同様に、ステップ336において、抽出された特徴ベクトルは、離散値に量子化される。ステップ338において、入力アイテムにおける各t元特徴組み合わせについての訓練カウントが、
図3Aのステップ318および320を参照して上述した外れ値識別のための計算された閾値を含んで、取得される。
【0040】
ステップ340において、入力カウントが閾値基準を満たすかどうかが判定される。入力カウントが、
図3Aに定義されるように閾値基準を満たさない場合、入力アイテム(例えば、X線画像)が、ステップ342において外れ値としてフラグ設定され、フラグ設定された入力アイテムに関する情報を含む警告が、ステップ344において生成される。警告は、音声通知、映像通知、または触覚フィードバック、あるいはそれらの組み合わせを含んでもよいが、それらに限定されない。入力カウントが、閾値基準を満たす場合、入力アイテムは、ステップ346において分類されるように進行する。
【0041】
したがって、本開示の実施形態は、特に、DNN特徴ベクトルを分析し、どの特徴組み合わせが存在するかを記録し、顕著な数の記録されない特徴が存在するプロダクション入力にフラグ設定するための、方法、システム、およびコンピュータ・プログラム製品を提供する。言い換えると、本開示の実施形態は、プロダクションにおいて計算された特徴ベクトルを分析すること、およびこれらの顕著な特徴がうまく表現されない入力にフラグ設定することによって、希少t元特徴組み合わせを用いてDNNにおける外れ値を検出する。別の実施形態によれば、訓練における顕著な特徴の出現率とプロダクションの出現率とを比較するために、統計分析が実行される(t元特徴組み合わせが顕著性を定義するために考慮され、1元確率が示唆するよりも著しく多く共に出現する特徴のt元組み合わせが、顕著として定義される)。
【0042】
ここで
図4を参照すると、本開示の実施形態による、
図1のネットワーク化コンピュータ環境100のクライアント・コンピュータ102およびサーバ・コンピュータ114のコンポーネントのブロック図が示されている。
図4は、1つの実施態様の単なる例示を提供し、異なる実施形態が実施され得る環境に関していかなる限定も示唆しないことを理解されたい。図示された環境に対して多くの変更が行われ得る。
【0043】
クライアント・コンピュータ102およびサーバ・コンピュータ114は、1つまたは複数のプロセッサ402、1つまたは複数のコンピュータ可読RAM404、1つまたは複数のコンピュータ可読ROM406、1つまたは複数のコンピュータ可読記憶媒体408、デバイス・ドライバ412、読み出し/書き込みドライブまたはインターフェース414、ネットワーク・アダプタまたはインターフェース416を含んでもよく、全てが通信ファブリック418を経て相互接続される。通信ファブリック418は、プロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイス、ならびにシステム内の任意の他のハードウェア・コンポーネント間でデータを渡し、または情報を制御し、あるいはその両方を行うように設計された任意のアーキテクチャで実施され得る。
【0044】
1つまたは複数のオペレーティング・システム410および1つまたは複数のアプリケーション・プログラム411は、プロセッサ402の1つまたは複数による実行のためにそれぞれのRAM404(典型的には、キャッシュ・メモリを含む)の1つまたは複数を介して、コンピュータ可読記憶媒体408の1つまたは複数の上に記憶される。例示される実施形態では、コンピュータ可読記憶媒体408のそれぞれが、内部ハード・ドライブの磁気ディスク記憶デバイス、CD-ROM、DVD、メモリ・スティック(登録商標)、磁気テープ、磁気ディスク、光ディスク、RAM、ROM、EPROM、フラッシュ・メモリなどの半導体記憶デバイス、またはコンピュータ・プログラムおよびデジタル情報を記憶し得る任意の他のコンピュータ可読有形記憶デバイスであってもよい。
【0045】
クライアント・コンピュータ102およびサーバ・コンピュータ114は、1つまたは複数のポータブル・コンピュータ可読記憶媒体426から読み出し、かつ書き込むためのR/Wドライブまたはインターフェース414も含み得る。クライアント・コンピュータ102およびサーバ・コンピュータ114上のアプリケーション・プログラム411は、1つまたは複数のポータブル・コンピュータ可読記憶デバイス426上に記憶され、それぞれのR/Wドライブまたはインターフェース414を介して読み出され、それぞれのコンピュータ可読記憶媒体408内にロードされ得る。
【0046】
クライアント・コンピュータ102およびサーバ・コンピュータ114は、ネットワーク428への接続のためのTCP/IPアダプタ・カードまたはワイヤレス通信アダプタ(OFDMA技術を用いた4Gワイヤレス通信アダプタなど)などの、ネットワーク・アダプタまたはインターフェース416も含み得る。クライアント・コンピュータ102およびサーバ・コンピュータ114上のアプリケーション・プログラム411は、外部コンピュータまたは外部記憶デバイスからコンピューティング・デバイスにネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、または他のワイド・エリア・ネットワークもしくはワイヤレス・ネットワーク)およびネットワーク・アダプタまたはインターフェース416を介してダウンロードされ得る。ネットワーク・アダプタまたはインターフェース416から、プログラムが、コンピュータ可読記憶媒体408内にロードされ得る。ネットワークは、銅電線、光ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。
【0047】
クライアント・コンピュータ102およびサーバ・コンピュータ114は、ディスプレイ・スクリーン420、キーボードまたはキーパッド422、およびコンピュータ・マウスまたはタッチパッド424も含み得る。デバイス・ドライバ412は、結像用ディスプレイ・スクリーン420に、キーボードもしくはキーパッド422に、コンピュータ・マウスもしくはタッチパッド424に、または英数文字入力およびユーザ選択の圧力感知用ディスプレイ・スクリーン420、あるいはそれらの組み合わせにインターフェースする。デバイス・ドライバ412、R/Wドライブまたはインターフェース414、およびネットワーク・アダプタまたはインターフェース416は、ハードウェアおよび(コンピュータ可読記憶媒体408またはROM406あるいはその両方に記憶された)ソフトウェアを含み得る。
【0048】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に列挙する教示の実施態様は、クラウド・コンピューティング環境に限定されないと理解されたい。むしろ、本発明の実施形態は、現在既知の、または後に開発される任意の他の種類のコンピューティング環境と併せて実施されることが可能である。
【0049】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速に供給され、リリースされ得る、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0050】
特性は、以下の通りである。
【0051】
オンデマンド・セルフサービス:クラウド消費者は、サービス・プロバイダと人との対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング・ケイパビリティを一方的に供給し得る。
【0052】
幅広いネットワーク・アクセス:ケイパビリティは、ネットワーク上で利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通してアクセスされる。
【0053】
リソースの共用:プロバイダのコンピューティング・リソースが、マルチテナント型モデルを使用して複数の消費者にサービスするためにプールされ、異なる物理リソースおよび仮想リソースが要求に従って動的に割り当ておよび再割り当てされる。消費者が、概して、提供されるリソースの正確な場所に対する制御または知識を有しないが、より高い抽象レベル(例えば、国、州、またはデータセンタ)において場所を指定することが可能であり得るという点において、位置独立の意味がある。
【0054】
スピーディな拡張性:ケイパビリティは、場合によっては自動的に、即座にスケール・アウトするようにスピーディかつ弾力的に供給され、即座にスケール・インするようにスピーディに解放され得る。消費者に対しては、供給に利用可能なケイパビリティが、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
【0055】
サービスが計測可能であること:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブ・ユーザ・アカウント)に適したある抽象レベルにおいて計測ケイパビリティを活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリングされ、制御され、報告されて、利用サービスのプロバイダおよび消費者の両方に透明性をもたらし得る。
【0056】
サービス・モデルは、以下の通りである。
【0057】
サービスとしてのソフトウェア(SaaS):消費者に提供されるケイパビリティは、クラウド・インフラ上で実行中のプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通して、様々なクライアント・デバイスからアクセス可能である。消費者は、限定されたユーザ固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション・ケイパビリティでさえも含む、基礎的なクラウド・インフラを管理または制御しない。
【0058】
サービスとしてのプラットフォーム(PaaS):消費者に提供されるケイパビリティは、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成したアプリケーションまたは消費者が取得したアプリケーションを、クラウド・インフラ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎的なクラウド・インフラを管理または制御しないが、展開されたアプリケーション、および、可能な限りアプリケーション・ホスティング環境構成に対して制御を行う。
【0059】
サービスとしてのインフラ(IaaS):消費者に提供されるケイパビリティは、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することが可能な、他の基本コンピューティング・リソースを供給することである。消費者は、基礎となるクラウド・インフラを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対して制御を行い、かつ可能な限り選択ネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の限定的な制御を行う。
【0060】
展開モデルは、以下の通りである。
【0061】
プライベート・クラウド:クラウド・インフラは、組織のためだけに動作される。クラウド・インフラは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
【0062】
コミュニティ・クラウド:クラウド・インフラは、複数の組織によって共有され、共有の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラは、組織または第三者によって管理されてもよく、構内または構外に存在し得る。
【0063】
パブリック・クラウド:クラウド・インフラは、一般公衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
【0064】
ハイブリッド・クラウド:クラウド・インフラは、一意なエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準化技術または独自技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成物である。
【0065】
クラウド・コンピューティング環境は、無国籍、低結合、モジュール性、および意味相互運用性を中心としたサービス指向型である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラである。
【0066】
ここで
図5を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示するように、クラウド・コンピューティング環境50は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらの組み合わせが通信し得る、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信し得る。それらは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはそれらの組み合わせなどの、1つまたは複数のネットワーク内で物理的または仮想的にグループ化され得る(図示せず)。これによって、クラウド・コンピューティング環境50が、インフラ、プラットフォーム、またはソフトウェア、あるいはそれらの組み合わせを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提案することが可能となる。
図5に示されるコンピューティング・デバイス54A~Nの種類は、単なる例示であることを意図し、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続あるいはその両方を経て(例えば、ウェブ・ブラウザを用いて)、任意の種類のコンピュータ化デバイスと通信し得ると理解されたい。
【0067】
ここで
図6を参照すると、クラウド・コンピューティング環境50(
図5)によって提供される機能抽象層のセットが示されている。
図6に示されるコンポーネント、層、および機能は、単なる例示であるように意図され、本発明の実施形態はそれらに限定されないと、予め理解されたい。図示されるように、以下の層および対応する機能が提供される。
【0068】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャ・ベース・サーバ62、サーバ63、ブレード・サーバ64、記憶デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66を含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0069】
仮想化層70は、仮想エンティティの以下の例、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75が提供され得る、抽象層を提供する。
【0070】
一例では、管理層80は、後述の機能を提供し得る。リソース供給81は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソースおよび他のリソースの動的な調達を提供する。測定および価格設定82は、リソースが、クラウド・コンピューティング環境内で利用され、これらのリソースの消費に対して課金または請求されるときに、コスト追跡を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、データおよび他のリソースについての保護だけでなく、クラウド消費者およびタスクのための本人確認を提供する。ユーザ・ポータル83は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行85は、SLAに従って将来の要件が予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【0071】
ワークロード層90は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ解析処理94、トランザクション処理95、ならびにt元特徴組み合わせを用いた深層ニューラル・ネットワークにおける外れ値検出のためのシステム96を含む。
【0072】
本明細書に記載されるプログラムは、それらが発明の特定の実施形態において実施されるアプリケーションに基づいて識別される。しかしながら、本明細書における任意の特定プログラムの専門語は、単に便宜上使用され、したがって、発明は、そのような専門語によって識別され、または示唆され、あるいはその両方である任意の特定のアプリケーションにおいてのみ使用するように限定されるべきでないと理解されたい。
【0073】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施態様のアーキテクチャ、機能性、および動作を例示している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施する1つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を表し得る。いくつかの代替的な実施態様では、ブロック内に記載された機能は、図中に記載された順序以外の順序で発生し得ることにも留意されたい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組み合わせが、指定された機能もしくは動作を実行する専用ハードウェアベース・システム、または専用ハードウェアおよびコンピュータ命令の組み合わせによって実施され得ることにも留意されたい。
【0074】
本発明は、統合の任意の可能な技術的詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0075】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶し得る有形デバイスであってもよい。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述したものの任意の適当な組み合わせであってもよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはFlashメモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック(登録商標)、フロッピー(登録商標)・ディスク、パンチカードまたは命令をその上に記録させる溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の適当な組み合わせを含む。本明細書で用いられるコンピュータ可読記憶媒体は、電波もしくは他の自由伝播する電磁波、導波管もしくは他の送信媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通って送信される電気信号などの、一過性信号それ自体であると解釈されるべきではない。
【0076】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせを介して外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体の記憶用にコンピュータ可読プログラム命令を転送する。
【0077】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはSmalltalk(登録商標)、C++などのオブジェクト指向プログラム言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通してユーザのコンピュータに接続されてもよく、または、接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
【0078】
本発明の態様は、発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書に記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組み合わせが、コンピュータ可読プログラム命令によって実施され得ると理解されたい。
【0079】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施する手段を生成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、命令を記憶したコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定の方式で機能するように指示することができるものであってもよい。
【0080】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ実施プロセスを作り出すために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0081】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施態様のアーキテクチャ、機能性、および動作を例示している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替実施態様において、ブロック内に記載された機能は、図面中に記載された順序以外の順序で発生してもよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェアベース・システムによって実施され得ることにも留意されたい。
【0082】
開示された方法のステップ、ならびに開示されたシステムおよび環境のコンポーネントが、数字および文字を用いて逐次的または連続的に識別されているが、そのような採番または標記は、そのようなステップが列挙された順序で実行されなければならないことを示すものではなく、単に方法のステップの明確な参照を容易にするために提供されている。さらに、方法のステップは、それらの記載された機能性を実行するために並列で実行されてもよい。
【0083】
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示される実施形態に限定することを意図するものではない。多くの変更および変形が、説明される実施形態の範囲から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実際の用途、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書で開示された実施形態を他の当業者が理解可能にするために、選択された。