(57)【要約】【課題】学習結果の性能を向上させる。【解決手段】ニューラルネットワークを用いて学習処理を行う情報処理装置であって、学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出する算出部と、前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する制御部とを有する。【選択図】図５
2020190896.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出する算出部と、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する制御部と
を有する情報処理装置。
【請求項２】
前記連続曲線の算出に用いるパラメータの入力を受け付ける受付部を更に有し、
前記算出部は、前記パラメータに基づいて前記連続曲線を算出する、請求項１に記載の情報処理装置。
【請求項３】
前記パラメータには、
前記学習率が最大値の中間値となるｅｐｏｃｈと、
ｅｐｏｃｈの乗数と、
前記学習率が最大値の中間値の時点から最低値に到達するまでの減衰の加速率と、
最終のｅｐｏｃｈでの学習率と、
が含まれる、請求項２に記載の情報処理装置。
【請求項４】
前記パラメータには、
前記学習率が最大値の中間値となるｅｐｏｃｈと、
ｅｐｏｃｈの乗数と、
前記学習率が最低値となるｅｐｏｃｈと、
最終のｅｐｏｃｈでの学習率と、
が含まれる、請求項２に記載の情報処理装置。
【請求項５】
ニューラルネットワークを用いて学習処理を行うコンピュータに、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、
処理を実行させるための情報処理プログラム。
【請求項６】
ニューラルネットワークを用いて学習処理を行う情報処理装置の制御方法であって、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、
処理をコンピュータが実行する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理プログラム及び制御方法に関する。
【背景技術】
【０００２】
一般に、ＤＮＮ（Deep  Neural  Network）を用いた学習処理では、入力データを認識する順伝播処理と、認識結果と正解データとの差分値を逆伝播しながら勾配情報を算出する逆伝播処理と、勾配情報に基づいて重みパラメータを更新する更新処理とが実行される。
【０００３】
このうち、重みパラメータを更新する更新処理では、学習率（ＬＲ：Learning  Rate）に基づいて更新量が制御される。この際に用いる学習率は、通常、学習処理開始時に高い値を設定し、学習処理が進むにつれて、徐々に小さい値へと変化させていく。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１２６２６０号公報
【特許文献２】特開２０１７−１６４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＤＮＮを用いた学習処理の場合、更新処理の際に用いる学習率をどのように変化させるかによって、有限時間内に得られる学習結果（学習済みのモデル）の性能に影響を与える。
【０００６】
一つの側面では、学習結果の性能を向上させることを目的としている。
【課題を解決するための手段】
【０００７】
一態様によれば、ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出する算出部と、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する制御部とを有する。
【発明の効果】
【０００８】
学習結果の性能を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の機能構成の一例を示す図である。
【図２】情報処理装置のハードウェア構成の一例を示す図である。
【図３】学習処理時の学習用データの構成例を示す図である。
【図４】情報処理装置の学習部の機能構成の一例を示す図である。
【図５】情報処理装置のパラメータ受付部及び学習率算出部の機能構成及び学習率の変化を示す連続曲線の一例を示す第１の図である。
【図６】情報処理装置による設定処理及び学習処理の流れを示すフローチャートである。
【図７】学習結果の精度の一例を示す図である。
【図８】情報処理装置のパラメータ受付部及び学習率算出部の機能構成及び学習率の変化を示す連続曲線の一例を示す第２の図である。
【発明を実施するための形態】
【００１０】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【００１１】
［第１の実施形態］
＜情報処理装置の機能構成＞
はじめに、ＤＮＮ（Deep  Neural  Network）を用いて学習処理を行う情報処理装置の機能構成について説明する。図１は、情報処理装置の機能構成の一例を示す図である。情報処理装置１００には、情報処理プログラムがインストールされており、当該プログラムが実行されることで、情報処理装置１００は、パラメータ受付部１１０、学習率算出部１２０、学習率設定部１３０、学習部１４０として機能する。
【００１２】
パラメータ受付部１１０は受付部の一例であり、学習処理中の学習率の変化を示す連続曲線の算出に用いるパラメータを受け付ける。パラメータ受付部１１０において受け付けたパラメータは、学習率算出部１２０に通知される。
【００１３】
学習率算出部１２０は算出部の一例であり、パラメータ受付部１１０より通知されたパラメータに基づいて、学習処理中の学習率の変化を示す連続曲線を算出し、学習率設定部１３０に通知する。
【００１４】
学習率設定部１３０は、学習率算出部１２０より通知された、学習率の変化を示す連続曲線を、学習部１４０に設定する。
【００１５】
学習部１４０は、ＤＮＮを用いて学習処理を行う。具体的には、学習部１４０は、学習用データ格納部１５０より入力データを読み出し、読み出した入力データを認識する順伝播処理を行う。
【００１６】
また、学習部１４０は、学習用データ格納部１５０より正解データを読み出し、順伝播処理により得た認識結果と、読み出した正解データとの差分値を算出する。また、学習部１４０は、算出した差分値を逆伝播しながら勾配情報を算出する逆伝播処理を行う。
【００１７】
更に、学習部１４０は、勾配情報に基づいて重みパラメータを更新する更新処理を行う。なお、学習部１４０では、重みパラメータを更新する際、学習率設定部１３０により設定された、学習率の変化を示す連続曲線を参照することで学習率を取得し、取得した学習率に基づいて更新量を制御する。
【００１８】
＜情報処理装置のハードウェア構成＞
次に、情報処理装置１００のハードウェア構成について説明する。図２は、情報処理装置のハードウェア構成の一例を示す図である。図２に示すように、情報処理装置１００は、ＣＰＵ（Central  Processing  Unit）２０１、ＧＰＵ（Graphics  Processing  Unit）２０２＿１〜２０２＿４を有する。また、情報処理装置１００は、ＲＯＭ（Read  Only  Memory）２０３、ＲＡＭ（Random  Access  Memory）２０４を有する。なお、ＣＰＵ２０１、ＧＰＵ２０２＿１〜２０２＿４、ＲＯＭ２０３、ＲＡＭ２０４は、いわゆるコンピュータを形成する。
【００１９】
また、情報処理装置１００は、補助記憶装置２０５、表示装置２０６、操作装置２０７、ドライブ装置２０８を有する。なお、情報処理装置１００の各ハードウェアは、バス２０９を介して相互に接続されている。
【００２０】
ＣＰＵ２０１は、補助記憶装置２０５にインストールされている各種プログラム（例えば、情報処理プログラム等）を実行する演算デバイスである。
【００２１】
ＧＰＵ２０２＿１〜２０２＿４は、画像処理用の演算デバイスであり、ＣＰＵ２０１により各種プログラムが実行される際に、画像データである入力データについて、並列処理による高速演算を実行する。なお、図２の例は、情報処理装置１００が４つのＧＰＵを有する場合について示しているが、情報処理装置１００が有するＧＰＵの数は４つに限定されない。
【００２２】
ＲＯＭ２０３は、不揮発性メモリである。ＲＯＭ２０３は、補助記憶装置２０５にインストールされている各種プログラムをＣＰＵ２０１が実行するために必要な各種プログラム、データ等を格納する主記憶デバイスとして機能する。具体的には、ＲＯＭ２０３はＢＩＯＳ（Basic  Input/Output  System）やＥＦＩ（Extensible  Firmware  Interface）等のブートプログラム等を格納する、主記憶デバイスとして機能する。
【００２３】
ＲＡＭ２０４は、ＤＲＡＭ（Dynamic  Random  Access  Memory）やＳＲＡＭ（Static  Random  Access  Memory）等の揮発性メモリである。ＲＡＭ２０４は、補助記憶装置２０５にインストールされている各種プログラムがＣＰＵ２０１によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【００２４】
補助記憶装置２０５は、各種プログラムや、各種プログラムが実行される際に用いられるデータを格納する補助記憶デバイスである。例えば、学習用データ格納部１５０は、補助記憶装置２０５において実現される。
【００２５】
表示装置２０６は、情報処理装置１００の内部状態等を表示する表示デバイスである。操作装置２０７は、情報処理装置１００のユーザが情報処理装置１００に対して各種指示を入力する際に用いる入力デバイスである。
【００２６】
ドライブ装置２０８は記録媒体２１０をセットするためのデバイスである。ここでいう記録媒体２１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体２１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【００２７】
なお、補助記憶装置２０５にインストールされる各種プログラムは、例えば、配布された記録媒体２１０がドライブ装置２０８にセットされ、該記録媒体２１０に記録された各種プログラムがドライブ装置２０８により読み出されることでインストールされる。あるいは、補助記憶装置２０５にインストールされる各種プログラムは、不図示のネットワークよりダウンロードされることでインストールされてもよい。
【００２８】
＜学習用データの説明＞
次に、学習用データ格納部１５０に格納される学習用データについて説明する。図３は、学習処理時の学習用データの構成例を示す図である。上述したように、情報処理装置１００は、４つのＧＰＵ（ＧＰＵ２０２＿１〜２０２＿４）を有するため、１回の学習で、４つのミニバッチが入力される。なお、各ミニバッチには、例えば、数百のデータの組（入力データと正解データの組）が含まれているものとする。
【００２９】
また、図３の例は、１ｅｐｏｃｈ（エポック）において、Ｎ回の学習が行われることを示している。つまり、学習用データ格納部１５０には、（数百のデータの組）×４×Ｎのデータ群が格納されており、学習部１４０では、学習処理時に図３に示す１ｅｐｏｃｈ分の学習を、複数回（例えば、９０回）繰り返す。
【００３０】
＜学習部の機能構成＞
次に、学習部１４０の機能構成について説明する。図４は、情報処理装置の学習部の機能構成の一例を示す図である。上述したように、情報処理装置１００は、４つのＧＰＵ（ＧＰＵ２０２＿１〜２０２＿４）を有するため、学習部１４０は、４つの機能ブロック（機能ブロック４１０〜４４０）に分かれて、それぞれ、並列に学習処理が行われる。なお、機能ブロック４１０〜４１０の各機能ブロックは、同様の機能を有するため、ここでは、機能ブロック４１０の機能について説明する。
【００３１】
機能ブロック４１０は、ＧＰＵ２０２＿１により実現され、図４に示すように、入力層４１１と、制御部の一例である第１のニューロン層４１２、第２のニューロン層４１３、第３のニューロン層４１４と、差分器４１５とを有する。なお、機能ブロック４１０が有するニューロン層の数は、３つに限定されるものではない。
【００３２】
入力層４１１は、学習用データ格納部１５０より、ミニバッチ単位で入力データと正解データとの組を読み出し、入力データを第１のニューロン層４１２に入力する。また、入力層４１１は、正解データを差分器４１５に入力する。
【００３３】
第１のニューロン層４１２は、前回の学習において算出された差分値から勾配情報を算出し、算出した勾配情報に基づいて更新した重みパラメータを用いて、入力データを演算する。また、第１のニューロン層４１２は、演算した入力データを、第２のニューロン層４１３に入力する。なお、第１のニューロン層４１２では、学習率設定部１３０により設定された学習率に応じた更新量で、重みパラメータを更新する。
【００３４】
同様に、第２のニューロン層４１３は、前回の学習において算出された差分値から勾配情報を算出し、算出した勾配情報に基づいて更新した重みパラメータを用いて、入力データを演算する。また、第２のニューロン層４１３は、演算した入力データを、第３のニューロン層４１４に入力する。なお、第２のニューロン層４１３では、学習率設定部１３０により設定された学習率に応じた更新量で、重みパラメータを更新する。
【００３５】
同様に、第３のニューロン層４１４は、前回の学習において算出された差分値から勾配情報を算出し、算出した勾配情報に基づいて更新した重みパラメータを用いて、入力データを演算する。また、第３のニューロン層４１４は、入力データを演算することで得られる認識結果を、差分器４１５に入力する。なお、第３のニューロン層４１４では、学習率設定部１３０により設定された学習率に応じた更新量で、重みパラメータを更新する。
【００３６】
差分器４１５は、入力層４１１より入力された正解データと、第３のニューロン層４１４より入力された認識結果との差分値を算出し、算出した差分値を逆伝播する。これにより、第１のニューロン層４１２から第３のニューロン層４１４では、次の学習において用いる勾配情報を算出する。
【００３７】
＜パラメータ受付部及び学習率算出部＞
次に、学習部１４０の第１のニューロン層４１２から第３のニューロン層４１４それぞれにおいて、勾配情報に基づいて重みパラメータを更新する際に用いる学習率を算出する、パラメータ受付部及び学習率算出部の機能構成について説明する。
【００３８】
図５は、情報処理装置のパラメータ受付部及び学習率算出部の機能構成及び学習率の変化を示す連続曲線の一例を示す第１の図である。
【００３９】
図５に示すように、パラメータ受付部１１０は、
・ｔｕｒｎ＿ｅｐｏｃｈ：学習率の減衰率が０．５（学習率の最大値の中間値）となるｅｐｏｃｈ、
・ｐｏｗｅｒ：ｅｐｏｃｈの乗数、
・ｓｍａｌｌ＿ｅｐｏｃｈ：ｔｕｒｎ＿ｅｐｏｃｈ以降（学習率が最大値の中間値から最低値に到達するまで）の学習率の減衰の加速率、
・ｍｉｎ＿ｒａｔｉｏ：最終ｅｐｏｃｈでの学習率（学習率の最低値）、
の入力を受け付ける。なお、図５の例では、ｔｕｒｎ＿ｅｐｏｃｈ＝７０、ｐｏｗｅｒ＝３、ｓｍａｌｌ＿ｒａｔｉｏ＝２、ｍｉｎ＿ｒａｔｉｏ＝０．０００１が入力されたことを示している。
【００４０】
学習率算出部１２０は、パラメータ受付部１１０が入力を受け付けたパラメータを用いて、下式に基づいて、学習処理中の学習率の変化を示す連続曲線ｌｒを算出する。
【００４１】
【数１】
2020190896.tif 000003
【００４２】
なお、上式において、
・ｌｒ＿ｄｅｃａｙは学習率の減衰、
・ｘ２＿ｌは最終のｅｐｏｃｈでのｘ２、
・ｌｒ＿１は最終のｅｐｏｃｈでのｌｒ、
・ｂａｓｅ＿ｌｒは基準となる学習率、
をそれぞれ表す。
【００４３】
図５において、グラフ５１０は、学習率算出部１２０により算出された、学習処理中の学習率の変化を示す連続曲線ｌｒの一例を示している。図５に示すように、ｔｕｒｎ＿ｅｐｏｃｈを入力することで、学習率が減衰する時点を指定することができる。また、ｐｏｗｅｒを入力することで、学習率が減衰する際の全体の急峻度を指定することができる。また、ｓｍａｌｌ＿ｒａｔｉｏを入力することで、ｔｕｒｎ＿ｅｐｏｃｈ以降に学習率が減衰する際の急峻度を指定することができる。更に、ｍｉｎ＿ｒａｔｉｏを入力することで、学習処理の終了を指定することができる。
【００４４】
ここで、本願出願人は、学習処理中の学習率の変化を示す連続曲線ｌｒを算出するにあたり、“学習率が高い状態を長くすることで、より高性能な学習結果を実現できる”という知見を得た。パラメータ受付部１１０及び学習率算出部１２０は、これらの知見を反映させた連続曲線を算出することができるように、
・学習率が減衰する時点（ｔｕｒｎ＿ｅｐｏｃｈ）、
・学習率が減衰する際の全体の急峻度（ｐｏｗｅｒ）、
・ｔｕｒｎ＿ｅｐｏｃｈ以降に学習率が減衰する際の急峻度（ｓｍａｌｌ＿ｒａｔｉｏ）、
をユーザが指定できるようにした。
【００４５】
これにより、パラメータ受付部１１０及び学習率算出部１２０では、
・学習率が最大値の中間値の時点から、学習率が最低値に到達するまでの時間が、
・学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも、
短くなるように（つまり、学習率が高い状態が長くなるように）、連続曲線ｌｒを算出することが可能となる。
【００４６】
＜設定処理及び学習処理の流れ＞
次に、情報処理装置１００による設定処理及び学習処理の流れについて説明する。図６は、情報処理装置による設定処理及び学習処理の流れを示すフローチャートである。
【００４７】
このうち、図６（ａ）は、情報処理装置１００による設定処理の流れを示すフローチャートである。図６（ａ）に示すように、ステップＳ６０１において、パラメータ受付部１１０は、学習処理中の学習率の変化を示す連続曲線の算出に用いるパラメータを受け付ける。
【００４８】
ステップＳ６０２において、学習率算出部１２０は、パラメータ受付部１１０が受け付けたパラメータを用いて、学習処理中の学習率の変化を示す連続曲線を算出する。
【００４９】
ステップＳ６０３において、学習率設定部１３０は、学習処理中の学習率の変化を示す連続曲線を、学習部１４０に設定する。
【００５０】
また、図６（ｂ）は、情報処理装置１００により学習処理の流れを示すフローチャートである。図６（ｂ）に示すように、ステップＳ６１１において、学習部１４０は、学習用データ格納部１５０より学習用データを、ミニバッチ単位で読み出す。
【００５１】
ステップＳ６１２において、学習部１４０は、ミニバッチ単位で読み出した学習用データに含まれる入力データについて順伝播処理を行う。
【００５２】
ステップＳ６１３において、学習部１４０は、ミニバッチ単位で読み出した学習用データに含まれる正解データと、順伝播処理により得られた認識結果との差分値を算出し、算出した差分値を逆伝播しながら勾配情報を算出する逆伝播処理を行う。
【００５３】
ステップＳ６１４において、学習部１４０は、勾配情報に基づいて重みパラメータを更新する更新処理を行う。このとき、学習部１４０では、学習率設定部１３０により設定された連続曲線を参照することで学習率を取得し、取得した学習率に基づいて更新量を制御する。
【００５４】
ステップＳ６１５において、学習部１４０は、学習処理を終了するか否かを判定する。ステップＳ６１５において、学習処理を継続すると判定した場合には（ステップＳ６１５においてＮｏの場合には）、ステップＳ６１１に戻る。一方、ステップＳ６１５において、学習処理を終了すると判定した場合には（ステップＳ６１５においてＹｅｓの場合には）、学習処理を終了する。
【００５５】
＜学習結果の性能比較＞
次に、情報処理装置１００の学習部１４０が学習処理を行うことで得た学習結果の性能について、比較例の学習部が学習処理を行うことで得た学習結果と対比しながら図７を用いて説明する。図７は、学習結果の性能向上を示す図である。
【００５６】
このうち、グラフ７１０は、横軸にｅｐｏｃｈ数を、縦軸に学習結果の性能（学習結果を用いて推論処理を行った場合の精度）をとったグラフである。グラフ７１０において、点線は、学習部１４０が学習処理を行うことで得た学習結果（学習率算出部１２０により算出された連続曲線ｌｒに基づいて学習率を変化させた場合の、学習結果）の性能を示している。
【００５７】
一方、グラフ７１０において、実線は、比較例の学習部が学習処理を行うことで得た学習結果（学習処理の初期では、高い学習率を設定し、学習処理が進むについて徐々に学習率を小さい値に変換させた場合の、学習結果）の性能を示している。
【００５８】
グラフ７１０から明らかなように、学習部１４０が学習処理を行うことで得た学習結果の方が、学習処理中、常に、高い性能が得られる。
【００５９】
また、表７２０は、有限時間内において学習処理を終了させた際の、最終的な到達性能を比較したものである。表７２０に示すように、学習部１４０が学習処理を行うことで得た学習結果の方が、最終的にも高い性能が得られる。
【００６０】
以上の説明から明らかなように、情報処理装置１００は、学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出する。また、情報処理装置１００は、連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する。
【００６１】
これにより、ニューラルネットワークを用いた学習処理において、学習率が高い状態を長くすることが可能となる。この結果、第１の実施形態によれば、有限時間内で得られる学習結果の性能を向上させることができる。
【００６２】
［第２の実施形態］
上記第１の実施形態では、学習率の変化を示す連続曲線を算出する際、学習率が減衰する時点、学習率が減衰する際の全体の急峻度、ｔｕｒｎ＿ｅｐｏｃｈ以降に学習率が減衰する際の急峻度をユーザが指定できるようにした。
【００６３】
しかしながら、学習率の変化を示す連続曲線を算出する際に指定する内容はこれらに限定されない。そこで、第２の実施形態では、第１の実施形態とは異なる内容を指定することで、学習率の変化を示す連続曲線を算出する場合について説明する。なお、以下では、上記第１の実施形態との相違点を中心に説明する。
【００６４】
＜パラメータ受付部及び学習率算出部＞
図８は、情報処理装置のパラメータ受付部及び学習率算出部の機能構成及び学習率の変化を示す連続曲線の一例を示す第２の図である。
【００６５】
図８に示すように、パラメータ受付部８１０は受付部の一例であり、
・ｔｕｒｎ＿ｅｐｏｃｈ：学習率の減衰率が０．５（学習率の最大値の中間値）となるｅｐｏｃｈ、
・ｐｏｗｅｒ：ｅｐｏｃｈの乗数、
・ｌａｓｔ＿ｅｐｏｃｈ：最終のｅｐｏｃｈ数、
・ｍｉｎ＿ｒａｔｉｏ：最終ｅｐｏｃｈでの学習率（学習率の最低値）、
の入力を受け付ける。なお、図８の例では、ｔｕｒｎ＿ｅｐｏｃｈ＝７０、ｐｏｗｅｒ＝３、ｌａｓｔ＿ｅｐｏｃｈ＝９０、ｍｉｎ＿ｒａｔｉｏ＝０．０００１が入力されたことを示している。
【００６６】
学習率算出部８２０は算出部の一例であり、パラメータ受付部８１０が入力を受け付けたパラメータを用いて、下式に基づいて、学習処理中の学習率の変化を示す連続曲線ｌｒを算出する。
【００６７】
【数２】
2020190896.tif 000004
【００６８】
なお、上式において、
・ｌｒ＿ｄｅｃａｙは学習率の減衰、
・ｌｒ＿１は最終のｅｐｏｃｈでのｌｒ、
・ｂａｓｅ＿ｌｒは基準となる学習率、
をそれぞれ表す。
【００６９】
図８において、グラフ８３０は、学習率算出部８２０により算出された、学習処理中の学習率の変化を示す連続曲線ｌｒの一例を示している。図８に示すように、ｔｕｒｎ＿ｅｐｏｃｈを入力することで、学習率が減衰する時点を指定することができる。また、ｐｏｗｅｒを入力することで、学習率が減衰する際の全体の急峻度を指定することができる。また、ｌａｓｔ＿ｅｐｏｃｈを入力することで、最終のｅｐｏｃｈを指定することができる。更に、ｍｉｎ＿ｒａｔｉｏを入力することで、学習処理の終了を指定することができる。
【００７０】
このように、パラメータ受付部８１０及び学習率算出部８２０によれば、学習率の変化を示す連続曲線ｌｒを算出する際、
・学習率が減衰する時点（ｔｕｒｎ＿ｅｐｏｃｈ）、
・学習率が減衰する際の全体の急峻度（ｐｏｗｅｒ）、
・最終のｅｐｏｃｈ（ｌａｓｔ＿ｅｐｏｃｈ）、
をユーザが指定することができる。
【００７１】
これにより、パラメータ受付部８１０及び学習率算出部８２０では、学習率が高い状態が長くなるように、連続曲線ｌｒを算出することが可能となる。この結果、第２の実施形態によれば、上記第１の実施形態同様、学習結果の性能を向上させることができる。また、第２の実施形態によれば、更に、最終のｅｐｏｃｈでの学習率を、指定した値に滑らかに遷移させることができる。
【００７２】
［その他の実施形態］
上記第１及び第２の実施形態では、学習処理中の学習率の変化を示す連続曲線を算出するにあたり、ａｒｃｃｏｔを用いるものとして説明した。しかしながら、学習処理中の学習率の変化を示す連続曲線を算出する際に用いる関数は、ａｒｃｃｏｔに限定されず、ａｒｃｃｏｔ以外の関数を用いてもよい。
【００７３】
また、上記第１及び第２の実施形態では、パラメータ受付部、学習率算出部、学習率設定部、学習部が、１台の情報処理装置１００において実現されるものとして説明したが、これらの各部は、複数台の情報処理装置において実現されてもよい。
【００７４】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出する算出部と、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する制御部と
を有する情報処理装置。
（付記２）
前記連続曲線の算出に用いるパラメータの入力を受け付ける受付部を更に有し、
前記算出部は、前記パラメータに基づいて前記連続曲線を算出する、付記１に記載の情報処理装置。
（付記３）
前記パラメータには、
前記学習率が最大値の中間値となるｅｐｏｃｈと、
ｅｐｏｃｈの乗数と、
前記学習率が最大値の中間値の時点から最低値に到達するまでの減衰の加速率と、
最終のｅｐｏｃｈでの学習率と、
が含まれる、付記２に記載の情報処理装置。
（付記４）
前記パラメータには、
前記学習率が最大値の中間値となるｅｐｏｃｈと、
ｅｐｏｃｈの乗数と、
前記学習率が最低値となるｅｐｏｃｈと、
最終のｅｐｏｃｈでの学習率と、
が含まれる、付記２に記載の情報処理装置。
（付記５）
ニューラルネットワークを用いて学習処理を行うコンピュータに、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、
処理を実行させるための情報処理プログラム。
（付記６）
ニューラルネットワークを用いて学習処理を行う情報処理装置の制御方法であって、
学習率が最大値の中間値の時点から最低値に到達するまでの時間が、学習処理開始時から学習率が最大値の中間値に到達するまでの時間よりも短くなるように、連続曲線で変化する学習率を算出し、
前記連続曲線で変化する学習率に基づいて、更新処理において重みパラメータを更新する際の更新量を制御する、
処理をコンピュータが実行する制御方法。
【００７５】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【００７６】
１００              ：情報処理装置
１１０              ：パラメータ受付部
１２０              ：学習率算出部
１３０              ：学習率設定部
１４０              ：学習部
８１０              ：パラメータ受付部
８２０              ：学習率算出部
【図１】
2020190896.tif 000005
【図２】
2020190896.tif 000006
【図３】
2020190896.tif 000007
【図４】
2020190896.tif 000008
【図５】
2020190896.tif 000009
【図６】
2020190896.tif 000010
【図７】
2020190896.tif 000011
【図８】
2020190896.tif 000012