(57)【要約】【課題】ニューラルネットワークを生成する方法等を提供すること。【解決手段】方法は、ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用するステップを含み得る。この方法は、ニューラルネットワークモデルをトレーニングするステップをさらに含み得る。さらに、この方法は、トレーニングされたニューラルネットワークモデルにより受け取られた１つ以上の入力に基づいて、トレーニングされたニューラルネットワークモデルからニューラルネットワーク出力を生成するステップを含み得る。【選択図】図２
2019114231.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを動作させる方法であって、
少なくとも１つのプロセッサにより、ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用するステップと、
前記少なくとも１つのプロセッサにより、前記ニューラルネットワークモデルをトレーニングするステップと、
前記少なくとも１つのプロセッサにより、トレーニングされた前記ニューラルネットワークモデルにより受け取られた１つ以上の入力に基づいて、トレーニングされた前記ニューラルネットワークモデルからニューラルネットワーク出力を生成するステップと、
を含む方法。
【請求項２】
前記ニューラルネットワークモデルの精度を決定するステップ
をさらに含み、
ニューラルネットワーク出力を前記生成することは、決定された前記精度が精度閾値よりも大きいことに応じて、前記ニューラルネットワーク出力を生成することを含む、請求項１に記載の方法。
【請求項３】
非線形量子化を前記適用することは、前記ニューラルネットワークモデルの前記複数のシナプス重みの各シナプス重みに非線形関数を適用することを含む、請求項１に記載の方法。
【請求項４】
非線形関数を前記適用することは、前記複数のシナプス重みの各シナプス重みに、双曲正弦関数及び双曲余弦関数のうちの１つを適用することを含む、請求項３に記載の方法。
【請求項５】
前記ニューラルネットワークモデルの精度を決定するステップと、
決定された前記精度が精度閾値よりも小さいことに応じて、前記非線形量子化のビット数を増大することにより、分解能を増大するステップと、
をさらに含む、請求項１に記載の方法。
【請求項６】
非線形量子化を前記適用することは、
第１の値を有する、前記複数のシナプス重みのうちの少なくとも１つのシナプス重みを、粗い分解能で量子化することと、
前記第１の値よりも大きい第２の値を有する、前記複数のシナプス重みのうちの少なくとも１つの他のシナプス重みを、細かい分解能で量子化することと、
を含む、請求項１に記載の方法。
【請求項７】
第１の値を有する、前記複数のシナプス重みのうちの少なくとも１つのシナプス重みを、粗い分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも１つのシナプス重みを、ビット数Ｎで量子化することを含む、請求項６に記載の方法。
【請求項８】
前記第１の値よりも大きい第２の値を有する、前記複数のシナプス重みのうちの少なくとも１つの他のシナプス重みを、細かい分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも１つの他のシナプス重みを、ビット数Ｍで量子化することを含み、ＭはＮよりも大きい、請求項７に記載の方法。
【請求項９】
非線形量子化を前記適用することは、非一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、請求項１に記載の方法。
【請求項１０】
非線形量子化を前記適用することは、一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、請求項１に記載の方法。
【請求項１１】
命令を含む１つ以上の非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、１つ以上のプロセッサにより実行されたときに、前記１つ以上のプロセッサに複数の動作を実行させるよう構成されており、前記複数の動作は、
ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用する動作と、
前記ニューラルネットワークモデルをトレーニングする動作と、
トレーニングされた前記ニューラルネットワークモデルにより受け取られた１つ以上の入力に基づいて、トレーニングされた前記ニューラルネットワークモデルからニューラルネットワーク出力を生成する動作と、
を含む、コンピュータ読み取り可能な媒体。
【請求項１２】
前記複数の動作は、
前記ニューラルネットワークモデルの精度を決定する動作
をさらに含み、
ニューラルネットワーク出力を前記生成することは、決定された前記精度が精度閾値よりも大きいことに応じて、前記ニューラルネットワーク出力を生成することを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１３】
非線形量子化を前記適用することは、前記ニューラルネットワークモデルの前記複数のシナプス重みの各シナプス重みに非線形関数を適用することを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１４】
非線形関数を前記適用することは、前記複数のシナプス重みの各シナプス重みに、双曲正弦関数及び双曲余弦関数のうちの１つを適用することを含む、請求項１３に記載のコンピュータ読み取り可能な媒体。
【請求項１５】
前記複数の動作は、
前記ニューラルネットワークモデルの精度を決定する動作と、
決定された前記精度が精度閾値よりも小さいことに応じて、前記非線形量子化のビット数を増大することにより、分解能を増大する動作と、
をさらに含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１６】
非線形量子化を前記適用することは、
第１の値を有する、前記複数のシナプス重みのうちの少なくとも１つのシナプス重みを、粗い分解能で量子化することと、
前記第１の値よりも大きい第２の値を有する、前記複数のシナプス重みのうちの少なくとも１つの他のシナプス重みを、細かい分解能で量子化することと、
を含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１７】
第１の値を有する、前記複数のシナプス重みのうちの少なくとも１つのシナプス重みを、粗い分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも１つのシナプス重みを、ビット数Ｎで量子化することを含む、請求項１６に記載のコンピュータ読み取り可能な媒体。
【請求項１８】
前記第１の値よりも大きい第２の値を有する、前記複数のシナプス重みのうちの少なくとも１つの他のシナプス重みを、細かい分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも１つの他のシナプス重みを、ビット数Ｍで量子化することを含み、ＭはＮよりも大きい、請求項１７に記載のコンピュータ読み取り可能な媒体。
【請求項１９】
非線形量子化を前記適用することは、非一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項２０】
非線形量子化を前記適用することは、一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示に記載の実施形態は、ニューラルネットワークパラメータの非線形量子化に関する。
【背景技術】
【０００２】
ニューラルネットワーク分析は、複数の処理層を通じて高レベル抽象化をモデル化しようと試みる生物学的ニューラルネットワークによって生じる分析のモデルを含み得る。ニューラルネットワーク分析は、大量の計算リソース及び／又はネットワークリソースを消費し得る。
【０００３】
本出願において特許請求される主題は、あらゆる欠点を解決する実施形態又は上記のような環境においてのみ動作する実施形態に限定されるものではない。そうではなく、この背景技術の記載は、本開示に記載のいくつかの実施形態が実施され得る１つの例示的な技術領域を示すために提供されているに過ぎない。
【発明の概要】
【０００４】
本開示の１つ以上の実施形態は、ニューラルネットワークを生成する方法を含み得る。この方法は、ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用するステップを含み得る。この方法はまた、ニューラルネットワークモデルをトレーニングするステップをさらに含み得る。さらに、この方法は、トレーニングされたニューラルネットワークモデルにより受け取られた１つ以上の入力に基づいて、トレーニングされたニューラルネットワークモデルからニューラルネットワーク出力を生成するステップを含み得る。
【０００５】
実施形態の目的及び利点が、少なくとも請求項において特に示される要素、特徴、及び組合せにより、実現及び達成される。前述の総括的な説明及び以下の詳細な説明の両方ともが、例示的で説明的なものであり、限定的なものではない。
【図面の簡単な説明】
【０００６】
例示的な実施形態が、添付の図面を使用して、より具体的且つ詳細に記載及び説明される。
【図１Ａ】非線形関数のグラフ。
【図１Ｂ】図１Ａに示されている非線形関数の入力−出力特性を示すグラフ。
【図２】ニューラルネットワークを生成する例示的な方法のフローチャート。
【図３】量子化レベルの範囲についての例示的な重み分布を示す図。
【図４】関数及び量子化レベルを示す例示的なグラフ。
【図５】ニューラルネットワークを生成する別の例示的な方法のフローチャート。
【図６】ニューラルネットワークを生成するさらに別の例示的な方法のフローチャート。
【図７】例示的なコンピューティングデバイスのブロック図。
【発明を実施するための形態】
【０００７】
本出願において開示される様々な実施形態は、ニューラルネットワークの量子化に関する。より詳細には、いくつかの実施形態に従うと、非線形関数が、ニューラルネットワークの１つ以上のモデルの１つ以上の層の１つ以上のパラメータ（例えばシナプス重み）に適用され得る。
【０００８】
ニューラルネットワークは、複数の層を有するモデルを含み得、各層内のニューロンは、結合を介して、隣接する層のニューロンに伝達可能に結合され得る。より詳細には、１つの層内の１つのニューロンは、１つの結合を介して、１つの隣接する層の１つのニューロンに伝達可能に結合され得る。さらに、隣接する層のニューロンの間の結合には、ニューロンの間の関連付けられた結合の強度又は強さを示し得るシナプス重み（例えば３２ビット重み）が割り当てられ得る。
【０００９】
ニューラルネットワークは、一般に、過剰にパラメータ化され、ニューラルネットワーク内のモデルは、冗長性（例えば、シナプス重み等のトレーニングパラメータの冗長性）を含み得る。さらに、（例えば、１つ以上のモデルを含む）ニューラルネットワークを生成及び／又はトレーニングすることは、相当のリソース（例えば処理要件及び／又はメモリ）を必要とし得る。冗長性を低減するために、シナプス重み及び／又は活性化についての固定小数点実装、ネットワークプルーニング、及び（例えばハッシュ関数を介して）重みを共有すること等の様々なアプローチが存在している。
【００１０】
計算コストを低減するために、線形量子化が、ニューラルネットワーク推論及び／又はトレーニングのために用いられ得るが、これは、パラメータについての数値精度を低減させ得る。さらに、乗算を加算に変換する（例えば、log(x*y)=log(x)+log(y)）計算複雑性を低減するために、対数符号化を用いる量子化が用いられ得る。
【００１１】
ニューラルネットワークを生成するいくつかの従来方法は、より広い範囲及びより細かい分解能を提供するために、ニューラルネットワークにおけるビット数を増大することを含む。しかしながら、これは、（例えば、より高いビットを伴う処理要素と、増大された量のデータが記憶されることと、に起因する）増大された計算要件及びメモリ要件をもたらし得る。
【００１２】
さらに、ニューラルネットワークを生成するいくつかの従来方法は、信号対分布の量子化誤差（SQNR）を最小にし得る。例えば、少なくとも１つの従来方法は、各単一データについて誤差を最小にする。これは、深層ニューラルネットワークの効率を向上させることができるが、非常に計算コストが高い、乱数発生器の相当の使用を必要とする。さらに、少なくとも１つの他の従来方法は、誤差の総量（例えばE=Σm*ε（mは、特定の量子化レベルで量子化されるデータの数である））を最小にする。トレーニングされたモデルを必要とするこの方法は、モデルをトレーニングするコストを増大させる。
【００１３】
さらに、より大きな学習された重みと比較すると重要でないより小さな学習された重みを考慮する、ニューラルネットワークを生成するいくつかの従来方法は、プルーニングにより（例えば、小さな重みを有する結合をゼロに設定することにより）、効率を向上させることができるが、これらの方法は、トレーニング、プルーニング、及び微調整（チューニング：tuning）の複数のループを必要とし得、したがって、ニューラルネットワークをトレーニングする総コストが増大される。他の方法は、より大きな値にペナルティ（例えば、より少ない量子化レベル）を与える対数量子化を用い得る。
【００１４】
様々な実施形態に従うと、非線形量子化を用いて、深層ニューラルネットワークの効率を向上させることができる。いくつかの実施形態に従うと、量子化は、低値入力についての粗い分解能（例えば、より少ないレベルの数）及び高値入力についての細かい分解能（例えば、より多いレベルの数）を含み得る。さらに、様々な実施形態において、非線形入力−出力特性を提供する非線形関数が使用され得る。（例えば、非線形関数を介した）非線形量子化は、ニューラルネットワークパラメータ（例えばシナプス重み）の多様性を増大することができる。例示的な非線形関数は、cosh(x)（双曲余弦関数）及びsinh(x)（双曲正弦関数）を含み得るが、これらに限定されるものではない。
【００１５】
ニューラルネットワーク内で処理されるデータに関連する誤差を低減するだけであるいくつかの従来システム及び方法とは対照的に、本開示の様々な実施形態は、ニューラルネットワークの出力としての分類における十分な精度を提供するために、量子化特性（例えば範囲及び／又は分解能）を向上させることができる。例えば、様々な実施形態は、重み値の範囲を変更すること（例えば増大又は低減すること）及び／又は範囲内のビット数（例えば量子化レベルの数）を変更すること（例えば増大又は低減すること）により、分解能を変更すること（例えば増大又は低減すること）に関する。
【００１６】
従来システム及び方法と比較すると、本開示の様々な実施形態は、十分な分解能を提供し十分な範囲をカバーしながら、ビット数（本開示において「量子化レベルの数」とも呼ばれる）を低減することができる。したがって、計算コストを低減することができる。さらに、SQNRを単に最小にする代わりに、様々な実施形態は、ニューラルネットワークの精度を向上させるために、より大きな値を有する重み（例えば、より重要なパラメータ）に、より多いレベル（例えば、より多いビット）を割り当てることを含み得る。
【００１７】
したがって、本開示の様々な実施形態は、本開示においてより詳細に説明されるように、人間により合理的には行われ得ないテクノロジから生じる１つ以上の問題に対する技術的解決策を提供し、本出願において開示される様々な実施形態は、上述した問題及び／又は課題を克服するために、コンピュータテクノロジに根差している。さらに、本出願において開示される少なくともいくつかの実施形態は、コンピュータにより以前には実行できなかった機能のコンピュータ実行を可能にすることにより、コンピュータ関連テクノロジを向上させることができる。
【００１８】
本開示の様々な実施形態は、インターネット及びクラウド用途（例えば、画像分類、音声認識、言語翻訳、言語処理、感情分析レコメンデーション等）、薬学及び生物学（例えば、癌細胞検出、糖尿病分類、創薬等）、メディア及びエンターテイメント（例えば、ビデオキャプション付け、ビデオ検索、リアルタイム翻訳等）、セキュリティ及び防衛（例えば、顔検出、ビデオ監視、衛星画像等）、及び自律マシン（例えば、歩行者検出、車線追跡、信号機検出等）等といった様々な用途で利用され得る。
【００１９】
本開示の実施形態が、添付の図面を参照しながら、これより説明される。
【００２０】
図１Ａは、例示的な非線形関数（例えば、cosh(x)-1  (x>=0)）を示すグラフである。図１Ｂは、図１Ａの関数についての入力−出力特性を示すグラフである。図１Ｂに示されているように、図１Ａの関数は、非線形入力−出力特性を提供する。
【００２１】
図２は、本開示の少なくとも１つの実施形態に従った、ニューラルネットワークを生成する例示的な方法２００のフローチャートである。方法２００は、任意の適切なシステム、装置、又はデバイスにより実行され得る。例えば、図７のデバイス６００、又はこれのコンポーネントのうちの１つ以上のコンポーネントが、方法２００に関連付けられている動作のうちの１つ以上の動作を実行し得る。これらの実施形態及び他の実施形態において、コンピュータ読み取り可能な媒体に記憶されているプログラム命令が、方法２００の動作のうちの１つ以上の動作を実行するために実行され得る。
【００２２】
ブロック２０２において、非線形量子化がニューラルネットワークに適用され得、方法２００はブロック２０４に進み得る。より詳細には、少なくともいくつかの実施形態において、cosh(x)及びsinh(x)等であるがこれらに限定されるものではない非線形関数が、ニューラルネットワークのモデルの少なくとも１つのパラメータに適用され得る。さらに詳細には、少なくともいくつかの実施形態において、非線形関数が、ニューラルネットワークの（例えばニューロン結合についての）１つ以上のシナプス重みに適用され得る。したがって、初期シナプス重み値と量子化されたシナプス重み値との間には非線形関係が存在し得る。例えば、図７のプロセッサ６１０が、非線形量子化をニューラルネットワークに適用し得る。
【００２３】
ブロック２０４において、ニューラルネットワークがトレーニングされ得、方法２００はブロック２０６に進み得る。例えば、モデルを含むニューラルネットワークが、例えば、ランダム初期化を用いた従来のバックプロパゲーション及び／又は任意の他の適切なトレーニング方法を介して、トレーニングされ得る。より詳細には、モデルの各層の１つ以上のトレーニングパラメータがトレーニングされ得る。非線形関数が１つ以上のシナプス重みに適用されているいくつかの実施形態において、１つ以上のシナプス重みは、トレーニングを介して最適化され得る。例えば、図７のプロセッサ６１０が、ニューラルネットワークをトレーニングし得る。
【００２４】
ブロック２０６において、ニューラルネットワークについての必要とされる精度が満たされているかどうかが判定され得る。例えば、図７のプロセッサ６１０が、精度閾値とニューラルネットワークの決定された（例えば測定された）精度とを比較して、ニューラルネットワークの精度が、必要とされる精度を満たしているかどうかを判定し得る。必要とされる精度が満たされている場合、方法２００はブロック２０８に進み得る。必要とされる精度が満たされていない場合、方法２００はブロック２０４に戻り得る。
【００２５】
ブロック２０８において、ニューラルネットワークが使用され得る。より詳細には、例えば、ニューラルネットワークは、１つ以上の入力（例えば新たなデータ）を受け取り、トレーニングされたモデルに基づいて、１つ以上の出力を生成することができる。例えば、図７のプロセッサ６１０が、トレーニングされたモデル及び受け取られた１つ以上の入力に基づいて、１つ以上の出力を生成し得る。
【００２６】
本開示の範囲から逸脱することなく、方法２００に対して、変更、追加、又は省略が可能である。例えば、方法２００の動作は、異なる順番で実行されることもある。さらに、説明された動作及びステップは、例として提供されているに過ぎず、動作及びステップのうちの一部は、開示されている実施形態の本質を損なうことなく、任意的であることもあるし、より少ない動作及びステップに組み合わされることもあるし、追加の動作及びステップに拡張されることもある。
【００２７】
図３は、量子化レベル３０２の範囲３０１についての例示的な重み分布を示すグラフ３００である。各量子化レベル３０２の間の間隔は、量子化動作の分解能を示し得る。グラフ３００において示されているように、範囲３０１のうちの外側部分における分解能は、粗く（例えば、より少ない量子化レベル）、範囲３０１のうちの内側部分における分解能は、細かい（例えば、より多い量子化レベル）。したがって、本開示において使用される場合、「粗い分解能」という句は、第１のビット数（例えばビット数Ｎ（例えば、より少ないビット数））に関連し得、「細かい分解能」という句は、より多い第２のビット数（例えばビット数Ｍ（例えば、より多いビット数））に関連し得る。
【００２８】
本開示の様々な実施形態は、本開示において説明されるように、より高い値（例えば絶対値）を有する重み（例えば層入力）について分解能を増大し、必要に応じて、より低い値（例えば絶対値）を有する重み（例えば層入力）について分解能を低減することにより、ニューラルネットワークの精度を向上させることができる。例えば、様々な実施形態に従うと、粗い分解能の量子化は、（例えば、関連付けられた結合の低い強度又は強さを示す）より低い値の入力（例えば重み値）について提供され得、細かい分解能の量子化は、（例えば、関連付けられた結合の高い強度又は強さを示す）より高い値の入力（例えば重み値）について提供され得る。例えば、図１Ｂを再度参照すると、（X軸に沿った）重み値が増大するにつれて、分解能（例えば量子化レベルの数）も、（例えば、粗い分解能から細かい分解能へと）増大し得る。
【００２９】
例えば、少なくとも１つの実施形態に従うと、予め規定された量子化レベルが使用され得る。cosh(x)、sinh(x)等の関数f(x)を使用して、以下の式を介した適切な量子化レベルを提供することができる：
lm=f-1(m*d)
上記の式において、lmはm番目の量子化レベルであり、f-1はf(x)の逆関数であり、mは整数であり、dは、量子化出力の間の間隔を表し、以下の関係を有し得る：
f(最大範囲)=(mの最大値)*d
【００３０】
いくつかの実施形態において、間隔dは固定値であり得る。例えば、少なくともいくつかの実施形態において、図２の方法２００は、予め規定された量子化レベル（例えば、間隔dの固定値及び固定範囲）を有して実行され得る。図４は、関数f(x)を示す例示的なグラフ３５０である。この例において、f(x)=cosh(x)-1  (x>=0)又はf(x)=-cosh(x)+1  (x<0)である。グラフ３５０は、量子化レベル（例えば、l1、l2、l3等）と、上述したように、出力（例えば量子化器の出力）の間の間隔である間隔dと、をさらに含む。この例において、間隔dは固定値である。
【００３１】
他の実施形態に従うと、動的な量子化レベルが使用され得る。例えば、ビット数を所与として、範囲及び／又は分解能が、精度閾値（例えば、必要とされる且つ／又は望まれる精度）を満たすように間隔dを変更することにより高められ得る。
【００３２】
さらに、様々な実施形態に従うと、量子化の分解能は、例えば、範囲を変更すること及び／又はビット数（例えば量子化レベルの数）を変更することにより、変更され得る。より詳細には、分解能は、範囲を低減すること及び／又はビット数を増大することにより、増大され得る。この例において、量子化レベルの間の間隔（例えば間隔d）が低減され得る。さらに、分解能は、範囲を増大すること及び／又はビット数を低減することにより、低減され得る。この例において、量子化レベルの間の間隔（例えば間隔d）が増大され得る。
【００３３】
図５は、本開示の少なくとも１つの実施形態に従った、ニューラルネットワークを生成する例示的な方法４００のフローチャートである。方法４００は、任意の適切なシステム、装置、又はデバイスにより実行され得る。例えば、図７のデバイス６００、又はこれのコンポーネントのうちの１つ以上のコンポーネントが、方法４００に関連付けられている動作のうちの１つ以上の動作を実行し得る。これらの実施形態及び他の実施形態において、コンピュータ読み取り可能な媒体に記憶されているプログラム命令が、方法４００の動作のうちの１つ以上の動作を実行するために実行され得る。
【００３４】
ブロック４０１において、量子化出力の間の間隔が最大値に設定され得、方法４００はブロック４０２に進み得る。例えば、図７のプロセッサ６１０が、量子化出力の間の間隔を最大値に設定し得る。例えば、パラメータ（例えばシナプス重み）についての範囲及び／又は分解能は既知であり得、最大値は、ニューラルネットワークにおける最大間隔に等しいものであり得る。
【００３５】
ブロック４０２において、非線形量子化がニューラルネットワークに適用され得、方法４００はブロック４０４に進み得る。より詳細には、少なくともいくつかの実施形態において、cosh(x)及びsinh(x)等であるがこれらに限定されるものではない非線形関数が、ニューラルネットワークのモデルの少なくとも１つのパラメータに適用され得る。さらに詳細には、少なくともいくつかの実施形態において、非線形関数が、ニューラルネットワークの（例えば結合についての）１つ以上のシナプス重みに適用され得る。例えば、図７のプロセッサ６１０が、非線形量子化をニューラルネットワークに適用し得る。
【００３６】
ブロック４０４において、モデルを含むニューラルネットワークがトレーニングされ得、方法４００はブロック４０６に進み得る。例えば、ニューラルネットワークが、例えば、ランダム初期化を用いた従来のバックプロパゲーション及び／又は任意の他の適切なトレーニング方法を介して、トレーニングされ得る。より詳細には、モデルの各層の１つ以上のトレーニングパラメータがトレーニングされ得る。非線形関数が１つ以上のシナプス重みに適用されているいくつかの実施形態において、１つ以上のシナプス重みは、トレーニングを介して最適化され得る。例えば、図７のプロセッサ６１０が、ニューラルネットワークをトレーニングし得る。
【００３７】
ブロック４０６において、必要とされる精度が満たされているかどうかが判定され得る。例えば、図７のプロセッサ６１０が、精度閾値とニューラルネットワークの測定された精度とを比較して、ニューラルネットワークの精度が、必要とされる精度を満たしているかどうかを判定し得る。必要とされる精度が満たされている場合、方法４００はブロック４０８に進み得る。必要とされる精度が満たされていない場合、方法４００はブロック４１０に進み得る。
【００３８】
ブロック４０８において、ニューラルネットワークが使用され得る。より詳細には、例えば、ニューラルネットワークは、１つ以上の入力（例えば新たなデータ）を受け取り、トレーニングされたモデルに基づいて、１つ以上の出力を生成することができる。例えば、図７のプロセッサ６１０が、トレーニングされたモデル及び受け取られた１つ以上の入力に基づいて、１つ以上の出力を生成し得る。
【００３９】
ブロック４１０において、量子化出力の間の間隔が低減され得、方法４００はブロック４０２に戻り得る。例えば、量子化出力の間の間隔（例えば間隔d）が、分解能（したがって、例えばニューラルネットワークの精度）を増大するために、１単位（unit）、２単位、３単位等の分だけ低減され得る。例えば、図７のプロセッサ６１０が、量子化出力の間の間隔を低減し得る。
【００４０】
本開示の範囲から逸脱することなく、方法４００に対して、変更、追加、又は省略が可能である。例えば、方法４００の動作は、異なる順番で実行されることもある。さらに、説明された動作及びステップは、例として提供されているに過ぎず、動作及びステップのうちの一部は、開示されている実施形態の本質を損なうことなく、任意的であることもあるし、より少ない動作及びステップに組み合わされることもあるし、追加の動作及びステップに拡張されることもある
【００４１】
さらに、いくつかの実施形態において、量子化出力の間の間隔についての値の範囲が、ニューラルネットワークトレーニング中に使用され得る。さらに、間隔の各値（例えば間隔d）について、ニューラルネットワークの精度が測定及び記録され得る。間隔についての各値が使用された後、ニューラルネットワークが、推論のために使用されている間に、間隔についての決定された最適値（例えば最高精度を提供する値）が使用され得る。
【００４２】
例えば、図６は、本開示の少なくとも１つの実施形態に従った、ニューラルネットワークを生成する例示的な方法５００のフローチャートである。方法５００は、任意の適切なシステム、装置、又はデバイスにより実行され得る。例えば、図７のデバイス６００、又はこれのコンポーネントのうちの１つ以上のコンポーネントが、方法５００に関連付けられている動作のうちの１つ以上の動作を実行し得る。これらの実施形態及び他の実施形態において、コンピュータ読み取り可能な媒体に記憶されているプログラム命令が、方法５００の動作のうちの１つ以上の動作を実行するために実行され得る。
【００４３】
ブロック５０２において、量子化出力の間の間隔が大きい値（例えば最大値）に設定され得、方法５００はブロック５０４に進み得る。例えば、図７のプロセッサ６１０が、量子化出力の間の間隔（例えば間隔d）を大きい値（例えばニューラルネットワークにおける最大間隔）に設定し得る。
【００４４】
ブロック５０４において、非線形量子化がニューラルネットワークに適用され得、方法５００はブロック５０６に進み得る。より詳細には、少なくともいくつかの実施形態において、cosh(x)及びsinh(x)等であるがこれらに限定されるものではない非線形関数が、ニューラルネットワークのモデルの少なくとも１つのパラメータに適用され得る。さらに詳細には、少なくともいくつかの実施形態において、非線形関数が、ニューラルネットワークの（例えば結合についての）１つ以上のシナプス重みに適用され得る。例えば、図７のプロセッサ６１０が、非線形量子化をニューラルネットワークに適用し得る。
【００４５】
ブロック５０６において、モデルを含むニューラルネットワークがトレーニングされ得、方法５００はブロック５０８に進み得る。例えば、ニューラルネットワークが、例えば、ランダム初期化を用いた従来のバックプロパゲーション及び／又は任意の他の適切なトレーニング方法を介して、トレーニングされ得る。より詳細には、モデルの各層の１つ以上のトレーニングパラメータがトレーニングされ得る。非線形関数が１つ以上のシナプス重みに適用されているいくつかの実施形態において、１つ以上のシナプス重みは、トレーニングを介して最適化され得る。例えば、図７のプロセッサ６１０が、ニューラルネットワークをトレーニングし得る。
【００４６】
ブロック５０８において、量子化出力の間の間隔及びニューラルネットワークの関連する測定された精度が記録され得、方法５００はブロック５１０に進み得る。例えば、図７のプロセッサ６１０が、量子化出力の間の間隔（例えば間隔d）を使用して、ニューラルネットワークの精度を測定し得、測定された精度及び量子化出力の間の間隔の値が、（例えば、図７のメモリ６３０に）記録され得る。
【００４７】
ブロック５１０において、量子化出力の間の間隔が最小値であるかどうかが判定され得る。例えば、図７のプロセッサ６１０が、量子化出力の間の間隔（例えば間隔d）が最小値であるかどうかを判定し得る。例えば、８／１６ビット整数（例えば固定小数点）を用いたデジタル実装では、間隔についての最小値は１に等しいものであり得る。量子化出力の間の間隔が最小値である場合、方法５００はブロック５１４に進み得る。量子化出力の間の間隔が最小値よりも大きい場合、方法５００はブロック５１２に進み得る。
【００４８】
ブロック５１２において、量子化出力の間の間隔が低減され得、方法５００はブロック５０４に戻り得る。例えば、量子化出力の間の間隔は、１単位、２単位、３単位等の分だけ低減され得る。例えば、図７のプロセッサ６１０が、間隔dを低減し得る。
【００４９】
ブロック５１４において、ニューラルネットワークが使用され得る。より詳細には、例えば、ニューラルネットワークは、１つ以上の入力（例えば新たなデータ）を受け取り、トレーニングされたモデルに基づいて、１つ以上の出力を生成することができる。例えば、図７のプロセッサ６１０が、トレーニングされたモデル及び受け取られた１つ以上の入力に基づいて、１つ以上の出力を生成し得る。
【００５０】
本開示の範囲から逸脱することなく、方法５００に対して、変更、追加、又は省略が可能である。例えば、方法５００の動作は、異なる順番で実行されることもある。さらに、説明された動作及びステップは、例として提供されているに過ぎず、動作及びステップのうちの一部は、開示されている実施形態の本質を損なうことなく、任意的であることもあるし、より少ない動作及びステップに組み合わされることもあるし、追加の動作及びステップに拡張されることもある。
【００５１】
図７は、本開示の少なくとも１つの実施形態に従った例示的なコンピューティングデバイス６００のブロック図である。コンピューティングデバイス６００は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、タブレットコンピュータ、携帯電話機、スマートフォン、携帯情報端末（PDA）、電子リーダデバイス、ネットワークスイッチ、ネットワークルータ、ネットワークハブ、他のネットワーキングデバイス、又は他の適切なコンピューティングデバイスを含み得る。
【００５２】
コンピューティングデバイス６００は、プロセッサ６１０、記憶デバイス６２０、メモリ６３０、及び通信デバイス６４０を含み得る。プロセッサ６１０、記憶デバイス６２０、メモリ６３０、及び／又は通信デバイス６４０は全て、これらのコンポーネントの各々が他のコンポーネントと通信できるように、通信可能に接続され得る。コンピューティングデバイス６００は、本開示に記載の動作のうちの任意の動作を実行することができる。
【００５３】
概して、プロセッサ６１０は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な専用又は汎用のコンピュータ、コンピューティングエンティティ、又は処理デバイスを含み得、任意の適用可能なコンピュータ読み取り可能な記憶媒体に記憶されている命令を実行するよう構成され得る。例えば、プロセッサ６１０は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（DSP）、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）、又は、プログラム命令を解釈及び／又は実行し、且つ／又はデータを処理するよう構成されている任意の他のデジタル回路若しくはアナログ回路を含み得る。プロセッサ６１０は、図７において１つのプロセッサとして示されているが、プロセッサ６１０は、本開示に記載の任意の数の動作を個別的又は集合的に実行するよう構成されている任意の数のプロセッサを含んでもよい。
【００５４】
いくつかの実施形態において、プロセッサ６１０は、記憶デバイス６２０、メモリ６３０、又は記憶デバイス６２０とメモリ６３０との両方に記憶されているプログラム命令を解釈及び／又は実行し、且つ／又は、記憶デバイス６２０、メモリ６３０、又は記憶デバイス６２０とメモリ６３０との両方に記憶されているデータを処理することができる。いくつかの実施形態において、プロセッサ６１０は、記憶デバイス６２０からプログラム命令をフェッチして、プログラム命令をメモリ６２０にロードすることができる。プログラム命令がメモリ６３０にロードされた後、プロセッサ６１０は、プログラム命令を実行することができる。
【００５５】
例えば、いくつかの実施形態において、ニューラルネットワークを生成及び／又はトレーニングする処理動作のうちの１つ以上の処理動作は、プログラム命令として、記憶デバイス６２０に含められ得る。プロセッサ６１０は、そのような処理動作のうちの１つ以上の処理動作のプログラム命令をフェッチして、そのような処理動作のうちの１つ以上の処理動作のプログラム命令をメモリ６３０にロードすることができる。そのような処理動作のうちの１つ以上の処理動作のプログラム命令がメモリ６３０にロードされた後、プロセッサ６１０は、そのプログラム命令により指示されるように処理動作に関連付けられている動作をコンピューティングデバイス６００が実施できるように、そのような処理動作のうちの１つ以上の処理動作のプログラム命令を実行することができる。
【００５６】
記憶デバイス６２０及びメモリ６３０は、コンピュータ実行可能な命令又はデータ構造を運ぶ又は記憶するコンピュータ読み取り可能な記憶媒体を含み得る。そのようなコンピュータ読み取り可能な記憶媒体は、プロセッサ６１０等の汎用又は専用のコンピュータによりアクセスされ得る任意の利用可能な媒体を含み得る。限定ではなく例として、そのようなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス（例えばソリッドステートメモリデバイス）、又は、コンピュータ実行可能な命令又はデータ構造の形態の所望のプログラムコードを運ぶ又は記憶するために使用され得る任意の他の記憶媒体であって、汎用又は専用のコンピュータによりアクセスされ得る任意の他の記憶媒体、を含む有形の又は非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。上記の組合せも、コンピュータ読み取り可能な記憶媒体の範囲に含まれ得る。コンピュータ実行可能な命令は、例えば、プロセッサ６１０に所定の動作又は動作群を実行させるよう構成されている命令及びデータを含み得る。
【００５７】
いくつかの実施形態において、記憶デバイス６２０及び／又はメモリ６３０は、ニューラルネットワークを生成することに関連するデータ、より詳細には、ニューラルネットワークの量子化及び／又はトレーニングに関連するデータ、を記憶することができる。例えば、記憶デバイス６２０及び／又はメモリ６３０は、量子化出力の間の間隔についての値（例えば間隔d）、ニューラルネットワーク精度測定値、ニューラルネットワーク（例えばモデル）等を記憶することができる。
【００５８】
通信デバイス６４０は、コンピューティングデバイス６００と別の電子デバイスとの間の通信を可能にする又は円滑にするよう構成されている任意のデバイス、システム、コンポーネント、又はコンポーネントの集合を含み得る。例えば、通信デバイス６４０は、モデム、ネットワークカード（無線又は有線）、赤外線通信デバイス、光通信デバイス、無線通信デバイス（アンテナ等）、及び／若しくはチップセット（Bluetooth（登録商標）デバイス、802.6デバイス（例えばメトロポリタンエリアネットワーク（MAN））、Wi-Fi（登録商標）デバイス、WiMAX（登録商標）デバイス、セルラ通信設備等）、並びに／又は同様のものを含み得るが、これらに限定されるものではない。通信デバイス６４０は、ほんの少しの例を挙げると、セルラネットワーク、Wi-Fi（登録商標）ネットワーク、MAN、光ネットワーク等といった任意のネットワークとの間で、且つ／又は、リモートデバイスを含め、本開示に記載の任意の他のデバイスとの間で、データが交換されることを可能にし得る。
【００５９】
本開示の範囲から逸脱することなく、図７に対して、変更、追加、又は省略が可能である。例えば、コンピューティングデバイス６００は、本開示において図示及び説明された要素よりも多い又は少ない要素を含んでもよい。例えば、コンピューティングデバイス６００は、タブレット又は携帯電話機のスクリーン等の統合されたディスプレイデバイスを含んでもよいし、コンピューティングデバイス６００から分離されコンピューティングデバイス６００に通信可能に接続され得る外部モニタ、プロジェクタ、テレビジョン、又は他の適切なディスプレイデバイスを含んでもよい。
【００６０】
本開示において使用される場合、「モジュール」又は「コンポーネント」という用語は、モジュール又はコンポーネントのアクションを実行するよう構成されている特定のハードウェア実装、及び／又は、コンピューティングシステムの汎用ハードウェア（例えばコンピュータ読み取り可能な媒体等）に記憶され得る且つ／又はコンピューティングシステムの汎用ハードウェア（例えば処理デバイス等）により実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを指し得る。いくつかの実施形態において、本開示に記載の異なるコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステム上で実行されるオブジェクト又はプロセスとして（例えば別個のスレッドとして）実装され得る。本開示に記載のシステム及び方法のうちの一部は、（汎用ハードウェアに記憶される且つ／又は汎用ハードウェアにより実行される）ソフトウェアにより実装されるとして一般に説明されるが、特定のハードウェア実装又はソフトウェアと特定のハードウェア実装との組合せも可能であり企図されている。本開示において、「コンピューティングエンティティ」は、本開示において前に定義された任意のコンピューティングシステム、又は、コンピューティングシステム上で動作する任意のモジュール又はモジュールの組合せであり得る。
【００６１】
本開示及び特に請求項（例えば請求項の本体部分）において使用される用語は、一般に、「オープンな」用語であるとして意図される（例えば、「〜を備える」という用語は、「〜を備えるが、〜に限定されるものではない」として解釈されるべきであり、「〜を有する」という用語は、「少なくとも〜を有する」として解釈されるべきであり、「〜を含む」という用語は、「〜を含むが、〜に限定されるものではない」として解釈されるべきである、等）。
【００６２】
さらに、導入される請求項記載事項の特定の数が意図される場合、そのような意図は、当該請求項中に明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、請求項中に、請求項記載事項を導入するための「少なくとも１つの」及び「１つ以上の」といった導入句の使用が含まれることがある。しかしながら、このような導入句の使用は、「a」又は「an」といった不定冠詞による請求項記載事項の導入が、同一の請求項中に「１つ以上の」又は「少なくとも１つの」といった導入句と「a」又は「an」といった不定冠詞とが含まれるとしても、当該導入された請求項記載事項を含む特定の請求項が、当該請求項記載事項を１つしか含まない実施形態に限定されることを意味するとして解釈されるべきではない（例えば、「a」及び／又は「an」は、「少なくとも１つの」又は「１つ以上の」を意味するとして解釈されるべきである）。請求項記載事項を導入するために使用される定冠詞の使用についても同じことが当てはまる。
【００６３】
さらに、導入される請求項記載事項の特定の数が明示的に記載されている場合であっても、そのような記載は、少なくとも記載されている数を意味するとして解釈されるべきである（例えば、他の修飾語のない「２つの記載事項」という単なる記載は、少なくとも２つの記載事項又は２つ以上の記載事項を意味する）ことが、当業者であれば認識されよう。さらに、「Ａ、Ｂ、及びＣ等のうちの少なくとも１つ」又は「Ａ、Ｂ、及びＣ等のうちの１つ以上」に類する表記が使用される場合、一般に、そのような構造は、Ａのみ、Ｂのみ、Ｃのみ、Ａ及びＢの両方、Ａ及びＣの両方、Ｂ及びＣの両方、又は、Ａ、Ｂ、及びＣの全て、等を含むことが意図される。
【００６４】
さらに、２つ以上の選択可能な用語を表すいかなる離接語又は離接句も、明細書、特許請求の範囲、又は図面のいずれであろうと、それら用語のうちの１つ、それらの用語の組合せ、又は、それらの用語の全てを含む可能性を意図するとして理解されるべきである。例えば、「Ａ又はＢ」という句は、「Ａ」若しくは「Ｂ」又は「Ａ及びＢ」の可能性を含むとして理解されるべきである。
【００６５】
本開示において記載された全ての例及び条件付き文言は、当該技術を促進させるために本発明者によって寄与されるコンセプト及び本発明を読者が理解するのを助ける教育上の目的のために意図され、そのような具体的に記載された例及び条件に限定されるものではないとして解釈されるべきである。本開示の実施形態が詳細に説明されたが、それら実施形態に対する様々な変形、置換、及び変更が、本開示の主旨及び範囲から逸脱することなく可能である。
【００６６】
以上の実施形態に関し、さらに以下の付記を開示する。
【００６７】
（付記１）
ニューラルネットワークを動作させる方法であって、
少なくとも１つのプロセッサにより、ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用するステップと、
前記少なくとも１つのプロセッサにより、前記ニューラルネットワークモデルをトレーニングするステップと、
前記少なくとも１つのプロセッサにより、トレーニングされた前記ニューラルネットワークモデルにより受け取られた１つ以上の入力に基づいて、トレーニングされた前記ニューラルネットワークモデルからニューラルネットワーク出力を生成するステップと、
を含む方法。
【００６８】
（付記２）
前記ニューラルネットワークモデルの精度を決定するステップ
をさらに含み、
ニューラルネットワーク出力を前記生成することは、決定された前記精度が精度閾値よりも大きいことに応じて、前記ニューラルネットワーク出力を生成することを含む、付記１に記載の方法。
【００６９】
（付記３）
非線形量子化を前記適用することは、前記ニューラルネットワークモデルの前記複数のシナプス重みの各シナプス重みに非線形関数を適用することを含む、付記１に記載の方法。
【００７０】
（付記４）
非線形関数を前記適用することは、前記複数のシナプス重みの各シナプス重みに、双曲正弦関数及び双曲余弦関数のうちの１つを適用することを含む、付記３に記載の方法。
【００７１】
（付記５）
前記ニューラルネットワークモデルの精度を決定するステップと、
決定された前記精度が精度閾値よりも小さいことに応じて、前記非線形量子化のビット数を増大することにより、分解能を増大するステップと、
をさらに含む、付記１に記載の方法。
【００７２】
（付記６）
非線形量子化を前記適用することは、
第１の値を有する、前記複数のシナプス重みのうちの少なくとも１つのシナプス重みを、粗い分解能で量子化することと、
前記第１の値よりも大きい第２の値を有する、前記複数のシナプス重みのうちの少なくとも１つの他のシナプス重みを、細かい分解能で量子化することと、
を含む、付記１に記載の方法。
【００７３】
（付記７）
第１の値を有する、前記複数のシナプス重みのうちの少なくとも１つのシナプス重みを、粗い分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも１つのシナプス重みを、ビット数Ｎで量子化することを含む、付記６に記載の方法。
【００７４】
（付記８）
前記第１の値よりも大きい第２の値を有する、前記複数のシナプス重みのうちの少なくとも１つの他のシナプス重みを、細かい分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも１つの他のシナプス重みを、ビット数Ｍで量子化することを含み、ＭはＮよりも大きい、付記７に記載の方法。
【００７５】
（付記９）
非線形量子化を前記適用することは、非一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、付記１に記載の方法。
【００７６】
（付記１０）
非線形量子化を前記適用することは、一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、付記１に記載の方法。
【００７７】
（付記１１）
命令を含む１つ以上の非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、１つ以上のプロセッサにより実行されたときに、前記１つ以上のプロセッサに複数の動作を実行させるよう構成されており、前記複数の動作は、
ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用する動作と、
前記ニューラルネットワークモデルをトレーニングする動作と、
トレーニングされた前記ニューラルネットワークモデルにより受け取られた１つ以上の入力に基づいて、トレーニングされた前記ニューラルネットワークモデルからニューラルネットワーク出力を生成する動作と、
を含む、コンピュータ読み取り可能な媒体。
【００７８】
（付記１２）
前記複数の動作は、
前記ニューラルネットワークモデルの精度を決定する動作
をさらに含み、
ニューラルネットワーク出力を前記生成することは、決定された前記精度が精度閾値よりも大きいことに応じて、前記ニューラルネットワーク出力を生成することを含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００７９】
（付記１３）
非線形量子化を前記適用することは、前記ニューラルネットワークモデルの前記複数のシナプス重みの各シナプス重みに非線形関数を適用することを含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００８０】
（付記１４）
非線形関数を前記適用することは、前記複数のシナプス重みの各シナプス重みに、双曲正弦関数及び双曲余弦関数のうちの１つを適用することを含む、付記１３に記載のコンピュータ読み取り可能な媒体。
【００８１】
（付記１５）
前記複数の動作は、
前記ニューラルネットワークモデルの精度を決定する動作と、
決定された前記精度が精度閾値よりも小さいことに応じて、前記非線形量子化のビット数を増大することにより、分解能を増大する動作と、
をさらに含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００８２】
（付記１６）
非線形量子化を前記適用することは、
第１の値を有する、前記複数のシナプス重みのうちの少なくとも１つのシナプス重みを、粗い分解能で量子化することと、
前記第１の値よりも大きい第２の値を有する、前記複数のシナプス重みのうちの少なくとも１つの他のシナプス重みを、細かい分解能で量子化することと、
を含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００８３】
（付記１７）
第１の値を有する、前記複数のシナプス重みのうちの少なくとも１つのシナプス重みを、粗い分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも１つのシナプス重みを、ビット数Ｎで量子化することを含む、付記１６に記載のコンピュータ読み取り可能な媒体。
【００８４】
（付記１８）
前記第１の値よりも大きい第２の値を有する、前記複数のシナプス重みのうちの少なくとも１つの他のシナプス重みを、細かい分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも１つの他のシナプス重みを、ビット数Ｍで量子化することを含み、ＭはＮよりも大きい、付記１７に記載のコンピュータ読み取り可能な媒体。
【００８５】
（付記１９）
非線形量子化を前記適用することは、非一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００８６】
（付記２０）
非線形量子化を前記適用することは、一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【符号の説明】
【００８７】
６００  コンピューティングデバイス
６１０  プロセッサ
６２０  記憶デバイス
６３０  メモリ
６４０  通信デバイス
【図１Ａ】
2019114231.tif 000003
【図１Ｂ】
2019114231.tif 000004
【図２】
2019114231.tif 000005
【図３】
2019114231.tif 000006
【図４】
2019114231.tif 000007
【図５】
2019114231.tif 000008
【図６】
2019114231.tif 000009
【図７】
2019114231.tif 000010