(57)【要約】      （修正有）【課題】マシン学習（ＭＬ）モデルおよび人工知能（ＡＩ）モデルのために敵対的サンプルを軽減するためのシステムを提供する。【解決手段】システムは、クライアントからＭＬサービスのためのクエリを受け取り、当のクエリに関する類似性スコアを、クライアントから受け取った複数の前のクエリに基づいて計算する。類似性スコアは、受け取ったクエリと前のクエリの間の類似性を表す。さらに、システムは、類似性スコアが所定の閾値を超えているとの判定に応答して、当のクエリが敵対的クエリであると判定する。【選択図】図４
2020201939.tif 000002
【特許請求の範囲】
【請求項１】
信頼できる環境でデータを処理するためのコンピュータで実施される方法であって、
ターゲットＭＬモデルによってサーブされるマシン学習（ＭＬ）サービスのために、クライアントからクエリを受け取るステップと、
前記クエリに関する類似性スコアを、前記クライアントから前に受け取った複数のクエリに基づいて計算するステップであって、前記類似性スコアが、前記受け取ったクエリと前記前のクエリとの間の類似性を表す、ステップと、
前記類似性スコアが所定の閾値を超えているかどうかを判定するステップと、
前記類似性スコアが所定の閾値を超えているとの判定に応答して、前記クエリが敵対的クエリであると判定するステップと、を含む方法。
【請求項２】
前記クエリが敵対的クエリであるとの判定に応答して、前記敵対的クエリに関連付けられた前記クライアントを敵対的クライアントとして指定するステップと、
前記ターゲットＭＬモデルの盲点の探査を防止するために、前記ターゲットＭＬモデルの代わりに、前記ターゲットＭＬモデルとともに訓練されたＭＬモデルの集合からの代替のＭＬモデルを用いて前記敵対的クライアントの後続のクエリにサービスするステップと、をさらに含む、請求項１に記載の方法。
【請求項３】
前記敵対的クライアントからの追加のクエリを阻止するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記代替のＭＬモデルは、前記後続のクエリ毎に、前記ＭＬモデルの集合からランダムに選択され、前記ランダムに選択されたＭＬモデルによって前記クライアントに返される信頼スコアを難読化する、請求項２に記載の方法。
【請求項５】
前記ＭＬモデルの集合が、異なるエポックを含む異なるパラメータを用いて前記ターゲットＭＬモデルとともに訓練されている、請求項２に記載の方法。
【請求項６】
前記類似性スコアが任意の２つのクエリに関する任意の２つの入力の間の距離に基づいて計算される、請求項１に記載の方法。
【請求項７】
前記２つの入力が画像である場合には、前記距離が前記２つの画像間の異なる画素のカウントを含む、請求項６に記載の方法。
【請求項８】
前記２つの入力が画像である場合には、前記距離が前記２つの画像間の画素の差の合計を含む、請求項６に記載の方法。
【請求項９】
前記２つの入力が２つの画像を含む場合には、前記距離が前記２つの画像間の画素の差の２乗平均平方根を含む、請求項６に記載の方法。
【請求項１０】
命令を記憶した非一時的マシン可読媒体であって、前記命令がプロセッサによって実行されたとき、前記プロセッサが、
ターゲットＭＬモデルによってサーブされるマシン学習（ＭＬ）サービスのために、クライアントからクエリを受け取るステップと、
前記クエリに関する類似性スコアを、前記クライアントから前に受け取った複数のクエリに基づいて計算するステップであって、前記類似性スコアが、前記受け取ったクエリと前記前のクエリの間の類似性を表す、ステップと、
前記類似性スコアが所定の閾値を超えているかどうかを判定するステップと、
前記類似性スコアが所定の閾値を超えているとの判定に応答して、前記クエリが敵対的クエリであると判定するステップと、を含む動作を遂行する、非一時的マシン可読媒体。
【請求項１１】
前記動作が、
前記クエリが敵対的クエリであるとの判定に応答して、前記敵対的クエリに関連付けられた前記クライアントを敵対的クライアントとして指定するステップと、
前記ターゲットＭＬモデルの盲点の探査を防止するために、前記ターゲットＭＬモデルの代わりに、前記ターゲットＭＬモデルとともに訓練されたＭＬモデルの集合からの代替のＭＬモデルを用いて、前記敵対的クライアントの後続のクエリにサービスするステップと、をさらに含む、請求項１０に記載の非一時的マシン可読媒体。
【請求項１２】
前記動作が、前記敵対的クライアントからの追加のクエリを阻止するステップをさらに含む、請求項１１に記載の非一時的マシン可読媒体。
【請求項１３】
前記代替のＭＬモデルは、前記後続のクエリ毎に、前記ＭＬモデルの集合からランダムに選択され、前記ランダムに選択されたＭＬモデルによって前記クライアントに返される信頼スコアを難読化する、請求項１１に記載の非一時的マシン可読媒体。
【請求項１４】
前記ＭＬモデルの集合が、異なるエポックを含む異なるパラメータを用いて前記ターゲットＭＬモデルとともに訓練されている、請求項１１に記載の非一時的マシン可読媒体。
【請求項１５】
前記類似性スコアが任意の２つのクエリに関する任意の２つの入力の間の距離に基づいて計算される、請求項１０に記載の非一時的マシン可読媒体。
【請求項１６】
プロセッサと、
命令を記憶するように前記プロセッサに結合されたメモリと、を備えるデータ処理システムであって、前記命令が前記プロセッサによって実行されたとき、前記プロセッサが、
ターゲットＭＬモデルによってサーブされるマシン学習（ＭＬ）サービスのために、クライアントからクエリを受け取るステップと、
前記クエリに関する類似性スコアを、前記クライアントから前に受け取った複数のクエリに基づいて計算するステップであって、前記類似性スコアが、前記受け取ったクエリと前記前のクエリの間の類似性を表す、ステップと、
前記類似性スコアが所定の閾値を超えているかどうかを判定するステップと、
前記類似性スコアが所定の閾値を超えているとの判定に応答して、前記クエリが敵対的クエリであると判定するステップと、を含む動作を遂行する、データ処理システム。
【請求項１７】
前記動作が、
前記クエリが敵対的クエリであるとの判定に応答して、前記敵対的クエリに関連付けられた前記クライアントを敵対的クライアントとして指定するステップと、
前記ターゲットＭＬモデルの盲点の探査を防止するために、前記ターゲットＭＬモデルの代わりに、前記ターゲットＭＬモデルとともに訓練されたＭＬモデルの集合からの代替のＭＬモデルを用いて、前記敵対的クライアントの後続のクエリにサービスするステップと、をさらに含む、請求項１６に記載のシステム。
【請求項１８】
前記動作が、前記敵対的クライアントからの追加のクエリを阻止するステップをさらに含む、請求項１７に記載のシステム。
【請求項１９】
前記代替のＭＬモデルは、前記後続のクエリ毎に、前記ＭＬモデルの集合からランダムに選択され、前記ランダムに選択されたＭＬモデルによって前記クライアントに返される信頼スコアを難読化する、請求項１７に記載のシステム。
【請求項２０】
前記ＭＬモデルの集合が、異なるエポックを含む異なるパラメータを用いて前記ターゲットＭＬモデルとともに訓練されている、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般に、安全なマルチパーティ・コンピューティングに関する。より詳細には、本発明の実施形態は、マシン学習（ＭＬ）モデルおよび人工知能（ＡＩ）モデルのために敵対的サンプルを軽減するためのシステムに関する。
【背景技術】
【０００２】
クラウド・プロバイダによってクラウドＡＰＩを通じて提供され得るＭＬモデルおよび／またはＡＩモデルは、アプリケーションによって、コンテンツを検閲／フィルタリングしてマルウェア／脅威を分類／検知するために使用され得る。しかしながら、敵対者は、ＭＬモデルまたはＡＩモデルをだます「敵対的サンプル」を生成するために、ＭＬモデルまたはＡＩモデルの「盲点」を調査するための連続したクエリを送ることができる。
【０００３】
敵対的サンプルを識別するために、人手によって、フィルタリングされたコンテンツおよび検知が検査され得る。しかし、この手法は時間がかかるうえにスケーラブルでない。
【発明の概要】
【０００４】
本発明の実施形態が、限定ではなく例として示され、添付図面では類似の参照は類似の要素を指示する。
【図面の簡単な説明】
【０００５】
【図１】一実施形態によるネットワークシステムを示すブロック図である。
【図２】一実施形態によるＭＬサービスモジュールの一例を示すブロック図である。
【図３】一実施形態による、ＭＬサービスを提供するシステムを示すブロック図である。
【図４】一実施形態による方法を示す流れ図である。
【図５】一実施形態による方法を示す流れ図である。
【図６】一実施形態によるデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【０００６】
本発明の様々な実施形態および態様が、以下で論じられる詳細を参照しながら説明され、添付図面は様々な実施形態を示す。以下の説明および図面は本発明の実例であり、本発明を限定するものと解釈されるべきではない。本発明の様々な実施形態の完全な理解を提供するために、多くの具体的な詳細が説明される。しかしながら、特定の事例では、本発明の実施形態の簡潔な議論を提供するために、周知の詳細または旧来の詳細は説明されない。
【０００７】
本明細書における「一実施形態」または「実施形態」に対する参照は、実施形態に関連して説明された特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれ得ることを意味する。様々な位置において「一実施形態では」という慣用句が出現することは、必ずしもすべてが本明細書における同一の実施形態を指すわけではない。
【０００８】
本開示の実施形態は、マシン学習モデルまたは人工知能モデル（ＭＬモデル／ＡＩモデル）の「盲点」を利用する「敵対的サンプル」を軽減するための方法およびシステムを開示するものである。一実施形態によれば、このシステムはクライアントからＭＬサービスのためのクエリを受け取る。このシステムは、当のクエリに関する類似性スコアを、クライアントから受け取った複数の前のクエリに基づいて計算するものであり、類似性スコアは受け取ったクエリと前のクエリの間の類似性を表す。このシステムは、類似性スコアが所定の閾値を超えているとの判定に応答して、当のクエリが敵対的クエリであると判定する。
【０００９】
図１は一実施形態によるネットワークシステムを示すブロック図である。図１を参照して、システム構成１００は、それだけではないが、ネットワーク１０３上のデータ処理サーバ１０４に対して通信可能に結合された１つまたは複数のクライアントデバイス１０１〜１０２を含む。クライアントデバイス１０１〜１０２は、パソコン（たとえばデスクトップ・コンピュータ、ノートパソコン、およびタブレット型コンピュータ）、「シン」クライアント、携帯情報端末（ＰＤＡ）、ウェブで使用可能な設備、スマートウォッチ、または携帯電話（たとえばスマートフォン）などの任意のタイプのクライアントデバイスであってよい。あるいは、クライアントデバイス１０１〜１０２は他のサーバであってよい。ネットワーク１０３は、ローカルエリアネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク（ＷＡＮ）、または有線もしくは無線によってこれらを結合したものなど、任意のタイプのネットワークであってよい。ネットワーク１０３を通じた、クライアントデバイス１０１〜１０２とデータ処理サーバ１０４との間の通信は、たとえばＴＬＳ／ＳＳＬによって保護され得る。
【００１０】
データ処理サーバ（たとえばホスト）１０４は、ウェブ・サーバまたはクラウド・サーバ、アプリケーション・サーバ、バックエンド・サーバ、またはこれらの組合せなど、任意の種類のサーバまたはサーバのクラスタであってよい。サーバ１０４は、クライアントデバイス１０１〜１０２などのクライアントがサーバ１０４によって提供されるリソースまたはサービスにアクセスすることを可能にする、インターフェースを含むことができる。リソースまたはサービスの例には、コンテンツの検閲／フィルタリング、マルウェア／脅威の分類／検知のためのクラウドＡＩサービスが含まれ得る。クラウドＡＩサービスは、統計的なマシン学習（ＭＬ）／人工知能（ＡＩ）のアルゴリズムおよびモデルを使用して遂行され得る。ＭＬモデル／ＡＩモデルの例は、再現モデル、強化学習モデル、畳み込みニューラルネットワークモデルなど、一層または深層のニューラルネットワークモデルを含むことができる。サーバ１０４は、プライベート・クラウド、パブリック・クラウド、またはハイブリッド・クラウドであり得るクラウドに対するｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ（ＳａａＳ）システムもしくはｐｌａｔｆｏｒｍ−ａｓ−ａ−ｓｅｒｖｉｃｅ（ＰａａＳ）システムの一部分として構成され得る。インターフェースは、ウェブ・インターフェース、アプリケーション・プログラミング・インターフェース（ＡＰＩ）、および／またはコマンドライン・インターフェース（ＣＬＩ）を含み得る。
【００１１】
データ処理サーバ１０４は、クライアントによって送られたクエリおよび／または入力データを記憶するためのクエリ／入力データベース１３１を含むことができる。入力データの例は、検閲／フィルタリングおよび／または脅威検知のための前のクエリおよび入力データを含むことができる。
【００１２】
データ処理サーバ１０４はマシン学習（ＭＬ）サービスモジュール１０６および１つまたは複数のＭＬモデル群１０８〜１０９を含むことができる。ＭＬサービスモジュール１０６は、クライアント１０１〜１０２からＭＬ／ＡＩサービス要求を受け取り、要求が一旦満たされると要求者に結果を返すことができる。ＭＬモデル群１０８〜１０９は、ＭＬモデルの１つまたは複数の群を含むことができる。ＭＬモデルの群は同一のＭＬサービスをサーブすることができるが、各々が少し異なる予測スコアを返す。一実施形態では、ＭＬモデルの群は、別々の訓練パラメータを用いて一緒に訓練され、その結果、群内のＭＬモデルはそれぞれ別々の予測結果または信頼スコアを出力する。別々のモデル／訓練パラメータの例には、別々のエポック（訓練データを用いる回数）、収斂させるための繰り返し、活性化関数、中断率（モデルがニューラル・ネットワークの場合）などが含まれ得る。たとえば、オフライン訓練において、ＡＩモデルに対する最後の３つのチェックポイント（たとえばｔ＝Ｔ、ｔ＝Ｔ−１、ｔ＝Ｔ−２）が、群のＭＬモデル／ＡＩモデルとして使用され得る。これらの訓練されたモデルは、少し異なる出力結果（たとえば確率／信頼スコア）を生成するものの同一の推測（たとえば分類／脅威検知）を得るはずである。たとえば、同一の入力パラメータを有するコンテンツ・フィルタリング・クエリ（たとえば画像にわいせつな／描写のあからさまな題材があるかどうか分類する）は、群の３つのＭＬモデルを使用して３つの別個の出力予測（０．９０、０．９１および０．９０６など）を得るものの、同一の推測（画像にわいせつな／描写のあからさまな題材がある）をもたらすことができる。一実施形態では、ＭＬモデルの各群は、要求にサービスするためのターゲットＭＬモデルを選定することができる。別の実施形態では、各群内のモデルが、要求にサービスするためにランダムに選択される。この場合、コンテンツ・フィルタリングは、入力データにおけるわいせつな／描写のあからさまな題材、マルウェア／脅威の検知、または何らかの他のタイプのコンテンツを識別することができるが、毎回異なる信頼スコアを得る。
【００１３】
図２は一実施形態によるＭＬサービスモジュールの一例を示すブロック図である。ＭＬサービスモジュール１０６は、ＭＬ／ＡＩサービスのために、クライアント入力に関して難読化された信頼スコアを生成することができる。図２を参照して、一実施形態では、ＭＬサービスモジュール１０６は、クライアント入力／クエリ・レシーバ２０１、類似性検査２０３、疑わしい入力データの分類２０５、およびＭＬモデル・セレクタ２０７などのサブモジュールを含む。クライアント入力／クエリ・レシーバ２０１は、クライアント要求に関連付けられたクライアント・クエリおよび／またはクライアント入力を受け取ることができる。クライアント入力／クエリ・レシーバ２０１は、受け取った情報を、後の検索のために、図１のクエリ／入力データベース１３１などのクエリ／入力データベースにさらに記憶することができる。類似性検査２０３は、クライアント入力について、前のクライアント入力と比較した類似性スコアを生成することができる。疑わしい入力データの分類２０５は、クライアント入力に関する類似性スコアに基づいて、クライアント入力が疑わしいかどうか／敵対的かどうかを判定することができる。ＭＬモデル・セレクタ２０７は、クライアント・クエリにサービスするために、ＭＬモデル群内のＭＬモデルを選択することができる。一実施形態では、ＭＬモデルは、確率関数を使用してＭＬモデル群からランダムに選択される。
【００１４】
図３は、一実施形態による、ＭＬサービスを提供するシステムを示すブロック図である。システム３００は、図１のシステム１００を表し得る。図３を参照して、ホスト１０４は、クライアントのクエリおよび／または入力（複数可）３０１を受け取って、要求しているクライアントに難読化された信頼スコア３１１を返すことができる。クライアント入力は、クラウドＡＩサービスを使用するプログラムまたはアプリケーションから入来し得る。たとえば、アプリケーションは、画像における成人向けの題材、わいせつな題材、または暴力的な題材を検知したり検閲したりするようにシステム３００によって提供された画像検閲ＡＩサービスを使用することができる。
【００１５】
図３を参照して、一実施形態では、受け取られたクライアント入力は類似性検査２０３を通過する。入力類似性検査２０３は、クエリの入力が同じクライアントの以前の入力と比較してどれくらい「類似している」かを指示する類似性スコアを生成することができる。別の実施形態では、入力類似性検査２０３は、すべてのクライアントの予定時間範囲内のクエリの入力について、以前の入力と比較した類似性スコアを生成する。こうすることの動機は、攻撃者が、「敵対的サンプル」を生成するために、それぞれ少し異なる動揺を伴う入力のセットを用いてＡＩモデルを調査しなければならないことである。軽微な変量を伴うこれらの入力の各々に対する出力の信頼スコアは、ＭＬモデルの勾配情報を調査して推定するために使用され得る。攻撃者は、推定された勾配情報に基づいて、モデル出力の信頼スコアを確実に減少させる敵対的サンプルを作ることができ、敵対的サンプルがＡＩモデルをだます可能性が増大する。難読化された信頼スコアを用いると、ＭＬモデル群のランダムに選択されたＭＬモデルによって信頼スコアが生成されるので、攻撃者にとって、勾配情報を推定して、モデルの信頼スコアを減少させる動揺の方向を見い出すのがはるかに難しくなるはずである。
【００１６】
類似性スコアは、別々のアプリケーション／クライアント入力に対して様々なやり方で生成され得る。たとえば、一実施形態では、類似性スコアは入力（たとえばｘ）と前の入力（たとえばｘ’）の間の距離スコアとして実施され得る。一実施形態では、入力画像については、距離スコアはＬ０とＬ１とＬ２の組合せであり得、Ｌ０はｘとｘ’の間の異なる画素の数のカウントに基づいて計算され、Ｌ１はすべての画素についての差（たとえばｘ−ｘ’）の合計であり、Ｌ２はすべての画素についての差の２乗平均平方根（たとえばｓｑｒｔ（ｘ２−ｘ’２））である。
【００１７】
疑わしい入力データの分類２０５は、類似性スコアに基づいて、類似性スコアが所定の閾値スコアを超えた場合にはクライアント入力データを疑わしいものと分類し、類似性スコアが所定の閾値スコア以下であれば、クライアント入力データを正常なものと分類することができる。
【００１８】
入力が正常なものと分類された場合には、クライアント入力に基づいて予測タスクを遂行するためのターゲットＭＬモデル／ＡＩモデル２０７が選択され得る。入力が疑わしいものと分類された場合には、クライアント入力に基づいて予測タスクを遂行するために、ＭＬモデル／ＡＩモデルは、ターゲットＭＬモデル／ＡＩモデルとともに少し異なるパラメータを用いて訓練されたＭＬモデル／ＡＩモデルの集合（たとえばＭＬモデル群２０９）からランダムに選択され得る。予測精度の観点から、ターゲット・モデルとあまり異ならず、なおかつ同一の推論結果をもたらす代替モデルを得るのが目的であることに留意されたい。予測タスク向けの異なる予測精度によって、難読化された信頼スコア２１１が生成され得る。ここで、信頼スコアを難読化することは、クライアント入力として同一の入力サンプルが使用されるとき確率／信頼スコアを多様にすることを指し、信頼スコアにおける差が、敵対的入力プロービングに明瞭なパターンを与えないことに留意されたい。そこで、難読化された信頼スコアは、敵対的サンプルを使用する敵対的プロービングを防止する。過剰適合、訓練中の不十分なデータセットまたはＡＩモデルの欠点などの様々な理由のために、ＭＬモデル／ＡＩモデルが「盲点」を有し得る（推論が不正確になる）ことに留意されたい。「盲点」があると、敵対者は、「盲点」を起動する入力サンプルを確実に作るために、ＡＩモデルを傾向に関して調査することができる。
【００１９】
図４は、一実施形態による方法を示す流れ図である。処理４００を遂行し得る処理ロジックは、ソフトウェア、ハードウェア、またはこれらの組合せを含み得る。たとえば、処理４００は、図１のデータ処理サーバ（たとえばホスト）１０４によって遂行され得る。図４を参照して、ブロック４０１において、処理ロジックはクライアントからマシン学習（ＭＬ）サービスのためのクエリを受け取る。ブロック４０２において、処理ロジックは、クライアントから受け取った複数の前のクエリに基づいて、当のクエリに関する類似性スコアを計算し、類似性スコアは受け取ったクエリと前のクエリの間の類似性を表す。ブロック４０３において、処理ロジックは、類似性スコアが所定の閾値を超えているとの判定に応答して、当のクエリが敵対的クエリであると判定する。
【００２０】
図５は一実施形態による方法を示す流れ図である。処理５００を遂行し得る処理ロジックは、ソフトウェア、ハードウェア、またはこれらの組合せを含み得る。たとえば、処理５００は、図１のデータ処理サーバ（たとえばホスト）１０４によって遂行され得る。図５を参照して、ブロック５０１において、処理ロジックは、敵対的クエリに関連付けられたクライアントを敵対的クライアントであると識別する。ブロック５０２において、処理ロジックは、ターゲットＭＬモデルの盲点の探査を防止するために、ターゲットＭＬモデルの代わりに、ターゲットＭＬモデルとともに訓練されたＭＬモデルの集合からの代替のＭＬモデルを用いて、敵対的クライアントの後続のクエリにサービスする。ブロック５０３において、代替のＭＬモデルは、後続のクエリ毎に、ＭＬモデルの集合からがランダムに選択され、ランダムに選択されたＭＬモデルによってクライアントに返される信頼スコアを難読化する。
【００２１】
一実施形態では、処理ロジックは、敵対的クライアントからの追加のクエリをさらに阻止する。別の実施形態では、ＭＬモデルの集合は、異なるエポックを含む異なるパラメータを用いてターゲットＭＬモデルとともに訓練されている。
【００２２】
一実施形態では、類似性スコアは、任意の２つのクエリに関する任意の２つの入力の間の距離に基づいて計算される。別の実施形態では、２つの入力が画像である場合には、距離は２つの画像間の異なる画素のカウントを含む。別の実施形態では、距離は、２つの画像間の画素の差の合計を含む。別の実施形態では、距離は、２つの画像間の画素の差の２乗平均平方根を含む。
【００２３】
上記で示されて説明されたコンポーネントのうちいくつかまたはすべてが、ソフトウェア、ハードウェア、またはこれらの組合せで実施され得ることに留意されたい。たとえば、そのようなコンポーネントは持続的記憶デバイスにインストールして記憶されたソフトウェアとして実施され得、本出願の全体にわたって説明された処理または演算を実行するために、プロセッサ（図示せず）によってメモリにロードされ、かつ実行され得る。あるいは、そのようなコンポーネントは、集積回路（たとえば特定用途向けＩＣすなわちＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、またはフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）などの専用ハードウェアの中にプログラムされた、または組み込まれた、アプリケーションから、対応するドライバおよび／またはオペレーティングシステムを介してアクセス可能な実行可能コードとして実施され得る。その上、そのようなコンポーネントは、ソフトウェア・コンポーネントによって１つまたは複数の特定の命令を介してアクセス可能な命令セットの一部分として、プロセッサまたはプロセッサコアにおける特定のハードウェア・ロジックとして実施され得る。
【００２４】
図６は、本発明の一実施形態とともに使用され得るデータ処理システムの一例を示すブロック図である。たとえば、システム１５００は、上記で説明された処理または方法のうち任意のものを遂行する、上記で説明されたデータ処理システムのうち任意のものを表し得、たとえば上記で説明されたようなクライアント１０１〜１０２およびサーバ１０４など、たとえば上記で説明されたクライアントデバイスまたはサーバなどであってよい。
【００２５】
システム１５００は多くの様々な構成要素を含むことができる。これらの構成要素は、集積回路（ＩＣ）、ＩＣの一部分、個別の電子デバイス、またはコンピュータシステムのマザーボードもしくはアドイン・カードなどの回路基板に適合された他のモジュール、またはコンピュータシステムのシャーシの内部に別様に組み込まれた構成要素として実施され得る。
【００２６】
システム１５００は、コンピュータシステムの多くの構成要素の高レベルの概観を示すように意図されていることにも留意されたい。しかしながら、特定の実装形態には追加の構成要素が存在し得、その上、他の実装形態では、示された構成要素の種々の配置が生じ得ることを理解されたい。システム１５００は、デスクトップ・コンピュータ、ノートパソコン、タブレット型コンピュータ、サーバ、携帯電話、メディアプレーヤ、携帯情報端末（ＰＤＡ）、スマートウォッチ、パーソナル・コミュニケータ、ゲーム機、ネットワークのルータまたはハブ、無線アクセスポイント（ＡＰ）またはリピータ、セットトップ・ボックス、またはこれらの組合せを表し得る。さらに、単一のマシンまたはシステムしか示されていないが、「マシン」または「システム」という用語は、本明細書で論じられた技法のうち任意の１つまたは複数を遂行する１組（または複数の組）の命令を個々にまたは連帯的に実行するマシンまたはシステムの任意の収集を含むと解釈されるものとする。
【００２７】
一実施形態では、システム１５００は、バスまたは相互接続１５１０を介して、プロセッサ１５０１、メモリ１５０３、およびデバイス１５０５〜１５０８を含む。プロセッサ１５０１は、単一のプロセッサコアまたは複数のプロセッサコアを含む、単一のプロセッサまたは複数のプロセッサを表し得る。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）等の１つまたは複数の汎用プロセッサを表し得る。より詳細には、プロセッサ１５０１は、複数命令セット・コンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セット・コンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＭ）マイクロプロセッサ、他の命令セットを実施するプロセッサ、または命令セットの組合せを実施するプロセッサであってよい。プロセッサ１５０１は、特定用途向け集積回路（ＡＳＩＣ）、セルラー式プロセッサまたはベースバンド・プロセッサ、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワーク・プロセッサ、グラフィックス・プロセッサ、ネットワーク・プロセッサ、通信用プロセッサ、暗号プロセッサ、コプロセッサ、組み込み型プロセッサ、または命令を処理することができる何らかの他のタイプの論理などの１つまたは複数の専用プロセッサでもよい。
【００２８】
超低電圧プロセッサなど低電力のマルチコア・プロセッサ・ソケットであり得るプロセッサ１５０１は、システムの様々な構成要素と通信するための主処理ユニットおよび中央ハブとして働き得る。そのようなプロセッサはシステム・オン・チップ（ＳｏＣ）として実施され得る。プロセッサ１５０１は、本明細書で論じた動作およびステップを遂行するための命令を実行するように構成されている。システム１５００がさらに含み得るグラフィックス・インターフェースは、表示コントローラ、グラフィックス・プロセッサ、および／または表示デバイスを含み得る任意選択のグラフィックス・サブシステム１５０４と通信する。
【００２９】
プロセッサ１５０１はメモリ１５０３と通信してよく、メモリ１５０３は、一実施形態では、所与の量のシステムメモリを与えるために複数のメモリ・デバイスによって実施され得る。メモリ１５０３は、ランダムアクセスメモリ（ＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）または他のタイプの記憶デバイスなど、１つまたは複数の揮発性記憶（すなわちメモリ）デバイスを含み得る。メモリ１５０３は、プロセッサ１５０１または何らかの他のデバイスによって実行される命令のシーケンスを含む情報を記憶し得る。たとえば、種々のオペレーティングシステム、デバイス・ドライバ、ファームウェア（たとえば入出力基本システムすなわちＢＩＯＳ）の実行可能コードおよび／またはデータ、および／またはアプリケーションがメモリ１５０３にロードされ、プロセッサ１５０１によって実行され得る。オペレーティングシステムは、たとえばマイクロソフト（登録商標）のウィンドウズ（登録商標）オペレーティングシステム、アップルのマックＯＳ（登録商標）／ｉＯＳ（登録商標）、グーグル（登録商標）のアンドロイド（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｕｎｉｘ（登録商標）など任意の種類のオペレーティングシステム、またはＶｘＷｏｒｋｓなど他のリアルタイム・オペレーティングシステムもしくは組み込み型オペレーティングシステムであり得る。
【００３０】
システム１５００がさらに含み得るデバイス１５０５〜１５０８などのＩＯデバイスは、ネットワーク・インターフェース・デバイス１５０５、任意選択の入力デバイス１５０６、および他の任意選択のＩＯデバイス１５０７を含む。ネットワーク・インターフェース・デバイス１５０５は、無線トランシーバおよび／またはネットワーク・インターフェース・カード（ＮＩＣ）を含み得る。無線トランシーバは、Ｗｉ−Ｆｉトランシーバ、赤外線トランシーバ、ブルートゥース（登録商標）・トランシーバ、ＷｉＭａｘトランシーバ、無線セルラー電話トランシーバ、衛星トランシーバ（たとえば全地球測位システム（ＧＰＳ）トランシーバ）、もしくは他の無線周波数（ＲＦ）トランシーバ、またはこれらの組合せであってよい。ＮＩＣはイーサネットカードであってよい。
【００３１】
入力デバイス１５０６は、マウス、タッチパッド、タッチセンシティブ・スクリーン（表示デバイス１５０４に組み込まれ得る）、スタイラスなどのポインタデバイス、および／またはキーボード（たとえば物理的キーボードまたはタッチセンシティブ・スクリーンの一部分として表示されたバーチャル・キーボード）を含み得る。たとえば、入力デバイス１５０６はタッチスクリーンに結合されたタッチスクリーン・コントローラを含み得る。タッチスクリーンおよびタッチスクリーン・コントローラは、たとえば、それだけではないが、容量技術、抵抗技術、赤外線技術、表面弾性波技術、ならびに他の近接センサ配列またはタッチスクリーンに対する１つまたは複数の接触点を判定するための他の要素を含む複数のタッチ感知技術のうち任意のものを使用して、接触と、動きまたは動きの中断とを検知する。
【００３２】
ＩＯデバイス１５０７はオーディオ・デバイスを含み得る。オーディオ・デバイスは、音声認識、音声応答、デジタル記録、および／または電話の機能など、音声対応の機能を促進するためのスピーカおよび／またはマイクロフォンを含み得る。他のＩＯデバイス１５０７は、ユニバーサル・シリアル・バス（ＵＳＢ）ポート、パラレルポート、シリアルポート、プリンタ、ネットワーク・インターフェース、バスブリッジ（たとえばＰＣＩ−ＰＣＩブリッジ）、センサ（たとえば加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどの運動センサ）またはこれらの組合せをさらに含み得る。デバイス１５０７がさらに含み得る画像処理サブシステム（たとえばカメラ）は、写真およびビデオクリップの記録などのカメラ機能を促進するために利用される電荷結合デバイス（ＣＣＤ）または相補型金属酸化膜半導体（ＣＭＯＳ）光センサなどの光センサを含み得る。特定のセンサがセンサ・ハブ（図示せず）を介して相互接続１５１０に結合されてよく、一方、キーボードまたは熱センサなど他のデバイスは、システム１５００の特定の構成または設計に依拠して、組み込みコントローラ（図示せず）によって制御され得る。
【００３３】
データ、アプリケーション、１つまたは複数のオペレーティングシステムなどの情報の持続的記憶を提供するために、プロセッサ１５０１には大容量記憶装置（図示せず）も結合され得る。様々な実施形態において、より薄くより軽いシステム設計を可能にするばかりでなくシステム応答性も改善するために、この大容量記憶装置はソリッドステート・デバイス（ＳＳＤ）によって実施されてよい。しかしながら、他の実施形態では、大容量記憶装置は、停電中にコンテキスト状態および他のそのような情報の不揮発性記憶装置を有効にするために、主として、ＳＳＤキャッシュとして働く少量のＳＳＤ記憶装置を伴うハードディスク・ドライブ（ＨＤＤ）を使用して実施されてよく、その結果、システム・アクティビティの再起動において高速のパワーアップが可能になる。また、フラッシュメモリが、たとえばシリアル周辺インターフェース（ＳＰＩ）を介してプロセッサ１５０１に結合されてよい。このフラッシュメモリは、基本入出力ソフトウェア（ＢＩＯＳ）ならびにシステムの他のファームウェアを含むシステム・ソフトウェアの不揮発性記憶装置をもたらし得る。
【００３４】
記憶デバイス１５０８が含み得るコンピュータ・アクセス可能な記憶媒体１５０９（マシン可読記憶媒体またはコンピュータ可読媒体としても知られている）には、本明細書で説明された技法または機能のうち任意の１つまたは複数を具現する１つまたは複数の命令のセットまたはソフトウェア（たとえばモジュール、ユニット、および／またはロジック１５２８）が記憶されている。処理モジュール／ユニット／ロジック１５２８は、たとえばＭＬサービスモジュール１０６または図１のホストサーバ１０４など、上記で説明された構成要素のうち任意のものを表し得る。処理モジュール／ユニット／ロジック１５２８は、データ処理システム１５００による実行中には、メモリ１５０３の内部および／またはプロセッサ１５０１の内部に、余すところなく、または少なくとも部分的に存在してもよく、メモリ１５０３およびプロセッサ１５０１はマシンアクセス可能な記憶媒体も構成する。処理モジュール／ユニット／ロジック１５２８は、ネットワーク・インターフェース・デバイス１５０５によってネットワークを通じてさらに送信／受信されてよい。
【００３５】
コンピュータ可読記憶媒体１５０９は、上記で説明されたいくつかのソフトウェア機能を持続的に記憶するためにも使用され得る。例示的実施形態では、コンピュータ可読記憶媒体１５０９は単一の媒体であるように示されているが、「コンピュータ可読記憶媒体」という用語は、命令の１つまたは複数のセットを記憶する単一の媒体または複数の媒体（たとえば集中型もしくは分散型のデータベース、および／または関連するキャッシュおよびサーバ）を含むように解釈されるべきである。「コンピュータ可読記憶媒体」という用語は、マシンによる実行のための命令のセットを記憶することまたは符号化することが可能であって本発明の技法のうち任意の１つまたは複数をマシンに遂行させる任意の媒体を含むようにも解釈されるべきである。したがって、「コンピュータ可読記憶媒体」という用語は、それだけではないが、ソリッドステート・メモリならびに光媒体および磁気媒体、または何らかの他の非一時的マシン可読媒体を含むように解釈されるべきである。
【００３６】
処理モジュール／ユニット／ロジック１５２８、構成要素および本明細書で説明された他の機能は、個別のハードウェア構成要素として実施され得、またはＡＳＩＣ、ＦＰＧＡ、ＤＳＰまたは類似のデバイスなどハードウェア構成要素の機能の中に組み込まれ得る。加えて、処理モジュール／ユニット／ロジック１５２８は、ハードウェアデバイスの内部のファームウェアまたは機能回路として実施され得る。さらに、処理モジュール／ユニット／ロジック１５２８は、ハードウェアデバイスとソフトウェア・コンポーネントの任意の組合せで実施され得る。
【００３７】
システム１５００は、データ処理システムの様々な構成要素を用いて示されているが、何らかの特定のアーキテクチャまたは構成要素を相互に連結するやり方を表すことは意図されておらず、そのため、詳細は、本発明の実施形態に密接な関係はないことに留意されたい。ネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、および／または構成要素がより少ないかもしくは恐らくより多い他のデータ処理システムも、本発明の実施形態とともに使用され得ることも理解されたい。
【００３８】
先の詳細な説明のいくつかの部分は、コンピュータメモリの内部のデータ・ビッツにおける動作のアルゴリズムおよび記号表現の観点から提示されている。これらのアルゴリズム的な説明および表現は、データ処理技術の当業者が、著作物の要旨を他の当業者に最も効果的に伝えるために使用するやり方である。ここで、アルゴリズムは、一般に、所望の結果に達する動作の自己矛盾がないシーケンスと考えられる。動作は、物理量の物理的操作を必要とするものである。
【００３９】
しかしながら、これらおよび類似の用語のすべてが、適切な物理量に関連づけられるべきであり、これらの量に与えられた好都合なラベルでしかないことを念頭に置かれたい。特に別記しない限り、上記の議論から明らかなように、説明の全体にわたって、以下の特許請求の範囲において説明されるものなどの用語を利用する議論は、コンピュータシステムのレジスタおよびメモリの内部の物理的（電子的）量として表されたデータを操作して、コンピュータシステムのメモリもしくはレジスタ、または他のそのような情報の記憶デバイス、伝送デバイスもしくは表示デバイスの内部の物理量として同様に表される他のデータへと変換するコンピュータシステム（または類似の電子計算デバイス）の作用および処理を指すことが理解される。
【００４０】
図に示された技術は、１つまたは複数の電子デバイス上に記憶されて実行されるコードおよびデータを使用して実施され得る。そのような電子デバイスは、非一時的コンピュータ可読記憶媒体（たとえば磁気ディスク、光ディスク、ランダムアクセスメモリ、読み取り専用メモリ、フラッシュメモリ・デバイス、相変化メモリ）および一時的なコンピュータ可読伝送媒体（たとえば搬送波、赤外線信号、デジタル信号など、電気、光、音響、または他の形態の伝搬される信号）などのコンピュータ可読媒体を使用して、コードおよびデータを記憶したり、（内部で、および／またはネットワーク上の他の電子デバイスと）通信したりする。
【００４１】
先の図に表された処理または方法は、ハードウェア（たとえば回路、専用ロジックなど）、ファームウェア、（たとえば非一時的コンピュータ可読媒体上に具現された）ソフトウェア、またはこれらの組合せを含む処理ロジックによって遂行され得る。上記では、処理または方法がいくつかの順次動作の観点から説明されているが、説明された動作のうちいくつかは異なる順序で遂行され得ることを理解されたい。その上に、いくつかの動作は、順次ではなく並行して遂行され得る。
【００４２】
前述の明細書では、本発明の実施形態が特定の例示的実施形態を参照しながら説明されている。以下の特許請求の範囲で説明されるような本発明のより広範な精神および範囲から逸脱することなく、様々な修正形態が作製され得ることが明白であろう。したがって、本明細書および図面は、限定的意味ではなく例示的意味に見なされるべきである。
【図１】
2020201939.tif 000003
【図２】
2020201939.tif 000004
【図３】
2020201939.tif 000005
【図４】
2020201939.tif 000006
【図５】
2020201939.tif 000007
【図６】
2020201939.tif 000008