(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】モデル解釈可能性のための領域制約された正則化敵対的サンプル
(51)【国際特許分類】
G06N 3/084 20230101AFI20241112BHJP
【FI】
G06N3/084
(21)【出願番号】P 2022526490
(86)(22)【出願日】2020-10-27
(86)【国際出願番号】 IB2020060046
(87)【国際公開番号】W WO2021094859
(87)【国際公開日】2021-05-20
【審査請求日】2023-03-24
(32)【優先日】2019-11-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ラトナー,ヴァディム
(72)【発明者】
【氏名】ショーシャン,ヨエル
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2017-004509(JP,A)
【文献】国際公開第2019/170561(WO,A1)
【文献】特開2018-173814(JP,A)
【文献】米国特許出願公開第2017/0109625(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/084
(57)【特許請求の範囲】
【請求項1】
プロセッサ、前記プロセッサによってアクセス可能なメモリおよび前記メモリに格納され、前記プロセッサによって実行可能なコンピュータ・プログラム命令を含むコンピュータ・システムにおいて実装される方法であって、前記方法は、
前記コンピュータ・システムで、入力データと、前記入力データに基づいて予測を生成するための機械学習モデルとを受信するステップと、
前記コンピュータ・システムで、前記機械学習モデルのバックプロパゲーション中に無視する入力データの部分を示すマスクを生成するステップと、
前記コンピュータ・システムで、前記機械学習モデルの説明を改善することまたは前記機械学習モデルより分類されたオブジェクトの位置特定を改善することの少なくとも1つのために、生成された前記マスクを修正するステップと
を含
み、前記マスクを修正するステップは、
前記コンピュータ・システムで、前記機械学習モデルの凍結を維持したまま、前記入力データに関する損失関数の勾配を用いて前記入力データの摂動または敵対バージョンを反復的に修正するステップであって、前記入力データの前記摂動または敵対バージョンは、前記マスクにより画定された部分において不変である、修正するステップと、
前記コンピュータ・システムで、ステップ関数を滑らかに近似するように摂動のサポートを近似するサリエンシー・マスクを生成するステップと
を含む、方法。
【請求項2】
前記マスクを修正するステップは、
前記コンピュータ・システムで、生成された前記サリエンシー・マスクを前記マスクに追加することによって前記マスクを拡張し、修正されたマスクを生成するステップ
をさらに含む、請求項
1に記載の方法。
【請求項3】
前記損失関数の損失は、前記機械学習モデルのクラスのクラス値を所定の値に削減する第1項と、前記摂動のサポートのサイズを近似する第2項と、前記摂動のサポートの円滑性を促進する第3項に基づいており、非ゼロ値の連続領域を散在する個々の要素を超えて選好する、請求項
2に記載の方法。
【請求項4】
前記入力データは、画像である、請求項
3に記載の方法。
【請求項5】
前記マスクは、前記画像のピクセルの部分である、請求項
4に記載の方法。
【請求項6】
プロセッサ、前記プロセッサによってアクセス可能なメモリおよび前記メモリに格納され、前記プロセッサによって実行可能なコンピュータ・プログラム命令を含むシステムであって、
入力データと、前記入力データに基づいて予測を生成するための機械学習モデルとを受信するステップと、
前記機械学習モデルのバックプロパゲーション中に無視する入力データの部分を示すマスクを生成するステップと、
前記機械学習モデルの説明を改善することまたは前記機械学習モデルより分類されたオブジェクトの位置特定を改善することの少なくとも1つのために、生成された前記マスクを修正するステップと
を実行
し、前記マスクを修正するステップは、
前記機械学習モデルの凍結を維持したまま、前記入力データに関する損失関数の勾配を用いて前記入力データの摂動または敵対バージョンを反復的に修正するステップであって、前記入力データの前記摂動または敵対バージョンは、前記マスクにより画定された部分において不変である、修正するステップと、
ステップ関数を滑らかに近似するように摂動のサポートを近似するサリエンシー・マスクを生成するステップと
を含む、システム。
【請求項7】
前記マスクを修正するステップは、
生成された前記サリエンシー・マスクを前記マスクに追加することによって前記マスクを拡張し、修正されたマスクを生成するステップ
をさらに含む、請求項
6に記載のシステム。
【請求項8】
前記損失関数の損失は、前記機械学習モデルのクラスのクラス値を所定の値に削減する第1項と、前記摂動のサポートのサイズを近似する第2項と、前記摂動のサポートの円滑性を促進する第3項に基づいており、非ゼロ値の連続領域を散在する個々の要素を超えて選好する、請求項
7に記載のシステム。
【請求項9】
前記入力データは、画像である、請求項
8に記載のシステム。
【請求項10】
前記マスクは、前記画像のピクセルの部分である、請求項
9に記載のシステム。
【請求項11】
コンピュータ・プログラムであって、コンピュータ・システムに、
前記コンピュータ・システムで、入力データと、前記入力データに基づいて予測を生成するための機械学習モデルとを受信するステップと、
前記コンピュータ・システムで、前記機械学習モデルのバックプロパゲーション中に無視する入力データの部分を示すマスクを生成するステップと、
前記コンピュータ・システムで、前記機械学習モデルの説明を改善することまたは前記機械学習モデルより分類されたオブジェクトの位置特定を改善することの少なくとも1つのために、生成された前記マスクを修正するステップと
を実行させるための
コンピュータ・プログラムであり、前記マスクを修正するステップは、
前記コンピュータ・システムで、前記機械学習モデルの凍結を維持したまま、前記入力データに関する損失関数の勾配を用いて前記入力データの摂動または敵対バージョンを反復的に修正するステップであって、前記入力データの前記摂動または敵対バージョンは、前記マスクにより画定された部分において不変である、修正するステップと、
前記コンピュータ・システムで、ステップ関数を滑らかに近似するように摂動のサポートを近似するサリエンシー・マスクを生成するステップと
を含む、コンピュータ・プログラム。
【請求項12】
前記マスクを修正するステップは、
前記コンピュータ・システムで、生成された前記サリエンシー・マスクを前記マスクに追加することによって前記マスクを拡張し、修正されたマスクを生成するステップを含む、請求項
11に
記載のコンピュータ・プログラム。
【請求項13】
前記損失関数の損失は、前記機械学習モデルのクラスのクラス値を所定の値に削減する第1項と、前記摂動のサポートのサイズを近似する第2項と、前記摂動のサポートの円滑性を促進する第3項に基づいており、非ゼロ値の連続領域を散在する個々の要素を超えて選好する、請求項
12に
記載のコンピュータ・プログラム。
【請求項14】
前記入力データは、画像である、請求項
13に
記載のコンピュータ・プログラム。
【請求項15】
前記マスクは、前記画像のピクセルの部分である、請求項
14に
記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習モデルの出力の精度および説明品質を改善するために、最適化プロセス中に入力の部分を、バックプロパゲーション(backpropagation)中にこれらをマスキングすることによって、無視することによって、入力データの一部を排除する技術に関する。
【背景技術】
【0002】
機械学習アルゴリズムの改善が継続するのに伴って、所与のモデルがある予測を生成した理由を説明することに対する必要性が増している。このような説明の利点は、大まかに2つのカテゴリに分類され、1つは、ユーザに最終結果を説明することであり、もう1つは、研究者によるネットワークの解析である。多くの従来の説明可能性の方法は、ニューラル・ネットワークのような機械学習プロセスが所与のクラスに割り当てるスコアに影響を与える入力の部分を特定することに焦点を合わせる。この文脈では、説明に含まれ、または説明として提示される入力の領域の選択肢を制限できると有益である。このような必要性の一例は、所見を含む医用画像を解析し、偶発的、例えば、付加的、潜在的に悪性の所見を見つけることを望み、主要な発見を検討対象から除外することを望む放射線科医である。
【0003】
このような説明可能性の使用の1つは、位置情報へのアクセスを有さないにもかかわらず所与のクラスのオブジェクトを含む領域を識別することといった、教師なしセグメンテーションの使用である。しばしば、セグメンテーションされた領域は、決定に最も強く影響する部分のみのように、当のオブジェクトの小さな部分のみを含んでいる可能性がある。
【0004】
所与のモデルの予測を増加させる原因となる入力の部分を検出するための従来の技術は、典型的には、追加の制約の下、入力に関するスコアを最小化することによって機能する。しかしながら、従来の技術は、ある領域を検討対象から除去することができない。例えば、放射線科医が、ある領域が疑わしいと気づき、別の領域の寄与を分析したいといったように、ユーザが、説明からの入力の一部を除外したい場合がある。別の例は、ある小さな領域が最適化プロセスを完全に支配するような強い寄与を有し、その結果、部分的な説明のみへの収束をもたらす場合(実際には、このようなケースがほとんどである)である。
【0005】
したがって、出力の精度および説明品質を向上させるために入力の一部を除外する能力を提供する技術が求められている。
【発明の概要】
【0006】
実施形態は、出力の精度および説明品質を向上させるために、入力の一部を除外する能力を提供する技術を提供することができる。実施形態は、例えば、最適化プロセス中に入力の部分を、バックプロパゲーション中にそれらをマスキングすることによって、無視することができる。実施形態は、例えば、これまで発見された説明領域をマスクすることによって説明を漸次成長させることができる。
【0007】
例えば、一実施形態においては、方法は、プロセッサ、プロセッサによってアクセス可能なメモリおよびメモリに格納され、プロセッサによって実行可能なコンピュータ・プログラム命令を含むコンピュータ・システムにおいて実装されてもよく、方法は、コンピュータ・システムで、入力データと、入力データに基づいて予測を生成するための機械学習モデルとを受信するステップと、コンピュータ・システムで、機械学習モデルのバックプロパゲーション中に、無視する入力データの部分を示すマスクを生成するステップと、コンピュータ・システムで、機械学習モデルの予測を改善するために、生成されたマスクを修正するステップとを含んでもよい。
【0008】
実施形態において、入力データを修正するステップは、コンピュータ・システムで、機械学習モデルの凍結を維持したまま、入力データに関する損失関数の勾配を用いて入力データの摂動または敵対バージョンを反復的に修正するステップであって、入力データの摂動または敵対バージョンは、マスクにより画定された部分において不変である、修正するステップと、コンピュータ・システムで、ステップ関数を滑らかに近似するために摂動のサポートを近似するサリエンシー・マスク(saliency mask)を生成するステップとを含んでもよい。マスクを修正するステップは、コンピュータ・システムで、生成されたサリエンシー・マスクをマスクに追加することによってマスクを拡張し、修正されたマスクを生成するステップをさらに含んでもよい。損失関数は、機械学習モデルのクラスのクラス値を所定の値に削減する第1項と、摂動のサポートのサイズを近似する第2項と、摂動のサポートの円滑性を促進する第3項に基づいており、非ゼロ値の連続領域を散在する個々の要素を超えて選好してもよい。入力データは、画像であってもよい。マスクは、画像のピクセルの部分であってもよい。
【0009】
一実施形態においては、システムは、プロセッサ、プロセッサによってアクセス可能なメモリおよびメモリに格納され、プロセッサによって実行可能なコンピュータ・プログラム命令を含んでもよく、入力データと、入力データに基づいて予測を生成するための機械学習モデルとを受信することと機械学習モデルのバックプロパゲーション中に無視する入力データの部分を示すマスクを生成することと、機械学習モデルの予測を改善するために、生成されたマスクを修正することとを実行する。
【0010】
一実施形態においては、コンピュータ・プログラム製品は、具現化されたプログラム命令を有する非一時的コンピュータ可読ストレージを含んでもよく、プログラム命令は、コンピュータ・システムによって実行可能であり、コンピュータ・システムに方法を実行させるものであり、方法は、コンピュータ・システムで、入力データと、入力データに基づいて予測を生成するための機械学習モデルとを受信するステップと、コンピュータ・システムで、機械学習モデルのバックプロパゲーション中に無視する入力データの部分を示すマスクを生成するステップと、コンピュータ・システムで、機械学習モデルの予測を改善するために、生成されたマスクを修正するステップとを含む。
【0011】
本発明の詳細は、その構造および動作の両方に関して、添付図面を参照することによって最もよく理解でき、ここで、添付図面においては、同様の参照番号および名称が同様の要素を指す。
【図面の簡単な説明】
【0012】
【
図1】本システムおよび方法の実施形態が実装され得るシステムの例示的なブロック図を示す。
【
図2】本システムおよび方法の実施形態による、「マスクされた」モデルの説明または解釈の処理の一実施形態の例示的なフロー図である。
【
図3】本システムおよび方法の実施形態による説明または解釈による教師無しセグメンテーションのプロセスの一実施形態の例示的なフロー図である。
【
図4】本明細書において説明される実施形態に含まれる処理を実装し得るコンピュータ・システムの例示的なブロック図である。
【発明を実施するための形態】
【0013】
実施形態は、出力の精度および説明品質(explanatory)を向上させるために、入力の一部を除外する能力を提供する技術を提供することができる。実施形態は、例えば、最適化プロセス中、入力の部分を、バックプロパゲーション中にそれらをマスキングすることによって、無視することができる。実施形態は、例えば、これまで発見された説明領域(explanation region)をマスキングすることによって、説明(explanation)を漸次的に成長させることができる。
【0014】
図1には、システム100の例示的なブロック図が示される。この例では、1または複数の画像といった入力データ102は、複数の特徴104,106を含む可能性がある。この例では、特徴106を含む入力データ102の部分は、出力の精度および説明品質を改善するために除外されてもよい。マスク108は、特徴106を含む入力データ102の部分を除外するため、よって、特徴108を含む入力データ102の部分を含めるために使用されてもよい。入力データ102は、入力データ102に基づいて予測を生成するためにモデルに入力される。マスク生成112は、バックプロパゲーション中、マスク108を使用して入力データ102の部分をマスキングすることによって最適化プロセスを実行することができる。実施形態は、例えば、これまで発見された説明領域をマスクすることによって説明を漸次的に成長させることができる。
【0015】
実施形態は、モデル(ネットワーク)決定の説明を、決定に最も影響を与える入力の部分として提供することができる。例えば、画像である場合、画像上で決定に最も影響を与える画像の領域である。ベクトル入力の場合、ベクトル上で決定に最も影響を与えるベクトルのサブセットである。実施形態は、説明からの入力の一部を除外するメカニズムを利用することができる。実施形態は、このようなメカニズムに対するユースケースに適用されてもよい。例えば、実施形態は、ユーザが彼ら/彼女にとって自明である領域を除外することを可能にしてもよい。同様に、実施形態は、説明マスク(explanation mask)を漸次的に成長し、以前に発見された説明を除外し、これらを新しく発見されたもので増大することによって、説明可能性に基づく教師無しセグメンテーションを改善することができる。追加的にまたは代替的に、説明マスクを修正することまたは成長させることにより、学習モデルによって分類されるオブジェクトの位置特定(localization)を改善することができる。
【0016】
図2には、「マスクされた」モデルの説明または解釈(interpretation)のプロセス200の一実施形態の例示的なフロー図が示される。この例においては、プロセス200への入力は、既存の「無視」マスクK、モデルM、入力画像IおよびクラスCを含んでもよい。画像変数I^は、画像の摂動バージョンまたは敵対バージョンを表し得る。プロセス200は、202で開始されてもよく、ここでは、画像変数I^が入力画像Iに初期化され得る。ステップ204では、モデルMが凍結されたまま、入力に対する損失関数Eの勾配を用いて変数I^が反復的に修正されてもよい。損失関数Eは、(1)クラスIのクラス値を所与の値sに削減する第1項と、(2)摂動のサポートの大きさを近似する第2項と、(3)摂動のサポートの円滑性を促進する第3項とを含むように定義されてもよく、ここで、非ゼロ値の連続領域を散在する個々の要素(画像の場合はピクセル)を超えて選好する。実施形態は、例えば、SDG、Adam、AdaDeltaなどを含む任意の勾配ベースのオプティマイザを使用することができる。
【0017】
ステップ206において、画像変数I^は、「無視」マスクにわたり不変に維持される、つまり、Kによって画定される領域(「無視」領域)においてIに等しい、との制約がなれてもよい。画像変数I^は、例えばその値をクリッピングすることによって、入力がサンプリングされる元の適用可能な値の範囲に留まるように制約されてもよい。ステップ208において、所定数の反復よりも少ない回数が実行され、かつ、収束に達していない場合は、プロセス200は、204に行き、追加の反復を実行してもよい。ステップ208において、所定数の反復が実行されたか、または、収束が達成された場合は、ステップ210において、ゼロでSを閾値処理することによってサリエンシー・マスクが導出されてもよい。サリエンシー・マスクは、モデルの説明または解釈のために使用されるべき画像の領域を画定する。Sは、ステップ関数を滑らかに近似したやり方で摂動のサポートの近似として定義されてもよい。Sは、小さな値でゼロ下に降下してもよく、これは、スパースシティ(sparsity)を促進する可能性がある。摂動は、元の入力Iと画像変数I^におけると摂動バージョンまたは敵対バージョンとの間のデルタ(delta)であると定義されてもよい。
【0018】
図3は、説明または解釈による教師なしセグメンテーションのプロセス300の実施形態の例示的なフロー図を示す。この例では、プロセス300への入力は、モデルMと、入力画像Iと、クラスCとを含んでもよい。プロセス300は、302から開始してもよく、ここでは、無視マスクKがゼロに設定されてもよい。ステップ304では、入力K=0、M、IおよびCとともに処理200を用いて、説明または解釈が計算されて、マスクされた説明(Masked Explanation)を生成し、サリエンシー・マスクKsをもたらし得る。306においては、K:=K ∪ Ksに従って、KsがKに追加されてもよい。ステップ308においては、所定数の反復よりも少ない回数が実行され、かつ、収束に達していない場合、プロセス300は、304に進み、304および306の追加の反復を実行してもよい。ステップ308においては、所定の数の反復が実行されたか、あるいは、収束が達成された場合は、ステップ310において、Kが、新しいセグメンテーション・マスクとして返されてもよい。
【0019】
図4は、本明細書で説明される実施形態に含まれるプロセスが実装され得るコンピュータ・システム400の例示的なブロック図を示す。コンピュータ・システム400は、埋め込みプロセッサ、システム・オン・チップ、パーソナル・コンピュータ、ワークステーション、サーバ・システムおよびミニコンピュータ、メインフレーム・コンピュータ、または、分散型、ネットワーク型コンピューティング環境において実装されてもよい。コンピュータ・システム400は、1または複数のプロセッサ(CPU)402A‐402Nと、入力/出力回路404と、ネットワーク・アダプタ406と、メモリ408とを含んでもよい。CPU402A~402Nは、本通信システムおよび方法の機能を実現するためにプログラム命令を実行する。典型的には、CPU402A~402Nは、Intel(登録商標)Core(登録商標)プロセッサのような1または複数のマイクロプロセッサである。
図4は、コンピュータ・システム400が単一のマルチプロセッサ・コンピュータ・システムとして実現される実施形態を示し、ここでは、複数のプロセッサ402A-402Nが、メモリ408、入力出力回路404およびネットワーク・アダプタ406などのシステム・リソースを共有する。しかしながら、本通信システムおよび方法は、コンピュータ・システム400が、単一プロセッサ・コンピュータ・システム、マルチプロセッサ・コンピュータ・システムまたはそれらの混合であってもよい複数のネットワーク化されたコンピュータ・システムとして実装される実施形態を含む。
【0020】
入力/出力回路404は、コンピュータ・システム400へデータを入力し、またはコンピュータ・システム400からデータを出力する能力を提供する。例えば、入力/出力回路は、キーボード、マウス、タッチパッド、トラックボール、スキャナ、アナログ・デジタル・コンバータなどの入力デバイス、ビデオアダプタ、モニタ、プリンタなどの出力デバイス、モデムなどの入力/出力デバイスを含んでもよい。ネットワーク・アダプタ406は、デバイス400をネットワーク410にインタフェースすることができる。ネットワーク410は、インターネットに限定されるものではないが、インターネットを含む任意の公衆または専用のLANまたはWANとすることができる。
【0021】
メモリ408は、CPU402によって、コンピュータ・システム400の機能を実行するために、実行されるプログラム命令および使用され、処理されるデータを格納する。メモリ408は、例えば、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、プログラマブル・リード・オンリー(PROM)、電気的に消去可能なプログラマブル・リード・オンリー・メモリ(EEPROM)、フラッシュ・メモリなどの電気的メモリ・デバイス、および、磁気ディスク・ドライブ、テープ・ドライブ、光ディスク・ドライブなどの電気機械的メモリを含んでもよく、これらは、IDE(Integrated Drive Electronics)インタフェースや、EIDE(Enhanced IDE)、UDMA(Ultra Direct Memory Access)などIDEの変形または拡張、または、Fast SCSI、Wide SCSI、Fast WideSCSIなどのSCSI(Small Computer System Interface)ベースのインタフェースやその変形または拡張、または、SATA(Serial Advanced Technology Attachment)、またはSATAの変形または拡張、または、FC-AL(Fiber Channel Arbitrated Loop)インタフェースを含む。
【0022】
メモリ408の内容は、コンピュータ・システム400が実行するようプログラムされた機能に依存して変化する可能性がある。
図4に示す例では、上述したプロセスの実施形態のルーチンおよびデータを示す例示的なメモリの内容が示されている。しかしながら、当業者であれば、これらのルーチンは、これらのルーチンに関連するメモリの内容と共に、1つのシステムまたはデバイスに含まれていなくてもよく、むしろ、良く知られたエンジニアリング上の考慮に基づいて、複数のシステムまたはデバイスの間で分散されてもよいことを認識するであろう。本システムおよび方法は、そのような配置の任意のものおよびすべてを含んでよい。
【0023】
図4に示す例では、メモリ408は、マスクされたモデル・ルーチン412、セグメンテーション・ルーチン414、モデル416、入力データ418、出力マスク420およびオペレーティング・システム422を含んでもよい。メッセージ収集ルーチン412は、上述のように、出力マスク420に含まれ得る、マスクされたモデル・サリエンシー・マスクを生成するためのソフトウェア・ルーチンを含んでもよい。セグメンテーション・ルーチン414は、上述したように、出力マスク420に含まれ得る、教師なしセグメンテーション・マスクを生成するためのソフトウェア・ルーチンを含んでもよい。モデル416は、上述したように、ニューラル・ネットワークなどの機械学習モデリングを実行するためのソフトウェア・ルーチンおよびデータを含んでもよい。入力データ418は、上述したように、出力マスク420を使用してモデル416によって処理される画像または他のデータのようなデータを含んでもよい。オペレーティング・システム422は、システム全体の機能性を提供してもよい。
【0024】
図4に示されるように、本通信システムおよび方法は、マルチプロセッサ、マルチタスク、マルチプロセスもしくはマルチスレッド・コンピューティングまたはその組み合わせを提供する1または複数のシステム上での実装、並びに、シングル・プロセッサ、シングル・スレッド・コンピューティングのみを提供するシステム上での実装とを含んでもよい。マルチプロセッサ・コンピューティングは、1より多いプロセッサを使用してコンピューティングを実行することを含む。マルチタスク・コンピューティングは、1より多いオペレーティング・システム・タスクを使用してコンピューティングを実行することを含む。タスクは、実行されるプログラムおよびオペレーティング・システムによって使用されるブックキーピング情報の組み合わせを参照する、オペレーティング・システムのコンセプトである。プログラムが実行されるたびに、オペレーティング・システムは、そのための新しいタスクを作成する。タスクは、プログラム用の封筒(envelope,エンベロープ)のようなもので、プログラムをタスク番号で識別し、それに他のブックキーピング情報を付加する。Linux(登録商標)、UNIX(登録商標)、OS/2(登録商標)およびWindows(登録商標)を含む多くのオペレーティング・システムは、多数のタスクを同時に実行することが可能であり、マルチタスク・オペレーティング・システムと参照される。マルチタスクは、オペレーティング・システムが同時に1より大きい実行ファイルを実行する能力である。実行ファイル各々は、自身のアドレス空間内で実行され、これは、実行ファイルが、それらのメモリの任意のものを共有する方法を有していないことを意味する。これは、プログラムが、システム上で実行される他のプログラムの任意のものの実行を害することが不可能であるため、利点を有する。しかしながら、プログラムは、オペレーティング・システムを介すること(またはファイル・システムに格納されているファイルを読み出すこと)を除き、任意の情報を交換する方法を有していない。マルチプロセス・コンピューティングは、用語タスクおよびプロセスがしばしば同義に使用されるため、マルチタスク・コンピューティングと類似しているが、いくつかのオペレーティング・システムは、2つの間を区別する。
【0025】
本発明は、任意の統合の可能な技術的な詳細のレベルでのシステム、方法もしくはコンピュータ・プログラム製品またはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の側面を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含んでもよい。コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。
【0026】
コンピュータ可読ストレージ媒体は、例えば、これに限定されるものではないが、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のより具体的な例示の例示列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック、フロッピー(登録商標)ディスク、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
【0027】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータ/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組み合わせといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバまたはその組み合わせを含んでもよい。各コンピュータ/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0028】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたソース・コードあるいはオブジェクト・コードであってよく、1以上のプログラミング言語は、Smalltalk(登録商標)、C++またはこれらに類するもなどのオブジェクト指向言語、Cプログラミング言語または類似のプログラミング言語などの手続型言語を含む。コンピュータ可読プログラム命令は、スタンド・アローンのソフトウェア・パッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、遠隔のコンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータになされてもよい。いくつかの実施形態においては、電気的回路は、本発明の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよく、この電気的回路は、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む。
【0029】
本発明の側面は、本明細書において、本発明の実施形態に従った方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されてもよいことが理解されよう。
【0030】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特定用途コンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供され、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行される命令が、フローチャート図もしくはブロックまたはその両方のブロックまたは複数のブロックにおいて特定される機能/作用を実装するための手段を作成するように、マシンを生成する。これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置もしくは他のデバイスまたはその組み合わせに特定のやり方で機能するよう指示できるコンピュータ可読ストレージ媒体に格納され、それに格納された命令を有するコンピュータ可読ストレージ媒体に、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装する命令を含む製品が含まれるようにする。
【0031】
コンピュータ可読プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で実行される命令が、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装するように、コンピュータ実装処理を生成することもできる。
【0032】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に従ったシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、特定の論理機能を実装するための1以上の実行可能な命令を含む、モジュール、セグメントまたは命令の部分を表す可能性がある。いくつかの代替の実装では、ブロックにおいて言及された機能は、図面に示された順序から外れて生じる可能性がある。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行されてもよく、あるいは、複数のブロックは、関与する機能性に応じて逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその両方の各ブロックおよびブロック図もしくはフローチャート図またはその両方の複数のブロックの組み合わせが、特定の機能または作用を実行し、または、特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実施する、特定目的ハードウェアベースのシステムによって実装されてもよいことに留意されたい。
【0033】
本発明の特定の実施形態を説明したが、当業者であれば記載された実施形態と等価な他の実施形態が存在することが理解されよう。従って、本発明は、特定の図示された実施形態に限定されるものではなく、添付の特許請求の範囲によってのみ限定されることが理解されるべきである。