(57)【要約】  機械学習問題用のニューラルネットワークを選択するシステム及び方法が開示される。方法は、入力行列にアクセスすることを含む。この方法は、機械学習問題と関連付けられた機械学習問題空間、及び機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることを含む。この方法は、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することを含む。この方法は、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算することを含む。この方法は、少なくとも１つの表現性測度及び少なくとも１つの訓練可能性測度に基づいて、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することを含む。
2021523430.tif 000002
【特許請求の範囲】
【請求項１】
処理ハードウェア、並びに
機械学習問題と関連付けられた機械学習問題空間、及び前記機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることと、
訓練を受けていない候補ニューラルネットワークごとに、前記機械学習問題に対する前記候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することと、
訓練を受けていない候補ニューラルネットワークごとに、前記機械学習問題に対する前記候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算することと、
前記少なくとも１つの表現性測度及び前記少なくとも１つの訓練可能性測度に基づいて、前記機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することと、
前記選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供することと、
を含む動作を前記処理ハードウェアに行わせる命令を保存するメモリを含む、システム。
【請求項２】
前記少なくとも１つの表現性測度が、前記訓練を受けていない候補ニューラルネットワークによる、前記機械学習問題空間からのサンプルの分離の測度を表す、請求項１に記載のシステム。
【請求項３】
前記分離の測度が大きさである、請求項２に記載のシステム。
【請求項４】
前記分離の測度が角度である、請求項２に記載のシステム。
【請求項５】
前記少なくとも１つの訓練可能性測度が、訓練の第１段階の間、前記候補ニューラルネットワークにおける重みの確率的勾配降下を表す、請求項１に記載のシステム。
【請求項６】
前記機械学習問題を解くための前記少なくとも１つの候補ニューラルネットワークを選択することが、
閾値を超える前記少なくとも１つの表現性測度、及び範囲内の前記少なくとも１つの訓練可能性測度を有する前記少なくとも１つの候補ニューラルネットワークを選択することを含み、前記範囲が、範囲最小値及び範囲最大値によって定義される、請求項１に記載のシステム。
【請求項７】
前記動作が、
前記機械学習問題を解くために前記少なくとも１つの候補ニューラルネットワークを訓練することをさらに含む、請求項１に記載のシステム。
【請求項８】
前記動作が、
前記機械学習問題を解くために、前記訓練された少なくとも１つの候補ニューラルネットワークを前記機械学習問題空間で実行することと、
前記訓練された少なくとも１つの候補ニューラルネットワークによって生成された前記機械学習問題に対する解を提供することと、
をさらに含む、請求項７に記載のシステム。
【請求項９】
機械学習問題と関連付けられた機械学習問題空間、及び前記機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることと、
訓練を受けていない候補ニューラルネットワークごとに、前記機械学習問題に対する前記候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することと、
訓練を受けていない候補ニューラルネットワークごとに、前記機械学習問題に対する前記候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算することと、
前記少なくとも１つの表現性測度及び前記少なくとも１つの訓練可能性測度に基づいて、前記機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することと、
前記選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供することと、
を含む動作を１つ又は複数の機械に行わせる命令を保存する、機械可読媒体。
【請求項１０】
前記少なくとも１つの表現性測度が、前記訓練を受けていない候補ニューラルネットワークによる、前記機械学習問題空間からのサンプルの分離の測度を表す、請求項９に記載の機械可読媒体。
【請求項１１】
前記分離の測度が大きさである、請求項１０に記載の機械可読媒体。
【請求項１２】
前記分離の測度が角度である、請求項１０に記載の機械可読媒体。
【請求項１３】
前記少なくとも１つの訓練可能性測度が、訓練の第１段階の間、前記候補ニューラルネットワークにおける重みの確率的勾配降下を表す、請求項９に記載の機械可読媒体。
【請求項１４】
前記機械学習問題を解くための前記少なくとも１つの候補ニューラルネットワークを選択することが、
閾値を超える前記少なくとも１つの表現性測度、及び範囲内の前記少なくとも１つの訓練可能性測度を有する前記少なくとも１つの候補ニューラルネットワークを選択することを含み、前記範囲が、範囲最小値及び範囲最大値によって定義される、請求項９に記載の機械可読媒体。
【請求項１５】
機械学習問題と関連付けられた機械学習問題空間、及び前記機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることと、
訓練を受けていない候補ニューラルネットワークごとに、前記機械学習問題に対する前記候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することと、
訓練を受けていない候補ニューラルネットワークごとに、前記機械学習問題に対する前記候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算することと、
前記少なくとも１つの表現性測度及び前記少なくとも１つの訓練可能性測度に基づいて、前記機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することと、
前記選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供することと、
を含む方法。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
[0001]  複数の異なるタイプのニューラルネットワークアーキテクチャ（例えば、畳み込みニューラルネットワーク、フィードフォワードニューラルネットワークなど）が知られている。所与の機械学習問題を解くためのニューラルネットワークアーキテクチャ（及び所与のアーキテクチャタイプ内のサブアーキテクチャ）を選択することは、困難なことがある。
【０００２】
図面の簡単な説明
[0002]  本技術の幾つかの実施形態は、例として、限定ではなく添付の図面の図に示される。
【図面の簡単な説明】
【０００３】
【図１】[0003]幾つかの実施形態による、機械学習問題を解くためのニューラルネットワークアーキテクチャを選択することが実施され得る例示的システムを示す。
【図２】[0004]幾つかの実施形態による、機械学習問題を解くためのニューラルネットワークアーキテクチャを選択する例示的方法のフローチャートを示す。
【図３】[0005]幾つかの実施形態による、誤り率を減少させる例示的方法のフローチャートを示す。
【図４Ａ】[0006]幾つかの実施形態による、ブロックの中からセルを選択する例示的方法のフローチャートを示す。
【図４Ｂ】[0006]幾つかの実施形態による、ブロックの中からセルを選択する例示的方法のフローチャートを示す。
【図５】[0007]幾つかの実施形態による、機械可読媒体から命令を読み出し、本明細書で述べる方法論の何れかを行うことが可能な機械のコンポーネントを示すブロック図である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
概要
[0008]  本開示は、一般に、機械学習問題を解くためのニューラルネットワークアーキテクチャを選択するように構成された機械（このような専用機械のコンピュータ化された変形形態及びそのような変形形態の改良形態を含む）、並びにそのような専用機械がニューラルネットワークの技術を提供する他の専用機械と比較して改良される技術に関する。具体的には、本開示は、所与の機械学習問題空間において機械学習問題を解くためのニューラルネットワークアーキテクチャを選択するシステム及び方法に取り組む。
【課題を解決するための手段】
【０００５】
[0009]  本明細書に記載する技術の幾つかの局面によれば、システムは、処理ハードウェア及びメモリを含む。メモリは、処理ハードウェアによって実行されると、処理ハードウェアに動作を行わせる命令を保存する。動作は、機械学習問題と関連付けられた機械学習問題空間、及び機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることを含む。動作は、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することを含む。動作は、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの訓練可能性に関連する少なくとも１つの訓練可能性測度を計算することを含む。動作は、少なくとも１つの表現性測度及び少なくとも１つの訓練可能性測度に基づいて、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することを含む。動作は、選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供することを含む。
【０００６】
[0010]  本明細書に記載する技術の幾つかの局面によれば、機械可読媒体は、１つ又は複数の機械によって実行されると、１つ又は複数の機械に動作を行わせる命令を保存する。動作は、機械学習問題と関連付けられた機械学習問題空間、及び機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることを含む。動作は、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することを含む。動作は、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算することを含む。動作は、少なくとも１つの表現性測度及び少なくとも１つの訓練可能性測度に基づいて、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することを含む。動作は、選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供することを含む。
【０００７】
[0011]  本明細書に記載する技術の幾つかの局面によれば、方法は、入力行列にアクセスすることを含む。方法は、機械学習問題と関連付けられた機械学習問題空間、及び機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることを含む。方法は、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することを含む。方法は、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算することを含む。方法は、少なくとも１つの表現性測度及び少なくとも１つの訓練可能性測度に基づいて、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することを含む。方法は、選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供することを含む。
【発明を実施するための形態】
【０００８】
詳細な説明
概要
[0012]  本開示は、特に、様々な機能性を個々に提供する方法、システム、及びコンピュータプログラム製品を記載する。以下の記載では、説明目的で、本開示の異なる実施形態の様々な局面の十分な理解を提供するために、多数の具体的な詳細を記載する。しかし、これらの具体的な詳細が全てなくても本開示を実施し得ることが、当業者には明白となるだろう。
【０００９】
[0013]  上記の通り、複数の異なるタイプのニューラルネットワークアーキテクチャ（例えば、フィードフォワードニューラルネットワーク、畳み込みニューラルネットワーク、リカレントニューラルネットワークなど）が知られている。所与の機械学習問題（例えば、回帰問題、順位付け問題、又は所与の空間内でデータを分類することなど（鳥の画像を画像中の鳥の種類によって分類することなど）の分類問題）を解くための高性能ニューラルネットワークアーキテクチャを選択することは、困難なことがある。
【００１０】
[0014]  本明細書に記載する技術の幾つかの局面は、１組のニューラルネットワークアーキテクチャから、所与の機械学習問題を解くためのニューラルネットワークアーキテクチャをニューラルネットワークアーキテクチャが訓練される前に選択する技術的問題を解決することに向けられる。有利に、幾つかの局面の結果、所与の機械学習問題を解くために高性能ニューラルネットワークアーキテクチャが訓練され、あまり望ましくないアーキテクチャは訓練されない。このことは、非高性能ニューラルネットワークが使用されることをもたらすことなく、計算時間を節約し、効率を高める。
【００１１】
[0015]  場合によっては、この問題に対する解決策は、サーバで実施される。サーバは、データリポジトリを介して、機械学習問題に関連付けられた機械学習問題空間、及び機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスする。サーバは、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算する。サーバは、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算する。サーバは、少なくとも１つの表現性測度、少なくとも１つの訓練可能性測度、及び候補ニューラルネットワークのアーキテクチャに基づいて、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択する。サーバは、選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供する。
【００１２】
[0016]  場合によっては、選択された少なくとも１つの候補ニューラルネットワークは、機械学習問題を解くために部分的又は完全に訓練される。本明細書では、ニューラルネットワークが「部分的又は完全に訓練される」とは、数エポックの間、訓練される、又はある収束の指標が達成されるまで訓練されることを含み得る。訓練された少なくとも１つの候補ニューラルネットワークは、機械学習問題を解くために、機械学習問題空間に対して実行される。次いで、サーバは、訓練された少なくとも１つの候補ニューラルネットワークによって生成された機械学習問題に対する解を提供する。
【００１３】
[0017]  幾つかの例によれば、少なくとも１つの表現性測度は、訓練を受けていない候補ニューラルネットワークによる、分類問題空間からのサンプルの分離の測度（例えば、大きさ又は角度）を表す。幾つかの例によれば、少なくとも１つの訓練可能性測度は、機械学習問題空間からのサンプルを所与として、最後の層及び最初の層における勾配の関数を表す。幾つかの例によれば、表現性測度及び訓練可能性測度は、表現性及び訓練可能性などのアーキテクチャの異なる特性を捕捉するニューラルネットワークの量、測度、又は統計値を含み得る。
【００１４】
[0018]  図１は、幾つかの実施形態による、機械学習問題を解くためのニューラルネットワークアーキテクチャを選択することが実施され得る例示的システム１００を示す。図示のように、システム１００は、ネットワーク１４０を介して互いに接続されたサーバ１１０、データリポジトリ１２０、及びクライアントデバイス１３０を含む。ネットワーク１４０は、インターネット、イントラネット、ローカルエリアネットワーク、広域ネットワーク、有線ネットワーク、無線ネットワーク、セルラーネットワーク、WiFiネットワークなどの１つ又は複数を含む。
【００１５】
[0019]  クライアントデバイス１３０は、ラップトップコンピュータ、デスクトップコンピュータ、携帯電話、タブレットコンピュータ、プロセッサ及びメモリを備えたスマートテレビ、スマートウォッチなどでもよい。クライアントデバイス１３０は、出力をユーザに表示するため、又は入力をユーザから受信するために使用され得る。
【００１６】
[0020]  データリポジトリ１２０は、データベース又はその他のデータストレージ構造として実施され得る。図示のように、データリポジトリは、機械学習問題空間１２２を保存する。機械学習問題空間１２２は、ニューラルネットワークによって分類されるべきデータを含む。例えば、機械学習問題空間１２２は、鳥の種類によって分類されるべき鳥の写真、又は「重要な電子メール」、「重要でない電子メール」、又は「スパム」として分類されるべき電子メールメッセージを含み得る。
【００１７】
[0021]  サーバ１１０は、１つ又は複数のサーバを含み得る。サーバ１１０は、複数のサーバを含むサーバファームとして実施されてもよい。図示のように、サーバ１１０は、訓練を受けていない候補ニューラルネットワーク１１２．１−ｎ（ｎは、２以上の正の整数である）、選択モジュール１１４、及び訓練モジュール１１６を保存する。訓練を受けていない候補ニューラルネットワーク１１２．１−ｎは、様々な分類タスクに使用され得るニューラルネットワークである。例えば、訓練を受けていない候補ニューラルネットワーク１１２．１−ｎは、畳み込みニューラルネットワーク又はフィードフォワードニューラルネットワークの訓練を受けていないバージョンを含み得る。
【００１８】
[0022]  選択モジュール１１４は、機械学習問題空間１２２と関連付けられた機械学習問題を解くために訓練する、訓練を受けていない候補ニューラルネットワーク１１２．１−ｎの少なくとも１つを選択する。選択モジュールの例示的動作のさらなる詳細を図２に関連して提供する。訓練モジュール１１６は、機械学習問題を解くために、（訓練を受けていない候補ニューラルネットワーク１１２．１−ｎから）（選択モジュール１１４によって）選択された１つ又は複数のニューラルネットワークを訓練する。訓練後に、訓練されたニューラルネットワークを使用して、機械学習問題空間１２２（又は別の問題空間）におけるデータを分類することによって機械学習問題を解くことができる。
【００１９】
[0023]  図２は、幾つかの実施形態による、機械学習問題を解くためのニューラルネットワークアーキテクチャを選択する例示的方法２００のフローチャートを示す。以下に記載するように、方法２００は、図１のサーバ１１０の選択モジュール１１４を用いて実施される。しかし、方法２００は、システム１００のアーキテクチャに制限されず、他のアーキテクチャ又は他のシステムにおいて実施され得る。
【００２０】
[0024]  動作２１０では、選択モジュール１１４は、解かれるべき機械学習問題に関連付けられた機械学習問題空間１２２に（例えばネットワーク１４０を介して）アクセスする。選択モジュール１１４は、機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワーク１１２．１−ｎにアクセスする。
【００２１】
[0025]  動作２２０では、選択モジュール１１４は、訓練を受けていない候補ニューラルネットワーク１１２．１−ｎごとに、機械学習問題に対する候補ニューラルネットワークの表現性に関連する１つ又は複数の表現性メトリックを計算する。１つ又は複数の表現性メトリックは、訓練を受けていない候補ニューラルネットワークによる、機械学習問題空間１２２からのサンプルの分離の測度を表す。分離の測度は、大きさ又は角度でもよい。
【００２２】
[0026]  動作２３０では、選択モジュール１１４は、訓練を受けていない候補ニューラルネットワーク１１２．１−ｎごとに、機械学習問題に対する候補ニューラルネットワークの訓練可能性に関連する１つ又は複数の訓練可能性メトリックを計算する。
【００２３】
[0027]  動作２４０では、選択モジュール１１４は、１つ又は複数の表現性測度及び１つ又は複数の訓練可能性測度に基づいて、機械学習問題を解くための１つ又は複数の候補ニューラルネットワークを選択する。この選択は、１つ又は複数の候補ニューラルネットワークの１つ又は複数のアーキテクチャにも基づく。１つ又は複数の候補ニューラルネットワークは、複数の訓練を受けていない候補ニューラルネットワーク１１２．１−ｎから選択される。場合によっては、選択モジュール１１４は、閾値を超える１つ又は複数の表現性測度、及び範囲内の１つ又は複数の訓練可能性測度を有する、１つ又は複数の候補ニューラルネットワークを選択する。この範囲は、範囲最小値及び範囲最大値によって定義される。
【００２４】
[0028]  動作２５０では、選択モジュール１１４は、１つ又は複数の選択された候補ニューラルネットワークを表す出力を提供する。場合によっては、訓練モジュール１１６は、機械学習問題を解くために、１つ又は複数の選択された候補ニューラルネットワークを訓練する。訓練モジュール１１６は、機械学習問題を解くために、機械学習問題空間１２２に対して１つ又は複数の訓練された候補ニューラルネットワークを実行する。サーバ１１０は、１つ又は複数の訓練された候補ニューラルネットワークによって生成された機械学習問題に対する解を（例えば、クライアントデバイス１３０で表示するためにクライアントデバイス１３０に対して、又はデータリポジトリ１２０で保存するためにデータリポジトリ１２０に対して）提供する。
【００２５】
[0029]  本明細書に記載する技術の目標の１つは、所与のタスク用のニューラルネットワークアーキテクチャの選択及び構成を自動的に行うことである。より具体的には、データセットを所与として、幾つかの局面は、層のタイプ（例えば、畳み込み、マックスプーリング、完全接続など）、それらのハイパーパラメータ（例えば、ストライドサイズ、畳み込みサイズ）、他の全ての層に対するそれらの接続、及び層の総数を自動的に識別する。幾つかの局面は、どの訓練アルゴリズムを使用するか（例えば、確率的勾配降下、RMSProp、Adamなど）、及び重みの初期化方法（例えば、Glorot、Normal、Laplace、Uniformなど）も識別する。
【００２６】
[0030]  幾つかのスキームは、（１）それらが複数のアーキテクチャにわたりサーチ空間をどのように定義するか（例えば、無制限又は制限）、（２）それらが空間をどのように探索するか（例えば、強化学習、モンテカルロ木探索）、（３）それらがサーチを誘導するためにどの予測モデルを使用するか（例えば、sequential model based optimization、リカレントニューラルネットワーク（ＲＮＮ）、遺伝的アルゴリズム）、及び（４）それらがサーチをより効率的に誘導するために安価な代理関数を使用するか否か、に基づいて、グループ化され得る。遺伝的アルゴリズム及び強化学習の場合、上記の項目２及び３は、それらが一緒に予測モデルを学習し、空間を探索するため、１つにまとめられる。
【００２７】
[0031]  幾つかの実施形態では、サーチ空間が、sequential model-based optimization（ＳＭＢＯ）を用いて探索される。ＳＭＢＯの例示的モデルは、ベイジアンリカレントニューラルネットワークでもよい。１組のランダムニューラルネットワーク特性が、ニューラルネットワークの真の性能に対する安価なサロゲート（又は統計値）として機能すると定義される。場合によっては、予測及び予測に関する不確実性の両方を出力する他のモデル（例えば、ガウス過程）が使用される。場合によっては、安価なサロゲート（又は統計値）が、モデルの入力として与えられるのではなく、出力と見なされる。安価なサロゲートは、上述の訓練可能性測度及び表現性測度を含み得る。
【００２８】
[0032]  幾つかの拡張実施形態では、サーチ空間は、無制限である。強化学習又はモンテカルロ木探索を用いて、サーチ空間が探索される。場合によっては、予測を支援するためにアーキテクチャ自体の表現を追加的に使用することも可能である。
【００２９】
[0033]  幾つかの局面は、訓練前に、訓練後のデータセットに関する初期モデルの性能を予測するための２つの主要な測度に向けられる。両測度は、データセットからのランダムバッチに関して収集されたモデルの統計値である。幾つかの例では、バッチは、ｎ個の点から成る
【数１】
2021523430.tif 000003
（幾つかの局面は、ラベルｙｉを無視する）。モデルは、従来、２つのコンポーネント：入力空間を潜在空間に埋め込むディープニューラルネットワーク、及び埋め込みを１組の可能なラベルに関する確率分布に変化させるソフトマックスが後に続く完全接続線形層、を含む。ｆを前者（すなわち、埋め込み）とし、それがＬ個の層を有すると仮定する。
【００３０】
[0034]  メトリック表現性は、式１（これは、式２に近似する）に従って定義される。式１では、｛ｘ１，…，ｘｎ｝は、入力のバッチである。
【数２】
2021523430.tif 000004
【００３１】
[0035]  式２では、Ｅは、期待値を示し、Ｐは、ｘｓに関するデータ分布である。直感的に、この測度は、入力空間を拡張し、点を引き離すｆの傾向を示す。より大きなメトリック表現性が、訓練後のより優れた性能と相関するはずである。この測度のバリエーションには、共通バッチのあらゆるペアを選択する代わりに（ｘ，ｘ’）のペアをサンプリングし、２以外の指数を選択すること（すなわち、あるｐ＞０に関して
【数３】
2021523430.tif 000005
）、及びニューラルネットワークの「拡張性」（入力空間を拡張する傾向）をテストする他の方法が含まれる。
【００３２】
[0036]  メトリック表現性特徴に加えて、勾配変形は、最後の層に対するランダム勾配ベクトルをサンプリングし、各先行層で勾配ベクトルを取得するために各サンプルｘｉに対して前方計算後に逆伝搬を行うことを含む。このような固定入力ｘｉ及び固定の最後の層の勾配ベクトルを仮定して、パラメータｗに関する層ｌにおける勾配ベクトルが
【数４】
2021523430.tif 000006
で示されるとする。その場合、パラメータｗの勾配変形は、式３で定義される。
【数５】
2021523430.tif 000007
【００３３】
[0037]  つまり、勾配変形は、典型的なデータ点に対してどの程度勾配急増又は縮小が生じているかの測度である。これが大きくなるほど、訓練された性能が悪くなることが予期され、その理由は、（確率的勾配降下（ＳＧＤ）による）訓練が難しいことが予期されるためである。この測度のバリエーションは、各ｘｉに関して、新しい最後の層の勾配ベクトルをサンプリングすること、被加数を式４に置換すること、及び測定勾配急増／縮小の他の方法を含む。上記の測度は、固定アーキテクチャ及び初期化をランダム化した場合の残差ネットワーク性能の予測である。
【数６】
2021523430.tif 000008
【００３４】
[0038]  メトリック表現性の場合と同じセットアップを所与として、角度表現性が式５に定義される。
【数７】
2021523430.tif 000009
【００３５】
[0039]  角度表現性は、どの程度ｆが、角度を引き離すという意味で、入力ベクトルを「非相関」させるかを測定する。従って、大きな角度表現性が、より優れた性能と相関することが予期される。幾つかのスキームでは、予測量は、実際に、ｆの深さが無限に近づくときの漸近極限値からの
【数８】
2021523430.tif 000010
の偏差である。この漸近偏差の代理は、コーシー誤差Ｃｌ−Ｃ（ｌ＋１）である（Ｃｌは、ｌ番目の層に至るまでのネットワークの角度表現性である）。
【００３６】
[0040]  場合によっては、統計値は、自動的に学習され得る。本明細書に記載するデータベースの統計値は、モデルの最終的な性能と高度に相関するが、それらは、所与のモデルの一般化能力を予測するために抽出することができる最高予測統計値ではない可能性がある。最高予測統計値は、生の統計値（すなわち、前のセクションにおける統計値を計算するために使用された埋め込み及び勾配測度）の複素非線形関数の可能性がある。
【００３７】
[0041]  それでもやはり、機械学習におけるその他の関数近似問題のように、十分な訓練データが存在すれば、これらの複素関数を学習することが可能となり得る。これは、サーバ１１０が生のデータから予測統計値も学習する別のバージョンのフレームワークの動機になるだろう。具体的には、幾つかの局面は、入力が最後の層におけるデータ表現（すなわち、上記のｆ（ｘ））、最後の層及び最初の層の勾配などであるニューラルネットワークを使用し得る。
【００３８】
[0042]  幾つかの局面の一般的バージョンでは、所定の所望の誤り率が達成されるまで、又は所定の総計算コストが達成されるまで、アルゴリズム１の手順が繰り返される。
アルゴリズム１
１．  複数のディープニューラルネットワーク（ＤＮＮ）アーキテクチャを提案する。ＤＮＮアーキテクチャは、事前に定義されたアーキテクチャの空間からサンプリングされ、又は一般的なビルディングブロックを使用して構築され得る。
２．  Glorot Normal初期化を使用して、アーキテクチャの重みを初期化する。代替実施形態において、独立正規分布及びラプラス分布が使用され得る。
３．  アーキテクチャごとに、メトリック表現性及び勾配変形を計算する。
４．  アーキテクチャ性能を予測するために、ベイジアンリカレントニューラルネットワーク（ベイジアンＲＮＮ）への入力として、各アーキテクチャのメトリック表現性及び勾配変形を含む。このタスクのために、ガウス過程を使用することもできる。原理上、予測に関する分布を出力するどのような確率的機械学習アルゴリズムも使用することができる。
５．  expected improvementサンプリング、upper confidence boundサンプリング、又はトンプソンサンプリングなどの取得関数への入力として、アーキテクチャごとにベイジアンＲＮＮを使用して計算された事後平均及び分散を使用する。
６．  閾値を超える取得関数の１つ又は複数の値を有する１つ又は複数のアーキテクチャをサンプリングする。
７．  閾値を超える取得関数の１つ又は複数の値を有する１つ又は複数のアーキテクチャを訓練し、提供セットに対するそれらの性能を評価する。観察された性能を用いて、動作４で使用されたモデルを更新する。動作１に戻る。
【００３９】
[0043]  アルゴリズム１は、図３に要約される。図３は、幾つかの実施形態による、誤り率を減少させる例示的方法のフローチャート３００を示す。
【００４０】
[0044]  動作３１０では、サーバ（例えば、サーバ１１０）が、複数のＤＮＮアーキテクチャを提案する。ＤＮＮアーキテクチャは、事前に定義されたアーキテクチャの空間からサンプリングされ、又は一般的なビルディングブロックを使用して構築され得る。
【００４１】
[0045]  動作３２０では、サーバが、Glorot Normal初期化を使用して、アーキテクチャの重みを初期化する。代替実施形態において、独立正規分布及びラプラス分布が使用され得る。
【００４２】
[0046]  動作３３０では、サーバが、各アーキテクチャのメトリック表現性及び勾配変形を計算する。
【００４３】
[0047]  動作３４０では、サーバが、アーキテクチャ性能を予測するために、ベイジアンＲＮＮへの入力として、各アーキテクチャのメトリック表現性及び勾配変形を含む。このタスクのために、ガウス過程を使用することもできる。原理上、予測に関する分布を出力するどのような確率的機械学習アルゴリズムも使用することができる。
【００４４】
[0048]  動作３５０では、サーバが、expected improvementサンプリング、upper confidence boundサンプリング、又はトンプソンサンプリングなどの取得関数への入力として、アーキテクチャごとにベイジアンＲＮＮを使用して計算された事後平均及び分散を使用する。
【００４５】
[0049]  動作３６０では、サーバが、閾値を超える取得関数の１つ又は複数の値を有する１つ又は複数のアーキテクチャをサンプリングする。
【００４６】
[0050]  動作３７０では、サーバが、閾値を超える取得関数の１つ又は複数の値を有する１つ又は複数のアーキテクチャを訓練し、提供セットに対するそれらの性能を評価する。観察された性能に基づいて、動作３４０のベイジアンＲＮＮモデルが更新される。動作３７０の後に、（動作３６０の）取得関数の値が十分であれば、方法３００は終了する。そうでなければ、方法３００は、動作３１０に戻る。
【００４７】
[0051]  具体的な一実施態様をここで説明する。回帰性基本ユニット（セル）が複数回繰り返される固定のディープニューラルネットワークアーキテクチャを所与として、幾つかの局面は、最高精度を有するセルを推論することに向けられる。まず、セルが、特定の数のブロックの有向非巡回グラフとして定義される。各ブロックは、２つの入力（Ｉ１，Ｉ２）を取り込み、各入力に対して動作を行い（Ｏ１，Ｏ２）、これら２つの動作からの出力の合計を返す。ブロックに関する１組の可能な入力は、セル内の全ての以前のブロックの出力及び以前の２つのセルの出力である。これらの入力に対する動作は、畳み込み、マックスプーリングなどの標準ニューラルネットワーク層である。ディープニューラルネットワークにおけるこのような基本ユニットの自動的且つ正確なサーチは、それらの性能が典型的には、より大きなデータセットへの適用において一般化するため重要である。Ｂ個のブロックを有する最良のセルを見つけるために、アルゴリズム２が使用される。
【００４８】
[0052]  場合によっては、アルゴリズム２におけるサーチは、１つのブロック（Ｃ）のセル数が小さくなり得るので、網羅的となり得る。例えば、８つの可能な動作の場合、サーチ空間は、８＊８＊２＊２＝２５６であり、これは、例えば２５６個のグラフィック処理ユニット（ＧＰＵ）を並行して使用することによって、網羅的に探索され得る。
アルゴリズム２
１．  １つのブロック（Ｃ）における１組のセットを考える。
２．  Ｃ内の各セルについて：
・Glorot Normal初期化を使用して、アーキテクチャの重みを初期化する。代替実施形態において、一様分布（ｉｉｄ）の正規分布及びラプラス分布が使用され得る。
・メトリック表現性及び勾配変形を計算する。これは、複数の初期化にわたり行われ、平均及び分散が報告され得る。
・一定数のエポックの間、ニューラルネットワークを訓練する。
・テストセットに関する精度を計算する。
３．  Ｃ内のセルのブロック数がＢである場合、停止し、最高テスト精度を有するセルを返す。
４．  セルアーキテクチャ及びランダム統計値を入力として取り込むベイジアンリカレントニューラルネットワーク（ＢＲＮＮ）を訓練し、テストセット精度を予測する。
５．  Ｃ内の全てのセルを拡大し、新しいブロックを追加することによって取得されたセルを含むセットＤを考える。
６．  Ｄ内のセルに関してメトリック表現性及び勾配変形を計算する。この計算が（例えば、Ｄ内の多数のセルにより）高価すぎる場合には、（ｉ）単にセル構造のみを取り込む追加のＢＲＮＮを訓練し、テストセット精度を予測することができ、（ｉｉ）それを使用して、予測されたテスト精度に基づいてセットＤをフィルタリングすることができる。
７．  動作４のＢＲＮＮを使用して、次の反復で考えるセルのセットε⊂Ｄを決定する。この決定は、ベイジアン最適化フレームワーク内で利用と探索との間のトレードオフによって行われる。
８．  ε→Ｃならば、ステップ２に行く。
【００４９】
[0053]  アルゴリズム２は、図４Ａ〜４Ｂに要約される。図４Ａ〜４Ｂは、幾つかの実施形態による、ブロックの中からセルを選択する例示的方法４００のフローチャートを示す。
【００５０】
[0054]  図４Ａに示されるように、動作４１０は、サブ動作４１２〜４１８を含む。動作４１０では、サーバ（例えば、サーバ１１０）が、ブロックＣ内の各セルに関して、サブ動作４１２〜４１８を実施する。
【００５１】
[0055]  サブ動作４１２では、サーバが、Glorot Normal初期化を使用して、アーキテクチャの重みを初期化する。代替実施形態において、一様分布（ｉｉｄ）の正規分布及びラプラス分布が使用され得る。
【００５２】
[0056]  サブ動作４１４では、サーバが、メトリック表現性及び勾配変形を計算する。これは、複数の初期化にわたり行われ、平均及び分散が報告され得る。
【００５３】
[0057]  サブ動作４１６では、サーバが、一定数のエポックの間、ニューラルネットワークを訓練する。
【００５４】
[0058]  サブ動作４１８では、サーバが、テストセットに関する精度を計算する。Ｃ内の各セルに関して動作４１０が完了した後に、方法４００は、動作４２０に進む。
【００５５】
[0059]  動作４２０では、サーバが、Ｃのブロック数が所定の範囲内であるか否かを決定する。所定の範囲内であれば、方法４００は、動作４３０に進む。所定の範囲内でなければ、方法４００は、動作４４０に進む。
【００５６】
[0060]  動作４３０では、Ｃのブロック数が所定の範囲内であれば、サーバは、最高テスト精度を有するＣ内のセルを返す。動作４３０の後、方法４００は終了する。
【００５７】
[0061]  動作４４０では、Ｃのブロック数が所定の範囲内でなければ、サーバは、セルアーキテクチャ及びランダム統計値を入力として取り込むＢＲＮＮを訓練し、テストセット精度を予測する。動作４４０の後に、方法４００は、図４Ｂに示される動作４５０に進む。
【００５８】
[0062]  図４Ｂに示すように、動作４５０では、サーバが、Ｃ内の全てのセルを拡大し、新しいブロックを追加することによって取得されたセルを含むセットＤを生成する。
【００５９】
[0063]  動作４６０では、サーバが、Ｄ内のセルに関してメトリック表現性及び勾配変形を計算する。この計算が（例えば、Ｄ内の多数のセルにより）高価すぎる場合には、サーバは、（ｉ）単にセル構造のみを取り込む追加のＢＲＮＮを訓練し、テストセット精度を予測し、（ｉｉ）この追加のＢＲＮＮを使用して、予測されたテスト精度に基づいてセットＤをフィルタリングし得る。
【００６０】
[0064]  動作４７０では、サーバが、動作４４０で訓練されたＢＲＮＮを使用して、次の反復で考えるセルのセットε⊂Ｄを決定する。この決定は、ベイジアン最適化フレームワーク内で利用と探索との間のトレードオフによって行われる。
【００６１】
[0065]  動作４８０では、サーバが、εをＣとして保存する。動作４８０の後に、方法４００は、図４Ａの動作４２０に戻る。
【実施例】
【００６２】
番号付き実施例
[0066]  番号付き実施例１、２、３などとして、特定の実施形態をここで説明する。これらの番号付き実施例は、単なる例として提供されるものであり、主題技術を限定するものではない。
【００６３】
[0067]  実施例１は、処理ハードウェア、並びに機械学習問題と関連付けられた機械学習問題空間、及び機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることと、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することと、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算することと、少なくとも１つの表現性測度及び少なくとも１つの訓練可能性測度に基づいて、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することと、選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供することと、を含む動作を処理ハードウェアに行わせる命令を保存するメモリを含むシステムである。
【００６４】
[0068]  実施例２では、実施例１の特定事項は、少なくとも１つの表現性測度が、訓練を受けていない候補ニューラルネットワークによる、機械学習問題空間からのサンプルの分離の測度を表すことを含む。
【００６５】
[0069]  実施例３では、実施例２の特定事項は、分離の測度が大きさであることを含む。
【００６６】
[0070]  実施例４では、実施例２〜３の特定事項は、分離の測度が角度であることを含む。
【００６７】
[0071]  実施例５では、実施例１〜４の特定事項は、少なくとも１つの訓練可能性測度が、訓練の第１段階の間、候補ニューラルネットワークにおける重みの確率的勾配降下を表すことを含む。
【００６８】
[0072]  実施例６では、実施例１〜５の特定事項は、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することが、閾値を超える少なくとも１つの表現性測度、及び範囲内の少なくとも１つの訓練可能性測度を有する少なくとも１つの候補ニューラルネットワークを選択することを含み、この範囲が、範囲最小値及び範囲最大値によって定義されることを含む。
【００６９】
[0073]  実施例７では、実施例１〜６の特定事項は、動作が、機械学習問題を解くために少なくとも１つの候補ニューラルネットワークを訓練することをさらに含むことを含む。
【００７０】
[0074]  実施例８では、実施例７の特定事項は、動作が、機械学習問題を解くために、訓練された少なくとも１つの候補ニューラルネットワークを機械学習問題空間で実行することと、訓練された少なくとも１つの候補ニューラルネットワークによって生成された機械学習問題に対する解を提供することと、をさらに含むことを含む。
【００７１】
[0075]  実施例９は、機械学習問題と関連付けられた機械学習問題空間、及び機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることと、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することと、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算することと、少なくとも１つの表現性測度及び少なくとも１つの訓練可能性測度に基づいて、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することと、選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供することと、を含む動作を１つ又は複数の機械に行わせる命令を保存する、非一時的機械可読媒体である。
【００７２】
[0076]  実施例１０では、実施例９の特定事項は、少なくとも１つの表現性測度が、訓練を受けていない候補ニューラルネットワークによる、機械学習問題空間からのサンプルの分離の測度を表すことを含む。
【００７３】
[0077]  実施例１１では、実施例１０の特定事項は、分離の測度が大きさであることを含む。
【００７４】
[0078]  実施例１２では、実施例１０〜１１の特定事項は、分離の測度が角度であることを含む。
【００７５】
[0079]  実施例１３では、実施例９〜１２の特定事項は、少なくとも１つの訓練可能性測度が、訓練の第１段階の間、候補ニューラルネットワークにおける重みの確率的勾配降下を表すことを含む。
【００７６】
[0080]  実施例１４では、実施例９〜１３の特定事項は、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することが、閾値を超える少なくとも１つの表現性測度、及び範囲内の少なくとも１つの訓練可能性測度を有する少なくとも１つの候補ニューラルネットワークを選択することを含み、この範囲が、範囲最小値及び範囲最大値によって定義されることを含む。
【００７７】
[0081]  実施例１５は、機械学習問題と関連付けられた機械学習問題空間、及び機械学習問題を解くための複数の訓練を受けていない候補ニューラルネットワークにアクセスすることと、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの表現性を捕捉する少なくとも１つの表現性測度を計算することと、訓練を受けていない候補ニューラルネットワークごとに、機械学習問題に対する候補ニューラルネットワークの訓練可能性を捕捉する少なくとも１つの訓練可能性測度を計算することと、少なくとも１つの表現性測度及び少なくとも１つの訓練可能性測度に基づいて、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することと、選択された少なくとも１つの候補ニューラルネットワークを表す出力を提供することと、を含む方法である。
【００７８】
[0082]  実施例１６では、実施例１５の特定事項は、少なくとも１つの表現性測度が、訓練を受けていない候補ニューラルネットワークによる、機械学習問題空間からのサンプルの分離の測度を表すことを含む。
【００７９】
[0083]  実施例１７では、実施例１６の特定事項は、分離の測度が大きさであることを含む。
【００８０】
[0084]  実施例１８では、実施例１６〜１７の特定事項は、分離の測度が角度であることを含む。
【００８１】
[0085]  実施例１９では、実施例１５〜１８の特定事項は、少なくとも１つの訓練可能性測度が、訓練の第１段階の間、候補ニューラルネットワークにおける重みの確率的勾配降下を表すことを含む。
【００８２】
[0086]  実施例２０では、実施例１５〜１９の特定事項は、機械学習問題を解くための少なくとも１つの候補ニューラルネットワークを選択することが、閾値を超える少なくとも１つの表現性測度、及び範囲内の少なくとも１つの訓練可能性測度を有する少なくとも１つの候補ニューラルネットワークを選択することを含み、この範囲が、範囲最小値及び範囲最大値によって定義されることを含む。
【００８３】
[0087]  実施例２１は、処理回路網によって実行されると、実施例１〜２０の何れかを実施するための動作を処理回路網に行わせる命令を含む少なくとも１つの機械可読媒体である。
【００８４】
[0088]  実施例２２は、実施例１〜２０の何れかを実施するための手段を含む装置である。
【００８５】
[0089]  実施例２３は、実施例１〜２０の何れかを実施するためのシステムである。
【００８６】
[0090]  実施例２４は、実施例１〜２０の何れかを実施するための方法である。
【００８７】
コンポーネント及び論理
[0091]  特定の実施形態は、論理又は幾つかのコンポーネント若しくは機構を含むと本明細書に記載される。コンポーネントは、ソフトウェアコンポーネント（例えば、機械可読媒体で具現化されるコード）又はハードウェアコンポーネントを構成し得る。「ハードウェアコンポーネント」は、特定の動作を行うことが可能な有形ユニットであり、特定の物理的様式で構成又は配置され得る。様々な例示的実施形態では、１つ若しくは複数のコンピュータシステム（例えば、スタンドアロンコンピュータシステム、クライアントコンピュータシステム、若しくはサーバコンピュータシステム）、又はコンピュータシステムの１つ若しくは複数のハードウェアコンポーネント（例えば、プロセッサ若しくはプロセッサ群）が、ソフトウェア（例えば、アプリケーション又はアプリケーション部分）によって、本明細書に記載するような特定の動作を行うために動作するハードウェアコンポーネントとして構成され得る。
【００８８】
[0092]  幾つかの実施形態では、ハードウェアコンポーネントは、機械的に、電子的に、又はそれらの任意の適宜の組み合わせで実施され得る。例えば、ハードウェアコンポーネントは、特定の動作を行うように恒久的に構成された専用回路網又は論理を含み得る。例えば、ハードウェアコンポーネントは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は特定用途向け集積回路（ＡＳＩＣ）などの専用プロセッサでもよい。ハードウェアコンポーネントは、特定の動作を行うようにソフトウェアによって一時的に構成されたプログラマブル論理又は回路網も含み得る。例えば、ハードウェアコンポーネントは、汎用プロセッサ又は他のプログラマブルプロセッサによって実行されるソフトウェアを含み得る。一旦このようなソフトウェアによって構成されると、ハードウェアコンポーネントは、構成された機能を行うように独自に調整された、もはや汎用プロセッサではない専用機械（又は機械の専用コンポーネント）となる。ハードウェアコンポーネントを機械的に、専用且つ恒久的に構成された回路網で、又は（例えば、ソフトウェアによって構成された）一時的に構成された回路網で実施するかの決定は、コスト及び時間を考慮することによって動かされ得ることが理解されるだろう。
【００８９】
[0093]  従って、「ハードウェアコンポーネント」というフレーズは、有形レコードを包含する（ある特定の様式で動作する、又は本明細書に記載する特定の動作を行うように、物理的に構築された、恒久的に構成された（例えば、配線接続された）、又は一時的に構成された（例えば、プログラムされた）レコードである）と理解されるものとする。本明細書では、「ハードウェア実施コンポーネント」は、ハードウェアコンポーネントを指す。ハードウェアコンポーネントが一時的に構成される（例えば、プログラムされる）実施形態を考慮すると、各ハードウェアコンポーネントは、時間のあるインスタンスにおいて、構成されていない、又はインスタンス化されていない可能性がある。例えば、ハードウェアコンポーネントが、専用プロセッサとなるようにソフトウェアによって構成された汎用プロセッサを含む場合、この汎用プロセッサは、異なる時点で、それぞれ異なる専用プロセッサ（例えば、異なるハードウェアコンポーネントを含む）として構成され得る。従って、ソフトウェアは、例えば、時間のあるインスタンスにおいて、ある特定のハードウェアコンポーネントを構成し、異なる時間のインスタンスにおいて、異なるハードウェアコンポーネントを構成するように、特定の１つ又は複数のプロセッサを構成する。
【００９０】
[0094]  ハードウェアコンポーネントは、他のハードウェアコンポーネントに情報を提供し、及び他のハードウェアコンポーネントから情報を受信することができる。従って、記載したハードウェアコンポーネントは、通信可能に結合されると見なすことができる。複数のハードウェアコンポーネントが同時に存在する場合、通信は、ハードウェアコンポーネントの２つ以上の間の（例えば、適切な回路及びバスを利用した）信号伝送により達成され得る。複数のハードウェアコンポーネントが、異なる時点で構成又はインスタンス化される実施形態では、このようなハードウェアコンポーネント間の通信は、例えば、複数のハードウェアコンポーネントがアクセスしたメモリ構造における情報の保存及び取り出しにより達成され得る。例えば、あるハードウェアコンポーネントは、ある動作を行い、それが通信可能に結合したメモリデバイスにその動作の出力を保存し得る。その場合、別のハードウェアコンポーネントが、後に、保存された出力を取り出し、及び処理するために、そのメモリデバイスにアクセスし得る。ハードウェアコンポーネントは、入力デバイス又は出力デバイスとの通信も開始することができ、リソース（例えば、情報の集まり）を操作することができる。
【００９１】
[0095]  本明細書に記載する例示的方法の様々な動作は、少なくとも部分的に、関連する動作を行うように（例えば、ソフトウェアによって）一時的に構成された、又は恒久的に構成された１つ又は複数のプロセッサによって行われ得る。一時的に構成されたものであれ、恒久的に構成されたものであれ、このようなプロセッサは、本明細書に記載する１つ又は複数の動作又は機能を行うように動作するプロセッサ実施コンポーネントを構成し得る。本明細書では、「プロセッサ実施コンポーネント」は、１つ又は複数のプロセッサを使用して実施されるハードウェアコンポーネントを指す。
【００９２】
[0096]  同様に、本明細書に記載する方法は、特定の１つ又は複数のプロセッサがハードウェアの一例である状態で、少なくとも部分的にプロセッサ実施され得る。例えば、方法の動作の少なくとも幾つかは、１つ又は複数のプロセッサ又はプロセッサ実施コンポーネントによって行われ得る。また、１つ又は複数のプロセッサは、「クラウドコンピューティング」環境における関連動作の遂行を支援するために、又は「サービスとしてのソフトウェア」（ＳａａＳ）としても動作し得る。例えば、動作の少なくとも幾つかは、これらの動作が、ネットワーク（例えば、インターネット）を介して、及び１つ又は複数の適切なインタフェース（例えば、ＡＰＩ）を介してアクセス可能な状態で、コンピュータ群（プロセッサを含む機械の例として）によって行われ得る。
【００９３】
[0097]  動作の幾つかの遂行は、単一の機械内に常駐するだけでなく、幾つかの機械にわたって配備されたプロセッサ間で分散され得る。幾つかの例示的実施形態では、プロセッサ又はプロセッサ実施コンポーネントは、単一の地理的な場所（例えば、自宅環境、オフィス環境、又はサーバファーム内）に位置し得る。他の例示的実施形態では、プロセッサ又はプロセッサ実施コンポーネントは、幾つかの地理的な場所にわたって分散され得る。
【００９４】
例示的機械及びソフトウェアアーキテクチャ
[0098]  図１〜４に関連して記載されるコンポーネント、方法、アプリケーションなどは、幾つかの実施形態において、機械及び関連付けられたソフトウェアアーキテクチャの文脈で実施される。以下のセクションは、開示の実施形態での使用に適した代表的な１つ又は複数のソフトウェアアーキテクチャ及び１つ又は複数の機械（例えば、ハードウェア）アーキテクチャを説明する。
【００９５】
[0099]  ソフトウェアアーキテクチャは、特定の目的に合わせたデバイス及び機械を製作するために、ハードウェアアーキテクチャと併せて使用される。例えば、ある特定のソフトウェアアーキテクチャと結合された、ある特定のハードウェアアーキテクチャは、携帯電話、タブレットデバイスなどのモバイル機器を製作する。少し異なるハードウェア及びソフトウェアアーキテクチャは、「インターネットオブシングス」で使用するスマートデバイスを生み出すことができ、さらに別の組み合わせが、クラウドコンピューティングアーキテクチャ内で使用するサーバコンピュータを生じさせる。本明細書に含まれる開示内容とは異なる文脈で開示される特定事項を実施する方法を当業者は容易に理解することができるため、このようなソフトウェアアーキテクチャ及びハードウェアアーキテクチャの全ての組み合わせがここに提示されるわけではない。
【００９６】
[00100]  図５は、機械可読媒体（例えば、機械可読ストレージ媒体）から命令を読み出し、本明細書で述べた方法論の１つ又は複数を行うことが可能な、幾つかの例示的実施形態による機械５００のコンポーネントを示すブロック図である。具体的には、図５は、本明細書で述べた方法論の１つ又は複数を機械５００に行わせる命令５１６（例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、又は他の実行可能コード）が内部で実行され得るコンピュータシステムの例示的形式の機械５００の図表示を示す。命令５１６は、一般的なプログラムされていない機械を、記載した様式で記載及び図示した機能を実行するようにプログラムされた特定の機械に変える。代替実施形態では、機械５００は、スタンドアロンデバイスとして動作し、又は他の機械と結合（例えば、ネットワーク化）され得る。ネットワーク化された配備では、機械５００は、サーバ−クライアントネットワーク環境におけるサーバ機若しくはクライアント機として、又はピアツーピア（若しくは分散型）ネットワーク環境におけるピア機として動作し得る。機械５００には、サーバコンピュータ、クライアントコンピュータ、ＰＣ、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、携帯情報端末（ＰＤＡ）、娯楽メディアシステム、セルラー電話、スマートフォン、モバイル機器、ウェアラブルデバイス（例えば、スマートウォッチ）、スマートホームデバイス（例えば、スマート家電）、他のスマートデバイス、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、又は機械５００が取るべきアクションを指定する命令５１６を順次又は別様に実行可能なあらゆる機械が含まれ得るが、これらに限定されない。さらに、単一の機械５００のみが示されているが、「機械」という用語は、本明細書で述べる方法論の１つ又は複数を行うための命令５１６を個々に又は一緒に実行する機械５００の集まりを含むとも解釈されるものとする。
【００９７】
[00101]  機械５００は、バス５０２などを介して互いに通信するように構成され得る、プロセッサ５１０、メモリ／ストレージ５３０、及び入出力コンポーネント５５０を含み得る。ある例示的実施形態では、プロセッサ５１０（例えば、中央処理装置（ＣＰＵ）、縮小命令セットコンピューティング（ＲＩＳＣ）プロセッサ、複数命令セットコンピューティング（ＣＩＳＣ）プロセッサ、グラフィック処理ユニット（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、ＡＳＩＣ、無線周波数集積回路（ＲＦＩＣ）、別のプロセッサ、又はこれらの任意の適宜の組み合わせ）は、例えば、命令５１６を実行し得るプロセッサ５１２及びプロセッサ５１４を含み得る。「プロセッサ」という用語は、命令を同時に実行し得る２つ以上の独立したプロセッサ（「コア」と呼ばれることもある）を含み得るマルチコアプロセッサを含むよう意図されている。図５は、複数のプロセッサ５１０を示しているが、機械５００は、単一コアを備えた単一プロセッサ、複数のコアを備えた単一プロセッサ（例えば、マルチコアプロセッサ）、単一コアを備えた複数のプロセッサ、複数のコアを備えた複数のプロセッサ、又はこれらの任意の組み合わせを含み得る。
【００９８】
[00102]  メモリ／ストレージ５３０は、メインメモリ又は他のメモリストレージなどのメモリ５３２、及びストレージユニット５３６（両方とも、バス５０２などを介してプロセッサ５１０にアクセス可能である）を含み得る。ストレージユニット５３６及びメモリ５３２は、本明細書に記載する方法論又は機能の１つ又は複数を具現化する命令５１６を保存する。命令５１６はまた、機械５００によるこれらの実行中に、メモリ５３２内、ストレージユニット５３６内、プロセッサ５１０の少なくとも１つの内部（例えば、プロセッサのキャッシュメモリ内）、又はこれらの任意の適宜の組み合わせに完全又は部分的に存在し得る。従って、メモリ５３２、ストレージユニット５３６、及びプロセッサ５１０のメモリは、機械可読媒体の例である。
【００９９】
[00103]  本明細書では、「機械可読媒体」は、命令（例えば、命令５１６）及びデータを一時的又は恒久的に保存可能なデバイスを意味し、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、バッファメモリ、フラッシュメモリ、光媒体、磁気媒体、キャッシュメモリ、他のタイプのストレージ（例えば、消去可能プログラマブル読出し専用メモリ（ＥＥＰＲＯＭ））、及び／又はこれらの任意の適宜の組み合わせを含み得るが、これらに限定されない。「機械可読媒体」という用語は、命令５１６を保存することができる単一の媒体又は複数の媒体（例えば、集中型若しくは分散型データベース、又は関連付けられたキャッシュ及びサーバ）を含むと解釈されるものとする。「機械可読媒体」という用語はまた、機械（例えば、機械５００）によって実行される命令（例えば、命令５１６）を保存する（命令が機械の１つ又は複数のプロセッサ（例えば、プロセッサ５１０）によって実行されると、本明細書に記載する方法論の１つ又は複数を機械に行わせるように）ことが可能なあらゆる媒体又は複数の媒体のあらゆる組み合わせを含むと解釈されるものとする。従って、「機械可読媒体」は、単一のストレージ装置又はデバイス、及び複数のストレージ装置又はデバイスを含む「クラウドベースの」ストレージシステム又はストレージネットワークを指す。「機械可読媒体」という用語は、正確な意味において、信号を除外する。
【０１００】
[00104]  入出力コンポーネント５５０は、入力を受け取り、出力を提供し、出力を生成し、情報を送信し、情報をやり取りし、測定値を捕捉するなどのための多様なコンポーネントを含み得る。ある特定の機械に含まれる具体的な入出力コンポーネント５５０は、機械のタイプに左右される。例えば、携帯電話などのポータブル機は、恐らく、タッチ入力デバイス又は他のそのような入力機構を含むが、ヘッドレスサーバ機は、恐らく、そのようなタッチ入力デバイスを含まない。入出力コンポーネント５５０が、図５に示されない多くの他のコンポーネントを含み得ることが理解されるだろう。入出力コンポーネント５５０は、以下の説明を簡単にするためだけに機能性に基づいてグループ化され、このグループ化は、決して制限するものではない。様々な例示的実施形態において、入出力コンポーネント５５０は、出力コンポーネント５５２及び入力コンポーネント５５４を含み得る。出力コンポーネント５５２は、視覚的コンポーネント（例えば、プラズマディスプレイパネル（ＰＤＰ）、発光ダイオード（ＬＥＤ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、プロジェクタ、又は陰極線管（ＣＲＴ））、音響コンポーネント（例えば、スピーカ）、ハプティックコンポーネント（例えば、振動モータ、抵抗機構）、他の信号生成器などを含み得る。入力コンポーネント５５４は、英数字入力コンポーネント（例えば、キーボード、英数字入力を受けるように構成されたタッチスクリーン、光学式キーボード、又は他の英数字入力コンポーネント）、ポイントベースの入力コンポーネント（例えば、マウス、タッチパッド、トラックボール、ジョイスティック、運動センサ、又は別のポインティング機器）、触覚入力コンポーネント（例えば、物理的ボタン、タッチ若しくはタッチジェスチャの場所及び／又は力を提供するタッチスクリーン、又は他の触覚入力コンポーネント）、音声入力コンポーネント（例えば、マイクロフォン）などを含み得る。
【０１０１】
[00105]  さらなる例示的実施形態では、入出力コンポーネント５５０は、多様な他のコンポーネントの中でも、バイオメトリックコンポーネント５５６、運動コンポーネント５５８、環境コンポーネント５６０、又は位置コンポーネント５６２を含み得る。例えば、バイオメトリックコンポーネント５５６は、表現（例えば、手振り、表情、声による表現、身振り、又は視線追跡）を検出し、生体信号（例えば、血圧、心拍数、体温、発汗、又は脳波）を測定し、運動関連のメトリック（例えば、移動距離、移動の速度、又は運動に費やした時間）を測定し、人を識別する（例えば、声の識別、網膜識別、顔識別、指紋識別、又は脳波図ベースの識別）などのためのコンポーネントを含み得る。運動コンポーネント５５８は、加速度センサコンポーネント（例えば、加速度計）、重力センサコンポーネント、回転センサコンポーネント（例えば、ジャイロスコープ）などを含み得る。環境コンポーネント５６０は、例えば、照明センサコンポーネント（例えば、光度計）、温度センサコンポーネント（例えば、周囲温度を検出する１つ若しくは複数の温度計）、湿度センサコンポーネント、圧力センサコンポーネント（例えば、圧力計）、音響センサコンポーネント（例えば、背景雑音を検出する１つ若しくは複数のマイクロフォン）、近接センサコンポーネント（例えば、近くの物体を検出する赤外線センサ）、ガスセンサ（例えば、安全のために有害ガスの濃度を検出するため、若しくは大気中の汚染物質を測定するためのガス検出センサ）、又は周囲の物理的環境に対応する表示、測定値、又は信号を提供し得る他のコンポーネントを含み得る。位置コンポーネント５６２は、場所センサコンポーネント（例えば、全地球測位システム（ＧＰＳ）受信機コンポーネント）、高度センサコンポーネント（例えば、それから高度が導出され得る気圧を検出する高度計又は圧力計）、方位センサコンポーネント（例えば、磁力計）などを含み得る。
【０１０２】
[00106]  通信は、多様な技術を用いて実施され得る。入出力コンポーネント５５０は、結合５８２及び結合５７２によりネットワーク５８０又はデバイス５７０に機械５００をそれぞれ結合させるように動作可能な通信コンポーネント５６４を含み得る。例えば、通信コンポーネント５６４は、ネットワーク５８０とインタフェースを取るネットワークインタフェースコンポーネント又は他の適宜のデバイスを含み得る。さらなる例では、通信コンポーネント５６４は、有線通信コンポーネント、無線通信コンポーネント、セルラー通信コンポーネント、近距離無線通信（ＮＦＣ）コンポーネント、Bluetooth（登録商標）コンポーネント（例えば、Bluetooth（登録商標） Low Energy）、Wi-Fi（登録商標）コンポーネント、及び他のモダリティによる通信を提供するための他の通信コンポーネントを含み得る。デバイス５７０は、別の機械又は多様な周辺デバイスの何れか（例えば、ＵＳＢを介して結合された周辺デバイス）でもよい。
【０１０３】
[00107]  また、通信コンポーネント５６４は、識別子を検出することができ、又は識別子を検出するように動作可能なコンポーネントを含んでもよい。例えば、通信コンポーネント５６４は、無線認識（ＲＦＩＤ）タグ読取り機コンポーネント、ＮＦＣスマートタグ検出コンポーネント、光学式読取り機コンポーネント、又は音響検出コンポーネント（例えば、タグを付けた音声信号を識別するためのマイクロフォン）を含み得る。さらに、通信コンポーネント５６４を用いて様々な情報を導出することができる（インターネットプロトコル（ＩＰ）ジオロケーションによる場所、Wi-Fi（登録商標）信号三角測量による場所、ある特定の場所を示し得るＮＦＣビーコン信号を検出することによる場所など）。
【０１０４】
[00108]  様々な例示的実施形態では、ネットワーク５８０の１つ又は複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ＷＡＮ、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネット、インターネットの一部、公衆交換電話網（ＰＳＴＮ）の一部、単純旧式電話サービス（ＰＯＴＳ）ネットワーク、セルラー電話ネットワーク、無線ネットワーク、Wi-Fi（登録商標）ネットワーク、別のタイプのネットワーク、又は２つ以上の上記ネットワークの組み合わせでもよい。例えば、ネットワーク５８０又はネットワーク５８０の一部は、無線又はセルラーネットワークを含んでもよく、結合５８２は、符号分割多重アクセス（ＣＤＭＡ）接続、グローバルシステムフォーモバイルコミュニケーションズ（ＧＳＭ）接続、又は別のタイプのセルラー若しくは無線結合でもよい。この例では、結合５８２は、シングルキャリア無線伝送技術（１ｘＲＴＴ）、ＥＶＤＯ（Evolution-Data Optimized）技術、汎用パケット無線サービス（ＧＰＲＳ）技術、ＧＳＭ進化型高速データレート（ＥＤＧＥ）技術、５Ｇを含む第３世代パートナーシッププロジェクト（３ＧＰＰ）、第４世代無線（４Ｇ）ネットワーク、ユニバーサル移動体通信システム（ＵＭＴＳ）、高速パケットアクセス（ＨＳＰＡ）、ワイマックス（ＷｉＭＡＸ：Worldwide Interoperability for Microwave Access）、ロングタームエボリューション（ＬＴＥ）規格、様々な規格設定団体によって定義された他の規格、他の長距離プロトコル、又は他のデータ転送技術などの様々なタイプのデータ転送技術の何れかを実施し得る。
【０１０５】
[00109]  命令５１６は、ネットワークインタフェースデバイス（例えば、通信コンポーネント５６４に含まれるネットワークインタフェースコンポーネント）により、伝送媒体を使用し、幾つかの周知の転送プロトコル（例えばＨＴＴＰ）の何れか１つを利用してネットワーク５８０上で送信又は受信が行われ得る。同様に、命令５１６は、デバイス５７０への結合５７２（例えば、ピアツーピア結合）により、伝送媒体を使用して送信又は受信が行われ得る。「伝送媒体」という用語は、機械５００による実行のために命令５１６を保存し、符号化し、又は運ぶことが可能なあらゆる無形媒体を含むと解釈されるものとし、このようなソフトウェアの通信を容易にするデジタル若しくはアナログ通信信号、又は他の無形媒体を含む。
【図１】
2021523430.tif 000011
【図２】
2021523430.tif 000012
【図３】
2021523430.tif 000013
【図４Ａ】
2021523430.tif 000014
【図４Ｂ】
2021523430.tif 000015
【図５】
2021523430.tif 000016
【国際調査報告】
2021523430.tif 000017
2021523430.tif 000018