JP2023167633A - 情報処理装置、情報処理方法、プログラム、及び記憶媒体 - Google Patents

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

Info

Publication number
JP2023167633A
JP2023167633A JP2022078954A JP2022078954A JP2023167633A JP 2023167633 A JP2023167633 A JP 2023167633A JP 2022078954 A JP2022078954 A JP 2022078954A JP 2022078954 A JP2022078954 A JP 2022078954A JP 2023167633 A JP2023167633 A JP 2023167633A
Authority
JP
Japan
Prior art keywords
output
information processing
neural network
quantization
layer
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
Application number
JP2022078954A
Other languages
English (en)
Inventor
朝貴 田港
Tomoki Taminato
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2022078954A priority Critical patent/JP2023167633A/ja
Priority to US18/311,258 priority patent/US20230368006A1/en
Publication of JP2023167633A publication Critical patent/JP2023167633A/ja
Pending legal-status Critical Current

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/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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/0495Quantised networks; Sparse networks; Compressed networks
    • 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/08Learning methods
    • G06N3/09Supervised learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

【課題】量子化する演算を含むニューラルネットワークの中間層において、量子化パラメータを小さく設定しながら認識精度の劣化を抑える。【解決手段】中間層のデータを得るために、入力データに対する重み係数を用いた第1の演算及び第1の演算の結果を量子化する第2の演算を行うニューラルネットワークにおける、第1の演算による出力の大きさを示す情報を取得する。取得した情報と、量子化に用いる量子化パラメータと、に基づいて、出力の大きさを調節するように、ニューラルネットワークにおける第1の演算を制御する。【選択図】図4

Description

