(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-19
(45)【発行日】2024-09-30
(54)【発明の名称】ラベルノイズが存在する状態でのロバストな訓練
(51)【国際特許分類】
G06N 20/00 20190101AFI20240920BHJP
【FI】
G06N20/00 130
【外国語出願】
(21)【出願番号】P 2023102500
(22)【出願日】2023-06-22
(62)【分割の表示】P 2022517892の分割
【原出願日】2020-09-19
【審査請求日】2023-07-11
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ヂャン,ズーヂャオ
(72)【発明者】
【氏名】アリク,セルジャン・オメール
(72)【発明者】
【氏名】フィスター,トマス・ジョン
(72)【発明者】
【氏名】ヂャン,ハン
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2019-46269(JP,A)
【文献】特開2018-155522(JP,A)
【文献】特開2019-46095(JP,A)
【文献】特開2009-110064(JP,A)
【文献】特開2015-197436(JP,A)
【文献】中国特許第112434680(CN,B)
【文献】JIANGCHAO YAO; ET AL,DEEP LEARNING FROM NOISY IMAGE LABELS WITH QUALITY EMBEDDING,ARXIV:1711.00583V1,CORNELL UNIVERSITY LIBRARY,2017年11月02日,PAGE(S):1-12,https://arxiv.org/abs/1711.00583
【文献】藤田 雄一郎 ほか,反復識別法を用いた臨床データのミスラベル探索,電子情報通信学会技術研究報告 [online],日本,一般社団法人電子情報通信学会,Vol.118 No.284,p.221-225
【文献】Jiangchao Yao et al.,Deep Learning From Noisy Image Labels With Quality Embedding,IEEE TRANSACTIONS ON IMAGE PROCESSING,米国,IEEE,2018年10月24日,VOL.28, No.4,p. 1909-1922
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
THE ACM DIGITAL LIBRARY
(57)【特許請求の範囲】
【請求項1】
データ処理ハードウェア上で実行されると前記データ処理ハードウェアに動作を行なわせる、コンピュータにより実現される方法であって、前記動作は、
ラベル付き訓練サンプルを取得することを含み、前記ラベル付き訓練サンプルは所与のラベルとペアになっており、前記動作はさらに、
前記ラベル付き訓練サンプルから複数の拡張された訓練サンプルを生成することと、
前記複数の拡張された訓練サンプルの各それぞれの拡張された訓練サンプルについて、それぞれの予測されるラベルを生成することと、
前記複数の拡張された訓練サンプルについて生成されたすべてのそれぞれの予測されるラベルにわたる平均を求めることと、
すべてのそれぞれの予測されるラベルにわたる前記平均に基づいて、前記ラベル付き訓練サンプルのための疑似ラベルを生成することと、
前記ラベル付き訓練サンプルとペアになっている前記所与のラベルの精度がしきい値を満たさないと判定することと、
前記ラベル付き訓練サンプルとペアになっている前記所与のラベルの精度が前記しきい値を満たさないと判定することに基づいて、前記ラベル付き訓練サンプルとペアになっている前記所与のラベルを、前記ラベル付き訓練サンプルのために生成された前記疑似ラベルと置換することと、
前記疑似ラベルとペアになっている前記ラベル付き訓練サンプルを用いて、機械学習モデルを訓練することとを含む、コンピュータにより実現される方法。
【請求項2】
前記ラベル付き訓練サンプルは画像を含み、前記所与のラベルは前記画像のテキスト記述子を含む、請求項1に記載のコンピュータにより実現される方法。
【請求項3】
前記ラベル付き訓練サンプルは音声データを含み、前記所与のラベルは前記音声データの文字起こしを含む、請求項1または2に記載のコンピュータにより実現される方法。
【請求項4】
前記動作はさらに、
1組の信頼できる訓練サンプルを取得することを含み、各それぞれの信頼できる訓練サンプルは対応する信頼できるラベルとペアになっており、前記動作はさらに、
前記ラベル付き訓練サンプルと前記1組の信頼できる訓練サンプルとを使用して凸結合を生成することを含む、請求項1から3のいずれかに記載のコンピュータにより実現される方法。
【請求項5】
前記凸結合を生成することは、前記ラベル付き訓練サンプルと前記1組の信頼できる訓練サンプルとにペアのMixUpを適用することを含む、請求項4に記載のコンピュータにより実現される方法。
【請求項6】
各対応する信頼できるラベルは、正確なラベルを含む、請求項4または5に記載のコンピュータにより実現される方法。
【請求項7】
前記動作はさらに、前記ラベル付き訓練サンプルとペアになっている前記所与のラベルの精度が前記しきい値を満たさないと判定することに基づいて、前記ラベル付き訓練サンプルを、1組の間違ってラベル付けされた訓練サンプルに追加することを含む、請求項1から6のいずれかに記載のコンピュータにより実現される方法。
【請求項8】
前記動作はさらに、
第2のラベル付き訓練サンプルを取得することを含み、前記第2のラベル付き訓練サンプルは第2の所与のラベルとペアになっており、前記動作はさらに、
前記第2のラベル付き訓練サンプルから第2の複数の第2の拡張された訓練サンプルを生成することと、
前記第2の複数の第2の拡張された訓練サンプルの各それぞれの第2の拡張された訓練サンプルについて、それぞれの第2の予測されるラベルを生成することと、
前記第2の複数の第2の拡張された訓練サンプルについて生成されたすべてのそれぞれの第2の予測されるラベルにわたる第2の平均を求めることと、
すべてのそれぞれの第2の予測されるラベルにわたる前記第2の平均に基づいて、前記第2のラベル付き訓練サンプルのための第2の疑似ラベルを生成することと、
前記第2のラベル付き訓練サンプルとペアになっている前記第2の所与のラベルの第2の精度が前記しきい値を満たすと判定することと、
前記第2のラベル付き訓練サンプルとペアになっている前記第2の所与のラベルの前記第2の精度が前記しきい値を満たすと判定することに基づいて、前記第2の所与のラベルとペアになっている前記第2のラベル付き訓練サンプルを用いて前記機械学習モデルを訓練することとを含む、請求項1から7のいずれかに記載のコンピュータにより実現される方法。
【請求項9】
前記動作はさらに、前記第2のラベル付き訓練サンプルとペアになっている前記第2の所与のラベルの前記第2の精度が前記しきい値を満たすと判定することに基づいて、前記第2のラベル付き訓練サンプルを、1組のクリーンにラベル付けされた訓練サンプルに追加することを含む、請求項8に記載のコンピュータにより実現される方法。
【請求項10】
前記ラベル付き訓練サンプルから前記複数の拡張された訓練サンプルの各それぞれの拡張された訓練サンプルを生成することは、ランダム値を使用して前記ラベル付き訓練サンプルの値を増加または減少させることを含む、請求項1から9のいずれかに記載のコンピュータにより実現される方法。
【請求項11】
システムであって、
データ処理ハードウェアと、
前記データ処理ハードウェアと通信しているメモリハードウェアとを含み、前記メモリハードウェアは、前記データ処理ハードウェア上で実行されると前記データ処理ハードウェアに動作を行なわせる命令を格納しており、前記動作は、
ラベル付き訓練サンプルを取得することを含み、前記ラベル付き訓練サンプルは所与のラベルとペアになっており、前記動作はさらに、
前記ラベル付き訓練サンプルから複数の拡張された訓練サンプルを生成することと、
前記複数の拡張された訓練サンプルの各それぞれの拡張された訓練サンプルについて、それぞれの予測されるラベルを生成することと、
前記複数の拡張された訓練サンプルについて生成されたすべてのそれぞれの予測されるラベルにわたる平均を求めることと、
すべてのそれぞれの予測されるラベルにわたる前記平均に基づいて、前記ラベル付き訓練サンプルのための疑似ラベルを生成することと、
前記ラベル付き訓練サンプルとペアになっている前記所与のラベルの精度がしきい値を満たさないと判定することと、
前記ラベル付き訓練サンプルとペアになっている前記所与のラベルの精度が前記しきい値を満たさないと判定することに基づいて、前記ラベル付き訓練サンプルとペアになっている前記所与のラベルを、前記ラベル付き訓練サンプルのために生成された前記疑似ラベルと置換することと、
前記疑似ラベルとペアになっている前記ラベル付き訓練サンプルを用いて、機械学習モデルを訓練することとを含む、システム。
【請求項12】
前記ラベル付き訓練サンプルは画像を含み、前記所与のラベルは前記画像のテキスト記述子を含む、請求項11に記載のシステム。
【請求項13】
前記ラベル付き訓練サンプルは音声データを含み、前記所与のラベルは前記音声データの文字起こしを含む、請求項11または12に記載のシステム。
【請求項14】
前記動作はさらに、
1組の信頼できる訓練サンプルを取得することを含み、各それぞれの信頼できる訓練サンプルは対応する信頼できるラベルとペアになっており、前記動作はさらに、
前記ラベル付き訓練サンプルと前記1組の信頼できる訓練サンプルとを使用して凸結合を生成することを含む、請求項11から13のいずれかに記載のシステム。
【請求項15】
前記凸結合を生成することは、前記ラベル付き訓練サンプルと前記1組の信頼できる訓練サンプルとにペアのMixUpを適用することを含む、請求項14に記載のシステム。
【請求項16】
各対応する信頼できるラベルは、正確なラベルを含む、請求項14または15に記載のシステム。
【請求項17】
前記動作はさらに、前記ラベル付き訓練サンプルとペアになっている前記所与のラベルの精度が前記しきい値を満たさないと判定することに基づいて、前記ラベル付き訓練サンプルを、1組の間違ってラベル付けされた訓練サンプルに追加することを含む、請求項11から16のいずれかに記載のシステム。
【請求項18】
前記動作はさらに、
第2のラベル付き訓練サンプルを取得することを含み、前記第2のラベル付き訓練サンプルは第2の所与のラベルとペアになっており、前記動作はさらに、
前記第2のラベル付き訓練サンプルから第2の複数の第2の拡張された訓練サンプルを生成することと、
前記第2の複数の第2の拡張された訓練サンプルの各それぞれの第2の拡張された訓練サンプルについて、それぞれの第2の予測されるラベルを生成することと、
前記第2の複数の第2の拡張された訓練サンプルについて生成されたすべてのそれぞれの第2の予測されるラベルにわたる第2の平均を求めることと、
すべてのそれぞれの第2の予測されるラベルにわたる前記第2の平均に基づいて、前記第2のラベル付き訓練サンプルのための第2の疑似ラベルを生成することと、
前記第2のラベル付き訓練サンプルとペアになっている前記第2の所与のラベルの第2の精度が前記しきい値を満たすと判定することと、
前記第2のラベル付き訓練サンプルとペアになっている前記第2の所与のラベルの前記第2の精度が前記しきい値を満たすと判定することに基づいて、前記第2の所与のラベルとペアになっている前記第2のラベル付き訓練サンプルを用いて前記機械学習モデルを訓練することとを含む、請求項11から17のいずれかに記載のシステム。
【請求項19】
前記動作はさらに、前記第2のラベル付き訓練サンプルとペアになっている前記第2の所与のラベルの前記第2の精度が前記しきい値を満たすと判定することに基づいて、前記第2のラベル付き訓練サンプルを、1組のクリーンにラベル付けされた訓練サンプルに追加することを含む、請求項18に記載のシステム。
【請求項20】
前記ラベル付き訓練サンプルから前記複数の拡張された訓練サンプルの各それぞれの拡張された訓練サンプルを生成することは、ランダム値を使用して前記ラベル付き訓練サンプルの値を増加または減少させることを含む、請求項11から19のいずれかに記載のシステム。
【請求項21】
コンピュータに請求項1から10のいずれかに記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ラベルノイズが存在する状態でのモデルのロバストな訓練に関する。
【背景技術】
【0002】
背景
ディープニューラルネットを訓練することは通常、大規模なラベル付きデータを必要とする。しかしながら、大規模なデータセットのためにクリーンなラベルを取得することは実際には、特にヘルスケアなどのラベル付けコストが高いデータドメインでは、達成するのが非常に困難であり、かつ費用がかかる。ディープニューラルネットはまた、高容量の記憶を有する。多くの訓練技術はニューラルネットを正規化してノイズのあるラベルの侵入を防止するよう試みるが、ノイズのあるラベルが顕著になると、ニューラルネットは必然的にノイズのあるラベル付きデータに適合する。
【0003】
典型的には、小さい信頼できる訓練データセットは通常、取得が実行可能である。実用上現実的な設定は、訓練データのサイズを、所与の小さい信頼できるセットに基づいて、安価で信頼できないやり方(たとえば、クラウドソーシング、ウェブ検索、安価なラベル付け作業など)で増加させることである。この設定が明らかな利点を実証できるならば、それは機械学習作業を著しく変更し得るであろう。しかしながら、訓練データのサイズを増加させるために、多くの方法は依然として、ニューラルネットをうまく一般化させるためにかなりの量の信頼できるデータを必要とする。このため、小さい信頼できるデータセットの単純な使用は迅速な過剰適合を引き起こす場合があり、最終的に悪影響をもたらす。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
この開示の一局面は、ラベルノイズが存在する状態でのモデルのロバストな訓練のための方法を提供する。方法は、データ処理ハードウェアで、1組のラベル付き訓練サンプルを取得するステップを含む。各ラベル付き訓練サンプルは所与のラベルに関連付けられる。方法はまた、複数の訓練反復の各訓練反復中、1組のラベル付き訓練サンプルにおける各ラベル付き訓練サンプルについて、データ処理ハードウェアが、ラベル付き訓練サンプルのための疑似ラベルを生成するステップを含む。方法はまた、データ処理ハードウェアが、所与のラベルの精度を示すラベル付き訓練サンプルの重みを推定するステップと、データ処理ハードウェアが、ラベル付き訓練サンプルの重みが重みしきい値を満たすかどうかを判定するステップとを含む。方法はまた、ラベル付き訓練サンプルの重みが重みしきい値を満たす場合、データ処理ハードウェアが、ラベル付き訓練サンプルを、1組のクリーンにラベル付けされた訓練サンプルに追加するステップを含む。方法はまた、ラベル付き訓練サンプルの重みが重みしきい値を満たさない場合、データ処理ハードウェアが、ラベル付き訓練サンプルを、1組の間違ってラベル付けされた訓練サンプルに追加するステップを含む。方法はまた、データ処理ハードウェアが、対応する所与のラベルを使用する1組のクリーンにラベル付けされた訓練サンプルと、対応する疑似ラベルを使用する1組の間違ってラベル付けされた訓練サンプルとを用いて、機械学習モデルを訓練するステップを含む。
【0005】
この開示の実現化例は、以下のオプションの特徴のうちの1つ以上を含んでいてもよい。いくつかの実現化例では、ラベル付き訓練サンプルのための疑似ラベルを生成するステップは、ラベル付き訓練サンプルに基づいて複数の拡張された(augmented)訓練サンプ
ルを生成するステップと、各拡張された訓練サンプルについて、機械学習モデルを使用して、予測されるラベルを生成するステップとを含む。この実現化例はまた、対応するラベル付き訓練サンプルのための疑似ラベルを生成するために、複数の拡張された訓練サンプルの各拡張された訓練サンプルについて生成された各予測されるラベルを平均化するステップを含む。
【0006】
いくつかの例では、ラベル付き訓練サンプルの重みを推定するステップは、ラベル付き訓練サンプルの最適な重みのオンライン近似を判定するステップを含む。ラベル付き訓練サンプルの最適な重みのオンライン近似を判定するステップは、確率的勾配降下最適化を使用するステップを含んでいてもよい。オプションで、最適な重みは、機械学習モデルの訓練損失を最小化する。
【0007】
いくつかの実現化例では、機械学習モデルを訓練するステップは、1組の信頼できる訓練サンプルを取得するステップを含む。各信頼できる訓練サンプルは信頼できるラベルに関連付けられる。この実現化例はまた、1組の信頼できる訓練サンプルと1組のラベル付き訓練サンプルとを使用して凸結合を生成するステップを含む。凸結合を生成するステップは、1組の信頼できる訓練サンプルと1組のラベル付き訓練サンプルとにペアのMixUpを適用するステップを含んでいてもよい。機械学習モデルを訓練するステップはさらに、対応する所与のラベルを使用する1組のクリーンにラベル付けされた訓練サンプルに基づいて、第1の損失を判定するステップと、対応する疑似ラベルを使用する1組の間違ってラベル付けされた訓練サンプルに基づいて、第2の損失を判定するステップと、1組の信頼できる訓練サンプルの凸結合に基づいて、第3の損失を判定するステップと、1組のラベル付き訓練サンプルの凸結合に基づいて、第4の損失を判定するステップと、1組のラベル付き訓練サンプルの所与のラベルと1組のラベル付き訓練サンプルの疑似ラベルとの間のカルバック・ライブラー(Kullback-Leibler)発散に基づいて、第5の損失を判定するステップとを含んでいてもよい。機械学習モデルを訓練するステップはさらに、第1の損失、第2の損失、第3の損失、第4の損失、および第5の損失に基づいて、総損失を判定するステップも含んでいてもよい。いくつかの例では、第3の損失および第4の損失は、softmax交差エントロピー損失である。1組のラベル付き訓練サンプルの各ラベル付き訓練サンプルは画像であり、所与のラベルは画像のテキスト記述子である。
【0008】
この開示の別の局面は、ラベルノイズが存在する状態でモデルを訓練するためのシステムを提供する。システムは、データ処理ハードウェアと、データ処理ハードウェアと通信しているメモリハードウェアとを含む。メモリハードウェアは、データ処理ハードウェア上で実行されるとデータ処理ハードウェアに動作を行なわせる命令を格納する。動作は、1組のラベル付き訓練サンプルを取得することを含む。各ラベル付き訓練サンプルは所与のラベルに関連付けられる。動作はまた、複数の訓練反復の各訓練反復中、1組のラベル付き訓練サンプルにおける各ラベル付き訓練サンプルについて、ラベル付き訓練サンプルのための疑似ラベルを生成することを含む。動作はまた、所与のラベルの精度を示すラベル付き訓練サンプルの重みを推定することと、ラベル付き訓練サンプルの重みが重みしきい値を満たすかどうかを判定することとを含む。動作はまた、ラベル付き訓練サンプルの重みが重みしきい値を満たす場合、ラベル付き訓練サンプルを、1組のクリーンにラベル付けされた訓練サンプルに追加することを含む。動作はまた、ラベル付き訓練サンプルの重みが重みしきい値を満たさない場合、ラベル付き訓練サンプルを、1組の間違ってラベル付けされた訓練サンプルに追加することを含む。動作はまた、対応する所与のラベルを使用する1組のクリーンにラベル付けされた訓練サンプルと、対応する疑似ラベルを使用する1組の間違ってラベル付けされた訓練サンプルとを用いて、機械学習モデルを訓練することを含む。
【0009】
この局面は、以下のオプションの特徴のうちの1つ以上を含んでいてもよい。いくつか
の実現化例では、ラベル付き訓練サンプルのための疑似ラベルを生成することは、ラベル付き訓練サンプルに基づいて複数の拡張された訓練サンプルを生成することと、各拡張された訓練サンプルについて、機械学習モデルを使用して、予測されるラベルを生成することとを含む。この実現化例はまた、対応するラベル付き訓練サンプルのための疑似ラベルを生成するために、複数の拡張された訓練サンプルの各拡張された訓練サンプルについて生成された各予測されるラベルを平均化することを含む。
【0010】
いくつかの例では、ラベル付き訓練サンプルの重みを推定することは、ラベル付き訓練サンプルの最適な重みのオンライン近似を判定することを含む。ラベル付き訓練サンプルの最適な重みのオンライン近似を判定することは、確率的勾配降下最適化を使用することを含んでいてもよい。オプションで、最適な重みは、機械学習モデルの訓練損失を最小化する。
【0011】
いくつかの実現化例では、機械学習モデルを訓練することは、1組の信頼できる訓練サンプルを取得することを含む。各信頼できる訓練サンプルは信頼できるラベルに関連付けられる。この実現化例はまた、1組の信頼できる訓練サンプルと1組のラベル付き訓練サンプルとを使用して凸結合を生成することを含む。凸結合を生成することは、1組の信頼できる訓練サンプルと1組のラベル付き訓練サンプルとにペアのMixUpを適用することを含んでいてもよい。機械学習モデルを訓練することはさらに、対応する所与のラベルを使用する1組のクリーンにラベル付けされた訓練サンプルに基づいて、第1の損失を判定することと、対応する疑似ラベルを使用する1組の間違ってラベル付けされた訓練サンプルに基づいて、第2の損失を判定することと、1組の信頼できる訓練サンプルの凸結合に基づいて、第3の損失を判定することと、1組のラベル付き訓練サンプルの凸結合に基づいて、第4の損失を判定することと、1組のラベル付き訓練サンプルの所与のラベルと1組のラベル付き訓練サンプルの疑似ラベルとの間のカルバック・ライブラー発散に基づいて、第5の損失を判定することとを含んでいてもよい。機械学習モデルを訓練することはさらに、第1の損失、第2の損失、第3の損失、第4の損失、および第5の損失に基づいて、総損失を判定することも含んでいてもよい。いくつかの例では、第3の損失および第4の損失は、softmax交差エントロピー損失である。1組のラベル付き訓練サンプルの各ラベル付き訓練サンプルは画像であり、所与のラベルは画像のテキスト記述子である。
【0012】
この開示の1つ以上の実現化例の詳細が、添付図面および以下の説明において述べられる。他の局面、特徴、および利点は、説明および図面から、ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【0013】
【
図1】ノイズのある訓練サンプルを使用してモデルを訓練するための例示的なシステムの概略図である。
【
図2】
図1のシステムの疑似ラベル生成器の例示的なコンポーネントの概略図である。
【
図3】図のシステムの追加の例示的なコンポーネントの概略図である。
【
図4】目標モデルを訓練するためのアルゴリズムの概略図である。
【
図5】ラベルノイズが存在する状態でのロバストな訓練の方法のための動作の例示的な構成のフローチャートである。
【
図6】ここに説明されるシステムおよび方法を実現するために使用され得る例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0014】
さまざまな図面における同じ参照符号は、同じ要素を示す。
【0015】
詳細な説明
最新のディープニューラルネットワークを高精度になるよう訓練することは通常、大量のラベル付き訓練データを必要とする。しかしながら、高品質のラベル付き訓練データを(たとえば人間の注釈を介して)取得するプロセスはしばしば困難であり、かつ費用がかかる。ノイズのある(すなわち不正確な)ラベルを用いる訓練データはしばしば、はるかに安価で取得されるため、ノイズのあるラベルを用いるデータセットからニューラルネットワークを訓練するための方法(たとえば、緩やかに制御された手順、クラウドソーシング、ウェブ検索、テキスト抽出など)は、研究の盛んな分野である。しかしながら、多くのディープニューラルネットワークは記憶のための大きな容量を有するため、ノイズのあるラベルが顕著になり、過剰適合を引き起こす場合がある。
【0016】
従来の技術は主として、訓練データのセット全体が同じラベル付け技術を使用して取得される設定を考慮する。しかしながら、主要訓練セットを、信頼性の高いクリーンなラベルを含むより小さいデータセットで補うことが、しばしば有利である。より小さいデータセットは、主要訓練セットが極めてノイズのあるものであっても、モデルが高いロバスト性を実証するのを助け得る。
【0017】
ここでの実現化例は、ノイズのあるラベルを用いたロバストなニューラルネットワーク訓練を提供するモデル訓練器に向けられる。モデル訓練器は、分離、拡大、および誘導(isolation, escalation, and guidance:IEG)という3つの主要戦略を実現する。モ
デル訓練器はまず、間違ってラベル付けされたデータがニューラルネットワーク訓練を間違った方向に導くのを防止するように訓練サンプルを再重み付けすることにより、ノイズのあるラベル付き訓練データとクリーンなラベル付き訓練データとを分離する。モデル訓練器は次に、間違ってラベル付けされたデータ内の情報を利用するために、疑似ラベルを介して、間違ってラベル付けされたデータからの監視を拡大する。最後に、モデル訓練器は、過剰適合を防止するように、強い正規化を用いる小さい信頼できる訓練データセットを使用して訓練を誘導する。
【0018】
このため、モデル訓練器は、データごとの重要性を重み付けすることと、所与のラベルへの置換として疑似ラベルを使用して訓練データの監視される損失を漸進的に拡大することとを同時に学習するために、メタ学習ベースの再重み付け目的および再ラベル付け目的を実現する。モデル訓練器は、メタ再ラベル付けの初期化として機能するように、および、間違ってラベル付けされたデータからの監視を拡大するように、ラベル推定目的を使用する。監視されない正規化目的は、ラベル推定を強化し、表現学習全体を改良する。
【0019】
図1を参照して、いくつかの実現化例では、例示的なシステム100は処理システム10を含む。処理システム10は、固定された、またはスケーラブル/柔軟なコンピューティングリソース12(たとえばデータ処理ハードウェア)および/またはストレージリソース14(たとえばメモリハードウェア)を有する、単一のコンピュータ、複数のコンピュータ、または分散システム(たとえばクラウド環境)であってもよい。処理システム10は、モデル訓練器110を実行する。モデル訓練器110は、入力データに基づいて予測を立てるように目標モデル150(たとえばディープニューラルネットワーク(deep neural network :DNN))を訓練する。たとえば、モデル訓練器110は、畳み込みニューラルネットワーク(convolutional neural network:CNN)を訓練する。モデル訓練器110は、1組のラベル付き訓練サンプル112、112Gについて目標モデル150を訓練する。ラベル付き訓練サンプルは、訓練データと、当該訓練データのためのラベルとの双方を含む。ラベルは、目標モデル150のための正しい結果の注釈または他の表示を含む。対照的に、ラベルなし訓練サンプルは、対応するラベルのない訓練データのみを含む。
【0020】
たとえば、音声データを文字に起こすように訓練されるモデルのためのラベル付きデータは、当該音声データと、当該音声データの対応する文字起こしとを含む。同じ目標モデル150のためのラベルなしデータは、文字起こしのない当該音声データを含むであろう。ラベル付きデータを用いて、目標モデル150は、訓練サンプルに基づいて予測を立て、次に、当該予測をグラウンドトゥルースとして機能するラベルと比較して、当該予測がどれくらい正確だったかを判定してもよい。このため、各ラベル付き訓練サンプル112Gは、訓練データ114Gと、関連付けられた所与のラベル116Gとの双方を含む。
【0021】
ラベル付き訓練サンプル112Gは、目標モデル150がその予測を立てるために必要とするあらゆるデータを表わしていてもよい。たとえば、訓練データ114Gは、(たとえば物体検出、分類などのための)画像データのフレーム、(たとえば文字起こし、音声認識などのための)音声データのフレーム、および/または(たとえば自然言語分類などのための)テキストを含んでいてもよい。いくつかの実現化例では、1組の訓練サンプル112Gの各訓練サンプル112Gは画像であり、所与のラベル116Gは当該画像のテキスト記述子である。ラベル付き訓練サンプル112Gは、処理システム10上(たとえばメモリハードウェア14内)に格納されてもよく、もしくは、別のエンティティからネットワークまたは他の通信チャネルを介して受信されてもよい。モデル訓練器110は、1組の訓練サンプル112Gからラベル付き訓練サンプル112Gをバッチ単位(すなわち、訓練の反復ごとに異なるバッチ)で選択してもよい。
【0022】
モデル訓練器110は、疑似ラベル生成器210を含む。複数の訓練反復の各訓練反復中、および1組のラベル付き訓練サンプル112Gにおける各訓練サンプル112Gについて、疑似ラベル生成器210は、対応するラベル付き訓練サンプル112Gのための疑似ラベル116Pを生成する。疑似ラベル116Pは、疑似ラベル生成器210によって生成された疑似ラベル116Pを用いた訓練サンプル112Gの再ラベル付けを表わす。
【0023】
ここで
図2を参照して、いくつかの実現化例では、疑似ラベル生成器210は、サンプル拡張器220と、サンプル平均計算器230とを含む。サンプル拡張器220は、疑似ラベル生成器210が訓練サンプル112Gのための疑似ラベル116Pを生成すると、ラベル付き訓練サンプル112Gに基づいて複数の拡張された訓練サンプル112A、112Aa~nを生成する。サンプル拡張器220は、拡張された訓練サンプル112Aごとに異なる変更を入力された訓練サンプル112Gに導入することにより、拡張された訓練サンプル112Aを生成する。たとえば、サンプル拡張器220は、ラベル付き訓練サンプル112Gから拡張された訓練サンプル112Aを生成するために、予め定められた量またはランダムな量だけ、値を増加または減少させる。別の例として、ラベル付き訓練サンプル112Gが画像データのフレームを含む場合、サンプル拡張器220は、画像を回転させたり、画像をフリップしたり、画像をトリミングするなどしてもよい。サンプル拡張器220は、データを拡大するかまたはデータを攪乱させる他の従来の手段も使用してもよい。
【0024】
拡張された訓練サンプル112Aにラベルを追加するために、疑似ラベル生成器210は、いくつかの例では、目標モデル150(すなわち、機械学習モデル)を使用して、拡張された訓練サンプル112Aの各々について、予測されるラベル222、220a~nを生成する。サンプル平均計算器230は、拡張された訓練サンプル112Aの各々について目標モデル150によって生成された各予測されるラベル222を平均化して、入力されたラベル訓練サンプル112Gのための疑似ラベル116Pを生成してもよい。すなわち、いくつかの実現化例では、疑似ラベル生成器210は、所与のラベル付き訓練サンプル112Gのために、複数の拡張された訓練サンプル112Aを生成し、拡張された訓練サンプル112Aの各々について予測されるラベル222を生成し、生成された拡張さ
れた訓練サンプル112Aの各々についての予測されるラベル222を平均化して、対応するラベル付き訓練サンプル112Gのための疑似ラベル116Pを生成する。
【0025】
図1を再度参照して、モデル訓練器110は、重み推定器130も含む。重み推定器130は、各訓練反復中、1組の訓練サンプル112Gにおける各訓練サンプル112Gについて、訓練サンプル112Gの重み132を推定する。訓練サンプル112Gの重み132は、ラベル付き訓練サンプル112Gの所与のラベル116Gの精度を示す。たとえば、より高い重みは、所与のラベル116Gが正確である確率がより高いことを示す。このため、重み推定器130は、ラベル付き訓練サンプル112Gが間違ってラベル付けされる可能性を判定する。
【0026】
いくつかの例では、重み推定器130は、ラベル付き訓練サンプル112Gから、および、1組の信頼できる訓練サンプル112Tからの信頼できる訓練サンプル112Tから目標モデル150によって立てられた予測に基づいて、重み132を判定する。モデル訓練器110は、信頼できるサンプル112Tの信頼できるラベル116Tは高品質であり、および/またはクリーンであると仮定する。すなわち、信頼できるラベル116Tは正確である。モデル訓練器110は、訓練された目標モデル150が1組の信頼できる訓練サンプル112Tに対する最高の性能を取得するように各ラベル付き訓練サンプル112Gについての最適な重み132を判定することにより、重み132を学習可能パラメータとして扱ってもよい。
【0027】
重み132を判定することは(各更新ステップが収束まで目標モデル150を訓練することを必要とするため)計算上の費用(コスト)がかかるかもしれないため、オプションで、重み推定器130は、ラベル付き訓練サンプル112Gの最適な重み132のオンライン近似を判定することによって、重み132を推定する。オンライン近似は、確率的勾配降下最適化を使用することを含んでいてもよい。いくつかの実現化例では、最適な重み132は、目標モデル150の訓練損失を最小化する。すなわち、最適な重み132は、目標モデル150の最低の訓練損失をもたらす重みである。モデル訓練器110は、二次導関数を用いた逆伝搬に基づいて重み132を最適化してもよい。
【0028】
サンプル区分器140は、各訓練サンプル112Gと、関連付けられた重み132と、関連付けられた疑似ラベル116Pとを受信する。サンプル区分器140は、重みしきい値142を含む。各ラベル付き訓練サンプル112Gについて、サンプル区分器140は、ラベル付き訓練サンプル112Gの重み132が重みしきい値142を満たすかどうかを判定する。たとえば、サンプル区分器140は、重み132が重みしきい値142を上回るかどうかを判定する。
【0029】
ラベル付き訓練サンプル112Gの重み132が重みしきい値142を満たす場合、サンプル区分器140は、訓練サンプル112Gを、1組のクリーンにラベル付けされた訓練サンプル112Cに追加する。クリーンにラベル付けされた訓練サンプル112Cは、訓練データ114と、クリーンなラベル116C(すなわち、サンプル区分器140によってクリーンであると判定された所与のラベル116G)とを含む。ラベル付き訓練サンプル112Gの重み132が重みしきい値142を満たさない場合、サンプル区分器140は、ラベル付き訓練サンプル112Gを、1組の間違ってラベル付けされた訓練サンプル112Mに追加する。このため、間違ってラベル付けされたと思われる訓練サンプル112Gは、間違ってラベル付けされたデータからの監視を拡大するために、クリーンにラベル付けされたと思われる訓練サンプル112Gから分離される。
【0030】
ノイズ比が高い(すなわち、ラベル付き訓練サンプルの112Gの多くがノイズを有する)場合、モデル訓練器によるメタ最適化ベースの再重み付けおよび再ラベル付けは、間
違った方向に導く最適化を効果的に防止する(すなわち、多くのラベル付き訓練サンプル112Gがゼロのまたはゼロに近い重み132を有するであろう)。しかしながら、間違ってラベル付けされた訓練サンプル112Mは依然として、貴重な訓練データを提供する場合がある。このため、かなりの量のデータを破棄する可能性を避けるために、間違ってラベル付けされた訓練サンプル112Mは、訓練データ114と、所与のラベル116Gの代わりに、関連付けられた疑似ラベル116Pとを含む。すなわち、間違ってラベル付けされた訓練サンプル112Mのために、疑似ラベル116Pが、所与のラベル116Gの代わりに用いられる。
【0031】
いくつかの例では、モデル訓練器110は、対応する所与のラベル116Gを使用する1組のクリーンにラベル付けされた訓練サンプル112Cと、対応する疑似ラベル116Pを使用する1組の間違ってラベル付けされた訓練サンプル112Mとを用いて、目標モデル150を訓練する。目標モデル150は、上述のステップのうちのいくつかまたはすべてを繰り返す任意の数の訓練反復を使用して徐々に訓練されてもよい。
【0032】
ここで
図3を参照して、いくつかの実現化例では、モデル訓練器110は、凸結合生成器310を含む。凸結合生成器310は、訓練データ114と、関連付けられた信頼できるラベル116Tとを含む、1組の信頼できる訓練サンプル112Tを取得する。凸結合生成器310は、目標モデル150を訓練するための凸結合312を生成する。いくつかの例では、凸結合生成器310は、1組の信頼できる訓練サンプル112Tと1組のラベル付き訓練サンプル112GとにペアのMixUpを適用する。MixUp正規化は、モデル訓練器110が、過剰適合のおそれなく、信頼できる訓練サンプル112Tからの信頼できる情報を活用することを可能にする。MixUp正規化は、凸結合の形をした訓練サンプル112G、112TとMixUp係数とを使用して、追加の監視損失を構成する。
【0033】
いくつかの例では、モデル訓練器110は、損失計算器320を含む。損失計算器320は、対応する所与のラベル116Gを使用する1組のクリーンにラベル付けされた訓練サンプル112Cに基づいて、第1の損失322、322aを判定する。損失計算器320は、対応する疑似ラベル116Pを使用する1組の間違ってラベル付けされた訓練サンプル112Mに基づいて、第2の損失322bを判定してもよい。損失計算器320は、1組の信頼できる訓練サンプル112Tの凸結合312aに基づいて、第3の損失322cを判定してもよく、1組のラベル付き訓練サンプル112Gの凸結合312bに基づいて、第4の損失322dを判定してもよい。いくつかの実現化例では、損失計算器320は、1組のラベル付き訓練サンプル112Gの所与のラベル116Gと1組のラベル付き訓練サンプル112Gの疑似ラベル116Pとの間のカルバック・ライブラー(KL)発散に基づいて、第5の損失322eを判定する。KL発散損失322eは、拡張された訓練サンプル112Aの矛盾を減少させることによって、疑似ラベル116Pの生成を鋭敏にする。これは、理想的な疑似ラベル116Pが正確なラベルにできるだけ近づくべきであるためである。拡張された訓練サンプル112Aについての予測が互いに矛盾することになっている(たとえば、訓練データ114の小さい変化が予測の大きい変化をもたらす)場合、疑似ラベル116Pからの寄与は、目標モデル150を識別的になるよう促さない。このため、KL発散損失322eは、疑似ラベル116Pの整合性を実施するのを助ける。
【0034】
損失計算器320は、第1の損失322a、第2の損失322b、第3の損失322c、第4の損失322d、および第5の損失322eのうちの1つ以上に基づいて、総損失330を判定してもよい。いくつかの例では、損失322a~eのうちの1つ以上(すなわち、第3の損失322cおよび第4の損失322d)は、softmax交差エントロピー損失である。総損失330に基づいて、損失計算器320は、目標モデル150のモ
デルパラメータ340を更新する。損失計算器は、更新されたモデルパラメータ340を判定するために、総損失330に基づいてワンステップの確率的勾配を適用してもよい。
【0035】
ここで
図4を参照して、いくつかの実現化例では、モデル訓練器110は、目標モデル150を訓練するためのアルゴリズム400を実現する。ここで、モデル訓練器は、ラベル付き訓練サンプル112G(すなわちDu)と、信頼できる訓練サンプル112T(すなわちDp)とを、入力として受け入れる。モデル訓練器110は、各訓練反復(すなわち時間ステップt)について、目標モデル150のモデルパラメータ340を更新する。アルゴリズム400を使用して、モデル訓練器110は、ステップ1で拡張された訓練サンプル112Aを生成し、ステップ2で疑似ラベル116Pを推定または生成することによって、目標モデル150を訓練する。ステップ3で、モデル訓練器110は、最適な重み132を判定し、および/または、重み推定器130(すなわちλ)を更新する。ステップ4で、モデル訓練器110は、1組のラベル付き訓練サンプル112Gを、1組のクリーンにラベル付けされた訓練サンプル112Cと、1組の間違ってラベル付けされた訓練サンプル112Mとに分割する。ステップ5で、モデル訓練器はMixUp凸結合312を計算する。ステップ6で、モデル訓練器110は総損失330を判定し、ステップ
7で、ワンステップの確率的勾配を実行して、次の訓練反復のための更新されたモデルパラメータ340を取得する。いくつかの例では、モデル訓練器110は、ワンステップの確率的勾配最適化中に運動量値を使用して厳密な運動量更新を判定する。
【0036】
図5は、ラベルノイズが存在する状態でのロバストな訓練のための方法500のための動作の例示的な構成のフローチャートである。方法500は、動作502で、データ処理ハードウェア12で、1組のラベル付き訓練サンプル112Gを取得するステップを含む。各ラベル付き訓練サンプル112Gは、所与のラベル116Gに関連付けられる。動作504で、複数の訓練反復の各訓練反復中、方法500は、1組のラベル付き訓練サンプル112Gにおける各ラベル付き訓練サンプル112Gについて、データ処理ハードウェア12が、ラベル付き訓練サンプル112Gのための疑似ラベル116Pを生成することを含む。動作506で、方法500は、データ処理ハードウェア12が、所与のラベル116Gの精度を示すラベル付き訓練サンプル112Gの重み132を推定することを含む。
【0037】
方法500は、動作508で、データ処理ハードウェア12が、ラベル付き訓練サンプル112Gの重み132が重みしきい値142を満たすかどうかを判定することを含む。ラベル付き訓練サンプル111Gの重み132が重みしきい値142を満たす場合、方法500は、動作510で、データ処理ハードウェア12が、ラベル付き訓練サンプル112Gを、1組のクリーンにラベル付けされた訓練サンプル112Cに追加することを含む。動作512で、方法500は、ラベル付き訓練サンプル112Gの重み132が重みしきい値142を満たさない場合、データ処理ハードウェア12が、ラベル付き訓練サンプル112Gを、1組の間違ってラベル付けされた訓練サンプル112Mに追加することを含む。動作514で、方法500は、データ処理ハードウェア12が、対応する所与のラベル116Gを使用する1組のクリーンにラベル付けされた訓練サンプル112Cと、対応する疑似ラベル116Pを使用する1組の間違ってラベル付けされた訓練サンプル112Mとを用いて、機械学習モデル150を訓練することを含む。
【0038】
図6は、この文書で説明されるシステムおよび方法を実現するために使用され得る例示的なコンピューティングデバイス600の概略図である。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータといった、さまざまな形態のデジタルコンピュータを表わすよう意図されている。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は単なる例示であることが意図されており
、この文書で説明される、および/または請求項に記載されるこの発明の実現化例を限定するよう意図されてはいない。
【0039】
コンピューティングデバイス600は、プロセッサ610と、メモリ620と、記憶装置630と、メモリ620および高速拡張ポート650に接続している高速インターフェイス/コントローラ640と、低速バス670および記憶装置630に接続している低速インターフェイス/コントローラ660とを含む。コンポーネント610、620、630、640、650、および660の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上にまたは他の態様で適宜搭載されてもよい。プロセッサ610は、コンピューティングデバイス600内で実行される命令を処理可能であり、これらの命令は、グラフィカルユーザインターフェイス(graphical user interface:GUI)のためのグラフィック情報を、高速インターフェイス640に結合されたディスプレイ680などの外部入力/出力デバイス上に表示するために、メモリ620内または記憶装置630上に格納された命令を含む。他の実現化例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜使用されてもよい。また、複数のコンピューティングデバイス600が接続されてもよく、各デバイスは(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の部分を提供する。
【0040】
メモリ620は、情報をコンピューティングデバイス600内に非一時的に格納する。メモリ620は、コンピュータ読取可能媒体、揮発性メモリユニット、または不揮発性メモリユニットであってもよい。非一時的メモリ620は、プログラム(たとえば命令のシーケンス)またはデータ(たとえばプログラム状態情報)を、コンピューティングデバイス600による使用のために一時的または永続的に格納するために使用される物理デバイスであってもよい。不揮発性メモリの例は、フラッシュメモリおよび読出専用メモリ(read-only memory:ROM)/プログラマブル読出専用メモリ(programmable read-only memory:PROM)/消去可能プログラマブル読出専用メモリ(erasable programmable read-only memory:EPROM)/電子的消去可能プログラマブル読出専用メモリ(electronically erasable programmable read-only memory:EEPROM)(たとえば、典型的にはブートプログラムなどのファームウェアのために使用される)を含むものの、それらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(random access memory:RAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)、スタティックランダムアクセスメモリ(static random access memory:S
RAM)、相変化メモリ(phase change memory:PCM)、およびディスクまたはテー
プを含むものの、それらに限定されない。
【0041】
記憶装置630は、コンピューティングデバイス600のための大容量記憶を提供可能である。いくつかの実現化例では、記憶装置630は、コンピュータ読取可能媒体である。さまざまな異なる実現化例では、記憶装置630は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリまたは他の同様のソリッドステートメモリデバイス、もしくは、ストレージエリアネットワークまたは他の構成におけるデバイスを含むデバイスのアレイであってもよい。追加の実現化例では、コンピュータプログラム製品が情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると上述のような1つ以上の方法を行なう命令を含む。情報担体は、メモリ620、記憶装置630、またはプロセッサ610上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体である。
【0042】
高速コントローラ640はコンピューティングデバイス600のための帯域幅集約的な動作を管理し、一方、低速コントローラ660はより低い帯域幅集約的な動作を管理する。役目のそのような割当ては例示に過ぎない。いくつかの実現化例では、高速コントロー
ラ640は、メモリ620、ディスプレイ680に(たとえば、グラフィックスプロセッサまたはアクセラレータを介して)結合されるとともに、さまざまな拡張カード(図示せず)を受け付け得る高速拡張ポート650に結合される。いくつかの実現化例では、低速コントローラ660は、記憶装置630および低速拡張ポート690に結合される。さまざまな通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポート690は、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入力/出力デバイスに、もしくは、スイッチまたはルータなどのネットワーキングデバイスに、たとえばネットワークアダプタを介して結合されてもよい。
【0043】
コンピューティングデバイス600は、図に示すように多くの異なる形態で実現されてもよい。たとえばそれは、標準サーバ600aとして、またはそのようなサーバ600aのグループで複数回実現されてもよく、ラップトップコンピュータ600bとして、またはラックサーバシステム600cの一部として実現されてもよい。
【0044】
ここに説明されるシステムおよび技術のさまざまな実現化例は、デジタル電子および/または光学回路、集積回路、特別に設計されたASIC(application specific integrated circuit:特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、
ソフトウェア、および/またはそれらの組合せにおいて実現され得る。これらのさまざまな実現化例は、データおよび命令を記憶システムとの間で送受信するように結合された、専用または汎用であり得る少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むプログラマブルシステム上で実行可能および/または解釈可能である1つ以上のコンピュータプログラムにおける実現を含み得る。
【0045】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)とは、コンピューティングデバイスにタスクを行なわせるコンピュータソフトウェアを指していてもよい。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれてもよい。例示的なアプリケーションは、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲーミングアプリケーションを含むものの、それらに限定されない。
【0046】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている)は、プログラマブルプロセッサのための機械命令を含み、高レベルの手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械語で実現され得る。ここに使用されるように、「機械読取可能媒体」および「コンピュータ読取可能媒体」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、非一時的コンピュータ読取可能媒体、機器および/またはデバイス(たとえば磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(Programmable Logic Device:PLD))を指し、機械命令を機械読取可能信号として受信す
る機械読取可能媒体を含む。「機械読取可能信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0047】
この明細書で説明されるプロセスおよび論理フローは、データ処理ハードウェアとも呼ばれる1つ以上のプログラマブルプロセッサが、入力データに基づいて動作することおよび出力を生成することによって機能を行なうために1つ以上のコンピュータプログラムを実行することによって行なわれ得る。プロセスおよび論理フローはまた、たとえばFPG
A(field programmable gate array:フィールドプログラマブルゲートアレイ)または
ASIC(特定用途向け集積回路)といった専用論理回路によって行なわれ得る。コンピュータプログラムの実行にとって好適であるプロセッサは、一例として、汎用および専用マイクロプロセッサと、任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサとを含む。一般に、プロセッサは、命令およびデータを、読出専用メモリまたはランダムアクセスメモリまたはそれら双方から受信するであろう。コンピュータの本質的要素は、命令を行なうためのプロセッサと、命令およびデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータはまた、たとえば磁気ディスク、光磁気ディスク、または光ディスクといった、データを格納するための1つ以上の大容量記憶装置を含むであろう。もしくは、当該大容量記憶装置からデータを受信し、または当該大容量記憶装置にデータを転送し、またはそれら双方を行なうように動作可能に結合されるであろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを格納するのに好適であるコンピュータ読取可能媒体は、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、一例として、半導体メモリ装置、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば内部ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびに、CD ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、専用論理回路によって補足され、または専用論理回路に組込まれ得る。
【0048】
ユーザとの相互作用を提供するために、この開示の1つ以上の局面は、情報をユーザに表示するためのディスプレイデバイス、たとえばCRT(cathode ray tube:陰極線管)、LCD(liquid crystal display:液晶ディスプレイ)モニター、またはタッチスクリーンと、オプションで、ユーザがコンピュータへの入力を提供できるようにするキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実現され得る。他の種類のデバイスも同様に、ユーザとの相互作用を提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得る。また、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、当該デバイスから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答してウェブページを当該ウェブブラウザに送信することによって、ユーザと相互作用することができる。
【0049】
多くの実現化例が説明されてきた。にもかかわらず、この開示の精神および範囲から逸脱することなく、さまざまな変更を行なってもよいということが理解されるであろう。したがって、他の実現化例は、請求の範囲内にある。