(57)【要約】【課題】学習結果の性能を向上させる。【解決手段】ニューラルネットワークを用いて学習処理を行う情報処理装置であって、学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第２のミニバッチを生成する処理とを実行する生成部と、前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記第２のミニバッチを用いて学習を行う学習部とを有する。【選択図】図５
2020190895.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第２のミニバッチを生成する処理とを実行する生成部と、
前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記第２のミニバッチを用いて学習を行う学習部と
を有する情報処理装置。
【請求項２】
前記学習部は、前記学習処理の際、前記第１のミニバッチを用いて行う学習が、予め定められたｅｐｏｃｈ数に到達した場合に、前記第２のミニバッチを用いて学習を行う、請求項１に記載の情報処理装置。
【請求項３】
前記学習部は、前記学習処理の際、前記第１のミニバッチを用いて行う学習が、予め定められた学習率に到達した場合に、前記第２のミニバッチを用いて学習を行う、請求項１に記載の情報処理装置。
【請求項４】
前記学習部は、前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記学習部に含まれる各ネットワーク層の重みパラメータを固定したうえで、前記第２のミニバッチを用いて学習を行う、請求項１に記載の情報処理装置。
【請求項５】
前記学習処理により得られた学習結果に、推論用データを入力することで推論処理を行う推論部と、
前記推論用データを入力する際、前記推論用データを用いて推論用パラメータを算出し、前記推論部に設定する更新部と
を更に有する、請求項１に記載の情報処理装置。
【請求項６】
ニューラルネットワークを用いて学習処理を行うコンピュータに、
学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第２のミニバッチを生成する処理とを実行し、
前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記第２のミニバッチを用いて学習を行う、
処理を実行させる情報処理プログラム。
【請求項７】
ニューラルネットワークを用いて学習処理を行うコンピュータが、
学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第２のミニバッチを生成する処理とを実行し、
前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記第２のミニバッチを用いて学習を行う、
処理を実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
一般に、ＤＮＮ（Deep  Neural  Network）を用いた学習処理では、汎化性能の高い適切な重みパラメータを算出するために、学習用データをランダムに変形してミニバッチを生成する、いわゆるデータ拡張処理が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−９７５８５号公報
【特許文献２】特開２０１７−１６４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、データ拡張処理により生成されるミニバッチを用いた場合、データ拡張処理によらずに生成されるミニバッチを用いた場合と比較して、学習処理の際にバッチノーマライゼーション部で算出される推論用パラメータの偏りが大きくなる。この結果、学習結果（学習済みのモデル）の性能（推論精度）が低下する場合がある。
【０００５】
一つの側面では、学習結果の性能を向上させることを目的としている。
【課題を解決するための手段】
【０００６】
一態様によれば、ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第２のミニバッチを生成する処理とを実行する生成部と、
前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記第２のミニバッチを用いて学習を行う学習部とを有する。
【発明の効果】
【０００７】
学習結果の性能を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置の機能構成の一例を示す第１の図である。
【図２】情報処理装置のハードウェア構成の一例を示す図である。
【図３】情報処理装置の拡張部の機能構成の一例を示す図である。
【図４】学習処理時のミニバッチの構成例を示す図である。
【図５】情報処理装置の学習部の機能構成の一例を示す第１の図である。
【図６】情報処理装置による学習処理の流れを示す第１のフローチャートである。
【図７】情報処理装置の学習部の機能構成の一例を示す第２の図である。
【図８】情報処理装置による学習処理の流れを示す第２のフローチャートである。
【図９】情報処理装置の機能構成の一例を示す第２の図である。
【図１０】情報処理装置の更新部及び推論部の機能構成の一例を示す図である。
【図１１】情報処理装置による推論処理の流れを示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【００１０】
［第１の実施形態］
＜情報処理装置の機能構成＞
はじめに、ニューラルネットワークの一例であるＤＮＮ（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）等の揮発性メモリである。ＲＡＭ２０４は、補助記憶装置２０５にインストールされている各種プログラムがＣＰＵ２０１によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【００２５】
補助記憶装置２０５は、各種プログラムや、各種プログラムが実行される際に用いられるデータを格納する補助記憶デバイスである。例えば、学習用データ格納部１４０及び推論用データ格納部１５０は、補助記憶装置２０５において実現される。
【００２６】
表示装置２０６は、情報処理装置１００の内部状態等を表示する表示デバイスである。操作装置２０７は、情報処理装置１００のユーザが情報処理装置１００に対して各種指示を入力する際に用いる入力デバイスである。
【００２７】
ドライブ装置２０８は記録媒体２１０をセットするためのデバイスである。ここでいう記録媒体２１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体２１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【００２８】
なお、補助記憶装置２０５にインストールされる各種プログラムは、例えば、配布された記録媒体２１０がドライブ装置２０８にセットされ、該記録媒体２１０に記録された各種プログラムがドライブ装置２０８により読み出されることでインストールされる。あるいは、補助記憶装置２０５にインストールされる各種プログラムは、不図示のネットワークよりダウンロードされることでインストールされてもよい。
【００２９】
＜情報処理装置の拡張部の機能構成＞
次に、情報処理装置１００の拡張部１１０の機能構成について説明する。図３は、情報処理装置の拡張部の機能構成の一例を示す図である。
【００３０】
図３に示すように、拡張部１１０は、学習用データ格納部１４０より学習用データを読み出し、第１のデータ処理と第２のデータ処理とを行う。なお、図３の例では、学習用データ格納部１４０より読み出す学習用データが同じサイズの場合を示しているが、実際には、様々なサイズのデータが含まれているものとする。
【００３１】
拡張部１１０では、第１のデータ処理として、
・読み出した学習用データそれぞれについて、サイズが５％〜９０％の範囲、かつ、アスペクト比が０．６６７〜１．５の範囲で、領域を切り出し、
・切り出した領域を２２４×２２４［画素］にリサイズし、
所定数のまとまりであるミニバッチを複数含む第１のミニバッチとして出力する（図３の例では、Ｎ個のミニバッチを含む第１のミニバッチとして出力した様子を示している）。
【００３２】
また、拡張部１１０では、第２のデータ処理として、
・読み出した学習用データそれぞれについて、短辺が２５６［画素］となるようにリサイズし、
・リサイズした学習用データそれぞれについて、中心領域の２２４×２２４［画素］を切り出し、
所定数のまとまりであるミニバッチを複数含む第２のミニバッチとして出力する（図３の例では、Ｎ個のミニバッチを含む第２のミニバッチとして出力した様子を示している）。
【００３３】
＜学習処理時のミニバッチの構成例＞
次に、拡張部１１０において第１のデータ処理により生成された第１のミニバッチの学習処理時の構成例と、第２のデータ処理により生成された第２のミニバッチの学習処理時の構成例とについて説明する。
【００３４】
図４は、学習処理時のミニバッチの構成例を示す図である。図４に示すように、学習処理の際、学習部１２０では、第１のデータ処理により生成された第１のミニバッチのうち、１番目の第１のミニバッチ（“ミニバッチ１”）を用いて１回目の学習を行う。以降、学習部１２０では、Ｎ番目の第１のミニバッチ（“ミニバッチＮ”）まで、Ｎ回の学習を行う。これにより、学習部１２０では、１ｅｐｏｃｈ分の学習が完了する。
【００３５】
なお、本実施形態における学習処理では、１００ｅｐｏｃｈ分の学習を行うものとする。学習部１２０では、そのうち、Ｘｅｐｏｃｈ目（例えば、９０≦Ｘ≦９９）までは、第１のデータ処理により生成された第１のミニバッチを用いて学習を行う（ｅｐｏｃｈごとに第１のデータ処理を行い、新たに第１のミニバッチを生成して学習を行うものとする）。
【００３６】
一方、学習部１２０では、Ｘ＋１ｅｐｏｃｈ目〜１００ｅｐｏｃｈ目までは、第２のデータ処理により生成された第２のミニバッチを用いて学習を行う。
【００３７】
＜学習部の機能構成＞
次に、情報処理装置１００の学習部１２０の機能構成について説明する。図５は、情報処理装置の学習部の機能構成の一例を示す第１の図である。図５に示すように、学習部１２０は、入力部と、第１層から第Ｍ層までの各ネットワーク層（ＤＮＮの各ネットワーク層）と、比較部とを有する。また、第１層から第Ｍ層までの各ネットワーク層は、例えば、畳み込み部と、バッチノーマライゼーション部（ＢＮ部）と、活性化部と、プーリング部とを有する（図５下側参照）。
【００３８】
図５に示す機能構成のもと、学習部１２０では、１ｅｐｏｃｈ目からＸｅｐｏｃｈ目までは、第１のミニバッチを入力部に入力する。これにより、第１層には、１番目からＮ番目までの各ミニバッチが、順次、入力されるとともに、比較部には、対応する正解データが通知される。
【００３９】
第１層から第Ｍ層までの各ネットワーク層では、前回の学習によって更新された重みパラメータを用いて、入力部（または前層のネットワーク層）から出力されたデータを演算し、次層のネットワーク層に出力する。また、第Ｍ層から出力されたデータは、認識結果として、比較部に出力される。
【００４０】
比較部では、第Ｍ層から出力された認識結果と、入力部から通知された正解データとを比較し、両者の差分値を算出する。なお、比較部により算出された差分値は逆伝播され、第１層から第Ｍ層までの各ネットワーク層の重みパラメータを更新する。
【００４１】
ここで、各ネットワーク層に含まれる各部（図５の下側参照）のうち、畳み込み部、活性化部、プーリング部の処理についての詳細な説明は省略し、ここでは、ＢＮ部の処理について詳細な説明を行う。
【００４２】
ＢＮ部は、入力された各ミニバッチの平均μと分散σとを用いて、入力された各ミニバッチを正規化し、更に、アフィン変換を行う（下式参照。ただし、ｘｉは各ミニバッチに含まれる各データを指すものとする）。
【００４３】
【数１】
2020190895.tif 000003
【００４４】
なお、上式において、学習パラメータγ及びβは、各ミニバッチを用いて学習を行う際に、重みパラメータと同様に、差分値の逆伝播に伴って更新される。そして、ＢＮ部では、下式に基づいて、推論用パラメータ（μの移動平均値及びσの移動平均値）を算出する。
【００４５】
【数２】
2020190895.tif 000004
【００４６】
一方、図５に示す機能構成のもと、学習部１２０では、Ｘ＋１ｅｐｏｃｈ目から１００ｅｐｏｃｈ目までは、第２のミニバッチを入力部に入力する。これにより、第１層には、１番目からＮ番目までの各ミニバッチが、順次、入力されるとともに、比較部には、対応する正解データが、順次、通知される。
【００４７】
第１層から第Ｍ層までの各ネットワーク層では、前回の学習によって更新された重みパラメータを用いて、入力部（または前層のネットワーク層）から出力されたデータを演算し、次層のネットワーク層に出力する。また、第Ｍ層から出力されたデータは、認識結果として、比較部に入力される。
【００４８】
比較部では、第Ｍ層から出力された認識結果と、入力部から通知された正解データとを比較し、両者の差分値を算出する。なお、比較部により算出された差分値は逆伝播され、第１層から第Ｍ層までの各ネットワーク層の重みパラメータを更新する。
【００４９】
ここで、Ｘ＋１ｅｐｏｃｈ目以降の各学習を行う時点では、通常、学習率が低下しており、重みパラメータ更新時の更新量はわずかである。一方で、ＢＮ部で算出される推論用パラメータは、学習処理が終了する前の直近に入力されるミニバッチ（つまり、Ｘ＋１ｅｐｏｃｈ目から１００ｅｐｏｃｈ目までの第２のミニバッチ）により大きく変化する。
【００５０】
このように、学習部１２０では、第１のミニバッチを用いて学習を行い、その後、第２のミニバッチを用いて学習を行う。
【００５１】
これにより、学習部１２０では、汎化性能の高い適切な重みパラメータと、偏りの少ない適切な推論用パラメータとを算出することができる。この結果、第１の実施形態によれば、学習処理の際に第１のミニバッチのみを用いて学習を行った場合と比較して、学習結果（学習済みのモデル）の性能（推論精度）を向上させることができる。
【００５２】
＜学習処理の流れ＞
次に、情報処理装置１００による学習処理の流れについて説明する。図６は、情報処理装置による学習処理の流れを示す第１のフローチャートである。図６に示すように、ステップＳ６０１において、拡張部１１０は、学習用データ格納部１４０より学習用データを読み出す。
【００５３】
ステップＳ６０２において、拡張部１１０は、読み出した学習用データに対して、データ拡張処理を行い第１のミニバッチを生成する。ステップＳ６０３において、学習部１２０は、第１のミニバッチを用いた学習を開始する。
【００５４】
ステップＳ６０４において、学習部１２０は、Ｘｅｐｏｃｈ目の学習が完了したか否かを判定する。ステップＳ６０４において、Ｘｅｐｏｃｈ目の学習が完了していないと判定した場合には（ステップＳ６０４においてＮｏの場合には）、再びステップＳ６０２のデータ拡張処理を行い、第１のミニバッチを用いた学習を継続する。一方、ステップＳ６０４において、Ｘｅｐｏｃｈ目の学習が完了したと判定した場合には（ステップＳ６０４においてＹｅｓの場合には）、ステップＳ６０５に進む。
【００５５】
ステップＳ６０５において、拡張部１１０は、読み出した学習用データに対してデータ拡張処理を行わずに第２のミニバッチを生成する。ステップＳ６０６において、学習部１２０は、第２のミニバッチを用いた学習を開始する。
【００５６】
ステップＳ６０７において、学習部１２０は、学習処理を終了するか否かを判定する。ステップＳ６０７において、学習処理を終了しないと判定した場合には（ステップＳ６０７においてＮｏの場合には）、第２のミニバッチを用いた学習を継続する。一方、ステップＳ６０７において、学習処理を終了すると判定した場合には（ステップＳ６０７においてＹｅｓの場合には）、学習処理を終了する。
【００５７】
以上の説明から明らかなように、第１の実施形態に係る情報処理装置１００では、拡張部１１０が、学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、データ拡張処理を行わずに第２のミニバッチを生成する処理とを実行する。また、学習部が、学習処理の際、第１のミニバッチを用いて学習を行った後に、第２のミニバッチを用いて学習を行う。
【００５８】
これにより、第１の実施形態に係る情報処理装置１００では、汎化性能の高い適切な重みパラメータと、偏りの少ない適切な推論用パラメータとを算出することができる。この結果、第１の実施形態に係る情報処理装置１００によれば、学習結果の性能を向上させることができる。
【００５９】
［第２の実施形態］
上記第１の実施形態では、第２のミニバッチを用いて学習を行う際、学習パラメータに加え、重みパラメータも更新するものとして説明した。これに対して、第２の実施形態では、第２のミニバッチを用いて学習を行う際、学習率をゼロに設定することで、重みパラメータを固定し、学習パラメータのみを更新する。以下、第２の実施形態について、上記第１の実施形態との相違点を中心に説明する。
【００６０】
＜学習部の機能構成＞
はじめに、第２の実施形態に係る情報処理装置１００の学習部１２０の機能構成について説明する。図７は、情報処理装置の学習部の機能構成の一例を示す第２の図である。図５との相違点は、Ｘ＋１ｅｐｏｃｈ目から１００ｅｐｏｃｈ目まで、第２のミニバッチを用いて学習を行うにあたり、学習率をゼロに設定する点である。
【００６１】
これにより、第Ｍ層から出力された認識結果と、入力部から通知された正解データとの差分値が逆伝播された場合であっても、第１層から第Ｍ層までの各ネットワーク層の重みパラメータは更新量がゼロとなり、固定される。
【００６２】
一方で、ＢＮ部で更新される学習パラメータは、学習率の設定に関わらず、学習処理が終了する前の直近に入力されるミニバッチ（つまり、Ｘ＋１ｅｐｏｃｈ目から１００ｅｐｏｃｈ目までの第２のミニバッチ）により大きく変化する。
【００６３】
このように、学習部１２０では、第１のミニバッチを用いて学習を行うことで算出した、汎化性能の高い適切な重みパラメータを維持したまま、学習を継続する。また、学習部１２０では、第２のミニバッチを用いて学習を行うことで、偏りの少ない適切な推論用パラメータを算出する。
【００６４】
これにより、第２の実施形態の場合、上記第１の実施形態と比較して、重みパラメータを更新する必要がないため、逆伝播の処理が不要になる。この結果、第２の実施形態によれば、学習速度を向上させることができる。
【００６５】
＜学習処理の流れ＞
次に、第２の実施形態に係る情報処理装置１００による学習処理の流れについて説明する。図８は、情報処理装置による学習処理の流れを示す第２のフローチャートである。図６に示す学習処理との相違点は、ステップＳ８０１である。
【００６６】
ステップＳ８０１において、学習部１２０は、学習率をゼロに設定することで、第２のミニバッチを用いて学習を行う際の重みパラメータを固定する。
【００６７】
以上の説明から明らかなように、第２の実施形態に係る情報処理装置１００では、拡張部１１０が、学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、データ拡張処理を行わずに第２のミニバッチを生成する処理とを実行する。また、学習部が、第１のミニバッチを用いて学習を行った後に、重みパラメータを固定して、第２のミニバッチを用いて学習を行う。
【００６８】
これにより、第２の実施形態に係る情報処理装置１００によれば、汎化性能の高い適切な重みパラメータと、偏りの少ない適切な推論用パラメータとを算出することができる。この結果、第２の実施形態に係る情報処理装置１００によれば、上記第１の実施形態が奏する効果に加えて、学習速度を向上させることができる。
【００６９】
［第３の実施形態］
上記第１及び第２の実施形態では、学習処理の際に、Ｘ＋１ｅｐｏｃｈから１００ｅｐｏｃｈ目に、第２のミニバッチを用いて学習を行うことで、偏りの少ない適切な推論用パラメータを算出するものとして説明した。
【００７０】
これに対して、第３の実施形態では、更に、推論処理の際に、推論用データを用いて、推論用パラメータを更新する。これにより、第３の実施形態によれば、学習用データと推論用データとで、内容が大きく変わった場合であっても、学習結果の性能（推論精度）が低下するのを抑えることができる。
【００７１】
以下、第３の実施形態について、上記第１及び第２の実施形態との相違点を中心に説明する。
【００７２】
＜情報処理装置の機能構成＞
はじめに、第３の実施形態に係る情報処理装置の機能構成について説明する。図９は、情報処理装置の機能構成の一例を示す第２の図である。図１を用いて説明した情報処理装置１００との相違点は、図９に示す情報処理装置９００の場合、更新部９１０を有する点である。
【００７３】
更新部９１０は、例えば、学習処理が完了し、かつ、学習率をゼロに設定した学習部１２０と同様の機構を含んでいる。これにより、更新部９１０は、推論用データ格納部１５０に格納された所定数の推論用データを読み出した際、推論用パラメータ（μの移動平均値及びσの移動平均値）を算出する。また、更新部９１０は、算出した推論用パラメータを、推論部１３０に含まれる各層のＢＮ部に設定する（図１０の例は、第１層のＢＮ部に設定した様子を示している）。これにより、推論部１３０は、推論用データに基づいて算出された推論用パラメータが各層のＢＮ部に設定された状態で推論用データを入力し、推論結果を出力することができる。
【００７４】
＜更新部及び推論部の機能構成＞
次に、第３の実施形態に係る情報処理装置９００の更新部９１０及び推論部１３０の機能構成について説明する。図１０は、情報処理装置の更新部及び推論部の機能構成の一例を示す図である。
【００７５】
図１０に示すように、更新部９１０は、推論用データ格納部１５０より、所定数の推論用データを読み出し、推論用パラメータ（μの移動平均値及びσの移動平均値）を算出する。また、更新部９１０は、算出した推論用パラメータを、推論部１３０に含まれる各層のＢＮ部に設定する。
【００７６】
＜推論処理の流れ＞
次に、第３の実施形態に係る情報処理装置９００による推論処理の流れについて説明する。図１１は、情報処理装置による推論処理の流れを示すフローチャートである。
【００７７】
ステップＳ１１０１において、更新部９１０は、推論用データ格納部１５０より所定数の推論用データを読み出す。
【００７８】
ステップＳ１１０２において、更新部９１０は、読み出した所定数の推論用データを解析し、学習用データと比較して、データ内容が大きく変更されているか否かを判定する。ステップＳ１１０２において、データ内容が大きく変更されていないと判定した場合には（ステップＳ１１０２においてＮｏの場合には）、ステップＳ１１０５に進む。
【００７９】
一方、ステップＳ１１０２において、データ内容が大きく変更されていると判定した場合には（ステップＳ１１０２においてＹｅｓの場合には）、ステップＳ１１０３に進む。
【００８０】
ステップＳ１１０３において、更新部９１０は、読み出した所定数の推論用データに基づいて、推論用パラメータを算出する。
【００８１】
ステップＳ１１０４において、更新部９１０は、算出した推論用パラメータについて、推論部１３０に含まれる各層のＢＮ部に設定する。
【００８２】
ステップＳ１１０５において、推論部１３０は、読み出した推論用データを用いて推論処理を行う。また、推論部１３０は、推論結果を出力し、推論処理を終了する。
【００８３】
以上の説明から明らかなように、第３の実施形態に係る情報処理装置９００では、推論処理の際、更新部９１０が、推論用データを用いて推論用パラメータを算出し、ＢＮ部に設定する。
【００８４】
これにより、第３の実施形態に係る情報処理装置９００によれば、汎化性能の高い適切な重みパラメータと、推論用データに則した適切な推論用パラメータとを用いて、推論処理を行うことができる。この結果、第３の実施形態に係る情報処理装置９００によれば、学習結果の性能（推論精度）を向上させることができる。
【００８５】
［その他の実施形態］
上記第１及び第２の実施形態では、データ拡張処理の処理内容を図３に例示したが、データ拡張処理の処理内容はこれに限定されず、学習用データをランダムに変形する処理内容であれば、他の処理内容であってもよい。
【００８６】
例えば、第１のデータ処理により生成される第１のミニバッチの分散σの方が、第２のデータ処理により生成される第２のミニバッチの分散σより大きくなるように、データ拡張処理を行ってもよい。
【００８７】
また、上記第１及び第２の実施形態では、説明の便宜上、情報処理装置１００が、１つのＧＰＵ２０２を有する場合について説明した。一方で、情報処理装置１００は、複数のＧＰＵを有していてもよい。この場合、例えば、各ＧＰＵにおいて実現されるＢＮ部が推論用パラメータ（μの移動平均値及びσの移動平均値）を算出するにあたっては、各ＧＰＵにおいて実現されるＢＮ部が算出した推論用パラメータの平均値を、各ＢＮ部に設定するようにしてもよい。
【００８８】
また、上記第１及び第２の実施形態では、Ｘｅｐｏｃｈ目の学習が完了したと判定した場合に、第１のミニバッチを用いた学習から第２のミニバッチを用いた学習へと切り替えるものとして説明した。しかしながら、第１のミニバッチを用いた学習から第２のミニバッチを用いた学習へと切り替えるタイミングはこれに限定されない。例えば、学習率が所定の値に到達した場合に、第１のミニバッチを用いた学習から第２のミニバッチを用いた学習へと切り替えるようにしてもよい。
【００８９】
また、上記第１及び第２の実施形態では、１００ｅｐｏｃｈ分の学習を行うものとしたが、ｅｐｏｃｈ数は１００に限定されない。
【００９０】
また、上記第２の実施形態では、データ内容が大きく変更されていると判定した場合に、推論用データに基づいて推論用パラメータを算出するものとして説明した。しかしながら、推論用データに基づいて推論用パラメータを算出するか否かの判定はこれに限定されない。推論用データに基づいて算出される平均μ、分散σが所定の閾値以上変化した場合に、推論用データに基づいて推論用パラメータを算出するようにしてもよい。
【００９１】
また、上記各実施形態では、拡張部、学習部、更新部、推論部が、１台の情報処理装置１００（または、９００）において実現されるものとして説明した。しかしながら、これらの各部は、複数台の情報処理装置において実現されてもよい。
【００９２】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第２のミニバッチを生成する処理とを実行する生成部と、
前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記第２のミニバッチを用いて学習を行う学習部と
を有する情報処理装置。
（付記２）
前記学習部は、前記学習処理の際、前記第１のミニバッチを用いて行う学習が、予め定められたｅｐｏｃｈ数に到達した場合に、前記第２のミニバッチを用いて学習を行う、付記１に記載の情報処理装置。
（付記３）
前記学習部は、前記学習処理の際、前記第１のミニバッチを用いて行う学習が、予め定められた学習率に到達した場合に、前記第２のミニバッチを用いて学習を行う、付記１に記載の情報処理装置。
（付記４）
前記学習部は、前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記学習部に含まれる各ネットワーク層の重みパラメータを固定したうえで、前記第２のミニバッチを用いて学習を行う、付記１に記載の情報処理装置。
（付記５）
前記学習処理により得られた学習結果に、推論用データを入力することで推論処理を行う推論部と、
前記推論用データを入力する際、前記推論用データを用いて推論用パラメータを算出し、前記推論部に設定する更新部と
を更に有する、付記１に記載の情報処理装置。
（付記６）
ニューラルネットワークを用いて学習処理を行うコンピュータに、
学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第２のミニバッチを生成する処理とを実行し、
前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記第２のミニバッチを用いて学習を行う、
処理を実行させる情報処理プログラム。
（付記７）
ニューラルネットワークを用いて学習処理を行うコンピュータが、
学習用データに対してデータ拡張処理を行い第１のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第２のミニバッチを生成する処理とを実行し、
前記学習処理の際、前記第１のミニバッチを用いて学習を行った後に、前記第２のミニバッチを用いて学習を行う、
処理を実行する情報処理方法。
【００９３】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【００９４】
１００              ：情報処理装置
１１０              ：拡張部
１２０              ：学習部
１３０              ：推論部
９００              ：情報処理装置
９１０              ：更新部
【図１】
2020190895.tif 000005
【図２】
2020190895.tif 000006
【図３】
2020190895.tif 000007
【図４】
2020190895.tif 000008
【図５】
2020190895.tif 000009
【図６】
2020190895.tif 000010
【図７】
2020190895.tif 000011
【図８】
2020190895.tif 000012
【図９】
2020190895.tif 000013
【図１０】
2020190895.tif 000014
【図１１】
2020190895.tif 000015