JP7045947B2 - ニューラルネットワークの学習装置および学習方法 - Google Patents

ニューラルネットワークの学習装置および学習方法 Download PDF

Info

Publication number
JP7045947B2
JP7045947B2 JP2018128241A JP2018128241A JP7045947B2 JP 7045947 B2 JP7045947 B2 JP 7045947B2 JP 2018128241 A JP2018128241 A JP 2018128241A JP 2018128241 A JP2018128241 A JP 2018128241A JP 7045947 B2 JP7045947 B2 JP 7045947B2
Authority
JP
Japan
Prior art keywords
quantization
learning
neural network
region
network model
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
JP2018128241A
Other languages
English (en)
Other versions
JP2020009048A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018128241A priority Critical patent/JP7045947B2/ja
Priority to US16/460,382 priority patent/US20200012926A1/en
Publication of JP2020009048A publication Critical patent/JP2020009048A/ja
Application granted granted Critical
Publication of JP7045947B2 publication Critical patent/JP7045947B2/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/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/04Architecture, e.g. interconnection topology
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation

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 Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Neurology (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)

Description

本発明は、ニューラルネットワークの学習に関する技術である。好ましい適用例としては、深層学習を用いたAI(Artificial Intelligence)の学習に関する技術である。
生物の脳は、多数のニューロン(神経細胞)が存在し、各ニューロンは他の多数のニューロンからの信号入力と、また他の多数のニューロンへ信号を出力するような動きを行う。このような脳の仕組みをコンピュータで実現しようとしたものがDeep Neural Network(DNN)等のニューラルネットワークであり、生物の神経細胞ネットワークの挙動を模倣した工学モデルである。DNNの一例として、物体認識や画像処理に有効な畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)がある。
図1にCNNの構成の一例を示す。CNNは入力層1、1層以上の中間層2、および出力層3と呼ばれる多層の畳み込み演算層により構成される。N層目の畳み込み演算層では、N-1層目から出力された値を入力とし、この入力値に重みフィルタ4を畳み込むことで、得られた結果をN+1層目の入力へ出力する。このとき、重みフィルタ4のカーネル係数(重み係数)をアプリケーションに応じて適切な値に設定すること(学習)で、高い汎化性能を得ることができる。
近年、CNNを自動運転へ適用し、物体認識や行動予測等を実現する動きが加速している。しかし、一般にCNNは演算量が大きく、車載ECU(Electronic Control Unit)等に実装するためには、CNNを軽量化する必要がある。CNNを軽量化する手法の一つに演算の低ビット化がある。低ビット演算でCNNを実現する技術として、非特許文献1がある。
Qiu et al. Going Deeper with Embedded FPGA Platform for Convolutional Neural Network, FPGA’16
非特許文献1では、層毎の重み係数および特徴マップの分布に応じて低ビット化のサンプリング領域(量子化領域)を設定する。しかし、低ビット化後の再学習による重み係数および特徴マップ分布の変化は考慮されていない。このため、再学習途中で重み係数および特徴マップ分布が変化し、層毎に予め設定したサンプリング領域を逸脱した場合、オーバーフローによる情報損失が発生する課題があった。
図2で、発明者らが検討した上記課題を詳しく説明する。周知のように、CNNの学習の典型例においては、学習データの入力ごとに出力と正解の一致度に基づいて重み係数を修正する再学習を反復して実行する。そして、損失関数(学習損失)が最小になるように、最終的な重み係数を設定する。
図2では、反復される再学習により重み係数の分布が変化する様子を示している。横軸が重み係数の値であり、縦軸が重み係数の分布である。当初重み係数は(A)に示すように、連続値あるいは高ビットの情報である。ここで(B)に示すように、重み係数の最大値と最小値をカバーするサンプリング領域を設定し、サンプリング領域を例えば2個に等間隔で標本化する。標本化処理により、高ビットの情報は低ビットの情報に変換され、計算量が低減できる。
既に述べたように、重み係数の学習処理では、再学習を反復することにより重み係数を最適化していく。このとき、低ビット化した重み係数により再度学習を行なうと、重み係数は変化し、(C)に示すように重み係数の分布も変化する。そうすると、再学習前に設定していたサンプリング領域から、重み係数が外れてしまう状況(オーバーフロー)があり得る。図2(C)では、オーバーフローした部分のデータは失われるか、あるいはサンプリング領域の最大値あるいは最小値に圧縮される。従って、オーバーフローは学習の精度を低下させるおそれがある。
そこで、本発明の課題は、演算の低ビット化によりCNNを軽量化しつつ、適切な演算を可能とすることにある。
本発明の好ましい一側面は、低ビット化部と、学習部と、メモリを具備するニューラルネットワークの学習装置である。低ビット化部は、ニューラルネットワークモデルの演算対象となる数値に対して、第1の量子化領域を適用した第1の量子化を実行する。学習部は、第1の量子化が実行されたニューラルネットワークモデルに対し、学習を実行する。低ビット化部は、学習部において学習が実行されたニューラルネットワークモデルの演算対象となる数値に対して、第2の量子化領域を適用した第2の量子化を実行する。メモリは、第2の量子化が実行されたニューラルネットワークモデルを格納する。
本発明の好ましい他の一側面は、低ビット化部と、学習部と、メモリを具備する情報処理装置により、ニューラルネットワークの重み係数を学習するニューラルネットワークの学習方法である。この方法は、低ビット化部が、入力された任意のニューラルネットワークモデルの重み係数に対して、第1の量子化領域を適用した第1の量子化を実行する第1のステップ、学習部が、第1の量子化が実行されたニューラルネットワークモデルに対し、学習を実行する第2のステップ、低ビット化部が、学習部において学習が実行されたニューラルネットワークモデルの重み係数に対して、第2の量子化領域を適用した第2の量子化を実行する第3のステップ、メモリが、第2の量子化が実行されたニューラルネットワークモデルを格納する第4のステップ、を備える。
本発明によれば、演算の低ビット化によりCNNを軽量化しつつ、適切な演算を可能とすることができる。
CNN構造の一例の概念図。 比較例の低ビット化サンプリング手法の概念図。 実施例の低ビット化サンプリング手法の概念図。 実施例1における装置構成ブロック図。 実施例1におけるフローチャート。 実施例2における装置構成ブロック図。 実施例2におけるフローチャート。 実施例3における装置構成ブロック図。 実施例3におけるフローチャート。 ResNet34における本発明適用の効果を示すグラフ図。
以下実施例を図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。同一あるいは同様な機能を有する要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、複数の要素を区別する必要がない場合には、添字を省略して説明する場合がある。
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
図3に、以下で詳細に説明される実施例の一例を概念化して示す。実施例では、演算対象となる数値の低ビット化によりCNNを軽量化しつつ、演算対象となる数値がサンプリング領域を逸脱することによる、情報損失を抑制する。演算対象となる数値の具体例としては、ニューラルネットワークモデルの重み係数や、重み係数を畳み込む対象および畳み込んだ結果である特徴マップがある。以下では、主に重み係数を例に説明する。当初重み係数は(A)に示すように、連続値あるいは高ビットの情報である。ここで(B)に示すように、重み係数の最大値と最小値をカバーするサンプリング領域を設定し、サンプリング領域を例えば2個に等間隔で標本化する。標本化処理により、高ビットの情報は低ビットの情報に変換され、計算量が低減できる。
本実施例では、(B)における低ビット化後の再学習途中の重み係数の変化に応じて、重み係数のサンプリング領域を動的に変更する。サンプリング領域の動的な変更により、オーバーフローを防止しつつ低ビット化を行う。具体的には、1 iteration(1回反復)再学習を実行するたびに、層毎の重み係数分布を集計し、重み係数の最大値と最小値の間をサンプリング領域として再設定する。その後、(C)に示すように、再設定したサンプリング領域を等間隔に再量子化することで低ビット化を行う。以上は重み係数に対する量子化処理の例であるが、重み係数と積和演算が行なわれる特徴マップの数値に対しても同様の量子化処理が可能である。
図3で説明した処理は、例えばCNNの各層ごとに行い、層ごとにオーバーフローを避ける適切な量子化を可能とする。もっとも、複数層を纏めて行なってもよいし、1つの層のエッジごとに行なうこともあり得る。この手法を用いることで、再学習途中に重み係数や特徴マップの分布が変化した場合でも、オーバーフローの発生を抑止することができるため、情報量の損失を防ぐことが可能である。結果としてCNNにおいて、認識精度低下を抑制しつつ、CNNの演算を低ビット化することができる。
図4および図5はそれぞれ実施例1の構成図および処理フローチャートである。図4および図5を参照して、CNNモデルの重み係数の学習処理について説明する。本実施例では図4に示すニューラルネットワークの学習装置の構成は、処理装置、記憶装置、入力装置、出力装置を備える一般的な情報処理装置(コンピュータあるいはサーバ)で実現することにした。具体的には、記憶装置に格納されたプログラムが処理装置によって実行されることで、定められた処理を他のハードウェアと協働して計算や制御等の機能を実現する。情報処理装置が実行するプログラム、その機能、あるいはその機能を実現する手段を、「機能」、「手段」、「部」、「回路」等と呼ぶ場合がある。
情報処理装置の構成は、単体のコンピュータで構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。また、ソフトウェアで構成した機能と同等の機能は、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)などのハードウェアでも実現できる。そのような態様も本願発明の範囲に含まれる。
図4に示す構成では、入力として任意のCNNモデルを受け付け、CNNモデルの重み係数をオーバーフローなしサンプリングする低ビット化部(B100)を備える。また、低ビット化済みCNNモデルを再度学習する再学習部(B101)と、再学習途中で重み係数の分布が変化した場合は、オーバーフローが発生しないようにサンプリング領域を補正し、再度低ビット化を実行する再低ビット化部(B102)を備える。再学習部(B101)は、一般的なニューラルネットワークの学習器(学習部)を適用してよい。
図5のフローチャートに基づく動作について、以下で述べる。なお、図5において、処理を現すステップはSと略記する。
ステップ100:入力として、低ビット化前のオリジナルCNNモデルおよびオリジナルCNNモデルの重み係数を低ビット量子化するためのサンプリング領域初期値を与える。サンプリング領域初期値はランダムあるいは予め設定した固定値でよい。
ステップ101:サンプリング領域初期値を基に、オリジナルCNNモデルの重み係数を量子化回路(P100)で低ビット量子化し,低ビット量子化済みCNNモデルを生成する。具体的な例では,nビットに低ビット量子化を行う場合,サンプリング領域を2のn乗個の領域に等間隔に分割することで量子化を行う。
ステップ102:低ビット量子化済みCNNモデルの重み係数がサンプリング領域初期値から逸脱(オーバーフロー)しているかどうかを制御回路A(P101)で判定する。オーバーフローが発生する場合はステップ103へ進みオーバーフローが発生しない場合は,低ビット量子化済みCNNモデルをオーバーフローなし低ビット化モデルとして,ステップ104へ進む。
ステップ103:オーバーフローが発生する場合は、サンプリング領域を所定の値広げるように補正し、再度重みパラメタの低ビット量子化を量子化回路(P100)で実行する。その後,ステップ102へ戻り,重み係数のオーバーフロー有無を再度判定する。
ステップ104:オーバーフローなし低ビット化モデルに対して、再学習回路(P102)において,1 iteration再学習を行う。本実施例において、CNNの学習そのものについては従来技術を踏襲してよい。
ステップ105:再学習により重み係数の分布が変化した場合は、ステップ103で設定したサンプリング領域において重み係数のオーバーフロー発生有無を制御回路A(P106)で判定する。オーバーフローが発生する場合は,ステップ106に進み,オーバーフローが発生しない場合は,ステップ108に進む。
ステップ106:ステップ105でオーバーフローが発生すると判断された場合は、サンプリング領域再設定回路(P104)において、再度サンプリング領域を広げるように補正し、オーバーフローが発生しないようにする。
ステップ107:ステップ106で設定したサンプリング領域に基づいて量子化回路(P105)で再度量子化を行うことで,オーバーフローなし低ビット化済みCNNモデルを生成する。具体的には,nビットに低ビット量子化を行う場合,サンプリング領域を2のn乗個の領域に等間隔に分割することで量子化を行う。
ステップ108:ステップ107で生成したオーバーフローなし低ビット化済みCNNモデルの学習時における損失関数が示す学習損失が閾値th以下の場合、処理を終了し、低ビット化CNNモデルとして出力する。逆に閾値以上の場合、ステップ104にもどり再学習処理を続ける。本判定は制御回路B(P103)で行う。出力された低ビット化CNNモデル、あるいは再学習中の低ビット化CNNモデルは、外部メモリ(P107)に格納される。
以上の処理により、再学習により重み係数が変化した場合でも、オーバーフローを避けつつ情報の低ビット化が可能となる。なお、上記の例では、オーバーフローの有無を確認し、オーバーフローがあった場合にサンプリング領域を補正しているが、オーバーフローの有無の確認を省略し、再学習ごとに常にサンプリング領域を更新するようにしてもよい。あるいは、オーバーフローに限定せず、重み係数の分布が変化したことを契機に、サンプリング領域を更新するようにしてもよい。オーバーフローに関わらず、最大値と最小値をカバーするようにサンプリング領域を設定して、再量子化を実行することにより、サンプリング領域が広すぎる場合にも適切なサンプリング領域の設定が可能になる。また、図4では、説明のために量子化回路(P100,P105)、制御回路A(P101,P106)は別個独立に示されているが、同一のソフトウェアあるいはハードウェアを別々のタイミングで使用してもよい。
図4の構成を、CNNの各層ごとに低ビット量子化する形態に適用する場合、各層の並列処理を可能とするためには、各層ごとに低ビット化部(B100)と再低ビット化部(B102)備えることになる。再学習部(B101)と外部メモリ(B107)は各層共通でよい。
図5で説明した処理により、最終的に出力された学習済みの低ビット化CNNモデルは、従来のCNNと同様に、例えばFPGAのような半導体装置により構成されるハードウェアに実装される。本実施例により出力された低ビット化CNNモデルでは、精度のよい学習が行なわれているとともに、各層の重み係数はオリジナルのモデルより低ビット数に設定されている。したがって、ハードウェアに実装されたニューラルネットワークは、高精度かつ低負荷で計算が実行でき、低消費電力で動作が可能である。
図6および図7はそれぞれ実施例2の構成図および処理フローチャートである。実施例1と同じ構成は同じ符号を付して説明を省略する。実施例2では、はずれ値を考慮した例を示す。はずれ値とは、例えば重み係数の分布から孤立した値である。サンプリング領域を常に重み係数の最大値と最小値をカバーするように設定すると、出現頻度の小さいはずれ値を含めるために量子化効率が下がるという問題がある。そこで、実施例2では、例えば重み係数の分布の中央値からプラス方向およびマイナス方向に所定の範囲を定める閾値を設定し、範囲外の重み係数ははずれ値として無視する処理を行なう。
図6に示す実施例2は、実施例1の図4の出力部にはずれ値除外部(B303)を追加した構成である。はずれ値除外部は、はずれ値除外回路(P208)で構成され、実施例1で出力された低ビット化CNNモデルの重み係数が、任意閾値を上回った場合に、該当する重み係数をはずれ値として除外する。サンプリング領域ははずれ値を無視して、最大値および最小値をカバーするように設定する。閾値は例えば重み係数の分布の中央値からプラス側とマイナス側に設定し、当該閾値よりプラス側あるいはマイナス側に位置する重み係数をはずれ値とする。なお閾値はプラスおよびマイナスの片方のみ設定しても良い。
図7のフローチャートに基づく動作について述べる。なお、実施例1の図5から変更がある部分のみ以下で述べる。また、図7において、ステップはSと略記する。
ステップ205:実施例1で出力された低ビット化CNNモデルに対して、重み係数の値が任意閾値以上であるか判定する。閾値以上の場合ステップ206へ進み、閾値以下の場合はステップ207に進む。
ステップ206:ステップ205で重み係数の値が閾値以上であると判定された場合、はずれ値として除外する。
図6の構成を、CNNの各層ごとに低ビット量子化する形態に適用し、並列処理する場合には、各層ごとにはずれ値除外部(B203)を備えることになる。
図8および図9はそれぞれ実施例3の構成図および処理フローチャートである。実施例1および2と同じ構成は同じ符号を付して説明を省略する。
図8に示す実施例3は、実施例2の入力部にネットワーク(Network)間引き部(B304)を追加した構成である。ネットワーク間引き部はネットワーク間引き回路(B309)とファインチューニング(Fine-Tuning)回路(B310)から構成されており、前者の回路でCNNのネットワークのうち不要なニューロンを間引き、後者で間引き後のCNNに対してファインチューニング(転移学習)を適用する。不要なニューロンとは、例えば重み係数が小さいニューロンである。ファインチューニングは、公知技術であり、すでにトレーニングされたモデルから重みを取得することで、より早く学習を進める処理である。
図9のフローチャートに基づいて、図8の構成の動作について述べる。なお、実施例2から変更がある部分のみ以下で述べる。また、図9において、ステップはSと略記する。
ステップ301:低ビット化前のオリジナルCNNモデルに対して、ネットワークのうち不要なニューロンの間引きを行う。
ステップ302:間引きを行ったCNNモデルに対して、ファインチューニングを適用する。
図8の構成を、CNNの各層ごとに低ビット量子化する形態に適用する場合には、ネットワーク間引き部(B304)は各層共通でよい。
図10に識別AIの一種であるResNet34に実施例1を適用して低ビット化を行った場合と非特許文献1を用いて低ビット化を行った場合の識別精度を示す。演算ビット幅32bitは離散化前の連続値を示す。本実施例を用いることで、認識精度低下を抑制しつつ5bitまで演算を低ビット化できる。
実施例1~実施例3は、重み係数の量子化を例に説明した。同様の量子化は、畳み込み演算の入力と出力である特徴マップにも適用できる。特徴マップとは,重み係数を畳み込む対象xおよび畳み込んだ結果yを指す。ここで、ニューラルネットワークのある層に着目すると、その入出力は、
y = w*x
y:出力特徴マップ
(次の層の入力特徴マップとなる。最終層目の場合はニューラルネットワークからの出力。)
w:重み係数
*:畳み込演算
x:入力特徴マップ
(前の層の出力特徴マップである。1層目の場合はニューラルネットワークへの入力。)
である。よって、再学習により重み係数が変化すると、出力特徴マップ(すなわち次の層の入力特徴マップ)も変化する。
従って、重み係数だけではなく,畳み込む対象xおよび畳み込んだ結果yも離散化することで、さらに計算負荷を低減することができる。このとき、実施例1~実施例3の重み係数の量子化の場合と同様に、特徴マップの分布の変化があった場合、あるいは、オーバーフローがあった場合に特徴マップの再量子化を行なうことができる。あるいは、再学習毎に無条件に特徴マップの再量子化を行なうことができる。また、実施例2と同様に、特徴マップの量子化でも、はずれ値の除外処理をしてよい。あるいは、重み係数は量子化せず、あるいは再量子化せずに、特徴マップのみ量子化あるいは再量子化してもよい。重み係数および特徴マップの双方を再量子化することにより、最大の計算負荷低減効果が得られるとともに、オーバーフローによる認識精度低下を抑制することができる。
特徴マップも重み係数の場合と同様に、量子化したものをFPGAに実装する。通常は、運用時には学習時と同様の情報を入力するために、同程度の桁数の値が入力されると仮定してよい。例えば、規格化されたサイズの画像を取り扱う場合には、学習時と運用時では同様の量子化数で適切な設定が可能となる。このため、効果的に演算量を低減可能である。
以上説明した実施例によれば、演算の低ビット化によりCNNを軽量化しつつ、演算対象となる数値がサンプリング領域を逸脱することによる、情報損失を抑制することができる。実施例の装置あるいは方法によって学習されたCNNは、等価な論理回路が例えばFPGAに実装される。このとき、演算対象となる数値は適切に量子化されているので、計算精度を維持しつつ、演算負荷を低減することができる。
B100…低ビット化部、B101…再学習部、B102…再低ビット化部、B203…はずれ値除外部、B304…Network間引き部

