(57)【要約】【課題】ニューラル・ネットワーク解析を提供する。【解決手段】いくつかの実施形態によれば、本開示は、第一の電子メッセージを受領し、それを記憶装置に記憶し、それをデコードして第一のデータ構造を出力することを含むニューラル・ネットワーク解析の方法に関係しうる。第一の電子メッセージは、前記第一の電子メッセージを、前記第一の電子メッセージより多くのビットを含む前記第一のデータ構造に相関付ける第一の辞書項目を参照しうる。本方法は、前記第一のデータ構造に対してデータ構造解析を実行するために前記第一のデータ構造を処理要素に提供して、前記第一の電子メッセージより多くのビットを含む第二のデータ構造を生じることを含んでいてもよい。本方法は、前記第二のデータ構造を、前記第二のデータ構造を、前記第二のデータ構造より少ないビットを含む第二の電子メッセージに相関付ける第二の辞書項目にマッチさせ；前記第二のデータ構造の代わりに前記第二の電子メッセージを送出することをも含んでいてもよい。【選択図】図２
2017157215.tif 000002
【特許請求の範囲】
【請求項１】
ニューラル・ネットワーク解析の方法であって：
第一の電子メッセージを受領し、該第一の電子メッセージを記憶装置に記憶する段階と；
前記第一の電子メッセージをデコードして第一のデータ構造を出力する段階であって、前記第一の電子メッセージは、前記第一の電子メッセージを、前記第一の電子メッセージより多くのビットを含む前記第一のデータ構造に相関付ける第一の辞書項目を参照する、段階と；
前記第一のデータ構造に対して前記ニューラル・ネットワークにおけるデータ構造解析を実行するために前記第一のデータ構造を処理要素に提供する段階であって、前記データ構造解析は、前記第一の電子メッセージより多くのビットを含む第二のデータ構造を生じる、段階と；
前記第二のデータ構造を、前記第二のデータ構造を、前記第二のデータ構造より少ないビットを含む第二の電子メッセージに相関付ける第二の辞書項目にマッチさせる段階と；
前記第二のデータ構造の代わりに前記第二の電子メッセージを送出する段階と；
前記第二の辞書項目を含む第二の辞書のパフォーマンスを試験する段階と；
前記第二の辞書の前記試験に基づいて前記第二の辞書のサイズを調整する段階とを含む、
方法。
【請求項２】
前記データ構造解析についての可能性のある結果を判別する段階と；
前記第二の辞書のサイズを辞書項目数に設定する段階と；
前記データ構造解析についての前記可能性のある結果をクラスタリングして前記第二の辞書についての複数の異なる項目を決定する段階であって、決定された前記異なる項目の数が前記第二の辞書のサイズに対応する、段階とをさらに含む、
請求項１記載の方法。
【請求項３】
前記試験に基づいて、前記第二の辞書を前記処理要素と通信するよう記憶し、前記第二の辞書を別のニューラル・ネットワーク層コンポーネントに送出することをさらに含む、請求項２記載の方法。
【請求項４】
前記クラスタリングが、k平均アルゴリズムまたは主成分解析ホワイトニング・アルゴリズムの一方を使って実行される、請求項２記載の方法。
【請求項５】
前記第一の電子メッセージが前記ニューラル・ネットワークの前の層から受領され、前記前の層は前記第一の辞書項目をもつ第一の辞書を含んでおり、前記前の層は前記第一の辞書項目が前記第一のデータ構造にマッチすることに基づいて前記第一の電子メッセージを生成する、請求項１記載の方法。
【請求項６】
前記第一の電子メッセージが32ビットより少ないビットを含み、前記第一のデータ構造が32ビットの浮動小数点値を含む、請求項１記載の方法。
【請求項７】
前記第二の電子メッセージを前記第二のデータ構造に相関させる前記第二の辞書項目に対応する前記第二の電子メッセージを受領する段階と；
前記第二の電子メッセージをデコードすることに応答して、前記第二のデータ構造を取り出す段階と；
前記第二のデータ構造を出力する段階とをさらに含む、
請求項１記載の方法。
【請求項８】
第一の辞書が、前記第一の辞書項目および32個未満のさらなる辞書項目を含む、請求項１記載の方法。
【請求項９】
モバイル装置上で実行される、請求項１記載の方法。
【請求項１０】
第一のニューラル・ネットワーク層および第二のニューラル・ネットワーク層を有するニューラル・ネットワーク・コンピューティング・システムであって、
前記第一のニューラル・ネットワーク層は：
第一のデータ構造を第一の電子メッセージと相関付ける第一の辞書項目を記憶している第一の記憶装置と；
前記第一の電子メッセージを送出するよう構成された第一の送出コンポーネントとを含み、前記第一の電子メッセージは前記第一のデータ構造より少数のビットを含み、
前記第二のニューラル・ネットワーク層は：
前記第一のニューラル・ネットワーク層から受領された前記第一の電子メッセージを記憶するよう構成されている第二の記憶装置と；
第二の処理要素であって：
前記第一の電子メッセージを読み、前記第一の辞書項目に基づいて前記第一のデータ構造を出力し；
前記第一のデータ構造に対してデータ構造解析を実行して第二のデータ構造を生じ；
前記第二のデータ構造を、前記第二のデータ構造を、前記第二のデータ構造より少ないビットを含む第二の電子メッセージに相関付ける第二の辞書項目にマッチさせ；
前記第二の辞書項目を含む第二の辞書のパフォーマンスを試験し；
前記第二の辞書の前記試験に基づいて前記第二の辞書のサイズを調整するよう構成されている、第二の処理要素と；
前記第二の電子メッセージを送出するよう構成されている第二の送出コンポーネントとを含む、
ニューラル・ネットワーク・コンピューティング・システム。
【請求項１１】
前記第一の辞書項目が第一の辞書の一部であり、前記第二の辞書項目が前記第一の辞書とは異なる前記第二の辞書の一部である、請求項１０記載のニューラル・ネットワーク・コンピューティング・システム。
【請求項１２】
前記第一の電子メッセージが32ビットより少ないビットを含み、前記第一のデータ構造が32ビットの浮動小数点値を含む、請求項１０記載のニューラル・ネットワーク・コンピューティング・システム。
【請求項１３】
第一の辞書が、前記第一の辞書項目および32個未満のさらなる辞書項目を含み、前記第一のニューラル・ネットワーク層および前記第二のニューラル・ネットワーク層の両方に含まれる、請求項１記載の方法。
【請求項１４】
前記第一の記憶装置および前記第二の記憶装置が単一の物理的な装置の異なる領域であり、前記第一のニューラル・ネットワーク層および前記第二のニューラル・ネットワーク層が前記単一の物理的な装置の論理的な層である、請求項１０記載のニューラル・ネットワーク・コンピューティング・システム。
【請求項１５】
前記第一のニューラル・ネットワーク層および前記第二のニューラル・ネットワーク層がネットワークを通じて通信する異なる物理的な装置上にある、請求項１０記載のニューラル・ネットワーク・コンピューティング・システム。
【請求項１６】
ニューラル・ネットワークを用意する方法であって：
ニューラル・ネットワークのある層に関連したデータ構造解析の可能性のある結果を判別する段階と；
辞書のサイズを前記層についての辞書項目数に設定する段階と；
前記データ構造解析の前記可能性のある結果をクラスタリングして、各辞書項目数について諸データ構造および関連する電子メッセージを決定する段階であって、辞書項目の数が前記辞書のサイズに対応する、段階と；
前記ニューラル・ネットワークの前記層に関連付けられた前記辞書のパフォーマンスを試験する段階と；
前記試験に基づいて、前記ニューラル・ネットワークにおける各層が、前のニューラル・ネットワーク層の送出辞書に相関付けられた受領辞書をもち、後続のニューラル・ネットワーク層の受領辞書に相関付けられた送出辞書をもつよう、前記ニューラル・ネットワークにおける隣接する諸層に前記辞書を記憶する段階とを含む、
方法。
【請求項１７】
前記試験に基づいて、前記辞書のサイズを修正し；
修正されたサイズの前記辞書のパフォーマンスの追加的な試験を実行することをさらに含む、
請求項１６記載の方法。
【請求項１８】
前記辞書のサイズが0から32までの間の値をもつ、請求項１６記載の方法。
【請求項１９】
各層について、受領辞書および送出辞書が異なっている、請求項１６記載の方法。
【請求項２０】
前記ニューラル・ネットワークにおける解析のためのデータを受領し；
前記データを送出するのではなく、対応する電子メッセージをもつ辞書項目を検索して、該電子メッセージを送出することをさらに含む、
請求項１６記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示で論じられる一つまたは複数の実施形態はニューラル・ネットワーク解析に関する。
【背景技術】
【０００２】
ニューラル・ネットワーク解析は、複数の処理層を通じて高レベルの抽象化をモデル化しようと試みる、生物の神経網から想を得た解析のモデルを含みうる。しかしながら、ニューラル・ネットワーク解析は大量のコンピューティング資源および／またはネットワーク資源を消費することがある。
【０００３】
本開示で請求される主題は、何らかの欠点を解決するまたは上記のような環境でのみ動作する実施形態に限定されない。むしろ、この背景は、本開示に記載されるいくつかの実施形態が実施されうる一つの例示的な技術領域を示すために与えられている。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示の一つまたは複数の実施形態は、第一の電子メッセージを受領し、該第一の電子メッセージを記憶装置に記憶することを含むニューラル・ネットワーク解析の方法を含んでいてもよい。本方法は、前記第一の電子メッセージをデコードして第一のデータ構造を出力することをも含んでいてもよい。ここで、前記第一の電子メッセージは、前記第一の電子メッセージを、前記第一の電子メッセージより多くのビットを含む前記第一のデータ構造に相関付ける第一の辞書項目を参照する。本方法は、前記第一のデータ構造に対して前記ニューラル・ネットワークにおけるデータ構造解析を実行するために処理要素に前記第一のデータ構造を提供することをも含んでいてもよい。前記データ構造解析は、前記第一の電子メッセージより多くのビットを含む第二のデータ構造を生じてもよい。本方法は、前記第二のデータ構造を、前記第二のデータ構造を、前記第二のデータ構造より少ないビットを含む第二の電子メッセージに相関付ける第二の辞書項目にマッチさせることをも含んでいてもよい。本方法は、より複雑な前記第二のデータ構造の代わりに前記第二の電子メッセージを送信することをも含んでいてもよい。本方法はさらに、前記第二の辞書項目を含む第二の辞書のパフォーマンスを試験し、前記第二の辞書の試験に基づいて前記第二の辞書のサイズを調整することを含んでいてもよい。
【０００５】
実施形態の目的および利点は、少なくとも、請求項において具体的に指摘される要素、特徴および組み合わせによって実現され、達成される。
【０００６】
以上の概括的な記述および以下の詳細な説明は、例を提供し、説明するものであり、制約するものではない。
【図面の簡単な説明】
【０００７】
例示的な実施形態について、付属の図面を使ってさらに具体的かつ詳細に記述し、説明する。
【図１】ニューラル・ネットワーク解析を実行するための例示的なシステムを表わす図である。
【図２】ニューラル・ネットワーク・システムの二つの例示的な層を表わす図である。
【図３】ニューラル・ネットワーク解析の例示的な方法のフローチャートである。
【図４】ニューラル・ネットワークを準備する例示的な方法のフローチャートである。
【発明を実施するための形態】
【０００８】
ニューラル・ネットワーク解析は、解析のために入力を受領し、それらの入力を一つまたは複数の中間層を通してデータ構造解析（たとえばデータ構造に対する解析）を実行することを含んでいてもよい。ある層のデータ構造解析の出力は隣接する層に渡されて追加的なデータ構造解析を実行するなどと、ニューラル・ネットワーク解析全体が完了して結果が出力されるまで行なわれてもよい。そのようなニューラル・ネットワーク解析は、中間層の入力および出力の全部を記憶することおよび中間層の間でデータを伝送することの両方において、資源集約的であることがある。
【０００９】
本開示のいくつかの実施形態では、電子メッセージと対応するデータ構造との辞書項目をもつ限られたサイズの辞書が利用されてもよく、中間層のデータ構造解析において使われる、より複雑なデータ構造を伝送するのではなく、単純な電子メッセージがニューラル・ネットワークの中間層どうしの間で伝送されてもよい。たとえば、ある層がデータ構造解析を実行した後、データ構造解析から出力されたデータ構造は、電子メッセージを含む第一の辞書において位置特定されてもよい。該出力データ構造に対応する第一の辞書からの電子メッセージが、前記中間データ構造の代わりに別のネットワーク層に送られてもよい。前記電子メッセージを受信後、該他のネットワーク層は、前記第一の辞書の同じまたは類似の項目をもつ第二の辞書を使って、前記電子メッセージと前記電子メッセージに関連付けられた対応するデータ構造とを位置特定してもよい。前記他のネットワーク層は前記データ構造に対してデータ構造解析を実行してもよい。これらの辞書を使うことによって、より複雑なデータ構造の代わりに、より単純な電子メッセージが記憶され、伝送されうる。それにより、中間層の、よってニューラル・ネットワークの、伝送帯域幅および記憶容量の両方が低減されうる。
【００１０】
本開示は、そのようなニューラル・ネットワークを用意することにも関しうる。これらおよび他の実施形態において、各中間層におけるデータ構造解析についての可能性のある結果が決定され、ニューラル・ネットワークの中間層についての辞書のサイズが選択されてもよい。いくつかの実施形態では、可能性のある結果の数は辞書の選択されたサイズより大きくてもよい。これらおよび他の実施形態において、辞書項目の数を辞書の選択されたサイズに制限するために、可能性のある結果はクラスタリングされてもよい。たとえば、辞書の選択されたサイズが32項目であり、所与の層について90通りの可能性のある結果がある場合、32個の代表的な可能性のある結果が、その所与の層についての辞書のための辞書項目として選択されてもよい。ニューラル・ネットワークは選択されたサイズの辞書を用いて試験されてもよい。ニューラル・ネットワークが辞書の選択されたサイズでいい性能を発揮すれば、それらの辞書は記憶され、ニューラル・ネットワークにおいて使用される。ニューラル・ネットワークがいい性能を発揮しなければ、それらの辞書のサイズは、パフォーマンスを改善するよう修正されてもよい。
【００１１】
本開示での用法では、「辞書」は、あるアイテムを別のアイテムに関連付ける一つまたは複数の「項目〔エントリー〕」を含む任意のコンピュータ可読データを含みうる。たとえば、辞書項目は、単純な電子メッセージ（たとえば5ビット値）をより複雑なデータ構造（たとえば32ビットの浮動小数点値）に関連付けてもよい。辞書はそれらの項目のうちの一つ（たとえば前記単純な電子メッセージ）によって問い合わせされ、出力として、相関付けられた項目を受領してもよい。たとえば、単純な電子メッセージによる問い合わせがより複雑なデータ構造の出力を与えてもよく、より複雑なデータ構造による問い合わせが単純な電子メッセージの出力を与えてもよい。
【００１２】
本開示での用法では、ニューラル・ネットワーク層を参照しての用語「隣接する」は、互いに入力および／または出力を提供するニューラル・ネットワーク層を指しうる。たとえば、所与のニューラル・ネットワーク層が複数の他のニューラル・ネットワーク層に入力を提供する場合、該所与のニューラル・ネットワーク層は、該複数の他のニューラル・ネットワーク層のすべてに隣接していることがありうる。さらに、ニューラル・ネットワーク層に関して用語「前の」および「後続の」は、直接隣接するニューラル・ネットワーク層を指すこともあれば、あるいは解析チェーンのさらに上流または下流の他のニューラル・ネットワーク層を指すこともある。
【００１３】
本開示の実施形態は、付属の図面を参照して説明される。
【００１４】
図１は、本開示の一つまたは複数の実施形態に基づく、ニューラル・ネットワーク解析を実行するための例示的なシステム１００を表わす図である。システム１００は、中央制御装置１１０および複数の層、たとえば第一層１２１、第二層１２２およびN層１２３を含みうる。省略符号および変数Nを使っていることで示されるように、任意の数の層がシステム１００に含まれうる。システム１００は、中央制御装置１１０および／またはシステム１００の層１２１、１２２および１２３の間の通信のためのネットワーク１３０をも含んでいてもよい。
【００１５】
ニューラル・ネットワーク解析は、大量のデータ、多数の入力を考慮に入れることのできるおよび／または解析を実行することにおける例からの学習から裨益することのできる任意の解析を含みうる。さらに、ニューラル・ネットワーク解析は、予報、分類、シナリオ予測、複雑な関数モデル化、回帰などを含みうる。いくつかの実施形態では、ニューラル・ネットワーク解析は画像を分類することを含んでいてもよく、中間層は、エッジを見出すこと、形状を判別すること、高次特徴（たとえば鼻、口、屋根など）を識別することおよび高次特徴に基づいて画像を分類することなどといったタスクを実行してもよい。
【００１６】
中央制御装置１１０は、任意の数のシステム、装置、コンポーネントまたはそれらの組み合わせであって、ニューラル・ネットワーク１００を制御する、指揮するまたは他の仕方でこれと対話するものを含んでいてもよい。たとえば、システム１００における解析のための入力または入力の集合は、中央制御装置１１０を介して提供されてもよい。もう一つの例として、中央制御装置１１０は、システム１００を介して実行されるニューラル・ネットワーク解析から帰結する出力を提供してもよい。
【００１７】
いくつかの実施形態では、中央制御装置１１０は、ネットワーク１３０を介して、システム１００の層（たとえば第一層１２１、第二層１２２および／またはN層１２３）の一つまたは複数と通信してもよい。たとえば、中央制御装置１１０は、ニューラル・ネットワーク解析を開始するために第一層１２１に入力を送出し、該入力に基づくニューラル・ネットワーク解析の出力をN層１２３から受領してもよい。追加的または代替的に、中央制御装置１１０は、システム１００の層のうちの一つまたは複数に一つまたは複数の辞書を通信してもよい。
【００１８】
システム１００の層は、ネットワーク１３０を介してシステム１００における他の隣接する層と通信していてもよい。たとえば、第一層１２１は第二層１２２と通信してもよく、第二層１２２はN層１２３と通信してもよい。これらおよび他の実施形態において、システム１００における一連の各層はニューラル・ネットワーク解析における逐次反復ステップを実行してもよい。たとえば、第一層１２１は第一の組のデータ構造解析を実行してもよく、第一の組のデータ構造解析によって生成された出力を第二層１２２に渡してもよい；第二層１２２は第二の組のデータ構造解析を実行してもよく、第二の組のデータ構造解析によって生成された出力を第N層１２３に渡してもよい；N層１２３はN番目の組のデータ構造解析を実行して、N番目の組のデータ構造解析によって生成された出力を中央制御装置１１０に渡してもよい。いくつかの実施形態では、これらの層は、データ構造解析から出力された実際のデータではなく、プレースホルダーの電子メッセージを送信してもよい。
【００１９】
ネットワーク１３０は、中央制御装置１１０および／またはシステム１００の層のうちの一つまたは複数の間の通信を提供するよう構成された任意の装置、システム、コンポーネントまたはそれらの組み合わせを含みうる。例として、ネットワーク１３０は、中央制御装置１１０および／またはシステム１００の層が通信できるようにする一つまたは複数の広域ネットワーク（WAN）および／またはローカル・エリア・ネットワーク（LAN）を含んでいてもよい。いくつかの実施形態では、ネットワーク１３０は、複数のWANおよび／またはLANの間の論理的および物理的な接続によって形成されるグローバルな相互ネットワークを含むインターネットを含んでいてもよい。代替的または追加的に、ネットワーク１３０は、一つまたは複数のセルラーRFネットワークおよび／または一つまたは複数の有線および／または無線ネットワーク、たとえばこれに限られないが802.xxネットワーク、ブルートゥース(登録商標)・アクセス・ポイント、無線アクセス・ポイント、IPベースのネットワークなどを含んでいてもよい。ネットワーク１３０はまた、ある型のネットワークが別の型のネットワークとインターフェースをもてるようにするサーバーをも含んでいてもよい。追加的または代替的に、ネットワーク１３０はイントラネットまたは組織内でまたは他の意味で安全な仕方で通信する一つまたは複数のコンピューティング装置を含んでいてもよい。
【００２０】
いくつかの実施形態では、システム１００は、単一のスタンドアローンの装置として実装されてもよい。これらおよび他の実施形態において、中央制御装置１１０および／または層１２１、１２２および／または１２３は、論理的な表現であってもよく、通信は、単一のスタンドアローンの装置の異なる物理的および／または論理的コンポーネントの間であってもよい。たとえば、第一層１２１と第二層１２２の間の通信は、物理的なプロセッサ上で走るあるプロセスからその物理的なプロセッサまたは前記装置の別のプロセッサ上で走る第二のプロセスへの出力であってもよい。これらおよび他の実施形態において、システム１００はデスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバー・コンピュータ（個々のサーバー・コンピュータの複数のブレードおよび／またはラックを含む）、タブレット・コンピュータ、携帯電話、スマートフォン、携帯情報端末（PDA）、電子書籍リーダー装置、ビデオ・ゲーム・コンソールまたは他の好適なコンピュータ装置を含んでいてもよい。これらおよび他の実施形態において、ネットワーク１３０は前記装置内の回路接続を含んでいてもよい。
【００２１】
いくつかの実施形態では、システム１００は分散式システムとして実装されてもよい。たとえば、中央制御装置１１０は中央サーバーまたは他のコンピューティング装置として実装されてもよく、そこでユーザーがニューラル・ネットワーク解析のための問い合わせを入力したり、および／またはニューラル・ネットワーク解析の出力を観察したりしてもよい。各層は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバー・コンピュータ、タブレット・コンピュータ、携帯電話、スマートフォン、携帯情報端末（PDA）、電子書籍リーダー装置、ビデオ・ゲーム・コンソールまたは他の好適なコンピュータ装置といったスタンドアローンの装置として実装されてもよい。中央制御装置１１０は所与の層のある種のニューラル・ネットワーク・タスクを所与の装置または装置の組み合わせに割り当ててもよい。これらおよび他の実施形態において、システム１００の諸層を動作させる物理的な装置は、限られたパワー、限られたメモリ、限られた記憶および／または限られた処理機能といった限られたコンピューティング資源を有していてもよい。しかしながら、複数の分散した装置にシステム１００の諸層を動作させることによって、処理およびコンピューティング需要は、通信し合う諸装置のネットワークを通じて分散されうる。
【００２２】
本開示の範囲から外れることなく、システム１００に、修正、追加または省略がなされてもよい。たとえば、いくつかの実施形態では、システム１００は、明示的に図示または記述されていないことがありうる任意の数の他のコンポーネントを含んでいてもよい。たとえば、システム１００は任意の数の層を含んでいてもよい。追加的な例として、任意の数のコンポーネントが解析のためにニューラル・ネットワークに入力を提供してもよい（たとえば、第一層１２１に入力を提供するものとして、単一の中央制御装置１１０ではなく複数の装置があってもよい）。追加的な例として、単に直接的に隣接する層以外の層の間に相互接続があってもよい。たとえば、ニューラル・ネットワーク解析に依存して、第一層１２１は第一の出力を第二層１２２に、第二の出力をN層１２３に提供してもよい。
【００２３】
図２は、本開示の少なくとも一つの実施形態に基づくニューラル・ネットワーク・システム２００の二つの例示的な層を表わす図である。簡単のため、本開示の原理の説明において、二つの層のみが示されるが、本開示の範囲内で任意の数の層および入力が考えられている。図２は、物理的なコンポーネントではなく機能的なタスクまたは論理的な特徴を表わしうる六角形の要素を含んでいてもよい。図２の矢印は、本開示の少なくとも一つの実施形態に基づく、ニューラル・ネットワーク・システム２００内での情報の論理的な流れを表わしていてもよい。
【００２４】
ニューラル・ネットワーク・システム２００は、第一層２１０および第二層２５０を含んでいてもよい。第一層２１０は第一の記憶装置２１５および第一の処理要素２２０を含んでいてもよい。第一の処理要素２２０は第一の処理要素２２０に関連付けられた論理的なタスクおよび／または機能を含んでいてもよく、そのようなタスクおよび／または機能は図２における六角形の要素で示されていてもよい。第一の処理要素２２０は第一の受領辞書２２２、第一のデータ構造解析２２４および第一の送出辞書２２６を含んでいてもよい。第二層２５０は第二の記憶装置２５５および第二の処理要素２６０を含んでいてもよい。第二の処理要素２６０は第二の処理要素２６０に関連付けられた論理的なタスクおよび／または機能を含んでいてもよく、そのようなタスクおよび／または機能は図２における六角形の要素で示されていてもよい。第二の処理要素２６０は第二の受領辞書２６２、第二のデータ構造解析２６４および第二の送出辞書２６６を含んでいてもよい。第一層２１０および第二層２５０のそれぞれの側の省略符号は第一層２１０および第二層２５０がニューラル・ネットワーク・システム２００内の任意の数の層のうちの二つでありうることを示している。
【００２５】
第一の記憶装置２１５および第二の記憶装置２５５は、コンピュータ実行可能な命令またはデータ構造を担持するまたは記憶するコンピュータ可読記憶媒体を含んでいてもよい。たとえば、電子メッセージは第一の記憶装置２１５および／または第二の記憶装置２５５に記憶されてもよい。もう一つの例として、第一の受領辞書２２２および第一の送出辞書２２６の辞書項目は第一の記憶装置２１５に記憶され、第一の処理要素２２０によって利用および／または呼び出しされてもよい；第二の受領辞書２６２および第二の送出辞書２６６の辞書項目は第二の記憶装置２５５に記憶され、第二の処理要素２６０によって利用および／または呼び出しされてもよい。そのようなコンピュータ可読記憶媒体は、第一または第二の処理要素２２０および２６０のような汎用または専用目的のコンピュータによってアクセスされうるいかなる利用可能な媒体を含んでいてもよい。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュメモリ・デバイス（たとえば半導体メモリ・デバイス）、ハードディスクドライブ（HDD）、半導体ドライブ（SSD）またはコンピュータ実行可能な命令またはデータ構造の形で所望されるプログラム・コードを担持または記憶するために使用されうる、汎用または特殊目的コンピュータによってアクセスされうる他の任意の記憶媒体を含む、有体または非一時的なコンピュータ可読記憶媒体を含んでいてもよい。コンピュータ可読記憶媒体は、スタンドアローンの媒体として、あるいは他の何らかのシステム、コンポーネントまたは装置の一部として構成されうる。コンピュータ可読記憶媒体は、物理的な媒体としてまたは仮想化された媒体として構成されうる。上記の任意のものの組み合わせも、コンピュータ可読記憶媒体の範囲内に含まれうる。コンピュータ実行可能な命令はたとえば、処理要素（たとえば第一または第二の処理要素２２０および２６０）に、ある動作または動作群を実行させるよう構成された命令およびデータを含んでいてもよい。
【００２６】
第一および／または第二の処理要素２２０および２６０は、さまざまなコンピュータ・ハードウェアまたはソフトウェア・モジュールを含むいかなる好適な専用または汎用コンピュータ、コンピューティング・エンティティまたは処理装置を含んでいてもよく、第一の記憶装置２１５および／または第二の記憶装置２５５のようないかなる適用可能なコンピュータ可読記憶媒体上に記憶された命令を実行するよう構成されていてもよい。たとえば、第一および／または第二の処理要素２２０および２６０はプロセッサ、マルチコアプロセッサ、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（DSP）、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）またはプログラム命令をインタープリットおよび／または実行するおよび／またはデータを処理するよう構成された他の任意のデジタルもしくはアナログ回路を含んでいてもよい。図３では単一の処理要素として示されているが、第一および第二の処理要素２２０および２６０は、本開示に記載される任意の数の動作を個々にまたは集団的に実行するよう構成された任意の数のプロセッサを含んでいてもよい。さらに、プロセッサの一つまたは複数は、一緒に結合されたまたはリモートに通信する異なる装置のような、一つまたは複数の異なる電子装置上に存在していてもよい。
【００２７】
第一層２１０および第二層２５０のそれぞれは、通信を受領し、電子メッセージのような電子通信を送出してもよい。そのような通信は、図１のネットワーク１３０のようなネットワークを通じてであってもよい。これらおよび他の実施形態において、第一層２１０および第二層２５０のそれぞれは、それらの層が通信するネットワークと互換な通信コンポーネントを含んでいてもよい。たとえば、第一の処理要素２２０と第二の処理要素２５５の間にネットワークが存在していてもよい。
【００２８】
第一の受領辞書２２２、第一の送出辞書２２６、第二の受領辞書２６２および第二の送出辞書２６６のそれぞれは、あるアイテムを別のアイテムと関連付ける一つまたは複数の項目を含む任意のコンピュータ可読データを含みうる。たとえば、辞書項目は単純な電子メッセージ（たとえば5ビット値）をより複雑なデータ構造（たとえば32ビットの浮動小数点値）と関連付けてもよい。辞書は、項目の一つ（たとえば前記単純な電子メッセージ）によって問い合わせされ、出力として、相関付けられた項目を受け取ってもよい。たとえば、単純な電子メッセージによる問い合わせの結果、より複雑なデータ構造の出力が与えられてもよく、より複雑なデータ構造による問い合わせの結果、単純な電子メッセージの出力が与えられてもよい。これらおよび他の実施形態において、辞書は記憶装置上に記憶されていてもよく（たとえば、第一の受領辞書２２２および第一の送出辞書２２６は第一の記憶装置２１５上に記憶されてもよい）、処理要素によって利用されてもよい（たとえば第一の処理要素２２０が第一の受領辞書２２２および第一の送出辞書２２６を利用してもよい）。
【００２９】
動作では、第一層２１０は、第一の記憶装置２１５に記憶されていてもよい第一の電子メッセージを受領してもよい。第一の電子メッセージは単純な電子メッセージであってもよい。第一の処理要素２２０は第一の電子メッセージを第一の記憶装置２１５から読んでもよく、第一の受領辞書２２２において第一の電子メッセージを位置特定してもよい。第一の受領辞書２２２は、第一の電子メッセージを、第一の電子メッセージより複雑な第一のデータ構造に相関付ける項目を含んでいてもよい。たとえば、第一の電子メッセージは4、5、6またはそれ以上のビットなど、若干数のビットに限られていてもよく、第一のデータ構造は20、30、32、35、40、50、60または64ビットの浮動小数点値であってもよい。第一の受領辞書２２２は第一のデータ構造を出力してもよい。いくつかの実施形態では、第一の電子メッセージと第一のデータ構造の間のビットの差は一桁の半分、まるまる一桁または他の何らかの相違であってもよい。
【００３０】
第一のデータ構造は、第一層２１０に課されたニューラル・ネットワーク解析を実行するための第一のデータ構造解析２２４において使われてもよい。第一のデータ構造解析２２４は第二のデータ構造を生じてもよく、これが第一の送出辞書２２６に提供されてもよい。送出辞書２２６は第二のデータ構造を位置特定し、対応する第二の電子メッセージを出力してもよい。第二の電子メッセージは第二のデータ構造ほど複雑でなくてもよい。たとえば、第二の電子メッセージは、4、5、6またはそれ以上のビットなど、若干数のビットに限られていてもよく、第二のデータ構造は20、30、32、35、40、50、60または64ビットの浮動小数点値であってもよい。第一の送出辞書２２６は第二の電子メッセージを出力してもよい。いくつかの実施形態では、第二の電子メッセージと第二のデータ構造の間のビットの差は一桁の半分、まるまる一桁または他の何らかの相違であってもよい。
【００３１】
いくつかの実施形態では、第一のデータ構造解析２２４の出力は第一の送出辞書２２６における項目のどれとも異なることがありうる。これらおよび他の実施形態において、出力は、第一の送出辞書２２６の項目と比較されてもよく、最も近い値をもつ項目がその出力へのマッチとして選択されてもよい。最も近い値は、二つの値の間の絶対的な距離に基づいて、重み付けされた項目に基づいて、前記出力を丸めることに基づいて、などで選択されてもよい。上記のように、マッチする辞書項目を選択した後、マッチする辞書項目に対応する電子メッセージが出力されうる。
【００３２】
第一層２１０は第二層２５０に第二の電子メッセージを送ってもよい。第二層２５０は第二の記憶装置２５５に第二の電子メッセージを記憶してもよい。第二層２５０は、第一層２１０が第一のメッセージを扱うのと同様の仕方で第二の電子メッセージを扱ってもよい。たとえば、第二の電子メッセージは、第二の受領辞書２６２において検索されて、第二のデータ構造解析２６４において使われるべき対応する第二のデータ構造を同定し、出力してもよい。第二のデータ構造解析２６４は第三のデータ構造を出力してもよく、これは第二の送出辞書２６６において検索されて、第三の電子メッセージを同定し、出力してもよい。第三の電子メッセージは、ニューラル・ネットワーク・システム２００の後続の層に送られてもよい。
【００３３】
いくつかの実施形態では、ニューラル・ネットワーク・システム２００における隣接する層の送出辞書および受領辞書は相関していてもよく、一つまたは複数の重複する項目を含んでいてもよく、一つまたは複数の異なる項目を含んでいてもよい。たとえば、第一の送出辞書２２６および第二の受領辞書２６２は、両方の辞書において同じ電子メッセージが同じデータ構造に対応するよう少なくともいくつかの重複する項目を有していてもよく、一つまたは複数の異なる項目を有していてもよい。これらおよび他の実施形態において、完全なデータ構造を送出するのではなく、それほど複雑でない電子メッセージが送出され、記憶されることができる。そのような辞書項目を使うことは、ネットワーク帯域幅を節約し、記憶スペースを節約することによって、コンピューティング資源を節約しうる。そのような実施形態では、前のニューラル・ネットワーク層からの送出辞書および後続のニューラル・ネットワーク層からの受領辞書は同一であってもよい（たとえば、第一の送出辞書２２６および第二の受領辞書２６２が同じ項目を有していてもよい）。いくつかの実施形態では、辞書における項目数は、所与の層についてまたは所与のニューラル・ネットワーク・システムについて、限られていてもよい。たとえば、辞書サイズは2、4、8、16、32、64、128などの項目数に限定されていてもよく、あるいは5、10、15などの項目数に限定されていてもよい。いくつかの実施形態では、辞書のサイズはニューラル・ネットワーク・システム２００の諸層を実装するために使われる装置に基づいていてもよい。たとえば、ニューラル・ネットワーク・システム２００の諸層を実装するためにモバイル装置が使われる場合には、ニューラル・ネットワーク・システム２００の諸層を実装するためにサーバー・コンピュータが使われる場合より、辞書のサイズが小さくなりうる。いくつかの実施形態では、辞書のサイズが電子メッセージのサイズに関係していてもよい。たとえば、32個の項目については、電子メッセージは5ビットを含んでいてもよく、16個の項目については、電子メッセージは4ビットを含んでいてもよい、など。
【００３４】
本開示の範囲から外れることなく、ニューラル・ネットワーク・システム２００に、修正、追加または省略がなされてもよい。たとえば、いくつかの実施形態では、ニューラル・ネットワーク・システム２００は、明示的に図示または記述されていないことがありうる任意の数の他のコンポーネントを含んでいてもよい。たとえば、ニューラル・ネットワーク・システム２００は任意の数の層を含んでいてもよい。追加的な例として、層は、電子メッセージを送出および／または受領するための通信コンポーネントを含んでいてもよい。追加的な例として、記憶装置２１５および処理要素２２０は、専用のASICまたはFPGAのような単一の装置として実装されてもよい。
【００３５】
図３は、本開示の一つまたは複数の実施形態に基づく、ニューラル・ネットワーク解析の例示的な方法３００のフローチャートである。方法３００はいかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図１のシステム１００または図２のニューラル・ネットワーク・システム２００が、方法３００に関連する動作の一つまたは複数を実行してもよい。離散的なブロックを用いて図示されているが、所望される実装に依存して、方法３００のブロックの一つまたは複数に関連するステップおよび動作は追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。
【００３６】
ブロック３１０では、第一の電子メッセージが受領されてもよい。たとえば、ニューラル・ネットワーク・システム（たとえば図１のシステム１００または図２のニューラル・ネットワーク・システム２００）の第一層（たとえば図１の第一層１２１または図２の第一のニューラル・ネットワーク層２１０）が前のニューラル・ネットワーク層および／または中央制御装置（たとえば図１の中央制御装置１１０）から第一の電子メッセージを受領してもよい。第一の電子メッセージは単純な電子メッセージであってもよい。
【００３７】
ブロック３２０では、第一の電子メッセージがデコードされてもよい。たとえば、第一の電子メッセージは、第一の電子メッセージを第一のデータ構造に相関付ける第一の辞書項目をもつ辞書（たとえば図２の第一の受領辞書２１０）に与えられてもよい。いくつかの実施形態では、第一のデータ構造は第一の辞書項目より複雑であってもよい。第一のデータ構造が第一の辞書項目より複雑であるとは、第一のデータ構造が第一の辞書項目より多くのビットを含むことを示してもよい。
【００３８】
ブロック３３０では、第一のデータ構造は、処理要素（たとえば図２の処理要素２２０）に与えられてもよい。第一のデータ構造に対してデータ構造解析（たとえば図２の第一のデータ構造解析２２４）を実行して第二のデータ構造を与えるためである。たとえば、処理要素は記憶装置（たとえば図２の第一の記憶装置２１５）から第一のデータ構造を取り出してもよい。
【００３９】
ブロック３４０において、第二のデータ構造が、第二のデータ構造を第二の電子メッセージに相関付ける第二の辞書項目にマッチされてもよい。たとえば、処理要素は、第二のデータ構造が位置特定されるまで第二のデータ構造を送出辞書（たとえば第一の送出辞書２２６）における辞書項目と比較してもよく、第二のデータ構造と相関付けられた電子メッセージが送出辞書から出力されてもよい。いくつかの実施形態では、第二のデータ構造は辞書項目のどれとも厳密なマッチでなくてもよい。これらおよび他の実施形態において、たとえば、第二のデータ構造を丸めることによって、第二のデータ構造と辞書項目との間の距離を測ることによって、などにより、最も近い項目がマッチとして選択されてもよい。第二のデータ構造に対する該最も近いマッチに相関付けられている電子メッセージが送出辞書から出力されてもよい。
【００４０】
ブロック３５０では、第二の電子メッセージが送出されてもよい。たとえば、第二の電子メッセージがニューラル・ネットワーク・システムの第一層から第二層（たとえば図１の第二層１２２または図２の第二のニューラル・ネットワーク層２５０）に送出されてもよい。いくつかの実施形態では、第一層から第二層に第二のデータ構造全体を送出する代わりに第二の電子メッセージが送出されてもよい。
【００４１】
ブロック３６０では、第二の電子メッセージがニューラル・ネットワークの第二層において受領されてもよい。第二の電子メッセージはたとえば第二層に関連付けられた記憶装置（たとえば図２の第二の記憶装置２５５）に記憶されてもよい。
【００４２】
ブロック３７０において、第二の電子メッセージに相関付けられている第二のデータ構造または最も近い項目が取り出されてもよく、第二層において出力されてもよい。たとえば、第二の電子メッセージは第二層に関連付けられている記憶装置から読まれて、第二層における受領辞書（たとえば図２の第二の受領辞書２６２）の辞書項目と比較されてもよい。受領辞書において第二の電子メッセージが位置特定された後、相関付けられたデータ構造が出力されてもよい。たとえば、第二の電子メッセージに対応する第二のデータ構造が辞書から取り出されて出力され、第二のデータ構造解析（たとえば図２の第二のデータ構造解析２６４）に提供されてもよい。いくつかの実施形態では、第一層の送出辞書は第二層の受領辞書と同じであってもよい。
【００４３】
よって、方法３００は、ニューラル・ネットワーク解析のために使用されてもよい。本開示の範囲から外れることなく、方法３００に、修正、追加または省略がなされてもよい。たとえば、方法３００の動作は異なる順序で実装されてもよい。追加的または代替的に、二つ以上の動作が同時に実行されてもよい。さらに、概説された動作およびアクションは例として与えられており、開示される実施形態の本質を損なうことなく、それらの動作およびアクションの一部が任意的であってもよく、より少数の動作およびアクションに組み合わされてもよく、あるいは追加的な動作およびアクションに展開されてもよい。たとえば、方法３００は任意の数の層に外挿されてもよく、任意の数の入力を扱ってもよい。
【００４４】
図４は、本開示の一つまたは複数の実施形態に基づく、ニューラル・ネットワークを用意する例示的な方法４００を示すフローチャートである。方法４００はいかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図１のシステム１００もしくは中央制御装置１１０または図２のニューラル・ネットワーク・システム２００が、方法４００に関連する動作の一つまたは複数を実行してもよい。離散的なブロックを用いて図示されているが、所望される実装に依存して、方法４００のブロックの一つまたは複数に関連するステップおよび動作は追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。
【００４５】
ブロック４１０では、ニューラル・ネットワークの中間層（たとえば図１のシステム１００の第一層１２１、第二層１２２またはN層または図２のニューラル・ネットワーク・システム２００の第一層２１０または第二層２５０）に関連するデータ構造解析（たとえば図２の第一層２１０の第一のデータ構造解析２２４または第二層２５０の第二のデータ構造解析２６４）の可能性のある結果が判別されてもよい。そのようなデータ構造解析の可能性のある結果は、複雑なデータ構造を含んでいてもよい。たとえば、サンプル・データセットが中間層のためのデータ構造解析に与えられてもよく、該サンプル・データセットに基づく出力データ構造が観察されてもよい。サンプル・データセットは、その層のデータ構造解析の可能性のある結果を提供するよう選択されうる。いくつかの実施形態では、サンプル・データセットは異なる層については異なっていてもよく、あるいは各層について同じであってもよい。これらおよび他の実施形態において、ブロック４１０に関連付けられた動作は、ニューラル・ネットワークの中間層のすべてを含む複数の層について実行されてもよい。
【００４６】
ブロック４２０では、辞書のサイズがある辞書項目数に設定されてもよい。たとえば、ニューラル・ネットワークにおけるすべての辞書（たとえば図２のニューラル・ネットワーク・システム２００の第一の受領辞書２２２、第一の送出辞書２２６、第二の受領辞書２６２および第二の送出辞書２６６）についての辞書サイズが同じ辞書項目数に設定されてもよい。追加的または代替的に、少なくとも一つの重複項目を共有する辞書のそれぞれの相関付けられた対（たとえば図２の第一の送出辞書２２６と第二の受領辞書２６２）が、同じ辞書項目数に設定された辞書のサイズを有していてもよい。これらおよび他の実施形態において、辞書の異なる相関付けられた対が異なるサイズを有していてもよい。これらの実施形態において、辞書のサイズはニューラル・ネットワークの諸層を実装するために期待される装置（単数または複数）の機能に基づいて制約されてもよい。たとえば、制限されたコンピューティング装置については、辞書サイズは32項目以下に制限されてもよい。
【００４７】
ブロック４３０では、データ構造解析についての可能性のある結果が、各辞書項目についての値および電子メッセージを見出すためにクラスタリングされてもよい。辞書項目数が辞書のサイズに対応する。いくつかの実施形態では、クラスタリングは、可能な出力の、より大きな集合について、制限された数の代表的な項目を選択することを含んでいてもよい。たとえば、辞書サイズが32項目であると選択され、300個の可能な結果があった場合、可能な300個の結果を保持するのではなく、それらの潜在的なデータ構造結果のうちの32個がクラスタリングに基づいて辞書の項目として選択されることになる。いくつかの実施形態では、クラスタリングはk平均アルゴリズム、主成分ホワイトニング・アルゴリズムまたは大きなデータセットから限られた数の代表的な項目を選択するための多様なアルゴリズムもしくは解析のうちの他の任意のものを使って実行される。たとえば、k平均アルゴリズムを使うと、クラスターの数は辞書項目の数に対応しうる。これらおよび他の実施形態において、各辞書項目は、クラスタリングから決定されたデータ構造を有していてもよく、相関付けられた電子メッセージがそれに割り当てられていてもよい。たとえば、データ構造が選択された後、各データ構造は相関付けられた単純な値を割り当てられてもよい。たとえば、各値は一意的なビットの集合を割り当てられてもよい。これらおよび他の実施形態において、ブロック４３０に関連付けられた動作は、ニューラル・ネットワークの中間層のすべてを含む複数の層について実行されてもよい。
【００４８】
ブロック４４０では、ニューラル・ネットワークのパフォーマンスが、現在選択されている辞書サイズに基づいて試験されてもよい。たとえば、期待される結果をもつ試験データセットがニューラル・ネットワークに与えられてもよく、ニューラル・ネットワーク解析が実行されて出力を与えてもよい。しかしながら、辞書の使用のため、出力は厳密に期待された出力ではなくてもよい。いくつかの実施形態では、ニューラル・ネットワークのパフォーマンスを試験するために、二つ以上のサンプル・データセットが処理されてもよい。いくつかの実施形態では、ニューラル・ネットワークのパフォーマンスの試験は、単一の中間層、複数の中間層またはニューラル・ネットワークの中間層の全部を試験することを含みうる。
【００４９】
ブロック４５０では、ニューラル・ネットワークの性能が閾値に比べてどうだったかについて判定がなされてもよい。たとえば、それらの辞書を使ったニューラル・ネットワーク解析の結果が期待される結果にどのくらい近かったかについて判定がなされてもよい。ニューラル・ネットワークが閾値を超えれば、方法４００はブロック４６０に進んでもよく、方法４００が該閾値を超えなければ、方法４００はブロック４７０に進んでもよい。いくつかの実施形態では、閾値は期待される値の10パーセント以内の値を出力することを含んでいてもよい。閾値は期待された値から5パーセント、15パーセント、25パーセント、50パーセントまたは100パーセント以内を含んでいてもよい。いくつかの実施形態では、単一の中間層、複数の中間層またはニューラル・ネットワークの中間層の全部のパフォーマンスが閾値に対して測定されてもよい。
【００５０】
ブロック４６０では、ネットワークがいい性能を発揮していないことに基づいて、辞書のサイズが修正されてもよい。たとえば、辞書のサイズはニューラル・ネットワークのよりよいパフォーマンスを提供するために増大されてもよい。方法４００は、次いで、ブロック４３０に進んで、可能性のある結果をクラスタリングし直して、増やされた項目数に基づいて辞書を生成してもよい。
【００５１】
ブロック４７０では、ネットワークが閾値を超える性能を出していることに基づいて、各層が、前のニューラル・ネットワーク層の送出辞書に対応する受領辞書をもち、後続のニューラル・ネットワーク層の受領辞書に対応する送出辞書をもつよう、それらの辞書が隣接する諸層に記憶されてもよい。たとえば、第一層には、前のネットワーク層の送出辞書に対応する受領辞書（たとえば図２の第一の受領辞書２２２）が記憶されてもよい。第一層には、次のネットワーク層の受領辞書（たとえば図２の第二のネットワーク層２５０の第二の受領辞書２６２）に対応する送出辞書（たとえば図２の第一の送出辞書２２６）が記憶されてもよい。
【００５２】
このように、方法４００はニューラル・ネットワークを用意するために使用されうる。本開示の範囲から外れることなく、方法４００に、修正、追加または省略がなされてもよい。たとえば、ブロック４５０および／または４６０は省略されてもよい。もう一つの例として、方法４００の動作は異なる順序で実装されてもよい。たとえば、ブロック４７０はブロック４４０、４５０および／または４６０の前に実行されてもよい。追加的または代替的に、二つ以上の動作が同時に実行されてもよい。さらに、概説された動作およびアクションは例として与えられており、開示される実施形態の本質を損なうことなく、それらの動作およびアクションの一部が任意的であってもよく、より少数の動作およびアクションに組み合わされてもよく、あるいは追加的な動作およびアクションに展開されてもよい。
【００５３】
いくつかの実施形態では、図３の方法３００および図４の方法４００は組み合わされてもよい。たとえば、方法４００が解析のためにニューラル・ネットワークを用意するために利用されてもよく、その後、方法３００に従ってニューラル・ネットワーク解析が実行するために方法３００が利用されてもよい。
【００５４】
本開示での用法では、用語「モジュール」または「コンポーネント」は、該モジュールまたはコンポーネントのアクションを実行するよう構成された特定のハードウェア実装および／またはコンピューティング・システムの汎用ハードウェア（たとえばコンピュータ可読媒体、処理装置など）に記憶および／または実行さうれるソフトウェア・オブジェクトまたはソフトウェア・ルーチンを指しうる。いくつかの実施形態では、本開示に記載される種々のコンポーネント、モジュール、エンジンおよびサービスは、（たとえば別個のスレッドとして）コンピューティング・システム上で実行されるオブジェクトまたはプロセスとして実装されてもよい。本開示に記載されるシステムおよび方法のいくつかは、一般に、（汎用ハードウェアに記憶および／または実行される）ソフトウェアで実装されるものとして記述されるが、個別のハードウェア実装またはソフトウェアと個別のハードウェア実装の組み合わせも可能であり、考えられている。本開示において、「コンピューティング・エンティティ」は、本開示で先に定義したような任意のコンピューティング・システムまたはコンピューティング・システム上で走る任意のモジュールもしくはモジュールの組み合わせでありうる。
【００５５】
本開示および特に付属の請求項（たとえば付属の請求項の本文）において使われる用語は一般に「オープン」な用語として意図されている（たとえば、用語「含む」は「含むがそれに限られない」と解釈されるべきであり、用語「もつ」は「少なくとも…をもつ」と解釈されるべきであり、用語「含む」は「含むがそれに限られない」と解釈されるべきであるなど）。
【００５６】
さらに、導入される請求項の記載の特定の数が意図される場合、そのような意図は請求項において明示的に記載される。そのような記載のない場合には、そのような意図はない。たとえば、理解の助けとして、以下の付属の請求項は、請求項の記載を導入するために「少なくとも一つの」および「一つまたは複数の」という導入句の使用を含むことがありうる。しかしながら、たとえ同じ請求項が導入句「一つまたは複数の」または「少なくとも一つの」および「a」または「an」のような不定冠詞を含むときでも、そのような句の使用は、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入された請求項の記載を含む何らかの特定の請求項を、そのような記載を一つだけ含む実施形態に限定することを含意していると解釈されるべきではない（たとえば、「a」および／または「an」は、「少なくとも一つの」または「一つまたは複数の」を意味するものと解釈されるべきである）。同じことは、請求項の記載を導入する定冠詞の使用についても成り立つ。
【００５７】
さらに、たとえ導入される請求項の記載の特定の数が明示的に記載されていたとしても、当業者は、そのような記載が、少なくともその記載された数を意味すると解釈されるべきであることを認識するであろう（たとえば、他の修飾語なしで単に「二つの記載」という記載は、少なくとも二つの記載または二つ以上の記載を意味する）。さらに、「Ａ、ＢおよびＣなどのうちの少なくとも一つ」または「Ａ、ＢおよびＣなどの一つまたは複数」に類似する慣用句が使われる事例においては、一般に、そのような構文はＡだけ、Ｂだけ、Ｃだけ、ＡおよびＢ両方、ＡおよびＣ両方、ＢおよびＣ両方またはＡ、ＢおよびＣ全部などを含むことが意図される。
【００５８】
さらに、明細書であれ請求項であれ図面であれ、二つ以上の代替的な用語を呈示するあらゆる離接的な語句は、該用語の一つを含む、該用語のいずれかを含むまたは該用語の両方を含む可能性を考えているものと理解されるべきである。たとえば、「ＡまたはＢ」という句は、「Ａ」または「Ｂ」または「ＡおよびＢ」の可能性を含むと理解されるべきである。
【００５９】
本開示において記載されるすべての例および条件付きの言辞は、本開示および発明者によって当技術分野の発展のために寄与される概念の理解において読者を助ける教育目的を意図されており、そのような特定的に記載される例および条件に限定することなく解釈されるものとする。本開示の実施形態について詳細に述べてきたが、本開示の精神および範囲から外れることなく、これにさまざまな変化、代替および変更をなすことができることは理解しておくべきである。
【００６０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
ニューラル・ネットワーク解析の方法であって：
第一の電子メッセージを受領し、該第一の電子メッセージを記憶装置に記憶する段階と；
前記第一の電子メッセージをデコードして第一のデータ構造を出力する段階であって、前記第一の電子メッセージは、前記第一の電子メッセージを、前記第一の電子メッセージより多くのビットを含む前記第一のデータ構造に相関付ける第一の辞書項目を参照する、段階と；
前記第一のデータ構造に対して前記ニューラル・ネットワークにおけるデータ構造解析を実行するために前記第一のデータ構造を処理要素に提供する段階であって、前記データ構造解析は、前記第一の電子メッセージより多くのビットを含む第二のデータ構造を生じる、段階と；
前記第二のデータ構造を、前記第二のデータ構造を、前記第二のデータ構造より少ないビットを含む第二の電子メッセージに相関付ける第二の辞書項目にマッチさせる段階と；
前記第二のデータ構造の代わりに前記第二の電子メッセージを送出する段階と；
前記第二の辞書項目を含む第二の辞書のパフォーマンスを試験する段階と；
前記第二の辞書の前記試験に基づいて前記第二の辞書のサイズを調整する段階とを含む、
方法。
（付記２）
前記データ構造解析についての可能性のある結果を判別する段階と；
前記第二の辞書のサイズを辞書項目数に設定する段階と；
前記データ構造解析についての前記可能性のある結果をクラスタリングして前記第二の辞書についての複数の異なる項目を決定する段階であって、決定された前記異なる項目の数が前記第二の辞書のサイズに対応する、段階とをさらに含む、
付記１記載の方法。
（付記３）
前記試験に基づいて、前記第二の辞書を前記処理要素と通信するよう記憶し、前記第二の辞書を別のニューラル・ネットワーク層コンポーネントに送出することをさらに含む、付記２記載の方法。
（付記４）
前記クラスタリングが、k平均アルゴリズムまたは主成分解析ホワイトニング・アルゴリズムの一方を使って実行される、付記２記載の方法。
（付記５）
前記第一の電子メッセージが前記ニューラル・ネットワークの前の層から受領され、前記前の層は前記第一の辞書項目をもつ第一の辞書を含んでおり、前記前の層は前記第一の辞書項目が前記第一のデータ構造にマッチすることに基づいて前記第一の電子メッセージを生成する、付記１記載の方法。
（付記６）
前記第一の電子メッセージが32ビットより少ないビットを含み、前記第一のデータ構造が32ビットの浮動小数点値を含む、付記１記載の方法。
（付記７）
前記第二の電子メッセージを前記第二のデータ構造に相関させる前記第二の辞書項目に対応する前記第二の電子メッセージを受領する段階と；
前記第二の電子メッセージをデコードすることに応答して、前記第二のデータ構造を取り出す段階と；
前記第二のデータ構造を出力する段階とをさらに含む、
付記１記載の方法。
（付記８）
第一の辞書が、前記第一の辞書項目および32個未満のさらなる辞書項目を含む、付記１記載の方法。
（付記９）
モバイル装置上で実行される、付記１記載の方法。
（付記１０）
第一のニューラル・ネットワーク層および第二のニューラル・ネットワーク層を有するニューラル・ネットワーク・コンピューティング・システムであって、
前記第一のニューラル・ネットワーク層は：
第一のデータ構造を第一の電子メッセージと相関付ける第一の辞書項目を記憶している第一の記憶装置と；
前記第一の電子メッセージを送出するよう構成された第一の送出コンポーネントとを含み、前記第一の電子メッセージは前記第一のデータ構造より少数のビットを含み、
前記第二のニューラル・ネットワーク層は：
前記第一のニューラル・ネットワーク層から受領された前記第一の電子メッセージを記憶するよう構成されている第二の記憶装置と；
第二の処理要素であって：
前記第一の電子メッセージを読み、前記第一の辞書項目に基づいて前記第一のデータ構造を出力し；
前記第一のデータ構造に対してデータ構造解析を実行して第二のデータ構造を生じ；
前記第二のデータ構造を、前記第二のデータ構造を、前記第二のデータ構造より少ないビットを含む第二の電子メッセージに相関付ける第二の辞書項目にマッチさせ；
前記第二の辞書項目を含む第二の辞書のパフォーマンスを試験し；
前記第二の辞書の前記試験に基づいて前記第二の辞書のサイズを調整するよう構成されている、第二の処理要素と；
前記第二の電子メッセージを送出するよう構成されている第二の送出コンポーネントとを含む、
ニューラル・ネットワーク・コンピューティング・システム。
（付記１１）
前記第一の辞書項目が第一の辞書の一部であり、前記第二の辞書項目が前記第一の辞書とは異なる前記第二の辞書の一部である、付記１０記載のニューラル・ネットワーク・コンピューティング・システム。
（付記１２）
前記第一の電子メッセージが32ビットより少ないビットを含み、前記第一のデータ構造が32ビットの浮動小数点値を含む、付記１０記載のニューラル・ネットワーク・コンピューティング・システム。
（付記１３）
第一の辞書が、前記第一の辞書項目および32個未満のさらなる辞書項目を含み、前記第一のニューラル・ネットワーク層および前記第二のニューラル・ネットワーク層の両方に含まれる、付記１記載の方法。
（付記１４）
前記第一の記憶装置および前記第二の記憶装置が単一の物理的な装置の異なる領域であり、前記第一のニューラル・ネットワーク層および前記第二のニューラル・ネットワーク層が前記単一の物理的な装置の論理的な層である、付記１０記載のニューラル・ネットワーク・コンピューティング・システム。
（付記１５）
前記第一のニューラル・ネットワーク層および前記第二のニューラル・ネットワーク層がネットワークを通じて通信する異なる物理的な装置上にある、付記１０記載のニューラル・ネットワーク・コンピューティング・システム。
（付記１６）
ニューラル・ネットワークを用意する方法であって：
ニューラル・ネットワークのある層に関連したデータ構造解析の可能性のある結果を判別する段階と；
辞書のサイズを前記層についての辞書項目数に設定する段階と；
前記データ構造解析の前記可能性のある結果をクラスタリングして、各辞書項目数について諸データ構造および関連する電子メッセージを決定する段階であって、辞書項目の数が前記辞書のサイズに対応する、段階と；
前記ニューラル・ネットワークの前記層に関連付けられた前記辞書のパフォーマンスを試験する段階と；
前記試験に基づいて、前記ニューラル・ネットワークにおける各層が、前のニューラル・ネットワーク層の送出辞書に相関付けられた受領辞書をもち、後続のニューラル・ネットワーク層の受領辞書に相関付けられた送出辞書をもつよう、前記ニューラル・ネットワークにおける隣接する諸層に前記辞書を記憶する段階とを含む、
方法。
（付記１７）
前記試験に基づいて、前記辞書のサイズを修正し；
修正されたサイズの前記辞書のパフォーマンスの追加的な試験を実行することをさらに含む、
付記１６記載の方法。
（付記１８）
前記辞書のサイズが0から32までの間の値をもつ、付記１６記載の方法。
（付記１９）
各層について、受領辞書および送出辞書が異なっている、付記１６記載の方法。
（付記２０）
前記ニューラル・ネットワークにおける解析のためのデータを受領し；
前記データを送出するのではなく、対応する電子メッセージをもつ辞書項目を検索して、該電子メッセージを送出することをさらに含む、
付記１６記載の方法。
【符号の説明】
【００６１】
１１０  中央制御装置
１２１  第一層
１２２  第二層
１２３  第N層
１３０  ネットワーク
２１０  第一層
２１５  第一の記憶装置
２２２  RX辞書
２２４  中間解析
２２６  TX辞書
２５０  第二層
２２５  第二の記憶装置
２６２  RX辞書
２６４  中間解析
２６６  TX辞書
３１０  第一の電子メッセージを受領し、記憶
３２０  第一のデータ構造を第一の電子メッセージに相関付ける第一の辞書項目を参照して、第一の電子メッセージをデコード
３３０  第一のデータ構造を処理要素に提供。第一のデータ構造に対して中間的な解析を実行して第二のデータ構造を与えるため
３４０  第二のデータ構造を、該第二のデータ構造を第二の電子メッセージに相関付ける第二の辞書項目にマッチさせる
３５０  第二の電子メッセージを送出
３６０  第二の電子メッセージを受領
３７０  第二の電子メッセージに基づいて第二のデータ構造を取り出し、出力
４１０  ニューラル・ネットワークにおける各層について、その層に関連付けられた中間的な解析の、可能性のある結果を決定
４２０  辞書のサイズをある辞書項目数に設定
４３０  各層について、中間的な解析についての可能性のある結果をクラスタリング。辞書サイズに対応する辞書項目数を見出すため
４４０  ニューラル・ネットワークのパフォーマンスを現在の辞書サイズに基づいて試験
４５０  ネットワーク・パフォーマンスが閾値を超えたか？
４６０  辞書のサイズを修正
４７０  各層が、前のニューラル・ネットワーク層の送出辞書に対応する受領辞書をもち、後続のニューラル・ネットワーク層の受領辞書に対応する送出辞書をもつよう、隣接する諸層に辞書を記憶
【図１】
2017157215.tif 000003
【図２】
2017157215.tif 000004
【図３】
2017157215.tif 000005
【図４】
2017157215.tif 000006