(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-10
(45)【発行日】2024-10-21
(54)【発明の名称】効率的なグランド・トゥルースの注釈付与
(51)【国際特許分類】
G06N 20/00 20190101AFI20241011BHJP
G06N 3/0455 20230101ALI20241011BHJP
【FI】
G06N20/00 130
G06N3/0455
(21)【出願番号】P 2022549620
(86)(22)【出願日】2021-01-28
(86)【国際出願番号】 IB2021050648
(87)【国際公開番号】W WO2021176282
(87)【国際公開日】2021-09-10
【審査請求日】2023-06-22
(32)【優先日】2020-03-06
(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)【発明者】
【氏名】ドルフィ、ミシェル
(72)【発明者】
【氏名】アウアー、クリストフ
(72)【発明者】
【氏名】ゲオルゴポウロス、レオニダス
(72)【発明者】
【氏名】カエストナー、ラルフ
(72)【発明者】
【氏名】ヴェリゼフ、アレクサンダー
(72)【発明者】
【氏名】ノゲール ヒダルゴ、ダル
(72)【発明者】
【氏名】クネトソヴァ、リタ
(72)【発明者】
【氏名】ビカス、コンスタンティノス
【審査官】佐藤 直樹
(56)【参考文献】
【文献】米国特許出願公開第2019/0385059(US,A1)
【文献】米国特許出願公開第2014/0376804(US,A1)
【文献】特開2019-220104(JP,A)
【文献】特開2014-235723(JP,A)
【文献】米国特許出願公開第2017/0351681(US,A1)
【文献】木本 智幸,変分オートエンコーダを用いた半教師あり学習による地中レーダ画像からの埋設物識別,電子情報通信学会技術研究報告 Vol.119 No.407,日本,一般社団法人電子情報通信学会,2020年01月23日,第119巻,pp.7-12
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/0455
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
データ・サンプルのセットを含むトレーニング・データセットを提供することと、
分類器を包含するオートエンコーダを提供することと、
前記オートエンコーダの埋め込みモデルの初期トレーニングを実行することであって、前記埋め込みモデルが、前記データ・サンプルのセットを、特徴要素を含む圧縮された特徴ベクトルのセットにマッピングするように構成され、前記圧縮された特徴ベクトルのセットが、前記データ・サンプルのセットの圧縮された特徴行列を定義する、前記実行することと、
前記圧縮された特徴行列に関連付けられたグラフの定義を提供することと、
クラスタ化アルゴリズムを適用して、前記グラフの1つまたは複数のノード・クラスタを識別することと、
中心性アルゴリズムを適用して、前記1つまたは複数のノード・クラスタの1つまたは複数の中央ノードを識別することと、
アノテータから、前記1つまたは複数のノード・クラスタの前記1つまたは複数の中央ノードの1つまたは複数のノード・ラベルを取得し、それによって、注釈付きノード・ラベルを作成することと、
前記1つまたは複数の中央ノードの前記注釈付きノード・ラベルを前記グラフの他のノードに伝搬し、それによって、伝搬されたノード・ラベルを作成することと、
前記オートエンコーダのさらなるトレーニングを実行することであって、前記さらなるトレーニングが、
前記注釈付きノード・ラベルおよび前記伝搬されたノード・ラベルを使用して前記オートエンコーダの前記埋め込みモデルおよび前記オートエンコーダの前記分類器をトレーニングすることを含み、前記分類器が、前記圧縮された特徴ベクトルの前記要素の前記1つまたは複数のノード・ラベルを予測するように構成される、前記さらなるトレーニングを実行することと
を含む、コンピュータ実装方法。
【請求項2】
前記方法が、
1つまたは複数の反復回において、前記クラスタ化アルゴリズムを適用すること、前記中心性アルゴリズムを適用すること、前記注釈付きラベルを伝搬すること、および前記オートエンコーダの前記さらなるトレーニングを実行することを、収束するまで繰り返すことをさらに含む、請求項1に記載の方法。
【請求項3】
収束する前の最後の反復回の前記1つまたは複数のノード・ラベルを、注釈が付けられ
た対象項目のセットとして出力することをさらに含む、請求項2に記載の方法。
【請求項4】
前記方法が、
1つまたは複数のアノテータから、前記1つまたは複数のノード・クラスタの前記1つまたは複数の中央ノードのノード・ラベルを取得することを繰り返すことをさらに含む、請求項1に記載の方法。
【請求項5】
前記グラフが隣接行列によって定義され、前記隣接行列が、前記圧縮された特徴行列および前記圧縮された特徴行列の転置の積である、請求項1に記載の方法。
【請求項6】
前記クラスタ化アルゴリズムを適用することが、グラフに基づくクラスタ化アルゴリズムを適用することを含む、請求項1に記載の方法。
【請求項7】
前記中心性アルゴリズムを適用することが、グラフに基づく中心性アルゴリズムを適用することを含む、請求項1に記載の方法。
【請求項8】
前記グラフに基づくクラスタ化アルゴリズムが、
kスパニング・ツリーまたは最小スパニング・ツリー・アルゴリズム、
共有最近傍アルゴリズム、
媒介中心性に基づくアルゴリズム、および
スペクトル・クラスタ化アルゴリズムから成る群から選択される、請求項6に記載の方法。
【請求項9】
前記グラフに基づく中心性アルゴリズムが、
行列指数関数および前記
グラフを定義する隣接行列のランダムなプローブ・ベクトルの積を近似することと、
前記行列指数関数および前記ランダムなプローブ・ベクトルの前記積に基づいて前記隣接行列の対角成分を計算することと、
事前に定義された数の前記1つまたは複数の中央ノードが検出されるまで、前記計算された対角成分に基づいてノードの中心性を計算することとを含む、請求項7に記載の方法。
【請求項10】
前記方法が、
1つまたは複数の境界ノードを識別することをさらに含み、前記境界ノードが、2つの前記クラスタ間の境界にあるノードとして定義される、請求項1に記載の方法。
【請求項11】
前記方法が、
1つまたは複数のアノテータから、前記1つまたは複数の境界ノードのノード・ラベルを取得することをさらに含む、請求項10に記載の方法。
【請求項12】
前記方法が、
前記1つまたは複数のクラスタの1つまたは複数の最も遠いノードを識別することをさらに含む、請求項1に記載の方法。
【請求項13】
前記方法が、
1つまたは複数のアノテータから、前記1つまたは複数のクラスタの1つまたは複数の最も遠いノードのノード・ラベルを取得することをさらに含む、請求項12に記載の方法。
【請求項14】
前記注釈付きノード・ラベルを伝搬するステップが、伝搬関数を前記注釈付きノード・ラベルに適用することを含み、前記伝搬関数が前記
グラフを定義する隣接行列の関数である、請求項1に記載の方法。
【請求項15】
前記伝搬関数が、チェビシェフ展開f(X)=Σ
j=0c
jP
j(x)として定義され、P
jがj番目のチェビシェフ多項式である、請求項14に記載の方法。
【請求項16】
前記注釈が付けられた対象項目のセットを含むトレーニング・データを使用して機械学習アプリケーションの認知モデルをトレーニングすることをさらに含む、請求項3に記載の方法。
【請求項17】
前記機械学習アプリケーションが深層学習アプリケーションである、請求項
16に記載の方法。
【請求項18】
コンピュータに請求項1ないし
17のいずれか1項に記載の方法を実行させるためのプログラム。
【請求項19】
請求項
18に記載のプログラムを格納した、コンピュータ可読な記録媒体。
【請求項20】
コンピュータ可読命令を実行するための1つまたは複数のプロセッサを備えているシステムであって、前記コンピュータ可読命令が、前記1つまたは複数のプロセッサを制御して、請求項1ないし
17のいずれか1項に記載の方法における各動作を実行させる、
コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習アプリケーションをトレーニングするために注釈が付けられる対象項目のセットを決定するためのコンピュータ実装方法に関する。
【0002】
本発明は、対応するシステムおよび対応するコンピュータ・プログラム製品にさらに関する。
【背景技術】
【0003】
現在の教師あり機械学習アルゴリズムは、非常にデータハングリーであることがあり、すなわち、トレーニングに成功するために大量の注釈付きデータを必要とすることがある。これは、ほとんどの産業が大規模な注釈付きデータセットを維持しておらず、大規模なデータセットに注釈を付けるコストが、資格のある主題専門家の必要性に起因して高額になることが多いため、産業環境におけるそのようなアルゴリズムのアプリケーションにとって問題になることがある。そのような注釈付きトレーニング・データは、グランド・トゥルースと呼ばれることもある。
【0004】
したがって、そのようなグランド・トゥルースを効率的な方法で生成すること、特に、そのようなグランド・トゥルースを大規模なデータセットから生成することを容易にする方法に対する必要性が存在する。
【発明の概要】
【0005】
実施形態によれば、本発明は、機械学習アプリケーションをトレーニングするために注釈が付けられる対象項目のセットを決定するためのコンピュータ実装方法として具現化される。この方法は、データ・サンプルのセットを含むトレーニング・データセットを提供することを含む。データ・サンプルのセットは、ピクセルなどの複数のデータ項目を含む。この方法は、オートエンコーダを提供することをさらに含む。オートエンコーダは、分類器を包含する。この方法は、オートエンコーダの埋め込みモデルの初期トレーニングを実行することを含み、埋め込みモデルは、データ・サンプルのセットを圧縮された特徴ベクトルのセットにマッピングするように構成される。特徴ベクトルは、特徴要素を含む。圧縮された特徴ベクトルのセットは、データ・サンプルのセットの圧縮された特徴行列を定義する。この方法は、圧縮された特徴行列に関連付けられたグラフの定義を提供することと、クラスタ化アルゴリズムを適用して、グラフの1つまたは複数のノード・クラスタを識別することと、中心性アルゴリズムを適用して、1つまたは複数のノード・クラスタの1つまたは複数の中央ノードを識別することとを含む。この方法は、アノテータから、1つまたは複数のノード・クラスタの1つまたは複数の中央ノードの1つまたは複数のノード・ラベルを取得することを含む。これによって、注釈付きノード・ラベルを作成する。
【0006】
この方法は、1つまたは複数の中央ノードの注釈付きノード・ラベルをグラフの他のノードに伝搬し、それによって、伝搬されたノード・ラベルを作成し、オートエンコーダのさらなるトレーニングを実行することを含む。オートエンコーダのさらなるトレーニングは、注釈付きノード・ラベルおよび伝搬されたノード・ラベルを使用してオートエンコーダの埋め込みモデルおよびオートエンコーダの分類器をトレーニングすることを含む。分類器は、圧縮された特徴ベクトルの要素の1つまたは複数のノード・ラベルを予測するように構成される。
【0007】
そのような具現化された方法は、高度な方法でグランド・トゥルースを生成することを可能にし得る。
【0008】
特に、本発明の実施形態による方法は、機械学習アプリケーションを効率的な方法で、特に、許容できる正確さ、再現率、または精度、あるいはその組合せで、トレーニングするために、注釈を付けるべきであるデータ・サンプルのセットの1つまたは複数の対象項目を決定してよい。1つまたは複数の対象項目は、実施形態によれば、データ・サンプルのセットの制限された項目のセットを定める。実施形態によれば、「制限された」とは、データ項目のセット全体と比較して、少数または極少数のデータ項目のみに注釈が付けられる必要があるということを意味するものとする。したがって、本発明の実施形態による方法は、注釈が付けられるべきであるトレーニング・データセットの最も関連するデータ項目を自動的に決定することを容易にし得る。
【0009】
実施形態によれば、この方法は、1つまたは複数の反復回において、クラスタ化アルゴリズムの適用、中心性アルゴリズムの適用、注釈付きラベルの伝搬、およびオートエンコーダのさらなるトレーニングの実行を、収束するまで繰り返すことをさらに含む。
【0010】
上記の収束するまでの反復の繰り返しは、クラスタの中央ノードおよびその注釈が正しく選択されたことを検証するために使用される。実施形態によれば、収束は、1つまたは複数の事前に定義された基準に従って、トレーニングされた埋め込みモデルがそれ以上変化しないということを意味するものとする。
【0011】
実施形態によれば、この方法は、収束する前の最後の反復回の1つまたは複数のノード・ラベルを、注釈が付けられる対象項目のセットとして出力することをさらに含む。出力されたラベルは、有利なトレーニング・データセットを生成するために人間のアノテータによって注釈が付けられるべきである、トレーニング・データセット内の対象項目のセットを定める。これに関して、有利なトレーニング・データセットは、特に、各機械学習アプリケーションの良いトレーニング結果をもたらすトレーニング・データセットとして理解されるものとする。
【0012】
実施形態によれば、この方法は、1つまたは複数のアノテータから、1つまたは複数のクラスタの1つまたは複数の中央ノードのノード・ラベルを取得することを繰り返すことをさらに含む。そのような取得の繰り返しは、一方で、以前の注釈の確認を得るために使用され得る。さらに、反復回中に、決定されたノード・クラスタが事前に定義された範囲内で変化した場合に、アノテータから追加のフィードバックを得ることは、特に有用であることがある。
【0013】
圧縮された特徴行列に関連付けられたグラフの定義は、圧縮された特徴行列を分析するためのグラフに基づく分析の使用を容易にする。実施形態によれば、グラフは、隣接行列によって定義される。隣接行列は、圧縮された特徴行列および圧縮された特徴行列の転置の積として定義される。
【0014】
実施形態によれば、クラスタ化アルゴリズムを適用することは、グラフに基づくクラスタ化アルゴリズムを適用することを含む。そのようなグラフに基づくクラスタ化アルゴリズムは、グラフのクラスタを効率的な方法で識別するために使用され得る。複数のグラフに基づくクラスタ化アルゴリズムが当業者に知られており、それらのアルゴリズムが、各トレーニング・データセットに基づいて実施形態に従って選択され得る。特に適しているグラフに基づくクラスタ化アルゴリズムは、kスパニング・ツリーまたは最小スパニング・ツリー・アルゴリズム、共有最近傍アルゴリズム、媒介中心性に基づくアルゴリズム、またはスペクトル・クラスタ化アルゴリズムを含む。
【0015】
実施形態によれば、中心性アルゴリズムを適用することは、グラフに基づく中心性アルゴリズムを適用することを含む。そのようなグラフに基づく中心性アルゴリズムは、グラフのクラスタの中央ノードを効率的な方法で識別するために使用され得る。複数のグラフに基づく中心性アルゴリズムが当業者に知られており、それらのアルゴリズムが、各トレーニング・データセットおよびグラフのクラスタに基づいて実施形態に従って選択され得る。1つの特に適しているグラフに基づく中心性アルゴリズムは、行列指数関数および隣接行列のランダムなプローブ・ベクトルの積を近似することと、行列指数関数およびランダムなプローブ・ベクトルの積に基づいて隣接行列の対角成分を計算することと、事前に定義された数の1つまたは複数の中央ノードが検出されるまで、計算された対角成分に基づいてノードの中心性を計算することとを含む。
【0016】
別の実施形態によれば、機械学習アプリケーションを実行するコンピュータ実装方法を実行するためのシステムが提供される。このシステムは、プロセッサおよびコンピュータ可読メモリを備える。このシステムは、データ・サンプルのセットを含むトレーニング・データセットを提供することと、分類器を包含するオートエンコーダを提供することと、オートエンコーダの埋め込みモデルの初期トレーニングを実行することとを行うように構成される。埋め込みモデルは、データ・サンプルのセットを、特徴要素を含む圧縮された特徴ベクトルのセットにマッピングするように構成される。圧縮された特徴ベクトルのセットは、データ・サンプルのセットの圧縮された特徴行列を定義する。このシステムは、圧縮された特徴行列に関連付けられたグラフの定義を提供することと、クラスタ化アルゴリズムを適用して、グラフの1つまたは複数のノード・クラスタを識別することと、中心性アルゴリズムを適用して、1つまたは複数のノード・クラスタの1つまたは複数の中央ノードを識別することと、アノテータから、1つまたは複数のノード・クラスタの1つまたは複数の中央ノードの1つまたは複数のノード・ラベルを取得することとを行うようにさらに構成される。これによって、注釈付きノード・ラベルを作成する。このシステムは、1つまたは複数の中央ノードの注釈付きノード・ラベルをグラフの他のノードに伝搬し、それによって、伝搬されたノード・ラベルを作成するようにさらに構成される。このシステムは、オートエンコーダのさらなるトレーニングを実行するようにさらに構成される。さらなるトレーニングは、注釈付きノード・ラベルおよび伝搬されたノード・ラベルを使用してオートエンコーダの埋め込みモデルおよびオートエンコーダの分類器をトレーニングすることを含み、分類器は、圧縮された特徴ベクトルの要素の1つまたは複数のノード・ラベルを予測するように構成される。
【0017】
別の実施形態によれば、プロセッサおよびコンピュータ可読メモリを備えているシステムによって機械学習アプリケーションをトレーニングするために注釈が付けられる対象項目のセットを決定するためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備え、プログラム命令は、システムによって実行可能であり、システムに、データ・サンプルのセットを含むトレーニング・データセットを提供することを含む方法を実行させる。データ・サンプルのセットは、ピクセルなどの複数のデータ項目を含む。この方法は、オートエンコーダを提供することをさらに含む。オートエンコーダは、分類器を包含する。この方法は、オートエンコーダの埋め込みモデルの初期トレーニングを実行することを含み、埋め込みモデルは、データ・サンプルのセットを圧縮された特徴ベクトルのセットにマッピングするように構成される。特徴ベクトルは、特徴要素を含む。圧縮された特徴ベクトルのセットは、データ・サンプルのセットの圧縮された特徴行列を定義する。この方法は、圧縮された特徴行列に関連付けられたグラフの定義を提供することと、クラスタ化アルゴリズムを適用して、グラフの1つまたは複数のノード・クラスタを識別することと、中心性アルゴリズムを適用して、1つまたは複数のノード・クラスタの1つまたは複数の中央ノードを識別することとを含む。この方法は、アノテータから、1つまたは複数のノード・クラスタの1つまたは複数の中央ノードの1つまたは複数のノード・ラベルを取得することを含む。これによって、注釈付きノード・ラベルを作成する。この方法は、1つまたは複数の中央ノードの注釈付きノード・ラベルをグラフの他のノードに伝搬し、それによって、伝搬されたノード・ラベルを作成し、オートエンコーダのさらなるトレーニングを実行することを含む。オートエンコーダのさらなるトレーニングは、注釈付きノード・ラベルおよび伝搬されたノード・ラベルを使用してオートエンコーダの埋め込みモデルおよびオートエンコーダの分類器をトレーニングすることを含む。分類器は、圧縮された特徴ベクトルの要素の1つまたは複数のノード・ラベルを予測するように構成される。
【0018】
別の実施形態によれば、機械学習アプリケーションをトレーニングするためのコンピュータ実装方法が提供される。この方法は、データ・サンプルのセットおよび注釈が付けられる対象項目のセットを含むトレーニング・データセットをアノテータに提供することと、注釈付き対象項目を含むトレーニング・データセットを受信することと、注釈付き対象項目を含むトレーニング・データを使用して機械学習アプリケーションの認知モデルをトレーニングすることとを含む。さらなる実施形態は、機械学習アプリケーションをトレーニングするための方法によって取得可能なトレーニング・データセット、および機械学習アプリケーションをトレーニングするための方法によって取得可能な認知モデルに関連する。
【0019】
本発明の実施形態は、実例および非限定的な例として添付の図面を参照して、下でさらに詳細に説明される。
【図面の簡単な説明】
【0020】
【
図1a】本発明の実施形態によるコンピュータ実装方法を示す図である。
【
図1b】本発明の実施形態によるコンピュータ実装方法を示す図である。
【
図1c】本発明の実施形態によるコンピュータ実装方法を示す図である。
【
図2a】
図1a、1b、および1cに示された方法に対応するフロー・チャートを示す図である。
【
図2b】トレーニング・データセットを使用して機械学習アプリケーションをトレーニングするためのコンピュータ実装方法を示す図である。
【
図2c】機械学習アプリケーションを実行するためのコンピュータ実装方法を示す図である。
【
図3】
図1a、1b、1cならびに
図2a、2b、および2cに示されたコンピュータ実装方法を実行するために使用され得るコンピューティング・システムの概略ブロック図を示す図である。
【
図4】トレーニング中にオートエンコーダによって実行されるマッピングを示す図である。
【
図5】本発明の実施形態によるオートエンコーダの例示的なブロック図を示す図である。
【
図6】本発明の実施形態によるコンピュータ実装方法が適用されるべきであるグラフを示す図である。
【
図7】本発明の実施形態によるサーバのさらに詳細なブロック図を示す図である。
【発明を実施するための形態】
【0021】
図1~7を参照して、本発明の実施形態の一般的な用語が説明される。
【0022】
グランド・トゥルースという用語は、推定によって提供される情報とは対照的に、一般に、直接的観察(すなわち、経験的証拠)によって提供される情報のことを指すことがある。
【0023】
本発明の実施形態は、機械学習アルゴリズムおよび機械学習アプリケーション用のトレーニング・データおよびグランド・トゥルースを効率的な方法で生成するためのコンピュータ実装方法を提供する。
【0024】
グラフ理論は、オブジェクト間の対関係をモデル化するために使用される数学的構造であるグラフの研究である。この文脈において、グラフは、頂点またはノードおよび頂点またはノードを接続するエッジと呼ばれる線で構成される。グラフは、物理的システム、生物学的システム、社会システム、および情報システムにおいて、多くの種類の関係およびプロセス動力学をモデル化するための応用において広く使用されている。したがって、現在の技術的応用、科学的応用、およびビジネス上の応用における多くの現実的問題は、通常、グラフによって表される。
【0025】
ノードの中心性は、ネットワークまたはグラフ全体の中でのノードの相対的重要性を決定するために広く使用されている評価基準である。ノードの中心性は、例えば、インフルエンサーを理解するため、またはホット・スポット・リンクを見つけるために、複雑なネットワーク内でどのノードが重要であるかを決定するために使用されることがある。例えば、ノードの中心性は、ある人がソーシャル・ネットワーク内でどの程度影響力があるか、あるいは空間構文の理論において、ある部屋が建物内でどの程度重要であるか、またはある道路が都市道路網内でどの程度よく使用されているかを決定するために使用されることが多い。
【0026】
図1a、1b、および1cは、本発明の実施形態によるコンピュータ実装方法を示している。
【0027】
図2aは、
図1a、1b、および1cに示された方法に対応するフロー・チャートを示している。
図3は、
図1a、1b、1c、および
図2aに示されたコンピュータ実装方法を実行するために使用され得るコンピューティング・システムの概略ブロック図を示している。
【0028】
最初に
図3を参照すると、
図3は、機械学習アプリケーション・プログラム(MLAP:machine learning application program)311、アプリケーション・プログラムをトレーニングするための機械学習トレーニング・プログラム(MLTP:machine learning training program)312、および機械学習アプリケーション用のトレーニング・データセットを効率的な方法で生成するために注釈が付けられるべき大規模なデータセットの対象項目を決定するための対象項目決定プログラム(TIDP:target item determination program)313を実行するように構成されたサーバ310を備えているコンピューティング・システム300を示している。機械学習アプリケーション311は、特に、深層学習アプリケーションであってよい。
【0029】
サーバ310は、データベース320と結合される。データベース320は、1つまたは複数のデータセット、特に、大規模なデータセットを格納するためのストレージ321を備える。ストレージ321に格納されるデータセットは、特に、それまで注釈が付けられなかったデータセットであってよい。したがって、ストレージ321に格納されるデータセットは、初期データセット、未加工のデータセット、または初期トレーニング・データセットとして示されてもよい。データセットの各々は、複数のデータ・サンプルを含んでよい。複数のデータ・サンプルは、例えば、さまざまな種類の画像(例えば、{猫、犬}、{折れ線グラフ、散布図、ヒストグラム、地質図})、またはテキスト(文、パラグラフ、フルテキスト)を包含してよい。複数のデータ・サンプルの各々は、複数のデータ項目(例えば、複数のピクセル)を含んでよい。
【0030】
データベース320は、トレーニング・データセットを格納するためのストレージ322をさらに備えている。トレーニング・データセットは、初期データセットまたは未加工のデータセットの複数のデータ・サンプル内の1つまたは複数の対象項目の注釈によって、初期データセットまたは未加工のデータセットから得られてよい。
【0031】
システム300は、スキャニング・マシン330をさらに備えている。スキャニング・マシン330は、スキャニング機能および印刷機能を提供し得る。したがって、スキャニング・マシン330は、スキャニング/印刷マシンとして示されてもよい。システム300は、ユーザ・デバイス340をさらに備えている。ユーザ・デバイス340は、システム300のユーザにユーザ・インターフェイスを提供するために、ディスプレイおよびキーボードなどのユーザ入力手段を備えてよい。ユーザ・デバイス340は、特に、サーバ310上で実行されているプログラム311、312、および313にインターフェイスを提供するように適応されたアプリケーション・プログラミング・インターフェイス(API:application programming interface)341を備えてよい。
【0032】
サーバ310、スキャニング・マシン330、およびユーザ・デバイス340は、ネットワーク350に結合され、ネットワーク350を介して互いに通信してよい。ネットワーク350は、ローカル・エリア・ネットワーク(LAN:local area network)、一般的な広域ネットワーク(WAN:wide area network)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組合せとして具現化されてよい。
【0033】
ここで
図1aおよび2aを参照すると、方法がブロック201から開始する。ブロック201で、初期トレーニング・データセットが提供される。初期トレーニング・データセットは、通常、機械学習アプリケーション・プログラム用のグランド・トゥルースとして注釈付きトレーニング・データセットを提供するために注釈が付けられるべきである任意のデータセットであってよい。初期トレーニング・データセットは、データベース320のストレージ321に格納されてよく、例えばネットワーク350を介して、受信されてよい。
【0034】
さらに、ブロック202で、オートエンコーダ100が提供され、ブロック203で、オートエンコーダ100によって提供される圧縮された特徴行列のグラフの定義が提供される。
【0035】
オートエンコーダ100は、埋め込みモデルおよび分類器を備えている。オートエンコーダ100は、効率的なエンコーディング、または言い換えると、トレーニング・データセットのデータ・サンプルの効率的な表現を学習するように構成されたニューラル・ネットワークとして具現化されてよい。オートエンコーダ100は、複数の隠れ層を備えてよい。
【0036】
ブロック204で、オートエンコーダ100は、埋め込みモデルの初期トレーニングを実行する。複数のデータ・サンプルを含む初期データセット(例えば、データベース320のストレージ321に格納されるデータセット)を使用して、初期トレーニングが実行される。オートエンコーダ100の埋め込みモデルは、データ・サンプルのセットを、特徴要素を含む圧縮された特徴ベクトルのセットにマッピングするように構成される。オートエンコーダ100の埋め込みモデルは、ブロック204では、教師なし埋め込みモデルである。
【0037】
より詳細には、ここで
図1bを参照すると、オートエンコーダ100が、データ・サンプルの入力ベクトル110を圧縮された特徴ベクトル111にマッピングする。このマッピングは、エンコーディングとして示されてもよい。圧縮された特徴ベクトルは、入力ベクトル110のコードを定める。
【0038】
入力ベクトル110は、複数のベクトル要素(例えば、画像の複数のピクセル)を含む。オートエンコーダは、エンコーディング側と共に、エンコーディングをデータ・サンプル*に対応する出力ベクトル112に逆向きにデコードするために、デコーディング側を学習するように構成される。より詳細には、オートエンコーダ100は、出力ベクトル112および対応するデータ・サンプル*ができるだけ入力ベクトル110および入力データ・サンプルに近くなるように、エンコーディング/圧縮された特徴ベクトルをデコードすることを目標とする。圧縮された特徴ベクトル111のサイズ(例えば、圧縮された特徴ベクトル111の要素の数)は、オートエンコーダ100のエンコーディング寸法(encoding dimension)を定義する。
【0039】
オートエンコーダ100は、各データ・サンプルおよびそれに対応する入力ベクトルを圧縮された特徴ベクトルにマッピングするように構成される。圧縮された特徴ベクトルのセットは、データ・サンプルのセットの圧縮された特徴行列MCを定義する。圧縮された特徴行列MCは、「エンコーディング寸法*データ・サンプルの数」のサイズを有し、または言い換えると、データ・サンプルのセットのすべての圧縮された特徴ベクトル111の連結によって構築される。単純な例として、データセットが、圧縮された特徴ベクトルV1、V2、V3、V4、およびV5にマッピングされた5つのデータ・サンプルを含む場合、圧縮された特徴行列MCは次のようになる。
MC=(V1 V2 V3 V4 V5)
【0040】
またはさらに一般的には、データセットがN個のデータ・サンプルを含んでいる場合、圧縮された特徴行列MCはN個の特徴ベクトルV1,...VNを含む。ブロック203で定義されたグラフは、実施形態によれば、隣接行列Aによって定義されてよい。隣接行列Aは、圧縮された特徴行列Mcおよび圧縮された特徴行列の転置MC
Tの積、すなわち次のように定義されてよい。
A=MC*MC
T
【0041】
例示的なグラフが
図1cのグラフ120として示されている。埋め込みモデルの初期トレーニングの後に、ブロック205で、方法がクラスタ化アルゴリズムを適用し、グラフの1つまたは複数のクラスタを識別する。
【0042】
本発明の実施形態によるクラスタ化アルゴリズムは、隣接行列Aによって定義されたグラフ内の1つまたは複数のクラスタを識別することを目標とする。一般に、クラスタ化アルゴリズムは、同じグループ(クラスタ)内のオブジェクトが、他のグループ(他のクラスタ)内のオブジェクトよりも、事前に定義された何らかの基準に従って互いに類似しているような方法で、オブジェクトのセットをグループ化するタスクを実行する。
【0043】
複数のクラスタ化アルゴリズムが当業者に知られており、それらのアルゴリズムが、各データセットに基づいて実施形態に従って選択され得る。実施形態によれば、クラスタ・グラフに特に適しているクラスタ化アルゴリズムが使用され得る。そのようなグラフに基づくクラスタ化アルゴリズムは、kスパニング・ツリーまたは最小スパニング・ツリー・アルゴリズム、共有最近傍アルゴリズム、媒介中心性に基づくアルゴリズム、またはスペクトル・クラスタ化アルゴリズムを含む。
【0044】
図1cを参照すると、黒色のノードで示された第1のクラスタ130、および灰色のノードで示された第2のクラスタ140が示されている。
【0045】
次に、ブロック206で、コンピュータ実装方法が、中心性アルゴリズムを適用して、1つまたは複数のノード・クラスタ(例えば、
図1cのクラスタ130および140)の1つまたは複数の中央ノードを識別する。
図1cを参照すると、クラスタ130の中央ノード130cおよびクラスタ140の中央ノード140cが識別されている。
【0046】
グラフ分析において、ノードの中心性は、ネットワークまたはグラフ全体の中でのノードの相対的重要性を決定するために広く使用されている評価基準である。ノードの中心性は、インフルエンサーを理解するため、またはホット・スポット・リンクを見つけるために、複雑なネットワーク内でどのノードが重要であるかを決定するために使用されることがある。例えば、ノードの中心性は、ある人がソーシャル・ネットワーク内でどの程度影響力があるか、あるいは空間構文の理論において、ある部屋が建物内でどの程度重要であるか、またはある道路が都市道路網内でどの程度よく使用されているかを決定するために使用されることが多い。
【0047】
複数の中心性アルゴリズムが当業者に知られており、それらのアルゴリズムが、各データセットに基づいて実施形態に従って選択され得る。実施形態によれば、グラフに特に適している中心性アルゴリズムが使用される。
【0048】
実施形態によれば、行列指数関数およびグラフを定義する隣接行列のランダムなプローブ・ベクトルの積を近似することを含む、グラフに基づくクラスタ化アルゴリズムが使用されてよい。グラフに基づくクラスタ化アルゴリズムは、行列指数関数およびランダムなプローブ・ベクトルの積に基づいて隣接行列の対角成分を計算し、事前に定義された数の1つまたは複数の中央ノードが検出されるまで、計算された対角成分に基づいてノードの中心性を計算することをさらに含む。そのような方法は、米国特許出願公開第2014/0351307A1号において詳細に説明されており、この米国特許出願公開の内容全体は、参照によって組み込まれている。
【0049】
ノードの中心性を計算するためのさらなる実施形態による代替の方法は、ノードの数を減らし、およびしたがって、計算複雑さを減らそうとする試みにおいて、グラフのノードをサンプリングしてよい。
【0050】
実施形態によれば、複数の指標が中心性を定義するために使用されてよく、複数の対応する中心性アルゴリズムが使用されてよい。そのような指標は、例えば、グラフの次数中心性、媒介中心性、近接中心性、および固有ベクトル中心性を含む。
【0051】
次に、ブロック207で、人間のアノテータが、中央ノード130cおよび140cに注釈を付けるよう求められる。この注釈のために、元のデータ・サンプルの(例えば、元の画像の)対応する部分も、人間のアノテータに表示される。人間のアノテータは、ラベルを注釈として中央ノード130cおよび140cに割り当てる。一般に、1つまたは複数のラベルが、グラフのいずれかの特定のノードに関連付けられてよく、そのような各ラベルが、そのノードに対応する項目の何らかの特徴を示す。例えば、特定のラベルの値は、グラフによって表されたシステム内の項目の、種類、分類、特性、特徴などを示してよい。ラベルは、例えば、画像の対応する部分の内容であってよい。一例として、アノテータは、中央ノード130cに「犬」というラベルを付け、中央ノード140cに「猫」というラベルを付けてよい。コンピュータ実装プログラムは、例えば
図3に示されているようなユーザ・デバイス340を介して、これらのラベルを注釈として受信する。その結果、注釈付きノード・ラベルが作成される。
図1cの例では、例えばラベル「猫」を表すことができるノード130cの注釈付きノード・ラベルが、実線のリングによって示されており、例えばラベル「犬」を表すことができるノード140cの注釈付きノード・ラベルが、点線のリングによって示されている。
【0052】
ブロック208で、プログラムが、グラフの他のノード、より詳細には、識別されたクラスタ130および140の他のノードへの注釈付きノード・ラベルのラベルの伝搬を実行する。これによって、実線または点線のリングで
図1cに示されているような伝搬されたノード・ラベルを作成した。
【0053】
ラベルの伝搬には、リンク予測、推奨システム、コミュニティ検出、結実展開(seed set expansion)、半教師あり学習などを含むネットワーク科学の多くの応用において、重要な役割がある。実施形態によれば、複数のラベル伝搬アルゴリズムが使用されてよい。実施形態によれば、伝搬関数を注釈付きノード・ラベルに適用することによって、ラベル伝搬動作が実行されることができる。伝搬関数は、通常、グラフを定義する行列Xの関数、特に、グラフの隣接行列Aの関数、あるいは対応するラプラシアン行列またはその関数などの隣接行列から得られた行列の関数であってよい。
【0054】
多くの異なる伝搬関数が知られている。実施形態に従って使用され得る既知の伝搬関数の特定の例としては、指数カーネル(eαA)およびフォン・ノイマン・カーネル(I-αA)-1に対する変形が挙げられ、Iは単位行列である。そのような既知の伝搬関数は、グラフ内の要素が、同じ特性を共有している他の要素に接続されるという概念であるホモフィリーの仮定に基づき、類似する要素が(複数の)短い経路によってリンクされるという拡張による。
【0055】
実施形態によれば、伝搬関数は、チェビシェフ展開f(X)=Σj=0cjPj(x)として定義されてよく、Pjはj番目のチェビシェフ多項式である。
【0056】
次に、ブロック209で、コンピュータ実装方法は、オートエンコーダ100のさらなるトレーニングを実行する。さらなるトレーニングは、注釈付きの伝搬されたノード・ラベルを使用する。より詳細には、オートエンコーダ100は、圧縮された特徴ベクトルの要素のノード・ラベルを予測するように構成された分類器102も備えている。圧縮された特徴ベクトルの要素は、グラフ120のノードに対応する。さらなるトレーニングは、注釈付きノード・ラベルおよび伝搬されたノード・ラベルを使用するオートエンコーダ100の埋め込みモデルおよびオートエンコーダ100の分類器102のトレーニングを含む。これが、下でさらに詳細に説明される。
【0057】
次に、1つまたは複数の反復ブロック210で、コンピュータ実装方法は、収束するまで、上記のブロック、より詳細には、クラスタ化アルゴリズムの適用のブロック205、中心性アルゴリズムの適用のブロック206、中央ノードの注釈を取得するブロック207、注釈付きラベルを伝搬するブロック208、およびオートエンコーダ100のさらなるトレーニングを実行するブロック209を反復する。これに関して、収束は、クラスタ130および140が、事前に定義された収束基準に従う十分な方法で、互いに離れて分離されたことを意味するものとする。より詳細には、反復の各々の前に、ブロック210で、事前に定義された収束基準が満たされたかどうかがチェックされる。
【0058】
実施形態によれば、反復回が、中央ノードの注釈を取得するブロック207を含まなくてよいということに注意するべきである。ブロック207は、反復回の間に必要に応じて任意で、選択的に実行されるか、または繰り返されてよい。特に、クラスタ化および中心性アルゴリズムの適用の最初のステップまたはその後のステップにおいて識別されたクラスタの中央ノードが変化しなかった場合、これらの中央ノード/クラスタの人間によるさらなる注釈付与は必要でなくてよい。
【0059】
事前に定義された収束基準が満たされた場合、コンピュータ実装方法は、ブロック211で、前の反復回で注釈が付けられたノード・ラベルのセットを出力する。
図1cに示された例では、それらのノード・ラベルは、ラベル「猫」および「犬」に対応する点線のリングおよび実線のリングの2つのノード・ラベルのみになる。
【0060】
ノード・ラベルの出力は、機械学習アルゴリズムのトレーニングに成功するためにトレーニング・データセット内で注釈が付けられるべきである対象項目のセットを定める。その後、トレーニング・データセット内の対象項目の決定されたセットのみにラベルを付ける(制限された)注釈作業を実行するために、トレーニング・データセットが1人または複数の人間のアノテータに提出されてよい。上で提示された例では、これは、人間のアノテータが、トレーニング・データセットのデータ・サンプル内の「猫」および「犬」のみにラベルを付ける必要があるということを意味する。
【0061】
注釈付き対象項目を含む生成されたトレーニング・データセットは、次に、
図2bに示された機械学習アプリケーションをトレーニングするためのグランド・トゥルースを定める。
【0062】
ブロック221で、例えば機械学習トレーニング・プログラム312によって、トレーニング・データセットが受信される。トレーニング・データセットは、上で説明されたように、対象項目のセットの注釈を含む。ブロック222で、機械学習トレーニング・プログラム312は、トレーニング・データセットを使用して機械学習アプリケーション・プログラム311の認知モデルをトレーニングする。
【0063】
ブロック223で、機械学習トレーニング・プログラム312は、トレーニングされた認知モデルを出力として提供する。
【0064】
ここで
図2cを参照すると、機械学習アプリケーションを実行するためのコンピュータ実装方法230が提供される。この方法は、例えば、
図3に示された機械学習アプリケーション・プログラム311によって実行されてよい。
【0065】
ブロック231で、機械学習アプリケーション・プログラム311は、例えば機械学習トレーニング・プログラム312から、トレーニングされた認知モデルを受信する。
【0066】
ブロック232で、機械学習アプリケーション・プログラム311は、認知モデルを使用して機械学習アプリケーションを実行する。
【0067】
ブロック233で、機械学習アプリケーション・プログラム311は、機械学習アプリケーション・プログラムの出力を提供する。
【0068】
図2cに示されたコンピュータ実装方法230は、機械学習アプリケーションおよびその基礎になるアルゴリズムの推論段階を定める。
【0069】
図4および5は、本発明の実施形態によるオートエンコーダ100の機能および構造をさらに詳細に示している。これに関して、
図4は、トレーニング・ステップ209の間にオートエンコーダ100によって実行されるマッピングをさらに詳細に示しており、
図5は、オートエンコーダ100の例示的なブロック図を示している。
【0070】
図4を参照すると、オートエンコーダ100は、一方で、対応する圧縮された特徴ベクトル111へのデータ・サンプルの入力ベクトル110のマッピングを実行する。さらにオートエンコーダは、前と同様に、エンコーディングを対応する出力ベクトル112に逆向きにデコードするために、デコーディング側を学習するように構成される。加えて、オートエンコーダ100は、現在の反復回の間に注釈付与または伝搬ごとに割り当てられたラベルを考慮するようにも構成される。より詳細には、オートエンコーダ100は、ブロック209で、現在の反復回で(注釈付与または伝搬あるいはその両方ごとに)割り当てられたラベルへの、圧縮された特徴ベクトルのラベルのマッピングも実行する。言い換えると、オートエンコーダ100は、圧縮された特徴ベクトル111の各要素のノード・ラベルを予測する。ノード・ラベルの予測は、分類器102を使用して実行される。オートエンコーダ100は、ブロック209でクラス・ラベルも考慮するため、セマンティック・オートエンコーダ(semantic autoencoder)として示されてよい。実施形態によれば、セマンティック・オートエンコーダは、グラフから予測されたラベルによって「教師あり」になるオートエンコーダであると見なしてよい。
【0071】
したがって、ここで
図5を参照すると、オートエンコーダ100は、実施形態に従って、入力ベクトルを圧縮された特徴ベクトルにエンコードし、圧縮された特徴ベクトルを出力ベクトルに逆向きにデコードする、標準的なオートエンコーダ101として説明されてよい。加えて、オートエンコーダ100は分類器102を備え、さらに、埋め込みモデルによって、圧縮された特徴ベクトルのラベルを予測する。トレーニング・ブロック209の結果として、次の反復回に使用される更新された埋め込みモデルが計算された。
【0072】
図6は、本発明の実施形態によるコンピュータ実装方法が適用されるべきであるグラフ600を示している。グラフ600は、
図1cを参照して上で説明されたように、圧縮された特徴行列M
Cおよび圧縮された特徴行列の転置M
C
Tの積によって定義された隣接行列によって定義されてもよい。本発明の実施形態による方法は、ブロック205を参照して説明されたように、最初にクラスタ化アルゴリズムを適用して、グラフの1つまたは複数のクラスタを識別する。この例では、黒色のノードで示された第1のクラスタ610、および灰色のノードで示された第2のクラスタ620が示されている。次に、ブロック206を参照して説明されたように、コンピュータ実装方法が、中心性アルゴリズムを適用して、1つまたは複数のノード・クラスタ(すなわち、クラスタ610および620)の1つまたは複数の中央ノードを識別する。
図6では、クラスタ610の中央ノード610cおよびクラスタ620の中央ノード620cが識別されている。
【0073】
ここで、この実施形態による方法は、1つまたは複数の境界ノードを識別することを含む。境界ノードは、2つのクラスタ間の境界、すなわちクラスタ610とクラスタ620の間の境界にあるノードとして定義されてよい。境界ノードは、当業者に知られているさまざまな方法およびアルゴリズムを用いて、事前に定義された基準によって計算または決定されてよい。
【0074】
図6で、例示的な方法では、アルゴリズムが、クラスタ610のノード610bを境界ノードとして計算し、クラスタ620の2つのノード620bを境界ノードとして計算したということが仮定される。
【0075】
実施形態によれば、この方法は、1つまたは複数のアノテータから、1つまたは複数の境界ノードのノード・ラベルを取得することをさらに含んでよい。
図6の例では、例えばラベル「猫」を表すことができる境界ノード610bの注釈付きノード・ラベルが、実線のリングによって示されており、例えばラベル「犬」を表すことができる境界ノード620bの注釈付きノード・ラベルが、点線のリングによって示されている。これらのノード・ラベルは、この例では、クラスタ610および620の対応する中央ノード610cおよび620cのラベルにそれぞれ対応する。
【0076】
さらなる実施形態によれば、この方法は、1つまたは複数のクラスタから最も遠い1つまたは複数のノードを識別することを含んでよい。最も遠いノードは、各クラスタの中央ノードから最も遠く離れている各クラスタのノードとして定義されてよい。最も遠いノードは、当業者に知られているさまざまな方法およびアルゴリズムを用いて、事前に定義された基準によって計算または決定されてよい。
【0077】
図6で、例示的な方法では、アルゴリズムが、クラスタ610のノード610fを最も遠いノードとして計算し、クラスタ620のノード620fを最も遠いノードとして計算したということが推測される。
【0078】
実施形態によれば、この方法は、1つまたは複数のアノテータから、1つまたは複数の最も遠いノードのノード・ラベルを取得することをさらに含んでよい。
図6の例では、例えばラベル「猫」を表すことができる最も遠いノード610fの注釈付きノード・ラベルが、実線のリングによって示されており、例えばラベル「犬」を表すことができる最も遠いノード620fの注釈付きノード・ラベルが、点線のリングによって示されている。これらのノード・ラベルは、この例では、クラスタ610および620の対応する中央ノード610cおよび620cのラベルにそれぞれ対応する。
【0079】
ここで
図7を参照すると、サーバ310のさらに詳細な実施形態が示されている。サーバ310は、他の多数のコンピューティング・システム環境または構成で動作可能であってよい。サーバ310での使用に適した既知のコンピューティング・システム、環境、または構成、あるいはその組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらのシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。特に、サーバ310は、
図3に示されているように、システム300のスキャニング・マシン330およびシステム300のユーザ・デバイス340と共に動作可能である。
【0080】
サーバ310は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連において説明されてよい。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含んでよい。サーバ310は、汎用コンピューティング・デバイスの形態で示されている。サーバ310のコンポーネントは、1つまたは複数のプロセッサまたはプロセッシング・ユニット716、システム・メモリ728、およびシステム・メモリ728を含むさまざまなシステム・コンポーネントをプロセッサ716に結合するバス718を含んでよいが、これらに限定されない。
【0081】
バス718は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、およびさまざまなバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、複数の種類のバス構造のいずれかのうちの1つまたは複数を表す。例として、そのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnects)バスを含むが、これらに限定されない。
【0082】
サーバ310は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、サーバ310によってアクセスできる任意の使用可能な媒体であってよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体の両方を含む。
【0083】
システム・メモリ728は、ランダム・アクセス・メモリ(RAM:random access memory)730またはキャッシュ・メモリ732あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。サーバ310は、その他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでよい。単に例として、取り外し不可、不揮発性の磁気媒体(図示されておらず、通常は「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために、ストレージ・システム734を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、それぞれを、1つまたは複数のデータ媒体インターフェイスによってバス718に接続することができる。下で詳細に示され、説明されているように、メモリ728は、本発明の実施形態の機能を実行するように構成された一連の(例えば、少なくとも1つの)プログラム・モジュールを備える少なくとも1つのプログラム製品を含んでよい。
【0084】
例えば、一連の(少なくとも1つの)プログラム・モジュール742を含んでいるプログラム/ユーティリティ740がメモリ728に格納されてよいが、これに限定されず、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはこれらの組合せの各々は、ネットワーク環境の実装を含んでよい。プログラム・モジュール742は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。プログラム・モジュール742は、特に、本発明の実施形態に従って機械学習アプリケーションをトレーニングするために注釈が付けられる対象項目のセットを決定するためのコンピュータ実装方法の1つまたは複数のステップ(例えば、
図2a、2b、または2c、あるいはその組合せを参照して説明された方法の1つまたは複数のステップ)を実行してよい。プログラム・モジュール742は、特に、
図3ならびに
図2a、2b、および2cの対応するフロー・チャートを参照して説明されたプログラム311、312、および313を包含してよい。
【0085】
サーバ310は、キーボード、ポインティング・デバイス、ディスプレイ724などの1つまたは複数の外部デバイス715、ユーザがサーバ310と情報をやりとりできるようにする1つまたは複数のデバイス、またはサーバ310が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信してもよい。そのような通信は、入出力(I/O:Input/Output)インターフェイス722を介して発生することができる。さらに、サーバ310は、ローカル・エリア・ネットワーク(LAN)、一般的な広域ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ720を介して通信することができる。図示されているように、ネットワーク・アダプタ720は、バス718を介してサーバ310の他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、サーバ310と併用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【0086】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、サーバ310またはユーザ・デバイス340あるいはその両方のプロセッサ/プロセッシング・ユニットに本発明の実施形態を実行させるためのコンピュータ可読プログラム命令を含むコンピュータ可読ストレージ媒体を含んでよい。
【0087】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されているパンチカードまたは溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0088】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0089】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の実施形態を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0090】
本発明の実施形態は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装されることができるということが理解されるであろう。
【0091】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、プログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の実施形態を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0092】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0093】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0094】
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。説明された実施形態の範囲を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。