JP2021005211A - 情報処理方法及び情報処理装置 - Google Patents
情報処理方法及び情報処理装置 Download PDFInfo
- Publication number
- JP2021005211A JP2021005211A JP2019118451A JP2019118451A JP2021005211A JP 2021005211 A JP2021005211 A JP 2021005211A JP 2019118451 A JP2019118451 A JP 2019118451A JP 2019118451 A JP2019118451 A JP 2019118451A JP 2021005211 A JP2021005211 A JP 2021005211A
- Authority
- JP
- Japan
- Prior art keywords
- quantization
- parameter
- information processing
- input value
- learning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】CNNにおいて、入力値(アクティベーション)の最適なビット数削減(量子化)を実現できる情報処理方法を提供する。【解決手段】畳み込み層を含む深層ニューラルネットワークを用いた順伝搬処理及び誤差逆伝播処理を含む学習処理に適用する情報処理方法であって、第1の処理は、中間層において、第1ビット数で表現される第1の入力値に基づいて第1のパラメータを用いて順伝搬処理を実行する。第2の処理は、第1ビット数より少ない第2ビット数で表現される第2の入力値を生成する量子化処理を実行し、第2の入力値をメモリに保存する。第3の処理は、メモリに保存した第2の入力値及び順伝搬処理により得られた値を使用して演算した結果に基づいて、第1のパラメータを更新した第2のパラメータを算出する。第4の処理は、第2のパラメータを算出する際の勾配の差分に基づいて、量子化処理の量子化条件を決定する。【選択図】図7
Description
本発明の実施形態は、畳み込みニューラルネットワークの学習処理に適用する情報処理方法及び情報処理装置に関する。
畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)は、例えば、画像認識処理に有効であり、学習処理において誤差逆伝播(back propagation:バックプロパゲーション)を適用するディープニューラルネットワーク(Deep Neural Network:DNN)である。
CNNは入力層、中間層、出力層を含み、中間層において入力値とパラメータ(重み)を使用する一連の処理により、出力層において出力値を算出する。中間層では、畳み込み層を含む複数の層における入力値(前段層の出力値に相当)は、アクティベーション(Activation)と呼ばれている。
CNNの学習処理におけるバックプロパゲーションの間、アクティベーションはメモリに保存される。メモリ容量を節約するために、アクティベーションのビット数を削減する量子化が行われることがある。量子化とは、いわゆるアナログ値をデジタル値に変換する処理ではなく、アクティベーションを表す元の値のビット数を削減する処理を意味する。
アクティベーションの量子化によりメモリの容量を節約できるが、単にアクティベーションのビット数を削減する量子化では、CNNの学習処理の精度が低下することがある。従って、学習処理の精度を確保するためには、アクティベーションの最適な量子化を実現することが望ましい。
Eunhyeok Park, Sungjoo Yoo, and Peter Vajda, "Value-aware Quantization for Training and Inference of Neural Networks", ECCV 2018 paper, [2019年5月8日検索]インターネット<URL: https://arxiv.org/abs/1804.07802>
Ayan Chakrabarti, and Benjamin Moseley, "Backprop with Approximate Activations for Memory-efficient Network Training", [2019年5月8日検索]インターネット<URL: https://arxiv.org/abs/1901.07988>
Ron Banner, Yury Nahshan, Elad Hoffer, and Daniel Soudry, "Post training 4-bit quantization of convolution networks for rapid-deployment", [2019年5月8日検索]インターネット<URL: https://arxiv.org/abs/1810.05723>
本実施形態は、CNNにおいて、アクティベーションの最適な量子化を実現できる情報処理方法及び情報処理装置を提供することにある。
本実施形態の情報処理方法は、プロセッサ及び当該プロセッサの演算に用いられるメモリを使用し、畳み込み層を含む深層ニューラルネットワークを用いた順伝搬処理及び誤差逆伝播処理を含む学習処理に適用する情報処理方法であって、第1の処理、第2の処理、第3の処理、及び第4の処理を含む。前記第1の処理は、前記深層ニューラルネットワークの中間層において、第1ビット数で表現される第1の入力値に基づいて第1のパラメータを用いて前記順伝搬処理を実行する。前記第2の処理は、前記第1ビット数より少ない第2ビット数で表現される第2の入力値を生成する量子化処理を実行し、当該第2の入力値を前記メモリに保存する。前記第3の処理は、前記メモリに保存した前記第2の入力値及び前記順伝搬処理により得られた値を使用して演算した結果に基づいて、前記学習処理で用いられ前記第1のパラメータを更新した第2のパラメータを算出する。前記第4の処理は、前記第2のパラメータを算出する際の勾配の差分に基づいて、前記量子化処理の量子化条件を決定する。
以下図面を参照して、実施形態を説明する。
[第1の実施形態]
図1は、本第1の実施形態にかかる情報処理装置の構成を示すブロック図である。図1に示すように、本第1の実施形態の情報処理装置は、プロセッサ10、メモリ11、及びアプリケーション(AP)システム14を有する。
[第1の実施形態]
図1は、本第1の実施形態にかかる情報処理装置の構成を示すブロック図である。図1に示すように、本第1の実施形態の情報処理装置は、プロセッサ10、メモリ11、及びアプリケーション(AP)システム14を有する。
本第1の実施形態では、プロセッサ10は、例えばGPU(Graphic Processing Unit)やCPU(Central Processing Unit)であり、ハードウェア及びソフトウェアにより構成されている。プロセッサ10は、学習処理部12により、ディープニューラルネットワーク(DNN又は単にニューラルネットワークと表記する)13に対して、メモリ11を使用して学習処理を実行する。本第1の実施形態の学習処理部12は、後述する量子化を実行する。
本第1の実施形態は、DNN13として、例えば画像認識処理に有効な畳み込みニューラルネットワーク(CNN)20を適用する。即ち、プロセッサ10は、学習用データとして、例えば6万枚の画像データセットを含む入力データ100を使用して、画像認識に関するCNN20のパラメータの学習処理を実行する。なお、入力データ100には、CNN20の出力と比較するための正解ラベル(教師データ)も含まれる。
APシステム14は、プロセッサ10により最適化されたCNN20を利用し、例えば、未知の入力画像を認識する画像認識システムである。画像認識システムは、ハードウェア及びソフトウェアから構成されるコンピュータ、サーバシステム、又はWebサービスを実行するクラウドシステムを含む。
図2は、本第1の実施形態のCNN20の一例を示すブロック図である。図2に示すように、CNN20は、図示しない入力層(input layer)と出力層(output layer)との間に中間層(internal layer)を含む。中間層は、隠れ層(hidden layer)とも呼ばれる。
中間層は、畳み込み層(convolution layer、以下CV層)21-1、バッチ正規化層(Batch-Normalization layer:BN層)22-1、活性化層(activation layer)23-1を含む1段階層、及びCV層21-2、BN層22-2、活性化層23-2を含む2段階層のように、多段階層の構成である。
本第1の実施形態では、CNN20は、学習処理部12により、入力データ100を分割したミニバッチサイズの入力データ(入力X)に対する学習処理(ミニバッチ学習処理)を実行する。
CNN20においては、CV層21-1(21-2)は、入力Xに対する畳み込み処理を実行する。BN層22-1(22-2)は、正規化処理及びアフィン変換(affine transformation)を実行する。即ち、BN層22-1(22-2)は、CV層21-1(21-2)により算出される特徴の分布を調整して、当該分布の偏りを無くすように正規化処理を実行し、アフィン変換によりスケール及びシフト処理を行う。活性化層23-1(23-2)は、例えば活性化関数ReLU(Rectified linear Unit)を使用する活性化処理(数値の変換処理)を実行する。
[第1の実施形態の動作]
以下、図3を参照して、本第1の実施形態の動作を説明する。図3は、本第1の実施形態のCNN20の学習処理に含まれる畳み込み処理及び量子化の概略を説明するための図である。なお、学習処理は学習処理部12により実行されるが、CNN20の動作として説明する。
[第1の実施形態の動作]
以下、図3を参照して、本第1の実施形態の動作を説明する。図3は、本第1の実施形態のCNN20の学習処理に含まれる畳み込み処理及び量子化の概略を説明するための図である。なお、学習処理は学習処理部12により実行されるが、CNN20の動作として説明する。
図3に示すように、CNN20では、CV層21-1は、入力Xに対して、複数種類の重みフィルタ32-1〜32-3を用いた畳み込み処理(31)を実行する。ここで、入力Xが例えばカラー画像のように、3つのチャネルCH-1〜CH-3のアクティベーション30-1〜30-3を含む場合に、重みフィルタ32-1(32-2,32-3)のチャネル数も3つとなる。具体的には、チャネルCH-1〜CH-3は、例えばカラー画像の赤色画像、緑色画像、青色画像に対応する。
即ち、CNN20は、重みフィルタ32(32-1〜32-3を代表して)によるパラメータ(重みW)を使用した畳み込み処理(31)を実行する。CNN20は、畳み込み処理結果を、BN層22-1や活性化層23-1を含む各層を経由して、図示しない出力層まで伝播する(順伝搬:Forward)。出力層は、畳み込み処理(31)により抽出された特徴量33-1〜33-3を含む出力Yと正解ラベルとの誤差(dY)を算出する。
出力Yと正解ラベルとの誤差(dY)がある場合には、CNN20は、パラメータ(W)の更新量に相当する勾配(gradient,dWと表記する)を用いて、バックプロパゲーション(誤差逆伝播)により、パラメータ(W)の更新処理を実行する。具体的には、CNN20は、後述するように、勾配(dW)の計算に適した畳み込み演算(36)により、勾配(dW)を算出し、この勾配(dW)に基づいてパラメータ(W)を更新する。例えば、更新後のパラメータを「Wnew」とし、更新前のパラメータを「Wold」とした場合に、更新後のパラメータ「Wnew」は、数式「Wnew=Wold-(Lr*dW)、ここでLrは学習係数(learning rate)」により算出できる。
ここで、前述したように、CNN20において、中間層でのCV層21-1を含む各層に対する入力値(入力X)は、アクティベーション(Activation)と呼ばれている。図3に示すように、本第1の実施形態では、アクティベーションは、チャネルCH(CH-1〜CH-3を代表して)毎に量子化(34)される。
具体的には、学習処理部12は、CNN20でのバックプロパゲーション(BP処理)で用いるために、チャネルCH毎に、例えば32ビットで表現されているアクティベーションを、例えば3ビットに量子化(34)したアクティベーションをメモリ11に保存する。これ以降の説明では、量子化(34)したアクティベーションを量子化アクティベーションと称することもある。なお、本第1の実施形態では、量子化アクティベーションは、3ビット以外にも、例えば2ビット、4ビット、5ビットで表現されるように量子化(34)される場合もある。
ここで、本第1の実施形態は、アクティベーションの量子化(34)の条件として、量子化幅及び量子化範囲の最適値を決定することで、適切な学習精度(accuracy)を確保できる。図4に示すように、例えば32ビットで表現されているアクティベーションは、正規分布(normal distribution)又はガウス分布(Gaussian distribution)を示すものとする。量子化幅Δは、隣接する量子化値間の量子化段階(quantization step)に相当し、「2α/2M(Mは量子化ビット数に対応する値であり、2以上の整数である)」により定義される。量子化範囲[-α、+α]において-α、+αはそれぞれ、2Mに区画される量子化領域(quantization regions)の下限値と上限値を示す。また、下限値と上限値の絶対値を、クリッピング値(clipping value)αとして表現することがある。
図5は、当該量子化条件の決定処理の一例を説明するための図である。図5は、量子化範囲に関するクリッピング値αの関数として、各量子化ビット数Mの値に対する2乗平均誤差(mean square error)関数50〜53を示す。ここでは、当該2乗平均誤差は、量子化していない、即ち、量子化前の入力(X)と、量子化後の入力(図示していないQ(X)とする)との2乗平均誤差を意味する。関数50〜53はそれぞれ、例えば、量子化ビット数Mの値が2、3、4、5の値に対する2乗平均誤差を示す。
ここで、量子化ビット数Mを固定した場合、量子化条件として、量子化範囲[-α、α]を大きくすると、量子化幅Δが大きくなる関係となる。そこで、2乗平均誤差が最小になる点を選択すれば、最適な学習精度を確保できる量子化ビット数M及びクリッピング値αを設定できることが予想される。これにより、量子化範囲及び量子化幅の最適値を特定できることになる。しかしながら、図6に示すように、実際の学習処理では、同じ2乗平均誤差を示す量子化ビット数Mの関数50〜53間において、学習精度には相関傾向が見られず、ばらつきがあることが確認されている。この学習処理では、例えば、CIFAR10(学習用サンプルとして共用に用意された画像データセット)が使用されている。
そこで、本第1の実施形態は、アクティベーションの量子化(34)の条件として、学習精度との相関傾向があり、結果として適切な学習精度を確保できる量子化幅及び量子化範囲の最適値を決定する方法及び装置を説明する。
図7は、本第1の実施形態の量子化幅及び量子化範囲の最適値を決定する処理の手順を説明するフローチャートである。なお、当該処理の手順を、図7と共に図3を参照して説明する。
図7に示すように、CNN20は、入力Xとして、チャネルCH単位のアクティベーション30(30-1〜30-3の代表として)を取得(入力)すると(S1)、前述のForward(順伝搬)処理及びBP処理(バックプロパゲーション、誤差逆伝播処理、又はBackward処理)を実行する。即ち、Forward処理では、図3に示すように、CV層21は、フィルタ32(32-1〜32-3の代表として)のパラメータ(W)を使用して、アクティベーション30の畳み込み処理を実行する(S4)。
ここで、本第1の実施形態では、Forward処理と並行して、学習処理部12は、CNN20でのBP処理で使用するために、例えば32ビットで表現されているアクティベーション30を量子化する(S2)。学習処理部12は、量子化した量子化アクティベーションをメモリ11に保存する(S3)。例えば32ビットで表現されているアクティベーション30は、量子化されてメモリ11に保存される。通常では、アクティベーション30は、チャネルCH毎に異なるビット数の精度で表現されるように量子化される。図3に示すように、アクティベーション30は、例えば3ビットで表現される量子化アクティベーション35(35-1〜35-3の代表)として量子化(34)される。
図7に戻って、CNN20は、Forward処理として、畳み込み処理(S4)の結果を、BN層22や活性化層23を含む各層を経由して出力層まで伝播する。出力層は、畳み込み処理により抽出された特徴量を含む出力Yと正解ラベルとの誤差(dY)を算出する出力処理を実行する(S5)。CNN20は、出力Yと正解ラベルとの誤差がある場合には(S6のYES)、当該誤差(dY)を中間層に逆伝搬(Backward)して、パラメータ(W)の更新処理を実行するためのBP処理を実行する(S7)。本第1の実施形態では、学習処理部12は、メモリ11に保存した量子化アクティベーション35を使用して、BP処理を実行する。
図3に戻って、CNN20は、BP処理時に、パラメータ(W)を更新するために使用される勾配(dW)を算出する。具体的には、CNN20は、例えば3ビットで量子化された量子化アクティベーション35-1と、誤差(dY)37-1とを使用して、畳み込み処理(36)を実行することで勾配(dW)38-1-1を算出する。なお、誤差(dY)37-1〜37-3は、例えば32ビットで表現されたアクティベーション30に基づいて算出されている。さらに、CNN20は、当該量子化アクティベーション35-1と誤差(dY)37-2とを使用して勾配(dW)38-2-1を算出し、当該量子化アクティベーション35-1と誤差(dY)37-3とを使用して勾配(dW)38-3-1を算出する。同様にして、量子化アクティベーション35-2と、誤差(dY)37-{1〜3}のそれぞれとを使用して勾配(dW)38-{1〜3}-2を算出する。また、同様にして、量子化アクティベーション35-3と、誤差(dY)37-{1〜3}のそれぞれとを使用して勾配(dW)38-{1〜3}-3を算出する。
図7に戻って、本第1の実施形態の学習処理部12は、量子化前の入力(X)を使用して算出した勾配(dW)と、量子化後の入力(Q(X))を使用して算出した勾配(dWQとする)との差分として、2乗平均誤差を算出する(S8)。学習処理部12は、算出した当該2乗平均誤差を、量子化範囲に関するクリッピング値αの関数として出力する(S9)。学習処理部12は、当該勾配の差分である2乗平均誤差に基づいて、最適な量子化条件として、量子化幅及び量子化範囲の最適値を決定する(S10)。
ここで、前述したように、図5は、量子化範囲に関するクリッピング値αの関数として、量子化前の入力(X)と、量子化後の入力(Q(X))との差分を意味する2乗平均誤差を示す。図8は、量子化範囲であるクリッピング値αの関数として、量子化ビット数Mを3ビットに設定した場合に、前記の勾配の差分として2乗平均誤差をプロット(plot)した出力結果80を示す。学習処理部12は、BP処理時に、逆伝播された誤差(dY)を使用して、勾配(dW)を算出し、量子化後の入力(Q(X))とdYを使用して、量子化後の勾配(dWQ)を算出する。図8は、当該勾配(dW)と、勾配(dWQ)との間では差分が出ることを示す。学習処理部12は、当該出力結果80に基づいて、2乗平均誤差の最小点90を最適なクリッピング値αとして決定する。即ち、学習処理部12は、最適な量子化条件として、量子化幅Δ及び量子化範囲(即ち、-α及びα)の最適値を決定できる。なお、学習処理部12は、決定した量子化条件を維持した状態で学習処理を続行する。
なお、CNN20は、勾配(dW)を使用して更新した更新パラメータ(前述のWnew)を使用して畳み込み処理を繰り返すことで、当該誤差(dY)が所定の値を下回るまで、又は学習処理の既定回数分(所定のエポック数)だけ学習処理を繰り返し実行する。本第1の実施形態の学習処理部12は、例えば指定のエポック数だけ学習処理を繰り返すスケジュールにおいて、所定のタイミングで前記の2乗平均誤差のプロットを再出力することで、最適なクリッピング値αの設定を更新してもよい。
[変形例]
図9は、本第1の実施形態の変形例を説明するための図である。図9に示すように、本変形例は、量子化ビット数Mを、例えば2ビット、3ビット、4ビット、5ビットに段階的に設定して、前述の方法により、量子化幅Δ及び量子化範囲の最適値を決定する。
図9は、本第1の実施形態の変形例を説明するための図である。図9に示すように、本変形例は、量子化ビット数Mを、例えば2ビット、3ビット、4ビット、5ビットに段階的に設定して、前述の方法により、量子化幅Δ及び量子化範囲の最適値を決定する。
具体的には、先ず、量子化ビット数Mを例えば2ビットに設定して、勾配の差分として2乗平均誤差をプロットする(出力結果81)。学習処理部12は、当該出力結果81に基づいて、2乗平均誤差の最小点91を最適なクリッピング値αとして決定し、最適な量子化条件とする。ここで、学習処理部12は、当該量子化条件に基づいて、学習処理を繰り返すことで、学習精度を求めて、目標精度を確保できているかを判定する。
学習処理部12は、目標精度を確保できていないと判定した場合には、量子化ビット数Mを例えば3ビットに設定して、勾配の差分として2乗平均誤差をプロットする(出力結果80)。学習処理部12は、当該出力結果80に基づいて、2乗平均誤差の最小点90を最適なクリッピング値αとして決定し、最適な量子化条件とする。
同様にして、学習処理部12は、当該量子化条件に基づいて、学習処理を繰り返すことで、目標精度を確保できているかを判定する。学習処理部12は、目標精度を確保できていないと判定した場合には、量子化ビット数Mを例えば4ビットに設定して、勾配の差分として2乗平均誤差をプロットする(出力結果82)。学習処理部12は、当該出力結果82に基づいて、2乗平均誤差の最小点92を最適なクリッピング値αとして決定し、最適な量子化条件とする。その後、更に、量子化ビット数Mを5ビットに設定して、出力結果83を得てもよい。以上のようにして、本変形例によれば、目標精度を確保できた時点で、学習処理部12は、最適な量子化条件として、量子化幅Δ及び量子化範囲の最適値を決定する処理を終了する。
以上のようにして本第1の実施形態及びその変形例によれば、量子化前後のアクティベーションを使用して計算した勾配の差分としての2乗平均誤差に基づいて、最適な量子化条件として量子化幅及び量子化範囲の最適値を決定できる。従って、量子化によりメモリ容量の削減を図ることができると共に、学習処理における十分な学習精度を確保できる。図10は、本第1の実施形態又はその変形例を用いた実際の学習処理の効果を示す図である。本第1の実施形態又はその変形例によれば、例えばCIFAR10を使用した実際の学習処理において、量子化ビット数Mの関数80〜83それぞれの2乗平均誤差と、学習精度との間で相関傾向が確認できる。ここで、前述したように、勾配(dW)は、パラメータ(W)の更新に直接的に関係する量子化アクティベーションに基づいて算出される。このため、勾配(dW)の差分(2乗平均誤差)は、学習精度との間で相関傾向があると推測できる。
[第2の実施形態]
図11は、第2の実施形態に関して、CNN20の学習処理に含まれる畳み込み処理及び量子化の概略を説明するための図である。なお、本第2の実施形態の情報処理装置の構成は、前述した第1の実施形態の情報処理装置(図1及び図2を参照)と同様である。
図11は、第2の実施形態に関して、CNN20の学習処理に含まれる畳み込み処理及び量子化の概略を説明するための図である。なお、本第2の実施形態の情報処理装置の構成は、前述した第1の実施形態の情報処理装置(図1及び図2を参照)と同様である。
本第2の実施形態においても、第1の実施形態と同様に、CNN20は、重みフィルタ32によるパラメータ(重みW)を使用した畳み込み処理(31)を実行し、畳み込み処理結果を図示しない出力層まで伝播する(順伝搬:Forward)。出力層は、出力Yと正解ラベルとの誤差(dY)を算出する。また、出力Yと正解ラベルとの誤差(dY)がある場合には、CNN20は、バックプロパゲーション(誤差逆伝播)により、パラメータ(W)を更新するための勾配(dW)を算出する。
本第2の実施形態では、学習処理部12は、CNN20でのBP処理で使用するために、例えば32ビットで表現されているアクティベーション30を量子化(34)すると共に、符号化(圧縮化)(40)する。学習処理部12は、量子化及び符号化した量子化アクティベーション41(41-1〜41-3の代表)をメモリ11に保存する。
即ち、学習処理部12は、符号化前に、例えば32ビットで表現されているアクティベーション30を、例えば4ビットで表現される量子化アクティベーション35に量子化(34)する。さらに、学習処理部12は、量子化後(34)の量子化アクティベーション35を、例えばハフマン符号化(Huffman coding)により符号化し(40)、量子化アクティベーション41としてメモリ11に保存する。
さらに、本第2の実施形態では、学習処理部12は、BP処理時に、メモリ11から量子化アクティベーション41を取り出して、例えば4ビットで表現される量子化アクティベーション35に復号化する(42)。学習処理部12は、復号化された量子化アクティベーション35と、逆伝播された誤差(dY)とを使用して畳み込み処理(36)を実行し、パラメータ(W)を更新するための勾配(dW)を算出する。なお、これ以降の処理については、前述の第1の実施形態と同様であるため(図7のS9、S10を参照)、説明を省略する。
本第2の実施形態によれば、量子化前のアクティベーション30のビット数を削減して、メモリ11に保存する際に、単に量子化する場合と比較して、量子化及び符号化(圧縮化)することにより、さらに平均ビット数を削減できる。一般的に、量子化前のアクティベーション30の分布は正規分布であり、中央のビット頻度が大きくなる傾向がある。このため、単に量子化する場合に、量子化アクティベーション35を正規分布に割り当てるときのビット効率が悪く、必ずしも効果的に平均ビット数を削減できない可能性がある。
図12は、アクティベーション30の正規分布に対して、量子化範囲をαでクリップ(制限)し、量子化及び符号化後に、例えばハフマン符号を正規分布に割り当てた時のコードの一例を示す。本第2の実施形態では、学習処理部12は、例えばルックアップテーブル(lookup table)を使用することで、符号化/復号化の処理時に、正規分布に割り当てた時のコードを参照できる。従って、本第2の実施形態によれば、量子化及び符号化(圧縮化)により、正規分布に割り当てるビット効率を改善して、結果的に平均ビット数を効果的に削減できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…プロセッサ、11…メモリ、12…学習処理部、
13…深層ニューラルネットワーク(DNN)、14…APシステム、
20…畳み込みニューラルネットワーク(CNN)、
21-1,21-2…畳み込み層(CV層)、
22-1,22-2…バッチ正規化層(BN層)、23-1,23-2…活性化層。
13…深層ニューラルネットワーク(DNN)、14…APシステム、
20…畳み込みニューラルネットワーク(CNN)、
21-1,21-2…畳み込み層(CV層)、
22-1,22-2…バッチ正規化層(BN層)、23-1,23-2…活性化層。
Claims (16)
- プロセッサ及び当該プロセッサの演算に用いられるメモリを使用し、畳み込み層を含む深層ニューラルネットワークを用いた順伝搬処理及び誤差逆伝播処理を含む学習処理に適用する情報処理方法であって、
前記深層ニューラルネットワークの中間層において、第1ビット数で表現される第1の入力値に基づいて第1のパラメータを用いて前記順伝搬処理を実行する第1の処理と、
前記第1ビット数より少ない第2ビット数で表現される第2の入力値を生成する量子化処理を実行し、当該第2の入力値を前記メモリに保存する第2の処理と、
前記メモリに保存した前記第2の入力値及び前記順伝搬処理により得られた値を使用して演算した結果に基づいて、前記学習処理で用いられ前記第1のパラメータを更新した第2のパラメータを算出する第3の処理と、
前記第2のパラメータを算出する際の勾配の差分に基づいて、前記量子化処理の量子化条件を決定する第4の処理と、
を含む、情報処理方法。 - 前記第3の処理は、
前記第2の入力値と、前記第1の処理による前記学習処理の出力誤差とを使用して前記勾配を算出し、当該勾配に基づいて前記第2のパラメータを算出する、請求項1に記載の情報処理方法。 - 前記量子化条件は、量子化範囲及び量子化幅を含み、
前記量子化範囲は、前記量子化処理の対象の下限値と上限値とを含み、
前記量子化幅は、前記量子化範囲において前記第2ビット数に基づいた量子化段階に相当する、請求項1に記載の情報処理方法。 - 前記第4の処理は、
前記第2ビット数に基づいた前記差分を前記量子化範囲の関数として出力し、
前記関数の最小点に基づいて前記量子化範囲の最適値を決定する、請求項3に記載の情報処理方法。 - 前記差分は、前記第2のパラメータを算出する際の更新量に相当する勾配の2乗平均誤差であり、
前記第4の処理は、
前記第2ビット数を所定の値に設定して、前記2乗平均誤差を前記量子化範囲の関数として出力し、
前記2乗平均誤差の最小点に基づいて前記量子化範囲の最適値を決定する、請求項4に記載の情報処理方法。 - 前記第4の処理は、
前記第2のパラメータを使用して学習処理を繰り返し実行した後に、所定のタイミングで前記の2乗平均誤差を前記量子化範囲の関数として再出力し、
前記2乗平均誤差の最小点に基づいて前記量子化範囲の最適値を再決定する、請求項5に記載の情報処理方法。 - 前記第4の処理は、
前記第2ビット数を異なる値に段階的に設定して、各第2ビット数に基づいて2乗平均誤差を前記量子化範囲の関数として出力し、
各関数の最小点及び所定の学習精度に基づいて前記量子化範囲の最適値を決定する、請求項4に記載の情報処理方法。 - 前記第2の処理は、
前記第2の入力値を生成する量子化処理及び前記第2の入力値を符号化する符号化処理を実行して得られる第3の入力値を前記第2の入力値として前記メモリに保存し、
前記第3の処理は、
前記メモリに保存した前記第3の入力値を使用して演算し、当該演算の結果に基づいて前記学習処理で用いられ前記第1のパラメータを更新した第3のパラメータを前記第2のパラメータとして算出する、請求項1に記載の情報処理方法。 - 畳み込み層を含む深層ニューラルネットワークを用いた順伝搬処理及び誤差逆伝播処理を含む学習処理を実行するプロセッサと、
当該プロセッサの演算に用いられるメモリと、
を備える情報処理装置であって、
前記プロセッサは、
前記深層ニューラルネットワークの中間層において、第1ビット数で表現される第1の入力値に基づいて第1のパラメータを用いて前記順伝搬処理を実行する第1の処理と、
前記第1ビット数より少ない第2ビット数で表現される第2の入力値を生成する量子化処理を実行し、当該第2の入力値を前記メモリに保存する第2の処理と、
前記メモリに保存した前記第2の入力値及び前記順伝搬処理により得られた値を使用して演算した結果に基づいて、前記学習処理で用いられ前記第1のパラメータを更新した第2のパラメータを算出する第3の処理と、
前記第2のパラメータを算出する際の勾配の差分に基づいて、前記量子化処理の量子化条件を決定する第4の処理と、
を実行する情報処理装置。 - 前記プロセッサは、
前記第3の処理として、
前記第2の入力値と、前記第1の処理による前記学習処理の出力誤差とを使用して前記勾配を算出し、当該勾配に基づいて前記第2のパラメータを算出する、請求項9に記載の情報処理装置。 - 前記量子化条件は、量子化範囲及び量子化幅を含み、
前記量子化範囲は、前記量子化処理の対象の下限値と上限値とを含み、
前記量子化幅は、前記量子化範囲において前記第2ビット数に基づいた量子化段階に相当する、請求項9に記載の情報処理装置。 - 前記プロセッサは、
前記第4の処理として、
前記第2ビット数に基づいた前記差分を前記量子化範囲の関数として出力し、
前記関数の最小点に基づいて前記量子化範囲の最適値を決定する、請求項11に記載の情報処理装置。 - 前記差分は、前記第2のパラメータを算出する際の更新量に相当する勾配の2乗平均誤差であり、
前記プロセッサは、
前記第4の処理として、
前記第2ビット数を所定の値に設定して、前記2乗平均誤差を前記量子化範囲の関数として出力し、
前記2乗平均誤差の最小点に基づいて前記量子化範囲の最適値を決定する、請求項12に記載の情報処理装置。 - 前記プロセッサは、
前記第4の処理として、
前記第2のパラメータを使用して学習処理を繰り返し実行した後に、所定のタイミングで前記の2乗平均誤差を前記量子化範囲の関数として再出力し、
前記2乗平均誤差の最小点に基づいて前記量子化範囲の最適値を再決定する、請求項13に記載の情報処理装置。 - 前記プロセッサは、
前記第4の処理として、
前記第2ビット数を異なる値に段階的に設定して、各第2ビット数に基づいて2乗平均誤差を前記量子化範囲の関数として出力し、
各関数の最小点及び所定の学習精度に基づいて前記量子化範囲の最適値を決定する、請求項12に記載の情報処理装置。 - 前記プロセッサは、
前記第2の処理として、
前記第2の入力値を生成する量子化処理及び前記第2の入力値を符号化する符号化処理を実行して得られる第3の入力値を前記第2の入力値として前記メモリに保存し、
前記第3の処理として、
前記メモリに保存した前記第3の入力値を使用して演算し、当該演算の結果に基づいて前記学習処理で用いられ前記第1のパラメータを更新した第3のパラメータを前記第2のパラメータとして算出する、請求項9に記載の情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019118451A JP2021005211A (ja) | 2019-06-26 | 2019-06-26 | 情報処理方法及び情報処理装置 |
US16/818,228 US11494659B2 (en) | 2019-06-26 | 2020-03-13 | Information processing method and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019118451A JP2021005211A (ja) | 2019-06-26 | 2019-06-26 | 情報処理方法及び情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021005211A true JP2021005211A (ja) | 2021-01-14 |
Family
ID=74043721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019118451A Pending JP2021005211A (ja) | 2019-06-26 | 2019-06-26 | 情報処理方法及び情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11494659B2 (ja) |
JP (1) | JP2021005211A (ja) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6678930B2 (ja) | 2015-08-31 | 2020-04-15 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 分類モデルを学習する方法、コンピュータ・システムおよびコンピュータ・プログラム |
JP6378150B2 (ja) | 2015-09-18 | 2018-08-22 | ヤフー株式会社 | 最適化装置、最適化方法および最適化プログラム |
JP2017158183A (ja) | 2016-02-29 | 2017-09-07 | 大学共同利用機関法人情報・システム研究機構 | 画像処理装置 |
EP3438887A4 (en) | 2016-03-28 | 2019-03-27 | Sony Corporation | INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD |
JP2018055259A (ja) | 2016-09-27 | 2018-04-05 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP2018156451A (ja) | 2017-03-17 | 2018-10-04 | 株式会社東芝 | ネットワーク学習装置、ネットワーク学習システム、ネットワーク学習方法およびプログラム |
US20190102673A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Online activation compression with k-means |
US10678508B2 (en) * | 2018-03-23 | 2020-06-09 | Amazon Technologies, Inc. | Accelerated quantized multiply-and-add operations |
US20200097818A1 (en) * | 2018-09-26 | 2020-03-26 | Xinlin LI | Method and system for training binary quantized weight and activation function for deep neural networks |
JP2020149311A (ja) * | 2019-03-13 | 2020-09-17 | キオクシア株式会社 | 情報処理方法及び情報処理装置 |
-
2019
- 2019-06-26 JP JP2019118451A patent/JP2021005211A/ja active Pending
-
2020
- 2020-03-13 US US16/818,228 patent/US11494659B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11494659B2 (en) | 2022-11-08 |
US20200410360A1 (en) | 2020-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10462476B1 (en) | Devices for compression/decompression, system, chip, and electronic device | |
JP4966669B2 (ja) | マッチング追跡を用いたデータ圧縮 | |
JP6681383B2 (ja) | エンコーダ、デコーダ、および方法 | |
JP6923677B2 (ja) | ビデオ圧縮におけるエントロピーコーディングのための選択的ミキシング | |
CN107481295B (zh) | 基于动态字节长度分配的卷积神经网络的图像压缩系统 | |
JP2020149311A (ja) | 情報処理方法及び情報処理装置 | |
JP6789894B2 (ja) | ネットワーク係数圧縮装置、ネットワーク係数圧縮方法およびプログラム | |
US20220004844A1 (en) | Methods and apparatuses for compressing parameters of neural networks | |
JP2009509418A (ja) | 時間予測のための分類フィルタリング | |
KR20110043684A (ko) | 디지털 신호의 압축 또는 압축해제를 위한 방법, 시스템 및 장치 | |
JP2020022145A (ja) | 符号化装置、復号装置、学習装置及びプログラム | |
JP5345977B2 (ja) | 適応量子化方法,適応量子化装置および適応量子化プログラム | |
US20070162828A1 (en) | Coding method and apparatus, and computer program and computer-readable storage medium | |
JP2021005211A (ja) | 情報処理方法及び情報処理装置 | |
Deigant et al. | A proposed method for lossless image compression in nano-satellite systems | |
US20230075514A1 (en) | Concept for a representation of neural network parameters | |
CN112446461A (zh) | 一种神经网络模型训练方法及装置 | |
Shin et al. | RL-SPIHT: reinforcement learning-based adaptive selection of compression ratios for 1-D SPIHT algorithm | |
US9407918B2 (en) | Apparatus and method for coding image, and non-transitory computer readable medium thereof | |
JP2004120623A (ja) | 符号化装置、符号化方法、復号装置及び復号方法 | |
WO2023104158A1 (en) | Method for neural network training with multiple supervisors | |
US20240095963A1 (en) | Method, apparatus and storage medium for image encoding/decoding | |
JPH09200778A (ja) | 映像信号符号化方法及び映像信号符号化装置 | |
US20230289588A1 (en) | Deep Neural Network Processing Device with Decompressing Module, Decompressing Method and Compressing Method | |
US20240078411A1 (en) | Information processing system, encoding device, decoding device, model learning device, information processing method, encoding method, decoding method, model learning method, and program storage medium |