Claims (13)

  1. 低ビット化部と、学習部と、メモリを具備し、
    前記低ビット化部は、ニューラルネットワークモデルの演算対象となる数値に対して、第1の量子化領域を適用した第1の量子化を実行し、
    前記学習部は、前記第1の量子化が実行されたニューラルネットワークモデルに対し、学習を実行し、
    前記低ビット化部は、前記学習部において学習が実行されたニューラルネットワークモデルの演算対象となる数値に対して、第2の量子化領域を適用した第2の量子化を実行し、
    前記メモリは、前記第2の量子化が実行されたニューラルネットワークモデルを格納し、
    はずれ値除外部をさらに備え、
    前記はずれ値除外部は、前記演算対象となる数値の所定範囲外の値を除外し、
    前記低ビット化部は、サンプリング領域再設定回路と量子化回路を備え、
    前記サンプリング領域再設定回路は、前記第2の量子化で、前記演算対象となる数値の前記所定範囲内における最小値と最大値の間で、前記第2の量子化領域を設定し、
    前記量子化回路は、演算対象となる数値を前記第2の量子化領域で等間隔に標本化する、
    ニューラルネットワークの学習装置。
  2. 前記第1の量子化領域と前記第2の量子化領域は、範囲が異なる、
    請求項1記載のニューラルネットワークの学習装置。
  3. 前記低ビット化部は、第1の制御回路を備え、
    前記第1の制御回路は、前記学習により前記演算対象となる数値の分布に変化が生じた場合に、前記第2の量子化を実行させる、
    請求項1記載のニューラルネットワークの学習装置。
  4. 前記低ビット化部は、第1の制御回路を備え、
    前記第1の制御回路は、前記学習により前記演算対象となる数値が前記第1の量子化領域からオーバーフローした場合に、前記第2の量子化を実行させる、
    請求項1記載のニューラルネットワークの学習装置。
  5. 前記低ビット化部は、サンプリング領域再設定回路と量子化回路を備え、
    前記サンプリング領域再設定回路は、前記第2の量子化で、前記演算対象となる数値の最小値と最大値の間で、前記第2の量子化領域を設定し、
    前記量子化回路は、前記演算対象となる数値を前記第2の量子化領域で等間隔に標本化する、
    請求項1記載のニューラルネットワークの学習装置。
  6. 前記ニューラルネットワークモデルの演算対象となる数値は、
    ニューラルネットワークの重み係数および特徴マップの少なくとも一つである、
    請求項1記載のニューラルネットワークの学習装置。
  7. 低ビット化部と、学習部と、メモリを具備する情報処理装置により、ニューラルネットワークの重み係数を学習するニューラルネットワークの学習方法であって、
    前記低ビット化部が、入力された任意のニューラルネットワークモデルの重み係数に対して、第1の量子化領域を適用した第1の量子化を実行する第1のステップ、
    前記学習部が、前記第1の量子化が実行されたニューラルネットワークモデルに対し、学習を実行する第2のステップ、
    前記低ビット化部が、前記学習部において学習が実行されたニューラルネットワークモデルの重み係数に対して、第2の量子化領域を適用した第2の量子化を実行する第3のステップ、
    前記メモリが、前記第2の量子化が実行されたニューラルネットワークモデルを格納する第4のステップ、を備え
    前記第3のステップにおいて、
    前記ニューラルネットワークモデルの重み係数の所定範囲外の値を除外し、
    前記第2の量子化では、前記ニューラルネットワークモデルの重み係数の前記所定範囲内における最小値と最大値の間で、前記第2の量子化領域を設定し、前記重み係数を前記第2の量子化領域で等間隔に標本化する、
    ニューラルネットワークの学習方法。
  8. 前記第1の量子化領域と前記第2の量子化領域は、範囲が異なる、
    請求項記載のニューラルネットワークの学習方法。
  9. 前記第3のステップにおいて、
    前記学習により重み係数の分布に変化が生じた場合に、前記第2の量子化を実行させる、
    請求項記載のニューラルネットワークの学習方法。
  10. 前記第3のステップにおいて、
    前記学習により重み係数が前記第1の量子化領域からオーバーフローした場合に、前記第2の量子化を実行させる、
    請求項記載のニューラルネットワークの学習方法。
  11. 前記第3のステップにおいて、
    前記第2の量子化では、前記ニューラルネットワークモデルの重み係数の最小値と最大値の間で、前記第2の量子化領域を設定し、前記重み係数を前記第2の量子化領域で等間隔に標本化する、
    請求項記載のニューラルネットワークの学習方法。
  12. 前記第4のステップにおいて、
    前記第2の量子化が実行されたニューラルネットワークモデルの学習損失が任意閾値以上かどうかを判定し、
    学習損失が任意閾値以下の場合は、前記第2の量子化が実行されたニューラルネットワークモデルを前記メモリに格納して、処理を終了し、
    学習損失が任意閾値以上の場合は、前記第2の量子化が実行されたニューラルネットワークモデルに対し、前記学習部による再学習を実行する、
    請求項記載のニューラルネットワークの学習方法。
  13. 前記メモリに格納されたニューラルネットワークモデルを用いて、半導体装置にニューラルネットワークを構成する、
    請求項12記載のニューラルネットワークの学習方法。
