(57)【要約】【課題】畳み込み処理を含む学習器の判別精度を向上できる機械学習プログラム、機械学習方法および機械学習装置を提供する。【解決手段】機械学習プログラムは、畳み込み層を含む学習器を用いる。つまり、機械学習プログラムは、教師データの少なくとも一部、または、畳み込み層への入力データの少なくとも一部のデータに基づいて、学習器に含まれる、畳み込み層の処理内容に応じたサイズのフィルタを用いてデータ拡張した、拡張データを生成する処理をコンピュータに実行させる。機械学習プログラムは、教師データおよび拡張データを用いて、学習器の学習を行う処理をコンピュータに実行させる。【選択図】図１
2019185483.tif 000002
【特許請求の範囲】
【請求項１】
畳み込み層を含む学習器を用いた機械学習プログラムであって、
教師データの少なくとも一部、または、前記畳み込み層への入力データの少なくとも一部のデータに基づいて、前記学習器に含まれる、前記畳み込み層の処理内容に応じたサイズのフィルタを用いてデータ拡張した、拡張データを生成し、
前記教師データおよび前記拡張データを用いて、前記学習器の学習を行う、
処理をコンピュータに実行させる機械学習プログラム。
【請求項２】
前記生成する処理は、前記学習器の中間層のデータに対して前記フィルタを用いてデータ拡張した、前記拡張データを生成する、
請求項１に記載の機械学習プログラム。
【請求項３】
前記生成する処理は、前記学習器の入力層のデータに対して前記フィルタを用いてデータ拡張した、前記拡張データを生成する、
請求項１または２に記載の機械学習プログラム。
【請求項４】
前記生成する処理は、前記データをフーリエ変換し、ピークが立った周波数以上の成分を消去することでデータ拡張した、前記拡張データを生成する、
請求項１〜３のいずれか１つに記載の機械学習プログラム。
【請求項５】
前記生成する処理は、前記畳み込み層のスライド窓のサイズに応じたぼかし具合となるノイズを前記データに付加することでデータ拡張した、前記拡張データを生成する、
請求項１〜４のいずれか１つに記載の機械学習プログラム。
【請求項６】
前記生成する処理は、データ拡張が成功した、前記学習器の複数のパラメータのうち、損失関数の値が最も大きい前記パラメータを、前記学習器の学習の進み具合に応じて適用することで、前記拡張データを生成する、
請求項１〜５のいずれか１つに記載の機械学習プログラム。
【請求項７】
畳み込み層を含む学習器を用いた機械学習プログラムであって、
教師データの少なくとも一部、または、前記畳み込み層への入力データの少なくとも一部のデータに基づいて、前記学習器の識別対象のサイズに対応したサイズのフィルタを用いてデータ拡張した、拡張データを生成し、
前記教師データおよび前記拡張データを用いて、前記学習器の学習を行う、
処理をコンピュータに実行させる機械学習プログラム。
【請求項８】
前記生成する処理は、前記学習器の中間層のデータに対して前記フィルタを用いてデータ拡張した、前記拡張データを生成する、
請求項７に記載の機械学習プログラム。
【請求項９】
前記生成する処理は、前記学習器の入力層のデータに対して前記フィルタを用いてデータ拡張した、前記拡張データを生成する、
請求項７または８に記載の機械学習プログラム。
【請求項１０】
前記生成する処理は、前記データをフーリエ変換し、ピークが立った周波数以上の成分を消去することでデータ拡張した、前記拡張データを生成する、
請求項７〜９のいずれか１つに記載の機械学習プログラム。
【請求項１１】
前記生成する処理は、前記畳み込み層のスライド窓のサイズに応じたぼかし具合となるノイズを前記データに付加することでデータ拡張した、前記拡張データを生成する、
請求項７〜１０のいずれか１つに記載の機械学習プログラム。
【請求項１２】
前記生成する処理は、データ拡張が成功した、前記学習器の複数のパラメータのうち、損失関数が最も大きい前記パラメータを、前記学習器の学習の進み具合に応じて適用することで、前記拡張データを生成する、
請求項７〜１１のいずれか１つに記載の機械学習プログラム。
【請求項１３】
畳み込み層を含む学習器を用いた機械学習方法であって、
教師データの少なくとも一部、または、前記畳み込み層への入力データの少なくとも一部のデータに基づいて、前記学習器に含まれる、前記畳み込み層の処理内容に応じたサイズのフィルタを用いてデータ拡張した、拡張データを生成し、
前記教師データおよび前記拡張データを用いて、前記学習器の学習を行う、
処理をコンピュータが実行する機械学習方法。
【請求項１４】
畳み込み層を含む学習器を用いた機械学習方法であって、
教師データの少なくとも一部、または、前記畳み込み層への入力データの少なくとも一部のデータに基づいて、前記学習器の識別対象のサイズに対応したサイズのフィルタを用いてデータ拡張した、拡張データを生成し、
前記教師データおよび前記拡張データを用いて、前記学習器の学習を行う、
処理をコンピュータが実行する機械学習方法。
【請求項１５】
畳み込み層を含む学習器を用いた機械学習装置であって、
教師データの少なくとも一部、または、前記畳み込み層への入力データの少なくとも一部のデータに基づいて、前記学習器に含まれる、前記畳み込み層の処理内容に応じたサイズのフィルタを用いてデータ拡張した、拡張データを生成する生成部と、
前記教師データおよび前記拡張データを用いて、前記学習器の学習を行う学習部と、
を有する機械学習装置。
【請求項１６】
畳み込み層を含む学習器を用いた機械学習装置であって、
教師データの少なくとも一部、または、前記畳み込み層への入力データの少なくとも一部のデータに基づいて、前記学習器の識別対象のサイズに対応したサイズのフィルタを用いてデータ拡張した、拡張データを生成する生成部と、
前記教師データおよび前記拡張データを用いて、前記学習器の学習を行う学習部と、
を有する機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習プログラム、機械学習方法および機械学習装置に関する。
【背景技術】
【０００２】
機械学習において、教師データにノイズを加えることにより教師データを拡張し、学習を進めるデータ拡張（Data  Augmentation）技術が存在する。データ拡張としては、例えば、入力データや中間層出力データの要素ごとに独立なガウシアンノイズを加えることが知られている。また、教師データが自然画像である場合に、画像全体に対する明度、コントラストおよび色相を変化させることで、データ拡張を行うことが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−３４８９０６号公報
【特許文献２】特開２０１７−０５９０７１号公報
【特許文献３】特開２００８−２１９８２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、独立なガウシアンノイズが加わったデータによるデータ拡張を畳み込みニューラルネットワーク（ＣＮＮ：Convolutional  Neural  Network）に適用すると、ガウシアンノイズ特有の模様を学習してしまい判別精度が低下する。一方、ＣＮＮに入力するデータが自然画像である場合に、画像全体に対する明度等を変化させてデータ拡張を行おうとしても、学習したい要素、例えば被写体のバリエーションを増加させることは難しく、判別精度の向上は難しい。
【０００５】
一つの側面では、畳み込み処理を含む学習器の判別精度を向上できる機械学習プログラム、機械学習方法および機械学習装置を提供することにある。
【課題を解決するための手段】
【０００６】
一つの態様では、機械学習プログラムは、畳み込み層を含む学習器を用いる。つまり、機械学習プログラムは、教師データの少なくとも一部、または、前記畳み込み層への入力データの少なくとも一部のデータに基づいて、前記学習器に含まれる、前記畳み込み層の処理内容に応じたサイズのフィルタを用いてデータ拡張した、拡張データを生成する処理をコンピュータに実行させる。機械学習プログラムは、前記教師データおよび前記拡張データを用いて、前記学習器の学習を行う処理をコンピュータに実行させる。
【発明の効果】
【０００７】
畳み込み処理を含む学習器の判別精度を向上できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例の学習装置の構成の一例を示すブロック図である。
【図２】図２は、要素ごとに独立なガウシアンノイズを付加した場合の一例を示す図である。
【図３】図３は、畳み込み層の処理の一例を示す図である。
【図４】図４は、画像全体に対する明度やコントラストの変更の一例を示す図である。
【図５】図５は、空間的に相関のあるノイズを加える場合の一例を示す図である。
【図６】図６は、ノイズの付加の一例を示す図である。
【図７】図７は、識別対象のサイズに応じたパラメータ選択の一例を示す図である。
【図８】図８は、畳み込み層のスライド窓のサイズに応じたパラメータ選択の一例を示す図である。
【図９】図９は、具体例におけるパラメータ等の一例を示す図である。
【図１０】図１０は、具体例における学習後のテストデータに対する精度の一例を示す図である。
【図１１】図１１は、実施例の学習処理の一例を示すフローチャートである。
【図１２】図１２は、機械学習プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本願の開示する機械学習プログラム、機械学習方法および機械学習装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例】
【００１０】
図１は、実施例の学習装置の構成の一例を示すブロック図である。図１に示す学習装置１００は、畳み込み層を含む学習器を用いる機械学習装置の一例である。学習装置１００は、教師データの少なくとも一部、または、畳み込み層への入力データの少なくとも一部のデータに基づいて、学習器に含まれる、畳み込み層の処理内容に応じたサイズのフィルタを用いてデータ拡張した、拡張データを生成する。学習装置１００は、教師データおよび拡張データを用いて、学習器の学習を行う。これにより、学習装置１００は、畳み込み処理を含む学習器の判別精度を向上できる。
【００１１】
まず、図２から図４を用いて、ノイズの付加と畳み込み層の処理について説明する。図２は、要素ごとに独立なガウシアンノイズを付加した場合の一例を示す図である。図２に示すグラフ１０は、入力データを示すグラフである。グラフ１０に示す入力データに対して、要素ごとに独立なガウシアンノイズを付加すると、例えばグラフ１１に示すようになる。なお、入力データが画像の場合には、ピクセルごとに独立なガウシアンノイズを付加することになる。なお、以下の説明では、ガウシアンノイズを単にノイズとも表現する。
【００１２】
要素ごとに独立なガウシアンノイズの付加は、畳み込み層を有するニューラルネットワークに対しては効果が弱くなる。つまり、画像認識や物体検出に用いられるＣＮＮは、空間的に連続している自然画像を入力データとするので、要素（ピクセル）ごとに独立なガウシアンノイズを付加するのは、実際に有りそうなデータから離れてしまい不適切である。また、畳み込み層の学習では、画像のテクスチャを特徴として学習するので、ガウシアンノイズ特有の模様を学習してしまい、推論時にもガウシアンノイズを加えないと機能しなくなる。すなわち、要素ごとに独立なガウシアンノイズの付加は、本来学習すべき特徴であるグラフ１０に対して、グラフ１１のようなザラついた特徴、例えば砂嵐を重畳したような画像を学習してしまうことになる。
【００１３】
図３は、畳み込み層の処理の一例を示す図である。図３は、入力画像１２に対してフィルタ１３を用いて畳み込み処理を行って出力画像１４を得る場合を表す。図３の例では、入力画像１２の各チャンネルに対して個別に畳み込み処理を行い、畳み込み後の値を全て足して出力画像１４の１要素とする。このとき、畳み込み処理のフィルタ１３は、学習によって決定する。フィルタ１３の個数は、（入力画像１２のチャンネル数）×（出力画像１４のチャンネル数）によって求められる。このように、畳み込み層では、フィルタ１３の範囲内の局所的な特徴が学習されることになる。つまり、入力画像１２における隣り合った画素の関係等が重要になる。従って、要素ごとに独立なガウシアンノイズの付加は、隣り合った要素が、ノイズの範囲で必ず異なることを学習してしまい、本来学習すべき自然画像の連続的な特徴が学習出来なくなる。また、中間画像では、ピクセルごとにノイズを加えると、抽出した境界が崩れることになる。
【００１４】
図４は、画像全体に対する明度やコントラストの変更の一例を示す図である。図４の例では、入力データ１５に対して、明度、コントラストおよび色相を変化させることで、入力データ１６〜１８を得ている。入力データ１６〜１８は、入力データ１５の画像全体としてのバリエーションとなるが、例えば、服の模様や木の影といったバリエーションは生成出来ないため、これらを認識対象としたい場合に精度を伸ばせない。つまり、図４の例では、入力データの細かな変化に対応するためのデータを生成することが難しい。
【００１５】
次に、学習装置１００の構成について説明する。図１に示すように、学習装置１００は、通信部１１０と、表示部１１１と、操作部１１２と、記憶部１２０と、制御部１３０とを有する。なお、学習装置１００は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
【００１６】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、図示しないネットワークを介して他の情報処理装置と有線または無線で接続され、他の情報処理装置との間で情報の通信を司る通信インタフェースである。通信部１１０は、例えば、他の端末から学習用の教師データや判別対象の新規データを受信する。また、通信部１１０は、他の端末に、学習結果や判別結果を送信する。
【００１７】
表示部１１１は、各種情報を表示するための表示デバイスである。表示部１１１は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部１１１は、制御部１３０から入力された表示画面等の各種画面を表示する。
【００１８】
操作部１１２は、学習装置１００のユーザから各種操作を受け付ける入力デバイスである。操作部１１２は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部１１２は、ユーザによって入力された操作を操作情報として制御部１３０に出力する。なお、操作部１１２は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部１１１の表示デバイスと、操作部１１２の入力デバイスとは、一体化されるようにしてもよい。
【００１９】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、教師データ記憶部１２１と、パラメータ記憶部１２２と、学習モデル記憶部１２３とを有する。また、記憶部１２０は、制御部１３０での処理に用いる情報を記憶する。
【００２０】
教師データ記憶部１２１は、例えば、通信部１１０を介して入力された学習対象の教師データを記憶する。教師データ記憶部１２１には、例えば、所定サイズのカラー画像のデータ群を、教師データとして記憶する。
【００２１】
パラメータ記憶部１２２は、学習器の各種パラメータやノイズ変換パラメータを記憶する。学習器の各種パラメータは、例えば、畳み込み層や全結合層の初期パラメータが挙げられる。ノイズ変換パラメータは、例えば、ガウシアンフィルタのパラメータ等が挙げられる。
【００２２】
学習モデル記憶部１２３は、教師データと、データ拡張を行った拡張データとを深層学習した学習モデルを記憶する。学習モデルは、例えば、ニューラルネットワークの各種パラメータ（重み係数）等を記憶する。つまり、学習モデル記憶部１２３は、畳み込み層や全結合層の学習後のパラメータを記憶する。
【００２３】
制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。
【００２４】
制御部１３０は、生成部１３１と、第１学習部１３２と、第２学習部１３３とを有し、以下に説明する情報処理の機能や作用を実現または実行する。ここで、第１学習部１３２および第２学習部１３３は、ＣＮＮの学習器である。ここで、学習器は、例えば学習プログラムとして実現され、学習プロセス、学習機能等と言い替えてもよい。第１学習部１３２は、畳み込み層学習部に相当し、第２学習部１３３は、全結合層学習部に相当する。なお、制御部１３０の内部構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００２５】
生成部１３１は、例えば、通信部１１０を介して、管理者などの端末から学習用の教師データを受信して取得する。生成部１３１は、取得した教師データを教師データ記憶部１２１に記憶する。また、生成部１３１は、教師データ記憶部１２１を参照し、教師データに基づいて、ノイズ変換パラメータを設定する。生成部１３１は、設定したノイズ変換パラメータをパラメータ記憶部１２２に記憶するとともに、第１学習部１３２および第２学習部１３３に設定する。
【００２６】
ここで、図５および図６を用いてノイズの付加について説明する。図５は、空間的に相関のあるノイズを加える場合の一例を示す図である。図５に示すように、生成部１３１は、例えば、入力データ１５に対して、自然画像と同じく連続性のあるノイズ１９を付加し、拡張データ２０を生成する。ノイズ１９は、空間的に相関のあるノイズ、つまり、ぼかしたようなノイズともいえる。拡張データ２０は、自然画像として不自然でない画像になるため、データ拡張としても効果が出やすくなる。また、ノイズ１９は、入力データ１５のテクスチャを大きく変えてしまうことがないため、学習への悪影響が少ない。すなわち、ノイズ１９を付加することで、図４に示す画像全体に対する明度やコントラストの変更によるバリエーションの生成に比べて、より細かい部分のバリエーションを生成することができる。
【００２７】
図６は、ノイズの付加の一例を示す図である。図６の例では、生成部１３１は、グラフ２１に示す標準正規分布であるガウシアンノイズε０に対して、下記の式（１）を用いて、ぼかして正規化したノイズεを算出する。グラフ２２は、ノイズεを示す。なお、ノイズεは、ノイズの付加対象のチャンネルごとに生成する。チャンネルは、カラー画像の教師データであれば、例えば、ＲＧＢ（Red，Green，Blue）の３つのチャンネルである。また、チャンネルは、中間層出力の中間画像であれば、例えば、ＣＮＮの構成に応じて百〜千個程度のチャンネルである。
【００２８】
【数１】
2019185483.tif 000003
【００２９】
ここで、Normalize（・）は、平均０，分散１に正規化する関数であり、Blur（・）は、空間的にぼかす関数である。また、Ｎ（０，１）は、標準正規分布を示し、Ｗ，Ｈは、ノイズを付加する画像またはＣＮＮの中間層出力の中間画像における幅および高さを示す。なお、Blur（・）は、ＤＮＮ（Deep  Neural  Network）の学習でよく用いられるＧＰＵ（Graphics  Processing  Unit）で高速に計算できるように、畳み込みガウシアンフィルタ、または、畳み込みガウシアンフィルタの近似によって行うことができる。畳み込みガウシアンフィルタの近似は、スライド窓による平均処理（Average  pooling）を数回適用することで行うことができる。
【００３０】
次に、生成部１３１は、グラフ２３に示すノイズ付加の対象であるデータｘに対して、下記の式（２）を用いて、ノイズεを付加する。ここで、σは、ノイズの強さを表すパラメータである。また、グラフ２４は、ノイズが付加されたデータを示す。
【００３１】
【数２】
2019185483.tif 000004
【００３２】
生成部１３１は、空間的なぼかし具合に対応するパラメータ（ガウシアンフィルタの分散やスライド窓の大きさ）について、ノイズの付加方法ごとに設定する。なお、空間的なぼかし具合に対応するパラメータは、ノイズ変換パラメータの一例である。
【００３３】
ノイズの付加方法は、例えば、大きく４つの方法が挙げられる。これらの方法を以下の説明では、方法（１）〜（４）と表現する。方法（１）は、事前に注目したい物体の画像内での大きさを決めておき、決めた大きさと同じくらいの空間的な分散となるようにパラメータを設定する。つまり、方法（１）は、識別対象のサイズに応じたパラメータを選択する。
【００３４】
図７は、識別対象のサイズに応じたパラメータ選択の一例を示す図である。図７は、方法（１）の一例であり、例えば、樹木の陰影によって種類を認識したい場合、つまり認識対象が明らかな場合に、その特徴が変わるようなパラメータを選択する。図７に示すデータ２５では、認識対象の樹木に対応する領域２５ａに注目すると、ぼかし具合が細かすぎるため、認識対象の特徴が残らない。データ２６では、同様に領域２６ａに注目すると、ぼかし具合が丁度よく、認識対象にある程度のバリエーションが出る。データ２７では、同様に領域２７ａに注目すると、ぼかし具合が粗すぎるため、認識対象の特徴にほとんど変化がない。従って、図７の例では、生成部１３１は、データ２６に対応するパラメータを選択する。
【００３５】
次に、方法（２）は、ノイズ付加対象の画像（教師データ）、または、中間層出力の中間画像をフーリエ変換し、ピークが立った周波数に対応する空間的な分散となるようにパラメータを設定する。つまり、方法（２）は、フーリエ変換でピークが立った周波数以上の成分を消去するようにパラメータを設定する。方法（２）は、画像内にパターンやテクスチャがある場合に有効である。方法（２）では、ガウシアンフィルタの場合、カットオフ周波数ｆｃが下記の式（３）であるので、σは、下記の式（４）に示すようにすることができる。ここで、Ｆｓは、サンプリング周波数を示す。
【００３６】
ｆｃ  ＝  Ｆｓ  ／  ２πσ                              ・・・（３）
σ  ＝  （画像の高さまたは幅）／２π（ピーク周波数）    ・・・（４）
【００３７】
次に、方法（３）は、畳み込み層のパラメータ、つまり畳み込み処理のフィルタサイズ（スライド窓のサイズ）に応じてノイズのパラメータを設定する。方法（３）では、フィルタの対象となる範囲で、ある程度変化のあるノイズとなるようにノイズのパラメータを設定する。
【００３８】
図８は、畳み込み層のスライド窓のサイズに応じたパラメータ選択の一例を示す図である。図８は、方法（３）の一例であり、例えば、樹木の陰影によって種類を認識したい場合、スライド窓の範囲内である程度変化のあるノイズとなるようにノイズのパラメータを設定する。図８に示すデータ２８では、スライド窓２８ａに注目すると、ぼかし具合が細かすぎるため、ノイズの特徴を学習してしまう。データ２９では、同様にスライド窓２９ａに注目すると、ぼかし具合が丁度よく、畳み込みフィルタの範囲内でバリエーションが出る。データ３０では、同様にスライド窓３０ａに注目すると、ぼかし具合が粗すぎるため、１回の畳み込み処理内で見ると、ノイズの影響がほとんどない。従って、図８の例では、生成部１３１は、データ２９に対応するノイズのパラメータを設定する。なお、スライド窓２８ａ〜３０ａは、１回の畳み込み処理の対象となる範囲であり、大きさは、畳み込み処理のフィルタサイズ×フィルタサイズとなる。
【００３９】
また、上述の方法（１）〜（３）は、組み合わせてもよく、例えば、ＣＮＮの入力層に近い部分では、方法（１），（２）を用いて、入力データに対して注目し、ぼかし具合を設定する。また、ＣＮＮの深い層では、畳み込み層のフィルタサイズに注目して、ぼかし具合を設定する。深い層では、一般にプーリング処理等で画像サイズが小さくなっており、細かいノイズは入れにくいためである。また、深い層では、各要素にどのような特徴量が作られるか不明であるためである。
【００４０】
続いて、方法（４）は、いくつかのぼかし具合に関するパラメータの候補を用意しておき、それぞれ適用してみた上で、最も損失関数が大きくなったパラメータを採用する。なお、損失関数は、本来のタスク、例えば画像認識や物体検出の損失関数である。方法（４）は、これを学習のイテレーションごとに実施する。
【００４１】
また、教師データに対する損失関数の値は、大小によって次のようなことを示唆する。損失関数の値が「非常に小さい」場合は、過学習、つまり教師データに対する過適応の可能性がある。損失関数の値が「小さい」場合は、学習が進んでいるが、過学習の傾向がある。損失関数の値が「大きい」場合は、学習が進んでおり、過学習も抑えられている。損失関数の値が「非常に大きい」場合は、学習が進んでいない場合である。なお、本当に過学習が抑えられているか評価するためには、教師データに含まれない検証データ（validation  data）に対する損失関数の値が大きくなっていないかを見ることが求められる。上述の損失関数の大小は、教師データに対する損失関数を見た場合の傾向を示すものである。また、損失関数の値が「大きい」場合とは、データ拡張が成功した複数のパラメータの候補うち、損失関数が最も大きいパラメータである場合を含む。なお、損失関数の値が「非常に大きい」場合とは、データ拡張が失敗している場合である。
【００４２】
従って、方法（４）では、損失関数の値がある程度大きくなるパラメータを選択することで、過学習を抑制する効果が期待できる。すなわち、方法（４）では、学習の進み具合に応じて損失関数の値がある程度大きくなるパラメータが変化するため、学習の進み具合に応じてパラメータを切り替える。これにより、方法（４）では、ＮＮが苦手なノイズを積極的に入れることができ、汎化性能の向上が期待できる。ここで、パラメータの選択は、損失関数の値が「非常に大きい」とならずに、ある程度「大きい」となることを担保するために、ぼかし具合のパラメータ候補は、方法（１）〜（３）を用いる等により適当に設定することが求められる。また、方法（４）を方法（１）〜（３）と比較すると、方法（１）〜（３）が事前にぼかし具合のパラメータを固定するのに対して、方法（４）では、学習中にぼかし具合のパラメータを、学習の進み具合に応じて、その時々に適切な値を設定して変化させる。
【００４３】
生成部１３１は、上述の方法（１）〜（４）のうちいずれかの方法、または、これらの組み合わせを選択することで、ノイズの付加方法を選択する。なお、ノイズの付加方法は、例えば、予め設定された条件、例えば教師データの解像度および枚数やＣＮＮの構造等に応じて、生成部１３１が選択するようにしてもよいし、学習装置１００のユーザから受け付けるようにしてもよい。
【００４４】
生成部１３１は、選択したノイズの付加方法に応じて、学習器のパラメータを設定する。生成部１３１は、学習器のパラメータのうち、畳み込み層に関するパラメータを第１学習部１３２に設定する。また、生成部１３１は、学習器のパラメータのうち、全結合層に関するパラメータを第２学習部１３３に設定する。さらに、生成部１３１は、設定するパラメータをパラメータ記憶部１２２に記憶する。すなわち、生成部１３１は、教師データを各種パラメータに従ってデータ拡張した、拡張データを生成する。生成部１３１は、パラメータの設定が完了すると、第１学習部１３２に学習の開始を指示する。
【００４５】
言い換えると、生成部１３１は、教師データの少なくとも一部、または、畳み込み層への入力データの少なくとも一部のデータに基づいて、学習器に含まれる、畳み込み層の処理内容に応じたサイズのフィルタを用いてデータ拡張した、拡張データを生成する。また、生成部１３１は、学習器の中間層のデータに対してフィルタを用いてデータ拡張した、拡張データを生成する。また、生成部１３１は、学習器の入力層のデータに対してフィルタを用いてデータ拡張した、拡張データを生成する。また、生成部１３１は、データをフーリエ変換し、ピークが立った周波数以上の成分を消去することでデータ拡張した、拡張データを生成する。また、生成部１３１は、畳み込み層のスライド窓のサイズに応じたぼかし具合となるノイズをデータに付加することでデータ拡張した、拡張データを生成する。また、生成部１３１は、データ拡張が成功した、学習器の複数のパラメータのうち、損失関数の値が最も大きいパラメータを、学習器の学習の進み具合に応じて適用することで、拡張データを生成する。また、生成部１３１は、教師データの少なくとも一部、または、畳み込み層への入力データの少なくとも一部のデータに基づいて、学習器の識別対象のサイズに対応したサイズのフィルタを用いてデータ拡張した、拡張データを生成する。
【００４６】
図１の説明に戻って、第１学習部１３２は、ＣＮＮの学習器のうち、畳み込み層学習部である。第１学習部１３２は、生成部１３１から入力された畳み込み層に関するパラメータを畳み込み層に設定する。第１学習部１３２は、生成部１３１から学習の開始が指示されると、教師データ記憶部１２１を参照し、教師データを学習する。すなわち、第１学習部１３２は、教師データと、各パラメータによってデータ拡張された拡張データとを学習する。第１学習部１３２は、畳み込み層の学習が完了すると、学習中のデータを第２学習部１３３に出力する。
【００４７】
第２学習部１３３は、ＣＮＮの学習器のうち、全結合層学習部である。第２学習部１３３は、生成部１３１から入力された全結合層に関するパラメータを畳み込み層に設定する。第２学習部１３３は、第１学習部１３２から学習中のデータが入力されると、当該学習中のデータを学習する。すなわち、第２学習部１３３は、データ拡張された学習中のデータを学習する。第１学習部１３２および第２学習部１３３は、全結合層の学習が完了すると、学習モデルを学習モデル記憶部１２３に記憶する。すなわち、第１学習部１３２および第２学習部１３３は、教師データおよび拡張データを用いて、学習器の学習を行って学習モデルを生成する。
【００４８】
ここで、図９および図１０を用いて具体例におけるデータセットおよびパラメータと、テストデータに対する精度について説明する。図９は、具体例におけるパラメータ等の一例を示す図である。図９に示す具体例は、データセットにＣＩＦＡＲ−１０を用いる。ＣＩＦＡＲ−１０は、３２×３２ピクセルのＲＧＢカラー画像が６００００枚あり、１０クラス分類問題である。ＤＮＮ（ＣＮＮ）の構造は、上述の方法（３）に対応する。ぼかし方（ぼかし具合）は、図９に示すように、「ぼかしなし」、「2x2  average  poolingを２回適用」、「3x3  average  poolingを２回適用」、「4x4  average  poolingを２回適用」の4種類とした。
【００４９】
図１０は、具体例における学習後のテストデータに対する精度の一例を示す図である。図１０は、学習装置１００において、図９に示す４種類のぼかし方のそれぞれに対応する学習モデルを生成し、各学習モデルを用いてテストデータを判別した場合の判別精度を示すものである。図１０に示すように、ぼかしなしの場合に比べて、ぼかしありの場合の方が高精度となっている。また、ぼかし方によって判別精度に差が出ることがわかる。図９および図１０の場合は、「2x2  average  poolingを２回適用」が最も高精度であった。つまり、本具体例では、「2x2  average  poolingを２回適用」が、データセット、タスクおよびネットワーク構造と相性がよかったといえる。なお、ＤＮＮ（ＣＮＮ）では、１％の精度の違いは十分大きいものとして考えてよい。
【００５０】
次に、実施例の学習装置１００の動作について説明する。図１１は、実施例の学習処理の一例を示すフローチャートである。
【００５１】
生成部１３１は、例えば、他の端末から学習用の教師データを受信して取得する。生成部１３１は、取得した教師データを教師データ記憶部１２１に記憶する。生成部１３１は、上述の方法（１）〜（４）に基づいて、ノイズの付加方法を選択する（ステップＳ１）。
【００５２】
生成部１３１は、選択したノイズの付加方法に応じて、学習器のパラメータを設定する（ステップＳ２）。つまり、生成部１３１は、学習器のパラメータのうち、畳み込み層に関するパラメータを第１学習部１３２に設定し、全結合層に関するパラメータを第２学習部１３３に設定する。また、生成部１３１は、設定するパラメータをパラメータ記憶部１２２に記憶する。生成部１３１は、パラメータの設定が完了すると、第１学習部１３２に学習の開始を指示する。
【００５３】
第１学習部１３２および第２学習部１３３は、生成部１３１から入力された各パラメータを設定する。第１学習部１３２は、生成部１３１から学習の開始が指示されると、教師データ記憶部１２１を参照し、教師データを学習する（ステップＳ３）。第１学習部１３２は、畳み込み層の学習が完了すると、学習中のデータを第２学習部１３３に出力する。第２学習部１３３は、第１学習部１３２から学習中のデータが入力されると、当該学習中のデータを学習する。第１学習部１３２および第２学習部１３３は、全結合層の学習が完了すると、学習モデルを学習モデル記憶部１２３に記憶する（ステップＳ４）。これにより、学習装置１００は、畳み込み処理を含む学習器の判別精度を向上できる。すなわち、学習装置１００は、ＤＮＮ（ＣＮＮ）の畳み込み層に対して、入力全体に対する変更だけでないデータ拡張を行うことができる。また、学習装置１００は、ＤＮＮ（ＣＮＮ）の畳み込み層に対して、学習に悪影響を与えないノイズを付与することができる。つまり、学習装置１００は、過学習がより抑制できる。
【００５４】
このように、学習装置１００は、畳み込み層を含む学習器を用いる。つまり、学習装置１００は、教師データの少なくとも一部、または、畳み込み層への入力データの少なくとも一部のデータに基づいて、学習器に含まれる、畳み込み層の処理内容に応じたサイズのフィルタを用いてデータ拡張した、拡張データを生成する。また、学習装置１００は、教師データおよび拡張データを用いて、学習器の学習を行う。その結果、学習装置１００は、畳み込み処理を含む学習器の判別精度を向上できる。
【００５５】
また、学習装置１００は、学習器の中間層のデータに対してフィルタを用いてデータ拡張した、拡張データを生成する。その結果、学習装置１００は、畳み込み処理を含む学習器の判別精度を向上できる。
【００５６】
また、学習装置１００は、学習器の入力層のデータに対してフィルタを用いてデータ拡張した、拡張データを生成する。その結果、学習装置１００は、畳み込み処理を含む学習器の判別精度を向上できる。
【００５７】
また、学習装置１００は、データをフーリエ変換し、ピークが立った周波数以上の成分を消去することでデータ拡張した、拡張データを生成する。その結果、学習装置１００は、認識対象がパターンやテクスチャを持つ場合に判別精度を向上できる。
【００５８】
また、学習装置１００は、畳み込み層のスライド窓のサイズに応じたぼかし具合となるノイズをデータに付加することでデータ拡張した、拡張データを生成する。その結果、学習装置１００は、畳み込み層の深い層にノイズを付加してデータ拡張できる。
【００５９】
また、学習装置１００は、データ拡張が成功した、学習器の複数のパラメータのうち、損失関数の値が最も大きいパラメータを、学習器の学習の進み具合に応じて適用することで、拡張データを生成する。その結果、学習装置１００は、学習器の汎化性能を向上できる。
【００６０】
また、学習装置１００は、畳み込み層を含む学習器を用いる。つまり、学習装置１００は、教師データの少なくとも一部、または、畳み込み層への入力データの少なくとも一部のデータに基づいて、学習器の識別対象のサイズに対応したサイズのフィルタを用いてデータ拡張した、拡張データを生成する。また、学習装置１００は、教師データおよび拡張データを用いて、学習器の学習を行う。その結果、学習装置１００は、畳み込み処理を含む学習器の判別精度を向上できる。
【００６１】
なお、上記実施例で挙げたニューラルネットワークは、例えば入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。
【００６２】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第１学習部１３２と第２学習部１３３とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【００６３】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【００６４】
ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１２は、機械学習プログラムを実行するコンピュータの一例を示す図である。
【００６５】
図１２に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線または無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【００６６】
ハードディスク装置２０８には、図１に示した生成部１３１、第１学習部１３２および第２学習部１３３の各処理部と同様の機能を有する機械学習プログラムが記憶される。また、ハードディスク装置２０８には、教師データ記憶部１２１、パラメータ記憶部１２２、学習モデル記憶部１２３、および、機械学習プログラムを実現するための各種データが記憶される。入力装置２０２は、例えば、コンピュータ２００の管理者から操作情報等の各種情報の入力を受け付ける。モニタ２０３は、例えば、コンピュータ２００の管理者に対して表示画面等の各種画面を表示する。インタフェース装置２０５は、例えば印刷装置等が接続される。通信装置２０６は、例えば、図１に示した通信部１１０と同様の機能を有し図示しないネットワークと接続され、他の情報処理装置と各種情報をやりとりする。
【００６７】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図１に示した生成部１３１、第１学習部１３２および第２学習部１３３として機能させることができる。
【００６８】
なお、上記の機械学習プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤ（Digital  Versatile  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの機械学習プログラムを記憶させておき、コンピュータ２００がこれらから機械学習プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００６９】
１００  学習装置
１１０  通信部
１１１  表示部
１１２  操作部
１２０  記憶部
１２１  教師データ記憶部
１２２  パラメータ記憶部
１２３  学習モデル記憶部
１３０  制御部
１３１  生成部
１３２  第１学習部
１３３  第２学習部
【図１】
2019185483.tif 000005
【図２】
2019185483.tif 000006
【図３】
2019185483.tif 000007
【図４】
2019185483.tif 000008
【図５】
2019185483.tif 000009
【図６】
2019185483.tif 000010
【図７】
2019185483.tif 000011
【図８】
2019185483.tif 000012
【図９】
2019185483.tif 000013
【図１０】
2019185483.tif 000014
【図１１】
2019185483.tif 000015
【図１２】
2019185483.tif 000016