(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-15
(45)【発行日】2024-01-23
(54)【発明の名称】量子化パラメータ最適化方法、及び、量子化パラメータ最適化装置
(51)【国際特許分類】
G06N 3/0495 20230101AFI20240116BHJP
【FI】
G06N3/0495
(21)【出願番号】P 2019163981
(22)【出願日】2019-09-09
【審査請求日】2022-08-09
(73)【特許権者】
【識別番号】514315159
【氏名又は名称】株式会社ソシオネクスト
(74)【代理人】
【識別番号】100189430
【氏名又は名称】吉川 修一
(74)【代理人】
【識別番号】100190805
【氏名又は名称】傍島 正朗
(72)【発明者】
【氏名】笹川 幸宏
【審査官】渡辺 順哉
(56)【参考文献】
【文献】特許第6528884(JP,B1)
【文献】特開平07-084975(JP,A)
【文献】特開2018-010618(JP,A)
【文献】特開2018-045350(JP,A)
【文献】特開2012-159886(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークにおける重みパラメータが量子化されたパラメータである量子化パラメータを最適化する
、コンピュータプログラムにより実行される量子化パラメータ最適化方法であって、
前記ニューラルネットワークの出力値と期待される正解値との誤差を求める関数である誤差関数に、前記重みパラメータと前記量子化パラメータとの誤差である量子化誤差の関数である正則化項を加えたコスト関数を決定するコスト関数決定ステップと、
前記コスト関数を用いて、前記量子化パラメータを更新する更新ステップと、
前記更新ステップを繰り返した結果、前記コスト関数により導出される関数値が所定の条件を満たした場合の前記量子化パラメータを、前記ニューラルネットワークにおける重みパラメータが量子化された量子化ニューラルネットワークの最適化された量子化パラメータとして決定する量子化パラメータ決定ステップと、を含み、
前記正則化項の関数値と、前記量子化ニューラルネットワークが正解を推論する度合いを示す精度との間には負の相関がある、
量子化パラメータ最適化方法。
【請求項2】
前記精度は、前記量子化ニューラルネットワークの出力値が、正解を推論したか否かを示す場合の適合率、再現率、前記適合率及び前記再現率の調和平均により算出されるF値、並びに、正解率のうちの少なくとも一の組み合わせである、
請求項1に記載の量子化パラメータ最適化方法。
【請求項3】
さらに、
前記重みパラメータに複数の誤差を加えた重み誤差パラメータを与えた前記量子化ニューラルネットワークを用いて得た、テストデータに対する出力値それぞれの前記精度が所定の基準より高いまたは低いことを示すラベルを、当該出力値に対応する前記重み誤差パラメータに付与することにより、前記重み誤差パラメータと精度とのデータセットからなる学習データを作成する学習データ作成ステップと、
作成した前記学習データを用いて、SVM(サポートベクターマシン)による学習を行い、前記重み誤差パラメータを前記所定の基準より高い前記精度の出力値に対応する重み誤差パラメータと前記所定の基準より低い前記精度の出力値に対応する重み誤差パラメータとに分離する面である分離境界面を得る学習ステップと、
前記学習ステップにおいて得た前記分離境界面に基づき、前記正則化項を決定する正則化項決定ステップと、を含む、
請求項1または2に記載の量子化パラメータ最適化方法。
【請求項4】
前記正則化項決定ステップでは、
前記分離境界面から、g(x)を導出し、導出した前記g(x)に基づいて、前記正則化項を決定し、
前記SVMによる学習として、線形2 class SVMによる学習を行うことで、前記分離境界面を得た場合、前記g(x)は、下記の(式1)で表される、
A
Tx+b=g(x)・・・(式1)
ここで、xはn次元ベクトルの量子化誤差であり、Aはn次元ベクトルであり、bは定数である、
請求項3に記載の量子化パラメータ最適化方法。
【請求項5】
前記正則化項決定ステップでは、
前記分離境界面から、g(x)を導出し、導出した前記g(x)に基づいて、前記正則化項を決定し、
前記SVMによる学習として、非線形one class SVMによる学習を行うことで、前記分離境界面を得た場合、前記g(x)は、前記量子化パラメータをw
q、前記
量子化誤差をw-w
qとしたとき、下記の(式2)で表される、
【数1】
・・・(式2)
ここで、α
iは係数であり、Kはカーネル関数であり、
【数2】
はサポートベクタであり、bは定数である、
請求項3に記載の量子化パラメータ最適化方法。
【請求項6】
前記カーネル関数は、ガウシアンカーネルである、
請求項5に記載の量子化パラメータ最適化方法。
【請求項7】
前記カーネル関数は、シグモイドカーネルである、
請求項5に記載の量子化パラメータ最適化方法。
【請求項8】
前記カーネル関数は、多項式カーネルである、
請求項5に記載の量子化パラメータ最適化方法。
【請求項9】
前記正則化項決定ステップでは、
前記g(x)の関数であるtanh(-g(x))に基づいて,前記正則化項を決定する、
請求項4~8のいずれか1項に記載の量子化パラメータ最適化方法。
【請求項10】
ニューラルネットワークにおける重みパラメータが量子化されたパラメータである量子化パラメータを決定する量子化パラメータ最適化装置であって、
前記ニューラルネットワークの出力値と期待される正解値との誤差を求める関数である誤差関数に、前記重みパラメータと前記量子化パラメータとの誤差である量子化誤差の関数である正則化項を加えたコスト関数を決定するコスト関数決定部と、
前記コスト関数を用いて、前記量子化パラメータを更新する更新部と、
前記更新部が前記量子化パラメータの更新を繰り返した結果、前記コスト関数により導出される関数値が所定の条件を満たした場合の前記量子化パラメータを、前記ニューラルネットワークにおける重みパラメータが量子化された量子化ニューラルネットワークの最適化された量子化パラメータとして決定する量子化パラメータ決定部と、を備え、
前記正則化項の関数値と、前記量子化ニューラルネットワークが正解を推論する度合いを示す精度との間には負の相関がある、
量子化パラメータ最適化装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、量子化パラメータ最適化方法、及び、量子化パラメータ最適化装置に関する。
【背景技術】
【0002】
入力されたデータに対する識別または分類を行う場合に、ニューラルネットワークで構成される推論モデルが用いられる。
【0003】
機械学習において、訓練データに対して学習させた推論モデルが、訓練データに対しては非常に精度の高い結果を出力する一方で、未知のデータに対しては精度の高くない結果を出力してしまうといった過学習の状況が起こりうる。
【0004】
過学習の状況は、例えば、訓練データに比べて相対的に推論モデルの方の複雑度合いが高い場合などに起こりうる。つまり、過学習は、訓練データに対して複数ある「正解」のモデルの中で、パラメータの設定が極端なモデルを推論モデルとして選んでしまうことによって発生し、未知のデータに対する精度が落ちてしまう現象である。
【0005】
このような過学習を防ぐための手段として、モデルの複雑度合いが増すことに対してペナルティを与える正則化という方法を利用することが知られている。
【0006】
ところで、推論モデルを実装する場合、演算量を低減するために、重みパラメータを量子化する。ただし、この場合、重みパラメータを量子化することによる誤差である量子化誤差も考慮した誤差関数を考える必要がある。例えば非特許文献1では、量子化誤差を正則化項として誤差関数に加えることが開示されている。非特許文献1によれば、誤差関数に量子化誤差を正則化項として加えたコスト関数を用いることにより、量子化誤差を減らす学習を実現することができる。
【先行技術文献】
【非特許文献】
【0007】
【文献】Kazutoshi Hirose, Ryota Uematsu, Kota Ando, Kodai Ueyoshi, Masayuki Ikebe, Tetsuya Asai, Masato Motomura, and Shinya Takamaeda-Yamazaki: Quantization Error-Based Regularization for Hardware-Aware Neural Network Training, IEICE Transactions on Nonlinear Theory and Its Applications, Vol.9, No.4, pp.453-465, October 2018.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1に開示されるコスト関数を最小化する過程において、量子化誤差係数で表される学習係数の値によっては、正則化項→0となるときに、誤差関数→0とならないばかりか、むしろ誤差関数が増大してしまうという課題がある。
【0009】
本開示は、上述の事情を鑑みてなされたもので、過学習を防ぎながら量子化誤差を考慮して、量子化パラメータを最適化することができる量子化パラメータ最適化方法などを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本開示の一形態に係る量子化パラメータ最適化方法は、ニューラルネットワークにおける重みパラメータが量子化されたパラメータである量子化パラメータを最適化する量子化パラメータ最適化方法であって、前記ニューラルネットワークの出力値と期待される正解値との誤差を求める関数である誤差関数に、前記重みパラメータと前記量子化パラメータとの誤差である量子化誤差の関数である正則化項を加えたコスト関数を決定するコスト関数決定ステップと、前記コスト関数を用いて、前記量子化パラメータを更新する更新ステップと、前記更新ステップを繰り返した結果、前記コスト関数により導出される関数値が所定の条件を満たした場合の前記量子化パラメータを、前記ニューラルネットワークにおける重みパラメータが量子化された量子化ニューラルネットワークの最適化された量子化パラメータとして決定する量子化パラメータ決定ステップと、を含み、前記正則化項の関数値と、前記量子化ニューラルネットワークが正解を推論する度合いを示す精度との間には負の相関がある。
【0011】
これにより、過学習を防ぎながら量子化誤差を考慮して、量子化パラメータを最適化することができる。
【0012】
ここで、例えば、前記精度は、前記量子化ニューラルネットワークの出力値が、正解を推論したか否かを示す場合の適合率、再現率、前記適合率及び前記再現率の調和平均により算出されるF値、並びに、正解率のうちの少なくとも一の組み合わせである。
【0013】
また、例えば、さらに、前記重みパラメータに複数の誤差を加えた重み誤差パラメータを与えた前記量子化ニューラルネットワークを用いて得た、テストデータに対する出力値それぞれの前記精度が所定の基準より高いまたは低いことを示すラベルを、当該出力値に対応する前記重み誤差パラメータに付与することにより、前記重み誤差パラメータと精度とのデータセットからなる学習データを作成する学習データ作成ステップと、作成した前記学習データを用いて、SVM(サポートベクターマシン)による学習を行い、前記重み誤差パラメータを前記所定の基準より高い前記精度の出力値に対応する重み誤差パラメータと前記所定の基準より低い前記精度の出力値に対応する重み誤差パラメータとに分離する面である分離境界面を得る学習ステップと、前記学習ステップにおいて得た前記分離境界面に基づき、前記正則化項を決定する正則化項決定ステップと、を含むとしてもよい。
【0014】
ここで、例えば、前記正則化項決定ステップでは、前記分離境界面から、g(x)を導出し、導出した前記g(x)に基づいて、前記正則化項を決定し、前記SVMによる学習として、線形2 class SVMによる学習を行うことで、前記分離境界面を得た場合、前記g(x)は、ATx+b=g(x)で表される。ここで、xはn次元ベクトルの量子化誤差であり、Aはn次元ベクトルであり、bは定数である。
【0015】
また、前記正則化項決定ステップでは、前記分離境界面から、g(x)を導出し、導出した前記g(x)に基づいて、前記正則化項を決定し、前記SVMによる学習として、非線形one class SVMによる学習を行うことで、前記分離境界面を得た場合、前記g(x)は、前記量子化パラメータをwq、前記量子化誤差をw-wqとしたとき、下記の(式)で表される。
【0016】
【0017】
ここで、α
iは係数であり、Kはカーネル関数であり、
【数2】
はサポートベクタであり、bは定数である。
【0018】
また、例えば、前記カーネル関数は、ガウシアンカーネルであるとしてもよい。
【0019】
また、例えば、前記カーネル関数は、シグモイドカーネルであるとしてもよい。
【0020】
また、例えば、前記カーネル関数は、多項式カーネルであるとしてもよい。
【0021】
また、例えば、前記正則化項決定ステップでは、前記g(x)の関数であるtanh(-g(x))に基づいて,前記正則化項を決定するとしてもよい。
【0022】
また、上記目的を達成するために、本開示の一形態に係る量子化パラメータ最適化装置は、ニューラルネットワークにおける重みパラメータが量子化されたパラメータである量子化パラメータを決定する量子化パラメータ最適化装置であって、前記ニューラルネットワークの出力値と期待される正解値との誤差を求める関数である誤差関数に、前記重みパラメータと前記量子化パラメータとの誤差である量子化誤差の関数である正則化項を加えたコスト関数を決定するコスト関数決定部と、前記コスト関数を用いて、前記量子化パラメータを更新する更新部と、前記更新部が前記量子化パラメータの更新を繰り返した結果、前記コスト関数により導出される関数値が所定の条件を満たした場合の前記量子化パラメータを、前記ニューラルネットワークにおける重みパラメータが量子化された量子化ニューラルネットワークの最適化された量子化パラメータとして決定する量子化パラメータ決定部と、を備え、前記正則化項の関数値と、前記量子化ニューラルネットワークが正解を推論する度合いを示す精度との間には負の相関がある。
【0023】
なお、これらの全般的または具体的な態様は、装置、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0024】
本開示により、過学習を防ぎながら量子化誤差を考慮して、量子化パラメータを最適化することができる量子化パラメータ最適化方法などを提供できる。
【図面の簡単な説明】
【0025】
【
図1】
図1は、実施の形態に係る量子化パラメータ最適化装置が行う最適化処理の概要を説明するための図である。
【
図2】
図2は、実施の形態に係る量子化パラメータ最適化装置の機能構成を示すブロック図である。
【
図3A】
図3Aは、量子化誤差係数に対するloss及び量子化誤差の変化を示す図である。
【
図3B】
図3Bは、量子化誤差係数に対する再現率及び適合率の変化を示す図である。
【
図4】
図4は、再現率及び適合率を含む統計指標を説明するための図である。
【
図5A】
図5Aは、実施の形態に係る精度と正則化項の関数値との関係を模式的に示す図である。
【
図5B】
図5Bは、実施の形態に係る量子化誤差と正則化項の関数値との関係を模式的に示す図である。
【
図6】
図6は、実施の形態に係る量子化パラメータ最適化装置の機能をソフトウェアにより実現するコンピュータのハードウェア構成の一例を示す図である。
【
図7】
図7は、実施の形態に係る量子化パラメータ最適化方法を示すフローチャートである。
【
図8】
図8は、実施の形態に係る正則化項決定部が行う決定処理の概要を説明するための図である。
【
図9】
図9は、実施の形態に係る正則化項決定部の機能構成を示すブロック図である。
【
図10A】
図10Aは、実施の形態に係る重みパラメータが2次元のときの、ラベル付けされた重み誤差パラメータの分布を模式的に示す図である。
【
図10B】
図10Bは、
図10Aに示す分布に対して線形2class SVMによる学習を行った結果を模式的に示す図である。
【
図11A】
図11Aは、実施の形態に係る重み誤差パラメータを直線では2クラスに分離できない場合の例を模式的に示す図である。
【
図11B】
図11Bは、
図11Aに示す重み誤差パラメータを高次元に拡張することにより平面で2クラスに分離できる場合の例を模式的に示す図である。
【
図12】
図12は、実施の形態に係る分離境界面から正則化項を導出する方法を説明するための図である。
【
図13】
図13は、実施の形態に係る正則化項導出方法を示すフローチャートである。
【
図14】
図14は、実施の形態に係る線形2class SVMを用いて、正則化項を導出するに至る処理手順の全体像を模式的に示す図である。
【
図15】
図15は、非線形one class SVMを用いて、正則化項を導出するに至る処理手順の全体像を模式的に示す図である。
【発明を実施するための形態】
【0026】
以下、本開示の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示す。以下の実施の形態で示される数値、形状、材料、規格、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化する場合がある。
【0027】
(実施の形態)
まず、本実施の形態に係る量子化パラメータ最適化方法及び量子化パラメータ最適化装置について説明する。
【0028】
[1-1.量子化パラメータ最適化装置]
以下、本実施の形態に係る量子化パラメータ最適化装置の構成等について説明する。
図1は、本実施の形態に係る量子化パラメータ最適化装置10が行う最適化処理の概要を説明するための図である。
【0029】
量子化パラメータ最適化装置10は、ニューラルネットワークにおける重みパラメータが量子化されたパラメータである量子化パラメータを最適化する装置である。ここで、重みパラメータは、例えば実数値または浮動小数点精度(floatとも称する)で数値表現され、量子化パラメータは、例えば固定小数点精度で数値表現される。最適化前の量子化ニューラルネットワーク50aと最適化後の量子化ニューラルネットワーク50bは、重みパラメータが量子化された量子化パラメータを有するニューラルネットワークで構成される推論モデルである。最適化前の量子化ニューラルネットワーク50aは、最適化されていない量子化パラメータを有し、最適化後の量子化ニューラルネットワーク50bは、最適化された量子化パラメータを有する。最適化前の量子化ニューラルネットワーク50aは、実数値または浮動小数点精度(float)の重みパラメータを持つニューラルネットワーク50(不図示)の学習完了後に、重みパラメータが量子化された量子化パラメータを持つニューラルネットワーク50である。
【0030】
より具体的には、
図1に示すように、量子化パラメータ最適化装置10は、正則化項Ψを取得し、取得した正則化項Ψを加えたコスト関数を用いて、最適化前の量子化ニューラルネットワーク50aの量子化パラメータを最適化する。そして、量子化パラメータ最適化装置10は、最適化した量子化パラメータ(最適化後の量子化パラメータ)を記憶部11に格納するともに、最適化前の量子化ニューラルネットワーク50aに最適化後の量子化パラメータを適用することで最適化後の量子化ニューラルネットワーク50bを生成する。
【0031】
このように、量子化パラメータ最適化装置10は、取得した正則化項Ψを加えたコスト関数を用いて量子化パラメータの更新を繰り返すことで、量子化パラメータを最適化する。
【0032】
なお、最適化前の量子化ニューラルネットワーク50a及び最適化後の量子化ニューラルネットワーク50bで扱われるすべてのテンソルは、量子化されていなくてもよく、少なくとも重みパラメータを示すテンソルが量子化されていればよい。テンソルとは、最適化前の量子化ニューラルネットワーク50a及び最適化後の量子化ニューラルネットワーク50bの各層における入力データ、出力データ及び重みなどのパラメータを含むn次元配列(nは0以上の整数)で表される値である。
【0033】
図2は、本実施の形態に係る量子化パラメータ最適化装置10の機能構成を示すブロック図である。
【0034】
図2に示されるように、量子化パラメータ最適化装置10は、コスト関数決定部101と、量子化パラメータ更新部102と、量子化パラメータ決定部103とを備える。なお、本実施の形態では、量子化パラメータ最適化装置10は、後述する正則化項決定部20をさらに備えてもよい。この場合、量子化パラメータ最適化装置10は、正則化項決定部20から、正則化項決定部20が決定した正則化項Ψを取得すればよい。
【0035】
<量子化パラメータ更新部102>
量子化パラメータ更新部102は、更新部の一例であり、コスト関数決定部101で決定されたコスト関数を用いて、量子化パラメータを更新する。ここで、量子化パラメータは、上述したように、ニューラルネットワークにおける重みパラメータが量子化されたパラメータである。量子化パラメータ更新部102は、量子化パラメータの更新を繰り返し実行する。
【0036】
<量子化パラメータ決定部103>
量子化パラメータ決定部103は、量子化パラメータ更新部102が量子化パラメータの更新を繰り返した結果、コスト関数により導出される関数値が、所定の条件を満たした場合の量子化パラメータを、量子化ニューラルネットワークの最適化された量子化パラメータとして決定する。
【0037】
<コスト関数決定部101>
コスト関数決定部101は、取得した正則化項Ψを用いてコスト関数を決定する。より具体的には、ニューラルネットワークの出力値と期待される正解値との誤差を求める関数である誤差関数E(wq)に、重みパラメータ(w)と量子化パラメータ(wq)との誤差である量子化誤差(w-wq)の関数である正則化項Ψを加えたコスト関数L(wq)を決定する。
【0038】
ここで、正則化項Ψの関数値と、量子化ニューラルネットワークが正解を推論する度合いを示す精度との間には負の相関がある。換言すると、正則化項Ψは、コスト関数に包含され、正則化項Ψ→0のときコスト関数→0となる関係を満たす。以下、正則化項Ψがこの関係を満たす必要があることについて説明する。
【0039】
機械学習では、代表的な学習アルゴリズムとして勾配法を用いる。勾配法は、関数の最適化手法の一つであり、関数の偏導関数(勾配)を用いて最適な点を割り出す方法である。例えば、下記の式(1)は、誤差関数Eの重みwに対する偏微分に係数をかけて反復計算させるMomentum SGD(確率的勾配降下法)を示している。
【0040】
【0041】
すなわち、式(1)において、反復tの重みwにおける誤差関数Eから、反復t+1の重みwを求める。このような反復計算を行うことにより誤差関数Eを最小にする重みwを求める。ここで、ηは学習係数であり、収束の速さを制御する。なお、αΔwtは慣性成分に該当する。
【0042】
さらに、誤差関数Eにペナルティの性質をもたせ、重みwが極端な値をとること(つまり過学習)を防ぐための正則化項を、誤差関数Eに加えて、新たな誤差関数すなわちコスト関数とする。例えば、下記の式(2)に示すように、ペナルティとして重みwの二乗の総和を用いたL2正則化を正則化項として用いる。なお、式(2)において、L(w)はコスト関数であり、E(w)は誤差関数である。
【0043】
【0044】
ここで、式(2)に示されるコスト関数L(w)を偏微分すると、下記の式(3)が得られる。
【0045】
【0046】
式(3)により、正則化項が重みwに比例することから、式(2)に示すコスト関数を用いて最急降下法または確率的勾配降下法を行う場合、重みwの大きさに比例した分だけ誤差が0に近づくことがわかる。このように、正則化項を用いると、コスト関数L(w)において重みwが大きく変わらない傾向があることから、過学習を防ぐことができる。
【0047】
一方、ニューラルネットワークで構成される推論モデルを実装する場合、演算量を低減するために、重みパラメータを量子化する場合がある。この場合、実数値等のfloatで表現される重みパラメータと、floatが量子化されて表現される量子化パラメータとの間の差である量子化誤差も考慮した誤差関数を考える必要がある。重みパラメータをもつニューラルネットワークで構成される推論モデルと比較すると、量子化誤差のために、量子化パラメータともつ量子化ニューラルネットワークで構成される推論モデルの推論結果の精度が低下するからである。
【0048】
例えば、上述した式(1)に量子化誤差の影響を反映すると、下記の式(4)のように表すことができる。
【0049】
【0050】
つまり、量子化誤差の影響は、式(4)の括弧()内のerr項として現れる。そして、err項は、式(4)の反復計算時の収束に影響を及ぼすことになる。この対策のために、学習係数ηを小さくしてerr項の影響を小さくする場合、極小値に陥りやすくなってしまうという問題がある。
【0051】
そこで、例えば非特許文献1では、式(5)に示すように、誤差関数E(w)に、量子化誤差を、L2ノルムの形で正則化項として加えたコスト関数L(w)を用いることが開示されている。そして、このようなコスト関数L(w)を用いることにより、量子化誤差を減らす学習を実現することができるとされている。式(5)において、Wqは、重みパラメータwを量子化した量子化パラメータを示す。
【0052】
【0053】
しかしながら、コスト関数L(w)を最小化する過程において、量子化誤差係数で表される学習係数η
2の値によっては、正則化項→0となるときに、誤差関数→0とならないばかりか、誤差関数が増大する変化をしてしまう。これについて
図3A及び
図3Bを用いて詳述する。
【0054】
図3Aは、量子化誤差係数に対するloss及び量子化誤差の変化を示す図である。
図3Bは、量子化誤差係数に対する再現率及び適合率の変化を示す図である。
図4は、再現率及び適合率を含む統計指標を説明するための図である。
【0055】
図3Aでは、横軸は式(5)に示す量子化誤差係数で表される学習係数η
2の値を示し、左側縦軸は量子化誤差を示し、右側縦軸はlossすなわち式(5)に示す誤差関数E(w)の値を示す。
図3Bでは、横軸は式(5)に示す量子化誤差係数で表される学習係数η
2の値を示し、左側縦軸は再現率(Recall)を示し、右側縦軸は適合率(Precision)を示す。また、
図3A及び
図3Bに示される変化は、誤差関数に量子化誤差を正則化項として加えたコスト関数に対してシミュレーションを行うことで評価した。
【0056】
図4には、量子化ニューラルネットワークで構成される推論モデルが、「正解である」または「正解でない」を推論する場合のデータ数について示されている。すなわち、推論モデルが正解と推論したが、実際には正解ではないデータ数をFP(False Positive)個とし、推論モデルが正解と推論して、実際にも正解であるデータ数をTP(True Positive)個としている。同様に、推論モデルが正解でないと推論したが、実際には正解であるデータ数をFN(False Negative)個とし、推論モデルが正解でないと推論して、実際にも正解でないデータ数をTN(True Negative)個としている。
【0057】
ここで、適合率は、TP/(TP+FP)で表すことができる統計指標の一つであり、推論モデルが正解であると推論したデータ数のうち、実際に正解であるデータ数の割合を意味する。また、再現率は、TP/(TP+FN)で表すことができる統計指標の一つであり、実際に正解であるデータ数のうち、推論モデルが正解であると推論したデータ数の割合を意味する。
【0058】
図3Aに示すように、量子化誤差は学習係数η
2の増加に伴い減少している。これにより、式(5)に示すコスト関数L(w)の正則化項は有効であることがわかる。一方、lossすなわち式(5)に示す誤差関数E(w)の値は、学習係数η
2の増加がある値を超えると急激に増加している。これにより、式(5)に示すコスト関数L(w)の正則化項における学習係数η
2の調整がさらに必要なのがわかる。
【0059】
また、
図3Bに示すように、学習係数η
2の増加に対して、適合率及び再現率で示される精度はほぼ横ばいである。つまり、学習係数η
2が増加すると、適合率及び再現率が向上するといった相関はみられない。さらに、
図3Bに示すように、学習係数η
2の増加がある値を超えると精度の劣化も見られる。
【0060】
このような精度の劣化は、
図3Aに示すlossすなわち式(5)に示す誤差関数E(w)の値の急激な増加と関連すると考えられ、式(5)に示す正則化項が強すぎることで学習を阻害していると考えられる。
【0061】
より具体的には、式(5)に示す誤差関数E(w)と正則化項との関係において、正則化項→0となるときに、常に、誤差関数→0とならないことに起因すると考えられる。
【0062】
そこで、本実施の形態では、コスト関数決定部101は、正則化項→0のとき、常に、コスト関数→0となる関係を満たす量子化誤差の関数を正則化項として用いたコスト関数を決定する。以下、これについて
図5A及び
図5Bを用いて説明する。
【0063】
図5Aは、実施の形態に係る精度と正則化項の関数値との関係を模式的に示す図である。
図5Bは、実施の形態に係る量子化誤差と正則化項の関数値との関係を模式的に示す図である。
【0064】
コスト関数決定部101が決定するコスト関数L(w)は、例えば、下記の式(6)のように表すことができる。式(6)において、η2は学習係数を示し、Ψ(w-wq)は量子化誤差の関数を示す。
【0065】
【0066】
【0067】
ここで、量子化誤差の関数の関数値が、上記の式(7)の関係を満たすとき、(w
q2時の精度)>(w
q1時の精度)を満たす。すなわち、式(7)の関係を満たすとき、量子化パラメータw
q2に対応する量子化ニューラルネットワーク(を構成する推論モデル)の出力値の精度は、量子化パラメータw
q1に対応する量子化ニューラルネットワーク(を構成する推論モデル)の出力値の精度よりもよいという関係を満たす。つまり、
図5Aには、式(6)で示される量子化誤差の関数Ψ(w-w
q)の関数値が小さいほど、コスト関数L(w)の関数値が小さい、すなわち精度がよいという関係が模式的に示されている。これは、正則化項→0のときコスト関数→0となる関係を満たすことを意味する。
【0068】
また、
図5Bには、量子化誤差の関数Ψ(w-w
q)は、単調増加または単調減少の関数ではないことが示されている。このように単調な関数でなくても
図5Aに示される負の相関がある量子化誤差の関数Ψ(w-w
q)で表される正則化項を用いることで、正則化項→0のときコスト関数→0とできることがわかる。なお、正則化項の具体的な決定方法については後述する。
【0069】
また、精度は、量子化ニューラルネットワークの出力値が、正解を推論したか否かを示す場合の適合率及び再現率に限らず、適合率、再現率、適合率及び前記再現率の調和平均により算出されるF値、並びに、正解率のうちの少なくとも一の組み合わせであればよい。
【0070】
ここで、量子化ニューラルネットワークが正解と推論した複数の出力値を第1データ群とすると、第1データ群は
図4に示すTP+FPで表すことができる。また、量子化ニューラルネットワークが正解でないと推論した複数の出力値を第2データ群とすると、第2データ群は
図4に示すFN+TNで表すことができる。また、量子化ニューラルネットワークが推論した全出力値において実際に正解である複数の出力値を第3データ群とすると、第3データ群は
図4に示すTP+FNで表すことができる。また、量子化ニューラルネットワークが正解でない推論した複数の出力値を第4データ群としたとすると、第4データ群は
図4に示すFP+TNで表すことができる。この場合、適合率は、第1データ群(TP+FP)のうち、実際に正解である複数の出力値である第5データ群(TP)の割合であり、再現率は、第3データ群(TP+FN)のうち、第5データ群(TP)の割合である。また、正解率は、全出力値(TP+FP+FN+TN)のうち、量子化ニューラルネットワークが推論した出力値と実際の出力値とが一致した第6データ群(TP+TN)の割合である。
【0071】
以上のような構成により、量子化パラメータ最適化装置10は、過学習を防ぎながら量子化誤差を考慮して量子化パラメータを最適化することができる。
【0072】
[1-2.ハードウェア構成]
次に、本実施の形態に係る量子化パラメータ最適化装置10のハードウェア構成について、
図6を用いて説明する。
図6は、本実施の形態に係る量子化パラメータ最適化装置10の機能をソフトウェアにより実現するコンピュータ1000のハードウェア構成の一例を示す図である。
【0073】
コンピュータ1000は、
図6に示すように、入力装置1001、出力装置1002、CPU1003、内蔵ストレージ1004、RAM1005、読取装置1007、送受信装置1008及びバス1009を備えるコンピュータである。入力装置1001、出力装置1002、CPU1003、内蔵ストレージ1004、RAM1005、読取装置1007及び送受信装置1008は、バス1009により接続される。
【0074】
入力装置1001は入力ボタン、タッチパッド、タッチパネルディスプレイなどといったユーザインタフェースとなる装置であり、ユーザの操作を受け付ける。なお、入力装置1001は、ユーザの接触操作を受け付ける他、音声での操作、リモコン等での遠隔操作を受け付ける構成であってもよい。
【0075】
内蔵ストレージ1004は、フラッシュメモリなどである。また、内蔵ストレージ1004は、量子化パラメータ最適化装置10の機能を実現するためのプログラム、及び、量子化パラメータ最適化装置10の機能構成を利用したアプリケーションの少なくとも一方が、予め記憶されていてもよい。
【0076】
RAM1005は、ランダムアクセスメモリ(Random Access Memory)であり、プログラム又はアプリケーションの実行に際してデータ等の記憶に利用される。
【0077】
読取装置1007は、USB(Universal Serial Bus)メモリなどの記録媒体から情報を読み取る。読取装置1007は、上記のようなプログラムやアプリケーションが記録された記録媒体からそのプログラムやアプリケーションを読み取り、内蔵ストレージ1004に記憶させる。
【0078】
送受信装置1008は、無線又は有線で通信を行うための通信回路である。送受信装置1008は、例えばネットワークに接続されたサーバ装置と通信を行い、サーバ装置から上記のようなプログラムやアプリケーションをダウンロードして内蔵ストレージ1004に記憶させる。
【0079】
CPU1003は、中央演算処理装置(Central Processing Unit)であり、内蔵ストレージ1004に記憶されたプログラム、アプリケーションをRAM1005にコピーし、そのプログラムやアプリケーションに含まれる命令をRAM1005から順次読み出して実行する。
【0080】
[1-3.量子化パラメータ最適化方法]
次に、本実施の形態に係る量子化パラメータ最適化方法について、
図7を用いて説明する。
図7は、本実施の形態に係る量子化パラメータ最適化方法を示すフローチャートである。
【0081】
図7に示されるように、量子化パラメータ最適化方法では、まず、量子化ニューラルネットワークのコスト関数を決定する(S100)。本実施の形態では、量子化パラメータ最適化装置10は、量子化ニューラルネットワーク(で構成される推論モデル)の出力値と期待される正解値との誤差を求める関数である誤差関数に、量子化誤差の関数である正則化項を加えたコスト関数を決定する。
【0082】
続いて、量子化パラメータ最適化装置10は、ステップS100で決定されたコスト関数を用いて量子化パラメータを更新する(S101)。本実施の形態では、量子化パラメータ最適化装置10は、量子化パラメータの更新を繰り返し実行する。
【0083】
続いて、量子化パラメータ最適化装置10は、ステップS101の結果から、量子化パラメータを決定する(S102)。本実施の形態では、量子化パラメータ最適化装置10は、ステップS101を繰り返した結果、コスト関数により導出される関数値が、所定の条件を満たした場合の量子化パラメータを、量子化ニューラルネットワークの最適化された量子化パラメータとして決定する。
【0084】
以上のように、本実施の形態に係る量子化パラメータ最適化方法によれば、過学習を防ぎながら量子化誤差を考慮して量子化パラメータを最適化することができる。
【0085】
次に、量子化パラメータ最適化装置10がコスト関数を決定するために用いる正則化項の決定方法について説明する。以下では、正則化項決定部により正則化項が決定されるとして説明する。
【0086】
[1-4.正則化項決定部]
図8は、本実施の形態に係る正則化項決定部20が行う決定処理の概要を説明するための図である。
【0087】
正則化項決定部20は、本実施の形態に係る正則化項を決定する装置である。本実施の形態では、正則化項決定部20は、決定した正則化項を記憶部21に記憶する。正則化項決定部20は、決定した正則化項を量子化パラメータ最適化装置10に出力してもよい。
【0088】
より具体的には、正則化項決定部20は、テストデータ60と、重み誤差パラメータを与えた最適化前の量子化ニューラルネットワーク50aとを用いて、量子化誤差と最適化前の量子化ニューラルネットワーク50aの精度とのデータセットからなる学習データを作成する。ここで、重み誤差パラメータは、量子化パラメータ候補として、重みパラメータにランダムに複数の誤差を与えたものである。そして、正則化項決定部20は、作成した学習データを用いて、SVM(サポートベクターマシン)による学習を行うことで得た分離境界面に基づき、正則化項を決定する。なお、SVMとは、2クラスに分類されたデータを、明確に2クラスに分離する境界(境界線または境界面)を決定するための方法である。SVMは、境界から最も近いベクトル(サポートベクトル)との距離を表すマージンを最大化するという方法で、上記の境界を決定する。
【0089】
図9は、本実施の形態に係る正則化項決定部20の機能構成を示すブロック図である。
【0090】
図9に示されるように、正則化項決定部20は、学習データ作成部201と、学習実行部202と、正則化項導出部203とを備える。
【0091】
<学習データ作成部201>
学習データ作成部201は、重みパラメータに複数の誤差を加えた重み誤差パラメータを与えた量子化ニューラルネットワークを用いて得た、テストデータに対する出力値それぞれの精度が所定の基準より高いまたは低いことを示すラベルを、当該出力値に対応する当該重み誤差パラメータに付与する。このようにして、学習データ作成部201は、重み誤差パラメータと精度とのデータセットからなる学習データを作成する。
【0092】
本実施の形態では、まず、学習データ作成部201は、重みパラメータにランダムに求めた複数の誤差を加えた重み誤差パラメータを与えた最適化前の量子化ニューラルネットワーク50aを用いて、テストデータ60に対する出力値を得る。次に、学習データ作成部201は、得た出力値それぞれの精度が、所定の基準より高いまたは低いことを示すラベルを、当該出力値に対応する重み誤差パラメータに付与することで、重み誤差パラメータと精度とのデータセットからなる学習データを作成し、記憶部21に記憶する。ここで、所定の基準は、例えば、実数値または浮動小数点精度(float)で表現される重みパラメータを与えた最適化前の量子化ニューラルネットワーク50aを用いてテストデータ60に対する出力値を得たときの当該出力値の精度である。
【0093】
また、学習データ作成部201は、得た出力値それぞれの精度を、所定の基準より高いか低いかの2つに分類して、分類した結果を示すラベルを当該出力値に対応する重み誤差パラメータに付与する。なお、重み誤差パラメータは、量子化誤差に対応するものである。これにより、学習データ作成部201は、量子化誤差と精度との相関関係を示すデータセットからなる学習データを作成することができる。
【0094】
<学習実行部202>
学習実行部202は、学習データ作成部201が作成した学習データを用いて、SVMによる学習を行う。この結果、学習実行部202は、重み誤差パラメータを所定の基準より高い精度の出力値に対応する重み誤差パラメータと、所定の基準より低い精度の出力値に対応する重み誤差パラメータとに分離する面である分離境界面を得る。SVMによる学習としては、例えば線形2class SVMによる学習または非線形one class SVMによる学習がある。
【0095】
なお、線形2class SVMによる学習は、線形SVMとも称され、2つのクラスのサポートベクタを基準として、それらのユークリッド距離が最大化(マージン最大化)するように、分離境界面を学習することである。これにより、2つのクラスを完全に分離できる分離境界面を得ることができる。一方、非線形one class SVMによる学習は、教師データ(正常データ)として1つのクラス分を学習させることである。この結果、教師データ(正常データ)と、教師データ(正常データ)から外れた値となる外れデータとの分離境界面を得ることである。
【0096】
本実施の形態では、学習実行部202は、学習データ作成部201が作成した学習データを用い、機械学習としてSVMによる学習を行う。より具体的には、学習実行部202は、学習データに含まれる、2クラスのいずれかに分類されたことを示すラベルが付された重み誤差パラメータを、2クラスにクリアに分類する分離境界面を求める。換言すると、学習実行部202は、所定の基準より低い精度の出力値に対応する量子化誤差悪化グループと、所定の基準より高い精度の出力値に対応する量子化誤差良化グループとを最もクリアに分類する分離境界面を求める。
【0097】
ここで、線形2class SVMによる学習を行い、分離境界面を得る場合の例について、
図10A~
図10Cを用いて説明する。なお、以下では、重み誤差パラメータは2次元であるとして説明する。
【0098】
図10Aは、本実施の形態に係る重みパラメータが2次元のときの、ラベル付けされた重み誤差パラメータの分布を模式的に示す図である。
図10Bは、
図10Aに示す分布に対して線形2class SVMによる学習を行った結果を模式的に示す図である。
図10Cは、
図10Aに示す分布に対して得られた分離境界面を模式的に示す図である。
【0099】
図10Aには、精度が所定の基準以上の(出力値に対応する)重み誤差パラメータと、精度が所定の基準より劣化している(出力値に対応する)重み誤差パラメータとが示されている。学習実行部202は、
図10Aに示される重み誤差パラメータに対して、線形2class SVMによる学習を行い、精度が所定の基準以上の重み誤差パラメータと、精度が所定の基準より劣化している重み誤差パラメータとをクリアに分離することができる境界を求める。この結果、学習実行部202は、例えば
図10Bに示すようなベストすなわちマージン最大となる境界を求めることができる。そして、学習実行部202は、
図10Bに示す境界を、例えば
図10Cに示すように、g(x)=0で表される分離境界面として得ることができる。
【0100】
なお、重み誤差パラメータが2次元であり、分離境界面として直線で2つのグループに分類できる場合について説明したが、直線で分離できないケースもある。
【0101】
図11Aは、本実施の形態に係る重み誤差パラメータを直線では2クラスに分離できない場合の例を模式的に示す図である。
図11Bは、
図11Aに示す重み誤差パラメータを高次元に拡張することにより平面で2クラスに分離できる場合の例を模式的に示す図である。
【0102】
つまり、例えば、重み誤差パラメータが
図11Aに示すような分布を示す場合、どのような直線を用いても、精度が所定の基準以上の重み誤差パラメータと、精度が所定の基準より劣化している重み誤差パラメータとをクリアに分離できない。このような場合、重み誤差パラメータを例えば3次元など、より高次元に拡張すれば、平面で分離できる。このように、重み誤差パラメータを高次元へと拡張した場合、直線を用いて分離可能(線形分離可能)な場合と同様に、境界(境界面)との距離を考えることができる。
【0103】
そして、このような場合、線形2class SVMによる学習または非線形one class SVMによる学習を行うことで、g(x)=0で表される分離境界面を得ることができる。
【0104】
以上から、学習実行部202は、SVMによる学習を行うことで分離境界面を得ることができる。つまり、学習実行部202は、SVMによる学習として、線形2class SVMによる学習または非線形one class SVMによる学習を行い、g(x)=0で表される分離境界面を得ることができる。
【0105】
<正則化項導出部203>
正則化項導出部203は、学習実行部202により得た、g(x)=0で表される分離境界面から、関数であるg(x)を導出し、導出したg(x)に基づいて、正則化項Ψを決定する。
【0106】
本実施の形態では、正則化項導出部203は、導出したg(x)の極性を逆にした「-g(x)」を正則化項Ψとして決定してもよいし、単調増加かつ値域が(-1、1)となるtanhを用いて、g(x)の関数であるtanh(-g(x))を正則化項Ψとして決定してもよい。
【0107】
例えば、正則化項導出部203は、SVMによる学習として、線形2class SVMによる学習を行うことで分離境界面を得た場合、下記の(式8)で表されるg(x)を導出する。
【0108】
ATx+b=g(x)・・・(式8)
【0109】
ここで、xはn次元ベクトルの量子化誤差であり、Aはn次元ベクトルであり、bは定数である。
【0110】
図12は、本実施の形態に係る分離境界面から正則化項を導出する方法を説明するための図である。
図12には、
図10Cで示される重み誤差パラメータの分布に対応する量子化誤差の分布における分離境界面を表すg(x)=0が示されている。ここで、式(8)で示されるg(x)は、xと分離境界面(g(x)=0)との距離に比例する値を示す関数である。式(8)において、Aは、n次元ベクトルであり、分離境界面に対して法線方向を表す。
図12に示す分離境界面を表すg(x)=0から、式(8)におけるAとbとを求めることができる。つまり、分離境界面を表すg(x)=0から、式(8)で表されるg(x)を導出することができる。
【0111】
例えば
図12に示す量子化誤差の分布のように、g(x)>0の領域では、精度が良くなるとすると、g(x)の関数値が大きくなれば、精度も良くなるという傾向があるのがわかる。この場合、導出したg(x)の極性を逆にした-g(x)を正則化項として決定すれば、決定した正則化項は量子化誤差の関数で表すことができ、かつ、精度と負の相関をもつことになる。
【0112】
したがって、本実施の形態では、正則化項導出部203は、導出したg(x)の極性を逆にした-g(x)を正則化項Ψとして決定してもよいことがわかる。また、正則化項導出部203は、tanh(-g(x))を正則化項Ψとしてもよい。tanhを用いると、-g(x)の関数値を単調増加でかつ(-1、1)の範囲にさせることができるので、コスト関数の演算が行いやすくなるという利点がある。
【0113】
また、量子化誤差の分布を直線で分離(線形分離)できない場合、量子化誤差の分布を高次元へと拡張することで、平面(超平面)で分離することができる。このような場合、非線形one class SVMによる学習を行い、g(x)=0で表される分離境界面を得る場合、分離境界面を下記の(式9)の左辺が0である場合の形で表すことができるので、g(x)を導出することができる。
【0114】
したがって、正則化項導出部203は、SVMによる学習として、非線形one class SVMによる学習を行うことで、分離境界面を得た場合、下記の(式9)で表されるg(x)を導出することができる。量子化誤差の分布を高次元へ拡張しない場合でも、SVMによる学習として、非線形one class SVMによる学習を行ってもよいのはいうまでもない。
【0115】
【0116】
ここで、α
iは係数であり、Kはカーネル関数であり、
【数11】
はサポートベクタであり、bは定数である。
【0117】
また、カーネル関数は、例えば、式(10)で表されるガウシアンカーネルでもよい。
【0118】
【0119】
なお、SVMのアルゴリズムでは、特徴空間でのデータがすべて内積として現れる。このため、カーネル関数を用いることで、特徴空間にデータを写像したときの具体的な関数の形がわからなくても内積が計算できる。さらに、高次元の特徴空間で内積を計算する必要がなく、入力空間でカーネル関数を計算すればよいので、計算量とメモリを大幅に削減できるメリットがある。
【0120】
つまり、カーネル関数を用いた形でg(x)を導出することで、g(x)に基づき決定された正則化項を用いたコスト関数の関数値の計算する計算量とメモリを大幅に削減できる。
【0121】
なお、カーネル関数は、式(10)で表されるガウシアンカーネルである場合に限らない。例えば、下記の式(11)で表されるシグモイドカーネルまたは下記の式(12)で表される多項式カーネルを用いてもよい。式(12)においてpは次数を示す。
【0122】
【0123】
【0124】
このようにして、正則化項導出部203は、導出したg(x)の極性を逆にした-g(x)またはtanhを用いたtanh(-g(x))を正則化項Ψとして決定することができる。そして、正則化項導出部203は、決定した正則化項Ψを記憶部21に記憶させるとともに、量子化パラメータ最適化装置10に出力することができる。
【0125】
[1-5.正則化項導出方法]
次に、本実施の形態に係る正則化項導出方法について
図13を用いて説明する。
図13は、本実施の形態に係る正則化項導出方法を示すフローチャートである。
【0126】
図13に示されるように、正則化項導出方法では、まず、学習データを作成する(S91)。本実施の形態では、正則化項決定部20は、実数値または浮動小数点精度(float)の重みにランダムな誤差を加えた重み誤差を与えた最適化前の量子化ニューラルネットワーク50aを用いて得た、テストデータ60に対する出力値を得る。正則化項決定部20は、得た出力値それぞれの精度が所定の基準より高いか低いかの2クラスに分類するすラベルを、当該出力値に対応する重み誤差に付与する。このようにして正則化項決定部20は、重み誤差と精度とのデータセットからなる学習データを作成する。なお、重み誤差は、元の重みを差分することで、量子化誤差となるため、量子化誤差と精度とのデータセットからなる学習データを作成することと同じ意味となる。
【0127】
続いて、正則化項決定部20は、ステップS91で作成した学習データを用いて、SVMによる学習を実行する(S92)。本実施の形態では、正則化項決定部20は、ステップS91で作成した学習データを用いて、線形2class SVMによる学習または非線形one class SVMによる学習を実行する。これにより、正則化項決定部20は、g(x)=0で表される分離境界面を得る。
【0128】
続いて、正則化項決定部20は、ステップS92において得たg(x)=0で表される分離境界面に基づき、正則化項を決定する(S93)。本実施の形態では、正則化項決定部20は、g(x)=0で表される分離境界面から、g(x)を導出する。そして、正則化項決定部20は、導出したg(x)に基づき、-g(x)またはtanh(-g(x))を正則化項として決定する。
【0129】
以上のように、本実施の形態に係る正則化項導出方法によれば、正則化項Ψの関数値と、量子化ニューラルネットワークが正解を推論する度合いを示す精度との間には負の相関があるような正則化項Ψを導出することができる。
【0130】
[1-6.効果等]
以上のように、本実施の形態によれば、正則化項Ψの関数値と、量子化ニューラルネットワークが正解を推論する度合いを示す精度との間には負の相関があるような正則化項Ψを導出することができる。これにより、導出した正則化項Ψを誤差関数に加えたコスト関数を決定することができる。
【0131】
さらに、本実施の形態によれば、このようなコスト関数を用いることで、過学習を防ぎながら量子化誤差を考慮して量子化パラメータを最適化することができる。
【0132】
ここで、線形2class SVMを用いて、正則化項を導出するに至る処理手順の概要と非線形one class SVMを用いて、正則化項を導出するに至る処理手順の概要について説明する。
【0133】
図14は、実施の形態に係る線形2class SVMを用いて、正則化項を導出するに至る処理手順の全体像を模式的に示す図である。
図15は、非線形one class SVMを用いて、正則化項を導出するに至る処理手順の全体像を模式的に示す図である。
図14及び
図15において、重み誤差パターン#1等は、上記の実施の形態における重み誤差パラメータに該当する。ラベル#1等はそれぞれ、ラベルが付された重み誤差パターンであり、上記の実施の形態における重み誤差パラメータと精度とのデータセットからなる学習データに該当する。
図14及び
図15の違いは、SVMによる学習として、線形2class SVMによる学習または非線形one class SVMによる学習を用いる点であり、これにより、導出されるg(x)の形は異なる。
【0134】
ここで、SVMのアルゴリズムでは、特徴空間でのデータがすべて内積として現れる。
【0135】
図14に示されるg(x)は、線形2class SVMによる学習により得られるので、g(x)が単純な内積として現れる。このため、tanh(-g(x)を正則化項として用いることで、コスト関数の関数値(loss)を容易に計算できる。
【0136】
一方、
図15に示されるg(x)は、非線形one class SVMによる学習により、カーネル関数を用いて表される形で得られる。なお、非線形one class SVMでは、学習データのうち正常データとなるすべての教師データをクラスタ1とし、原点のみをクラスタ-1に属するようにカーネルトリックといわれる手法を用いて、高次元空間の特徴空間へ教師データを写像する。このとき、教師データは原点から遠くに配置されるように写像されるため、教師データに類似していない学習データは原点の近くに集まるようになる。したがって、線形2class SVMを用いる場合と比較すると、分離性能は高いと言える。
【0137】
図15に示されるg(x)は、カーネル関数を用いて表されることで、具体的な関数の形がわからなくても内積が計算できる。これにより、複雑なコスト関数の関数値(loss)を演算できる。
【0138】
(その他の実施の形態)
以上、本開示に係る量子化パラメータ最適化方法などについて、各実施の形態に基づいて説明したが、本開示は、これらの実施の形態に限定されるものではない。本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を各実施の形態に施したものや、各実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲内に含まれる。
【0139】
また、以下に示す形態も、本開示の一つ又は複数の態様の範囲内に含まれてもよい。
【0140】
(1)上記の量子化パラメータ最適化装置を構成する構成要素の一部は、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムであってもよい。前記RAM又はハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0141】
(2)上記の量子化パラメータ最適化装置を構成する構成要素の一部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0142】
(3)上記の量子化パラメータ最適化装置を構成する構成要素の一部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【0143】
(4)また、上記の量子化パラメータ最適化装置を構成する構成要素の一部は、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0144】
また、上記の量子化パラメータ最適化装置を構成する構成要素の一部は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0145】
(5)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0146】
(6)また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0147】
(7)また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0148】
(8)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【0149】
本開示は、ニューラルネットワークのコンピュータなどへの実装方法として、画像処理方法、音声認識方法または物体制御方法などに利用できる。
【符号の説明】
【0150】
10 量子化パラメータ最適化装置
11、21 記憶部
20 正則化項決定部
50a 最適化前の量子化ニューラルネットワーク
50b 最適化後の量子化ニューラルネットワーク
60 テストデータ
101 コスト関数決定部
102 量子化パラメータ更新部
103 量子化パラメータ決定部
201 学習データ作成部
202 学習実行部
203 正則化項導出部
1000 コンピュータ
1001 入力装置
1002 出力装置
1003 CPU
1004 内蔵ストレージ
1005 RAM
1007 読取装置
1008 送受信装置
1009 バス