本発明は、情報処理装置、情報処理方法、プログラム、及び記憶媒体に関する。
近年、ニューラルネットワーク(NN)を用いた画像認識技術が研究開発されている。昨今のNNはレイヤ数が多く計算量が大きくなることがある一方で、計算資源が限られている場合もあり、効率のよい演算方法が求められている。
効率のよい演算方法として、NNのデータを低精度の数値に量子化して演算する方法が知られており、この量子化により計算リソースの乏しい機器でもNNの動作を行いやすくすることができる。
非特許文献1では、高精度の数値で学習したNNについて、レイヤごとに大量のデータを使用して出力値の分布を求め、量子化後の分布の損失が最小となる量子化パラメータを選択する技術が開示されている。
8-bit Inference with TensorRT Szymon Migacz, NVIDIA,May 8, 2017. Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification, Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun; Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2015, pp. 1026-1034.
しかしながら、一般に、NNの中間層の出力を量子化する際、量子化パラメータを小さくすると出力値の切り捨て又は丸めによりNNの認識精度が劣化しやすくなる。一方で、量子化パラメータを大きくすると出力値の分解能が下がるため、NNの認識精度が劣化してしまう場合がある。さらに、各レイヤで個別の量子化パラメータを設定できると認識精度の劣化が抑制できるが、組み合わせ爆発が生じることも多い。
本発明は、量子化する演算を含むニューラルネットワークの中間層において、量子化パラメータを小さく設定しながら認識精度の劣化を抑えることを目的とする。
本発明の目的を達成するために、例えば、一実施形態に係る情報処理装置は以下の構成を備える。すなわち、中間層のデータを得るために、入力データに対する重み係数を用いた第1の演算及び前記第1の演算の結果を量子化する第2の演算を行うニューラルネットワークにおける、前記第1の演算による出力の大きさを示す情報を取得する取得手段と、前記情報と、前記量子化に用いる量子化パラメータと、に基づいて、前記出力の大きさを調節するように、前記ニューラルネットワークにおける前記第1の演算を制御する制御手段と、を備える。
量子化する演算を含むニューラルネットワークの中間層において、量子化パラメータを小さく設定しながら認識精度の劣化を抑える。
実施形態1に係る情報処理装置のハードウェア構成の一例を示す図。 実施形態1に係る情報処理装置の機能構成の一例を示す図。 実施形態1に係る出力分布の算出処理の一例を示すフローチャート。 実施形態1に係る情報処理装置が有するNNのモデルの一例を示す図。 実施形態1に係る重みの決定処理の一例を示すフローチャート。 実施形態2に係る情報処理装置の機能構成の一例を示す図。 実施形態2に係るNNのモデルの重み補正を説明するための図。 実施形態3に係る情報処理装置の機能構成の一例を示す図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
図1は、本実施形態に係る情報処理装置1のハードウェア構成の一例を示すブロック図である。本実施形態に係る情報処理装置1は、CPU11、ROM12、RAM13、記憶ぶ14、入出力部15、表示部16、及び接続バス17を含んでいる。
CPU11は、中央処理装置(Central Processing Unit)であり、ROM12及びRAM13に格納された制御プログラムを実行することにより、以下に説明する情報処理装置1の機能部が行う各種制御を行う。また、CPU11は、SIMD(Single Instruction, Mutiple Data)命令を実行し、後述する推論処理において、8ビット整数型の演算をまとめて処理する。
ROM12は不揮発性メモリであり、制御プログラム及び各種パラメータを含むデータを格納する。ここでは、制御プログラムは、CPU11で実行され、各種制御処理を実現する。RAM13は揮発性メモリであり、画像、並びに制御プログラム及びその実行結果を一時的に格納する。
記憶部14は、ハードディスク又はフラッシュメモリなどの書き換え可能な二次記憶装置であり、本実施形態に係る各処理に用いる様々なデータを格納する。記憶部14は、例えば量子化パラメータの計算に用いる画像、並びに制御プログラム及びその処理結果などを格納することができる。これらの各種情報は、RAM13に出力され、CPU11がプログラムの実行に利用する。
入出力部15は、外部とのインターフェースとして機能する。入出力部15は、ユーザの入力を取得し、例えばマウス及びキーボード、又はタッチパネルなどであってもよい。表示部16は、例えばモニタであり、プログラムの処理結果又は画像などを表示できる。表示部16は、例えばタッチパネルとして、入出力部15と同時に実装されてもよい。接続バス17は、情報処理装置1が有する各機能部を通信可能に接続し、相互にデータの送受信を行う。
本実施形態においては、以下に説明する各処理が、CPU11を用いてソフトウェアで実現されるものとして説明を行うが、同様に処理が可能なのであれば、処理の一部又は全部がハードウェアで実現されてもかまわない。ハードウェアとしては、専用回路(ASIC)又はプロセッサ(リコンフィギュラブルプロセッサ、若しくはDSP)などが用いられてもよい。また、各処理を行うソフトウェアが、ネットワーク又は各種記憶媒体を介して取得され、パーソナルコンピュータなどの処理装置により実行されてもよい。
図2は、本実施形態に係る情報処理装置1の機能構成の一例を示すブロック図である。本実施形態に係る情報処理装置1は、NNの中間層のデータを得るために、入力データに対する重み係数を用いた第1の演算及びその演算の結果を量子化する第2の演算を行うNNにおける、第1の演算による出力の大きさを示す情報(出力分布)を取得する。次いで、情報処理装置1は、取得した出力分布と、量子化に用いる量子化パラメータと、に基づいて、第1の演算による出力の大きさを調節するように、NNにおける第1の演算を制御する。そのために、情報処理装置1は、データ取得部201、モデル取得部202、分布算出部203、重み決定部204、及び量子化部209を含んでいる。また、重み決定部204は、パラメータ取得部205、正則化項算出部206、教師取得部207、及び学習部208を含んでいる。さらに、正則化項算出部206は、係数算出部210、及び補正量算出部211を含んでいる。各機能部による処理の詳細な説明は後述する。
図4は、本実施形態において用いられるNNのモデルの一例を示す図であり、NNの中間層を含む3つのレイヤ401~403が図示されている。図4に示されるレイヤは、CNNレイヤ、正規化レイヤ、ReLUレイヤ、及びFCレイヤの組み合わせで構成されている。CNN(Convolutional Neural Network)は、畳み込み処理を行うNNの一種である。FC(Fully Connected Layer)は全結合レイヤと呼ばれるNNの一種である。ReLU(Rectified Linear Unit)は活性化関数の一種である。各レイヤが行う処理は、基本的には一般的なNNにおいて行われるものと同様であるため、詳細な説明は省略する。
ここでは、NNから活性化関数までの組をレイヤの1単位とする。例えば、レイヤ401はCNNレイヤ404、正規化レイヤ405、及びReLUレイヤ406を1単位のレイヤとして有している。レイヤ402はレイヤ401と同様の構成のレイヤを有する中間層である。また、レイヤ403は、FCレイヤ410及びReLUレイヤ411を1単位のレイヤとして有している。以下、レイヤ(中間層)の出力とは、これの1単位のレイヤの出力を指すものとする。また、以下において、レイヤi(1≦i)と称する場合、iはレイヤの1単位のインデックスを指すものとする。図4の例では、レイヤ1はレイヤ401に、レイヤ2はレイヤ402、に、レイヤ3はレイヤ403に対応する。
レイヤ401は入力層であり、入力画像に対して畳み込み演算を行う。また、レイヤ403は出力層であり、入力画像上の特定の物体の尤度マップを出力するものとする。これは一例であり、レイヤの数が異なっていてもよく、また異なる処理を行うレイヤが含まれていてもよい。例えば、レイヤがプーリング層を含んでいてもよい。また、この例ではNNは学習済みのモデルを用いるものとするが、例えば非特許文献2に示されるような、公知のNNの重みの初期化手法を用いて初期化されたモデルを代わりに用いてもよい。
本実施形態に係る情報処理装置1は、NNへ入力データを入力し、推論結果を出力する。ここで、分布算出部203は、NNに入力データを入力した際に、各中間層における重み係数(以下、単純に重みと称する)を用いた演算を第1の演算として、出力分布を取得する。ここでは、出力分布Yは、レイヤiにおける出力の大きさを示す情報であり、例えばレイヤiの出力の最大値であってもよく、レイヤiの出力値を昇順に並べた上から99.9%に対応する値であってもよい。また出力分布Yは、出力値の平均μと標準偏差σを用いて、以下の式(1)で算出される値であってもよい。ここで、nは例えば4又は5など、所望の条件に応じて設定が可能である。このように、本実施形態においては、出力分布は、第1の演算による出力の分布に基づいて算出される情報であり、とくに、それらの出力の外れ値を除く上限を示す情報として算出されてもよい。本実施形態においては、入力データのミニバッチの数をN、レイヤの出力チャンネル数をMとし、N×Mの出力値から出力分布が取得される。
=μ+nσ 式(1)
本実施形態に係る情報処理装置1は、量子化パラメータを設定し、第1の演算の結果(レイヤの出力)を含むNNのデータを量子化する第2の演算を行うことができる。ここで、レイヤの出力を量子化する際に、その出力が量子化パラメータよりも大きい場合には、量子化の際に出力値の切り捨て又は丸めが多く発生してしまう場合が多く、NNの認識精度が低下してしまう場合がある。そのような観点から、情報処理装置1は、出力分布と量子化パラメータとに基づいて、レイヤの出力の大きさを調整するように、第1の演算を制御する。特に、出力分布が量子化パラメータに対して小さくなるように(例えば、量子化パラメータ以下となるように)NNの重みを調整することにより、量子化パラメータを大きくせず、量子化の際の認識精度の劣化を低減させることが可能となる。
本実施形態に係る情報処理装置1は、量子化パラメータに基づいて、出力分布が小さくなるように、NNの学習を行う。以下、そのような例について説明を行う。
図3は、本実施形態に係る情報処理装置1が行う、出力分布を出力するまでの処理の一例を示すフローチャートである。S301でモデル取得部202は、NNのモデルを取得する。
S302でデータ取得部201は、画像のミニバッチを取得する。ここでは、ミニバッチとは、1枚以上の画像で構成されるNNへの入力データであり、S301で取得したNNへ入力される入力画像のセットである。例えば、ミニバッチは32枚の画像(ミニバッチに含まれる画像枚数をN(N=32)とする)のセットであるものとする。本実施形態においては、画像から認識対象を検出するモデルを用いるものとするが、ミニバッチに含まれる画像は認識対象を含んでいてもよく、含んでいなくてもよい。
S303で分布算出部203は、S302で取得したミニバッチの画像をS301で取得したモデルに入力し、推論処理を行う。ここでは、分布算出部203は、入力データに対する、NNのレイヤにおける重み係数を用いた演算により、各レイヤから出力を行う。
S304で分布算出部203は、S303で行った推論処理について、レイヤごとに出力値を集計し、集計した出力値に基づいて出力分布Yを取得する。S305で、分布算出部203は、各レイヤの出力分布の値の集合{Y}を出力する。
上述したように、本実施形態に係る情報処理装置1は、このような出力分布Yが小さくなるよう、学習により(NNの重みを決定することで)量子化による認識精度の劣化を低減する。すなわち、情報処理装置1は、出力分布が量子化パラメータを超える場合には損失が大きくなるように学習を行う。図5は、本実施形態に係る重み決定部204による、集合{Y}を用いた、一回の学習の際のNNの重みの決定処理の一例を示すフローチャートである。S501~S511について、基本的には公知のNNの学習方法を用いることができるため、詳細な説明は省略する。
S501で正則化項算出部206は、出力分布の値の集合{Y}を取得する。S502でパラメータ取得部205は、量子化パラメータqを取得する。本実施形態においては、量子化パラメータqは予め設定されており、以下においてはq=4であるものとするが、他パラメータに応じて算出される値が量子化パラメータqとして用いられても構わない。
図4の例では、各レイヤはReLUレイヤを通して出力されるため、出力値は0以上となる。例えば、情報処理装置1は、q=4であることから、各レイヤにおける出力分布の上限を4以下としてもよい。この場合、単精度32bitのNNの各レイヤの出力範囲は[0,4]となる。ここで、精度を8bitにすると、レイヤの出力値は(ビン幅)=4/256=0.015625で量子化される。例えば、単精度32bitのNNのレイヤの出力値が3.1であるとすると、8bitに量子化された際の出力は3.09375となる。この値を、[0,255]の8bitの整数に換算すると、3.09375×256/4=198となる。
S503で係数算出部210は、取得したレイヤiの出力分布Y及び量子化パラメータqを用いて、レイヤiにおける係数Cを算出する。ここで算出されるCは、後述するS508における損失の算出処理で利用される。係数Cは、Yの増加に伴い増加するような値であれば特に限定はされないが、例えば以下の式(2)又は式(3)によって算出されてもよく、式(2)及び式(3)においてYの代わりにYのべき乗が用いられてもよい。
C=Y/q 式(2)
C=exp(Y/q) 式(3)
S504で補正量算出部211は、出力分布Y及び量子化パラメータqを用いて、正則化項を補正するための補正量Dを算出する。この補正量Dは、後述するS508の損失算出処理で利用される。補正量Dは、Yが量子化パラメータqを超えると大きくなるように、例えば以下の式(4)により定められる。
Figure 2023167633000002
S505で学習部208は、モデル取得部202から学習を行うNNのモデルを取得する。S506で教師取得部207は、教師データに用いる、入力画像に対応するミニバッチを取得する。S507で教師取得部207は、S506で取得したミニバッチの正解データを取得し、それらを併せて教師データとする。正解データは、ミニバッチにおける、検出対象の領域を示す情報を含むデータである。なお、ここでは、S302で出力分布を算出するために使用されたミニバッチと同じ画像データが使用されるものとするが、特にこのように限定されるわけではなく、異なるミニバッチが用いられてもよい。
S508で学習部208は、S505で取得したモデルを用いて、S506で取得したミニバッチを入力とする推論処理を行い、その出力とS507で取得した正解データとの損失(目的関数)を算出する。ここで、NNのタスクが領域を検出するタスクである場合、目的関数の損失関数は二乗誤差であってもよく、クロスエントロピー誤差であってもよい。ここでは、学習部208は、レイヤごとに正則化項を算出して損失に加算する。レイヤiに対する正則化項は、レイヤiの重みをwとした場合に、λ(wとして(L2正則化項として)与えられてもよい。なお、この正則化項はL1正則化項として与えられてもよく、これらの組み合わせにより与えられてもよい。λは正則化項にかかる係数であり、S503で算出した係数C、及びS504で算出した補正量Dに基づいて設定される。λは、例えば以下の式(5)として実装されてもよい。以下、単に「正則化項」と称する場合、このように、学習部208が用いる損失関数が含む正則化項を指すものとする。
Figure 2023167633000003
ここで、α及びβは定数である。このような構成によれば、Yがqを超える場合、その超過値が大きいほど損失が大きくなるように学習を行うことで、レイヤの出力値が量子化パラメータを超えないようにNNの学習が進むため、量子化による認識精度の劣化を抑制することができる。
S509で学習部208は、S508で算出した損失を用いて、誤差逆伝播法を使って勾配を算出し、モデルの重みの更新量を算出する。S510で学習部208は、NNの重みを更新する。S511でS501~S511について、基本的には公知のNNの学習方法を用いることができるため、詳細な説明は省略する。重みを更新したモデルを出力し、処理を終了する。このような学習処理を学習ロス又は認識精度が収束するまで(所望の精度まで)繰り返し適用することにより、NNのモデルの重みを決定することができる。
このように、学習部208は、出力分布Yが量子化パラメータqに対して小さくなるようにNNの学習を行うことが可能である。なお、図5を参照して説明した処理は一例であり、Yがqを超える場合に損失が大きくなるように学習が行われるのであれば、損失の算出処理は特に限定はされない。
量子化部209は、重み決定部204で学習した、NNの重みと出力を量子化する。NNの量子化は公知の技術を使用可能であり、詳細な説明は省略する。本実施形態に係る量子化処理では、単精度浮動小数点の32bitでの値が整数の8bitでの値に量子化されるものとするが、量子化を行うのであれば型及び値がこれらに限定されるわけではない。
このような構成によれば、情報処理装置1はまず、NNの中間層における、入力データに対する重み係数を用いた第1の演算による出力の大きさを示す情報を取得する。次いで情報処理装置1は、取得した情報と、第1の演算の結果を含むNNの量子化に用いる量子化パラメータとに基づいて、上述の出力の大きさを調整するように第1の演算を制御することが可能となる。したがって、量子化パラメータを大きくせずに、中間層における演算の出力を小さくすることにより、量子化による認識精度の劣化を低減することができる。また、量子化パラメータをレイヤ間で共通の定数に設定することにより、各レイヤで個別の量子化パラメータを設定する場合と比べて処理の負荷を低減し、量子化パラメータが組み合わせ爆発を起こすことを防ぐことができる。
[実施形態2]
実施形態1においては、出力分布と量子化パラメータとに基づいて出力分布を調整するように、NNの重みの学習を行う例について説明を行った。一方で、実施形態2に係る情報処理装置6は、出力分布と量子化パラメータとに基づいてNNの重みを補正することにより、出力分布の調整を行う。
図6は、本実施形態に係る情報処理装置6の機能構成の一例を示すブロック図である。情報処理装置6は、重み決定部204が重み補正部601を有することを除き、実施形態1の図2で説明したものと同様の構成を有し、同様の処理が可能であるため、重複する説明は省略する。なお、本実施形態においても量子化パラメータqは4であるものとして以下の説明を行う。
図7は、本実施形態において用いられるNNのモデルの一例を示す図である、NNに含まれる各レイヤからの出力分布、及びその出力分布を変換する処理を説明するために用いられる。図7においては、NNの中間層を含む3つのレイヤ701~703が図示されているが、これらのレイヤはそれぞれ図4のレイヤ401~403と同様の構成を有しているため、重複する説明は省略する。
本実施形態においてはq=4であるため、各レイヤで4を超える出力値は、量子化により4に丸められ認識精度が劣化してしまう。そのために、重み補正部601は、出力分布が量子化パラメータを超えないように、NNの重みを(学習によらずに)補正する。
本実施形態に係る重み補正部601は、NNの重みを、出力分布が量子化パラメータ以下になるように補正する。図7の例では、レイヤ701の出力分布の値が15.3であり、量子化パラメータの4を超過している。この出力分布の値を量子化パラメータ以下にするために、重み補正部601は、NNの重みを1/4倍となるように補正する。この補正倍率は、例えば、出力分布の値を1/1倍、1/2倍、1/3倍……と、順に1/M倍(Mは1以上の整数)していき、初めて出力分布が量子化パラメータ以下となったMを探索することにより求めることができる。以下においては、
重み補正部601は、畳み込みレイヤ(704)の重みを補正してもよく、バッチ正規化レイヤ(705)の重みを補正してもよい。本実施形態においては、レイヤがバッチ正規化レイヤを含む場合にはバッチ正規化レイヤの重みを補正するものとする。本実施形態に係るバッチ正規化レイヤは、入力をxとした場合に、例えば下記の式(6)により出力yを算出することができる。ここで、μ、σはそれぞれ入力値の平均値、分散値であり、学習時に移動平均を取って更新される値である。また、γ及びδは誤差逆伝播法で学習する重みパラメータである。
Figure 2023167633000004
レイヤ701の出力を1/4倍したい場合には、式(6)における重みパラメータγ及びδをそれぞれ1/4倍すればよい。この場合、重み補正部601は、NN重みの補正としてγ及びβを1/4倍し、レイヤ701の重みとして出力する。
次いで重み補正部601は、レイヤ702などの以降のレイヤにおいても同様に、重みの補正を行う。図7の例では、レイヤ702の出力は7.4であるため出力分布の値を1/2倍にする必要がある。しかしながら、レイヤ701の出力値が1/4倍となっているため、重み補正部601は、バッチ正規化レイヤ708のμ及びσを1/4倍して入力のスケールを合わせる必要がある。重み補正部601は、β及びγについては、式(6)から値を1/2倍することにより、レイヤ702の出力値を1/2倍にすることができる。したがって、重み補正部601は、NNの重みの補正として、μ及びσを1/4倍に、β及びγを1/2倍し、レイヤ702の重みとして出力する。
また、レイヤ703の出力は3.5であるため出力分布の値を変更する必要はない。ただし、レイヤ702で出力分布が1/2になっているため、出力値を維持するために歯、FCレイヤの重みwとバイアスbをそれぞれ2倍する必要がある。したがって、重み補正部601は、NNの重みの補正として、FCレイヤの重みw及びバイアスbをそれぞれ2倍して、レイヤ703の重みとして出力する。
量子化部209は、このように重みを補正したNNのモデルを量子化してもよく、正則化項算出部206と学習部208とによる学習を行ったNNのモデルを量子化してもよい。また、重み補正部601は、出力分布の値が所定の値(例えば、量子化パラメータ)を上回る場合に補正処理を行うようにしてもよい。さらに例えば、重み補正部601は、NNのモデルが一定の学習回数を行った場合に、重みの補正処理を行うようにしてもよい。
なお、重み補正部601による重みの補正処理は、実施形態1のように出力分布の値が小さくなるように学習をしているものの、その学習による出力分布の低減が不十分であるNNに適用されてもよい。また、当該補正処理は、実施形態1の学習を適用していないNNに適用されてもよい。
このような処理によれば、NNの重みを補正することにより、出力分布が量子化パラメータを超えないように調整することができる。したがって、量子化パラメータを大きくせずに、中間層における演算の出力を小さくすることにより、量子化による認識精度の劣化を低減することができる。
[実施形態3]
本実施形態に係る情報処理装置8は、NNの重みを量子化し、量子化前後のそれぞれのNNの検出対象の認識精度に基づいて、重み決定部204が用いる正則化項の補正を行う。例えば、情報処理装置8は、NNの量子化による認識精度の劣化具合を評価し、その劣化具合に応じて正則化項を補正することにより、学習時における正規化項の寄与度を調整することが可能である。
図8は、本実施形態に係る情報処理装置8の機能構成の一例を示すブロック図である。情報処理装置8は、実数推論部801、評価データ取得部802、第1の評価部803、量子化推論部804、第2の評価部805、及び正則化項補正部806を有することを除き、図2又は図6で説明した情報処理装置と同様の構成を有し、同様の処理が可能である。本実施形態に係る情報処理装置8は、実施形態1又は実施形態2の態様によりNNの学習が済んでいるものとして以下の説明を行うが、学習済みのNNを用いるのであれば特にこれに限定されるわけではない。
評価データ取得部802は、NNによる検出対象の認識精度の評価を行うためのデータである評価データを取得する。ここでは、評価データは予め用意されており、実施形態1で用いた教師データと同様の、ミニバッチと正解データとのセットである。実数推論部801は、学習部208により学習を行ったNNのモデルを用いて、評価データに含まれるミニバッチを入力として推論処理(検出対象の認識)を行う。
第1の評価部803は、NNによる、検出対象の認識精度を評価する。ここでは、第1の評価部803は、実数推論部801が行う推論処理により出力される損失(E1)の値を認識精度として評価するものとする。しかしながら、第1の評価部803は、例えば検出対象の認識の正解率又は尤度など、認識の成功率を示す異なる情報を認識精度として評価してもよい。以下、単に「認識精度」と記載する場合、検出対象の認識精度を指すものとする。
量子化推論部804は、量子化部209により重みが量子化された、(実数推論部801が推論に用いた)NNのモデルを用いて評価データに含まれるミニバッチを入力として推論処理を行う。
第2の評価部805は、量子化推論部804が用いる、重みを量子化したNNによる検出対象の認識精度を評価する。第2の評価部805による認識精度の評価は第1の評価部803による評価と同様に行われ、ここでは推論により出力される損失E2が認識精度として評価されるものとする。
正則化項補正部806は、第1の評価部803による認識精度の評価と、第2の評価部805による認識精度の評価と、に基づいて、正則化項の補正を行う。ここでは、正則化項補正部806は、第1の評価部803による認識精度の評価と第2の評価部805による認識精度の評価とを用いて、重みの量子化によるNNの認識精度の劣化度合いを評価し、この評価を用いて正規化項を補正してもよい。
本実施形態においては、正則化項補正部806は、以下の式(7)を用いて、重みの量子化によるNNの認識精度の劣化度合いFを評価する。E1及びE2は損失関数の値であるため、Fがよりも大きい場合量子化により認識精度が低下しており、Fが大きいほどこの劣化度合いが大きいことになる。
F=E1/E2 式(7)
正則化項補正部806は、例えば以下の式(8)に従い、この劣化度合いFの値を正則化項の係数として補正後の正則化項λ´を算出することにより、劣化度合いを用いて正則化項を補正してもよい。このようにすることで、認識精度の劣化度合いに応じて、学習時の正則化項の寄与を補正することができる。すなわち、劣化度合いが小さい場合には学習時の正規化項の寄与度を弱め、劣化度合いが大きい場合には学習時の正規化項の寄与度を高めることができる。
λ´=Fλ 式(8)
この正規化項の補正処理は、学習部208によるNNの重みの更新処理の度に行う必要はなく、例えば所定の学習回数ごとに行ってもよい。
このような構成によれば、NNの量子化の前後での認識精度の変化に応じて、学習時の正則化項の補正を行うことができる。したがって、量子化によりNNの認識精度が劣化する度合いに応じて学習時の正則化項の寄与度を調整することができる。
本明細書の開示は、以下の情報処理装置、情報処理方法、及びプログラムを含む。
(項目1)
中間層のデータを得るために、入力データに対する重み係数を用いた第1の演算及び前記第1の演算の結果を量子化する第2の演算を行うニューラルネットワークにおける、前記第1の演算による出力の大きさを示す情報を取得する取得手段と、
前記情報と、前記量子化に用いる量子化パラメータと、に基づいて、前記出力の大きさを調節するように、前記ニューラルネットワークにおける前記第1の演算を制御する制御手段と、
を備えることを特徴とする情報処理装置。
(項目2)
前記出力の大きさを示す情報が、前記出力の値の分布に基づいて算出される情報であることを特徴とする、項目1に記載の情報処理装置。
(項目3)
前記出力の大きさを示す情報が、前記出力の外れ値を除く、上限を示す情報であることを特徴とする、項目2に記載の情報処理装置。
(項目4)
前記制御手段は、前記出力の大きさが前記量子化パラメータを超える場合に損失が大きくなるよう学習を行うことによって、前記ニューラルネットワークの重み係数を制御することにより、前記第1の演算を制御することを特徴とする、項目1乃至項目3の何れか1項目に記載の情報処理装置。
(項目5)
前記損失が、前記出力の大きさが前記量子化パラメータを超える場合に大きくなる正則化項を含む損失関数によって算出されることを特徴とする、項目4に記載の情報処理装置。
(項目6)
前記ニューラルネットワークによる検出対象の認識精度を評価する第1の評価手段と、
前記ニューラルネットワークの重み係数を量子化する量子化手段と、
前記重み係数を量子化した前記ニューラルネットワークによる前記検出対象の認識精度を評価する第2の評価手段と、
前記損失関数が含む正則化項を、前記第1の評価手段により評価される認識精度と前記第2の評価手段により評価される認識精度とに基づいて補正する補正手段と、
をさらに備えることを特徴とする、項目5に記載の情報処理装置。
(項目7)
前記第1の評価手段により評価される認識精度と前記第2の評価手段により評価される認識精度とを用いて、前記重み係数の量子化による前記ニューラルネットワークによる前記検出対象の認識精度の劣化度合いを評価する第3の評価手段をさらに備え、
前記補正手段は、前記正則化項を、前記劣化度合いを用いて補正することを特徴とする、項目6に記載の情報処理装置。
(項目8)
前記制御手段は、前記中間層の重み係数を補正することで、前記出力の大きさを調整することを特徴とする、項目1乃至7の何れか1項目に記載の情報処理装置。
(項目9)
前記制御手段は、前記出力の大きさが所定の値を上回る場合に、前記ニューラルネットワークにおける前記第1の演算の制御を実行することを特徴とする、項目8に記載の情報処理装置。
(項目10)
中間層のデータを得るために、入力データに対する重み係数を用いた第1の演算及び前記第1の演算の結果を量子化する第2の演算を行うニューラルネットワークにおける、前記第1の演算による出力の大きさを示す情報を取得する工程と、
前記情報と、前記量子化に用いる量子化パラメータと、に基づいて、前記出力の大きさを調節するように、前記ニューラルネットワークにおける前記第1の演算を制御する工程と、
を備えることを特徴とする情報処理方法。
(項目11)
コンピュータを、項目1乃至9の何れか一項に記載の情報処理装置の各手段として機能させるためのプログラム。
(項目12)
項目11に記載のプログラムを格納する記憶媒体。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
11:CPU、12:ROM、13:RAM、14:記憶部、15:入出力部、16:表示部

Claims (12)

  1. 中間層のデータを得るために、入力データに対する重み係数を用いた第1の演算及び前記第1の演算の結果を量子化する第2の演算を行うニューラルネットワークにおける、前記第1の演算による出力の大きさを示す情報を取得する取得手段と、
    前記情報と、前記量子化に用いる量子化パラメータと、に基づいて、前記出力の大きさを調節するように、前記ニューラルネットワークにおける前記第1の演算を制御する制御手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記出力の大きさを示す情報が、前記出力の値の分布に基づいて算出される情報であることを特徴とする、請求項1に記載の情報処理装置。
  3. 前記出力の大きさを示す情報が、前記出力の外れ値を除く、上限を示す情報であることを特徴とする、請求項2に記載の情報処理装置。
  4. 前記制御手段は、前記出力の大きさが前記量子化パラメータを超える場合に損失が大きくなるよう学習を行うことによって、前記ニューラルネットワークの重み係数を制御することにより、前記第1の演算を制御することを特徴とする、請求項1に記載の情報処理装置。
  5. 前記損失が、前記出力の大きさが前記量子化パラメータを超える場合に大きくなる正則化項を含む損失関数によって算出されることを特徴とする、請求項4に記載の情報処理装置。
  6. 前記ニューラルネットワークによる検出対象の認識精度を評価する第1の評価手段と、
    前記ニューラルネットワークの重み係数を量子化する量子化手段と、
    前記重み係数を量子化した前記ニューラルネットワークによる前記検出対象の認識精度を評価する第2の評価手段と、
    前記損失関数が含む正則化項を、前記第1の評価手段により評価される認識精度と前記第2の評価手段により評価される認識精度とに基づいて補正する補正手段と、
    をさらに備えることを特徴とする、請求項5に記載の情報処理装置。
  7. 前記第1の評価手段により評価される認識精度と前記第2の評価手段により評価される認識精度とを用いて、前記重み係数の量子化による前記ニューラルネットワークによる前記検出対象の認識精度の劣化度合いを評価する第3の評価手段をさらに備え、
    前記補正手段は、前記正則化項を、前記劣化度合いを用いて補正することを特徴とする、請求項6に記載の情報処理装置。
  8. 前記制御手段は、前記中間層の重み係数を補正することで、前記出力の大きさを調整することを特徴とする、請求項1に記載の情報処理装置。
  9. 前記制御手段は、前記出力の大きさが所定の値を上回る場合に、前記ニューラルネットワークにおける前記第1の演算の制御を実行することを特徴とする、請求項8に記載の情報処理装置。
  10. 中間層のデータを得るために、入力データに対する重み係数を用いた第1の演算及び前記第1の演算の結果を量子化する第2の演算を行うニューラルネットワークにおける、前記第1の演算による出力の大きさを示す情報を取得する工程と、
    前記情報と、前記量子化に用いる量子化パラメータと、に基づいて、前記出力の大きさを調節するように、前記ニューラルネットワークにおける前記第1の演算を制御する工程と、
    を備えることを特徴とする情報処理方法。
  11. コンピュータを、請求項1乃至9の何れか一項に記載の情報処理装置の各手段として機能させるためのプログラム。
  12. 請求項11に記載のプログラムを格納する記憶媒体。
JP2022078954A 2022-05-12 2022-05-12 情報処理装置、情報処理方法、プログラム、及び記憶媒体 Pending JP2023167633A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022078954A JP2023167633A (ja) 2022-05-12 2022-05-12 情報処理装置、情報処理方法、プログラム、及び記憶媒体
US18/311,258 US20230368006A1 (en) 2022-05-12 2023-05-03 Information processing apparatus, information processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022078954A JP2023167633A (ja) 2022-05-12 2022-05-12 情報処理装置、情報処理方法、プログラム、及び記憶媒体

Publications (1)

Publication Number Publication Date
JP2023167633A true JP2023167633A (ja) 2023-11-24

Family

ID=88699065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022078954A Pending JP2023167633A (ja) 2022-05-12 2022-05-12 情報処理装置、情報処理方法、プログラム、及び記憶媒体

Country Status (2)

Country Link
US (1) US20230368006A1 (ja)
JP (1) JP2023167633A (ja)

Also Published As

Publication number Publication date
US20230368006A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
CN109754066B (zh) 用于生成定点型神经网络的方法和装置
KR102413028B1 (ko) 중첩 신경망을 프루닝하는 방법 및 장치
CN110969251B (zh) 基于无标签数据的神经网络模型量化方法及装置
CN115841137A (zh) 一种用于对待量化数据进行定点化处理的方法及计算装置
US20180032865A1 (en) Prediction apparatus, prediction method, and prediction program
TW201915839A (zh) 對人工神經網路及浮點神經網路進行量化的方法及裝置
KR20160143505A (ko) 신경망의 연산량을 줄이는 방법 및 시스템
CN111758104B (zh) 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置
US10922587B2 (en) Analyzing and correcting vulnerabilities in neural networks
CN111695671A (zh) 训练神经网络的方法及装置、电子设备
TW201820174A (zh) 整體式學習預測裝置與方法、以及非暫存電腦可讀的儲存媒介
JP2020135011A (ja) 情報処理装置及び方法
US20220036189A1 (en) Methods, systems, and media for random semi-structured row-wise pruning in neural networks
KR20210015990A (ko) 학습된 파라미터의 형태변환을 이용한 컨벌루션 신경망 파라미터 최적화 방법, 컨벌루션 신경망 연산방법 및 그 장치
US20230037498A1 (en) Method and system for generating a predictive model
KR102462910B1 (ko) 배치 정규화 레이어의 웨이트들에 대한 양자화 방법 및 그 장치
WO2019142241A1 (ja) データ処理システムおよびデータ処理方法
JP2023167633A (ja) 情報処理装置、情報処理方法、プログラム、及び記憶媒体
KR101987475B1 (ko) 하드웨어 구현에 적합한 신경망 파라미터 최적화 방법, 신경망 연산방법 및 그 장치
WO2021246892A1 (en) Method for training an artificial neural network comprising quantized parameters
US20200371746A1 (en) Arithmetic processing device, method for controlling arithmetic processing device, and non-transitory computer-readable storage medium for storing program for controlling arithmetic processing device
US20210216867A1 (en) Information processing apparatus, neural network computation program, and neural network computation method
KR102384588B1 (ko) 신경망 연산방법 및 신경망 가중치 생성방법
US20200349445A1 (en) Data processing system and data processing method
CN111814955A (zh) 神经网络模型的量化方法、设备及计算机存储介质