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

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

Info

Publication number
JP6528884B1
JP6528884B1 JP2018107200A JP2018107200A JP6528884B1 JP 6528884 B1 JP6528884 B1 JP 6528884B1 JP 2018107200 A JP2018107200 A JP 2018107200A JP 2018107200 A JP2018107200 A JP 2018107200A JP 6528884 B1 JP6528884 B1 JP 6528884B1
Authority
JP
Japan
Prior art keywords
learning
point number
floating point
represented
parameter
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
JP2018107200A
Other languages
English (en)
Other versions
JP2019211985A (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 JP2018107200A priority Critical patent/JP6528884B1/ja
Priority to US16/393,104 priority patent/US11288597B2/en
Application granted granted Critical
Publication of JP6528884B1 publication Critical patent/JP6528884B1/ja
Publication of JP2019211985A publication Critical patent/JP2019211985A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

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

Abstract

【課題】所定の学習モデルを学習させる際に、精度の良い学習結果を短時間で取得する。【解決手段】情報処理装置10の第1学習部22は、所定の学習モデルを繰り返し学習させる際に、浮動小数点数である数値を用いて、学習モデルを所定回数繰り返し学習させる。そして、第2学習部26は、第1学習部22による浮動小数点数である数値を用いての学習後に、その学習により得られた浮動小数点数である数値に対応する、固定小数点数である数値を用いて学習モデルを繰り返し学習させる。【選択図】図1

Description

開示の技術は、学習プログラム、学習方法、及び情報処理装置に関する。
従来、計算対象の数値の下位桁の桁落ちする乗算器を持つ固定小数点方式の乗算に於いても必要に応じて固定小数点乗算を可能にするデイジタル信号処理方式が知られている。この方式では、乗数を収容するレジスタ、被乗数を収容するレジスタ、乗算回路及びアキュムレータより構成される固定小数点乗算回路に於いて、整数同士の乗算を実施する場合、整数の乗数、被乗数をレジスタに置数する際、桁位置をずらして置数する。
また、固定小数点型乗加算器のハードウェア構成を殆んど増加させずに、演算精度を浮動小数点型乗加算器程度に向上させる固定小数点型乗加算器が知られている。この固定小数点型乗加算器は、入力データと帰還入力データのいずれかを選択して出力する入力選択用のセレクタと、セレクタの選択出力である乗数データXと係数入力データである被乗数データYの乗算を行う乗算回路とを具備する。また、この固定小数点型乗加算器は、乗算回路の乗算出力が一方の加算入力となる加算回路とを具備する。加算回路の加算出力Zを一時的に保持して加算回路の他方の加算入力とするデータ保持回路とを具備する。また、この固定小数点型乗加算器は、加算出力を選択的に上位側へビットシフトさせる左ビットシフト回路と、左ビットシフト回路の出力データが書き込まれ、読み出しデータをセレクタの一方の入力端に帰還させるデータ格納装置とを具備する。
特開昭59-197936号公報 特開2000-231476号公報
ニューラルネットワーク等の学習モデルのパラメータを学習させる際には、膨大な計算量が必要となるため、計算負荷及びメモリ負荷等の負荷がかかり、パラメータの学習時間が長くなる。これに対し、パラメータの学習時間を短縮させるため、学習の際に用いる数値を固定小数点数によって表現することが考えられる。学習の際に用いる数値を固定小数点数によって表現することによりデータ量が削減され、計算負荷及びメモリ負荷等の負荷を低減され、パラメータの学習時間が短縮される。
しかし、固定小数点数は、浮動小数点数に比べ表現可能な数値範囲が狭い。このため、固定小数点数によって表現された数値による学習処理では、学習結果の精度が低いという課題がある。
一つの側面では、開示の技術は、所定の学習モデルを学習させる際に、精度の良い学習結果を短時間で取得することが目的である。
開示の技術は、一つの実施態様では、浮動小数点数である数値を用いて、所定の学習モデルを所定回数学習させる。そして、開示の技術は、前記浮動小数点数である数値を用いての学習後に、該学習により得られた前記浮動小数点数である数値に対応する、固定小数点数である数値を用いて前記学習モデルを学習させる。
一つの側面として、所定の学習モデルを学習させる際に、精度の良い学習結果を短時間で取得することができる、という効果を有する。
本実施形態に係る情報処理装置の概略ブロック図である。 データ記憶部に格納される学習用データのデータ形式の一例を示す図である。 CNNを説明するための説明図である。 第1パラメータ記憶部に格納されるパラメータのデータ形式の一例を示す図である。 第2パラメータ記憶部に格納されるパラメータのデータ形式の一例を示す図である。 実施形態に係る情報処理装置として機能するコンピュータの概略構成を示すブロック図である。 実施形態に係る情報処理装置として機能するコンピュータの概略構成を示すブロック図である。 本実施形態の学習処理ルーチンの一例を示すフローチャートである。 第1実施形態の事前学習処理ルーチンの一例を示すフローチャートである。 本実施形態のデータ変換処理ルーチンの一例を示すフローチャートである。 本実施形態の本学習処理ルーチンの一例を示すフローチャートである。 第2実施形態の事前学習処理ルーチンの一例を示すフローチャートである。
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
<第1実施形態の情報処理装置>
図1に示すように、第1実施形態に係る情報処理装置10は、データ記憶部20と、第1学習部22と、第1パラメータ記憶部24と、第2学習部26と、第2パラメータ記憶部28とを備えている。
データ記憶部20には、所定の学習モデルを学習させるための学習用データが格納されている。学習用データは、例えば、図2に示されるように、テーブルの形式で格納される。学習用データは、入力データとその入力データに対応する正解データとの組み合わせである。本実施形態では、入力データとして、RGBの要素を含む画像データを用いる場合を例に説明する。
図2に示すテーブルには、各データの識別情報を表すデータIDと、入力データと正解データとが対応付けられて格納される。図2に示される例では、例えば、データID「00001」と、入力データ「A1」と正解データ「B1」とが対応付けられて格納される。
本実施形態の情報処理装置10は、データ記憶部20に格納された学習用データを用いて、学習モデルの一例であるConvolutional Neural Network(CNN)を学習させる。図3に、CNNに対する深層学習を説明するための説明図を示す。
図3に示されるCNNは、Conv_1,Pool_1,Conv_2,Pool_2,fc1,及びfc2の層から構成されている。図3に示されるように、CNNに対する深層学習処理では、入力データに対応する正解データが与えられ、CNNに対し入力データを(図3における)左から入力し、各層の処理結果を右方向へ伝播させる(順伝播)。そして、入力データに対する出力データと正解データとを比較し、結果の差分を左方向へ伝播させる(逆伝播)。
例えば、入力データに対して、Conv_1のパラメータの積和演算を実行することで、Conv_1層の畳み込み演算が実行される。Conv_1,Pool_1,Conv_2,Pool_2,fc1,及びfc2の各層はパラメータを保持している。CNNの最上位の層(図3におけるfc2)まで演算がなされると、演算結果が正解データと比較され、比較結果を基に各層のパラメータが更新される。
CNNの各層では、図3の右側における計算が行われる。具体的には、学習計算が行われる際、入力データ又は前層からの出力データである「bottom」と、パラメータである「Weight」との積和演算が実行される。そして、積和演算結果と「Bias」との和に応じて、出力データ「top」が出力される。
本実施形態の情報処理装置10は、浮動小数点数である数値を用いてCNNを所定回数学習させた後に、固定小数点数である数値を用いてCNNを学習させる。
なお、本実施形態では、学習処理のミニバッチ1回を1回の繰り返しとする。ミニバッチとは、画像データを複数同時に学習処理にかけることをいう。例えば、ミニバッチが「16」とは、16枚の画像データを同時に学習処理にかけることを意味する。このため、例えば、65536枚の画像データがある場合には、4096イタレーションで全画像データを入力したことになる。
第1学習部22は、まず、データ記憶部20に格納された学習用データを浮動小数点数によって表現する。次に、第1学習部22は、浮動小数点数である数値を用いてCNNを予め設定された回数学習させる。そして、第1学習部22は、学習結果としてのCNNの各層のパラメータWを得る。なお、l(小文字のエル)はCNNの各層を識別するためのインデックスである。また、パラメータWは、以下の式(1)に示されるようなパラメータベクトルである。なお、添え字「Wn」は、パラメータWのベクトル内の要素数を表す。
={W0,l,W1,l,・・・,WWn,l
(1)
そして、第1学習部22は、学習処理が繰り返し行われている際に、学習結果としてのパラメータWを、繰り返し回数iと対応付けて第1パラメータ記憶部24に逐次格納する。
第1学習部22は、CNNに対する学習処理が、予め設定された回数であるC回繰り返された場合に、浮動小数点数である数値を用いてのCNNの学習処理を終了する。Cは、例えば、ユーザによって予め設定される。また、CNNに対する既存のシミュレーション結果に基づき学習精度が十分となる繰り返し回数をCとして設定してもよい。
第1パラメータ記憶部24には、図4に示されるように、学習処理の繰り返し回数を表す繰り返し回数iと、第1学習部22による学習処理によって得られるパラメータWとが対応付けられて格納される。なお、パラメータWの括弧内の数字は、繰り返し回数iに対応している。
第2学習部26は、浮動小数点数である数値を用いた学習により得られたパラメータWを、固定小数点数であるパラメータWfix,lへ変換する。
例えば、第2学習部26は、CNNの各層のパラメータWについて、その層のパラメータWの各要素のうちの最大値と最小値とを選択する。
次に、第2学習部26は、CNNの各層のパラメータWについて、その層のパラメータWの各要素のうちの最大値と最小値とに基づいて、以下の式(2)に従って、整数NWlを算出する。整数NWlは、各層のパラメータW毎に算出される。
Wl=Ceil(log(max(最大値,(−1*最小値))))
(2)
なお、上記式(2)における関数「Ceil」は、最も近い整数に切り上げられた数値を返す。例えば、Ceil(1.5)は、2が値として出力される。
次に、第2学習部26は、各層のパラメータWについて、算出された整数NWlと演算対象のデータの幅WLとに基づいて、以下の式(3)に従って、パラメータWに応じた小数点位置Q(W)を算出する。
Q(W)=Nwl−WL−1
(3)
なお、データの幅WLは、固定小数点の幅を表す。例えば、16bit固定小数点の場合には、データの幅WLは「16」となる。
次に、第2学習部26は、各層のパラメータWについて、パラメータWとパラメータWに応じた小数点位置Q(W)とに基づいて、以下の式(4)に従って、浮動小数点数であるパラメータWを固定小数点数であるパラメータWfix,lへ変換する。

(4)
なお、上記式(3)におけるデータの幅WLは、8ビット又は16ビット等の値が予め設定される。また、上記式(4)におけるStocRnd(・)は、確率丸めを実行する関数であり、例えば、StocRnd(0.4)は、60%の確率で0を出力し、40%の確率で1を出力する。なお、固定小数点で表現される各層のパラメータWfix,lは、以下の式(5)で表されるような形式のベクトルである。
fix,l={Wfix,0,l,Wfix,1,l,・・・Wfix,Wn,l
(5)
次に、第2学習部26は、固定小数点で表現される各層のパラメータWfix,lを用いて、CNNの各層のパラメータWfix,lを繰り返し学習させる。
なお、本実施形態の第2学習部26は、CNNの各層のパラメータWfix,lを繰り返し学習させる際に、固定小数点数の小数点位置を動的に変化させる。
固定小数点で表現可能な数値の範囲は、浮動小数点数で表現可能な数値の範囲よりも狭い。このため、固定小数点数によって学習処理を行う場合には、例えば、オーバーフローが発生する場合がある。
このため、本実施形態では、学習処理を繰り返す毎に、オーバーフローの発生の有無を記録する。そして、本実施形態の第2学習部26は、所定期間内におけるオーバーフロー率を算出し、オーバーフロー率に応じて各数値の小数点位置を変更する。なお、オーバーフロー率は、演算回数の総数に対するオーバーフローが発生した演算回数の割合である。オーバーフロー率は、開示の技術の統計情報の一例である。
具体的には、第2学習部26は、オーバーフロー率が閾値より大きい場合、小数点位置Q(W)を1減算する。そして、第2学習部26は、1減算された小数点位置Q(W)に応じた固定小数点数のパラメータWfix,lを学習させる。
また、第2学習部26は、オーバーフロー率の所定倍数の値が閾値以下の場合、小数点位置Q(W)を1加算する。そして、第2学習部26は、1加算された小数点位置Q(W)に応じた固定小数点数のパラメータWfix,lを学習させる。なお、本実施形態では、所定倍数が「2倍」である場合を例に説明するが、所定倍数は何倍であってもよい。
また、第2学習部26は、オーバーフロー率の2倍の値が閾値より大きく、かつオーバーフロー率が閾値以下の場合、小数点位置Q(W)を変更せずに学習処理を繰り返す。
これにより、適切な小数点位置に対応する固定小数点数を用いて、CNNの各層のパラメータWfix,lを学習させることができる。
そして、第2学習部26は、学習処理が繰り返し行われている際に、学習結果としてのパラメータWfix,lを、繰り返し回数iと対応付けて第2パラメータ記憶部28に逐次格納する。
第2パラメータ記憶部28には、図5に示されるように、学習処理の繰り返し回数を表す繰り返し回数iと、第2学習部26による学習処理によって得られるパラメータWfix,lとが対応付けられて格納される。なお、パラメータWfix,lの括弧内の数字は、繰り返し回数iに対応している。
情報処理装置10は、例えば、図6に示すコンピュータ50で実現することができる。コンピュータ50はCPU51、一時記憶領域としてのメモリ52、及び不揮発性の記憶部53を備える。また、コンピュータ50は、入出力装置が接続される入出力interface(I/F)54、及び記録媒体59に対するデータの読み込み及び書き込みを制御するread/write(R/W)部55を備える。また、コンピュータ50は、インターネット等のネットワークに接続されるネットワークI/F56を備える。CPU51、メモリ52、記憶部53、入出力I/F54、R/W部55、及びネットワークI/F56は、バス57を介して互いに接続される。
記憶部53は、Hard Disk Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部53には、コンピュータ50を情報処理装置10として機能させるための学習プログラム60が記憶されている。学習プログラム60は、第1学習プロセス61と、第2学習プロセス62とを有する。データ記憶領域63には、データ記憶部20を構成する情報が記憶される。第1パラメータ記憶領域64には、第1パラメータ記憶部24を構成する情報が記憶される。第2パラメータ記憶領域65には、第2パラメータ記憶部28を構成する情報が記憶される。
CPU51は、学習プログラム60を記憶部53から読み出してメモリ52に展開し、学習プログラム60が有するプロセスを順次実行する。CPU51は、第1学習プロセス61を実行することで、図1に示す第1学習部22として動作する。また、CPU51は、第2学習プロセス62を実行することで、図1に示す第2学習部26として動作する。また、CPU51は、データ記憶領域63から情報を読み出して、データ記憶部20をメモリ52に展開する。また、CPU51は、第1パラメータ記憶領域64から情報を読み出して、第1パラメータ記憶部24をメモリ52に展開する。また、CPU51は、第2パラメータ記憶領域65から情報を読み出して、第2パラメータ記憶部28をメモリ52に展開する。これにより、学習プログラム60を実行したコンピュータ50が、情報処理装置10として機能することになる。ソフトウェアである学習プログラム60を実行するCPU51はハードウェアである。
なお、情報処理装置10は、例えば、図7に示すコンピュータ150によって実現されてもよい。コンピュータ150は、Large Scale Integration(LSI)用メモリ70、LSI71を更に備える。LSI71には、固定小数点数の小数点位置を動的に変更するためのプロセッサが含まれている。このLSI71は、バス57経由でCPU51から動作を制御される。CPU51は、学習プログラム60を記憶部53から読み出してLSI)用メモリ70に展開し、学習プログラム60が有するプロセスを順次実行し、LSI71を制御する。
なお、LSI71には制御コア(図示省略)が更に含まれていても良い。この場合には、例えば、バス57経由でCPU51と制御コアとが通信処理を行い、CPU51から出力された制御情報を得た制御コアがLSI71全体を制御する。
なお、学習プログラム60により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit(ASIC)等で実現することも可能である。
次に、本実施形態に係る情報処理装置10の作用について説明する。情報処理装置10へ複数の学習用データが入力されると、データ記憶部20に複数の学習用データが格納される。そして、情報処理装置10は、学習開始の指示信号を受け付けると、図8に示す学習処理ルーチンを実行する。
ステップS10において、第1学習部22は、浮動小数点数である数値を用いてCNNを予め設定された回数学習させる。ステップS10の事前学習処理は、図9に示す事前学習処理ルーチンによって実現される。
図9に示す事前学習処理ルーチンのステップS11において、第1学習部22は、繰り返し回数iに0を代入する。
ステップS12において、第1学習部22は、浮動小数点数での学習の繰り返し回数pに0を代入する。
ステップS13において、第1学習部22は、上記ステップS12又は前回のステップS17で更新された繰り返し回数pが予め設定された繰り返し回数Cと等しいか否かを判定する。繰り返し回数pが予め設定された繰り返し回数Cと等しい場合には、図9の処理ルーチンを終了する。一方、繰り返し回数pが予め設定された繰り返し回数Cと等しくない場合には、ステップS14へ進む。
ステップS14において、第1学習部22は、浮動小数点数である数値を用いてCNNの各層のパラメータWを学習させる。
ステップS15において、第1学習部22は、上記ステップS14で得られたCNNの各層のパラメータWを、繰り返し回数iと対応付けて第1パラメータ記憶部24に格納する。
ステップS16において、第1学習部22は、繰り返し回数iを1インクリメントする。
ステップS17において、第1学習部22は、浮動小数点数での学習の繰り返し回数pを1インクリメントする。
ステップS13での判定処理において、繰り返し回数pが予め設定された繰り返し回数Cと等しい場合には図9の事前学習処理ルーチンが終了し、図8の学習処理ルーチンに戻る。
図8の学習処理ルーチンのステップS20において、第2学習部26は、浮動小数点数である数値を用いた学習により得られたパラメータWを、固定小数点数であるパラメータWfix,lへ変換する。ステップS20のデータ変換処理は、図10に示すデータ変換処理ルーチンによって実現される。
ステップS21において、第2学習部26は、CNNの層を識別するための変数lに0を代入する。
ステップS22において、第2学習部26は、変数maxに0を代入する。また、ステップS22において、第2学習部26は、変数minに予め設定された初期値FLT_MAXを代入する。
ステップS23において、第2学習部26は、CNNの層lのパラメータWの各要素{W0,l,W1,l,・・・,WWn,l}を識別するための変数jに0を代入する。
ステップS24において、第2学習部26は、CNNの層lに対応するパラメータWのj番目の要素Wj,lが変数maxよりも大きいか否かを判定する。層lに対応するパラメータWのj番目の要素Wj,lが変数maxよりも大きい場合には、ステップS25へ進む。一方、層lに対応するパラメータWのj番目の要素Wj,lが変数max以下である場合には、ステップS26へ進む。
ステップS25において、第2学習部26は、CNNの層lに対応するパラメータWのj番目の要素Wj,lを変数maxへ代入する。
ステップS26において、第2学習部26は、層lに対応するパラメータWのj番目の要素Wj,lが変数minよりも小さいか否かを判定する。層lに対応するパラメータWのj番目の要素Wj,lが変数minよりも小さい場合には、ステップS27へ進む。一方、層lに対応するパラメータWのj番目の要素Wj,lが変数min以上である場合には、ステップS28へ進む。
ステップS27において、第2学習部26は、CNNの層lに対応するパラメータWのj番目の要素Wj,lを変数minへ代入する。
ステップS28において、第2学習部26は、変数jが、層lに対応するパラメータWの全要素の数Wと等しいか否かを判定する。変数jが全要素の数Wと等しい場合には、ステップS30へ進む。一方、変数jが全要素の数Wと等しくない場合には、ステップS29へ進み、変数jを1インクリメントしてステップS24へ戻る。
ステップS30において、第2学習部26は、上記ステップS25で得られた変数maxと上記ステップS27で得られた変数minとに基づいて、上記式(2)に従って、CNNの層lのパラメータWに対応する整数NWlを計算する。
ステップS31において、第2学習部26は、上記ステップS30で計算された整数NWlと演算対象のデータの幅WLとに基づいて、上記式(3)に従って、パラメータWに応じた小数点位置Q(W)を算出する。そして、ステップS31において、第2学習部26は、パラメータWと小数点位置Q(W)とに基づいて、上記式(4)に従って、浮動小数点数であるパラメータWを固定小数点であるパラメータWfix,lへ変換する。
ステップS32において、第2学習部26は、変数lが、CNNの全ての層の数Lと等しいか否かを判定する。変数lが全ての層の数Lと等しい場合には、図10のデータ変換処理ルーチンを終了し、図8の学習処理ルーチンに戻る。一方、変数lが全ての層の数Lと等しくない場合には、ステップS33へ進み、変数lを1インクリメントしてステップS22へ戻る。
図8の学習処理ルーチンのステップS40において、第2学習部26は、上記ステップS20で得られた固定小数点で表現される各層のパラメータWfix,lを用いて、CNNの各層のパラメータWfix,lを繰り返し学習させる。ステップS40の本学習処理は、図11に示す本学習処理ルーチンによって実現される。
ステップS41において、第2学習部26は、繰り返し回数iが予め設定された総学習回数Dと等しいか否かを判定する。繰り返し回数iが総学習回数Dと等しい場合には、図11の本学習処理ルーチンを終了する。
ステップS42において、第2学習部26は、上記ステップS20で得られた固定小数点で表現される各層のパラメータWfix,lを用いて、CNNの各層のパラメータWfix,lを学習させる。なお、ステップS42における学習処理では、オーバーフロー率に応じて各数値の小数点位置を変更しながら、CNNの各層のパラメータWfix,lを学習させる。
ステップS43において、第2学習部26は、上記ステップS42で得られたCNNの各層のパラメータWfix,lを繰り返し回数iと対応付けて第2パラメータ記憶部28に格納する。
ステップS44において、第2学習部26は、繰り返し回数iを1インクリメントして、ステップS41へ戻る。
以上説明したように、第1実施形態に係る情報処理装置は、浮動小数点数である数値を用いて、CNNを所定回数学習させる。そして、情報処理装置は、浮動小数点数である数値を用いての学習後に、学習により得られた浮動小数点数である数値に対応する、固定小数点数である数値を用いてCNNを学習させる。これにより、所定の学習モデルを学習させる際に、精度の良い学習結果を短時間で取得することができる。
また、繰り返し学習の全てを固定小数点数によって行い、かつ固定小数点数の小数点位置を動的に変化させて学習を行う場合には、適切な小数点位置に調整されるまでに学習処理が進んでしまい、学習結果の精度が低下する。また、この場合には、小数点位置を調整するための統計情報を取得する必要があるため、学習時間が増加する。これに対し、第1実施形態に係る情報処理装置は、浮動小数点数である数値を用いてCNNを所定回数学習させた後に、固定小数点数である数値を用いてCNNを学習させることにより、精度の良い学習結果を短時間で取得することができる。また、浮動小数点数を用いてCNNを学習させることにより得られた値を固定小数点数による学習処理の初期値とすることにより、固定小数点数で学習を行う際の初期値を適切に設定することができる。
<第2実施形態の情報処理装置>
次に、第2実施形態について説明する。第2実施形態では、i回目の学習における数値に対応する小数点位置と、i−1回目の学習における数値に対応する小数点位置との間の変化に基づいて、浮動小数点数による学習から固定小数点数による学習へ切り替える点が、第1実施形態と異なる。
第2実施形態の第1学習部22は、浮動小数点数による学習がK回繰り返される毎に、上記式(3)に従って、浮動小数点数による学習で得られた各層のパラメータWに応じた小数点位置Q(W)を算出する。Kは、例えばユーザによって予め設定される。また、第1学習部22は、浮動小数点数による学習から固定小数点数による学習へ切り替える際に用いるデータを保持するために、例えば、浮動小数点数による学習がK回繰り返される毎に、パラメータを外部の記憶部(図示省略)に格納する。
具体的には、第1学習部22は、浮動小数点数による学習がK回繰り返される毎に、i回目の学習で得られた各層のパラメータWの小数点位置Q(W,i)と、i−1回目の学習で得られた各層のパラメータWの小数点位置Q(W,i−1)とを算出する。
次に、第1学習部22は、浮動小数点数による学習がK回繰り返される毎に、各層のパラメータWについての、小数点位置Q(W,i−1)と小数点位置Q(W,i)との間の差の絶対値の総和SUMを算出する。総和SUMは、以下の式(7)によって算出される。

(7)
そして、第1学習部22は、浮動小数点数による学習がK回繰り返される毎に、以下の式(8)に従って、学習処理による小数点位置の変動を表すΔSUMを算出する。
ΔSUM=SUM/K
(8)
そして、第1学習部22は、以下の式(9)に従って、今回の浮動小数点数による学習がK回繰り返された際に算出されたΔSUMから、前回の浮動小数点数による学習がK回繰り返された際に算出されたΔSUMを引いた差Diffを算出する。
Diff=ΔSUM−ΔSUM
(9)
そして、第1学習部22は、算出された差Diffが閾値より大きい場合に、固定小数点数である数値を用いてCNNを学習させる。また、第1学習部22は、算出された差Diffが閾値以下である場合に、浮動小数点数である数値を用いてのCNNの学習を継続する。本実施形態では、閾値として0が設定される場合を例に説明する。
今回のΔSUMと前回のΔSUMとの間の差Diffが0以下である場合は、小数点位置の変動が小さくなっていることを表し、理想の小数点位置に近づいている状態である。一方、今回のΔSUMと前回のΔSUMとの間の差Diffが0より大きい場合は、小数点位置の変動が増加し始めたことを表し、理想の小数点位置から遠ざかる状態である。
そのため、第2実施形態の第1学習部22は、算出された差Diffが0より大きい場合に、固定小数点数である数値を用いたCNNの学習に切り替える。なお、差Diffが0より大きい場合には、今回の浮動小数点数による学習がK回繰り返された際に求められたパラメータよりも、前回の浮動小数点数による学習がK回繰り返された際に求められたパラメータの方が理想に近いと考えられる。そのため、第1学習部22は、前回の浮動小数点数による学習がK回繰り返された際に求められたパラメータを外部の記憶部(図示省略)から読み出し、読み出したパラメータを用いて、固定小数点数である数値を用いてCNNを学習させる。
次に、第2実施形態に係る情報処理装置10の作用について説明する。情報処理装置10へ複数の学習用データが入力されると、データ記憶部20に複数の学習用データが格納される。そして、情報処理装置10は、学習開始の指示信号を受け付けると、上記図8に示す学習処理ルーチンを実行する。上記図8のステップS10の事前学習処理は、図12に示す事前学習処理ルーチンによって実現される。
ステップS213において、第2実施形態の第1学習部22は、浮動小数点による学習の繰り返し回数pが、予め設定された繰り返し回数Kと等しい場合に、ステップS214へ進む。
ステップS214において、第1学習部22は、i−1回目の学習で得られた各層のパラメータWの小数点位置Q(W,i−1)と、i回目の学習で得られた各層のパラメータWの小数点位置Q(W,i)とを算出する。
ステップS215において、第1学習部22は、上記ステップS214で算出された、小数点位置Q(W,i−1)と小数点位置Q(W,i)とに基づいて、上記式(7)に従って、小数点位置の差の絶対値の総和SUMを算出する。また、ステップS215において、第1学習部22は、上記式(8)に従って、学習処理による小数点位置の変動を表すΔSUMを算出する。
ステップS216において、第1学習部22は、上記式(9)に従って、上記ステップS215で算出されたΔSUMから、前回の浮動小数点数による学習がK回繰り返された際に算出されたΔSUMを引いた差Diffを算出する。
ステップS217において、第1学習部22は、上記ステップS216で算出された差Diffが0より大きいか否かを判定する。上記ステップS216で算出された差Diffが0より大きい場合には、図12に示す事前学習処理ルーチンが終了し、固定小数点数である数値を用いてのCNNの学習が開始される。一方、上記ステップS216で算出された差Diffが0以下の場合には、ステップS12へ戻り、浮動小数点数である数値を用いてのCNNの学習が継続される。
以上説明したように、第2実施形態に係る情報処理装置は、浮動小数点数による学習が繰り返される毎に、浮動小数点数によるi回目の数値に応じた小数点位置とi−1回目の学習の数値に応じた小数点位置との間の差の絶対値を算出する。そして、今回の浮動小数点数による学習が繰り返された際に算出された差の絶対値から、前回の浮動小数点数による学習が繰り返された際に算出された差の絶対値を引いた値が閾値より大きい場合に、固定小数点数である数値を用いて学習モデルを学習させる。これにより、浮動小数点数による学習処理から固定小数点数による学習処理への切り替えを、適切なタイミングで実行することができる。
なお、上記では、各プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD−ROM、DVD−ROM、USBメモリ等の記録媒体に記録された形態で提供することも可能である。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
次に、各実施形態の変形例を説明する。
上記実施形態では、学習モデルがCNNである場合を例に説明したが、これに限定されるものではない。例えば、学習モデルは他の種類のニューラルネットワークであってもよい。
また、上記実施形態では、浮動小数点数で表現される数値及び固定小数点数で表現される数値が、CNNの各層のパラメータである場合を例に説明したが、これに限定されるものではない。例えば、学習用データを浮動小数点数又は固定小数点数で表現し、浮動小数点数によって表現された学習用データを用いてパラメータを学習させた後に、固定小数点数によって表現された学習用データを用いてパラメータを学習させてもよい。
また、上記実施形態では、固定小数点数によって学習処理を行う際には、固定小数点数である数値を用いての処理に関する統計情報の一例であるオーバーフロー率を用いる場合を例に説明したが、これに限定されるものではない。例えば、統計情報の一例として、演算回数の総数に対するアンダーフローが発生した演算回数を表すアンダーフロー率を用いるようにしてもよい。
上記実施形態では、固定小数点数によって学習処理を行う際に、小数点位置を動的に変更する場合を例に説明したが、これに限定されるものではない。固定小数点数によって学習処理を行う際には、小数点位置を変更せずに、学習処理を行うようにしてもよい。
また、上記第2実施形態では、今回のΔSUMと前回のΔSUMとの間の差Diffが0以下である場合に、浮動小数点数による学習から固定小数点数による学習へ切り替える場合を例に説明したが、これに限定されるものではない。浮動小数点数による学習から固定小数点数による学習への切り替えに関する判定方法は、浮動小数点数を用いた学習による小数点位置の変化がある程度収束したことを判定できる方法であれば、どのような方法であってもよい。例えば、i−1回目の小数点位置とi回目の小数点位置との差が閾値以下となった場合に、浮動小数点数による学習から固定小数点数による学習へ切り替えるようにしてもよい。
以上の各実施形態に関し、更に以下の付記を開示する。
(付記1)
所定の学習モデルを繰り返し学習させる際に、浮動小数点数である数値を用いて前記学習モデルを所定回数繰り返し学習させ、
前記浮動小数点数である数値を用いての学習後に、該学習により得られた前記浮動小数点数である数値に対応する、固定小数点数である数値を用いて前記学習モデルを繰り返し学習させる、
処理をコンピュータに実行させるための学習プログラム。
(付記2)
前記固定小数点数である数値を用いて前記学習モデルを学習させる際に、前記浮動小数点数である数値を用いた学習における前記数値に応じた小数点位置を算出し、算出された前記小数点位置に基づいて、前記浮動小数点数である数値を固定小数点数である数値へ変換し、前記固定小数点数である数値を用いて前記学習モデルを学習させる、
付記1に記載の学習プログラム。
(付記3)
前記数値は、前記学習モデルのパラメータ及び前記学習モデルの学習用データの少なくとも1つである、
付記1又は付記2に記載の学習プログラム。
(付記4)
前記所定回数は、予め設定された回数である、
付記1〜付記3の何れか1項に記載の学習プログラム。
(付記5)
前記浮動小数点数によるi−1回目の学習における前記数値に応じた小数点位置と、前記浮動小数点数によるi回目の学習における前記数値に応じた小数点位置とを算出し、
前記i回目の学習における前記小数点位置と前記i−1回目の学習における前記小数点位置との間の変化に基づいて、前記浮動小数点数による学習から前記固定小数点数による学習へ切り替える、
付記1〜付記4の何れか1項に記載の学習プログラム。
(付記6)
前記浮動小数点数による学習が繰り返される毎に、
前記i回目の学習における前記小数点位置と前記i−1回目の学習における前記小数点位置との間の差の絶対値を前記変化として算出し、
今回の前記浮動小数点数による学習が繰り返された際に算出された前記差の絶対値から、前回の前記浮動小数点数による学習が繰り返された際に算出された前記差の絶対値を引いた値が閾値より大きい場合に、i+1回目の学習から前記固定小数点数である数値を用いて前記学習モデルを学習させる、
付記5に記載の学習プログラム。
(付記7)
前記学習モデルは、ニューラルネットワークであり、
前記浮動小数点数である数値を用いた学習における前記数値に応じた前記小数点位置を算出する際に、前記ニューラルネットワークの各層について、前記層のパラメータベクトルの各要素から絶対値が最大である要素を選択し、選択された最大の前記要素に応じて、前記パラメータベクトルの各要素の値の小数点位置を算出する、
付記2、付記5、及び付記6の何れか1項に記載の学習プログラム。
(付記8)
前記固定小数点数である数値を用いて前記学習モデルを学習させる際に、前記固定小数点数である数値を用いての処理に関する統計情報に基づいて、前記固定小数点数における小数点位置を変更し、前記学習モデルを学習させる、
付記1〜付記7の何れか1項に記載の学習プログラム。
(付記9)
所定の学習モデルを繰り返し学習させる際に、浮動小数点数である数値を用いて前記学習モデルを所定回数繰り返し学習させ、
前記浮動小数点数である数値を用いての学習後に、該学習により得られた前記浮動小数点数である数値に対応する、固定小数点数である数値を用いて前記学習モデルを繰り返し学習させる、
処理をコンピュータに実行させる学習方法。
(付記10)
前記固定小数点数である数値を用いて前記学習モデルを学習させる際に、前記浮動小数点数である数値を用いた学習における前記数値に応じた小数点位置を算出し、算出された前記小数点位置に基づいて、前記浮動小数点数である数値を固定小数点数である数値へ変換し、前記固定小数点数である数値を用いて前記学習モデルを学習させる、
付記9に記載の学習方法。
(付記11)
前記数値は、前記学習モデルのパラメータ及び前記学習モデルの学習用データの少なくとも1つである、
付記9又は付記10に記載の学習方法。
(付記12)
前記所定回数は、予め設定された回数である、
付記9〜付記11の何れか1項に記載の学習方法。
(付記13)
前記浮動小数点数によるi−1回目の学習における前記数値に応じた小数点位置と、前記浮動小数点数によるi回目の学習における前記数値に応じた小数点位置とを算出し、
前記i回目の学習における前記小数点位置と前記i−1回目の学習における前記小数点位置との間の変化に基づいて、前記浮動小数点数による学習から前記固定小数点数による学習へ切り替える、
付記9〜付記12の何れか1項に記載の学習方法。
(付記14)
前記浮動小数点数による学習が繰り返される毎に、
前記i回目の学習における前記小数点位置と前記i−1回目の学習における前記小数点位置との間の差の絶対値を前記変化として算出し、
今回の前記浮動小数点数による学習が繰り返された際に算出された前記差の絶対値から、前回の前記浮動小数点数による学習が繰り返された際に算出された前記差の絶対値を引いた値が閾値より大きい場合に、i+1回目の学習から前記固定小数点数である数値を用いて前記学習モデルを学習させる、
付記13に記載の学習方法。
(付記15)
前記学習モデルは、ニューラルネットワークであり、
前記浮動小数点数である数値を用いた学習における前記数値に応じた前記小数点位置を算出する際に、前記ニューラルネットワークの各層について、前記層のパラメータベクトルの各要素から絶対値が最大である要素を選択し、選択された最大の前記要素に応じて、前記パラメータベクトルの各要素の値の小数点位置を算出する、
付記10、付記13、及び付記14の何れか1項に記載の学習方法。
(付記16)
前記固定小数点数である数値を用いて前記学習モデルを学習させる際に、前記固定小数点数である数値を用いての処理に関する統計情報に基づいて、前記固定小数点数における小数点位置を変更し、前記学習モデルを学習させる、
付記9〜付記15の何れか1項に記載の学習方法。
(付記17)
所定の学習モデルを繰り返し学習させる際に、浮動小数点数である数値を用いて前記学習モデルを所定回数繰り返し学習させる第1学習部と、
前記第1学習部による前記浮動小数点数である数値を用いての学習後に、該学習により得られた前記浮動小数点数である数値に対応する、固定小数点数である数値を用いて前記学習モデルを繰り返し学習させる第2学習部と、
を含む情報処理装置。
(付記18)
前記第2学習部は、前記固定小数点数である数値を用いて前記学習モデルを学習させる際に、前記浮動小数点数である数値を用いた学習における前記数値に応じた小数点位置を算出し、算出された前記小数点位置に基づいて、前記浮動小数点数である数値を固定小数点数である数値へ変換し、前記固定小数点数である数値を用いて前記学習モデルを学習させる、
付記17に記載の情報処理装置。
(付記19)
前記数値は、前記学習モデルのパラメータ及び前記学習モデルの学習用データの少なくとも1つである、
付記17又は付記18に記載の情報処理装置。
(付記20)
所定の学習モデルを繰り返し学習させる際に、浮動小数点数である数値を用いて前記学習モデルを所定回数繰り返し学習させ、
前記浮動小数点数である数値を用いての学習後に、該学習により得られた前記浮動小数点数である数値に対応する、固定小数点数である数値を用いて前記学習モデルを繰り返し学習させる、
処理をコンピュータに実行させるための学習プログラムを記憶した記憶媒体。
10 情報処理装置
20 データ記憶部
22 第1学習部
24 第1パラメータ記憶部
26 第2学習部
28 第2パラメータ記憶部
50 コンピュータ
51 CPU
53 記憶部
59 記録媒体
60 学習プログラム
61 第1学習プロセス
62 第2学習プロセス
63 データ記憶領域
64 第1パラメータ記憶領域
65 第2パラメータ記憶領域

Claims (12)

  1. 所定の学習モデルを学習させる際に、浮動小数点数で表された学習用データを用いて前記学習モデルを学習させることにより、前記学習モデルの浮動小数点数で表されたパラメータを更新する第1学習部と、
    前記第1学習部による前記浮動小数点数で表された学習用データを用いた学習後に、該学習により更新された前記浮動小数点数で表されたパラメータを固定小数点数で表されたパラメータに変換し、固定小数点数で表された学習用データを用いて前記学習モデルを学習させる第2学習部と、
    を含み、
    前記浮動小数点数で表されたパラメータは、複数の要素を含むパラメータベクトルであり、
    前記浮動小数点数で表されたパラメータの前記固定小数点数で表されたパラメータへの変換において、前記第2学習部は、前記パラメータベクトルに含まれる前記複数の要素のうち最大の絶対値を有する第1要素を選択し、式(1)
    Wl =Ceil(log 第1要素の絶対値) ・・・式(1)
    (Ceilは、最も近い整数に切り上げられた数値を意味する)
    に従って整数N Wl を算出し、算出された前記整数N Wl と前記固定小数点数で表された学習用データのビット幅WLを用いて、式(2)
    Q(W )=N wl −WL−1 ・・・式(2)
    に従って前記浮動小数点数で表されたパラメータに応じた小数点位置Q(W )を算出し、算出された前記小数点位置Q(W )に基づいて、前記浮動小数点数で表されたパラメータを前記固定小数点数で表されたパラメータへ変換する
    ことを特徴とする情報処理装置。
  2. 前記第2学習部は、前記浮動小数点数で表された学習用データを用いた学習が複数回行われる毎に、前記浮動小数点数で表された学習用データを用いたi−1回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置と、前記浮動小数点数で表された学習用データを用いたi回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置とを算出し、
    前記i回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置と前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置との間の変化に基づいて、前記浮動小数点数で表された学習用データを用いた学習から前記固定小数点数で表された学習用データを用いた学習へ切り替える、
    請求項1に記載の情報処理装置。
  3. 前記第2学習部は、前記i回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置と前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置との間の第1差の絶対値を算出し、
    前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置とi−2回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置との間の第2差の絶対値を算出し、
    前記第1差の絶対値から、前記第2差の絶対値を引いた値が閾値より大きい場合に、i+1回目の学習から前記固定小数点数で表された学習用データを用いた学習へ切り替える、
    請求項2に記載の情報処理装置。
  4. 前記第2学習部は、前記固定小数点数で表された学習用データを用いて前記学習モデルを学習させる際に、前記固定小数点数で表された学習用データを用いた前記学習モデルの前記学習に関する統計情報に基づいて、前記小数点位置を決定し、前記学習モデルを学習させる、
    請求項1〜請求項3の何れか1項に記載の情報処理装置。
  5. 所定の学習モデルを学習させる際に、浮動小数点数で表された学習用データを用いて前記学習モデルを学習させることにより、前記学習モデルの浮動小数点数で表されたパラメータを更新し、
    前記浮動小数点数で表された学習用データを用いた学習後に、該学習により更新された前記浮動小数点数で表されたパラメータを固定小数点数で表されたパラメータに変換し、
    固定小数点数で表された学習用データを用いて前記固定小数点数で表されたパラメータを有する前記学習モデルを学習する、
    処理をコンピュータが実行する学習方法であって、
    前記浮動小数点数で表されたパラメータは、複数の要素を含むパラメータベクトルであり、
    前記浮動小数点数で表されたパラメータの前記固定小数点数で表されたパラメータへの変換において、前記コンピュータは、前記パラメータベクトルに含まれる前記複数の要素のうち最大の絶対値を有する第1要素を選択し、式(1)
    Wl =Ceil(log 第1要素の絶対値) ・・・式(1)
    (Ceilは、最も近い整数に切り上げられた数値を意味する)
    に従って整数N Wl を算出し、算出された前記整数N Wl と前記固定小数点数で表された学習用データのビット幅WLを用いて、式(2)
    Q(W )=N wl −WL−1 ・・・式(2)
    に従って前記浮動小数点数で表されたパラメータに応じた小数点位置Q(W )を算出し、算出された前記小数点位置Q(W )に基づいて、前記浮動小数点数で表されたパラメータを前記固定小数点数で表されたパラメータへ変換する
    ことを特徴とするコンピュータが実行する学習方法
  6. 所定の学習モデルを学習させる際に、浮動小数点数で表された学習用データを用いて前記学習モデルを学習させることにより、前記学習モデルの浮動小数点数で表されたパラメータを更新し、
    前記浮動小数点数で表された学習用データを用いて学習させた後に、該学習により更新された前記浮動小数点数で表されたパラメータを固定小数点数で表されたパラメータに変換し、
    固定小数点数で表された学習用データを用いて前記固定小数点数で表されたパラメータを有する前記学習モデルを学習する
    処理をコンピュータに実行させるための学習プログラムであって、
    前記浮動小数点数で表されたパラメータは、複数の要素を含むパラメータベクトルであり、
    前記浮動小数点数で表されたパラメータの前記固定小数点数で表されたパラメータへの変換において、前記コンピュータは、前記パラメータベクトルに含まれる前記複数の要素のうち最大の絶対値を有する第1要素を選択し、式(1)
    Wl =Ceil(log 第1要素の絶対値) ・・・式(1)
    (Ceilは、最も近い整数に切り上げられた数値を意味する)
    に従って整数N Wl を算出し、算出された前記整数N Wl と前記固定小数点数で表された学習用データのビット幅WLを用いて、式(2)
    Q(W )=N wl −WL−1 ・・・式(2)
    に従って前記浮動小数点数で表されたパラメータに応じた小数点位置Q(W )を算出し、算出された前記小数点位置Q(W )に基づいて、前記浮動小数点数で表されたパラメータを前記固定小数点数で表されたパラメータへ変換する
    ことを特徴とする学習プログラム
  7. 所定の学習モデルを学習させる際に、浮動小数点数で表された学習用データを用いて前記学習モデルを学習させることにより、前記学習モデルの浮動小数点数で表されたパラメータを更新する第1学習部と、
    前記第1学習部による前記浮動小数点数で表された学習用データを用いた学習後に、該学習により更新された前記浮動小数点数で表されたパラメータを固定小数点数で表されたパラメータに変換し、固定小数点数で表された学習用データを用いて前記学習モデルを学習させる第2学習部と、
    を含み、
    前記第2学習部は、前記浮動小数点数で表された学習用データを用いた学習が複数回行われる毎に、前記浮動小数点数で表された学習用データを用いたi−1回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置と、前記浮動小数点数で表された学習用データを用いたi回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置とを算出し、
    前記i回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置と前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置との間の変化に基づいて、前記浮動小数点数で表された学習用データを用いた学習から前記固定小数点数で表された学習用データを用いた学習へ切り替える、
    ことを特徴とする情報処理装置。
  8. 前記第2学習部は、前記i回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置と前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置との間の第1差の絶対値を算出し、
    前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置とi−2回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置との間の第2差の絶対値を算出し、
    前記第1差の絶対値から、前記第2差の絶対値を引いた値が閾値より大きい場合に、i+1回目の学習から前記固定小数点数で表された学習用データを用いた学習へ切り替える、
    ことを特徴とする請求項7に記載の情報処理装置。
  9. 所定の学習モデルを学習させる際に、浮動小数点数で表された学習用データを用いて前記学習モデルを学習させることにより、前記学習モデルの浮動小数点数で表されたパラメータを更新し、
    前記浮動小数点数で表された学習用データを用いた学習後に、該学習により更新された前記浮動小数点数で表されたパラメータを固定小数点数で表されたパラメータに変換し、固定小数点数で表された学習用データを用いて前記学習モデルを学習する
    処理をコンピュータが実行する学習方法であって、
    前記コンピュータは、
    前記浮動小数点数で表された学習用データを用いた学習が複数回行われる毎に、前記浮動小数点数で表された学習用データを用いたi−1回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置と、前記浮動小数点数で表された学習用データを用いたi回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置とを算出し、
    前記i回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置と前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置との間の変化に基づいて、前記浮動小数点数で表された学習用データを用いた学習から前記固定小数点数で表された学習用データを用いた学習へ切り替える、
    ことを特徴とするコンピュータが実行する学習方法。
  10. 前記コンピュータは、
    前記i回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置と前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置との間の第1差の絶対値を算出し、
    前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置とi−2回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置との間の第2差の絶対値を算出し、
    前記第1差の絶対値から、前記第2差の絶対値を引いた値が閾値より大きい場合に、i+1回目の学習から前記固定小数点数で表された学習用データを用いた学習へ切り替える、
    ことを特徴とする請求項9に記載のコンピュータが実行する学習方法。
  11. 所定の学習モデルを学習させる際に、浮動小数点数で表された学習用データを用いて前記学習モデルを学習させることにより、前記学習モデルの浮動小数点数で表されたパラメータを更新し、
    前記浮動小数点数で表された学習用データを用いた学習後に、該学習により更新された前記浮動小数点数で表されたパラメータを固定小数点数で表されたパラメータに変換し、固定小数点数で表された学習用データを用いて前記学習モデルを学習する
    処理をコンピュータに実行させるための学習プログラムであって、
    前記コンピュータは、
    前記浮動小数点数で表された学習用データを用いた学習が複数回行われる毎に、前記浮動小数点数で表された学習用データを用いたi−1回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置と、前記浮動小数点数で表された学習用データを用いたi回目の学習における前記浮動小数点数で表されたパラメータに応じた小数点位置とを算出し、
    前記i回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置と前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置との間の変化に基づいて、前記浮動小数点数で表された学習用データを用いた学習から前記固定小数点数で表された学習用データを用いた学習へ切り替える、
    ことを特徴とする学習プログラム。
  12. 前記コンピュータは、
    前記i回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置と前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置との間の第1差の絶対値を算出し、
    前記i−1回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置とi−2回目の学習における前記浮動小数点数で表されたパラメータに応じた前記小数点位置との間の第2差の絶対値を算出し、
    前記第1差の絶対値から、前記第2差の絶対値を引いた値が閾値より大きい場合に、i+1回目の学習から前記固定小数点数で表された学習用データを用いた学習へ切り替える、
    ことを特徴とする請求項11に記載の学習プログラム。
JP2018107200A 2018-06-04 2018-06-04 学習プログラム、学習方法、及び情報処理装置 Active JP6528884B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018107200A JP6528884B1 (ja) 2018-06-04 2018-06-04 学習プログラム、学習方法、及び情報処理装置
US16/393,104 US11288597B2 (en) 2018-06-04 2019-04-24 Computer-readable recording medium having stored therein training program, training method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018107200A JP6528884B1 (ja) 2018-06-04 2018-06-04 学習プログラム、学習方法、及び情報処理装置

Publications (2)

Publication Number Publication Date
JP6528884B1 true JP6528884B1 (ja) 2019-06-12
JP2019211985A JP2019211985A (ja) 2019-12-12

Family

ID=66821601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018107200A Active JP6528884B1 (ja) 2018-06-04 2018-06-04 学習プログラム、学習方法、及び情報処理装置

Country Status (2)

Country Link
US (1) US11288597B2 (ja)
JP (1) JP6528884B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3764217A1 (en) * 2019-07-11 2021-01-13 Fujitsu Limited Arithmetic processing apparatus, control method, and control program
JP2021043596A (ja) * 2019-09-09 2021-03-18 株式会社ソシオネクスト 量子化パラメータ最適化方法、及び、量子化パラメータ最適化装置
WO2022003855A1 (ja) * 2020-07-01 2022-01-06 日本電信電話株式会社 データ処理装置およびデータ処理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59197936A (ja) 1983-04-25 1984-11-09 Fujitsu Ltd デイジタル信号処理方式
JP3523104B2 (ja) 1999-02-09 2004-04-26 株式会社東芝 固定小数点型乗加算器
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
JP6745019B2 (ja) * 2015-10-29 2020-08-26 株式会社Preferred Networks 情報処理装置及び情報処理方法
CN107688849B (zh) * 2017-07-28 2021-04-13 赛灵思电子科技(北京)有限公司 一种动态策略定点化训练方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3764217A1 (en) * 2019-07-11 2021-01-13 Fujitsu Limited Arithmetic processing apparatus, control method, and control program
US11410036B2 (en) 2019-07-11 2022-08-09 Fujitsu Limited Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program
JP2021043596A (ja) * 2019-09-09 2021-03-18 株式会社ソシオネクスト 量子化パラメータ最適化方法、及び、量子化パラメータ最適化装置
JP7419711B2 (ja) 2019-09-09 2024-01-23 株式会社ソシオネクスト 量子化パラメータ最適化方法、及び、量子化パラメータ最適化装置
WO2022003855A1 (ja) * 2020-07-01 2022-01-06 日本電信電話株式会社 データ処理装置およびデータ処理方法
JP7491379B2 (ja) 2020-07-01 2024-05-28 日本電信電話株式会社 データ処理装置およびデータ処理方法

Also Published As

Publication number Publication date
US20190370682A1 (en) 2019-12-05
US11288597B2 (en) 2022-03-29
JP2019211985A (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
US11137981B2 (en) Operation processing device, information processing device, and information processing method
US11468331B2 (en) Neural network load reduction device, information processing unit, and neural network load reduction method and computer-readable storage medium
JP6528884B1 (ja) 学習プログラム、学習方法、及び情報処理装置
JP2019164793A5 (ja)
CN118095366A (zh) 利用反向传播为深度神经网络选择量化参数的方法和系统
KR20160143505A (ko) 신경망의 연산량을 줄이는 방법 및 시스템
JP2019148972A (ja) 演算処理装置、情報処理装置、情報処理方法、およびプログラム
JP2019139338A (ja) 情報処理装置、情報処理方法、およびプログラム
JP7272121B2 (ja) 演算処理装置、制御方法、及び制御プログラム
US11551087B2 (en) Information processor, information processing method, and storage medium
JP7294017B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP2019040365A (ja) 情報処理装置、方法、及びプログラム
JP4733552B2 (ja) Parcor係数算出装置、parcor係数算出方法、そのプログラムおよびその記録媒体
JP7243498B2 (ja) 演算処理装置、制御プログラム、及び制御方法
JP7322620B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP2021140493A (ja) 情報処理装置、情報処理方法およびプログラム
JP2020190901A (ja) 演算処理装置、演算処理装置の制御プログラム及び演算処理装置の制御方法
JP6992864B1 (ja) ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム
JP7055211B2 (ja) データ処理システムおよびデータ処理方法
JP7120288B2 (ja) ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム
JPWO2020090025A1 (ja) 演算処理装置および演算処理装置の制御方法
JP7436830B2 (ja) 学習プログラム、学習方法、および学習装置
US11886977B2 (en) Computing apparatus, computing method, storage medium, and table generating apparatus
US20210334634A1 (en) Method and apparatus for implementing an artificial neuron network in an integrated circuit
JP2828791B2 (ja) 積和演算に用いる部分和を量子化する方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190429

R150 Certificate of patent or registration of utility model

Ref document number: 6528884

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150