(57)【要約】  （ｉ）ディープニューラルネットワーク（ＤＮＮ）の推論速度を加速し、（ｉｉ）画像、音声、ビデオ、テキストなどの様々な入力データからＤＮＮによって生成されたベクトル表現を圧縮するためのシステム、方法、及びコンピューター可読媒体を提供する。方法の実施形態は、入力としてニューラルネットワークアーキテクチャ及びタスク依存性損失関数を取り、ニューラルネットワークがトレーニングデータセットに対してどれだけうまく機能するかを測定し、スパースなニューロン活性化を伴うディープニューラルネットワークを出力する。本発明の手順は、ニューロンのスパース活性化を促進する正則化項でＤＮＮの既存のトレーニング目的関数を拡張し、様々なアルゴリズムで最適化問題を解くことによってＤＮＮを圧縮する。本開示はまた、算術演算の数を比例的に減らせるよう、ＤＮＮの推論中に活性化のスパース化を利用する方法、並びに、効率的な検索エンジンを構築するためにＤＮＮによって生成されたスパース表現を使用する方法を示す。【特許請求の範囲】
【請求項１】
ディープニューラルネットワーク（ＤＮＮ）推論の計算コストを削減する方法であって、
（ａ）特定のタスクに基づき、ディープニューラルネットワークの予測性能を測定できる損失関数を決定することと、
（ｂ）ディープニューラルネットワーク計算グラフと、関連付けられたパラメータ値とを有する、最初のディープニューラルネットワークを検索することと、
（ｃ）スパース化率が収束するまで、ディープニューラルネットワークの活性ニューロンの数を繰り返しスパース化することと、
（ｄ）活性スパース化ディープニューラルネットワークを生成／出力することと、を含む、方法。
【請求項２】
前記スパース化ステップは、元の活性化関数をスパース化誘発活性化関数の新規セットで置き換え、目的関数を形成することによって前記損失関数を増大させることを含む、請求項１に記載の方法。
【請求項３】
前記スパース化ステップは、前記損失関数を１つ以上の活性化正則化で拡張し、目的関数を形成することを含む、請求項１に記載の方法。
【請求項４】
前記スパース化ステップは、拡張された活性化正則化を伴う誤差逆伝播法によって目的関数の勾配を評価することを含む、請求項３に記載の方法。
【請求項５】
前記スパース化ステップは、スパース化誘発活性化関数を用いた誤差逆伝播法によって目的関数の勾配を評価することを含む、請求項３に記載の方法。
【請求項６】
前記スパース化ステップは、勾配に基づいてディープニューラルネットワークに関連付けられた１つ以上のパラメータを繰り返し調整することを含む、請求項４又は５に記載の方法。
【請求項７】
前記スパース化ステップは、スパース性率の変化が所定の閾値より小さくなるか否かをチェックして、ディープニューラルネットワークが収束する否かを判定することを含む、請求項６に記載の方法。
【請求項８】
前記特定のタスクはトレーニングデータセットを含む、請求項１に記載の方法。
【請求項９】
最後のレイヤーにおけるディープニューラルネットワークの活性ニューロンの数を減少させ、ディープニューラルネットワークにより生成されたベクトルの圧縮表現を得る、請求項１に記載の方法。
【請求項１０】
活性化コンプレッサであって、
複数のニューロンの活性化値を計算し、予測を計算するように構成されたネットワークモデルであって、前記ネットワークモデルは、ディープニューラルネットワーク（ＤＮＮ）をパラメータ化する変数の集合を含み、前記ディープニューラルネットワークは複数のレイヤーにモジュール化され、各レイヤーは、１つ以上の前のレイヤーの出力を入力データとして受け取り、新しい出力セットを計算する、ネットワークモデルと、
前記ネットワークモデルに通信可能に連結され、予測とグラウンドトルス解答との不一致を測定する最初の罰則値を計算するように構成された損失関数モジュールと、
前記ネットワークモデルに通信可能に連結され、前記ネットワークモデルにおける活性ニューロンの数をスパース化できるニューロンを最小化することにより、前記ネットワークモデルのニューロン全ての活性化レベルを測定する第２の罰則値を計算するように構成された、活性化正則化器と、
前記ネットワークモデルに通信可能に連結され、複数のデータソースからディープニューラルネットワークの入力データを取得するパイプラインを含む、データ読み取りモジュールと、
前記損失関数モジュール及び前記活性化正則化器に通信可能に連結され、前記ネットワークモデルの変数集合の値を調整し、前記損失関数モジュールと前記活性化正則化器の目的関数を減少させるように構成されたオプティマイザと、を含む、活性化コンプレッサ。
【請求項１１】
前記ニューロンは、各レイヤーの１つ以上の出力を含む、請求項１０に記載の活性化コンプレッサ。
【請求項１２】
前記予測は、前記最後のレイヤーの１つ以上の出力を含む、請求項１０に記載の活性化コンプレッサ。
【請求項１３】
前記損失関数モジュールは、前記予測に対して罰則値の導関数を計算する、請求項１０に記載の活性化コンプレッサ。
【請求項１４】
前記損失関数モジュールは、下記タスク依存性損失関数表現を含み、
2021528796.tif 000012
【請求項１５】
前記活性化正則化器は、前記ネットワークにおける活性ニューロンの数をスパース化できるニューロンを最小化することにより、前記ネットワークのニューロン全ての活性化レベルを測定する前記導関数を計算する、請求項１０に記載の活性化コンプレッサ。
【請求項１６】
前記活性化正則化器は、前記活性化の値を直接正則化する、請求項１０に記載の活性化コンプレッサ。
【請求項１７】
前記活性化正則化器は、
下記の式で表されるように、活性化の値を直接正則化し、
2021528796.tif 000013
【請求項１８】
前記活性化正則化器は、各レイヤーの活性化のスパース化レベルを制御する複数のパラメータを正則化する、請求項１０に記載の活性化コンプレッサ。
【請求項１９】
前記活性化正則化器は、活性化のスパース化レベルを制御するパラメータを有する活性化関数と一緒に使用され、前記活性化関数は、
2021528796.tif 000014
のように表され、最大値を持つ上ｒ要素のみを保ち、残りが零になることを抑制する、請求項１８に記載の活性化コンプレッサ。
【請求項２０】
前記データ読み取りモジュールは、複数のデータソースから前記ディープニューラルネットワークの入力データを取得するためのパイプラインを含み、前記パイプラインには、少なくとも１つのトリミング、サブサンプリング、アップサンプリング、バッチ処理、ホワイトニング、正規化が含まれる、請求項１８に記載の活性化コンプレッサ。
【請求項２１】
前記オプティマイザモジュールは、前記損失関数と前記活性化正則化器を含む目的関数を減少させるために、前記ネットワークモデル内の変数の値を調整するように構成される、請求項１８に記載の活性化コンプレッサ。
【請求項２２】
前記入力データは、画像、音声、ビデオ、テキストのうち少なくとも１つである、請求項１８に記載の活性化コンプレッサ。
【請求項２３】
ディープニューラルネットワーク（ＤＮＮ）の効率的な計算方法であって、
（ａ）複数のニューロンの活性化値を計算し、予測を計算するネットワークモデルであって、前記ネットワークモデルはディープニューラルネットワーク（ＤＮＮ）をパラメータ化する変数の集合を含み、前記ディープニューラルネットワークは複数のレイヤーにモジュール化され、各レイヤーは、１つ以上の前の層の出力を入力データとして受け取り、新しい出力セットを計算する、ネットワークモデルを用意することと、
（ｂ）ネットワークモデルとデータリーダを介した誤差逆伝播法による目的関数の勾配を評価することと、
（ｃ）オプティマイザにより、前記ネットワークモデルにおける変数集合の値を調整して目的関数を減少させることで、前記勾配に基づいてＤＮＮパラメータを更新することと、
（ｄ）オプティマイザにより、目的の変化又は勾配の度が、所定の閾値に対して十分に小さいか否かを判定し、目的が収束したことを示すことと、を含み、
前記目的が収束していない場合は、ステップ（ｂ）と（ｃ）を繰り返し、
前記目的が収束すると、スパース化されたディープニューラルネットワークで出力を生成する、方法。
【請求項２４】
2021528796.tif 000015
【請求項２５】
前記勾配評価ステップは、前記ネットワークモデルモジュールに前処理パイプラインによって提供された入力データを用いて、全てのレイヤー｛Ｘ(j)｝j=1…J（４６２）の活性化値を計算するように要求することを含む、請求項２４に記載の方法。
【請求項２６】
2021528796.tif 000016
【請求項２７】
前記ＤＮＮパラメータ更新ステップは、前記ネットワークモデルに、入力前処理パイプラインから前記ネットワークモデルに提供された入力データを用いて、予測（出力）レイヤーＸ(J)の値を計算し、前記損失関数モジュールに対するラベルを補正するように要求することを含む、請求項２６に記載の方法。
【請求項２８】
前記入力データは、画像、音声、ビデオ、テキストのうち少なくとも１つである、請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的には人工知能に関し、より具体的には、ディープニューラルネットワークのニューロンの活性化と、演算の数を減らした、高速化計算方法に関する。
【背景技術】
【０００２】
本願は、本願に援用されている、２０１９年６月２０日付で出願された米国特許出願第１６／４４６，９３８号「活性スパース化を用いたニューラルネットワーク加速・埋め込み圧縮システム及び方法」と、２０１８年６月２２日付で出願された米国特許出願第６２／６８８，８９１号「活性スパース化によるニューラルネットワーク加速及び埋め込み圧縮システム」に対して優先権を主張する。
【０００３】
ディープニューラルネットワーク（ＤＮＮ）は、画像、ビデオ、音声、テキストなどの低レベルのデータから高レベルの情報を抽出するために、人工知能（ＡＩ）の分野で最も広く使用されている手法である。但し、ＤＮＮの計算コストが高いため、エネルギー消費、記憶スペース、遅延許容度の予算が厳しいアプリケーション、特に携帯電話や監視カメラなどのエッジデバイスには適用できない。
【０００４】
ＤＮＮの計算コストは、さまざまなソースから導き出される。まず、ＤＮＮモデルパラメータは通常、数百万や数千万の桁であるため、膨大な記憶コストが発生し、メモリ階層内のより小型且つ高速な記憶デバイスにはモデルパラメータを配置することができない。更に、ＤＮＮの計算グラフ内のニューロンの数は、膨大なメモリ空間を消費し、通常、実行時に数十億の演算を必要とする。最後に、顔比較エンジンなどのニューラルネットワークによって生成されたベクトル表現に基づく検索エンジンは、通常、従来のテキストベースの検索エンジンよりもはるかに計算コストが高くなるが、これは一部、ＤＮＮによって生成された高次元の緻密ベクトル表現（埋め込み）に起因する。
【０００５】
近年の研究は、ＤＮＮ推論の計算コストを削減することに重点を置いている。但し、従来のアプローチの一部は、（ｉ）ＤＮＮフィルタの非零パラメータ（ニューロン間の接続）の数を減らすこと、（ｉｉ）ニューロンのチャネルやフィルタの列／行など、ネッ
トワークの一部をトリミングすること、（ｉｉｉ）パラメータとニューロンの値の範囲を量子化して、値を表すビット数を減らすこととを含む、 ＤＮＮモデルのトリミングに集中している。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、高い計算強度を低減する、より効率的なＤＮＮモデルを提供する方法及びシステムの開発が望まれる。
【課題を解決するための手段】
【０００７】
本開示の実施形態は、上記のアプローチを補完する技術、つまり、ニューラルネットワークをトレーニング（又は微調整）して、ＤＮＮ内のニューロンの活性化を阻止して、推論中に異なる入力データで実行しても（異なる）ニューロンの相当の部分が活性化されないようにする、方法、コンピュータプログラム製品、コンピュータシステムを対象とする。各入力データはニューロンのごく一部を活性化するため、非活性化ニューロンの数に比例し、推論中に必要な演算の数や、各入力データに対してＤＮＮにより生成されるベクトル表現（埋め込み）に必要なストレージも削減される。
【０００８】
大まかに言えば、ディープニューラルネットワーク（ＤＮＮ）推論の計算コストを削減する方法は、特定のタスクに基づき、ディープニューラルネットワークの予測性能を測定できる損失関数を決定することと、ディープニューラルネットワーク計算グラフと、関連付けられたパラメータ値とを有する、最初のディープニューラルネットワークを検索することと、スパース化率が収束するまで、ディープニューラルネットワークの活性ニューロンの数を繰り返しスパース化することと、活性スパース化ディープニューラルネットワークを生成／出力することと、を含む。
【図面の簡単な説明】
【０００９】
【図１】本開示による活性化コンプレッサの全体的なソフトウェアアーキテクチャを示すシステム図である。
【図２】本開示による活性化コンプレッサの入力及び出力を示すフロー図である。
【図３】本開示による活性化コンプレッサの一実施形態を示すフロー図である。
【図４】本開示による活性化コンプレッサの実施形態に用いられる複数のソフトウェアモジュール間の相互作用を示すシーケンス図である。
【図５】本開示による活性化コンプレッサシステムの入力及び出力を示すブロック図である。
【図６−９】本開示による活性化コンプレッサシステムの商用アプリケーションを示す図である。
【図１０】本開示の方法論を実行するためのコンピュータ実行可能命令がインストールされ、本開示に従って実行され得るコンピュータデバイスの例を示すブロック図である。
【発明を実施するための形態】
【００１０】
本開示の構造及び方法を、下記に詳しく説明するにおいて詳細に開示される。この説明は、開示を限定するためのものではない。本開示は、特許請求の範囲によって定義される。本開示の実施形態、特徴、態様、利点については、下記の説明、添付の特許請求の範囲、添付の図面から理解できるはずである。
特定の実施形態と、下記の図面を参照として、本開示を説明する。
【００１１】
本開示の構造的実施形態及び方法を、図１〜図１０を参照して説明する。本開示は具体的な実施形態に限られず、他の特徴、要素、方法、実施形態を以って本開示を実施し得る。様々な実施形態における同様の要素は、通常、同様の参照番号をつけるものとする。
【００１２】
下記の定義は、本明細書に記載されている要素やステップに適用される。これらの用語も同様に拡張できる。
【００１３】
「加速」は、ＤＮＮ関数の計算に必要な算術演算の数が減るようにＤＮＮを変更することである。
【００１４】
「活性化コンプレッサ」は、ＤＮＮを入力として取り込み、スパース化されたＤＮＮを出力するソフトウェアシステムである。スパース化されたＤＮＮは、ＤＮＮのパラメータを方向（勾配）に向けて繰り返し調整し、損失関数と活性化正則化の両方を減少させることで得られる。
【００１５】
「活性化正則化器」は、特定のトレーニングデータセットに関してＤＮＮの活性化スパース化レベルを測定する関数である。ＤＮＮがまばら（スパース）であるほど、正則化の値は低くなる。
【００１６】
「ディープニューラルネットワーク（ＤＮＮ）」は、初等関数の複数のレイヤーで構成される複合関数である。各関数は前のレイヤーの出力を入力として受け取り、新しい出力のセットを計算する。各レイヤーの出力は「ニューロン」と呼ばれる。ニューロンは零以外の値であれば「活性化」し、そうでなければ「非活性化」する。
【００１７】
「損失関数」は、特定のトレーニングデータセットに関して、ＤＮＮが特定のタスクでどれくらいうまく機能するかを測定する関数である。ＤＮＮのパフォーマンスが優れているほど、損失関数の値は低くなる。
【００１８】
「スパース化」は、ＤＮＮをトレーニングする（つまり、ＤＮＮのパラメータを調整する）方法論であり、「活性化されたニューロン」の数がニューロンの総数より大幅に少なくなる（例えば、少なくとも半分未満、通常は４分の１未満）。
【００１９】
図１は、活性化コンプレッサ１００の全体的なソフトウェアアーキテクチャを示すシステム図である。活性化コンプレッサ１００は、ネットワークモデルモジュール１１０、損失関数モジュール（又は「損失関数」）１２０、活性化正則化モジュール（又は「活性化正則化器」）１３０、データ読み取りモジュール（又は「データリーダ」）１４０、オプティマイザモジュール（又は「オプティマイザ」）１５０、コンポーザモジュール（又は「コンポーザ」）１６０を含む。ネットワークモデルモジュール１１０は、初等演算（つまり、数値関数）やそれぞれの導関数の集合を含み、初等関数の合成による複素関数（すなわち、ＤＮＮ）を含む。更に、ネットワークモデルモジュール１１０は、複素関数をパラメータ化する変数の集合を含む。複素関数はいくつかのレイヤーモジュール化され、各レイヤーは前のレイヤーの出力を入力として受け取り、新しい出力のセットを計算する。ネットワークモデルモジュール１１０は、「ニューロン」の活性化値（つまり、各レイヤーの出力）を計算し、更に、予測の計算（つまり、最後のレイヤーの出力）を行う。正式には、Ｘ(0)：Ｎ×Ｄ1(0)…×ＤP(0)×Ｋ0をＮがサンプル数（又はバッチサイズ）である入力テンソルとし、Ｄ1(0)…ＤP(0)，Ｋ0を信号の次元とする。ＤＮＮは通常、複数のレイヤーで構成される。ここで、ｊ＝１…Ｊをレイヤーインデックスとする。ＤＮＮは、下記の式（１）に示されているように、一連の関数の合成として表すことができる。
2021528796.tif 000002
或いは、一般的に使用される演算、例えば「最大プーリング」、「ゼロパーディング」、「再形成」なども関数として用いられる。活性化コンプレッサ１００のソフトウェアアーキテクチャでは、適用可能な関数やそれらの数値導関数は、図１に図示されているように、ネットワークモデルモジュール１１０で具現化される。
【００２０】
損失関数モジュール１２０は、「予測」とグラウンドトルス解答との不一致を測定する罰則値を定義し、計算する。損失関数モジュール１２０は更に、「予測」に関する罰則値の導関数を計算する。正式には、Ｘ(J)：Ｎ×ＫをＤＮＮの最後のレイヤーの出力とし、目的タスクＹ：Ｎ×Ｋのラベルに関連する各サンプルのＫスコア（つまり、ロジット）を提供する。タスク依存性損失関数、つまり
2021528796.tif 000003
【００２１】
活性化正則化器１３０は、ネットワークにおける活性ニューロンの数をスパース化できるニューロンを最小化することにより、ネットワークのニューロン全ての活性化レベルを測定する罰則値（及びその導関数）を定義し、計算すように構成されている。活性化正則化器１３０は、２つの実施形態として具現できる。活性化正則化器１３０の第１の実施形態は、活性化の値を直接正則化する。活性化正則化器１３０の第２の実施形態は、各レイヤーの活性化のスパース化レベルを制御するパラメータを正則化する。
【００２２】
2021528796.tif 000004
【００２３】
2021528796.tif 000005
【００２４】
データ読み取りモジュール１４０は、データソースからＤＮＮの入力データを取得するためのパイプラインを含む。パイプラインには、トリミング、サブサンプリング（或いはアップサンプリング）、バッチ処理、ホワイトニング（正規化）が含まれる。オプティマイザモジュール１５０は、損失関数１２０及び活性化正則化器１３０を含む目的関数を減少させるために、ネットワークモデル内の変数の値を調整するように構成される。一実施形態では、調整は、変数につき、損失関数１２０及び活性化正則化器１３０の導関数によって決められる。コンポーザ１６０は、他の成分間の相互作用を計画・編成し、損失関数１２０と活性化正則化器１３０との相対強度を決定するソフトウェアの高レベル成分である。
【００２５】
図２は、圧縮方法２００の入力及び出力を示すフロー図である。手順には２つの入力がある。（ｉ）ステップ２１０において、特定の損失関数の特定のタスクにおけるＤＮＮの予測性能を測定し改善する、ＤＮＮの補正入出力ペアのトレーニングデータセットを、（ｉｉ）ステップ２２０において、事前にトレーニングされたパラメータ値がある場
合とない場合のＤＮＮのアーキテクチャ（計算グラフ）を入力する。ステップ２３０（「圧縮プロセス」）において、活性化コンプレッサ１００は、収束するまでＤＮＮを繰り返しスパース化する。ステップ２４０において、圧縮方法２００は、同アーキテクチャであるがパラメータ値が異なる圧縮ＤＮＮの出力を生成する。圧縮方法２００は、ｄｎｎを圧縮してスパース活性化を有するようにする。つまり、各レイヤーＸ(j)の非零要素（活性化ニューロン）の数は小さい。
【００２６】
2021528796.tif 000006
Ｌ（Ｘ(J)）項は損失関数（ＤＮＮの最後のレイヤーの出力のみに依存）を表し、Ｒ（Ｘ(j)）項は、ｊ番目のレイヤーの出力に対してかけられた活性化正則化器１３０を表す。次に、圧縮プロセス２３０は、ステップ３２０において、ネットワークモデルモジュール１１０及びデーリーダ１４０を介した誤差逆伝播によって目的の勾配を評価する。圧縮プロセス２３０は、全てのパラメータに対するＦ（Ｗ）の導関数を計算し、ステップ３３０におけるパラメータ更新は、得られた勾配とオプティマイザによって定められた更新方程式に従って、の値を変更する。ステップ３４０において、活性化コンプレッサ１００は、目的が収束しているか否かを判定する。目的が収束していない場合、活性化コンプレッサ１００は、ステップ３２０における勾配評価及びステップ３３０におけるパラメータを処理することによって、ＤＮＮを繰り返しスパース化し続ける。目的が収束すると、活性化コンプレッサ１００はプロセスをステップ２４０に戻す。
【００２７】
2021528796.tif 000007
【００２８】
2021528796.tif 000008
【００２９】
［００２１］に記載されている活性化正則化器の第１の実施形態を参照すると、目的関数Ｆ（Ｗ）の勾配評価は、拡張誤差逆伝播法の形を取る。ここでは、ＤＮＮＸ(J)の出力がフォワードパスを介して計算される。
2021528796.tif 000009
【００３０】
2021528796.tif 000010
【００３１】
ステップ４８１の手順「変数の更新」は、誤差逆伝播プロセスから計算された勾配に従ってＤＮＮパラメータの値がどのように更新されるかを決定する最適化アルゴリズムを実装する。当該部分は、一実施形態では、確率的勾配降下法（ＳＧＤ）、確率的分散減少勾配法（ＳＶＲＧ）、適応勾配法（Ａｄａｇｒａｄ）、二乗平均平方根伝搬（ＲＭＳｐｒｏｐ）、適応モーメント推定法（ＡＤＡＭ）など、パラメータＷの更新方向を決定するために勾配（および反復中のその履歴）のみを使用する、標準的な一次最適化アルゴリズムを採用している。
【００３２】
図５は、各レイヤーの入力としての細分化された活性化が、ＤＮＮの効率をどのように著しく改善できるかを示す図５００である。具体的には、畳み込みを計算する一実施形態では、活性化されたニューロンにアクセスし、非ゼロ重みのニューロン間の接続エッジにアクセスする、一般にＤＮＮで最もコストのかかる演算である。本開示の方法論は、通常、ニューロン間の非ゼロ接続（フィルタの重み）をスパース化する他の技術と組み合わせることができる。
【００３３】
以下の例では、ニューロンの活性化と（非ゼロ重みの）ニューロン接続の両方がスパース化されていると想定した。例として、２次元の畳み込みを用いる。当業者であれば、本開示の趣旨から逸脱することなく、二次元畳み込みを多次元畳み込みに拡張できることを理解するはずである。入力ニューロン間の畳み込みＸ：Ｄ1×Ｄ2×Ｋ0と、フィルタＷ：Ｋ0×Ｃ1×Ｃ2×Ｋ1からは、下記と関連する３ＤテンソルＺ：（Ｄ1-Ｃ1＋１）×（Ｄ2-Ｃ２＋１）×Ｋ1が得られる。
2021528796.tif 000011
【００３４】
上記の手順で使用される算術演算の数は、Ｗ及びＸ両方の元の形状の代わりに、非零要素の数に比例する。従って、図４で示したスパース化手順により、計算の負荷を大幅に減らすことができる。ＤＮＮの完全接続レイヤーは、畳み込みの特殊なケースとしてキャストできるため、上記の手順は完全接続レイヤーにも使用できる。
【００３５】
推論速度の向上に加えて、スパース化はＤＮＮによって生成された埋め込み（つまり、最後の数レイヤーのニューロンの活性化）も圧縮する。ＤＮＮによって生成された埋め込みは、多くの場合、画像、音声、ビデオ、テキストなどの生入力データの意味ベクトル表現として機能する。画像を入力データの例として取り上げると、２つの画像間の類似性は、ＤＮＮによって生成された２つの画像の埋め込み間の内積によって測定できる。次いで、画像の意味検索エンジンを、これらの埋め込みに基づいて構築することができる。｛ｘ1，ｘ2，…，ｘN｝をデータベース内の画像の集合として、｛ｚ1，ｚ2，…，ｚN｝をＤＮＮによって生成された画像の埋め込みとする。検索エンジンは次の演算を実行する。（ｉ）クエリ画像ｘqが与えられた場合、ＤＮＮによってその埋め込みｚqを生成する。（ｉｉ）画像のデータベースののうち、埋め込み｛ｚr１，ｚｒ２，…，ｚrｍ｝が最も高い内積を有する画像のリストを、ｚqに戻す。このアプリケーションでは、活性化スパース化（１００）に２つの利点がある。まず、活性化をスパース化することで、これらの埋め込みを保存するために必要なスペースを大幅に削減できる。更に、類似性計算は、［００３１］に記載されている計算手順を用いて著しく高速化することができる。
【００３６】
図６、図７、図８、図９は、活性化コンプレッサ１００の商用アプリケーションの４つの例を示しており、本開示の方法論は、（ｉ）顔認識、（ｉｉ）画像翻訳、（ｉｉｉ）言語翻訳、（ｉｖ）音声認識の推論効率を高める。
【００３７】
図６は、顔認識のアプリケーションに本開示を導入した場合の図５１０であり、活性化コンプレッサ１００は、ＤＮＮを介して顔の意味埋め込みを生成するために必要な算術演算の数を減らす。このような２つの顔の埋め込みの類似性により、２つの画像に同じ人物が含まれている否かを区別できる。
【００３８】
図７は、画像翻訳のアプリケーションに本開示を導入した場合の図５２０であり、ＤＮＮは、入力として画像を取り込んで、異なるスタイルの画像（例えば、テクスチャの変更、照明条件など）を出力する。活性化コンプレッサ１００を用いて、画像のスタイルを翻訳するためにＤＮＮが必要とする算術演算の数を減らすことができる。
【００３９】
図８は、言語認識のアプリケーションに本開示を導入した場合の図５３０であり、リカレントニューラルネットワーク（ＲＮＮ、特殊なタイプのＤＮＮ）は、入力として英語の単語のトークンを取り、漢字を出力する。活性化コンプレッサ１００は、ＲＮＮのエンコーダ部分とデコーダ部分の両方において、活性化ニューロンの数、従って算術演算の数を減らす。
【００４０】
図９は、音声認識のためにトレーニングされたＤＮＮへの活性化コンプレッサ１００の適用を示す図５４０であり、ＤＮＮは、音声波信号を入力として受け取り、音声信号に含まれる人間の言語の単語を出力する。
【００４１】
既に示唆したように、本発明に関連して論じられた様々なコンピュータベースのデバイスは、同様の属性を共有し得る。図１０は、コンピュータシステム６００の例示的な形態を示しており、命令のセットを実行して、コンピュータシステムに、本明細書に開示された方法論のいずれか１つ以上を実行させることができる。コンピュータデバイス６００は、本明細書で説明するクライアント、サーバ、又はネットワーク仲介デバイスの一部又は全てを表してもよい。更に、単一のマシンのみを示しているが、「マシン」とは、本明細書で論じられる方法論のいずれか１つ以上を実行するための命令のセット（又は複数のセット）を個別に、又は共同で実行するマシンの集合を含むと解釈すべきである。例示的なコンピュータシステム６００は、プロセッサ６０２（例えば、中央処理装置（ＣＰＵ）、グラフィックス処理装置（ＧＰＵ）、又はその両方）、メインメモリ６０４、スタティックメモリ６０６を含み、バス６０８を介して互いに通信を行う。コンピュータシステム６００は、ビデオディスプレイユニット６１０（例えば、液晶ディスプレイ（ＬＤＣ））を更に含み得る。コンピュータシステム６００はまた、英数字入力デバイス６１２（例えば、キーボード）、カーソル制御デバイス６１４（例えば、マウス）、ディスク駆動ユニット６１６、信号生成デバイス６１８（例えば、スピーカー）、ネットワークインターフェースデバイス６２４を備える。
【００４２】
ディスクドライブユニット６１６は、本明細書に記載の方法論又は機能のいずれか１つ以上を具体化する１つ以上の命令セット（例えば、ソフトウェア６２２）が格納されている機械可読媒体６２０を含む。ソフトウェア６２２はまた、完全に、或いは少なくとも部分的に、メインメモリ６０４及び／又はプロセッサ６０２に存在し得る。実行中、コンピュータシステム６００、メインメモリ６０４、プロセッサ６０２の命令記憶部分もまた、機械可読媒体を構成する。ソフトウェア６２２は更に、ネットワークインターフェースデバイス６２４を介してネットワーク６２６により、送受信されてもよい。
【００４３】
機械可読媒体６２０は、例示的な実施形態では単一の媒体として示されているが、「機械可読媒体」とは、１つ以上の命令セットを格納する単一の媒体、又は複数の媒体（例えば、集中型や分散型データベース、及び／又は関連キャッシュ及びサーバ）を含むものとして捉えるべきである。「機械可読媒体」とは、更に、機械によって実行するための一連の命令を記憶することができ、機械に本発明の方法論のいずれか１つ以上を実行させる任意の有形媒体を含むと解釈すべきである。従って、「機械可読媒体」とは、固体メモリ、光学媒体や磁気媒体を含むが、これらに限定される訳ではないと解釈すべきである。
【００４４】
本明細書の詳細な説明の一部は、コンピュータメモリ又は他の記憶装置内のデータに対する演算のアルゴリズムや記号表現を以って記載されている。これらのアルゴリズム的説明や表現は、データ処理技術の当業者がその仕事の詳細を当業者に最も効果的に伝えるために使用する手段である。アルゴリズムは、一般に、望ましい結果につながる処理ブロックの自己無撞着なシーケンスであると考えられている。処理ブロックは、物理量の物理操作を必要とするブロックである。本明細書において、「処理」、「計算」、「演算」、「決定」、「表示」などの用語を用いる議論は、コンピュータシステムのレジスタやメモリの物理量（電子量）として表されるデータを操作し、コンピュータシステムのメモリ、レジスタ、又は他の類似の情報ストレージ、送信デバイス、表示デバイスの物理量として同様に表される他のデータに変換する、コンピュータシステムやそれ類似の電子計算デバイスの動作やびプロセスを指す。
【００４５】
本発明は更に、本明細書の演算を実行するための装置に関する。この装置は、必要な目的のために特別に構築されてもよく、或いは、コンピュータに格納されたコンピュータプログラムによって選択的に活性化又は再構成される汎用コンピュータであってもよい。このようなコンピュータプログラムは、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ、磁気光学ディスクなど任意のタイプのディスク、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能でプログラム可能なＲＯＭ（ＥＥＰＲＯＭ）、磁気カードまたは光学カード、アプリケーション固有の集積回路（ＡＳＩＣ）、或いは電子命令の保存に適した任意のタイプのメディアを含む（これらに限定される訳ではない）、 コンピュータ可読記憶媒体で、それぞれコンピュータシステムバスに連結されている、記憶媒体に格納することができる。更に、本明細書で記載されるコンピュータ及び／又は他の電子デバイスは、単一のプロセッサを含んでもよく、計算能力を高めるために複数のプロセッサ設計を採用するアーキテクチャであってもよい。
【００４６】
更に、「要求」、「クライアント要求」、「要求されたオブジェクト」、「オブジェクト」などは、仲介者やサーバなどのネットワークデバイスからクライアントによって要求された動作、オブジェクト、及び／又は情報を意味し、互換可能である。また、「応答」や「サーバ応答」とは、ネットワークデバイスから返される対応の動作、オブジェクト、及び／又は情報を意味するものであり、互換可能である。更に、「通信」や「クライアント通信」とは、要求を行うクライアントと、当該要求に応答するネットワークデバイスのプロセス全体を意味し、互換可能である。
【００４７】
上記のシステム、デバイス、又は装置の態様のいずれかに関して、システムの機能を実行するためのステップを含む方法の態様を、更に提供してもよい。追加的に、或いは代替的に、任意の特徴を、他の態様に関して本明細書に記載されている特徴のいずれか１つ以上に基づいて見出されてもよい。
【００４８】
本開示は、可能な実施形態を、特に詳細に説明した。当業者は、本開示が他の実施形態として実施され得ることを理解するはずである。構成要素の名称、用語に対する大文字の使用、属性、データ構造、その他のプログラミングや構造的側面は、必須や重要なものではなく、開示、又はその機能を実装するメカニズムは、異なる名称、形式、プロトコルを有してもよい。システムは、説明されているように、ハードウェアとソフトウェアの組み合わせにより、或いはハードウェア要素のみで、或いはソフトウェア要素のみで実装されてもよい。本明細書において説明する様々なシステム構成要素における機能の分割は、単なる例示であり、必須ではない。単一のシステム構成要素によって実行される機能を、複数の構成要素によって実行してもよく、逆に、複数の構成要素によって実行される機能を、単一の構成要素によって実行してもよい。
【００４９】
様々な実施形態において、本開示は、単独で、或いは任意の組み合わせで、上記の技術を実行するためのシステムや方法として実装され得る。本明細書に記載されている特定の特徴の組み合わせは、その組み合わせが明示的に記載されていない場合でも提供される。別の実施形態では、本開示は、計算デバイスや他の電子デバイスにおけるプロセッサに上記の技術を実行させるための、コンピュータ可読記憶媒体及び媒体上に符号化されたコンピュータプログラムコードを含むコンピュータプログラム製品として実装されることもできる。
【００５０】
本明細書において「一実施形態」又は「実施形態」を言及する場合、実施形態に関して説明される特定の特徴、構造、又は特性が、本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書に時折用いられる「一実施形態において」という出現は、必ずしも全てが同じ実施形態を指す訳ではない。
【００５１】
但し、これら、又は類似の用語は全て、適切な物理量に関連付けられ、これらの量に適用される便利な表題に過ぎない。以下の説明で明記されない限り、本明細書において、「処理」、「計算」、「演算」、「表示」、「決定」などの表現を用いる議論は、コンピュータシステムのレジスタやメモリの物理量（電子量）として表されるデータを操作し、コンピュータシステムのメモリ、レジスタ、又は他の類似の情報ストレージ、送信デバイス、表示デバイスの物理量として同様に表される他のデータに変換する、コンピュータシステムやそれ類似の電子計算装置の動作やプロセスを指す。
【００５２】
本開示の特定の態様は、アルゴリズムの形で本明細書に記載されているプロセスステップ及び命令を含む。本開示のプロセスステップ及び命令は、ソフトウェア、ファームウェア、及び／又はハードウェアで具体化することができ、ソフトウェアで具体化する場合、ダウンロードして、様々な運営システムで用いられるプラットフォームに置き、そこから操作することができる。
【００５３】
本明細書に提示されるアルゴリズム及び表示は、特定のコンピュータ、仮想化システム、或いは他の装置に本質的に関連していない。本明細書の教示に従って、様々な汎用システムをプログラムと共に使用することもでき、或いは、システムは、必要な方法ステップを実行するために必要なより特殊な装置を構築してもよい。これらの様々なシステムに必要な構造は、本明細書における説明から明らかになる。更に、本開示は、特定のプログラミング言語を使用するものではない。様々なプログラミング言語を用いて、本明細書に記載の本開示の教示を実施することができ、特定の言語を使用したとしても、本開示の有効化や最良のモードの開示のみを目的としていることを理解されたい。
【００５４】
様々な実施形態では、本開示は、コンピュータシステム、計算デバイス、又は他の電子デバイス、或いはそれらの任意の組み合わせ、又は複数のそれらを制御するためのソフトウェア、ハードウェア、及び／又は他の要素として実装することができる。そのような電子デバイスは、例えば、プロセッサ、入力デバイス（キーボード、マウス、タッチパッド、トラックパッド、ジョイスティック、トラックボール、マイクロフォン、及び／又はそれらの任意の組み合わせなど）、出力デバイス（スクリーン、スピーカーなど）、メモリ、長期ストレージ（磁気ストレージ、光ストレージ、及び／又はその他のストレージ）、及び／又は、当技術分野で周知の技術によるネットワーク接続部を含んでもよい。そのような電子デバイスは、携帯型であってもよく、携帯型ではなくともよい。本開示を実施するために使用し得る電子デバイスの例には、携帯電話、携帯情報端末、スマートフォン、キオスク、デスクトップパソコン、ノートブックパソコン、家庭用電子機器、テレビ、セットトップボックスなどが含まれる。本開示を実施するための電子デバイスは、例えば、Ａｐｐｌｅ社（カリフォルニア州クパチーノ）のｉＯＳ、Ｇｏｏｇｌｅ社（カリフォルニア州マウンテンビュー）のＡｎｄｒｏｉｄ、Ｍｉｃｒｏｆｔ社（ワシントン州レドモンド）のＭｉｃｒｏｓｏｆｔＷｉｎｄｏｗｓ１０、又は、デバイスでの使用に適合したその他のオペレーティングシステムなどの運営システムを使用してもよい。一部の実施形態では、本開示を実施するための電子デバイスは、例えば、携帯電話ネットワーク、無線ネットワーク、及び／又はインターネットなどのコンピュータネットワークを含む、１つ以上のネットワークを介した通信のための機能を含む。
【００５５】
一部の実施形態は、「連結」や「接続」、及びその類似の表現を用いて説明してもよい。これらの用語は、相互の同義語として意図されたものではない。例えば、一部の実施形態は、２つ以上の要素が互いに直接物理的又は電気的に接触していることを「接続」されたという。別の例で、一部の実施形態は、２つ以上の要素が直接物理的又は電気的に接触していることを「連結」されてと表現する。但し、「連結」とは、２つ以上の要素が互いに直接接触していないが、それでも互いに協力し合う、或いは相互作用を交わしていることを意味してもよい。実施形態は、この内容に限定されない。
【００５６】
本明細書において、「からなる」、「含む」、「有する」、或いはその類似の用語は、非排他的な包含を指すことを意図している。例えば、要素のリストを含むプロセス、方法、物品、又は装置は、必ずしもそれらの要素のみに限定される訳ではなく、そのようなプロセス、方法、物品、又は装置に明示的にリストされていない、或いはそれらの固有ではない他の要素を含んでもよい。更に、明示的に反対の記載がない限り、「又は」は包括的論理和を指し、排他的論理和ではない。例えば、条件Ａ又はＢは、次のいずれかに当たる。Ａが真（存在）・Ｂが偽（不在）、、Ａが偽（不在）・Ｂが真（存在）、或いはＡとＢの両方が真（存在）である。
【００５７】
本明細書において冠詞、つまり「ａ」又は「ａｎ」は、１つ以上と定義される。本明細書において「複数」は、２つ以上と定義される。本明細書において「別の」とは、少なくとも２番目以上があることである。
【００５８】
当業者は、本明細書に記載の方法及びシステムを開発する際に追加の説明を必要としないはずであるが、関連技術における標準化された事例を調べることによって、これらの方法及びシステムの容易において役立て得る指針を見つけることができる。
【００５９】
本開示は限られた数の実施形態に関して説明されたが、上記の説明から利益を得る当業者は、本明細書に記載される本開示の範囲から逸脱しない限り、他の実施形態が考案され得ることを理解するはずである。本明細書で用いられる言語は、主に読みやすさと、教育目的とを考慮して選択したもので、本発明の主題を描写又は制限するために選ばれていないことに注意されたい。使用される用語は、本明細書と特許請求の範囲とに開示される特定の実施形態に開示を限定するように解釈されてはならないが、本明細書に記載の特許請求の範囲が適用できる全ての方法及びシステムを網羅するものとして解釈すべきである。従って、開示は、開示によって制限されず、その範囲は、下記の請求項により完全に定められる。
【図１】
2021528796.tif 000017
【図２】
2021528796.tif 000018
【図３】
2021528796.tif 000019
【図４】
2021528796.tif 000020
【図５】
2021528796.tif 000021
【図６】
2021528796.tif 000022
【図７】
2021528796.tif 000023
【図８】
2021528796.tif 000024
【図９】
2021528796.tif 000025
【図１０】
2021528796.tif 000026
【国際調査報告】
2021528796.tif 000027
2021528796.tif 000028
2021528796.tif 000029