JP2018128241A 2018-07-05 2018-07-05 ニューラルネットワークの学習装置および学習方法 Active JP7045947B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018128241A JP7045947B2 (ja) 2018-07-05 2018-07-05 ニューラルネットワークの学習装置および学習方法
US16/460,382 US20200012926A1 (en) 2018-07-05 2019-07-02 Neural network learning device and neural network learning method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018128241A JP7045947B2 (ja) 2018-07-05 2018-07-05 ニューラルネットワークの学習装置および学習方法

Publications (2)

Publication Number Publication Date
JP2020009048A JP2020009048A (ja) 2020-01-16
JP7045947B2 true JP7045947B2 (ja) 2022-04-01

Family

ID=69102207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018128241A Active JP7045947B2 (ja) 2018-07-05 2018-07-05 ニューラルネットワークの学習装置および学習方法

Country Status (2)

Country Link
US (1) US20200012926A1 (ja)
JP (1) JP7045947B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11907829B2 (en) * 2019-03-14 2024-02-20 Infineon Technologies Ag FMCW radar with interference signal suppression using artificial neural network
US20200341109A1 (en) * 2019-03-14 2020-10-29 Infineon Technologies Ag Fmcw radar with interference signal suppression using artificial neural network
DE102019106529A1 (de) 2019-03-14 2020-09-17 Infineon Technologies Ag Fmcw radar mit störsignalunterdrückung mittels künstlichem neuronalen netz
KR20200139909A (ko) 2019-06-05 2020-12-15 삼성전자주식회사 전자 장치 및 그의 연산 수행 방법
CN113112008B (zh) * 2020-01-13 2024-05-10 中科寒武纪科技股份有限公司 用于神经网络数据量化的方法、装置和计算机可读存储介质
KR102338995B1 (ko) * 2020-01-22 2021-12-14 고려대학교 세종산학협력단 Yolo 기반 경량 경계 상자 검출과 영상 처리를 통한 정확한 동물 탐지 방법 및 장치
JP7359028B2 (ja) * 2020-02-21 2023-10-11 日本電信電話株式会社 学習装置、学習方法、および、学習プログラム
CN113408715B (zh) * 2020-03-17 2024-05-28 杭州海康威视数字技术股份有限公司 一种神经网络的定点化方法、装置
WO2021189225A1 (zh) * 2020-03-24 2021-09-30 Oppo广东移动通信有限公司 一种机器学习模型训练方法、电子设备及存储介质
KR20210141252A (ko) * 2020-05-15 2021-11-23 삼성전자주식회사 전자 장치 및 그 제어 방법
CN113762500B (zh) * 2020-06-04 2024-04-02 合肥君正科技有限公司 一种卷积神经网络在量化时提高模型精度的训练方法
WO2022027242A1 (zh) * 2020-08-04 2022-02-10 深圳市大疆创新科技有限公司 神经网络的数据处理方法、装置、可移动平台及计算机可读存储介质
CN111983569B (zh) * 2020-08-17 2024-01-19 西安电子科技大学 基于神经网络的雷达干扰抑制方法
CN112149797B (zh) * 2020-08-18 2023-01-03 Oppo(重庆)智能科技有限公司 神经网络结构优化方法和装置、电子设备
JP2022088096A (ja) 2020-12-02 2022-06-14 富士通株式会社 量子化プログラム,量子化方法および量子化装置
US11716469B2 (en) 2020-12-10 2023-08-01 Lemon Inc. Model selection in neural network-based in-loop filter for video coding
CN112801281A (zh) * 2021-03-22 2021-05-14 东南大学 基于量子化生成模型和神经网络的对抗生成网络构建方法
JP7350214B2 (ja) 2021-03-24 2023-09-25 三菱電機株式会社 推論装置、推論方法、及び、推論プログラム
CN113255901B (zh) * 2021-07-06 2021-10-08 上海齐感电子信息科技有限公司 实时量化方法及实时量化系统
JP2023031367A (ja) 2021-08-25 2023-03-09 富士通株式会社 閾値決定プログラム及び閾値決定方法
WO2023128024A1 (ko) * 2021-12-30 2023-07-06 한국전자기술연구원 딥러닝 네트워크 양자화 처리 방법 및 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302292A (ja) * 1994-05-09 1995-11-14 Nippon Telegr & Teleph Corp <Ntt> ニューラルネットワーク回路の制御装置
KR0170505B1 (ko) * 1995-09-15 1999-03-30 양승택 다층퍼셉트론 신경회로망의 n비트 데이타 표현에 의한 학습방법
US10417525B2 (en) * 2014-09-22 2019-09-17 Samsung Electronics Co., Ltd. Object recognition with reduced neural network weight precision
KR102526650B1 (ko) * 2017-05-25 2023-04-27 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
US20190050710A1 (en) * 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
US20200380357A1 (en) * 2017-09-13 2020-12-03 Intel Corporation Incremental network quantization
JP6540770B2 (ja) * 2017-10-17 2019-07-10 富士通株式会社 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法
CN110533175A (zh) * 2018-05-23 2019-12-03 富士通株式会社 深度学习加速的方法和设备及深度神经网络

