(57)【要約】【課題】ミニバッチを構成する学習データをランダムに選択する場合に比べてより適切な学習データを利用した学習を行うことを目的とする。【解決手段】多層ニューラルネットワークのミニバッチ学習を行う学習装置であって、学習データのクラス情報に基づいて生成された構成パターンのミニバッチを用いて、ニューラルネットワークの学習を行う学習手段と、学習手段により既に得られている学習結果に基づいて、次の学習に利用する構成パターンを決定する決定手段とを有し、学習手段は、決定手段により決定された構成パターンのミニバッチを用いて、学習を行う。【選択図】図３
2019185121.tif 000002
【特許請求の範囲】
【請求項１】
多層ニューラルネットワークのミニバッチ学習を行う学習装置であって、
学習データのクラス情報に基づいて生成された構成パターンのミニバッチを用いて、ニューラルネットワークの学習を行う学習手段と、
前記学習手段により既に得られている学習結果に基づいて、次の学習に利用する構成パターンを決定する決定手段と
を有し、
前記学習手段は、前記決定手段により決定された構成パターンのミニバッチを用いて、学習を行うことを特徴とする学習装置。
【請求項２】
複数の構成パターンを生成する生成手段をさらに有し、
前記決定手段は、前記学習結果に基づいて、前記生成手段により生成された複数の構成パターンのうち一の構成パターンを、次の学習に利用する構成パターンとして決定することを特徴とする請求項１に記載の学習装置。
【請求項３】
前記生成手段により生成された複数の構成パターンが前記決定手段により次の学習に利用する構成パターンとして決定される確率を、前記学習結果に基づいて変更する第１の変更手段をさらに有し、
前記決定手段は、前記第１の変更手段により変更された、複数の構成パターンそれぞれの確率に従って、次の学習に利用する構成パターンを決定することを特徴とする請求項２に記載の学習装置。
【請求項４】
前記ミニバッチを構成する学習データと異なるデータを用いて、前記学習手段による学習結果を評価する評価手段をさらに有し、
前記決定手段は、前記評価手段により得られた学習結果の評価に基づいて、次の学習に利用する構成パターンを決定することを特徴とする請求項２又は３に記載の学習装置。
【請求項５】
前記学習結果に基づいて、前記決定手段により決定された前記構成パターンに対応した、学習データを選択する選択手段をさらに有し、
前記学習手段は、前記選択手段により選択された学習データを含む前記ミニバッチを用いて前記学習を行うことを特徴とする請求項２乃至４の何れか１項に記載の学習装置。
【請求項６】
前記学習データが前記選択手段により選択される確率を、前記学習結果に基づいて変更する第２の変更手段を更に有し、
前記選択手段は、前記第２の変更手段により変更された、前記学習データそれぞれの確率に従って、構成パターンに対応した学習データを選択することを特徴とする請求項５に記載の学習装置。
【請求項７】
前記学習手段は、ニューラルネットワークの強化学習を行い、
前記決定手段は、前記学習手段により既に得られている複数の学習結果に基づいて、次の学習に利用する構成パターンを決定することを特徴とする請求項１に記載の学習装置。
【請求項８】
多層ニューラルネットワークのミニバッチ学習を行う学習装置による学習方法であって、
学習データのクラス情報に基づいて生成された構成パターンのミニバッチを用いて、ニューラルネットワークの学習を行う学習ステップと、
前記学習ステップにおいて既に得られている学習結果に基づいて、次の学習に利用する構成パターンを決定する決定ステップと
を含み、
前記学習ステップでは、前記決定ステップにおいて決定された構成パターンのミニバッチを用いて、学習を行うことを特徴とする学習方法。
【請求項９】
コンピュータを、請求項１乃至７の何れか１項に記載の学習装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法及びプログラムに関する。
【背景技術】
【０００２】
従来、画像・音声などのデータの内容を学習し認識を行う技術が存在する。認識処理の目的をここでは認識タスクと呼ぶ。画像中から人間の顔の領域を検出する顔認識タスクや、画像中にある物体（被写体）カテゴリ（猫、車、建物等）を判別する物体カテゴリ認識タスク、シーンのカテゴリ（都市、山間、海岸等）を判別するシーン種別認識タスク等多様な認識タスクがある。
【０００３】
上記のような認識タスクを学習・実行する技術としては、ニューラルネットワークの技術が知られている。深い（層の数が多い）多層ニューラルネットワークはＤｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ（ＤＮＮ）と呼ばれ、性能が高いことで近年注目されている。非特許文献１には、深い畳みこみニューラルネットワークが開示されている。これは、Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ（ＤＣＮＮ）と呼ばれ、特に画像を対象とした多様な認識タスクで高い性能を上げている。
【０００４】
ＤＮＮは、データを入力する入力層と複数の中間層、認識結果を出力する出力層から構成される。ＤＮＮの学習フェーズでは、予め設定された損失関数に出力層から出力される推定結果と教師情報を入力して損失（推定結果と教師情報との差異を表す指標）を算出する。そして、誤差逆伝搬法（バックプロパゲーション：ＢＰ）などを用いて損失を最小化するように学習を行う。ＤＮＮの学習の際には、一般的にミニバッチ学習と呼ばれる方式が用いられる。ミニバッチ学習では、全学習データセットから一定数の学習データを抽出し、抽出した一定数の学習データ群（ミニバッチ）の損失を全て求める。そして、その損失の平均をＤＮＮに返して重みを更新する。この処理を収束するまで繰り返していくのがＤＮＮにおける学習処理である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｋｒｉｚｈｅｖｓｋｙ，Ａ．，Ｓｕｔｓｋｅｖｅｒ，Ｉ．，＆Ｈｉｎｔｏｎ，Ｇ．Ｅ．，"Ｉｍａｇｅｎｅｔ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｗｉｔｈ  ｄｅｅｐ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ．"，Ｉｎ  Ａｄｖａｎｃｅｓ  ｉｎ  ｎｅｕｒａｌ  ｉｎｆｏｒｍａｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍｓ（ｐｐ．１０９７−１１０５），２０１２．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＤＮＮの学習においては、ミニバッチを構成する学習データを、全学習データから選択する際に、固定された順序で選択するのではなくランダムに選択する方が効率よく学習が進み、速く収束すると言われている。しかし、ＤＮＮが解くタスクの種類や難度、学習データセットの素性によっては、ランダムに選択した学習データで構成されたミニバッチで学習を行うと効率が悪かったり、精度が上がらなかったりする場合がある。
【０００７】
本発明はこのような問題点に鑑みなされたもので、ミニバッチを構成する学習データをランダムに選択する場合に比べてより適切な学習データを利用した学習を行うことを目的とする。
【課題を解決するための手段】
【０００８】
そこで、本発明は、多層ニューラルネットワークのミニバッチ学習を行う学習装置であって、学習データのクラス情報に基づいて生成された構成パターンのミニバッチを用いて、ニューラルネットワークの学習を行う学習手段と、前記学習手段により既に得られている学習結果に基づいて、次の学習に利用する構成パターンを決定する決定手段とを有し、前記学習手段は、前記決定手段により決定された構成パターンのミニバッチを用いて、学習を行うことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ミニバッチを構成する学習データをランダムに選択する場合に比べてより適切な学習データを利用した学習を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】学習装置のハードウェア構成図である。
【図２】学習装置の機能構成図である。
【図３】学習処理を示すフローチャートである。
【図４】構成パターンの一例を示す図である。
【図５】ミニバッチの一例を示す図である。
【図６】第３の実施形態に係る学習装置の機能構成図である。
【図７】第３の実施形態に係る学習処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面に基づいて説明する。
（第１の実施形態）
第１の実施形態に係る学習装置は、ミニバッチ学習を行う多層ニューラルネットワークにおいて、ミニバッチに含まれる学習データの組み合わせを適切に設定することで、効率よく学習を行う。図１は、第１の実施形態に係る学習装置１００のハードウェア構成図である。学習装置１００は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ１０４と、表示部１０５と、入力部１０６と、通信部１０７とを有している。ＣＰＵ１０１は、ＲＯＭ１０２に記憶された制御プログラムを読み出して各種処理を実行する。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ１０４は、各種データや各種プログラム等を記憶する。表示部１０５は、各種情報を表示する。入力部１０６は、キーボードやマウスを有し、ユーザによる各種操作を受け付ける。通信部１０７は、ネットワークを介して外部装置との通信処理を行う。
【００１２】
なお、後述する学習装置１００の機能や処理は、ＣＰＵ１０１がＲＯＭ１０２又はＨＤＤ１０４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。また、他の例としては、ＣＰＵ１０１は、ＲＯＭ１０２等に替えて、ＳＤカード等の記録媒体に格納されているプログラムを読み出してもよい。また、他の例としては、学習装置１００の機能や処理の少なくとも一部は、例えば複数のＣＰＵ、ＲＡＭ、ＲＯＭ、及びストレージを協働させることにより実現してもよい。また、他の例としては、学習装置１００の機能や処理の少なくとも一部は、ハードウェア回路を用いて実現してもよい。
【００１３】
図２は、学習装置１００の機能構成図である。学習装置１００は、クラス情報取得部２０１と、パターン生成部２０２と、パターン記憶部２０３と、パターン決定部２０４と、表示処理部２０５と、ミニバッチ生成部２０６と、学習部２０７と、評価値更新部２０８と、を有している。クラス情報取得部２０１は、各学習データからクラス情報を取得する。パターン生成部２０２は、複数の構成パターンを生成する。ここで、構成パターンは、ミニバッチに含まれる学習データの内訳のパターンを表すものであり、本実施形態では、クラスの比率で表現される。構成パターンには、さらに、メタ情報として評価値（評価スコア）が含まれるものとする。構成パターンについては、後述する。パターン記憶部２０３は、パターン生成部２０２により生成された複数の構成パターンと、構成パターンの評価スコアとを対応付けて記憶する。パターン決定部２０４は、複数の構成パターンの中から１つの構成パターンを、学習に用いる構成パターンとして決定する。表示処理部２０５は、各種情報を表示部１０５に表示するよう制御する。
【００１４】
ミニバッチ生成部２０６は、学習データセットから学習データを抽出し、抽出した学習データに基づいてミニバッチを生成する。ミニバッチは、ＤＮＮの学習に用いられる学習データ群である。本実施形態のミニバッチ生成部２０６が生成するミニバッチには、学習用の学習データ群の他に、評価用の学習データ群が含まれる。以下、評価用の学習データ群を評価セット、学習用の学習データ群を学習セットと称する。学習部２０７は、ミニバッチを入力としてＤＮＮの重みを更新する。学習部２０７はまた、評価セットを用いて学習結果の評価を行う。評価値更新部２０８は、評価セットの評価結果に基づいて、構成パターンの評価値を更新する。
【００１５】
図３は、学習装置１００による学習処理を示すフローチャートである。Ｓ３０１において、クラス情報取得部２０１は、各学習データのクラス情報を取得する。クラス情報は、学習データの性質やカテゴリを表す分類のためのラベルである。ＤＮＮが解くタスクが分類タスクである場合、学習データの教師情報が、該学習データのクラス情報であると言える。また、教師情報以外にユーザが予め学習データにメタ情報（データが付随して持つ、データ自身に関する付加的な情報）としてクラス情報を記載しておくこととしてもよい。
【００１６】
また、他の例としては、学習データがクラス情報を保持していない場合や保持していてもそのクラス情報を利用しない場合には、Ｓ３０１において、クラス情報取得部２０１は、自動的に学習データのクラス情報を生成してもよい。この場合、クラス情報取得部２０１は、学習データを複数のクラスタに分類し、分類されたクラスタを各学習データのクラス情報として生成する。例えば、画像から人体領域を検出するタスクの場合、教師情報は画像中の人体領域となり、クラス情報は存在しない。この場合、クラス情報取得部２０１は、予め学習データを、抽出した任意の特徴量による教師なしクラスタリング手法によって分類し、その分類結果を各学習データのクラス情報としてラベル付けしてもよい。また、クラス情報取得部２０１は、教師なしクラスタリング手法の代わりに学習済みの任意の分類器を用いて分類を行ってもよい。
【００１７】
次に、Ｓ３０２において、パターン生成部２０２は、複数の構成パターンを生成する。構成パターンは、ミニバッチに含まれる学習データの各クラスの割合を示す情報である。図４は、構成パターンの一例を示す図である。図４に示すパターン１は、「クラスＡ：１０％、クラスＢ：３０％、クラスＣ：５０％、クラスＤ：１０％」の構成パターンである。また、パターン２は、「クラスＡ：２０％、クラスＢ：７０％、クラスＣ：１０％、クラスＤ：０％」の構成パターンである。なお、Ｓ３０２の処理においては、構成パターンのみが生成され、構成パターンに対応したミニバッチに含まれる具体的な学習データの決定は行われない。図４においては２つの構成パターンのみを例示したが、パターン生成部２０２は、ランダムに一定数の構成パターンを生成する。なお、生成する構成パターンの数は任意であり、予め定められていてもよく、またユーザが設定してもよい。各構成パターンにはメタ情報として評価スコアが付与されるが、Ｓ３０２において構成パターンが生成された時点では、一律の値（初期値）が評価スコアとして付与されているものとする。パターン生成部２０２は、生成した構成パターンをパターン記憶部２０３に格納する。
【００１８】
次に、Ｓ３０３において、パターン決定部２０４は、パターン記憶部２０３に格納されている複数の構成パターンの中から１つの構成パターンを処理対象の構成パターンとして選択する。本処理は、構成パターンを決定する処理の一例である。また、本処理は、Ｓ３０３〜ＳＳ３０７のループ処理で繰り返される処理であり、１回目のＳ３０３の処理においては、パターン決定部２０４は、処理対象の構成パターンをランダムに決定する。２回目以降のＳ３０３の処理においては、パターン決定部２０４は、評価スコアに基づいて処理対象の構成パターンを選択する。なお、Ｓ３０３で選択された構成パターンの情報は、１イテレーションの間保持される。ただし、１イテレーションは、繰り返し処理においてＤＮＮの重みが一度更新されるまでの一連の処理（繰り返し単位の処理）であり、Ｓ３０３〜Ｓ３０７の処理である。
【００１９】
ここで、繰り返し処理における２回目以降のＳ３０３の処理について説明する。パターン決定部２０４は、評価スコアにより各構成パターンが選択される確率を更新（変更）し、更新後の確率を利用して、複数の構成パターンの中から１つの構成パターンを選択する。例えば、構成パターンＰｉ（１＜ｉ≦Ｎ、Ｎは構成パターンの総数）の評価スコアがＶｉであるとする。この場合、パターン決定部２０４は、（式１）により、構成パターンＰｉが選択される確率Ｅｉを求める。そして、この確率Ｅｉを利用して構成パターンを選択する。
【数１】
2019185121.tif 000003
【００２０】
次に、Ｓ３０４において、ミニバッチ生成部２０６は、Ｓ３０３において選択された構成パターンに基づいて、ミニバッチを作成する。ミニバッチ生成部２０６は、評価セットを含んだミニバッチを生成する。評価セットはすべての学習データから均等に抽出された学習データである。ミニバッチの中の評価セットの割合や評価セットの学習データの数は予め設定されているものとするが、これに限定されるものではなく、ユーザが設定することとしてもよい。また、評価セットに含まれる学習データはランダムに選択されるものとする。
【００２１】
ミニバッチ生成部２０６は、バッチサイズが１００で、図４に示すパターン１のミニバッチを生成する場合には、図５に示すミニバッチを生成する。すなわち、ミニバッチには、学習セットとして９００枚、評価セットとして１００枚の学習データが含まれる。さらに、学習データのクラスの内訳は、クラスＡの学習データが９０枚、クラスＢの学習データが２７０枚、クラスＣの学習データが４５０枚、クラスＤの学習データが９０枚となる。ミニバッチ生成部２０６は、クラス毎の学習データについてはランダムに選択するものとする。
【００２２】
次に、Ｓ３０５において、学習部２０７は、ＤＮＮの学習を行う。ＤＮＮの学習では、学習部２０７は、ミニバッチの学習セットを入力とし、最終的な出力と学習セットの教師情報を損失関数に入力することで学習セットの各学習データの損失を算出する。そして、学習部２０７は、学習セットの各学習データの損失の平均を誤差逆伝搬することでＤＮＮの重みを更新する。一般には、ミニバッチに含まれるすべての学習データの損失の平均を用いてＤＮＮの重みを更新するが、本実施形態においては、評価セットの学習データの損失はＤＮＮの重みの更新に利用しない（ＤＮＮに損失を返さない）。このように、学習は、学習セットのみで行われ、評価セットは用いられない。ただし、学習部２０７は、評価セットの学習データの損失の平均値を評価セットの損失として算出する。
【００２３】
次に、Ｓ３０６において、評価値更新部２０８は、評価セットに対する学習結果に基づいて、評価スコアを算出し、パターン記憶部２０３に格納されている評価スコアを更新する。なお、ここで算出される評価スコアは、１つ前のループ処理におけるＳ３０５における学習結果に対応したものである。本実施形態においては、評価値更新部２０８は、Ｓ３０５において算出された評価セットの損失の逆数を評価スコアとして算出する。すなわち、評価セットの損失が小さい構成パターンほど評価スコアが大きくなる。構成パターンＰの評価セットの損失をＬとすると、構成パターンＰの評価スコアＶは（式２）により求めることができる。ここで、αは任意の正の実数である。前述の通り、本実施形態における構成パターンの選択は評価スコアに基づいて行われるため、αの設定によって、選択における重みづけを調整することができる。
【数２】
2019185121.tif 000004
【００２４】
ただし、評価スコアは、評価セットに基づいて算出された、学習結果を評価する値であればよく、上記に限定されるものではない。他の例としては、評価セットのクラス情報を教師データとして評価セットの分類精度を算出し、算出された分類精度を評価スコアとしてもよい。このように、ミニバッチが評価セットを含むので、学習が１ステップ進む度に、自動的に評価スコアを算出することができる。これにより、学習の速度を落とすことなく評価スコアの算出を行うことができる。
【００２５】
次に、Ｓ３０７において、学習部２０７は、処理を終了するか否かを判定する。学習部２０７は、予め定められた終了条件を満たす場合に終了と判定する。学習部２０７は、処理を終了すると判定した場合に（Ｓ３０７でＹＥＳ）、学習処理を終了する。学習部２０７は、処理を終了しないと判定した場合には（Ｓ３０７でＮＯ）、処理をＳ３０３へ進める。この場合、Ｓ３０３において、構成パターンを選択し、Ｓ３０４以降の処理を継続する。なお、終了条件は、例えば、「評価セットに対する精度が所定の閾値を超える」、「所定の回数、学習処理を繰り返す」といった条件である。なお、２イテレーション以降で、評価スコアが初期値以外の値に更新されることになるため、３イテレーション以降で、評価スコアに応じた確率が変化し、学習結果に応じた構成パターン選択が行われることになる。
【００２６】
なお、表示処理部２０５は、学習中及び学習後にユーザに随時構成パターンの情報を表示する。表示される情報としては、処理時点で選択されている構成パターンや、構成パターンの選択履歴、構成パターンの評価スコア一覧、評価スコアの履歴等が挙げられる。
【００２７】
以上のように、本実施形態に係る学習装置１００は、ミニバッチを用いた学習結果に基づいて、次の学習に利用する構成パターンを決定する。これにより、学習装置１００は、ミニバッチを構成する学習データをランダムに選択する場合に比べてより適切な学習データを利用した学習を行うことができる。これにより、最適解への収束が早く、より良い局所最適解へ収束しやすくなり、効率よく学習を進めることができる。
【００２８】
（第２の実施形態）
次に、第２の実施形態に係る学習装置１００について、第１の実施形態に係る学習装置１００と異なる点を主に説明する。第２の実施形態に係る学習装置１００は、学習セットの学習データを選択する際に、学習効果の高い学習データを優先的に選択することで、効率よく学習を行う。第２の実施形態においては、学習データは、評価スコアを含んでいる。学習データの評価スコアは、初期状態においてはすべて一律の値（初期値）であるものとする。
【００２９】
第２の実施形態においては、Ｓ３０６（図３）において、評価値更新部２０８は、評価セットの評価スコアの更新に加えて、学習データの評価スコアの更新を行う。学習データの評価スコアは、ミニバッチに含まれる評価セットの評価結果の変動に応じて決定される。ｋ回目の学習におけるミニバッチの評価結果（ここでは第１の実施形態と同様に評価セットの損失とする）をＬｋとすると、学習データｐの評価スコアｖｐは（式３）により得ることができる。
【数３】
2019185121.tif 000005
【００３０】
評価値更新部２０８は、前回の学習時のミニバッチにおける評価セットの損失の値（Ｌ＿（ｋ−１））を保持しておく。そして、今回の学習時のミニバッチにおける評価セットの損失（Ｌ＿ｋ）と比較して改善された（損失が小さくなった）場合は、評価値更新部２０８は、該ミニバッチに含まれる学習データは学習に有効な学習データとみなして評価スコアを高くする。一方、評価結果が劣化した（損失が大きくなった）場合は、評価値更新部２０８は、該ミニバッチに含まれる学習データは現状の学習状態に適していない学習データとみなして評価スコアを低くする。そして、ループ処理における２週目以降のＳ３０４の処理においては、評価スコアに基づいた確率を利用して、学習データの選択を行う。本処理は、構成パターン選択の処理と同様である。なお、第２の実施形態に係る学習装置１００のこれ以外の構成及び処理は、第１の実施形態に係る学習装置１００の構成及び処理と同様である。
【００３１】
以上のように、第２の実施形態の学習装置１００は、構成パターンだけでなく、学習データについても、学習結果に基づいて選択する。これにより、ミニバッチを構成する学習データをランダムに選択する場合に比べてより適切な学習データを利用した学習を行うことができる。
【００３２】
（第３の実施形態）
次に、第３の実施形態に係る学習装置１００について、他の実施形態と異なる点を主に説明する。第３の実施形態に係る学習装置１００は、ミニバッチの一部を評価セットとし、評価セットの評価スコアに基づいて構成パターンを選択するのに替えて、構成パターンを決定するエージェントを別途有するものとする。該エージェントによって構成パターンを決定することで、ミニバッチに含まれるすべての学習データを学習に使いつつ、適切な構成のミニバッチを用いて効率よく学習を行うことができる。
【００３３】
エージェントは、機械学習の一種である強化学習を利用して学習を行う。強化学習では、ある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する。強化学習は一連の行動を通じて最終的な報酬が最も多く得られるような方策を学習する手法である。深層学習と強化学習を組み合わせることで、多数の状態が存在する問題に対応した強化学習については、以下の非特許文献を参照することができる。
Ｖ  Ｍｎｉｈ，  ｅｔ  ａｌ．，  "Ｈｕｍａｎ−ｌｅｖｅｌ  ｃｏｎｔｒｏｌ  ｔｈｒｏｕｇｈ  ｄｅｅｐ  ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ"，  Ｎａｔｕｒｅ  ５１８  （７５４０），  ５２９−５３３
【００３４】
図６は、第３の実施形態に係る学習装置６００の機能構成図である。学習装置６００は、クラス情報取得部６０１と、基準設定部６０２と、パターン決定部６０３と、ミニバッチ生成部６０４と、学習部６０５と、学習結果記憶部６０６と、基準更新部６０７と、を有している。クラス情報取得部６０１は、各学習データからクラス情報を取得する。基準設定部６０２は、適切な構成パターンを決定するエージェントを設定する。本実施形態では、適切な構成パターンはエージェントによって随時更新されていく。パターン決定部６０３は、エージェントによって適切な構成パターンを１つ決定する。ミニバッチ生成部６０４は、決定された構成パターンにしたがって学習データを抽出し、抽出した学習データからミニバッチを生成する。
【００３５】
学習部６０５は、生成されたミニバッチを入力としてＤＮＮの重みを更新する。学習結果記憶部６０６は、学習部６０５による学習結果を、決定された構成パターンに対応付けて記憶する。基準更新部６０７は、学習結果記憶部６０６に記憶された要素を学習データとして、適切な構成パターンを決定するエージェントの学習を行い、エージェントを更新する。
【００３６】
図７は、第３の実施形態に係る学習装置６００による学習処理を示すフローチャートである。Ｓ７０１において、クラス情報取得部６０１は、クラス情報を取得する。本処理は、Ｓ３０１（図３）の処理と同様である。次に、Ｓ７０２において、基準設定部６０２は、エージェントの設定を行う。強化学習は、「ある状態（ｓ）」においてどのように「行動（ａ）」すればどういう報酬が得られるか（行動価値関数Ｑ（ｓ，ａ））を学習している。本実施形態では、状態として現在のＤＮＮの重みパラメータ、行動としてクラス比率ベクトル（例えば、Ｓ７０１で取得したクラス数が４である場合には、各要素が各クラスの比率である４次元ベクトル）を設定する。そして、一定期間学習した後のミニバッチの損失が最小になるように学習を行う。学習の期間についてはユーザが任意に決めてよい。本実施形態では、ユーザが設定した学習期間をエピソードと呼ぶ。
【００３７】
強化学習では、ある行動の結果によって一時的に得られる報酬ではなく、最終的に最も良い報酬が得られるように学習が行われる。即ち、ある構成パターンで学習した結果一時的に小さい損失が出ても行動価値関数は高い報酬を返さず、エピソード内の構成パターンの遷移によって最終的に損失が小さくなるような構成パターンの選択に対して高い報酬を返すように学習されることになる。
【００３８】
次に、Ｓ７０３において、パターン決定部６０３は、Ｓ７０２又はループ処理における１つ前のＳ７０８において設定されたエージェントにより適切な構成パターンを決定する。なお、１回目の処理では、まだ学習が行われていないため、パターン決定部６０３は、ランダムに構成パターンを決定する。このように、学習されたエージェントによって適切な構成パターンが自動的に決定（生成）される。次に、Ｓ７０４において、ミニバッチ生成部６０４は、Ｓ７０３において決定した構成パターンに基づいて、ミニバッチを生成する。本処理は、Ｓ３０４の処理とほぼ同様である。ただし、Ｓ７０４において生成されるミニバッチには、評価セットは含まれず、学習セットのみが含まれる。
【００３９】
次に、Ｓ７０５において、学習部６０５は、ＤＮＮの学習を行う。本処理は、Ｓ３０５（図３）の処理と同様である。次に、Ｓ７０６において、学習部６０５は、学習結果記憶部６０６に学習結果を記録する。記録される情報は、決定された構成パターン（行動）と、学習前のＤＮＮの重み係数（状態）と、学習によって変動したＤＮＮの重み係数（行動により遷移した状態）と、ミニバッチの損失（行動により得られた報酬）である。記録された情報（行動/状態/遷移後の状態/得られた報酬のペア）は随時蓄積されていき、強化学習における学習データとして利用される。
【００４０】
次に、Ｓ７０７において、基準更新部６０７は、ユーザが指定したエピソード終了条件が満たされているか否かを判定する。基準更新部６０７は、エピソード終了条件を満たす場合には（Ｓ７０７でＹＥＳ）、処理をＳ７０８へ進める。基準更新部６０７は、エピソード終了条件を満たさない場合には（Ｓ７０７でＮＯ）、処理をＳ７０３へ進め、処理を繰り返す。なお、エピソード終了条件は、ユーザにより設定された任意の条件である。エピソード終了条件は、例えば、「評価セットに対する精度が閾値以上向上する」、「所定の回数、学習処理を繰り返す」といった条件である。
【００４１】
Ｓ７０８において、基準更新部６０７は、学習結果記憶部６０６に記録された情報からランダムに一定数を取得し、エージェントの学習を行う。学習の処理は、既存の強化学習の手法と同様である。次に、Ｓ７０９において、学習部６０５は、処理を終了するか否かを判定する。本処理は、Ｓ３０７の処理と同様である。なお、第２の実施形態に係る学習装置６００のこれ以外の構成及び処理は、他の実施形態に係る学習装置１００の構成及び処理と同様である。
【００４２】
以上のように、第３の実施形態に係る学習装置６００は、エージェントにより構成パターンを決定することにより、ミニバッチに含まれるすべての学習データを学習に用いつつ、効率よく学習を行うことができる。
【００４３】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００４４】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４５】
１００  学習装置
２０２  パターン生成部
２０４  パターン決定部
２０６  ミニバッチ生成部
２０７  学習部
【図１】
2019185121.tif 000006
【図２】
2019185121.tif 000007
【図３】
2019185121.tif 000008
【図４】
2019185121.tif 000009
【図５】
2019185121.tif 000010
【図６】
2019185121.tif 000011
【図７】
2019185121.tif 000012