(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-15
(45)【発行日】2023-05-23
(54)【発明の名称】情報処理装置、情報処理プログラム及び制御方法
(51)【国際特許分類】
G06N 3/0985 20230101AFI20230516BHJP
【FI】
G06N3/0985
(21)【出願番号】P 2019095469
(22)【出願日】2019-05-21
【審査請求日】2022-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】山崎 雅文
(72)【発明者】
【氏名】笠置 明彦
(72)【発明者】
【氏名】田渕 晶大
【審査官】多賀 実
(56)【参考文献】
【文献】特開平08-077130(JP,A)
【文献】矢野 正基 外2名,"深層学習を用いた画像識別タスクの精度向上テクニック",電子情報通信学会論文誌D 早期公開論文 2018JDR0001 [online],電子情報通信学会,2018年11月01日,pp.1-2,8-11,[平成30年11月29日 検索], インターネット:<URL:http://search.ieice.org/bin/pdf_advpub.php?category=D&lang=J&fname=2018JDR0001&abst=> <DOI:10.14923/transinfj.2018JDR0001>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
連続曲線の算出に用いるパラメータの入力を受け付ける受付部と、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、
前記パラメータに基づいて算出される連続曲線で変化する学習率を算出する算出部と、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する制御部と
、を有
し、
前記パラメータには、
前記学習率が最大値の中間値となるepochと、
epochの乗数と、
前記学習率が最大値の中間値の時点から最低値に到達するまでの減衰の加速率と、
最終のepochでの学習率と、
が含まれる情報処理装置。
【請求項2】
ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
連続曲線の算出に用いるパラメータの入力を受け付ける受付部と、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、前記パラメータに基づいて算出される連続曲線で変化する学習率を算出する算出部と、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する制御部と、を有し、
前記パラメータには、
前記学習率が最大値の中間値となるepochと、
epochの乗数と、
前記学習率が最低値となるepochと、
最終のepochでの学習率と、
が含まれる情報処理装置。
【請求項3】
ニューラルネットワークを用いて学習処理を行うコンピュータに、
連続曲線の算出に用いるパラメータの入力を受け付け、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、
前記パラメータに基づいて算出される連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、処理を実行させ
、
前記パラメータには、
前記学習率が最大値の中間値となるepochと、
epochの乗数と、
前記学習率が最大値の中間値の時点から最低値に到達するまでの減衰の加速率と、
最終のepochでの学習率と、
が含まれる情報処理プログラム。
【請求項4】
ニューラルネットワークを用いて学習処理を行うコンピュータに、
連続曲線の算出に用いるパラメータの入力を受け付け、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、前記パラメータに基づいて算出される連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、処理を実行させ、
前記パラメータには、
前記学習率が最大値の中間値となるepochと、
epochの乗数と、
前記学習率が最低値となるepochと、
最終のepochでの学習率と、
が含まれる情報処理プログラム。
【請求項5】
ニューラルネットワークを用いて学習処理を行う情報処理装置の制御方法であって、
連続曲線の算出に用いるパラメータの入力を受け付け、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、
前記パラメータに基づいて算出される連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、処理をコンピュータが実行
し、
前記パラメータには、
前記学習率が最大値の中間値となるepochと、
epochの乗数と、
前記学習率が最大値の中間値の時点から最低値に到達するまでの減衰の加速率と、
最終のepochでの学習率と、
が含まれる制御方法。
【請求項6】
ニューラルネットワークを用いて学習処理を行う情報処理装置の制御方法であって、
連続曲線の算出に用いるパラメータの入力を受け付け、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、前記パラメータに基づいて算出される連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、処理をコンピュータが実行し、
前記パラメータには、
前記学習率が最大値の中間値となるepochと、
epochの乗数と、
前記学習率が最低値となるepochと、
最終のepochでの学習率と、
が含まれる制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理プログラム及び制御方法に関する。
【背景技術】
【0002】
一般に、DNN(Deep Neural Network)を用いた学習処理では、入力データを認識する順伝播処理と、認識結果と正解データとの差分値を逆伝播しながら勾配情報を算出する逆伝播処理と、勾配情報に基づいて重みパラメータを更新する更新処理とが実行される。
【0003】
このうち、重みパラメータを更新する更新処理では、学習率(LR:Learning Rate)に基づいて更新量が制御される。この際に用いる学習率は、通常、学習処理開始時に高い値を設定し、学習処理が進むにつれて、徐々に小さい値へと変化させていく。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2017-126260号公報
【文献】特開2017-16414号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、DNNを用いた学習処理の場合、更新処理の際に用いる学習率をどのように変化させるかによって、有限時間内に得られる学習結果(学習済みのモデル)の性能に影響を与える。
【0006】
一つの側面では、学習結果の性能を向上させることを目的としている。
【課題を解決するための手段】
【0007】
一態様によれば、ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
連続曲線の算出に用いるパラメータの入力を受け付ける受付部と、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、前記パラメータに基づいて算出される連続曲線で変化する学習率を算出する算出部と、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する制御部と、を有し、
前記パラメータには、
前記学習率が最大値の中間値となるepochと、
epochの乗数と、
前記学習率が最大値の中間値の時点から最低値に到達するまでの減衰の加速率と、
最終のepochでの学習率と、が含まれる。
【発明の効果】
【0008】
学習結果の性能を向上させることができる。
【図面の簡単な説明】
【0009】
【
図1】情報処理装置の機能構成の一例を示す図である。
【
図2】情報処理装置のハードウェア構成の一例を示す図である。
【
図3】学習処理時の学習用データの構成例を示す図である。
【
図4】情報処理装置の学習部の機能構成の一例を示す図である。
【
図5】情報処理装置のパラメータ受付部及び学習率算出部の機能構成及び学習率の変化を示す連続曲線の一例を示す第1の図である。
【
図6】情報処理装置による設定処理及び学習処理の流れを示すフローチャートである。
【
図8】情報処理装置のパラメータ受付部及び学習率算出部の機能構成及び学習率の変化を示す連続曲線の一例を示す第2の図である。
【発明を実施するための形態】
【0010】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0011】
[第1の実施形態]
<情報処理装置の機能構成>
はじめに、DNN(Deep Neural Network)を用いて学習処理を行う情報処理装置の機能構成について説明する。
図1は、情報処理装置の機能構成の一例を示す図である。情報処理装置100には、情報処理プログラムがインストールされており、当該プログラムが実行されることで、情報処理装置100は、パラメータ受付部110、学習率算出部120、学習率設定部130、学習部140として機能する。
【0012】
パラメータ受付部110は受付部の一例であり、学習処理中の学習率の変化を示す連続曲線の算出に用いるパラメータを受け付ける。パラメータ受付部110において受け付けたパラメータは、学習率算出部120に通知される。
【0013】
学習率算出部120は算出部の一例であり、パラメータ受付部110より通知されたパラメータに基づいて、学習処理中の学習率の変化を示す連続曲線を算出し、学習率設定部130に通知する。
【0014】
学習率設定部130は、学習率算出部120より通知された、学習率の変化を示す連続曲線を、学習部140に設定する。
【0015】
学習部140は、DNNを用いて学習処理を行う。具体的には、学習部140は、学習用データ格納部150より入力データを読み出し、読み出した入力データを認識する順伝播処理を行う。
【0016】
また、学習部140は、学習用データ格納部150より正解データを読み出し、順伝播処理により得た認識結果と、読み出した正解データとの差分値を算出する。また、学習部140は、算出した差分値を逆伝播しながら勾配情報を算出する逆伝播処理を行う。
【0017】
更に、学習部140は、勾配情報に基づいて重みパラメータを更新する更新処理を行う。なお、学習部140では、重みパラメータを更新する際、学習率設定部130により設定された、学習率の変化を示す連続曲線を参照することで学習率を取得し、取得した学習率に基づいて更新量を制御する。
【0018】
<情報処理装置のハードウェア構成>
次に、情報処理装置100のハードウェア構成について説明する。
図2は、情報処理装置のハードウェア構成の一例を示す図である。
図2に示すように、情報処理装置100は、CPU(Central Processing Unit)201、GPU(Graphics Processing Unit)202_1~202_4を有する。また、情報処理装置100は、ROM(Read Only Memory)203、RAM(Random Access Memory)204を有する。なお、CPU201、GPU202_1~202_4、ROM203、RAM204は、いわゆるコンピュータを形成する。
【0019】
また、情報処理装置100は、補助記憶装置205、表示装置206、操作装置207、ドライブ装置208を有する。なお、情報処理装置100の各ハードウェアは、バス209を介して相互に接続されている。
【0020】
CPU201は、補助記憶装置205にインストールされている各種プログラム(例えば、情報処理プログラム等)を実行する演算デバイスである。
【0021】
GPU202_1~202_4は、画像処理用の演算デバイスであり、CPU201により各種プログラムが実行される際に、画像データである入力データについて、並列処理による高速演算を実行する。なお、
図2の例は、情報処理装置100が4つのGPUを有する場合について示しているが、情報処理装置100が有するGPUの数は4つに限定されない。
【0022】
ROM203は、不揮発性メモリである。ROM203は、補助記憶装置205にインストールされている各種プログラムをCPU201が実行するために必要な各種プログラム、データ等を格納する主記憶デバイスとして機能する。具体的には、ROM203はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する、主記憶デバイスとして機能する。
【0023】
RAM204は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリである。RAM204は、補助記憶装置205にインストールされている各種プログラムがCPU201によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【0024】
補助記憶装置205は、各種プログラムや、各種プログラムが実行される際に用いられるデータを格納する補助記憶デバイスである。例えば、学習用データ格納部150は、補助記憶装置205において実現される。
【0025】
表示装置206は、情報処理装置100の内部状態等を表示する表示デバイスである。操作装置207は、情報処理装置100のユーザが情報処理装置100に対して各種指示を入力する際に用いる入力デバイスである。
【0026】
ドライブ装置208は記録媒体210をセットするためのデバイスである。ここでいう記録媒体210には、CD-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体210には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【0027】
なお、補助記憶装置205にインストールされる各種プログラムは、例えば、配布された記録媒体210がドライブ装置208にセットされ、該記録媒体210に記録された各種プログラムがドライブ装置208により読み出されることでインストールされる。あるいは、補助記憶装置205にインストールされる各種プログラムは、不図示のネットワークよりダウンロードされることでインストールされてもよい。
【0028】
<学習用データの説明>
次に、学習用データ格納部150に格納される学習用データについて説明する。
図3は、学習処理時の学習用データの構成例を示す図である。上述したように、情報処理装置100は、4つのGPU(GPU202_1~202_4)を有するため、1回の学習で、4つのミニバッチが入力される。なお、各ミニバッチには、例えば、数百のデータの組(入力データと正解データの組)が含まれているものとする。
【0029】
また、
図3の例は、1epoch(エポック)において、N回の学習が行われることを示している。つまり、学習用データ格納部150には、(数百のデータの組)×4×Nのデータ群が格納されており、学習部140では、学習処理時に
図3に示す1epoch分の学習を、複数回(例えば、90回)繰り返す。
【0030】
<学習部の機能構成>
次に、学習部140の機能構成について説明する。
図4は、情報処理装置の学習部の機能構成の一例を示す図である。上述したように、情報処理装置100は、4つのGPU(GPU202_1~202_4)を有するため、学習部140は、4つの機能ブロック(機能ブロック410~440)に分かれて、それぞれ、並列に学習処理が行われる。なお、機能ブロック410~410の各機能ブロックは、同様の機能を有するため、ここでは、機能ブロック410の機能について説明する。
【0031】
機能ブロック410は、GPU202_1により実現され、
図4に示すように、入力層411と、制御部の一例である第1のニューロン層412、第2のニューロン層413、第3のニューロン層414と、差分器415とを有する。なお、機能ブロック410が有するニューロン層の数は、3つに限定されるものではない。
【0032】
入力層411は、学習用データ格納部150より、ミニバッチ単位で入力データと正解データとの組を読み出し、入力データを第1のニューロン層412に入力する。また、入力層411は、正解データを差分器415に入力する。
【0033】
第1のニューロン層412は、前回の学習において算出された差分値から勾配情報を算出し、算出した勾配情報に基づいて更新した重みパラメータを用いて、入力データを演算する。また、第1のニューロン層412は、演算した入力データを、第2のニューロン層413に入力する。なお、第1のニューロン層412では、学習率設定部130により設定された学習率に応じた更新量で、重みパラメータを更新する。
【0034】
同様に、第2のニューロン層413は、前回の学習において算出された差分値から勾配情報を算出し、算出した勾配情報に基づいて更新した重みパラメータを用いて、入力データを演算する。また、第2のニューロン層413は、演算した入力データを、第3のニューロン層414に入力する。なお、第2のニューロン層413では、学習率設定部130により設定された学習率に応じた更新量で、重みパラメータを更新する。
【0035】
同様に、第3のニューロン層414は、前回の学習において算出された差分値から勾配情報を算出し、算出した勾配情報に基づいて更新した重みパラメータを用いて、入力データを演算する。また、第3のニューロン層414は、入力データを演算することで得られる認識結果を、差分器415に入力する。なお、第3のニューロン層414では、学習率設定部130により設定された学習率に応じた更新量で、重みパラメータを更新する。
【0036】
差分器415は、入力層411より入力された正解データと、第3のニューロン層414より入力された認識結果との差分値を算出し、算出した差分値を逆伝播する。これにより、第1のニューロン層412から第3のニューロン層414では、次の学習において用いる勾配情報を算出する。
【0037】
<パラメータ受付部及び学習率算出部>
次に、学習部140の第1のニューロン層412から第3のニューロン層414それぞれにおいて、勾配情報に基づいて重みパラメータを更新する際に用いる学習率を算出する、パラメータ受付部及び学習率算出部の機能構成について説明する。
【0038】
図5は、情報処理装置のパラメータ受付部及び学習率算出部の機能構成及び学習率の変化を示す連続曲線の一例を示す第1の図である。
【0039】
図5に示すように、パラメータ受付部110は、
・turn_epoch:学習率の減衰率が0.5(学習率の最大値の中間値)となるepoch、
・power:epochの乗数、
・small_epoch:turn_epoch以降(学習率が最大値の中間値から最低値に到達するまで)の学習率の減衰の加速率、
・min_ratio:最終epochでの学習率(学習率の最低値)、
の入力を受け付ける。なお、
図5の例では、turn_epoch=70、power=3、small_ratio=2、min_ratio=0.0001が入力されたことを示している。
【0040】
学習率算出部120は、パラメータ受付部110が入力を受け付けたパラメータを用いて、下式に基づいて、学習処理中の学習率の変化を示す連続曲線lrを算出する。
【0041】
【0042】
なお、上式において、
・lr_decayは学習率の減衰、
・x2_lは最終のepochでのx2、
・lr_1は最終のepochでのlr、
・base_lrは基準となる学習率、
をそれぞれ表す。
【0043】
図5において、グラフ510は、学習率算出部120により算出された、学習処理中の学習率の変化を示す連続曲線lrの一例を示している。
図5に示すように、turn_epochを入力することで、学習率が減衰する時点を指定することができる。また、powerを入力することで、学習率が減衰する際の全体の急峻度を指定することができる。また、small_ratioを入力することで、turn_epoch以降に学習率が減衰する際の急峻度を指定することができる。更に、min_ratioを入力することで、学習処理の終了を指定することができる。
【0044】
ここで、本願出願人は、学習処理中の学習率の変化を示す連続曲線lrを算出するにあたり、“学習率が高い状態を長くすることで、より高性能な学習結果を実現できる”という知見を得た。パラメータ受付部110及び学習率算出部120は、これらの知見を反映させた連続曲線を算出することができるように、
・学習率が減衰する時点(turn_epoch)、
・学習率が減衰する際の全体の急峻度(power)、
・turn_epoch以降に学習率が減衰する際の急峻度(small_ratio)、
をユーザが指定できるようにした。
【0045】
これにより、パラメータ受付部110及び学習率算出部120では、
・学習率が最大値の中間値の時点から、学習率が最低値に到達するまでの時間が、
・学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも、
短くなるように(つまり、学習率が高い状態が長くなるように)、連続曲線lrを算出することが可能となる。
【0046】
<設定処理及び学習処理の流れ>
次に、情報処理装置100による設定処理及び学習処理の流れについて説明する。
図6は、情報処理装置による設定処理及び学習処理の流れを示すフローチャートである。
【0047】
このうち、
図6(a)は、情報処理装置100による設定処理の流れを示すフローチャートである。
図6(a)に示すように、ステップS601において、パラメータ受付部110は、学習処理中の学習率の変化を示す連続曲線の算出に用いるパラメータを受け付ける。
【0048】
ステップS602において、学習率算出部120は、パラメータ受付部110が受け付けたパラメータを用いて、学習処理中の学習率の変化を示す連続曲線を算出する。
【0049】
ステップS603において、学習率設定部130は、学習処理中の学習率の変化を示す連続曲線を、学習部140に設定する。
【0050】
また、
図6(b)は、情報処理装置100により学習処理の流れを示すフローチャートである。
図6(b)に示すように、ステップS611において、学習部140は、学習用データ格納部150より学習用データを、ミニバッチ単位で読み出す。
【0051】
ステップS612において、学習部140は、ミニバッチ単位で読み出した学習用データに含まれる入力データについて順伝播処理を行う。
【0052】
ステップS613において、学習部140は、ミニバッチ単位で読み出した学習用データに含まれる正解データと、順伝播処理により得られた認識結果との差分値を算出し、算出した差分値を逆伝播しながら勾配情報を算出する逆伝播処理を行う。
【0053】
ステップS614において、学習部140は、勾配情報に基づいて重みパラメータを更新する更新処理を行う。このとき、学習部140では、学習率設定部130により設定された連続曲線を参照することで学習率を取得し、取得した学習率に基づいて更新量を制御する。
【0054】
ステップS615において、学習部140は、学習処理を終了するか否かを判定する。ステップS615において、学習処理を継続すると判定した場合には(ステップS615においてNoの場合には)、ステップS611に戻る。一方、ステップS615において、学習処理を終了すると判定した場合には(ステップS615においてYesの場合には)、学習処理を終了する。
【0055】
<学習結果の性能比較>
次に、情報処理装置100の学習部140が学習処理を行うことで得た学習結果の性能について、比較例の学習部が学習処理を行うことで得た学習結果と対比しながら
図7を用いて説明する。
図7は、学習結果の性能向上を示す図である。
【0056】
このうち、グラフ710は、横軸にepoch数を、縦軸に学習結果の性能(学習結果を用いて推論処理を行った場合の精度)をとったグラフである。グラフ710において、点線は、学習部140が学習処理を行うことで得た学習結果(学習率算出部120により算出された連続曲線lrに基づいて学習率を変化させた場合の、学習結果)の性能を示している。
【0057】
一方、グラフ710において、実線は、比較例の学習部が学習処理を行うことで得た学習結果(学習処理の初期では、高い学習率を設定し、学習処理が進むについて徐々に学習率を小さい値に変換させた場合の、学習結果)の性能を示している。
【0058】
グラフ710から明らかなように、学習部140が学習処理を行うことで得た学習結果の方が、学習処理中、常に、高い性能が得られる。
【0059】
また、表720は、有限時間内において学習処理を終了させた際の、最終的な到達性能を比較したものである。表720に示すように、学習部140が学習処理を行うことで得た学習結果の方が、最終的にも高い性能が得られる。
【0060】
以上の説明から明らかなように、情報処理装置100は、学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出する。また、情報処理装置100は、連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する。
【0061】
これにより、ニューラルネットワークを用いた学習処理において、学習率が高い状態を長くすることが可能となる。この結果、第1の実施形態によれば、有限時間内で得られる学習結果の性能を向上させることができる。
【0062】
[第2の実施形態]
上記第1の実施形態では、学習率の変化を示す連続曲線を算出する際、学習率が減衰する時点、学習率が減衰する際の全体の急峻度、turn_epoch以降に学習率が減衰する際の急峻度をユーザが指定できるようにした。
【0063】
しかしながら、学習率の変化を示す連続曲線を算出する際に指定する内容はこれらに限定されない。そこで、第2の実施形態では、第1の実施形態とは異なる内容を指定することで、学習率の変化を示す連続曲線を算出する場合について説明する。なお、以下では、上記第1の実施形態との相違点を中心に説明する。
【0064】
<パラメータ受付部及び学習率算出部>
図8は、情報処理装置のパラメータ受付部及び学習率算出部の機能構成及び学習率の変化を示す連続曲線の一例を示す第2の図である。
【0065】
図8に示すように、パラメータ受付部810は受付部の一例であり、
・turn_epoch:学習率の減衰率が0.5(学習率の最大値の中間値)となるepoch、
・power:epochの乗数、
・last_epoch:最終のepoch数、
・min_ratio:最終epochでの学習率(学習率の最低値)、
の入力を受け付ける。なお、
図8の例では、turn_epoch=70、power=3、last_epoch=90、min_ratio=0.0001が入力されたことを示している。
【0066】
学習率算出部820は算出部の一例であり、パラメータ受付部810が入力を受け付けたパラメータを用いて、下式に基づいて、学習処理中の学習率の変化を示す連続曲線lrを算出する。
【0067】
【0068】
なお、上式において、
・lr_decayは学習率の減衰、
・lr_1は最終のepochでのlr、
・base_lrは基準となる学習率、
をそれぞれ表す。
【0069】
図8において、グラフ830は、学習率算出部820により算出された、学習処理中の学習率の変化を示す連続曲線lrの一例を示している。
図8に示すように、turn_epochを入力することで、学習率が減衰する時点を指定することができる。また、powerを入力することで、学習率が減衰する際の全体の急峻度を指定することができる。また、last_epochを入力することで、最終のepochを指定することができる。更に、min_ratioを入力することで、学習処理の終了を指定することができる。
【0070】
このように、パラメータ受付部810及び学習率算出部820によれば、学習率の変化を示す連続曲線lrを算出する際、
・学習率が減衰する時点(turn_epoch)、
・学習率が減衰する際の全体の急峻度(power)、
・最終のepoch(last_epoch)、
をユーザが指定することができる。
【0071】
これにより、パラメータ受付部810及び学習率算出部820では、学習率が高い状態が長くなるように、連続曲線lrを算出することが可能となる。この結果、第2の実施形態によれば、上記第1の実施形態同様、学習結果の性能を向上させることができる。また、第2の実施形態によれば、更に、最終のepochでの学習率を、指定した値に滑らかに遷移させることができる。
【0072】
[その他の実施形態]
上記第1及び第2の実施形態では、学習処理中の学習率の変化を示す連続曲線を算出するにあたり、arccotを用いるものとして説明した。しかしながら、学習処理中の学習率の変化を示す連続曲線を算出する際に用いる関数は、arccotに限定されず、arccot以外の関数を用いてもよい。
【0073】
また、上記第1及び第2の実施形態では、パラメータ受付部、学習率算出部、学習率設定部、学習部が、1台の情報処理装置100において実現されるものとして説明したが、これらの各部は、複数台の情報処理装置において実現されてもよい。
【0074】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出する算出部と、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する制御部と
を有する情報処理装置。
(付記2)
前記連続曲線の算出に用いるパラメータの入力を受け付ける受付部を更に有し、
前記算出部は、前記パラメータに基づいて前記連続曲線を算出する、付記1に記載の情報処理装置。
(付記3)
前記パラメータには、
前記学習率が最大値の中間値となるepochと、
epochの乗数と、
前記学習率が最大値の中間値の時点から最低値に到達するまでの減衰の加速率と、
最終のepochでの学習率と、
が含まれる、付記2に記載の情報処理装置。
(付記4)
前記パラメータには、
前記学習率が最大値の中間値となるepochと、
epochの乗数と、
前記学習率が最低値となるepochと、
最終のepochでの学習率と、
が含まれる、付記2に記載の情報処理装置。
(付記5)
ニューラルネットワークを用いて学習処理を行うコンピュータに、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、
処理を実行させるための情報処理プログラム。
(付記6)
ニューラルネットワークを用いて学習処理を行う情報処理装置の制御方法であって、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、
処理をコンピュータが実行する制御方法。
【0075】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0076】
100 :情報処理装置
110 :パラメータ受付部
120 :学習率算出部
130 :学習率設定部
140 :学習部
810 :パラメータ受付部
820 :学習率算出部