Also Published As

Publication number Publication date
US20200012926A1 (en) 2020-01-09
JP2020009048A (ja) 2020-01-16

Similar Documents

Publication Publication Date Title
JP7045947B2 (ja) ニューラルネットワークの学習装置および学習方法
US11521068B2 (en) Method and system for neural network synthesis
WO2022006919A1 (zh) 基于激活定点拟合的卷积神经网络训练后量化方法及系统
EP3564865A1 (en) Neural network circuit device, neural network, neural network processing method, and neural network execution program
WO2021043294A1 (en) Neural network pruning
WO2019220975A1 (ja) ニューラルネットワーク回路装置、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
CN113825978B (zh) 用于定义路径的方法和设备、存储装置
CN110796251A (zh) 基于卷积神经网络的图像压缩优化方法
US20220237465A1 (en) Performing inference and signal-to-noise ratio based pruning to train sparse neural network architectures
US20110299789A1 (en) Systems and methods for determining image representations at a pixel level
CN113112013A (zh) 针对分辨率降低的神经网络的优化量化
CN116309135A (zh) 扩散模型处理方法及装置、图片处理方法及装置
CN111353534A (zh) 一种基于自适应分数阶梯度的图数据类别预测方法
KR20200023695A (ko) 연산량을 줄이는 학습 시스템
US20230306255A1 (en) Method and system for smooth training of a quantized neural network
CN111882028A (zh) 用于卷积神经网络的卷积运算装置
US20210390386A1 (en) Low resource computational block for a trained neural network
TWI732467B (zh) 訓練稀疏連接神經網路的方法
KR20210157826A (ko) 심층 신경망 구조 학습 및 경량화 방법
JP6942204B2 (ja) データ処理システムおよびデータ処理方法
CN114820326B (zh) 基于可调节核稀疏化的高效单帧图像超分方法
WO2023061465A1 (en) Methods, systems, and media for computer vision using 2d convolution of 4d video data tensors
CN112602097A (zh) 数据处理系统和数据处理方法
JP6992864B1 (ja) ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム
WO2022242076A1 (en) Methods and systems for compressing trained neural network and for improving efficiently performing computations of compressed neural network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220214

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: 20220301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220322

R150 Certificate of patent or registration of utility model

Ref document number: 7045947

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150