JP7322622B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP7322622B2
JP7322622B2 JP2019168078A JP2019168078A JP7322622B2 JP 7322622 B2 JP7322622 B2 JP 7322622B2 JP 2019168078 A JP2019168078 A JP 2019168078A JP 2019168078 A JP2019168078 A JP 2019168078A JP 7322622 B2 JP7322622 B2 JP 7322622B2
Authority
JP
Japan
Prior art keywords
noise
gradient information
learning
quantized
information processing
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.)
Active
Application number
JP2019168078A
Other languages
English (en)
Other versions
JP2021047481A (ja
Inventor
靖文 坂井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019168078A priority Critical patent/JP7322622B2/ja
Priority to US16/987,459 priority patent/US20210081801A1/en
Priority to EP20190589.0A priority patent/EP3796232A1/en
Priority to CN202010896137.5A priority patent/CN112598108A/zh
Publication of JP2021047481A publication Critical patent/JP2021047481A/ja
Application granted granted Critical
Publication of JP7322622B2 publication Critical patent/JP7322622B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
従来より、ニューラルネットワーク(NN:Neural Network)の実行時間を短縮する手法として、NNに使用される各種変数(重みパラメータ、勾配情報、差分値等)を固定小数点に量子化する手法が知られている。
特開2018-120441号公報
しかしながら、各種変数を量子化してNNを実行した場合、各種変数を量子化しないで実行した場合と比較して、正解率(accuracy)が劣化するという問題がある。
一つの側面では、ニューラルネットワークに使用される変数を量子化して実行した場合の正解率の劣化を抑えることを目的としている。
一態様によれば、ニューラルネットワークを実行するプロセッサを有する情報処理装置であって、
前記プロセッサは、
前記ニューラルネットワークにおいて使用される勾配情報を量子化し、
量子化後の勾配情報所定のノイズを付加し、
前記所定のノイズが付加された前記勾配情報を使用して、前記ニューラルネットワークを実行し、
前記ノイズを付加する処理は、量子化後の前記勾配情報に、各値の出現頻度を表すヒストグラムが、前記勾配情報を量子化した際の最小値以上の出現頻度がゼロである正規分布となるノイズを付加する処理である
ニューラルネットワークに使用される変数を量子化して実行した場合の正解率の劣化を抑えることができる。
情報処理装置のハードウェア構成の一例を示す図である。 情報処理装置の機能構成の一例を示す図である。 情報処理装置の学習部の機能構成の一例を示す図である。 量子化部の処理の具体例を示す図である。 ノイズ付加部により付加されるノイズの特性を示す図である。 ノイズ付加部の処理の具体例を示す図である。 更新部の処理の具体例を示す図である。 設定処理及び学習処理の流れを示すフローチャートである。 量子化後の勾配情報に、ノイズを付加した場合の効果を示す図である。 学習処理の流れを示すフローチャートである。
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
[第1の実施形態]
<情報処理装置のハードウェア構成>
はじめに、深層学習用のフレームワークにより、ニューラルネットワーク(NN:Neural Network)を実行するプロセッサを有する情報処理装置100のハードウェア構成について説明する。図1は、情報処理装置のハードウェア構成の一例を示す図である。図1に示すように、情報処理装置100は、汎用プロセッサ101、メモリ102、特定用途プロセッサ103を有する。なお、汎用プロセッサ101、メモリ102、特定用途プロセッサ103は、いわゆるコンピュータを形成する。
また、情報処理装置100は、補助記憶装置104、表示装置105、操作装置106、ドライブ装置107を有する。なお、情報処理装置100の各ハードウェアは、バス108を介して相互に接続されている。
汎用プロセッサ101は、CPU(Central Processing Unit)等の演算デバイスであり、補助記憶装置104にインストールされている各種プログラム(例えば、深層学習用のフレームワークを実現する情報処理プログラム等)を実行する。
メモリ102は、ROM(Read Only Memory)等の不揮発性メモリやRAM(Random Access Memory)等の揮発性メモリを含む、主記憶デバイスである。メモリ102は、補助記憶装置104にインストールされている各種プログラムを汎用プロセッサ101が実行するために必要な各種プログラムを格納したり、汎用プロセッサ101が実行する際に展開される作業領域を提供する。
特定用途プロセッサ103は、深層学習向けのプロセッサであり、例えば、GPU(Graphics Processing Unit)等が含まれる。特定用途プロセッサ103は、汎用プロセッサ101によって各種プログラムが実行される際、例えば、画像データについて、並列処理による高速演算を実行する。
補助記憶装置104は、各種プログラムや、各種プログラムが実行される際に用いられるデータを格納する補助記憶デバイスである。例えば、後述する学習用データ格納部は、補助記憶装置104において実現される。
表示装置105は、情報処理装置100の内部状態等を表示する表示デバイスである。操作装置106は、情報処理装置100のユーザが情報処理装置100に対して各種指示を入力するための入力デバイスである。
ドライブ装置107は記録媒体110をセットするためのデバイスである。ここでいう記録媒体110には、CD-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体110には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
なお、補助記憶装置104にインストールされる各種プログラムは、例えば、配布された記録媒体110がドライブ装置107にセットされ、該記録媒体110に記録された各種プログラムがドライブ装置107により読み出されることでインストールされる。あるいは、補助記憶装置104にインストールされる各種プログラムは、不図示のネットワークよりダウンロードされることでインストールされてもよい。
<情報処理装置の機能構成>
次に、情報処理装置100の機能構成について説明する。図2は、情報処理装置の機能構成の一例を示す図である。上述したように、情報処理装置100には、情報処理プログラムがインストールされており、情報処理装置100のプロセッサは、当該プログラムを実行することで、深層学習用のフレームワーク200を実現する。図2に示すように、第1の実施形態において、深層学習用のフレームワーク200には、付加ノイズ受付部210と、付加ノイズ設定部220と、学習部230とが含まれる。
付加ノイズ受付部210は、学習部230のNNに使用される各種変数のうち、量子化後の変数に付加するノイズの入力を受け付ける。なお、第1の実施形態では、NNに使用される各種変数のうち、学習時に差分値を逆伝播することで算出される勾配情報が量子化されるものとする。つまり、第1の実施形態において、付加ノイズ受付部210は、量子化後の勾配情報に付加するノイズの入力を受け付ける。
付加ノイズ設定部220は、付加ノイズ受付部210が受け付けたノイズを、学習部230のNNに設定する。
学習部230は、学習用データ(入力データ、正解データ)を用いてNNを実行することで学習処理を行う。具体的には、学習部230は、学習用データ格納部240より入力データを読み出し、読み出した入力データをNNに入力することで、入力データを演算する順伝播処理を行う。
また、学習部230は、学習用データ格納部240より正解データを読み出し、順伝播処理により得た演算結果と、読み出した正解データとの差分値を算出する。また、学習部230は、算出した差分値を逆伝播しながら勾配情報を算出する逆伝播処理を行う。
また、学習部230は、算出した勾配情報を量子化し、量子化後の勾配情報に、付加ノイズ設定部220が設定したノイズを付加する。更に、学習部230は、ノイズ付加後の勾配情報に、学習率をかけ合わせ、前回学習時の重みパラメータから減算することで、前回学習時の重みパラメータを更新する更新処理を行う。これにより、次の順伝播処理では、更新した重みパラメータを用いて、入力データを演算することができる。
<学習部の機能構成>
次に、学習部230の機能構成について説明する。図3は、情報処理装置の学習部の機能構成の一例を示す図である。図3に示すように、学習部230は、入力層311と、第1のニューロン層312、第2のニューロン層313、第3のニューロン層314と、差分器315とを有する。なお、図3の例では、ニューロン層の数を3つとしているが、学習部230が有するニューロン層の数は、3つに限定されない。
入力層311は、学習用データ格納部240より、ミニバッチ単位で入力データと正解データとの組を読み出し、入力データを第1のニューロン層312に入力する。また、入力層311は、正解データを差分器315に入力する。
第1のニューロン層312は、勾配情報算出部321_1と、量子化部322_1と、ノイズ付加部323_1と、更新部324_1とを有する。
勾配情報算出部321_1は、学習時に差分器315にて算出された差分値から勾配情報(▽w)を算出する。量子化部322_1は、算出された勾配情報(▽w)を量子化する。ノイズ付加部323_1は、量子化後の勾配情報(▽w)にノイズ(N)を付加する。なお、ノイズ付加部323_1によって付加されるノイズ(N)は、付加ノイズ受付部210が受け付け、付加ノイズ設定部220によって設定されたノイズである。
更新部324_1は、ノイズ(N)付加後の勾配情報に学習率(η)をかけ合わせることで、前回の学習時に更新部324_1にて算出された重みパラメータ(W1(t))を更新する。第1のニューロン層312では、更新された重みパラメータ(W1(t+1))を用いて、入力データを演算する。また、第1のニューロン層312は、演算した入力データを、第2のニューロン層313に入力する。
同様に、第2のニューロン層313は、勾配情報算出部321_2と、量子化部322_2と、ノイズ付加部323_2と、更新部324_2とを有する。
勾配情報算出部321_2は、学習時に差分器315にて算出された差分値から勾配情報(▽w)を算出する。量子化部322_2は、算出された勾配情報(▽w)を量子化する。ノイズ付加部323_2は、量子化後の勾配情報(▽w)にノイズ(N)を付加する。なお、ノイズ付加部323_2によって付加されるノイズ(N)は、付加ノイズ受付部210が受け付け、付加ノイズ設定部220によって設定されたノイズである。
更新部324_2は、ノイズ(N)付加後の勾配情報に学習率(η)をかけ合わせることで、前回の学習時に更新部324_2にて算出された重みパラメータ(W2(t))を更新する。第2のニューロン層313では、更新された重みパラメータ(W2(t+1))を用いて、入力データを演算する。また、第2のニューロン層313は、演算した入力データを、第3のニューロン層314に入力する。
同様に、第3のニューロン層314は、勾配情報算出部321_3と、量子化部322_3と、ノイズ付加部323_3と、更新部324_3とを有する。
勾配情報算出部321_3は、学習時に差分器315にて算出された差分値から勾配情報(▽w)を算出する。量子化部322_3は、算出された勾配情報(▽w)を量子化する。ノイズ付加部323_3は、量子化後の勾配情報(▽w)にノイズ(N)を付加する。なお、ノイズ付加部323_3によって付加されるノイズ(N)は、付加ノイズ受付部210が受け付け、付加ノイズ設定部220によって設定されたノイズである。
更新部324_2は、ノイズ(N)付加後の勾配情報に学習率(η)をかけ合わせることで、前回の学習時に更新部324_3にて算出された重みパラメータ(W3(t))を更新する。第3のニューロン層314では、更新された重みパラメータ(W3(t+1))を用いて、入力データを演算する。また、第3のニューロン層314は、入力データを演算することで得られる演算結果を、差分器315に入力する。
差分器315は、入力層311より入力された正解データと、第3のニューロン層314より入力された演算結果との差分値を算出し、算出した差分値を逆伝播する。これにより、第1のニューロン層312から第3のニューロン層314では、次回の学習において用いる勾配情報を算出する。
<学習部の各部の処理の具体例>
次に、学習部230の各ニューロン層に含まれる各部(ここでは、量子化部322_1~322_3、ノイズ付加部323_1~323_3、更新部324_1~324_3)の処理の具体例について説明する。
(1)量子化部の処理の具体例
はじめに、量子化部322_1~322_3の処理の具体例について説明する。図4は、量子化部の処理の具体例を示す図である。上述したように、量子化部322_1~322_3は、学習時に差分値が逆伝播されるごとに、勾配情報算出部321_1~321_3より勾配情報を受け取る。
ここで、量子化部322_1~322_3が受け取る勾配情報▽w(▽w~▽w)の各値は、例えば、(0、1.1、-0.8、0.5、-5.2、・・・)等である。図4に示すように、勾配情報▽wの各値の出現頻度を表すヒストグラムは、正規分布となる(符号410参照)。
なお、符号410に示すヒストグラムにおいて、横軸は、量子化部322_1~322_3が受け取る勾配情報▽wの各値を表しており、縦軸は各値の出現頻度を表している。
具体的には、符号410に示すヒストグラムは、平均値がゼロであり、分散値が、勾配情報▽wがとりうる最大値の1/3倍となる、正規分布のヒストグラムである。
ここで、量子化部322_1~322_3が勾配情報▽wを量子化すると、量子化後の勾配情報▽wの各値の出現頻度を表すヒストグラムは、符号420に示すような分布となる。つまり、量子化することで、量子化後の負の最小値から量子化後の正の最小値までの間の値(つまり、ゼロ近辺の値)の出現頻度がゼロとなり、量子化後の正の最小値を超える値、または、量子化後の負の最小値未満の値のみが、出現することになる。
(2)ノイズ付加部の処理の具体例
次に、ノイズ付加部323_1~323_3の処理の具体例について説明する。図5は、ノイズ付加部により付加されるノイズの特性を示す図である。ノイズ付加部323_1~323_3が付加するノイズN(N~N)は、付加ノイズ受付部210が受け付け、付加ノイズ設定部220により設定されたノイズであり、例えば、(0、0.5、-0.8、1.1、・・・)等である。
図5の符号500は、ノイズN(N~N)の各値の出現頻度をヒストグラムで表したものである。つまり、付加ノイズ受付部210は、各値の出現頻度が符号500に表すヒストグラムとなるようなノイズN(N~N)を受け付け、付加ノイズ設定部220は、当該ノイズN(N~N)をノイズ付加部323_1~323_3に設定する。
図5に示すように、ノイズNは、量子化部322_1~322_3が勾配情報▽wを量子化した際の、量子化後の負の最小値から量子化後の正の最小値までの間の値のみを含む。換言すると、ノイズNは、量子化部322_1~322_3が勾配情報▽wを量子化した際の、量子化後の負の最小値未満の値を含まない。また、ノイズNは、量子化部322_1~322_3が勾配情報▽wを量子化した際の、量子化後の正の最小値を超える値を含まない。
符号500に示すヒストグラムは、平均値がゼロであり、分散値が、勾配情報▽wがとりうる最大値の1/3倍となる、正規分布のヒストグラムの一部である。このように、ノイズN(N~N)の各値の出現頻度は、勾配情報▽w(▽w~▽w)の量子化前の各値の出現頻度によって決まる。
図6は、ノイズ付加部の処理の具体例を示す図である。上述したように、ノイズ付加部323_1~323_3では、量子化後の勾配情報▽wに、ノイズNを付加する。図6は、
・量子化後の勾配情報▽wの各値の出現頻度を表すヒストグラム(符号420)と、
・ノイズNの各値の出現頻度を表すヒストグラム(符号500)と、
・量子化後の勾配情報▽wにノイズNを付加した、ノイズ付加後の勾配情報の各値の出現頻度を表すヒストグラム(符号600)と、
の関係を示している。
図6に示すように、符号600のヒストグラムは、平均値がゼロであり、分散値が、勾配情報▽wがとりうる最大値の1/3倍となる、正規分布のヒストグラムである。
このように、ノイズ付加部323_1~323_3によれば、ノイズN(N~N)を付加することで、量子化部322_1~322_3による量子化によって出現頻度がゼロとなった値を補完する。これにより、量子化前の勾配情報▽wの各値の出現頻度と同様の出現頻度が再現されることとなる。この結果、量子化部322_1~322_3による量子化の影響が抑えられることとなり、勾配情報▽wを量子化して学習処理を行った場合の正解率の劣化を抑えることができる。
(3)更新部の処理の具体例
次に、更新部324_1~324_3による処理の具体例について説明する。図7は、更新部の処理の具体例を示す図である。図7に示すように、更新部324_1~324_3は、ノイズN(N~N)が付加された、量子化後の勾配情報▽w(▽w~▽w)に、学習率η(η~η)をかけ合わせ、前回の重みパラメータW(W1(t)~W3(t))から減算する。これにより、更新部324_1~324_3では、前回の重みパラメータW(W1(t)~W3(t))を更新し、更新後の重みパラメータWt+1(W1(t+1)~W3(t+1))を算出する。
<設定処理及び学習処理の流れ>
次に、情報処理装置100による設定処理及び学習処理の流れについて説明する。図8は、設定処理及び学習処理の流れを示すフローチャートである。
このうち、図8(a)は、情報処理装置100による設定処理の流れを示すフローチャートである。ステップS801において、付加ノイズ受付部210は、学習部230のNNに使用される各種変数のうち、量子化後の変数(第1の実施形態では、勾配情報▽w(▽w~▽w))に付加するノイズN(N~N)の入力を受け付ける。
ステップS802において、付加ノイズ設定部220は、付加ノイズ受付部210が受け付けたノイズN(N~N)を、ノイズ付加部323_1~323_3に設定する。
また、図8(b)は、情報処理装置100による学習処理の流れを示すフローチャートである。図8(b)に示すように、ステップS811において、学習部230は、学習用データ格納部240より学習用データを、ミニバッチ単位で読み出す。
ステップS812において、学習部230は、ミニバッチ単位で読み出した学習用データに含まれる入力データについて順伝播処理を行う。
ステップS813において、学習部230は、ミニバッチ単位で読み出した学習用データに含まれる正解データと、順伝播処理により得られた演算結果との差分値を算出し、算出した差分値を逆伝播する逆伝播処理を行う。
ステップS814において、学習部230は、差分値に基づいて勾配情報▽w(▽w~▽w)を算出する。ステップS815において、学習部230は、算出した勾配情報▽w(▽w~▽w)を量子化する。ステップS816において、学習部230は、量子化後の勾配情報に、ノイズN(N~N)を付加する。ステップS817において、学習部230は、ノイズN(N~N)付加後の勾配情報▽w(▽w~▽w)に、学習率η(η~η)をかけ合わせ、前回の学習時に算出された重みパラメータW(W1(t)~W3(t))から減算する。これにより、学習部230は、前回の学習時に算出された重みパラメータW(W1(t)~W3(t))を更新する。
ステップS818において、学習部230は、学習処理を終了するか否かを判定する。学習処理を継続すると判定した場合には(ステップS818においてNOの場合には)、ステップS811に戻る。一方、ステップS818において、学習処理を終了すると判定した場合には(ステップS818においてYESの場合には)、学習処理を終了する。
<ノイズを付加した場合の効果>
次に、量子化後の勾配情報に、ノイズを付加した場合の効果について説明する。図9は、量子化後の勾配情報に、ノイズを付加した場合の効果を示す図である。図9において、横軸は、学習部230による学習回数を示しており、縦軸は、正解率を示している。図9において、グラフ900は、勾配情報を量子化しないで学習処理を行った場合の正解率の変遷を表している。
一方、グラフ910、920は、勾配情報を量子化して学習処理を行った場合の正解率の変遷を表している。このうち、グラフ910は、量子化後の勾配情報にノイズを付加した場合を、グラフ920は、量子化後の勾配情報にノイズを付加しない場合を、それぞれ表している。
グラフ910とグラフ920との対比から明らかなように、量子化後の勾配情報にノイズを付加した場合、量子化後の勾配情報にノイズを付加しない場合と比較して、正解率の劣化を抑えることが可能となる。
以上の説明から明らかなように、第1の実施形態に係る情報処理装置100が有するプロセッサは、深層学習用のフレームワークによりNNを実行し、学習処理を行う。また、第1の実施形態に係る情報処理装置100が有するプロセッサは、学習処理の際、NNに使用される勾配情報を量子化し、量子化後の勾配情報に所定のノイズを付加する。更に、第1の実施形態に係る情報処理装置100が有するプロセッサは、学習処理の際、所定のノイズが付加された、量子化後の勾配情報を使用して、NNを実行する。
このように、第1の実施形態に係る情報処理装置100では、学習処理の際、量子化によって出現頻度がゼロとなった値を、所定のノイズによって補完する。これにより、第1の実施形態に係る情報処理装置100によれば、量子化前の勾配情報の各値の出現頻度と同様の出現頻度を再現することができる。この結果、勾配情報を量子化したことによる影響を抑えることが可能となり、勾配情報を量子化して学習処理を行った場合の正解率の劣化を抑えることができる。
[第2の実施形態]
上記第1の実施形態では、学習部のNNに使用される各種変数のうち、勾配情報のみが量子化される場合について説明した。しかしながら、学習部のNNに使用される各種変数のうち、量子化される変数は勾配情報に限定されず、他の変数(重みパラメータ、差分値等)が量子化されてもよい。
第2の実施形態では、勾配情報に加えて、重みパラメータ、差分値が量子化される場合において、上記第1の実施形態同様、量子化後の変数それぞれにノイズを付加するケースについて説明する。以下、第2の実施形態について、上記第1の実施形態との相違点を中心に説明する。
<学習処理の流れ>
図10は、学習処理の流れを示すフローチャートである。図8(b)の学習処理との相違点は、ステップS1001~S1004である。なお、図10の学習処理を開始するにあたり、量子化後の勾配情報に付加するノイズ、量子化後の重みパラメータに付加するノイズ、量子化後の差分値に付加するノイズは、予め設定されているものとする。
ステップS1001において、学習部230は、順伝播処理の際、入力データの演算に用いる重みパラメータを量子化する。
ステップS1002において、学習部230は、量子化後の重みパラメータにノイズを付加する。そして、学習部230は、ミニバッチ単位で読み出した学習用データに含まれる入力データを、ノイズを付加した重みパラメータを用いて演算する。
ステップS1003において、学習部230は、逆伝播処理の際、ミニバッチ単位で読み出した学習用データに含まれる正解データと、順伝播処理により得られた演算結果との差分値を算出し、算出した差分値を量子化する。
ステップS1004において、学習部230は、量子化後の差分値にノイズを付加し、ノイズ付加後の差分値を逆伝播する。
以上の説明から明らかなように、第2の実施形態に係る情報処理装置100が有するプロセッサは、学習処理の際、NNに使用される各種変数(重みパラメータ、差分値、勾配情報)を量子化し、量子化後の変数それぞれに所定のノイズを付加する。更に、第2の実施形態に係る情報処理装置100が有するプロセッサは、学習処理の際、所定のノイズが付加された、量子化後の重みパラメータ、差分値、勾配情報を使用して、NNを実行する。
このように、第2の実施形態に係る情報処理装置100では、学習処理の際、量子化によって出現頻度がゼロとなった値を、所定のノイズによって補完する。これにより、第2の実施形態に係る情報処理装置100によれば、量子化前の各種変数の各値の出現頻度と同様の出現頻度を再現することができる。この結果、各種変数を量子化したことによる影響を抑えることが可能となり、各種変数を量子化して学習処理を行った場合の正解率の劣化を抑えることができる。
[その他の実施形態]
上記各実施形態では、学習部のNNに使用される各種変数にノイズを付加する場合について説明した。しかしながら、ノイズを付加する各種変数は学習部のNNに使用される各種変数に限定されず、学習部により学習処理が行われた学習済みのNNを推論部として使用する際の各種変数(具体的には、重みパラメータ)に付加してもよい。これにより、各種変数を量子化して推論処理を行った場合の正解率の劣化を抑えることができる。
また、上記各実施形態では、出現頻度が、正規分布(平均値がゼロであり、分散値が、量子化前の値がとりうる最大値の1/3倍の正規分布)のヒストグラムとなるように、ノイズの各値を設定するものとして説明した。しかしながら、設定するノイズは、各値の出現頻度がこのような正規分布のヒストグラムとなるものに限定されない。
例えば、出現頻度が、正規分布(平均値がゼロであり、分散値が量子化前の値がとりうる最大値の1/M倍(Mは整数。例えば、5、7)の正規分布)のヒストグラムとなるように、ノイズの各値を設定してもよい。あるいは、出現頻度が、正規分布以外の確率分布(例えば、一様分布、ラプラス分布、ガンマ分布)のヒストグラムとなるように、ノイズの各値を設定してもよい。
あるいは、変数の統計情報に基づいて、確率分布モデルをフィッティングし、出現頻度が、フィッティングした確率分布モデルのヒストグラムとなるように、ノイズの各値を設定してもよい。
また、上記各実施形態では、付加ノイズ受付部210、付加ノイズ設定部220、学習部230(及び推論部)が、1台の情報処理装置100において実現されるものとして説明したが、これらの各部は、複数台の情報処理装置において実現されてもよい。
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
ニューラルネットワークを実行するプロセッサを有する情報処理装置であって、
前記プロセッサは、
前記ニューラルネットワークにおいて使用される変数の少なくともいずれかを量子化し、
量子化後の変数に所定のノイズを付加し、
前記所定のノイズが付加された、前記量子化後の変数を使用して、前記ニューラルネットワークを実行する、情報処理装置。
(付記2)
前記量子化する処理における量子化する変数には、
学習時に逆伝播する差分値、
学習時に差分値を逆伝播することで算出される勾配情報、
学習時または推論時に入力データの演算に用いられる重みパラメータ、
のいずれかが含まれる、付記1に記載の情報処理装置。
(付記3)
前記付加する処理は、前記量子化後の変数に、各値の出現頻度を表すヒストグラムが所定の確率分布となるノイズを付加する、付記2に記載の情報処理装置。
(付記4)
前記プロセッサは、
前記量子化する処理において学習時に差分値を逆伝播することで算出される勾配情報が量子化され、前記付加する処理において量子化後の勾配情報にノイズが付加された場合に、該ノイズが付加された前記量子化後の勾配情報に学習率をかけ合わせ、前回学習時の重みパラメータから減算することで、前回学習時の重みパラメータを更新する、付記3に記載の情報処理装置。
(付記5)
前記確率分布には、一様分布、正規分布、ラプラス分布、ガンマ分布のいずれかが含まれる、付記4に記載の情報処理装置。
(付記6)
前記確率分布は、平均値がゼロで、分散値が勾配情報の最大値の1/M倍(Mは整数)の正規分布であって、前記勾配情報を量子化した際の最小値以上の出現頻度がゼロである正規分布である、付記5に記載の情報処理装置。
(付記7)
ニューラルネットワークを実行するプロセッサが、
前記ニューラルネットワークにおいて使用される変数の少なくともいずれかを量子化し、
量子化後の変数に所定のノイズを付加する、処理を実行する情報処理方法であって、
前記所定のノイズが付加された、前記量子化後の変数を使用して、前記ニューラルネットワークを実行する、情報処理方法。
(付記8)
ニューラルネットワークを実行するプロセッサに、
前記ニューラルネットワークにおいて使用される変数の少なくともいずれかを量子化し、
量子化後の変数に所定のノイズを付加する、処理を実行させる情報処理プログラムであって、
前記所定のノイズが付加された、前記量子化後の変数を使用して、前記ニューラルネットワークを実行させる、情報処理プログラム。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
100 :情報処理装置
101 :汎用プロセッサ
103 :特定用途プロセッサ
210 :付加ノイズ受付部
220 :付加ノイズ設定部
230 :学習部
311 :入力層
312~314 :第1~第3のニューロン層
315 :差分器
321_1~321_3 :勾配情報算出部
322_1~322_3 :量子化部
323_3~323_3 :ノイズ付加部
324_1~324_3 :更新部

Claims (5)

  1. ニューラルネットワークを実行するプロセッサを有する情報処理装置であって、
    前記プロセッサは、
    前記ニューラルネットワークにおいて使用される勾配情報を量子化し、
    量子化後の勾配情報所定のノイズを付加し、
    前記所定のノイズが付加された前記勾配情報を使用して、前記ニューラルネットワークを実行し、
    前記ノイズを付加する処理は、量子化後の前記勾配情報に、各値の出現頻度を表すヒストグラムが、前記勾配情報を量子化した際の最小値以上の出現頻度がゼロである正規分布となるノイズを付加する処理である、情報処理装置。
  2. 前記ニューラルネットワークにおいて使用される変数には、
    学習時に逆伝播する差分値、
    学習時に差分値を逆伝播することで算出される勾配情報、
    学習時または推論時に入力データの演算に用いられる重みパラメータ、
    のいずれかが含まれる、請求項1に記載の情報処理装置。
  3. 前記プロセッサは、
    前記量子化する処理において学習時に差分値を逆伝播することで算出される勾配情報が量子化され、前記付加する処理において量子化後の勾配情報にノイズが付加された場合に、該ノイズが付加された前記量子化後の勾配情報に学習率をかけ合わせ、前回学習時の重みパラメータから減算することで、前回学習時の重みパラメータを更新する、請求項に記載の情報処理装置。
  4. ニューラルネットワークを実行するプロセッサが、
    前記ニューラルネットワークにおいて使用される勾配情報を量子化し、
    量子化後の勾配情報所定のノイズを付加し、
    前記所定のノイズが付加された前記勾配情報を使用して、前記ニューラルネットワークを実行する、情報処理方法であって、
    前記ノイズを付加する処理は、量子化後の前記勾配情報に、各値の出現頻度を表すヒストグラムが、前記勾配情報を量子化した際の最小値以上の出現頻度がゼロである正規分布となるノイズを付加する処理である、情報処理方法
  5. ニューラルネットワークを実行するプロセッサに、
    前記ニューラルネットワークにおいて使用される勾配情報を量子化し、
    量子化後の勾配情報所定のノイズを付加する、
    処理を実行させ、
    前記所定のノイズが付加された前記勾配情報を使用して、前記ニューラルネットワークを実行させる情報処理プログラムであって、
    前記ノイズを付加する処理は、量子化後の前記勾配情報に、各値の出現頻度を表すヒストグラムが、前記勾配情報を量子化した際の最小値以上の出現頻度がゼロである正規分布となるノイズを付加する処理である、情報処理プログラム。
JP2019168078A 2019-09-17 2019-09-17 情報処理装置、情報処理方法及び情報処理プログラム Active JP7322622B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019168078A JP7322622B2 (ja) 2019-09-17 2019-09-17 情報処理装置、情報処理方法及び情報処理プログラム
US16/987,459 US20210081801A1 (en) 2019-09-17 2020-08-07 Information processing apparatus, method for procesing information, and computer-readable recording medium
EP20190589.0A EP3796232A1 (en) 2019-09-17 2020-08-11 Information processing apparatus, method for processing information, and program
CN202010896137.5A CN112598108A (zh) 2019-09-17 2020-08-31 信息处理设备、处理信息的方法和计算机可读记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019168078A JP7322622B2 (ja) 2019-09-17 2019-09-17 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2021047481A JP2021047481A (ja) 2021-03-25
JP7322622B2 true JP7322622B2 (ja) 2023-08-08

Family

ID=72050664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019168078A Active JP7322622B2 (ja) 2019-09-17 2019-09-17 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (4)

Country Link
US (1) US20210081801A1 (ja)
EP (1) EP3796232A1 (ja)
JP (1) JP7322622B2 (ja)
CN (1) CN112598108A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7021132B2 (ja) * 2019-01-22 2022-02-16 株式会社東芝 学習装置、学習方法およびプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016114988A (ja) 2014-12-11 2016-06-23 株式会社メガチップス 状態推定装置、プログラムおよび集積回路
US20160328647A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Bit width selection for fixed point neural networks
JP2021043596A (ja) 2019-09-09 2021-03-18 株式会社ソシオネクスト 量子化パラメータ最適化方法、及び、量子化パラメータ最適化装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3192016B1 (en) * 2014-09-12 2019-05-08 Microsoft Technology Licensing, LLC Computing system for training neural networks
JP6227813B1 (ja) 2017-01-25 2017-11-08 株式会社Preferred Networks 分散深層学習装置及び分散深層学習システム
KR102589303B1 (ko) * 2017-11-02 2023-10-24 삼성전자주식회사 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치
US11847568B2 (en) * 2019-07-30 2023-12-19 Perceive Corporation Quantizing neural networks using shifting and scaling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016114988A (ja) 2014-12-11 2016-06-23 株式会社メガチップス 状態推定装置、プログラムおよび集積回路
US20160328647A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Bit width selection for fixed point neural networks
JP2021043596A (ja) 2019-09-09 2021-03-18 株式会社ソシオネクスト 量子化パラメータ最適化方法、及び、量子化パラメータ最適化装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
森江 隆 ほか3名,誤差逆伝搬学習におけるノイズの効果とフォールトトレランス,電子情報通信学会技術研究報告 ,日本,社団法人電子情報通信学会,1998年05月22日,第98巻, 第68号,第61頁-第67頁

Also Published As

Publication number Publication date
JP2021047481A (ja) 2021-03-25
US20210081801A1 (en) 2021-03-18
CN112598108A (zh) 2021-04-02
EP3796232A1 (en) 2021-03-24

Similar Documents

Publication Publication Date Title
US11847569B2 (en) Training and application method of a multi-layer neural network model, apparatus and storage medium
KR20190034985A (ko) 인공 신경망의 양자화 방법 및 장치
CN110073371A (zh) 用于以降低精度进行深度神经网络训练的损失缩放
US20190251444A1 (en) Systems and Methods for Modification of Neural Networks Based on Estimated Edge Utility
CN110728358B (zh) 基于神经网络的数据处理方法和装置
KR102214837B1 (ko) 컨벌루션 신경망 파라미터 최적화 방법, 컨벌루션 신경망 연산방법 및 그 장치
US11657285B2 (en) Methods, systems, and media for random semi-structured row-wise pruning in neural networks
KR102247896B1 (ko) 학습된 파라미터의 형태변환을 이용한 컨벌루션 신경망 파라미터 최적화 방법, 컨벌루션 신경망 연산방법 및 그 장치
JP7322622B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US20230316080A1 (en) Sparsity masking methods for neural network training
TW202001701A (zh) 影像的量化方法及神經網路的訓練方法
JP7294017B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP7272121B2 (ja) 演算処理装置、制御方法、及び制御プログラム
US20220405561A1 (en) Electronic device and controlling method of electronic device
KR102042323B1 (ko) Hs 알고리즘을 이용하여 최적해를 도출하는 방법 및 이를 수행하는 단말 장치
JP2010039723A (ja) 非負値行列分解の数値計算方法、非負値行列分解の数値計算装置、プログラムおよび記憶媒体
JP7243498B2 (ja) 演算処理装置、制御プログラム、及び制御方法
US20220383092A1 (en) Turbo training for deep neural networks
CN113313253A (zh) 神经网络压缩方法、数据处理方法、装置及计算机设备
JP2004110300A (ja) データ予測方法、データ予測装置、コンピュータプログラム、及び記録媒体
JP7279507B2 (ja) 情報処理装置、情報処理プログラム及び制御方法
CN109491594B (zh) 矩阵求逆过程中优化数据存储空间的方法和装置
CN111985604A (zh) 运算处理设备、用于控制运算处理设备的方法和存储介质
EP3792836A1 (en) Information processing apparatus, method of processing information, and information processing program
CN115906917B (zh) 一种基于模型算法划分的神经网络模型部署方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230710

R150 Certificate of patent or registration of utility model

Ref document number: 7322622

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150