【誤訳訂正書】
【提出日】令和2年10月14日(2020.10.14)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】０１１５
【訂正方法】変更
【訂正の内容】
【０１１５】
したがって、本例において、低精度重み１１６のセットの各重みについて、機械学習システム１０４を、低精度重み１１６の更新の一部として、機械学習システム１０４が低精度重み１１６のセットの重みを２の指数値の累乗を乗算した符号値（ｓｉｇｎ  ｖａｌｕｅ）に等しくするように決定できるように構成してもよく、この場合、符号値は、高精度重み１１４のセットの対応する重みの符号を表し、指数値は、高精度重み１１４のセットの対応する重みの２を底とする対数に基づく。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】０１５６
【訂正方法】変更
【訂正の内容】
【０１５６】
重みが２の累乗に制限されるとともに機械学習システム１０４が式（２１）に示すような損失関数を計算する例のような一部の例において、各層ｌに対して、機械学習システム１０４は、次の式に従って層ｌのビット深度（すなわち、ｂ（ｌ））を更新してもよい。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】０１９２
【訂正方法】変更
【訂正の内容】
【０１９２】
（すなわち、低精度重み１１６）のセットは、複数の層の各々に対する重みの精度が最適化されたセットを有する。式（２０）のような一部の例において、低精度重み１１６のセットの各重みは整数である。一部の例において、低精度重み１１６のセット各重みは２の累乗である。ビット精度値（ｂ）（すなわち、ビット精度値１１８（図１））のセットは、複数の層の各々に対するビット精度値を有する。複数の層の各々に対して、重み
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】０２１０
【訂正方法】変更
【訂正の内容】
【０２１０】
は、ビット精度値１１８のセットに対する損失関数の偏微分であり、ｓｉｇｎ（・）は、関数の引数の絶対値が予め決定されたしきい値未満でない場合に関数の引数の符号を返すとともに関数の引数の絶対値が予め決定されたしきい値未満である場合に０を返す関数である。
【誤訳訂正５】
【訂正対象書類名】明細書
【訂正対象項目名】０２２９
【訂正方法】変更
【訂正の内容】
【０２２９】
低精度重み１１６のセットが２の整数乗に制限される一部の例において、機械学習システム１０４は、低精度重み１１６のセットの各重みに対して、２の指数値の累乗が乗算された符号値に等しくなる低精度重み１１６のセット重みを決定してもよい。本例において、符号値は、高精度重み１１４のセットの対応する重みの符号を表す。本例において、指数値は、高精度重み１１４のセットの対応する重みの２を底にする対数に基づく。例えば、機械学習システム１０４は、式（１９）に示すように低精度重み１１６の更新されたセットを決定してもよい。
【誤訳訂正６】
【訂正対象書類名】明細書
【訂正対象項目名】０２３３
【訂正方法】変更
【訂正の内容】
【０２３３】
本開示の一部の例において、図２を参照すると、ニューラルネットワークのトレーニング（２０２）の結果としてＤＮＮ１０６を２の累乗に等しくしてもよい。低精度重み１１６が２の累乗に等しくなる例において、推論モード中の計算を、乗算演算の代わりに論理シフト演算を用いることによって簡単化することができる。この結果、ＤＮＮ１０６は、推論モード中に更に効率的にかつ潜在的に更に短い待ち時間で動作する。その理由は、シフト演算が乗算より複雑でないからである。一例において、図３を参照すると、ＢｉｔＮｅｔトレーニングは、動作（３００）〜（３０８）の間に重みを２の整数乗に制限することができる。例えば、動作（３０８）の間に、機械学習システム１０４は、低精度重み１１６の値が２の整数乗となるように低精度重み１１６を更新してもよく、動作（３１０）の間に、低精度重み１１６のセットは、ニューラルネットワークのニューロンの入力の重みとして用いられる。
【誤訳訂正７】
【訂正対象書類名】明細書
【訂正対象項目名】０２３４
【訂正方法】変更
【訂正の内容】
【０２３４】
例えば、動作（３０８）における２の整数乗である値の選択は、選択した重みの量子化を表す。高精度とＢｉｔＮｅｔトレーニングされたニューラルネットワークの間の値の分布の整合を更に良好に行うために、ＢｉｔＮｅｔトレーニングは、量子化が微分不可能である場合でも、学習した重みパラメータのコード化された分布を最良に維持する量子化関数を選択することができる。例えば、動作（３０８）において、機械学習システム１０４は、量子化関数ｓｉｇｎ（ｗ）＊２（ｒｏｕｎｄ（ｌｏｇ｜ｗ｜）を用いてもよく、この場合、ｗは、動作（３０６）で構成された元の浮動小数点重みである。
【誤訳訂正８】
【訂正対象書類名】明細書
【訂正対象項目名】０３３５
【訂正方法】変更
【訂正の内容】
【０３３５】
は、ビット精度値のセットに対する損失関数の偏微分であり、ｓｉｇｎ（・）は、関数の引数の絶対値がしきい値未満であるときに０を返し、そうでないときに関数の引数の符号を返す関数である例４に記載のコンピュータシステム。
【誤訳訂正９】
【訂正対象書類名】明細書
【訂正対象項目名】０３４２
【訂正方法】変更
【訂正の内容】
【０３４２】
は、重みの第２のセットに対する損失関数の偏微分である例４に記載のコンピュータシステム。
【誤訳訂正１０】
【訂正対象書類名】明細書
【訂正対象項目名】０３５８
【訂正方法】変更
【訂正の内容】
【０３５８】
例１３．重みの第１のセットの各重みに対して、機械学習システムは、重みの第１のセットを更新することの一部として、機械学習システムが２の指数値の累乗を乗算した符号の値に等しい重みの第１のセットの重みを決定し、符号の値は、重みの第２のセットの対応する重みの符号を表し、指数値は、重みの第２のセットの対応する重みの対数の底２に基づくように構成された例４に記載のコンピュータシステム。
【誤訳訂正１１】
【訂正対象書類名】明細書
【訂正対象項目名】０３５９
【訂正方法】変更
【訂正の内容】
【０３５９】
例１４．重みのセットの各重みが２の累乗に等しい例１に記載のコンピュータシステム。
【誤訳訂正１２】
【訂正対象書類名】明細書
【訂正対象項目名】０３８２
【訂正方法】変更
【訂正の内容】
【０３８２】
は、ビット精度値のセットに対する損失関数の偏微分であり、ｓｉｇｎ（・）は、関数の引数の絶対値がしきい値未満であるときに０を返し、そうでないときに関数の引数の符号を返す関数である例２１に記載の方法。
【誤訳訂正１３】
【訂正対象書類名】明細書
【訂正対象項目名】０３８９
【訂正方法】変更
【訂正の内容】
【０３８９】
は、重みの第２のセットに対する損失関数の偏微分であることを備える例２１に記載の方法。
【誤訳訂正１４】
【訂正対象書類名】明細書
【訂正対象項目名】０４０５
【訂正方法】変更
【訂正の内容】
【０４０５】
例３０．重みの第１のセットを更新することは、重みの第１のセットの各重みに対して、２の指数値の累乗を乗算した符号の値に等しい重みの第１のセットの重みを決定し、符号の値は、重みの第２のセットの対応する重みの符号を表し、指数値は、重みの第２のセットの対応する重みの対数の底２に基づくことを備える例２１に記載の方法。
【誤訳訂正１５】
【訂正対象書類名】明細書
【訂正対象項目名】０４０６
【訂正方法】変更
【訂正の内容】
【０４０６】
例３１．重みのセットの各重みが２の累乗に等しい例１８に記載の方法。
【誤訳訂正１６】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
計算リソースの要求を減少させるためにディープニューラルネットワーク（ＤＮＮ）をトレーニングするコンピュータシステムであって、
前記ＤＮＮの重みの第１のセット、前記ＤＮＮの重みの第２のセット及びビット精度値のセットを記憶するメモリであって、前記ＤＮＮは、複数の層を有し、前記複数の層の各々に対して、前記重みの第１のセットは、前記層の第１の重みを有し、前記重みの第２のセットは、前記層の第２の重みを有し、前記ビット精度値のセットは、前記層のビット精度値を有し、前記層の第１の重みは、前記層のビット精度値に等しいビット精度を有する値を用いて前記メモリにおいて表され、前記層の第２の重みは、予め規定された最高ビット精度値に等しいビット精度を有する値を用いて前記メモリにおいて表され、前記層の第１の重み及び前記層の第２の重みは、前記層のニューロンに対する入力に関連する、メモリと、
前記ＤＮＮをトレーニングするように構成された機械学習システムを実行する処理回路であって、前記ＤＮＮをトレーニングすることは、損失関数の勾配に基づいて、前記重みの第１のセット、前記重みの第２のセット及び前記ビット精度値のセットを更新することを備える、処理回路と、
を備え、
前記機械学習システムは、更新した前記重みの第２のセット及び更新した前記ビット精度値に基づいて前記重みの第１のセットを更新し、
前記損失関数は、第１の演算対象、第２の演算対象及び第３の演算対象の和として決定され、
前記第１の演算対象は、中間損失関数であり、
前記第２の演算対象は、第１のハイパーパラメータの値と、前記機械学習システムが前記重みの第１のセットを用いるとともに前記重みの第２のセットを用いて第１の入力データセットで前記ＤＮＮを実行するときに前記ＤＮＮによって生成された出力の使用の間の差を表す蒸留損失との積に等しく、
前記第３の演算対象は、第２のハイパーパラメータの値と、前記複数の層の各層に対応する項の和との積に等しく、前記複数の層の各層に対して、各層に対応する項は、２の各層のビット精度値の累乗に等しい、コンピュータシステム。
【請求項２】
前記ＤＮＮの層の二つ以上は、互いに異なるビット精度値を有する請求項１に記載のコンピュータシステム。
【請求項３】
前記重みの第２のセットは、前記複数の層の各層に対する一定の精度の重みのセットを有し、
前記機械学習システムは、前記ＤＮＮをトレーニングすることの一部として、前記機械学習システムが前記ＤＮＮをトレーニングするための複数の繰り返しを実行するように構成され、前記機械学習システムは、前記複数の繰り返しを実行することの一部として、前記機械学習システムが前記複数の繰り返しの各繰り返しに対して、
第１の入力データセットに基づいて第１の出力データセットを計算するために前記第２のセットの重みを前記ＤＮＮのニューロンの入力の重みとして用い、
前記損失関数を計算し、
更新した前記重みの第２のセットを決定するために、前記損失関数に基づいて前記重みの第２のセットを更新し、
更新した前記ビット精度値のセットを決定するために、前記損失関数に基づいて前記ビット精度値のセットを更新し、
前記重みの第２のセットを更新した後及び前記ビット精度値のセットを更新した後、更新した第２のセットの重み及び更新したビット精度値のセットに基づいて前記重みの第１のセットを更新するように構成され、
前記機械学習システムは、第２の入力データセットに基づいて第２の出力データセットを計算するために、前記第１のセットの重みを前記ＤＮＮのニューロンの入力の重みとして用いるように更に構成された請求項１に記載のコンピュータシステム。
【請求項４】
前記第１の入力データセットは、トレーニングデータラベル対のバッチを備え、
前記機械学習システムは、前記第１の演算対象を決定することの一部として前記機械学習システムが
【数１】
2019164793.tif 000001
に等しくなるような前記第１の演算対象を決定し、Ｂは、前記トレーニングデータラベル対のバッチのデータラベル対の総数であり、前記トレーニングデータラベル対のバッチの各ラベルは、Ｂ個のラベルを有するラベルのセットの要素であり、ｉは、添え字であり、ｌｏｇ（・）は、対数関数であり、Ｎは、前記複数の層の総数であり、ｙｉは、前記ラベルのセットのｉ番目のラベルであり、
【数２】
2019164793.tif 000002
は、前記ＤＮＮが前記トレーニングデータラベル対のバッチのｉ番目のデータラベル対のデータの入力として与えられるときに前記複数の層のＮ番目の層の出力であるように構成され、
前記トレーニングデータラベル対のバッチのデータラベル対は、独立の一様分布したデータラベル対であり、
前記ビット精度値のセットを更新することの一部として、前記機械学習システムは、
【数３】
2019164793.tif 000003
に等しくなるように前記更新したビット精度値のセットを決定し、ｂは、前記ビット精度値のセットであり、
【数４】
2019164793.tif 000004
は、前記重みの第１のセットであり、
【数５】
2019164793.tif 000005
は、前記ビット精度値のセットに対する前記損失関数の偏微分であり、ｓｉｇｎ（・）は、関数の引数の絶対値がしきい値未満のときに０を返し、そうでないときに関数の引数の符号を返す関数であり、
前記重みの第２のセットを更新することの一部として、前記機械学習システムは、
【数６】
2019164793.tif 000006
に等しくなるように前記更新した重みの第２のセットを決定し、Ｗは、前記重みの第２のセットであり、μは、学習率であり、
【数７】
2019164793.tif 000007
は、前記重みの第１のセットであり、
【数８】
2019164793.tif 000008
は、前記重みの第２のセットに対する前記損失関数の偏微分である請求項３に記載のコンピュータシステム。
【請求項５】
前記機械学習システムは、前記重みの第１のセットを更新することの一部として、前記機械学習システムが前記複数の層の各層に対して各層の更新した最適精度の重みが
【数９】
2019164793.tif 000009
に等しくなるように更新した重みの第１のセットを決定し、αは、層の前記一定の精度の重みのセットの最小重みであり、Ｗは、層の前記一定の精度の重みのセットであり、δは、層の前記一定の精度の重みのセットの最小重みから層の前記一定の精度の重みのセットの最大重みまでの離散化された範囲の一定のステップの総数であり、ｒｏｕｎｄ（・）は、丸め関数であるように構成された請求項３に記載のコンピュータシステム。
【請求項６】
前記重みの第１のセットの各重みに対して、前記機械学習システムは、前記重みの第１のセットを更新することの一部として、前記機械学習システムが２の指数値の累乗を乗算した符号の値に等しい前記重みの第１のセットの重みを決定し、前記符号の値は、前記重みの第２のセットの対応する重みの符号を表し、前記指数値は、前記重みの第２のセットの対応する重みの対数の底２に基づくように構成された請求項３に記載のコンピュータシステム。
【請求項７】
前記重みのセットの各重みが２の累乗に等しい請求項１に記載のコンピュータシステム。
【請求項８】
前記重みの第１のセットの各重みは、指数値及び符号値を用いることによって前記メモリにおいて表される請求項７に記載のコンピュータシステム。
【請求項９】
前記機械学習システムは、システムアーキテクチャを記述するシステムアーキテクチャパラメータに基づいて前記ＤＮＮをトレーニングするように構成された請求項１に記載のコンピュータシステム。
【請求項１０】
前記機械学習システムは、
システムアーキテクチャのプロセッサを記述するデータを有するシステムアーキテクチャパラメータを取得し、
前記システムアーキテクチャパラメータに基づいて、前記ＤＮＮを有するニューラルネットワークソフトウェアアーキテクチャ及び前記システムアーキテクチャの前記プロセッサに対する前記ニューラルネットワークソフトウェアアーキテクチャのＤＮＮのマッピングを決定するように構成され、
前記ニューラルネットワークソフトウェアアーキテクチャの前記ＤＮＮに対してマッピングされる前記システムアーキテクチャの前記プロセッサは、前記ニューラルネットワークソフトウェアアーキテクチャの前記ＤＮＮを実行するように構成された請求項１に記載のコンピュータシステム。
【請求項１１】
計算リソースの要求を減少させるためにディープニューラルネットワーク（ＤＮＮ）をトレーニングする方法であって、
前記ＤＮＮの重みの第１のセット、前記ＤＮＮの重みの第２のセット及びビット精度値のセットを記憶することであって、前記ＤＮＮは、複数の層を有し、前記複数の層の各々に対して、
前記重みの第１のセットは、前記層の第１の重みを有し、前記重みの第２のセットは、前記層の第２の重みを有し、前記ビット精度値のセットは、前記層のビット精度値を有し、前記層の第１の重みは、前記層のビット精度値に等しいビット精度を有する値を用いてメモリにおいて表され、前記層の第２の重みは、予め規定された最高ビット精度値に等しいビット精度を有する値を用いて前記メモリにおいて表され、前記層の第１の重み及び前記層の第２の重みは、前記層のニューロンに対する入力に関連する、ことと、
前記ＤＮＮをトレーニングするように構成された機械学習システムを実行することであって、前記ＤＮＮをトレーニングすることは、損失関数の勾配に基づいて、前記重みの第１のセット、前記重みの第２のセット及び前記ビット精度値のセットを更新することを備えることと、
を備え、
前記機械学習システムは、更新した前記重みの第２のセット及び更新した前記ビット精度値に基づいて前記重みの第１のセットを更新し、
前記損失関数は、第１の演算対象、第２の演算対象及び第３の演算対象の和として決定され、
前記第１の演算対象は、中間損失関数であり、
前記第２の演算対象は、第１のハイパーパラメータの値と、前記機械学習システムが前記重みの第１のセットを用いるとともに前記重みの第２のセットを用いて第１の入力データセットで前記ＤＮＮを実行するときに前記ＤＮＮによって生成された出力の使用の間の差を表す蒸留損失との積に等しく、
前記第３の演算対象は、第２のハイパーパラメータの値と、前記複数の層の各層に対応する項の和との積に等しく、前記複数の層の各層に対して、各層に対応する項は、２の各層のビット精度値の累乗に等しい、方法。
【請求項１２】
前記ＤＮＮの層の二つ以上は、異なるビット精度値を有する請求項１１に記載の方法。
【請求項１３】
前記重みの第２のセットは、前記複数の層の各層に対する一定の精度の重みのセットを有し、
前記ＤＮＮをトレーニングすることは、前記ＤＮＮをトレーニングするための複数の繰り返しを実行することを更に備え、前記複数の繰り返しを実行することは、前記複数の繰り返しの各繰り返しに対して、
第１の入力データセットに基づいて第１の出力データセットを計算するために前記第２のセットの重みを前記ＤＮＮのニューロンの入力の重みとして用いることと、
損失関数を計算することと、
更新した前記重みの第２のセットを決定するために、前記損失関数に基づいて前記重みの第２のセットを更新することと、
更新した前記ビット精度値のセットを決定するために、前記損失関数に基づいて前記ビット精度値のセットを更新することと、
前記重みの第２のセットを更新した後及び前記ビット精度値のセットを更新した後、更新した第２のセットの重み及び更新したビット精度値のセットに基づいて前記重みの第１のセットを更新することと、を備え、
第２の入力データセットに基づいて第２の出力データセットを計算するために前記第１のセットの重みを前記ＤＮＮのニューロンの入力の重みとして用いることを更に備える請求項１１に記載の方法。
【請求項１４】
実行のときに、
ディープニューラルネットワーク（ＤＮＮ）の重みの第１のセット、前記ＤＮＮの重みの第２のセット及びビット精度値のセットをメモリに記憶することであって、前記ＤＮＮは、複数の層を有し、前記複数の層の各々に対して、前記重みの第１のセットは、前記層の第１の重みを有し、前記重みの第２のセットは、前記層の第２の重みを有し、前記ビット精度値のセットは、前記層のビット精度値を有し、前記層の第１の重みは、前記層のビット精度値に等しいビット精度を有する値を用いて前記メモリにおいて表され、前記層の第２の重みは、予め規定された最高ビット精度値に等しいビット精度を有する値を用いて前記メモリにおいて表され、前記層の第１の重み及び前記層の第２の重みは、前記層のニューロンに対する入力に関連することと、
前記ＤＮＮをトレーニングするように構成された機械学習システムを実行することであって、前記ＤＮＮをトレーニングすることは、損失関数の勾配に基づいて、前記重みの第１のセット、前記重みの第２のセット及び前記ビット精度値のセットを更新することを備えることと、
を一つ以上のプロセッサによって実行させる命令を記憶し、
前記機械学習システムは、更新した前記重みの第２のセット及び更新した前記ビット精度値に基づいて前記重みの第１のセットを更新し、
前記損失関数は、第１の演算対象、第２の演算対象及び第３の演算対象の和として決定され、
前記第１の演算対象は、中間損失関数であり、
前記第２の演算対象は、第１のハイパーパラメータの値と、前記機械学習システムが前記重みの第１のセットを用いるとともに前記重みの第２のセットを用いて第１の入力データセットで前記ＤＮＮを実行するときに前記ＤＮＮによって生成された出力の使用の間の差を表す蒸留損失との積に等しく、
前記第３の演算対象は、第２のハイパーパラメータの値と、前記複数の層の各層に対応する項の和との積に等しく、前記複数の層の各層に対して、各層に対応する項は、２の各層のビット精度値の累乗に等しい、コンピュータ可読データ記憶媒体。