(57)【要約】【課題】演算の処理負担を軽減すると共により精度の高い学習を実現する。【解決手段】ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、前記ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化する学習部、を備える、情報処理装置が提供される。また、プロセッサが、ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、前記ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化すること、を含む、情報処理方法が提供される。【選択図】図１
2019220755.tif 000002
【特許請求の範囲】
【請求項１】
ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、前記ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化する学習部、
を備える、
情報処理装置。
【請求項２】
前記ダイナミックレンジを決定するパラメータは、少なくとも量子化時のビット長を含む、
請求項１に記載の情報処理装置。
【請求項３】
前記ダイナミックレンジを決定するパラメータは、べき乗量子化時の上限値または下限値を含む、
請求項２に記載の情報処理装置。
【請求項４】
前記ダイナミックレンジを決定するパラメータは、線形量子化時のステップサイズを含む、
請求項２に記載の情報処理装置。
【請求項５】
前記学習部は、前記ダイナミックレンジを決定するパラメータを、レイヤーごとに最適化する、
請求項１に記載の情報処理装置。
【請求項６】
前記学習部は、前記ダイナミックレンジを決定するパラメータを、複数のレイヤーに共通して最適化する、
請求項１に記載の情報処理装置。
【請求項７】
前記学習部は、前記ダイナミックレンジを決定するパラメータを、ニューラルネットワーク全体に共通して最適化する、
請求項１に記載の情報処理装置。
【請求項８】
前記学習部により最適化された前記ダイナミックレンジを決定するパラメータを出力するインタフェースを制御する入出力制御部、
をさらに備える、
請求項１に記載の情報処理装置。
【請求項９】
前記入出力制御部は、前記インタフェースを介してユーザにより入力された初期値を取得し、前記初期値に基づいて最適化された前記ダイナミックレンジを決定するパラメータを出力する、
請求項８に記載の情報処理装置。
【請求項１０】
前記入出力制御部は、前記インタフェースを介してユーザにより入力されたビット長の初期値を取得し、前記ビット長の初期値に基づいて最適化された量子化時のビット長を出力する、
請求項９に記載の情報処理装置。
【請求項１１】
前記入出力制御部は、前記インタフェースを介してユーザにより入力された量子化に係る設定を取得し、前記設定に基づいて最適化された前記ダイナミックレンジを決定するパラメータを出力する、
請求項８に記載の情報処理装置。
【請求項１２】
前記量子化に係る設定は、量子化後の値がマイナス値となることを許容するか否かの設定を含む、
請求項１１に記載の情報処理装置。
【請求項１３】
前記量子化に係る設定は、量子化後の値が０となることを許容するか否かの設定を含む、
請求項１１に記載の情報処理装置。
【請求項１４】
前記量子化関数は、重み、バイアス、または中間値のうち少なくともいずれかの量子化に用いられる、
請求項１に記載の情報処理装置。
【請求項１５】
プロセッサが、ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、前記ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化すること、
を含む、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
近年、脳神経系の仕組みを模した数学モデルであるニューラルネットワークが注目されている。また、ニューラルネットワークにおける演算の処理負担を軽減するための種々の手法が提案されている。例えば、非特許文献１には、学習時における中間値や重みの量子化を精度高く実現する量子化関数に係る記載が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Anonymous authors、“PACT: PARAMETERIZED CLIPPING ACTIVATION FOR QUANTIZED NEURALNETWORKS”、［ｏｎｌｉｎｅ］、２０１８年２月１６日、Under reviewas a conference paper at ICLR 2018、［平成３０年５月９日検索］、インターネット〈URL: https://openreview.net/pdf?id=By5ugjyCb〉
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、非特許文献１に記載の量子化関数では、量子化に係るダイナミックレンジの考慮が十分とはいえない。このため、非特許文献１に記載の量子化関数では、ダイナミックレンジを最適化することが困難である。【０００５】
そこで、本開示では、演算の処理負担を軽減すると共により精度の高い学習を実現することが可能な、新規かつ改良された情報処理装置および情報処理方法を提案する。
【課題を解決するための手段】
【０００６】
本開示によれば、ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、前記ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化する学習部、を備える、情報処理装置が提供される。【０００７】
また、本開示によれば、プロセッサが、ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、前記ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化すること、を含む、情報処理方法が提供される。
【発明の効果】
【０００８】
以上説明したように本開示によれば、演算の処理負担を軽減すると共により精度の高い学習を実現することが可能となる。【０００９】
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１０】
【図１】本開示の一実施形態に係るパラメータの最適化について説明するための図である。
【図２】同実施形態に係るパラメータの最適化について説明するための図である。
【図３】同実施形態に係る情報処理装置の機能構成例を示すブロック図である。
【図４】同実施形態に係る学習部による学習シーケンスについて説明するための図である。
【図５】同実施形態に係る量子化関数を用いた学習パラメータの量子化について説明するための計算グラフである。
【図６】同実施形態に係る量子化関数に係る逆伝播について説明するための図である。
【図７】同実施形態に係る重み量子化時におけるベストヴァリデーションエラーの結果である。
【図８】同実施形態に係る重みの線形量子化を行った際のビット長ｎの変化を観察したグラフである。
【図９】同実施形態に係る重みの線形量子化を行った際のステップサイズδの変化を観察したグラフである。
【図１０】同実施形態に係る０を許容しない重みの２べき乗量子化を行った際のビット長ｎおよび上限値の変化を観察したグラフである。
【図１１】同実施形態に係る０を許容する重みの２べき乗量子化を行った際のビット長ｎおよび上限値の変化を観察したグラフである。
【図１２】同実施形態に係る中間値の量子化におけるベストヴァリデーションエラーの結果である。
【図１３】同実施形態に係る中間値の量子化を行った際の各パラメータの変化を観察したグラフである。
【図１４】同実施形態に係る重みと中間値の量子化を同時に行った場合のベストヴァリデーションエラーの結果である。
【図１５】同実施形態に係る重みと中間値の量子化を同時に行った場合の重みの線形量子化に係る各パラメータの変化を観察したグラフである。
【図１６】同実施形態に係る重みと中間値の量子化を同時に行った場合の中間値の線形量子化に係る各パラメータの変化を観察したグラフである。
【図１７】同実施形態に係る重みと中間値の量子化を同時に行った場合の重みの２べき乗量子化に係る各パラメータの変化を観察したグラフである。
【図１８】同実施形態に係る重みと中間値の量子化を同時に行った場合の中間値の２べき乗量子化に係る各パラメータの変化を観察したグラフである。
【図１９】同実施形態に係る線形量子化を行う場合のＡＰＩについて説明するための図である。
【図２０】同実施形態に係る２べき乗量子化を行う場合のＡＰＩについて説明するための図である。
【図２１】同実施形態に係る同一のパラメータを用いて量子化を行う場合のＡＰＩの記載例である。
【図２２】本開示の一実施形態に係る情報処理装置のハードウェア構成例を示す図である。
【図２３】量子化関数を用いて行われる量子化の一例を示す図である。
【図２４】量子化関数を用いて行われる量子化の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１２】
なお、説明は以下の順序で行うものとする。
１．実施形態
１．１．概要
１．２．情報処理装置１０の機能構成例
１．３．最適化の詳細
１．４．効果
１．５．ＡＰＩの詳細
２．ハードウェア構成例
３．まとめ
【００１３】
＜１．実施形態＞
＜＜１．１．概要＞＞
近年、深層学習（Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ）などニューラルネットワークを用いた学習手法が広く研究されている。ニューラルネットワークを用いた学習手法は高い精度を有する一方、演算に係る処理負担が大きいことから、当該処理負担を効果的に軽減する演算方式が求められている。
【００１４】
このため、近年においては、例えば、重みやバイアスなどをパラメータを数ビットに量子化することで演算の効率化や省メモリ化などを図る量子化手法が多く提案されている。上記の量子化手法としては、例えば、線形量子化やべき乗量子化などが挙げられる。
【００１５】
例えば、線形量子化の場合、ｆｌｏａｔとして入力される入力値ｘを、下記の数式（１）に示す量子化関数などを用いて量子化を行うことでｉｎｔ化し、演算の効率化や省メモリ化などの効果を得ることができる。なお、数式（１）は、量子化後の値がマイナス値となることを許容しない場合（ｓｉｇｎ＝Ｆａｌｓｅ）に用いられる量子化関数であってよい。また、数式（１）におけるｎはビット長を、δはステップサイズを、それぞれ示す。
【００１６】
【数１】
2019220755.tif 000003
【００１７】
また、例えば、２べき乗量子化では、下記の数式（２）に示す量子化関数などが用いられ得る。なお、数式（２）は、量子化後の値がマイナス値または０（ｓｉｇｎ＝Ｆａｌｓｅ，  ｚｅｒｏ＝Ｆａｌｓｅ）となることを許容しない場合に用いられる量子化関数であってよい。また、数式（２）におけるｎはビット長を、ｍは上（下）限値を、それぞれ示す。
【００１８】
【数２】
2019220755.tif 000004
【００１９】
図２３および図２４は、上記のような量子化関数を用いて行われる量子化の一例を示す図である。図２３の左側には、点線で示される入力値を（Ｓｉｇｎ＝Ｆａｌｓｅ，  ｚｅｒｏ＝Ｔｒｕｅ）の条件で線形量子化した際の出力値が実線で示されている。ただし、この際、ビット長ｎ＝４、ステップサイズδ＝０．２５である。
【００２０】
また、図２３の右側には、点線で示される入力値を（Ｓｉｇｎ＝Ｆａｌｓｅ，  ｚｅｒｏ＝Ｔｒｕｅ）の条件で２べき乗量子化した際の出力値が実線で示されている。ただし、この際、ビット長ｎ＝４、上限値ｍ＝１である。
【００２１】
また、図２４の左側には、点線で示される入力値を（Ｓｉｇｎ＝Ｔｒｕｅ，  ｚｅｒｏ＝Ｔｒｕｅ）の条件で線形量子化した際の出力値が実線で示されている。ただし、この際、ビット長ｎ＝４、ステップサイズδ＝０．２５である。
【００２２】
また、図２４の右側には、点線で示される入力値を（Ｓｉｇｎ＝Ｔｒｕｅ，  ｚｅｒｏ＝Ｔｒｕｅ）の条件で２べき乗量子化した際の出力値が実線で示されている。ただし、この際、ビット長ｎ＝４、上限値ｍ＝１である。
【００２３】
このように、線形量子化やべき乗量子化などの量子化手法によれば、入力値をより少ないビット長で表現することで、演算の効率化や省メモリ化を実現することが可能である。
【００２４】
しかし、近年におけるニューラルネットワークは、数十〜数百のレイヤーを有するのが一般的である。ここで、例えば、レイヤー数が２０のニューラルネットワークにおいて、２べき乗量子化で、重み係数、中間値、バイアスを量子化し、ビット長を[２，８]、上限値を[−１６，１６]まで試行する場合を想定する。この場合、パラメータの量子化は、（７×３３）×２＝４６２通り、中間値の量子化は、７×３３＝２３１通りとなり、合計で（４６２×２３１）＾２０通りのパターンが存在することとなる。
【００２５】
このため、真に最適なハイパーパラメータを人手で求めることは、現実的に困難であった。
【００２６】
本開示に係る技術思想は、上記の点に着目して発想されたものであり、精度の高い量子化を実現するハイパーパラメータを自動で探索することを可能とする。このために、本開示の一実施形態に係る情報処理方法を実現する情報処理装置１０は、ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化する学習部１１０を備える。
【００２７】
ここで、上記のダイナミックレンジを決定するパラメータは、少なくとも量子化時のビット長を含んでよい。
【００２８】
また、上記のダイナミックレンジを決定するパラメータは、量子化時のビット長と共にダイナミックレンジの決定に影響する種々のパラメータを含んでよい。当該パラメータには、例えば、べき乗量子化時の上限値または下限値や、線形量子化時のステップサイズなどが挙げられる。
【００２９】
すなわち、本実施形態に係る情報処理装置１０は、特定の量子化手法に依らず、種々の量子化関数においてダイナミックレンジの決定に影響する複数のパラメータを最適化することが可能である。
【００３０】
また、本実施形態に係る情報処理装置１０は、例えば、ユーザによる設定などに基づいて、上記のようなパラメータをローカルまたはグローバルに最適化してよい。
【００３１】
図１および図２は、本実施形態に係るパラメータの最適化について説明するための図である。本実施形態に係る情報処理装置１０は、例えば、図１の上段に示すように、２べき乗量子化におけるビット長ｎおよび上限値ｍを、ＣｏｎｖｏｌｕｔｉｏｎレイヤーやＡｆｆｉｎｅレイヤーごとに最適化してもよい。
【００３２】
一方、本実施形態に係る情報処理装置１０は、ダイナミックレンジを決定するパラメータを、複数のレイヤーに共通して最適化してもよい。本実施形態に係る情報処理装置１０は、例えば、図１の下段に示すように、２べき乗量子化におけるビット長ｎおよび上限値ｍを、ニューラルネットワーク全体に共通して最適化してもよい。
【００３３】
また、情報処理装置１０は、例えば、図２に示すように、複数のレイヤーを含むブロックごとに上記のパラメータを最適化することも可能である。本実施形態に係る情報処理装置１０は、後述するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）により取得したユーザの設定に基づいて、上記のような最適化を行うことが可能である。
【００３４】
以下、本実施形態に係る情報処理装置１０が有する上記の機能について詳細に説明する。
【００３５】
＜＜１．２．情報処理装置１０の機能構成例＞＞
まず、本開示の一実施形態に係る情報処理装置１０の機能構成例について説明する。図３は、本実施形態に係る情報処理装置１０の機能構成例を示すブロック図である。図１を参照すると、本実施形態に係る情報処理装置１０は、学習部１１０、入出力制御部１２０、および記憶部１３０を備える。なお、本実施形態に係る情報処理装置１０は、ネットワークを介して、ユーザが操作を行う情報処理端末と接続されてよい。
【００３６】
上記のネットワークは、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ｅｔｈｅｒｎｅｔ（登録商標）を含む各種のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを含んでもよい。また、ネットワーク３０は、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などの専用回線網を含んでもよい。また、ネットワーク３０は、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）など無線通信網を含んでもよい。
【００３７】
（学習部１１０）
本実施形態に係る学習部１１０は、ニューラルネットワークを用いて各種の学習を行う機能を有する。また、本実施形態に係る学習部１１０は、量子化関数を用いて学習時における重みやバイアスなどの量子化を行う。
【００３８】
この際、本実施形態に係る学習部１１０は、ダイナミックレンジを決定するパラメータを引数とする量子化関数において、ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化すること、を特徴の一つとする。本実施形態に係る学習部１１０の機能については別途詳細に説明する。
【００３９】
（入出力制御部１２０）
本実施形態に係る入出力制御部１２０は、学習部１１０による学習や量子化に係る設定をユーザが行うためのＡＰＩを制御する。本実施形態に係る入出力制御部１２０は、上記ＡＰＩを介してユーザが入力した各種の値を取得し、学習部１１０に引き渡す。また、本実施形態に係る入出力制御部１２０は、上記各種の値に基づいて最適化されたパラメータなどをＡＰＩを介してユーザに提示することができる。本実施形態に係る入出力制御部が有する機能の詳細については別途後述する。
【００４０】
（記憶部１３０）
本実施形態に係る記憶部１３０は、情報処理装置１０が備える各構成で用いられるプログラムやデータなどを記憶する機能を有する。本実施形態に係る記憶部１３０は、例えば、学習部１１０による学習や量子化に用いられる各種のパラメータなどを記憶する。
【００４１】
以上、本実施形態に係る情報処理装置１０の機能構成例について説明した。なお、図２を用いて説明した上記の構成はあくまで一例であり、本実施形態に係る情報処理装置１０の機能構成は係る例に限定されない。本実施形態に係る情報処理装置１０の機能構成は、仕様や運用に応じて柔軟に変形可能である。
【００４２】
＜＜１．３．最適化の詳細＞＞
次に、本実施形態に係る学習部１１０によるパラメータの最適化について詳細に説明する。まず、本実施形態に係る学習部１１０が量子化を行う対象について述べる。図４は、本実施形態に係る学習部１１０による学習シーケンスについて説明するための図である。
【００４３】
本実施形態に係る学習部１１０は、図４に示すように、誤差逆伝播法により各種の学習を行う。学習部１１０は、図４の上段に示すように順方向において、上流のレイヤーから出力された中間値と、重みｗやバイアスｂなどの学習パラメータに基づいて内積演算などを行い、演算結果を下流のレイヤーに対し出力することで順伝播を行う。
【００４４】
また、本実施形態に係る学習部１１０は、図４の下段に示すように逆方向において、下流のレイヤーから出力されるパラメータ勾配に基づいて重みやバイアスなどの学習パラメータの偏微分を計算することで逆伝播を行う。
【００４５】
また、本実施形態に係る学習部１１０は、確率的勾配降下法により、誤差が最小となるように重みやバイアスなどの学習パラメータを更新する。この際、本実施形態に係る学習部１１０は、例えば、下記の数式（３）などにより学習パラメータの更新を行うことができる。なお、数式（３）には、重みｗを更新する場合の式を示しているが、他のパラメータについても同様の計算により更新可能である。数式（３）におけるＣはＣｏｓｔを、ｔはｉｔｅｒａｔｉｏｎを示す。
【００４６】
【数３】
2019220755.tif 000005
【００４７】
このように、本実施形態に係る学習部１１０は、順伝播、逆伝播、および学習パラメータの更新を行うことで、学習を進める。この際、本実施形態に係る学習部１１０は、上述した重みｗやバイアスなどの学習パラメータを量子化関数を用いて量子化することで、演算負荷を軽減することができる。
【００４８】
図５は、本実施形態に係る量子化関数を用いた学習パラメータの量子化について説明するための計算グラフである。図５に示すように、本実施形態に係る学習部１１０は、ｆｌｏａｔ型で保持される重みｗを、量子化関数によりｉｎｔ型の重みｗｑに量子化する。
【００４９】
この際、本実施形態に係る学習部１１０は、同様に、ｆｌｏａｔ型からｉｎｔ型に量子化されたビット長ｎｑや、上限値ｍｑに基づいて、ｆｌｏａｔ型の重みｗを、ｉｎｔ型の重みｗｑに量子化することができる。
【００５０】
また、図６は、本実施形態に係る量子化関数に係る逆伝播について説明するための図である。図５や６に示す「Ｑｕａｎｔｉｚｅ」や「Ｒｏｕｎｄ」などの量子化関数では、解析的に微分が不可能である場合が多い。このため、上記のような量子化関数に係る逆伝播において、本実施形態に係る学習部１１０は、ＳＴＥ（Ｓｔｒａｉｇｈｔ  Ｔｈｒｏｕｇｈ  Ｅｓｔｉｍａｔｏｒ）により近似関数の微分結果に置き換えを行ってよい。最も単純な場合、学習部１１０は、量子化関数の微分結果を線形関数の微分結果に置き換えてもよい。
【００５１】
以上、本実施形態に係る学習部１１０による学習と量子化について概要を述べた。続いて、本実施形態＊に係る学習部１１０によるダイナミックレンジを決定するパラメータの最適化について詳細に説明する。
【００５２】
なお、以下では、本実施形態に係る学習部１１０が、線形量子化および２べき乗量子化において、ダイナミックレンジを決定するパラメータの最適化を行う場合の計算について一例を示す。
【００５３】
また、下記においては、線形量子化において量子化される値を、下記の数式（４）により示す。この際、本実施形態に係る学習部１１０は、ビット長ｎ、およびステップサイズδを、上記のダイナミックレンジを決定するパラメータとして最適化する。
【００５４】
【数４】
2019220755.tif 000006
【００５５】
また、下記においては、２べき乗量子化において量子化される値を、下記の数式（５）により示す。この際、本実施形態に係る学習部１１０は、ビット長ｎ、および上（下）限値を、上記のダイナミックレンジを決定するパラメータとして最適化する。
【００５６】
【数５】
2019220755.tif 000007
【００５７】
また、量子化およびダイナミックレンジを決定するパラメータの最適化は、ＡｆｆｉｎｅレイヤーまたはＣｏｎｖｏｌｕｔｉｏｎレイヤーで行うものとする。
【００５８】
また、与えられる勾配は、スカラー値の入出力に関するものとし、コスト関数Ｃに係るλ∈｛ｎ，ｍ，δ｝は、連鎖律により与えられる。
【００５９】
ここで、スカラー値の入力ｘ∈Ｒに対する出力ｙ∈Ｒもまたスカラー値であり、パラメータに係るコスト関数Ｃの勾配は、下記の数式（６）により表される。
【００６０】
【数６】
2019220755.tif 000008
【００６１】
また、ベクトル値の入力ｘ∈ＲＩに対する出力ｙ∈ＲＩもまたベクトル値であり、パラメータに係るコスト関数Ｃの勾配は、λに基づくすべての出力ｙｉとして下記の数式（７）により表される。
【００６２】
【数７】
2019220755.tif 000009
【００６３】
以上、本実施形態に係るダイナミックレンジを決定するパラメータの最適化に関する前提について述べた。続いて、各量子化手法における上記パラメータの最適化について詳細に説明する。
【００６４】
まず、本実施形態に係る学習部１１０によるマイナス値を許容しない線形量子化に係る上記パラメータの最適化について説明する。ここで順伝播におけるビット長ｎおよびステップサイズδは、それぞれ［ｍｉｎｎ，ｍａｘｎ］、［ｍｉｎδ，ｍａｘδ］とし、ｒｏｕｎｄ関数によりｉｎｔ型に量子化されるビット長ｎをｎｑとする。この際、入力値の量子化は下記の数式（８）により表される。
【００６５】
【数８】
2019220755.tif 000010
【００６６】
また、逆伝播においてビット長ｎの勾配およびステップサイズδの勾配は、それぞれ下記の数式（９）および（１０）により表される。
【００６７】
【数９】
2019220755.tif 000011
【００６８】
次に、本実施形態に係る学習部１１０によるマイナス値を許容する線形量子化に係る上記パラメータの最適化について説明する。ここで順伝播におけるビット長ｎおよびステップサイズδは、それぞれ［ｍｉｎｎ，ｍａｘｎ］、［ｍｉｎδ，ｍａｘδ］とし、ｒｏｕｎｄ関数によりｉｎｔ型に量子化されるビット長ｎをｎｑとする。この際、入力値の量子化は下記の数式（１１）により表される。
【００６９】
【数１０】
2019220755.tif 000012
【００７０】
また、逆伝播においてビット長ｎの勾配およびステップサイズδの勾配は、それぞれ下記の数式（１２）および（１３）により表される。
【００７１】
【数１１】
2019220755.tif 000013
【００７２】
次に、本実施形態に係る学習部１１０によるマイナス値および０を許容しない２べき乗量子化に係る上記パラメータの最適化について説明する。ここで順伝播におけるビット長ｎおよび上（下）限値ｍは、それぞれ［ｍｉｎｎ，ｍａｘｎ］、［ｍｉｎｍ，ｍａｘｍ］とし、ｒｏｕｎｄ関数によりｉｎｔ型に量子化されるビット長ｎおよび上（下）限値ｍを、それぞれｎｑおよびｍｑとする。この際、入力値の量子化は下記の数式（１４）により表される。
【００７３】
【数１２】
2019220755.tif 000014
【００７４】
なお、上記の数式（１４）や以降の２べき乗量子化に係る数式における０．５の値は下限値との差別化に用いられる値であり、０．５に限らず、例えば、ｌｏｇ２１．５などであってもよい。
【００７５】
また、逆伝播においてビット長ｎの勾配は、下記の数式（１５）に示される条件を除いてすべて０となり、上（下）限値ｍの勾配は、下記の数式（１６）により表される。
【００７６】
【数１３】
2019220755.tif 000015
【００７７】
次に、本実施形態に係る学習部１１０によるマイナス値を許容し０を許容しない２べき乗量子化に係る上記パラメータの最適化について説明する。ここで順伝播におけるビット長ｎおよび上（下）限値ｍは、それぞれ［ｍｉｎｎ，ｍａｘｎ］、［ｍｉｎｍ，ｍａｘｍ］とし、ｒｏｕｎｄ関数によりｉｎｔ型に量子化されるビット長ｎおよび上（下）限値ｍを、それぞれｎｑおよびｍｑとする。この際、入力値の量子化は下記の数式（１７）により表される。
【００７８】
【数１４】
2019220755.tif 000016
【００７９】
また、逆伝播においてビット長ｎの勾配は、下記の数式（１８）に示される条件を除いてすべて０となり、上（下）限値ｍの勾配は、下記の数式（１９）により表される。
【００８０】
【数１５】
2019220755.tif 000017
【００８１】
次に、本実施形態に係る学習部１１０によるマイナス値を許容せず０を許容する２べき乗量子化に係る上記パラメータの最適化について説明する。ここで順伝播におけるビット長ｎおよび上（下）限値ｍは、それぞれ［ｍｉｎｎ，ｍａｘｎ］、［ｍｉｎｍ，ｍａｘｍ］とし、ｒｏｕｎｄ関数によりｉｎｔ型に量子化されるビット長ｎおよび上（下）限値ｍを、それぞれｎｑおよびｍｑとする。この際、入力値の量子化は下記の数式（２０）により表される。
【００８２】
【数１６】
2019220755.tif 000018
【００８３】
また、逆伝播においてビット長ｎの勾配は、下記の数式（２１）に示される条件を除いてすべて０となり、上（下）限値ｍの勾配は、下記の数式（２２）により表される。
【００８４】
【数１７】
2019220755.tif 000019
【００８５】
次に、本実施形態に係る学習部１１０によるマイナス値と０を共に許容する２べき乗量子化に係る上記パラメータの最適化について説明する。ここで順伝播におけるビット長ｎおよび上（下）限値ｍは、それぞれ［ｍｉｎｎ，ｍａｘｎ］、［ｍｉｎｍ，ｍａｘｍ］とし、ｒｏｕｎｄ関数によりｉｎｔ型に量子化されるビット長ｎおよび上（下）限値ｍを、それぞれｎｑおよびｍｑとする。この際、入力値の量子化は下記の数式（２３）により表される。
【００８６】
【数１８】
2019220755.tif 000020
【００８７】
また、逆伝播においてビット長ｎの勾配は、下記の数式（２４）に示される条件を除いてすべて０となり、上（下）限値ｍの勾配は、下記の数式（２５）により表される。
【００８８】
【数１９】
2019220755.tif 000021
【００８９】
＜＜１．４．効果＞＞
次に、本実施形態に係るダイナミックレンジを決定するパラメータの最適化の効果について述べる。まず、ＣＩＦＡＲ−１０を用いたクラス分類に係る結果について説明する。なお、ニューラルネットワークとしては、ＲｅｓＮｅｔ−２０を採用した。
【００９０】
また、ここでは、すべてのレイヤーにおけるビット長ｎの初期値として、４ビットまたは８ビットを設定し、線形量子化、０を許容しない２べき乗量子化、０を許容する２べき乗量子化により重みｗを量子化する３つの実験を行った。
【００９１】
また、２べき乗量子化の上限値ｍの初期値は、すべてのレイヤーで下記の数式（２６）により算出した値を用いた。
【００９２】
【数２０】
2019220755.tif 000022
【００９３】
また、線形乗量子化のステップサイズδの初期値は、すべてのレイヤーで下記の数式（２７）により算出した２のべき乗の値を用いた。
【００９４】
【数２１】
2019220755.tif 000023
【００９５】
また、各パラメータの許容レンジとしては、ｎ∈［２，８］、ｍ∈［−１６，１６］、δ∈［２−１２，２−２］を設定した。
【００９６】
まず、各条件におけるベストヴァリデーションエラーの結果を図７に示す。図７を参照すると、各条件において量子化を行った際のエラーと、量子化を行わないＦｌｏａｔ  Ｎｅｔのエラーとに、有意な差は見られないことがわかる。これは、本実施形態に係るダイナミックレンジを決定するパラメータの最適化手法によれば、学習精度をほぼ低下させずに、量子化を実現することが可能であることを示している。
【００９７】
なお、各条件におけるエラーの詳細な値は、下記のとおりである。図７および下記の記載では、２べき乗量子化を「Ｐｏｗ２」、０を許容しない設定を「ｗｚ」として示している。
Ｆｌｏａｔ  Ｎｅｔ                ７．８４％
ＦｉｘＰｏｉｎｔ，  Ｉｎｉｔ４：  ９．４９％
ＦｉｘＰｏｉｎｔ，  Ｉｎｉｔ８：  ９．２３％
Ｐｏｗ２，  Ｉｎｉｔ４：          ８．４２％
Ｐｏｗ２，  Ｉｎｉｔ８：          ８．４０％
Ｐｏｗ２ｗｚ，  Ｉｎｉｔ４：      ８．７４％
Ｐｏｗ２ｗｚ，  Ｉｎｉｔ８：      ８．２８％
【００９８】
次に、各レイヤーにおけるパラメータの最適化結果について示す。図８は、線形量子化を行った際のビット長ｎの変化を観察したグラフである。なお、図８では、初期値として４ビットを与えた場合のビット長ｎの推移がＰ１により示され、初期値として８ビットを与えた場合のビット長ｎの推移がＰ２により示されている。
【００９９】
また、図９は、線形量子化を行った際のステップサイズδの変化を観察したグラフである。図９では、初期値として４ビットを与えた場合のステップサイズδの推移がＰ３により示され、初期値として８ビットを与えた場合のステップサイズδの推移がＰ４により示されている。
【０１００】
図８および図９を参照すると、ほぼすべてのレイヤーにおいて、時間経過と共にビット長ｎおよびステップサイズδがある値に収束していくことがわかる。
【０１０１】
また、図１０は、０を許容しない２べき乗量子化を行った際のビット長ｎおよび上限値ｍの変化を観察したグラフである。図１０では、初期値として４ビットを与えた場合のビット長ｎの推移がＰ１により示され、初期値として８ビットを与えた場合のビット長ｎの推移がＰ１により示されている。また、図１０では、初期値として４ビットを与えた場合の上限値ｍの推移がＰ３により示され、初期値として８ビットを与えた場合の上限値ｍの推移がＰ４により示されている。
【０１０２】
また、図１１は、０を許容する２べき乗量子化を行った際のビット長ｎおよび上限値ｍの変化を観察したグラフである。図１１においても、初期値として４ビットを与えた場合のビット長ｎの推移がＰ１により示され、初期値として８ビットを与えた場合のビット長ｎの推移がＰ１により示されている。また、初期値として４ビットを与えた場合の上限値ｍの推移がＰ３により示され、初期値として８ビットを与えた場合の上限値ｍの推移がＰ４により示されている。
【０１０３】
図８および図９を参照すると、２べき乗量子化において、ほぼすべてのレイヤーにおいて、時間経過と共にビット長ｎが４付近に収束し、また上限値ｍが０付近に収束していくことがわかる。この結果は、本実施形態に係るダイナミックレンジを決定するパラメータの最適化が非常に高い精度で行われていることを示している。
【０１０４】
以上説明したように、本実施形態に係るダイナミックレンジを決定するパラメータの最適化によれば、量子化手法を問わず、レイヤーごとに各パラメータを自動で最適化することができ、人手による探索の負担を劇的に削減すると共に、巨大なニューラルネットワークにおける演算負荷を大幅に低減することが可能となる。
【０１０５】
次に、中間値の量子化を行った場合の実験結果を示す。ここでは、０を許容しマイナス値を許容しない２べき乗量子化においてＲｅＬＵを置換した。また、データセットとしては、重みの量子化と同様にＣＩＦＡＲ−１０を用いた。
【０１０６】
また、各パラメータの設定としては、ｎ∈［３，８］かつ初期値８ビット、ｍ∈［−１６，１６］を設定した。
【０１０７】
図１２は、本実施形態に係る中間値の量子化におけるベストヴァリデーションエラーの結果である。図１２を参照すると、本実施形態に係るダイナミックレンジを決定するパラメータの最適化によれば、中間値の量子化においても、学習精度をほぼ低下させずに、量子化が実現できていることがわかる。
【０１０８】
また、図１３は、中間値の量子化を行った際の各パラメータの変化を観察したグラフである。なお、図１３においては、ベストヴァリデーションエラーを得た際のビット長ｎの推移がＰ１により示され、ワーストヴァリデーションエラーを得た際のビット長ｎの推移がＰ２により示されている。また、図１３においては、ベストヴァリデーションエラーを得た際の上限値ｍの推移がＰ３により示され、ワーストヴァリデーションエラーを得た際の上限値ｍの推移がＰ４により示されている。
【０１０９】
図１３を参照すると、中間値の量子化を行った場合でも、ほぼすべてのレイヤーにおいて、時間経過と共にビット長ｎが４付近に収束していることがわかる。また、中間値の量子化を行った場合、上限値ｍは、時間経過と共に４または２付近に収束していることがわかる。
【０１１０】
続いて、重みｗと中間値の量子化を同時に行った場合の実験結果を示す。当該実験においても、データセットとしては、重みの量子化と同様にＣＩＦＡＲ−１０を用いた。また、各パラメータの設定としては、ｎ∈［２，８］かつ初期値２、４または８ビット、ｍ∈［−１６，１６］かつ初期値ｍ＝０を設定した。
【０１１１】
なお、実験は、初期の学習率を０．１および０．０１として行われた。
【０１１２】
図１４は、本実施形態に係る重みｗと中間値の量子化を同時に行った場合のベストヴァリデーションエラーの結果である。図１４を参照すると、重みｗと中間値をそれぞれ個別に量子化した場合に比べ精度は若干低下するものの、初期値を２ビットとした２べき乗量子化を除けば、学習精度が大幅に低下せずに、量子化が実現できていることがわかる。
【０１１３】
また、図１５は、重みｗの線形量子化に係る各パラメータの変化を観察したグラフである。なお、図１５においては、初期値として２、４、８ビットを与えた際のビット長ｎの推移が、それぞれＰ１、Ｐ２、Ｐ３により示されている。また、図１５においては、ビット長ｎの初期値として２、４、８ビットを与えた際の上限値ｍの推移が、それぞれＰ４、Ｐ５、Ｐ６により示されている。このように、本実施形態に係る線形量子化では、ステップサイズδに代えて上限値ｍが最適化されてもよい。この場合、学習をより簡易化することが可能である。なお、この際、最適化されたステップサイズδは、最適化された上限値ｍから逆算可能である。また、図中においてＰ４〜Ｐ６が重なっているレイヤーについては、Ｐ４のみ符号を付与している。
【０１１４】
図１５を参照すると、重みｗと中間値の線形量子化を同時に行った場合、重みｗに係るビット長ｎは、初期値に応じて異なる値に収束していることがわかる。一方、上限値ｍは、多くのレイヤーにおいて０付近に収束している。
【０１１５】
また、図１６は、中間値の線形量子化に係る各パラメータの変化を観察したグラフである。なお、図１６においても、初期値として２、４、８ビットを与えた際のビット長ｎの推移が、それぞれＰ１、Ｐ２、Ｐ３により示されている。また、ビット長ｎの初期値として２、４、８ビットを与えた際の上限値ｍの推移が、それぞれＰ４、Ｐ５、Ｐ６により示されている。また、図中においてＰ４〜Ｐ６が重なっているレイヤーについては、Ｐ４のみ符号を付与している。
【０１１６】
図１６を参照すると、重みｗと中間値の線形量子化を同時に行った場合、中間値に係るビット長ｎは、初期値が２ビットの場合、２付近に収束し、初期値が４または８ビットの場合、８付近に収束していることがわかる。一方、上限値ｍは、重みｗの場合と同様に、多くのレイヤーにおいて０付近に収束している。
【０１１７】
また、図１７は、重みｗの２べき乗量子化に係る各パラメータの変化を観察したグラフである。なお、図１７においては、初期値として２、４、８ビットを与えた際のビット長ｎの推移が、それぞれＰ１、Ｐ２、Ｐ３により示されている。また、図１７においては、ビット長ｎの初期値として２、４、８ビットを与えた上限値ｍの推移が、それぞれＰ４、Ｐ５、Ｐ６により示されている。
【０１１８】
図１７を参照すると、重みｗと中間値の２べき乗量子化を同時に行った場合、重みｗに係るビット長ｎは、初期値に依らず最終的に４付近に収束していることがわかる。また、上限値ｍは、多くのレイヤーにおいて０付近に収束している。
【０１１９】
また、図１８は、中間値の２べき乗量子化に係る各パラメータの変化を観察したグラフである。なお、図１８においても、初期値として２、４、８ビットを与えた際のビット長ｎの推移が、それぞれＰ１、Ｐ２、Ｐ３により示されている。また、ビット長ｎの初期値として２、４、８ビットを与えた上限値ｍの推移が、それぞれＰ４、Ｐ５、Ｐ６により示されている。
【０１２０】
図１８を参照すると、重みｗと中間値の２べき乗量子化を同時に行った場合、中間値に係るビット長ｎは、多くのレイヤーにおいて最終的に４付近に収束していることがわかる。また、上限値ｍは、多くのレイヤーにおいて２付近に収束している。
【０１２１】
以上、本実施形態に係るダイナミックレンジを決定するパラメータの最適化の効果について述べた。本実施形態に係るダイナミックレンジを決定するパラメータの最適化によれば、量子化手法を問わず、レイヤーごとに各パラメータを自動で最適化することができ、人手による探索の負担を劇的に削減すると共に、巨大なニューラルネットワークにおける演算負荷を大幅に低減することが可能となる。
【０１２２】
＜＜１．５．ＡＰＩの詳細＞＞
次に、本実施形態に係る入出力制御部１２０が制御するＡＰＩについて詳細に説明する。上述したように、本実施形態に係る入出力制御部１２０は、学習部１１０による学習や量子化に係る設定をユーザが行うためのＡＰＩを制御する。本実施形態に係るＡＰＩは、例えば、ユーザが、ダイナミックレンジを決定するパラメータの初期値や、量子化に係る各種の設定、例えばマイナス値や０を許容するか否かの設定、をレイヤーごとに入力するために用いられる。
【０１２３】
この際、本実施形態に係る入出力制御部１２０は、ＡＰＩを介してユーザが入力した上記の設定値を取得し、当該設置値に基づいて学習部１１０が最適化したダイナミックレンジを決定するパラメータをユーザに返すことができる。
【０１２４】
図１９は、本実施形態に係る線形量子化を行う場合のＡＰＩについて説明するための図である。図１９の上段には、本実施形態に係るダイナミックレンジを決定するパラメータの最適化を行わない場合のＡＰＩが、図１９の下段には、本実施形態に係るダイナミックレンジを決定するパラメータの最適化を行う場合のＡＰＩがそれぞれ示されている。
【０１２５】
ここで、図１９の上段に着目すると、本実施形態に係るダイナミックレンジを決定するパラメータの最適化を行わない場合のＡＰＩでは、ユーザは、例えば、上から順に、前段のレイヤーからの入力を格納する変数、マイナス値を許容するか否かの設定、ビット長ｎ、ステップサイズδ、粒度の高いＳＴＥを用いるかシンプルなＳＴＥを用いるかの設定、などを入力し、該当するレイヤーの出力値ｈを得ることができる。
【０１２６】
一方、図１９の下段に示す、本実施形態に係る線形量子化のＡＰＩでは、ユーザは、例えば、上から順に、前段のレイヤーからの入力を格納する変数、最適化後のビット長ｎを格納する変数（ｆｌｏａｔ）、最適化後のステップサイズδを格納する変数（ｆｌｏａｔ）、最適化後のビット長ｎを格納する変数（ｉｎｔ）、最適化後のステップサイズδを格納する変数（ｉｎｔ）、マイナス値を許容するか否かの設定、量子化時のビット長ｎの定義域、量子化時のステップサイズδの定義域、粒度の高いＳＴＥを用いるかシンプルなＳＴＥを用いるかの設定を入力する。
【０１２７】
この際、ユーザは、該当するレイヤーの出力値ｈに加え、上述した各変数に格納される最適化後のビット長ｎやステップサイズδを得ることができる。このように、本実施形態に係る入出力制御部１２０が制御するＡＰＩによれば、ユーザは、量子化に係る各パラメータの初期値や設定などを入力し、最適化後のパラメータの値を容易に取得することができる。
【０１２８】
なお、図１９に示す一例においては、ステップサイズδを入力する場合のＡＰＩを示しているが、本実施形態に係るＡＰＩは、線形量子化においても上限値ｍの入出力が可能であってもよい。上述したように、ステップサイズδは、上限値ｍから逆算可能である。このように、本実施形態に係るダイナミックレンジを決定するパラメータは、任意かつ複数のパラメータであってもよく、本開示に示す一例に限定されない。
【０１２９】
図２０は、本実施形態に係る２べき乗量子化を行う場合のＡＰＩについて説明するための図である。図２０の上段には、本実施形態に係るダイナミックレンジを決定するパラメータの最適化を行わない場合のＡＰＩが、図２０の下段には、本実施形態に係るダイナミックレンジを決定するパラメータの最適化を行う場合のＡＰＩがそれぞれ示されている。
【０１３０】
ここで、図２０の上段に着目すると、本実施形態に係るダイナミックレンジを決定するパラメータの最適化を行わない場合のＡＰＩでは、ユーザは、例えば、上から順に、前段のレイヤーからの入力を格納する変数、マイナス値を許容するか否かの設定、０を許容するか否かの設定、ビット長ｎ、上限値ｍ、粒度の高いＳＴＥを用いるかシンプルなＳＴＥを用いるかの設定、などを入力し、該当するレイヤーの出力値ｈを得ることができる。
【０１３１】
一方、図２０の下段に示す、本実施形態に係る２べき乗量子化のＡＰＩでは、ユーザは、例えば、上から順に、前段のレイヤーからの入力を格納する変数、最適化後のビット長ｎを格納する変数（ｆｌｏａｔ）、最適化後の上限値ｍを格納する変数（ｆｌｏａｔ）、最適化後のビット長ｎを格納する変数（ｉｎｔ）、最適化後の上限値ｍを格納する変数（ｉｎｔ）、マイナス値を許容するか否かの設定、０を許容するか否かの設定、量子化時のビット長ｎの定義域、量子化時の上限値ｍの定義域、粒度の高いＳＴＥを用いるかシンプルなＳＴＥを用いるかの設定を入力する。
【０１３２】
この際、ユーザは、該当するレイヤーの出力値ｈに加え、上述した各変数に格納される最適化後のビット長ｎや上限値ｍを得ることができる。以上説明したように、本実施形態に係るＡＰＩによれば、ユーザがレイヤーごとに任意の設定を行い、ダイナミックレンジを決定するパラメータをレイヤーごとに最適化することが可能である。
【０１３３】
なお、複数のレイヤーにおいて、同一の上記パラメータを用いて量子化を行いたい場合、ユーザは、例えば、図２１に示すように、各レイヤーに対応する関数において、上流で定義した同一の変数を設定してもよい。図２１に示す一例の場合、ｈ１およびｈ２において、同一のｎ、ｍ、ｎ＿ｑ、ｍ＿ｑが用いられている。
【０１３４】
このように、本実施形態に係るＡＰＩによれば、ユーザは、各レイヤーごとに異なるパラメータを用いるか、あるいは任意の複数のレイヤー（例えば、ブロックやすべての対象レイヤー）において共通の異なるパラメータを用いるかを自由に設定することが可能である。ユーザは、例えば、複数のレイヤーにおいて、同一のｎおよびｎ＿ｑを利用すると同時に、それぞれのレイヤーで異なるｍおよびｍ＿ｑを利用するための設定なども行うことができる。
【０１３５】
＜２．ハードウェア構成例＞
次に、本開示の一実施形態に係る情報処理装置１０のハードウェア構成例について説明する。図２２は、本開示の一実施形態に係る情報処理装置１０のハードウェア構成例を示すブロック図である。図２２を参照すると、情報処理装置１０は、例えば、プロセッサ８７１と、ＲＯＭ８７２と、ＲＡＭ８７３と、ホストバス８７４と、ブリッジ８７５と、外部バス８７６と、インタフェース８７７と、入力装置８７８と、出力装置８７９と、ストレージ８８０と、ドライブ８８１と、接続ポート８８２と、通信装置８８３と、を有する。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ここで示される構成要素以外の構成要素をさらに含んでもよい。
【０１３６】
（プロセッサ８７１）
プロセッサ８７１は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ８７２、ＲＡＭ８７３、ストレージ８８０、又はリムーバブル記録媒体９０１に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。
【０１３７】
（ＲＯＭ８７２、ＲＡＭ８７３）
ＲＯＭ８７２は、プロセッサ８７１に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ８７３には、例えば、プロセッサ８７１に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【０１３８】
（ホストバス８７４、ブリッジ８７５、外部バス８７６、インタフェース８７７）
プロセッサ８７１、ＲＯＭ８７２、ＲＡＭ８７３は、例えば、高速なデータ伝送が可能なホストバス８７４を介して相互に接続される。一方、ホストバス８７４は、例えば、ブリッジ８７５を介して比較的データ伝送速度が低速な外部バス８７６に接続される。また、外部バス８７６は、インタフェース８７７を介して種々の構成要素と接続される。
【０１３９】
（入力装置８７８）
入力装置８７８には、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力装置８７８としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ（以下、リモコン）が用いられることもある。また、入力装置８７８には、マイクロフォンなどの音声入力装置が含まれる。
【０１４０】
（出力装置８７９）
出力装置８７９は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ、又は有機ＥＬ等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。また、本開示に係る出力装置８７９は、触覚刺激を出力することが可能な種々の振動デバイスを含む。
【０１４１】
（ストレージ８８０）
ストレージ８８０は、各種のデータを格納するための装置である。ストレージ８８０としては、例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。
【０１４２】
（ドライブ８８１）
ドライブ８８１は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９０１に記録された情報を読み出し、又はリムーバブル記録媒体９０１に情報を書き込む装置である。
【０１４３】
（リムーバブル記録媒体９０１）
リムーバブル記録媒体９０１は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙ（登録商標）メディア、ＨＤ  ＤＶＤメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体９０１は、例えば、非接触型ＩＣチップを搭載したＩＣカード、又は電子機器等であってもよい。
【０１４４】
（接続ポート８８２）
接続ポート８８２は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９０２を接続するためのポートである。
【０１４５】
（外部接続機器９０２）
外部接続機器９０２は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。
【０１４６】
（通信装置８８３）
通信装置８８３は、ネットワークに接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、又は各種通信用のモデム等である。
【０１４７】
＜３．まとめ＞
以上説明したように、本開示の一実施形態に係る情報処理方法を実現する情報処理装置１０は、ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化する学習部１１０を備える。係る構成によれば、演算の処理負担を軽減すると共により精度の高い学習を実現することが可能となる。
【０１４８】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１４９】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０１５０】
また、コンピュータに内蔵されるＣＰＵ、ＲＯＭおよびＲＡＭなどのハードウェアに、情報処理装置１０が有する構成と同等の機能を発揮させるためのプログラムも作成可能であり、当該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。
【０１５１】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、前記ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化する学習部、
を備える、
情報処理装置。
（２）
前記ダイナミックレンジを決定するパラメータは、少なくとも量子化時のビット長を含む、
前記（１）に記載の情報処理装置。
（３）
前記ダイナミックレンジを決定するパラメータは、べき乗量子化時の上限値または下限値を含む、
前記（２）に記載の情報処理装置。
（４）
前記ダイナミックレンジを決定するパラメータは、線形量子化時のステップサイズを含む、
前記（２）または（３）に記載の情報処理装置。
（５）
前記学習部は、前記ダイナミックレンジを決定するパラメータを、レイヤーごとに最適化する、
前記（１）〜（４）のいずれかに記載の情報処理装置。
（６）
前記学習部は、前記ダイナミックレンジを決定するパラメータを、複数のレイヤーに共通して最適化する、
前記（１）〜（５）のいずれかに記載の情報処理装置。
（７）
前記学習部は、前記ダイナミックレンジを決定するパラメータを、ニューラルネットワーク全体に共通して最適化する、
前記（１）〜（６）のいずれかに記載の情報処理装置。
（８）
前記学習部により最適化された前記ダイナミックレンジを決定するパラメータを出力するインタフェースを制御する入出力制御部、
をさらに備える、
前記（１）〜（７）のいずれかに記載の情報処理装置。
（９）
前記入出力制御部は、前記インタフェースを介してユーザにより入力された初期値を取得し、前記初期値に基づいて最適化された前記ダイナミックレンジを決定するパラメータを出力する、
前記（８）に記載の情報処理装置。
（１０）
前記入出力制御部は、前記インタフェースを介してユーザにより入力されたビット長の初期値を取得し、前記ビット長の初期値に基づいて最適化された量子化時のビット長を出力する、
前記（９）に記載の情報処理装置。
（１１）
前記入出力制御部は、前記インタフェースを介してユーザにより入力された量子化に係る設定を取得し、前記設定に基づいて最適化された前記ダイナミックレンジを決定するパラメータを出力する、
前記（８）〜（１０）のいずれかに記載の情報処理装置。
（１２）
前記量子化に係る設定は、量子化後の値がマイナス値となることを許容するか否かの設定を含む、
前記（１１）に記載の情報処理装置。
（１３）
前記量子化に係る設定は、量子化後の値が０となることを許容するか否かの設定を含む、
前記（１１）または（１２）に記載の情報処理装置。
（１４）
前記量子化関数は、重み、バイアス、または中間値のうち少なくともいずれかの量子化に用いられる、
前記（１）〜（１３）のいずれかに記載の情報処理装置。
（１５）
プロセッサが、ダイナミックレンジを決定するパラメータを引数とするニューラルネットワークの量子化関数において、前記ダイナミックレンジを決定するパラメータを、誤差逆伝播法および確率的勾配降下法で最適化すること、
を含む、
情報処理方法。
【符号の説明】
【０１５２】
１０      情報処理装置
１１０    学習部
１２０    入出力制御部
１３０    記憶部
【図１】
2019220755.tif 000024
【図２】
2019220755.tif 000025
【図３】
2019220755.tif 000026
【図４】
2019220755.tif 000027
【図５】
2019220755.tif 000028
【図６】
2019220755.tif 000029
【図７】
2019220755.tif 000030
【図８】
2019220755.tif 000031
【図９】
2019220755.tif 000032
【図１０】
2019220755.tif 000033
【図１１】
2019220755.tif 000034
【図１２】
2019220755.tif 000035
【図１３】
2019220755.tif 000036
【図１４】
2019220755.tif 000037
【図１５】
2019220755.tif 000038
【図１６】
2019220755.tif 000039
【図１７】
2019220755.tif 000040
【図１８】
2019220755.tif 000041
【図１９】
2019220755.tif 000042
【図２０】
2019220755.tif 000043
【図２１】
2019220755.tif 000044
【図２２】
2019220755.tif 000045
【図２３】
2019220755.tif 000046
【図２４】
2019220755.tif 000047
【国際調査報告】
2019220755.tif 000048
2019220755.tif 000049
2019220755.tif 000050
2019220755.tif 000051