(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】ニューラルネットワーク量子化方法、装置及びプログラム
(51)【国際特許分類】
G06N 3/0495 20230101AFI20240702BHJP
G06N 3/02 20060101ALI20240702BHJP
G06N 10/00 20220101ALI20240702BHJP
【FI】
G06N3/0495
G06N3/02
G06N10/00
(21)【出願番号】P 2021009978
(22)【出願日】2021-01-26
【審査請求日】2023-04-10
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】100113549
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】230121430
【氏名又は名称】安井 友章
(72)【発明者】
【氏名】森 政文
【審査官】新井 則和
(56)【参考文献】
【文献】特開2020-113273(JP,A)
【文献】国際公開第2020/248424(WO,A1)
【文献】中国特許出願公開第110929838(CN,A)
【文献】特開2019-032833(JP,A)
【文献】国際公開第2020/065874(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/0495
G06N 3/02
G06N 10/00
(57)【特許請求の範囲】
【請求項1】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得ステップと、
前記統計情報に基づいて
、前記量子化対象レイヤの重み又は特徴量の分布範囲から前記参照レイヤにおいて無効となる領域の少なくとも一部分を除外するように、前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定ステップと、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化ステップと、
を具備するニューラルネットワーク量子化方法。
【請求項2】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得ステップと、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定ステップと、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化ステップと、
を具備し、
前記参照レイヤは、前記量子化対象レイヤの後段のレイヤであり、
前記統計情報は、前記参照レイヤの特徴量の分布範囲を示す情報であり、
前記量子化範囲決定ステップは、前記参照レイヤの特徴量の分布範囲外の少なくとも一部を除外するように前記量子化対象レイヤの特徴量の前記量子化範囲を決定する、
ニューラルネットワーク量子化方法。
【請求項3】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得ステップと、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定ステップと、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化ステップと、
を具備し、
前記参照レイヤは、前記量子化対象レイヤの後段の活性化関数を適用する活性化レイヤであり、
前記統計情報は、前記活性化レイヤの活性化関数の飽和領域を示す情報であり、
前記量子化範囲決定ステップは、前記活性化レイヤの活性化関数の飽和領域を除外するように前記量子化対象レイヤの特徴量の前記量子化範囲を決定する、
ニューラルネットワーク量子化方法。
【請求項4】
前記活性化関数は、非飽和領域が線形関数から形成されている、
請求項3に記載のニューラルネットワーク量子化方法。
【請求項5】
前記活性化関数は、非飽和領域が非線形関数から形成されている、
請求項3に記載のニューラルネットワーク量子化方法。
【請求項6】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得ステップと、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定ステップと、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化ステップと、
を具備し、
前記参照レイヤは、前記量子化対象レイヤの後段のレイヤであり、
前記統計情報は、前記参照レイヤの指標であり、
前記量子化範囲決定ステップは、前記指標を最適化するように
前記量子化範囲自体を順次変化させて前記量子化範囲を更新していくことで前記量子化範囲を決定する、
ニューラルネットワーク量子化方法。
【請求項7】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得ステップと、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定ステップと、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化ステップと、
を具備し、
前記参照レイヤは、前記量子化対象レイヤの後段のレイヤであり、
前記統計情報は、前記参照レイヤの指標であり、
前記量子化範囲決定ステップは、前記指標を最適化するように前記量子化範囲を決定し、
前記量子化ステップは、さらに前記量子化範囲をクリッピングの閾値としてクリッピング処理を行い、
前記指標は、量子化又はクリッピング処理により発生する演算誤差である、
ニューラルネットワーク量子化方法。
【請求項8】
前記参照レイヤは、最終出力レイヤであり、
前記指標は、前記最終出力レイヤの認識精度である、
請求項6に記載のニューラルネットワーク量子化方法。
【請求項9】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得部(21)と、
前記統計情報に基づいて
、前記量子化対象レイヤの重み又は特徴量の分布範囲から前記参照レイヤにおいて無効となる領域の少なくとも一部分を除外するように、前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定部(22)と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化部(23)と、
を具備するニューラルネットワーク量子化装置。
【請求項10】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得部と、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定部と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化部と、
を具備し、
前記参照レイヤは、前記量子化対象レイヤの後段のレイヤであり、
前記統計情報は、前記参照レイヤの特徴量の分布範囲を示す情報であり、
前記量子化範囲決定部は、前記参照レイヤの特徴量の分布範囲外の少なくとも一部を除外するように前記量子化対象レイヤの特徴量の前記量子化範囲を決定する、
ニューラルネットワーク量子化装置。
【請求項11】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得部と、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定部と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化部と、
を具備し、
前記参照レイヤは、前記量子化対象レイヤの後段の活性化関数を適用する活性化レイヤであり、
前記統計情報は、前記活性化レイヤの活性化関数の飽和領域を示す情報であり、
前記量子化範囲決定部は、前記活性化レイヤの活性化関数の飽和領域を除外するように前記量子化対象レイヤの特徴量の前記量子化範囲を決定する、
ニューラルネットワーク量子化装置。
【請求項12】
前記活性化関数は、非飽和領域が線形関数から形成されている、
請求項11に記載のニューラルネットワーク量子化装置。
【請求項13】
前記活性化関数は、非飽和領域が非線形関数から形成されている、
請求項11に記載のニューラルネットワーク量子化装置。
【請求項14】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得部と、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定部と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化部と、
を具備し、
前記参照レイヤは、前記量子化対象レイヤの後段のレイヤであり、
前記統計情報は、前記参照レイヤの指標であり、
前記量子化範囲決定部は、前記指標を最適化するように
前記量子化範囲自体を順次変化させて前記量子化範囲を更新していくことで前記量子化範囲を決定する、
ニューラルネットワーク量子化装置。
【請求項15】
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得部と、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定部と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化部と、
を具備し、
前記参照レイヤは、前記量子化対象レイヤの後段のレイヤであり、
前記統計情報は、前記参照レイヤの指標であり、
前記量子化範囲決定部は、前記指標を最適化するように前記量子化範囲を決定し、
前記量子化部は、さらに前記量子化範囲をクリッピングの閾値としてクリッピング処理を行い、
前記指標は、量子化又はクリッピング処理により発生する演算誤差である、
ニューラルネットワーク量子化装置。
【請求項16】
前記参照レイヤは、最終出力レイヤであり、
前記指標は、前記最終出力レイヤの認識精度である、
請求項14に記載のニューラルネットワーク量子化装置。
【請求項17】
コンピュータに、
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得機能と、
前記統計情報に基づいて
、前記量子化対象レイヤの重み又は特徴量の分布範囲から前記参照レイヤにおいて無効となる領域の少なくとも一部分を除外するように、前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定機能と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化機能と、
を実現させるニューラルネットワーク量子化プログラム。
【請求項18】
コンピュータに、
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得機能と、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定機能と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化機能と、
を実現させ、
前記参照レイヤは、前記量子化対象レイヤの後段のレイヤであり、
前記統計情報は、前記参照レイヤの特徴量の分布範囲を示す情報であり、
前記量子化範囲決定機能は、前記参照レイヤの特徴量の分布範囲外の少なくとも一部を除外するように前記量子化対象レイヤの特徴量の前記量子化範囲を決定する、
ニューラルネットワーク量子化プログラム。
【請求項19】
コンピュータに、
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得機能と、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定機能と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化機能と、
を実現させ、
前記参照レイヤは、前記量子化対象レイヤの後段の活性化関数を適用する活性化レイヤであり、
前記統計情報は、前記活性化レイヤの活性化関数の飽和領域を示す情報であり、
前記量子化範囲決定機能は、前記活性化レイヤの活性化関数の飽和領域を除外するように前記量子化対象レイヤの特徴量の前記量子化範囲を決定する、
ニューラルネットワーク量子化プログラム。
【請求項20】
コンピュータに、
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得機能と、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定機能と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化機能と、
を実現させ、
前記参照レイヤは、前記量子化対象レイヤの後段のレイヤであり、
前記統計情報は、前記参照レイヤの指標であり、
前記量子化範囲決定機能は、前記指標を最適化するように前記量子化範囲自体を順次変化させて前記量子化範囲を更新していくことで前記量子化範囲を決定する、
ニューラルネットワーク量子化プログラム。
【請求項21】
コンピュータに、
量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得機能と、
前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定機能と、
前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化機能と、
を実現させ、
前記参照レイヤは、前記量子化対象レイヤの後段のレイヤであり、
前記統計情報は、前記参照レイヤの指標であり、
前記量子化範囲決定機能は、前記指標を最適化するように前記量子化範囲を決定し、
前記量子化機能は、さらに前記量子化範囲をクリッピングの閾値としてクリッピング処理を行い、
前記指標は、量子化又はクリッピング処理により発生する演算誤差である、
ニューラルネットワーク量子化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークにおいて量子化を行うニューラルネットワーク量子化方法、装置及びプログラムに関する。
【背景技術】
【0002】
従来、ニューラルネットワークにおいて、ビット数を低下させる量子化を行い、演算量を減少させて演算速度を向上させることが行われている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のニューラルネットワークにおける量子化では、量子化の対象となる量子化対象レイヤの統計情報のみに基づいて、量子化対象レイヤの量子化を行う量子化範囲を決定している。このため、量子化により発生する量子化誤差が大きくなっている。
【0005】
本発明は上記課題に鑑みてなされたものであり、その目的は、量子化誤差を減少させることが可能なニューラルネットワーク量子化方法、装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明の第1実施態様は、量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得ステップと、前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定ステップと、前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化ステップと、を具備するニューラルネットワーク量子化方法である。
【0007】
本発明の第2実施態様は、量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得部(21)と、前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定部(22)と、前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化部(23)と、を具備するニューラルネットワーク量子化装置である。
【0008】
本発明の第3実施態様は、コンピュータに、量子化対象レイヤ以外の参照レイヤから統計情報を取得する統計情報取得機能と、前記統計情報に基づいて前記量子化対象レイヤの重み又は特徴量の量子化範囲を決定する量子化範囲決定機能と、前記量子化範囲において前記量子化対象レイヤの重み又は特徴量を量子化する量子化機能と、を実現させるニューラルネットワーク量子化プログラムである。
【発明の効果】
【0009】
本発明では、量子化誤差を減少させることが可能となっている。
【図面の簡単な説明】
【0010】
【
図1】本発明の第1実施形態のニューラルネットワーク装置を示すブロック図。
【
図2】本発明の第1実施形態のニューラルネットワーク量子化方法を示すフロー図。
【
図3】本発明の第1実施形態のニューラルネットワーク量子化方法を説明するための模式図。
【
図4】本発明の第2実施形態のニューラルネットワーク装置を示すブロック図。
【
図5】本発明の第2実施形態のニューラルネットワーク量子化方法を示すフロー図。
【
図6】本発明の第2実施形態のニューラルネットワーク量子化方法を説明するための模式図。
【
図7】本発明の第3実施形態のニューラルネットワーク装置を示すブロック図。
【
図8】本発明の第3実施形態のニューラルネットワーク量子化方法を示すフロー図。
【
図9】本発明の第3実施形態のニューラルネットワーク量子化方法を説明するための模式図。
【
図10】本発明の第4実施形態のニューラルネットワーク装置を示すブロック図。
【
図11】本発明の第4実施形態のニューラルネットワーク量子化方法を示すフロー図。
【発明を実施するための形態】
【0011】
図1乃至
図3を参照して、本発明の第1実施形態について説明する。
本実施形態では、量子化対象レイヤとしての畳み込みレイヤ11に加えて、参照レイヤとしての活性化レイヤ12及びプーリングレイヤ13から、統計情報として、特徴量の分布範囲を示す情報である特徴量の分布範囲の最大値及び最小値を取得し、活性化レイヤ12及びプーリングレイヤ13の特徴量の分布範囲外の少なくとも一部を除外するように、各レイヤにおける最大値及び最小値に基づいて、畳み込みレイヤ11の特徴量の量子化範囲を決定するようにしている。
【0012】
図1を参照して、本実施形態のニューラルネットワーク装置について概説する。
図1に示されるように、ニューラルネットワーク装置は、ニューラルネットワークと、ニューラルネットワークにおいて量子化を行うニューラルネットワーク量子化装置と、から形成されている。ニューラルネットワークでは、畳み込み演算を実行する畳み込みレイヤ11、活性化関数を適用する活性化レイヤ12、プーリングを実行するプーリングレイヤ13が順に配置されている。ニューラルネットワーク量子化装置では、統計情報取得部21は、畳み込みレイヤ11に加えて、活性化レイヤ12及びプーリングレイヤ13から、特徴量の分布範囲の最大値及び最小値を取得する。量子化範囲決定部22は、統計情報取得部21によって取得された各レイヤにおける特徴量の分布範囲の最大値及び最小値に基づいて、活性化レイヤ12及びプーリングレイヤ13の特徴量の分布範囲外の少なくとも一部を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定する。量子化部23は、量子化範囲決定部22によって決定された量子化範囲において、畳み込みレイヤ11の特徴量を量子化する。
【0013】
ここで、量子化後のビット数が同一であれば、量子化範囲が小さいほど量子化間隔が小さくなり、量子化により発生する量子化誤差が減少する。そして、畳み込みレイヤ11の特徴量の量子化において、活性化レイヤ12又はプーリングレイヤ13の特徴量の分布範囲外の部分について量子化を行っても、活性化レイヤ12又はプーリングレイヤ13において無意味な無効領域が発生するだけである。このため、量子化範囲決定部22によって、活性化レイヤ12又はプーリングレイヤ13の特徴量の分布範囲外の少なくとも一部を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定することで、活性化レイヤ12又はプーリングレイヤ13において無効領域が発生するのを回避すると共に、畳み込みレイヤ11の特徴量の量子化範囲を小さくして、量子化後の量子化範囲内の量子化間隔を小さくしている。
【0014】
図2及び
図3を参照して、本実施形態のニューラルネットワーク量子化方法について詳細に説明する。
図2に示されるように、ニューラルネットワーク量子化方法については、以下の各ステップを有する。なお、本実施形態では、対称型の量子化(Symmetric Quantization)を用いる。
【0015】
統計情報取得ステップS21
統計情報取得ステップS21では、畳み込みレイヤ11に加えて、活性化レイヤ12及びプーリングレイヤ13から、特徴量の分布範囲の最大値及び最小値を取得する。
【0016】
図3(a)に示されるように、本実施形態では、ニューラルネットワークにおいて、畳み込み演算を実行する畳み込み処理、活性化関数を適用する活性化処理、プーリングを実行するプーリング処理を順に行う。活性化処理における活性化関数として,正規化線形関数(ReLU)を用い、プーリング処理におけるプーリングとして、最大プーリングを用いる。畳み込みレイヤ11、活性化レイヤ12、プーリングレイヤ13の特徴量の分布範囲の最大値及び最小値を、夫々、x
c
max及びx
c
min、x
a
max及びx
a
min、x
p
max及びx
p
minとする。
【0017】
量子化範囲決定ステップS22
量子化範囲決定ステップS22では、統計情報取得ステップS21において取得された各レイヤにおける特徴量の分布範囲の最大値及び最小値に基づいて、活性化レイヤ12及びプーリングレイヤ13の特徴量の分布範囲外の少なくとも一部を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定する。
【0018】
本実施形態では、次式(1-1)乃至(1-4)に示されるように、畳み込みレイヤ11、活性化レイヤ12、プーリングレイヤ13の各レイヤにおける最大値x
c
max、x
a
max、x
p
maxの内の最小値x
max
min、及び、各レイヤにおける最小値x
c
min、x
a
min、x
p
minの内の最大値x
min
maxを求め、両者の絶対値|x
max
min|及び|x
min
max|の内の最大値x
rを量子化範囲の閾値として、量子化範囲Rを-x
r以上x
r以下に決定する。
【数1】
【数2】
【数3】
【数4】
図3(a)及び
図3(b)に示されるように、畳み込みレイヤ11、活性化レイヤ12、プーリングレイヤ13の各レイヤにおける最大値x
c
max(>0)、x
a
max(>0)、x
p
max(>0)は互いに共通であり(x
c
max=x
a
max=x
p
max)、各レイヤにおける最大値の内の最小値x
max
minは当該共通値となる(x
max
min=x
c
max=x
a
max=x
p
max)。また、各レイヤにおける最小値x
c
min(<0)、x
a
min(=0)、x
p
min(>0)の内の最大値x
min
maxは、プーリングレイヤ13における最小値となる(x
min
max=x
p
min)。そして、各レイヤにおける最大値の内の最小値の絶対値|x
max
min|である共通値の絶対値|x
c
max|=|x
a
max|=|x
p
max|は、各レイヤにおける最小値の内の最大値の絶対値|x
min
max|であるプーリングレイヤ13における最小値の絶対値|x
p
min|よりも大きいので(|x
c
max|=|x
a
max|=|x
p
max|>|x
p
min|)、量子化範囲の閾値x
rについては共通値の絶対値となる(x
r=|x
c
max|=|x
a
max|=|x
p
max|)。このため、活性化レイヤ12、プーリングレイヤ13における最大値x
a
max、x
p
max以上の部分(x>x
r(=|x
c
max|=|x
a
max|=|x
p
max|)=x
a
max=x
p
max)、並びに、活性化レイヤ12、プーリングレイヤ13の最小値x
a
min、x
p
min以下の一部分(x<-x
r(=-|x
c
max|=-|x
a
max|=-|x
p
max|)<x
a
min<x
p
min)について、量子化範囲から除外されている。
【0019】
量子化ステップS23
量子化ステップS23では、量子化範囲決定ステップS22において決定された量子化範囲において、畳み込みレイヤ11の特徴量を量子化する。
【0020】
本実施形態では、次式(2)に示されるように、対称型の量子化を用い、NビットからLビットにビット数を低下させる。ここで、Δ
xは量子化間隔である。また、ビット数については、例えば、N=32、L=8となる。
【数5】
【0021】
ここで、量子化範囲決定ステップにおいて、活性化レイヤ12及びプーリングレイヤ13の特徴量の分布範囲外の少なくとも一部を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定しているため、活性化レイヤ12及びプーリングレイヤ13における無効領域の発生が回避されると共に、畳み込みレイヤ11の特徴量の量子化範囲が小さくなっており、量子化後の量子化範囲内の量子化間隔が小さくなっている。
【0022】
図3(b)に示されるように、本実施形態では、畳み込みレイヤ11の特徴量の量子化範囲Rについては、畳み込みレイヤ11の最小値x
c
minから量子化範囲の下限-x
r(=-|x
c
max|=-|x
a
max|=-|x
p
max|)まで小さくなっており、量子化後の量子化範囲内の量子化間隔Δ
xが小さくなっている。
【0023】
本実施形態との比較のため、
図3(c)を参照して、畳み込みレイヤ11の統計情報のみから量子化範囲を決定する比較形態について説明する。
本比較形態では、統計情報として、畳み込みレイヤ11の特徴量の分布範囲の最大値x
c
max及び最小値x
c
minのみを取得する。そして、次式(3)に示されるように、畳み込みレイヤ11における最大値x
c
max及び最小値x
c
minの絶対値|x
c
max|及び|x
c
min|の内の最大値を量子化範囲の閾値x
uとして、量子化範囲Uを-x
u以上x
u以下に決定する。
【数6】
【数7】
図3(c)に示されるように、本比較形態では、畳み込みレイヤ11における最小値x
c
min(<0)の絶対値|x
c
min|よりも、最大値x
c
max(>0)の絶対値|x
c
max|が小さくなっているため(|x
c
min|>|x
c
max|)、量子化範囲の閾値x
uについては、畳み込みレイヤ11における最小値x
c
minの絶対値|x
c
min|となる(x
u=|x
c
min|)。
【0024】
本比較形態では、畳込みレイヤの特徴量の量子化範囲Uについて、本実施形態の量子化範囲の上限xr(=|xc
max|)及び下限-xr(=-|xc
max|)から、夫々、本比較形態の量子化範囲の上限xu(=|xc
min|)及び下限-xu(=-|xc
min|)まで量子化範囲内が大きくなっているため、本実施形態よりも量子化後の量子化範囲内の量子化間隔Δxが大きくなっており、活性化レイヤ12において本実施形態では発生していない無効領域Iが発生している。
【0025】
本実施形態のニューラルネットワーク装置及びニューラルネットワーク量子化方法については、以下の効果を奏する。
本実施形態のニューラルネットワーク装置及びニューラルネットワーク量子化方法では、畳み込みレイヤ11に加えて、活性化レイヤ12及びプーリングレイヤ13から、特徴量の分布範囲の最大値及び最小値を取得し、各レイヤにおける特徴量の分布範囲の最大値及び最小値に基づいて、活性化レイヤ12及びプーリングレイヤ13の特徴量の分布範囲外の少なくとも一部を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定している。このため、活性化レイヤ12又はプーリングレイヤ13において無効領域が発生するのが回避されると共に、畳み込みレイヤ11の特徴量の量子化範囲が小さくされ、量子化後の量子化範囲内の量子化間隔が小さくなっている。従って、畳み込みレイヤ11の特徴量の量子化により発生する量子化誤差を減少させることが可能となっている。
【0026】
本実施形態では、特徴量の分布範囲を示す統計情報として、特徴量の分布範囲の最大値及び最小値を用いているが、特徴量の分布範囲の97%タイル、3%タイルを用いるようにしてもよい。
【0027】
図4乃至
図6を参照して、本発明の第2実施形態について説明する。
以下では、第1実施形態と同様の構成、ステップ等については説明を省略し、第1実施形態と相違する構成、ステップ等について説明する。
【0028】
本実施形態では、参照レイヤとしての活性化レイヤ12から、統計情報として、活性化関数の飽和領域を示す情報である飽和領域の閾値を取得し、活性化関数の飽和領域の閾値に基づいて、活性化関数の飽和領域を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定するようにしている。また、活性化関数は、飽和領域と、線形関数をなす非飽和領域とから形成されているため、上述した畳み込みレイヤ11の特徴量の量子化を行うことで、活性化関数を適用するのと同一の結果が得られ、活性化レイヤ12又は活性化処理を省略可能となっている。
【0029】
図4を参照して、本実施形態のニューラルネットワーク装置について概説する。
本実施形態の活性化レイヤ12において適用される活性化関数については、飽和領域と非飽和領域とからなり、飽和領域については、入力値にかかわらず一定の出力値を出力する関数であり、非飽和領域については、入力値と同一の出力値を出力する線形関数である。
【0030】
統計情報取得部21は、活性化レイヤ12から活性化関数の飽和領域の閾値を取得する。量子化範囲決定部22は、統計情報取得部21によって取得された活性化関数の飽和領域の閾値に基づいて、活性化レイヤ12の活性化関数の飽和領域を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定する。量子化部23は、量子化範囲決定部22によって決定された量子化範囲において、畳み込みレイヤ11の特徴量を量子化する。
【0031】
ここで、畳み込みレイヤ11の特徴量の量子化において、活性化レイヤ12の活性化関数の飽和領域について量子化を行っても、活性化レイヤ12において無意味な無効領域が発生するだけである。このため、活性化レイヤ12の活性化関数の飽和領域を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定することで、活性化レイヤ12において無効領域が発生するのを回避すると共に、畳み込みレイヤ11の特徴量の量子化範囲を小さくして、量子化後の量子化範囲内の量子化間隔を小さくしている。
【0032】
活性化レイヤ12の活性化関数については、入力値にかかわらず一定の出力値を出力する関数である飽和領域と、入力値と同一の出力値を出力する線形関数である非飽和領域とから形成されている。このため、活性化関数の飽和領域を除外するように量子化範囲を決定して、畳み込みレイヤ11の特徴量の量子化を行うことで、活性化関数を適用したのと同一の結果が得られる。従って、活性化関数を適用する活性化レイヤ12については省略することが可能である。
【0033】
図5及び
図6を参照して、本実施形態のニューラルネットワーク量子化方法について詳細に説明する。
図5に示されるように、ニューラルネットワーク量子化方法については、以下の各ステップを有する。なお、本実施形態では、非対称型(Asymmetric Quantization)の量子化を用いる。
【0034】
図6(a)に示されるように、本実施形態の活性化関数については、負の飽和領域S
-及び正の飽和領域S
+、並びに、非飽和領域S
0から形成されている。負の飽和領域S
-及び正の飽和領域S
+については、入力値にかかわらず夫々一定の出力値を出力する関数から形成されており、非飽和領域S
0については、入力値と同一の出力値を出力する線形関数から形成されている。ここで、負の飽和領域S
-の上限値をs
minとし、正の飽和領域S
+の下限値をs
maxとする。
【0035】
統計情報取得ステップS31
統計情報取得ステップS31では、活性化レイヤ12から活性化関数の飽和領域の閾値を取得する。本実施形態では、活性化関数の飽和領域の閾値として、負の飽和領域S-の上限値smin及び正の飽和領域S+の下限値smaxを取得する。
【0036】
量子化範囲決定ステップS32
量子化範囲決定ステップS32では、統計情報取得ステップS31において取得された活性化関数の飽和領域の閾値に基づいて、活性化レイヤ12の活性化関数の飽和領域を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定する。
【0037】
次式(4)及び
図6(b)に示されるように、本実施形態では、量子化範囲Rを負の飽和領域S
-の上限値s
min以上、正の飽和領域S
+の下限値s
max以下に決定する。
【数8】
このため、活性化関数の負の飽和領域S
-(<s
min)及び正の飽和領域S
+(> s
max)について、量子化範囲から除外されている。
【0038】
量子化ステップS33
量子化ステップS33では、量子化範囲決定ステップS32において決定された量子化範囲において、畳み込みレイヤ11の特徴量を量子化する。
【0039】
ここで、活性化レイヤ12の活性化関数の飽和領域を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定しているため、活性化レイヤ12における無効領域の発生が回避されつつ、畳み込みレイヤ11の特徴量の量子化範囲が小さくなっており、量子化後の量子化範囲内の量子化間隔が小さくなっている。
【0040】
本実施形態では、次式(5)及び
図6(b)に示されるように、非対称型の量子化を用い、NビットからLビットにビット数を低下させる。ここで、Δ
xは量子化間隔であり、本実施形態では、シフト量Z
xとして畳み込みレイヤ11の特徴量の平均値μを用いる。また、ビット数については、例えば、N=32、L=8となる。
【数9】
図6(b)に示されるように、本実施形態では、畳み込みレイヤ11の特徴量の量子化範囲Rについて、畳み込みレイヤ11の最大値x
c
max及び最小値x
c
minから、夫々、量子化範囲の上限s
max及び下限s
minまで量子化範囲Rが小さくなっており、量子化後の量子化範囲内の量子化間隔Δ
xが小さくなっている。
【0041】
本実施形態との比較のため、
図6(c)を参照して、畳み込みレイヤ11の統計情報のみから量子化範囲を決定する比較形態について説明する。
本比較形態では、統計情報として、畳み込みレイヤ11の特徴量の分布範囲の最大値x
c
max及び最小値x
c
minを取得する。そして、次式(6)に示されるように、量子化範囲Uをx
c
min以上x
c
max以下に決定する。
【数10】
【0042】
本比較形態では、畳込みレイヤの特徴量の量子化範囲Uについて、本実施形態の量子化範囲の上限smax及び下限sminから、夫々、本比較形態の量子化範囲の上限xc
max及び下限xc
minまで量子化範囲が大きくなっているため、本実施形態よりも量子化後の量子化範囲内の量子化間隔Δx大きくなっており、活性化レイヤ12においては本実施形態では発生していない無効領域Iが発生している。
【0043】
活性化処理の省略
本実施形態では、
図6(a)に示されるように、活性化処理の活性化関数については、入力値にかかわらず一定の出力値を出力する関数からなる飽和領域S
-及びS
+と、入力値と同一の出力値を出力する線形関数からなる非飽和領域S
0とから形成されている。このため、
図6(b)に示されるように、活性化関数の飽和領域S
-及びS
+を除外するように量子化範囲を決定し、畳み込みレイヤ11の特徴量の量子化を行うことで、活性化関数を適用したのと同一の結果が得られる。従って、活性化関数を適用する活性化処理を省略することが可能である。
【0044】
本実施形態と比較するため、
図6(d)を参照して、比較形態について説明する。比較形態では、畳み込み処理、活性化処理、量子化処理の順に実行するため、活性化処理を省略することが不可能である。なお、本実施形態の量子化後の特徴量については、比較形態の活性化処理後の特徴量と同一となっている。
【0045】
本実施形態のニューラルネットワーク装置及びニューラルネットワーク量子化方法については、以下の効果を奏する。
本実施形態では、活性化レイヤ12の活性化関数の飽和領域の閾値を取得し、活性化関数の飽和領域の閾値に基づいて、活性化関数の飽和領域を除外するように、畳み込みレイヤ11の特徴量の量子化範囲を決定している。このため、活性化レイヤ12において無効領域が発生するのが回避されると共に、畳み込みレイヤ11の特徴量の量子化範囲が小さくなり、量子化後の量子化範囲内の量子化間隔が小さくなっている。このため、畳み込みレイヤ11の特徴量の量子化により発生する量子化誤差を減少することが可能となっている。
【0046】
また、活性化レイヤ12又は活性化処理の活性化関数については、飽和領域と、線形関数からなる非飽和領域とから形成されている。このため、活性化関数の飽和領域を除外するように量子化範囲を決定し、畳み込みレイヤ11の特徴量の量子化を行うことで、活性化関数を適用したのと同一の結果が得られるようになっている。従って、活性化関数を適用する活性化レイヤ12又は活性化処理を省略することが可能となっている。
【0047】
図7乃至
図9を参照して、本発明の第3実施形態について説明する。
以下では、第2実施形態と同様の構成、ステップ等については説明を省略し、第2実施形態と相違する構成、ステップ等について説明する。
【0048】
本実施形態では、活性化処理において適用される活性化関数の非飽和領域は非線形関数から形成されており、ルックアップテーブル(以下、「LUT」と称する。)31によって、量子化処理の実行の後に活性化処理を実行するようにしている。
【0049】
図7を参照して、本実施形態のニューラルネットワーク装置について概説する。
量子化部23は、畳み込みレイヤ11の特徴量を量子化し、量子化においては、NビットからMビットにビット数を低下させる。活性化レイヤ12は、活性化関数を適用する活性化処理を実行し、活性化関数の非飽和領域については、入力値に対応する所定の出力値を出力する非線形関数である。活性化レイヤ12はLUT31を備え、LUT31は、活性化関数を適用する活性化処理を実行すると共に、不等間隔量子化処理を実行して、MビットからLビットにビット数を低下させる。このため、LUT31のビット幅はMビットとなる。ビット数については、例えば、N=32、M=16、L=8となる。
【0050】
図8及び
図9を参照して、本実施形態のニューラルネットワーク量子化方法について詳細に説明する。
図8に示されるように、ニューラルネットワーク量子化方法については、以下の各ステップを有する。
【0051】
図9(a)に示されるように、本実施形態の活性化関数の非飽和領域S
0については、入力値に対応する所定の出力値を出力する非線形関数である。
【0052】
統計情報取得ステップS41及び量子化範囲決定ステップS42
統計情報取得ステップS41及び量子化範囲決定ステップS42については、第2実施形態と同様である。
【0053】
量子化ステップS43
量子化ステップS43では、
図9(b)に示されるように、量子化範囲決定ステップS42において決定された量子化範囲において、畳み込みレイヤ11の特徴量を量子化し、NビットからMビットにビット数を低下させる。
【0054】
活性化ステップS44
活性化ステップS44では、
図9(b)に示されるように、LUT31によって、活性化関数を適用する活性化処理を実行すると共に、不等間隔量子化処理を実行し、MビットからLビットにビット数を低下させる。
【0055】
本実施形態と比較するために、
図9(c)を参照して、比較形態について説明する。比較形態では、畳み込み処理、活性化処理、量子化処理の順に実行する。このため、活性化処理を実行するLUTのビット幅は、畳み込みレイヤ11の特徴量のビット数であるNビットとなり、本実施形態のLUT31のビット幅であるMビットよりも大きくなっている。
【0056】
本実施形態のニューラルネットワーク装置及びニューラルネットワーク量子化方法については、以下の効果を奏する。
本実施形態では、活性化処理の活性化関数の非飽和領域は非線形関数から形成されており、活性化関数を適用する活性化処理については、LUT31によって実行されている。そして、量子化処理によるビット数の低下後に、LUT31によって活性化処理を行っているため、LUT31のビット幅を小さくすることができ、メモリ容量を削減して、ハードウェア効率を向上することが可能となっている。
【0057】
以上述べた第1乃至第3実施形態では、量子化対象レイヤとして畳み込みレイヤ11を選択したが、その他の積和演算を実行するレイヤを選択してもよく、例えば、量子化対象レイヤとして全結合レイヤを選択することが可能である。
【0058】
また、第1実施形態では、畳み込みレイヤ11の特徴量の量子化において、対称型の量子化を用いているが、第2及び第3実施形態のように、非対称型の量子化を用いるようにしてもよい。
【0059】
図10及び
図11を参照して、本発明の第4実施形態について説明する。
本実施形態では、量子化対象レイヤとしての畳み込みレイヤ11cの特徴量について、量子化範囲において量子化すると共に、量子化範囲をクリッピングの閾値としてクリッピング処理を行う。そして、参照レイヤとしてのプーリングレイヤ13から、統計情報としての指標として、クリッピング誤差と量子化誤差との合計である演算誤差を取得し、当該演算誤差を最適化即ち最小化するように、量子化範囲を決定する。
【0060】
図10を参照して、本実施形態のニューラルネットワーク装置について説明する。
図10に示されるように、本実施形態では、第1の畳み込みレイヤ11a及び活性化レイヤ12a、第2の畳み込みレイヤ11b及び活性化レイヤ12b、第3の畳み込みレイヤ11c及び活性化レイヤ12c、プーリングレイヤ13が順に配置されている。
【0061】
量子化部23は、量子化範囲において第3の畳み込みレイヤ11cの特徴量の量子化を行うと共に、量子化範囲をクリッピングの閾値としてクリッピング処理を行う。クリッピング処理とは、畳み込みレイヤの重み又は特徴量の量子化において、分布の外れ値により量子化範囲が大きくなり、量子化間隔が大きくなって量子化誤差が増大するのを防止するため、次式(7)に示されるように、クリッピングの閾値c
min、c
maxを導入し、当該閾値c
min、c
maxを超える分布の外れ値をクリッピングする処理である。
【数11】
ここで、クリッピング処理によりクリッピング誤差が発生するが、一方で量子化範囲が小さくなって量子化間隔が小さくなり、量子化誤差が小さくなるため、クリッピング誤差と量子化誤差との合計である演算誤差を減少させることが可能である。
【0062】
統計情報取得部21は、プーリングレイヤ13から、指標として、クリッピング誤差と量子化誤差との合計である演算誤差を取得する。演算誤差としては、MSE(Mean Squared Error)、MAE(Mean Average Error)、KL-Divergence等を用いる。量子化範囲決定部22は、演算誤差が減少するように量子化範囲を更新する。量子化部23は、更新された量子化範囲において、再び第3の畳み込みレイヤ11cの特徴量の量子化を行うと共に、量子化範囲をクリッピングの閾値としてクリッピング処理を行う。統計情報取得部21、量子化範囲決定部22及び量子化部23は、当該処理を繰り返すことで演算誤差を最小化して、量子化範囲を決定する。量子化範囲の初期値としては、第1乃至第3実施形態のいずれかの実施形態により決定された量子化範囲を用いる。
【0063】
図11を参照して、本実施形態のニューラルネットワーク量子化方法について説明する。
図11に示されるように、ニューラルネットワーク量子化方法については、以下の各ステップを有する。
【0064】
初期化ステップS51
初期化ステップS51では、第3の畳み込みレイヤ11cの特徴量の量子化範囲を初期化する。本実施形態では、第1乃至第3実施形態のいずれかの実施形態で決定された量子化範囲に、第3の畳み込みレイヤ11cの特徴量の量子化範囲を初期化する。
【0065】
量子化ステップS52
量子化ステップS52では、第3の畳み込みレイヤ11cの特徴量を量子化範囲において量子化すると共に、量子化範囲をクリッピングの閾値としてクリッピング処理を行う。
【0066】
指標取得ステップS53
指標取得ステップS53では、プーリングレイヤ13から、指標として、クリッピング誤差と量子化誤差との合計である演算誤差を取得する。
【0067】
量子化範囲更新ステップS54
量子化範囲更新ステップS54では、指標取得ステップS53において取得した演算誤差が小さくなるように、第3の畳み込みレイヤ11cの特徴量の量子化範囲を更新する。
【0068】
最適化ステップS55
最適化ステップS55では、指標としての演算誤差が最小化するように、上記量子化ステップS52、指標取得ステップS53、量子化範囲更新ステップS54を繰り返して、量子化範囲を決定する。
【0069】
本実施形態のニューラルネットワーク装置及びニューラルネットワーク量子化方法については、以下の効果を奏する。
本実施形態では、畳み込みレイヤ11cの特徴量を量子化範囲において量子化すると共に、量子化範囲をクリッピングの閾値としてクリッピング処理を行うようにし、プーリングレイヤ13から指標としてクリッピング誤差と量子化誤差との合計である演算誤差を取得し、演算誤差を最小化するように量子化範囲を決定するようにしている。このため、クリッピング誤差と量子化誤差との合計である演算誤差を最小化することが可能となっている。
【0070】
本実施形態では、第3の畳み込みレイヤ11cの特徴量について量子化し量子化範囲を決定するようにしたが、第1乃至第3の畳み込みレイヤ11a-11cの重み及び特徴量から、量子化し量子化範囲を決定するものの組み合わせをどのように選択してもよい。
【0071】
本実施形態では、参照レイヤとしてプーリングレイヤ13を用い、指標として、クリッピング誤差と量子化誤差との合計である演算誤差を用いているが、その他にも様々な参照レイヤ及び指標を用いることが可能である。
【0072】
一変形例では、参照レイヤとして最終出力レイヤを用い、指標として、最終出力レイヤの出力に認識精度評価関数を適用して算出した認識精度を用い、当該認識精度を最大化するように量子化範囲を求める。
【0073】
以上の各実施形態では、ニューラルネットワーク装置及びニューラルネットワーク量子化方法について述べたが、コンピュータに当該装置の各機能を実現させるプログラム、又は、コンピュータに当該方法の各ステップを実行させるプログラムについても、本発明の範囲に含まれる。
【符号の説明】
【0074】
11,11a,11b,11c…畳み込みレイヤ
12,12a,12b,12c…活性化レイヤ
13プーリングレイヤ 21…統計情報取得部 22量子化範囲決定部
23…量子化部