(57)【要約】【課題】学習結果の精度を向上させる。【解決手段】学習装置は、多層ニューラルネットワークの係数を正則化によって学習する学習実行部と、前記学習が進行しているか否かを判定する判定部と、前記学習が進行している場合、正則化の効果を減少させる変更部と、を備える。【選択図】図３
2017097585.tif 000002
【特許請求の範囲】
【請求項１】
多層ニューラルネットワークの係数を正則化によって学習する学習実行部と、
前記学習が進行しているか否かを判定する判定部と、
前記学習が進行している場合、正則化の効果を減少させる変更部と、
を備える学習装置。
【請求項２】
前記変更部は、前記学習が進行している場合、前記学習の学習率を減少させるとともに、前記正則化の効果を減少させる
請求項１に記載の学習装置。
【請求項３】
前記変更部は、前記正則化に用いられる正則化項の係数である正則化係数を減少させることによって、前記正則化の効果を減少させる
請求項１に記載の学習装置。
【請求項４】
前記変更部は、ＤＲＯＰＯＵＴの割合を減少させることによって、前記正則化の効果を減少させる
請求項１に記載の学習装置。
【請求項５】
前記変更部は、ＤＲＯＰＣＯＮＮＥＣＴの割合を減少させることによって、前記正則化の効果を減少させる
請求項１に記載の学習装置。
【請求項６】
前記多層ニューラルネットワークは、Ｃｏｎｖｏｌｕｔｉｏｎａｌニューラルネットワークである
請求項１から５のいずれか１項に記載の学習装置。
【請求項７】
前記多層ニューラルネットワークは、積層オートエンコーダ（Stacked Autoencoder）である
請求項１から５のいずれか１項に記載の学習装置。
【請求項８】
前記多層ニューラルネットワークは、リカレントニューラルネットワーク（Recurrent Neural Network）である
請求項１から５のいずれか１項に記載の学習装置。
【請求項９】
前記学習実行部は、確率的勾配降下法によって、前記係数を学習する
請求項１から８のいずれか１項に記載の学習装置。
【請求項１０】
多層ニューラルネットワークの係数を正則化によって学習する学習実行機能と、
前記学習が進行しているか否かを判定する判定機能と、
前記学習が進行している場合、正則化の効果を減少させる変更機能と、
をコンピュータに機能させるプログラム。
【請求項１１】
学習装置で実行される学習方法であって、
多層ニューラルネットワークの係数を正則化によって学習する学習実行段階と、
前記学習が進行しているか否かを判定する判定段階と、
前記学習が進行している場合、正則化の効果を減少させる変更段階と、
を備える学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、プログラム及び学習方法に関する。
【背景技術】
【０００２】
機械学習を用いて、物体の識別等を行う方法が多数提案されている。これらの提案の中でも、深い階層を持つ、ニューラルネットワークを用いた機械学習（深層学習:Deep Learning）が高い識別性能を有することが知られている。しかしながら、深い階層を持つニューラルネットワークの学習方法の性能はまだ十分でないといった問題がある。
【０００３】
そこで、特許文献１には、ニューラルネットワークの学習において、良好な学習を行う目的で、損失関数に正則化項を付加する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の技術では、正則化項の大きさは学習の進み具合によらず一定であり、最終的に得られる学習結果の精度に限界があるといった課題がある。
【０００５】
本発明は、上記に鑑みてなされたものであって、学習結果の精度を向上させる学習装置、プログラム及び学習方法を提供する。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の学習装置は、多層ニューラルネットワークの係数を正則化によって学習する学習実行部と、前記学習が進行しているか否かを判定する判定部と、前記学習が進行している場合、正則化の効果を減少させる変更部と、を備える。
【発明の効果】
【０００７】
本発明は、学習結果の精度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報処理装置のハードウェア構成図である。
【図２】図２は、機械学習アルゴリズムの概要を説明する図である。
【図３】図３は、実施形態に係る情報処理装置の機能ブロック図である。
【図４】図４は、多層ニューラルネットワークを説明する図である。
【図５】図５は、学習実行部の学習におけるオートエンコーダを説明する図である。
【図６】図６は、学習実行部による積層オートエンコーダを説明する図である。
【図７】図７は、学習対象として単純化したニューラルネットワークの一例を説明する図である。
【図８】図８は、学習部による学習処理のフローチャートである。
【発明を実施するための形態】
【０００９】
以下の例示的な実施形態や変形例には、同様の構成要素が含まれている。よって、以下では、同様の構成要素には共通の符号が付されるとともに、重複する説明が部分的に省略される。実施形態や変形例に含まれる部分は、他の実施形態や変形例の対応する部分と置き換えて構成されることができる。また、実施形態や変形例に含まれる部分の構成や位置等は、特に言及しない限りは、他の実施形態や変形例と同様である。
【００１０】
＜実施形態＞
図１は、実施形態に係る情報処理装置１０のハードウェア構成図である。情報処理装置１０は、例えばパーソナルコンピュータ等であってよいが、限定されるものではない。
【００１１】
図１に示すように、情報処理装置１０は、学習装置の一例であって、ＣＰＵ（Central Processing Unit）１１と、ＨＤＤ（Hard Disk Drive）１２と、ＲＡＭ（Random Access Memory）１３と、ＲＯＭ（Read Only Memory）１４と、入力装置１５と、表示装置１６と、外部Ｉ／Ｆ１７と、被写体を撮像する撮像装置１８と、バス１９とを備える。ＣＰＵ１１、ＨＤＤ１２、ＲＡＭ１３、ＲＯＭ１４、入力装置１５、表示装置１６、外部Ｉ／Ｆ１７、及び、撮像装置１８は、バス１９で互いに接続されている。
【００１２】
ＣＰＵ１１は、ＲＯＭ１４及びＨＤＤ１２等の記憶装置からプログラム及びデータ等をＲＡＭ１３上に読み出し、プログラムの処理を実行することで、情報処理装置１０全体の制御及び機能等を実現する演算装置である。
【００１３】
ＨＤＤ１２は、プログラム及びデータ等を格納している不揮発性の記憶装置である。格納されるプログラム及びデータ等には、例えば、本実施形態を実現するためのプログラム、情報処理装置１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。ＨＤＤ１２は格納しているプログラム及びデータ等を所定のファイルシステム及びＤＢ（データベース）等により管理している。なお、情報処理装置１０は、ＨＤＤ１２の代わりに又はＨＤＤ１２と併せて、ＳＳＤ（Solid State Drive）等を備えていてもよい。
【００１４】
ＲＡＭ１３は、プログラム及びデータ等を一時保持する揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１４は、電源を切ってもプログラム及びデータ等を保持することができる不揮発性の半導体メモリ（記憶装置）である。
【００１５】
入力装置１５は、ユーザが各種操作信号を入力するのに用いられる装置である。入力装置１５は、例えば、各種操作ボタン、タッチパネル、キーボード、マウス等である。
【００１６】
表示装置１６は、情報処理装置１０による処理結果を表示する装置である。表示装置１６は、例えば、ディスプレイ等である。
【００１７】
外部Ｉ／Ｆ１７は、外部装置とのインターフェースである。外部装置の一例は、ＵＳＢ（Universal Serial Bus）メモリ、ＳＤカード、ＣＤ、ＤＶＤ等である。
【００１８】
図２は、機械学習アルゴリズムの概要を説明する図である。
【００１９】
図２に示すように、情報処理装置１０は、機械学習アルゴリズムの学習時において、入力データと、入力データに対応する正解データである教師データを取得する。情報処理装置１０は、入力データと教師データとを用いて、ニューラルネットワークが入力データから出力データを演算する際に使用する係数を機械学習アルゴリズムに学習させて、係数を最適化する。機械学習アルゴリズムは、予測時には学習が終わって最適化された係数を用いて、入力データの識別を行い、予測結果を出力データとして出力する。実施形態による情報処理装置１０は、これらの処理のうち、係数の学習時の機械学習、特に多層ニューラルネットワークのパラメータの最適化に関する。
【００２０】
図３は、実施形態に係る情報処理装置１０の機能ブロック図である。
【００２１】
図３に示すように、情報処理装置１０は、ニューラルネットワーク２０と、学習部２２とを備える。尚、ニューラルネットワーク２０は、他の情報処理装置等に設けてもよい。学習部２２は、学習実行部２４と、判定部２６と、変更部２８と、記憶部３０とを備える。情報処理装置１０は、ＣＰＵ１１が、ＨＤＤ１２、ＲＯＭ１４及び外部の記憶装置等に記憶されたプログラムを読み込むことによって、ニューラルネットワーク２０及び学習部２２として機能する。本実施形態の情報処理装置１０で実行されるプログラムは、上述したニューラルネットワーク２０及び学習部２２を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ１１が主記憶装置として機能するＨＤＤ１２及びＲＯＭ１４等からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ニューラルネットワーク２０及び学習部２２が主記憶装置上に生成されるようになっている。
【００２２】
ニューラルネットワーク２０の一例は、多層ニューラルネットワークである。図４は、多層ニューラルネットワークを説明する図である。
【００２３】
図４に示すように、ニューラルネットワーク２０の一例である多層ニューラルネットワークは、複数の層にニューロンＮＲが配置されたフィードフォワード型ニューラルネットワークである。尚、多層ニューラルネットワークは、多層パーセプトロンと呼ばれる場合もある。例えば、多層ニューラルネットワークは、各層のニューロンＮＲが異なる層の１または複数のニューロンＮＲと接続された多層構造を有する。
【００２４】
学習実行部２４は、多層ニューラルネットワークのパラメータを正則化によって学習する。
【００２５】
具体的には、学習実行部２４は、多層ニューラルネットワークに使用される係数（例えば、層間の重み係数）を、積層オートエンコーダを用いたバックプロパゲーション（いわゆる、誤差逆伝播法）によって、学習（即ち、最適化）させる。
【００２６】
図５は、学習実行部２４の学習におけるオートエンコーダを説明する図である。
【００２７】
図５に示すように、ニューラルネットワーク２０を用いた次元削減（または、次元圧縮）の方法として、オートエンコーダ（Auto  Encoder）が知られている。オートエンコーダは、中間層のニューロン数を入力層の次元数よりも少なくすることによって、より少ない次元数で入力データを再現するように次元削減を行うことができる。
【００２８】
図６は、学習実行部２４による積層オートエンコーダを説明する図である（出典：http://haohanw.blogspot.jp/2014/12/ml-my-journal-from-neural-network-to_22.html#!/2014/12/ml-my-journal-from-neural-network-to_22.html）。
【００２９】
図６に示すように、ニューラルネットワーク２０は多層にすることで、表現能力が上がり、識別器としての性能を上げること、及び、次元削減できることが知られている。そのため、次元削減を行う場合に、一層で所望の次元数まで減らすのではなく、何層かに分けて次元数を減らすことで、次元削減器としての性能を上げることができる。オートエンコーダが積み重ねられた次元削減器による積層オートエンコーダ（Stacked Autoencoder）という方法が知られている。特に、積層オートエンコーダ（Stacked Autoencoder）は、上述のオートエンコーダによって一層ずつ学習した後、学習した層を組み合わせてFine-trainingと呼ばれる学習を行って多層にする。積層オートエンコーダは、効率良く次元削減することができ、次元削減器としての性能を向上させる。
【００３０】
次に、ニューラルネットワーク２０の一例である畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)について説明する。
【００３１】
畳み込みニューラルネットワークは、画像系の深い層のニューラルネットワーク２０でよく使われる手法である。学習は通常のバックプロパゲーションで行われるが、構造として重要な点は以下の畳み込み（Convolution）及びプーリング（Pooling）の二点である。
【００３２】
畳み込みは、層と層との間を全て接続するのではなく、画像上で位置的に近いところのみを接続する。また、畳み込みの係数は画像上の位置によらない。畳み込みニューラルネットワークは、定性的には、畳み込み(Convolution)により特徴抽出を行う。また、畳み込みニューラルネットワークは、接続を制限して過学習を防ぐ効果を持つ。
【００３３】
プーリングは、次の層につなげるときに、位置的な情報を削減する。定性的には位置不変性を得る。プーリングには最大値をとるmaxpooling、及び、平均値を取る平均プーリングなどがある。
【００３４】
次に、ニューラルネットワーク２０の学習方法の一例であるバックプロパゲーションについて説明する。
【００３５】
ニューラルネットワーク２０の学習にはバックプロパゲーション（誤差逆伝搬法とも言う）を用いる。バックプロパゲーションでは、ニューラルネットワーク２０の出力データと教師データを比較し、それを元に各出力ニューロンＮＲの誤差を計算する。出力ニューロンＮＲの誤差はそのニューロンＮＲに接続された前段のニューロンＮＲに原因があると考え、誤差が少なくなるようにニューロンＮＲの接続の重み係数を更新する。また、前段のニューロンＮＲについて、期待されている出力データと実際の出力データとの差を計算する。これを局所誤差と言う。この局所誤差はさらに前段のニューロンＮＲに原因があると考え、もう一段前段のニューロンＮＲの接続の重み係数を更新する。こうして次々と前段のニューロンＮＲに遡って重み係数の更新を行い、最終的にすべてのニューロンＮＲの接続の重みパラメータを更新していく。これがバックプロパゲーションの概要である。
【００３６】
図７は、学習対象として単純化したニューラルネットワークの一例を説明する図である。図７に示す入力層、中間層及び出力層を有するニューラルネットワークの、学習実行部２４による学習について説明する。
【００３７】
各層における構成素子は２個としている。各記号の定義は、以下の通りである。
ｘｉ：入力層の素子ｉへの入力データ
ｗｉｊ（１）：入力層の素子ｉから中間層の素子ｊにおける重み係数
ｗｊｋ（２）：中間層の素子ｊから出力層の素子ｋにおける重み係数
ｕｊ：中間層の素子ｊへの入力
ｖｋ：出力層の素子ｋへの入力
Ｖｊ：中間層の素子ｊからの出力
ｆ（uｊ）：中間層の素子ｊからの出力関数
ｇ（ｖｋ）：出力層の素子ｋからの出力関数
ｏｋ：出力層の素子ｋからの出力データ
ｔｋ：出力層の素子ｋからの教師データ
【００３８】
コスト関数Ｅを出力データと教師データとの二乗誤差とする。この場合、学習実行部２４は、コスト関数Ｅを次の式（１）によって算出する。
【数１】
2017097585.tif 000003
【００３９】
出力データｏｋは次の式（２）、式（３）を満たす。
【数２】
2017097585.tif 000004
【数３】
2017097585.tif 000005
【００４０】
学習実行部２４が、確率的勾配降下法（Stochastic Gradient Descent：ＳＧＤ）によって最適な重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を算出して学習する場合について説明する。重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の更新式は、次の式（４）及び式（５）となる。重み係数ｗｊｋ（２）’及び重み係数ｗｉｊ（１）’は、更新後の重み係数である。αは、学習率である。
【数４】
2017097585.tif 000006
【数５】
2017097585.tif 000007
【００４１】
中間層と出力層との間の重み係数ｗｊｋ（２）は、次の式（６）の関係を満たす。
【数６】
2017097585.tif 000008
ここで、次の式（７）が成立する場合、式（６）に式（７）を代入すると、式（６）は式（８）になる。
【数７】
2017097585.tif 000009
【数８】
2017097585.tif 000010
尚、εｋは、出力層の素子ｋにおける誤差信号を意味する。
【００４２】
また、入力層と中間層との間の重み係数ｗｉｊ（１）は、次の式（９）の関係を満たす。
【数９】
2017097585.tif 000011
ここで、中間層の素子ｊの誤差信号εｊを次の式（１０）で定義する。
【数１０】
2017097585.tif 000012
この場合、式（９）に式（１０）を代入すると、式（９）は式（１１）となる。
【数１１】
2017097585.tif 000013
【００４３】
ここで、中間層の素子数がＫ個の場合、式（１０）を一般化した式（１２）によって、誤差信号εｊを定義する。
【数１２】
2017097585.tif 000014
【００４４】
更に、中間層の素子数がＫ個の場合、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の更新式は、次の式（１３）及び式（１４）となる。学習実行部２４は、式（１３）及び式（１４）のそれぞれに式（７）及び式（１２）を代入した更新式によって、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を算出する。更に、学習実行部２４は、中間層が増えた場合、同様に１段前の誤差信号εを使用した更新式によって、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を算出する。
【数１３】
2017097585.tif 000015
【数１４】
2017097585.tif 000016
【００４５】
ここまで学習データである入力データが２個である場合の学習実行部２４による重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の算出を説明した。次に、学習実行部２４が、複数（例えば、３個以上）の入力データを使用して、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を算出して学習する場合について説明する。入力データの数をＮ個として、ｎ番目の入力データｘｉｎとし、ｎ番目のデータに関する各素子の誤差信号εｋｎ、εｊｎとする。学習実行部２４は、勾配降下法によって最適化する場合、次の式（１５）及び式（１６）の更新式から重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を更新して算出する。
【数１５】
2017097585.tif 000017
【数１６】
2017097585.tif 000018
【００４６】
式（１５）及び式（１６）におけるαは学習率である。学習率αの値が大きい場合、更新式は発散するので、入力データ及びニューラルネットワークの構造に応じて、学習率αは、適切な値に予め設定される。尚、更新式の発散を防止するために、学習率αを小さくした場合、学習に時間がかかる。従って、学習率αは、発散しない範囲で最大に設定されることが好ましい。
【００４７】
学習実行部２４は、単位ステップｔの学習時の更新量Δｗｉｊ（１）’（ｔ）を、次の式（１７）によって算出する。
【数１７】
2017097585.tif 000019
ここで、経験的に重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の収束に過去の方向を加味するように、Momentumの項を追加すると学習を高速化できることが知られている。従って、学習実行部２４は、Momentumの項を追加した更新式である式（１８）によって、更新量Δｗｉｊ（１）’（ｔ）を算出することが好ましい。
【数１８】
2017097585.tif 000020
式（１８）において、Δｗｉｊ（１）’（ｔ−１）は、一つ前のステップの更新量であり、εＭはMomentumの係数である。Momentumの係数は、εＭ＝０．９程度に予め設定することが好ましい。
【００４８】
次に、正則化項について説明する。
本実施形態の学習実行部２４は、コスト関数Ｅに重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）のノルムを加えたＬ２ノルム正則化によるコスト関数Ｅｒｅｇによって、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を算出する。これにより、学習実行部２４は、過学習による重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の発散を抑制する。
【００４９】
具体的には、学習実行部２４は、Ｌ２ノルム正則化による次の式（１９）に示すように、上述のコスト関数Ｅに重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）のＬ２ノルムを追加したＥｒｅｇをコスト関数として使用する。ここでλは正則化の大きさを制御するパラメータ（以下、正則化係数）であり、大きいほど正則化の効果が大きくなる。尚、Ｌ２ノルム正則化は、Weight Decayと呼ばれる場合もある。
【数１９】
2017097585.tif 000021
【００５０】
判定部２６は、学習実行部２４による重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の学習の進行を判定する。例えば、判定部２６は、学習実行部２４によって更新された重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）による出力データの正答率と、予め定められて記憶部３０に記憶された判定用閾値とを比較して学習の進行を判定する。判定部２６は、当該正答率が判定用閾値以上の場合、学習が進行していると判定する。判定部２６は、判定結果を変更部２８へ出力する。
【００５１】
変更部２８は、学習実行部２４による重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の学習の進行に応じて、正則化の効果を減少させる。例えば、学習実行部２４による学習が進行している場合、変更部２８は、進行している旨を判定部２６から取得して、正則化の効果を減少させる。変更部２８は、例えば、Ｌ２ノルム正則化における正則化係数λを小さくすることによって、正則化の効果を減少させる。
【００５２】
記憶部３０は、ニューラルネットワーク２０の予測及び学習に必要なプログラム及びデータを記憶する。例えば、記憶部３０は、正則化係数λの初期値、学習の進行を判定するための判定用閾値等を記憶する。記憶部３０は、例えば、ＨＤＤ１２、ＲＡＭ１３、及び、ＲＯＭ１４のいずれかによって実現される。尚、ニューラルネットワーク２０の予測及び学習に必要なプログラム及びデータは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供されてもよい。ニューラルネットワーク２０の予測及び学習に必要なプログラム及びデータは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、ニューラルネットワーク２０の予測及び学習に必要なプログラム及びデータをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００５３】
図８は、学習部２２による学習処理のフローチャートである。
【００５４】
学習処理では、まず、学習実行部２４が、入力データ及び教師データを使用したニューラルネットワーク２０による学習を開始する（Ｓ１００）。
【００５５】
判定部２６は、学習実行部２４による学習によって重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）が更新されたニューラルネットワーク２０による正答率を算出する（Ｓ１１０）。判定部２６は、学習実行部２４による予め定められた重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の更新回数ごとにステップＳ１１０を実行してもよい。
【００５６】
判定部２６は、正答率と判定用閾値とを比較して、学習が進行しているか否かを判定する（Ｓ１２０）。判定部２６は、正答率が判定用閾値未満の場合、学習が進行していないと判定して（Ｓ１２０：Ｎｏ）、ステップＳ１１０以降を繰り返す。一方、判定部２６は、正答率が判定用閾値以上の場合、学習が進行していると判定して（Ｓ１２０：Ｙｅｓ）、進行している旨を変更部２８へ出力する。
【００５７】
変更部２８は、学習が進行している旨を判定部２６から取得すると、正則化係数λの値を小さくして、正則化の効果を減少させる（Ｓ１３０）。
【００５８】
この後、学習実行部２４は、正則化の効果を減少させるために小さくなった正則化係数λによって学習を継続する。学習実行部２４は、予め定められた設定まで学習が進行すると、学習を終了する（Ｓ１４０）。これにより、学習部２２は、学習処理を終了する。
【００５９】
次に、本実施形態の効果について説明する。
ここで、従来の最適化において、正則化を用いない場合、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の発散、及び、最終的に精度が出ない局所解への重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の収束等が生じる。従って、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の最適化において、正則化は必要である。しかしながら、従来の最適化における正則化の方法は、最初から最後まで正則化の効果が一定となるように正則化係数λを変更せずに学習する。このような従来の技術では、学習が進み、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）が最終的な解に近づいてきた後には、正則化は細かい重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の修正にとって阻害する効果が大きくなるので、最終的に最適な重み係数ｗを得ることができない。
【００６０】
一方、上述したように実施形態による情報処理装置１０の学習部２２は、判定部２６が学習実行部２４による学習が進行したと判定すると、変更部２８がＬ２ノルム正則化（即ち、Weight Decay）の正則化係数λを小さくして、正則化の効果を減少させる。これにより、学習部２２は、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）が最終的な解に近づいた最終段階では、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の最適化において正則化による阻害を低減しつつ、より精度の高い重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の学習を可能とする。
【００６１】
また、従来の畳み込みニューラルネットワークでは、非常に大量の画像データを入力して学習を行う場合が多く、学習に非常に時間がかかる。一方、本実施形態の学習部２２は、学習の進行によって、正則化の効果を減少させるので、従来の畳み込みニューラルネットワークと比較して、短時間で学習を終わらせることができる。また、学習部２２は、従来の畳み込みニューラルネットワークと比較して、より深い構造のニューラルネットワーク２０で学習を行っても時間的に問題ないため、同じ学習時間で、学習の精度を向上させることができる。
【００６２】
また、従来の積層オートエンコーダは、単層ごとの学習が必要である上、Fine-trainingでは深い階層のニューラルネットワーク２０を入力して学習を行う場合が多く、学習に非常に時間がかかる。一方、本実施形態の学習部２２は、学習の進行によって、正則化の効果を減少させるので、従来の積層オートエンコーダより、短時間で学習を終わらせることができる。また、本実施形態の学習部２２は、従来の積層オートエンコーダと比較して、より深い層構造のニューラルネットワーク２０で学習を行っても時間的に問題がないため、同じ学習時間において精度を向上させることができる。
【００６３】
次に、上述の実施形態の効果を実証するために行ったシミュレーションについて説明する。シミュレーションでは、次の論文に記載のモデルのニューラルネットワーク構成を使用した。
“Very deep convolutional networks for large-scale image recognition”
K Simonyan, A Zisserman - arXiv preprint arXiv:1409.1556, 2014 - arxiv.org (2015)
このシミュレーションでは、入力データが約１２０万枚の画像データの場合、入力された画像データを１０００クラスに分類する課題に対して、１６層の畳み込みニューラルネットワークを用いて学習をさせた。
【００６４】
ここで、初期値としてWeight  Decayにおける正則化係数をλ＝０．００５と設定して、学習部２２が学習した場合、当該正則化係数における最終的な正答率は６９．６７８１％となった。その後、当該正答率に基づいて学習が進行したとして、Weight  Decayの正則化係数をλ＝０として正則化の効果を減少させて、上述の正答率の重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を元にして、学習を続けた。学習部２２による学習を続けた結果、正答率は７１．４１２５％となった。これにより、本実施形態の学習部２２は、学習が進むと、正則化の効果を０として、学習を続けることにより、高い正答率を得られることがわかる。尚、学習の開始からWeight  Decayの係数をλ＝０とした場合、学習は適切に進めることができず、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）は発散する。即ち、学習が進むに連れて、正則化のスケジューリングを実行する本実施形態の学習部２２は、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の発散を抑制しつつ、学習を適切に進めることができる。
【００６５】
次に、上述した実施形態を部分的に変更した変形例について説明する。
【００６６】
（変形例１）
学習部２２は、正則化の手法としてＬ１ノルム正則化を採用してもよい。Ｌ１ノルム正則化は、次の式（２０）に示すように、コスト関数Ｅに重み係数ｗのＬ１ノルムを追加したＥｒｅｇをコスト関数として使用する方法である。ここでλは正則化の大きさを制御するパラメータ（以下、正則化係数）であり、大きいほど正則化の効果が大きくなる。従って、学習部２２の変更部２８は、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の学習が進行すると、正則化係数λを小さくして、正則化の効果を減少させる。
【数２０】
2017097585.tif 000022
【００６７】
（変形例２）
学習部２２は、ＳＧＤ（Stochastic Gradient Descent：確率的勾配降下法）を採用してもよい。
【００６８】
通常の勾配降下法では、入力データの全サンプルを評価して、全データ点のコスト関数の和を最終的なコスト関数として重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を更新して最適化を行う。従って、通常の勾配降下法は、一回の重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の更新に非常に時間がかかる。
【００６９】
一方、ＳＧＤは、上述した通常の勾配降下法を簡易化したものであり、オンライン学習に向いているとされる手法である。ＳＧＤは、ランダムにデータ点を１つピックアップして、ピックアップしたデータ点のコスト関数に対応する勾配で重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を更新する。ＳＧＤは、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を更新した後、再び、別のデータ点をピックアップして、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の更新を繰り返す。このように学習部２２は、ＳＧＤを採用することにより、通常の勾配降下法では非常に時間のかかる重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の更新時間を短縮できる。
【００７０】
また、学習部２２は、ＳＧＤと通常の勾配降下法との間の方法であるミニバッチ法を採用してもよい。ミニバッチ法は、多層ニューラルネットワークの学習において、よく使用される。ミニバッチ法は、全データを複数個のデータ群に分け、各データ群をミニバッチと呼び、当該ミニバッチごとに重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）を最適化する。これによっても学習部２２は、重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の更新時間を短縮できる。
【００７１】
（変形例３）
学習部２２は、ＤＲＯＰＯＵＴを学習方法として採用してもよい。
ＤＲＯＰＯＵＴは、ニューラルネットワーク２０において、各訓練データに対して、中間素子をランダムに無効化しながら、学習を進める方法である。ＤＲＯＰＯＵＴは、正則化の効果を持ち、汎化性能を上げることができる方法である。この場合、変更部２８は、学習が進行すると、ＤＲＯＰＯＵＴにおいて中間素子を無効化する率である無効化率を下げて、正則化の効果を減少させる。これにより、学習部２２は、学習時間を短縮しつつ、精度の高い重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の学習を可能とする。
【００７２】
（変形例４）
学習部２２は、ＤＲＯＰＣＯＮＮＥＣＴを学習方法として採用してもよい。
ＤＲＯＰＣＯＮＮＥＣＴは、ＤＲＯＰＯＵＴが中間素子をランダムに無効化にするのに対して、素子間の接続をランダムに無効化する方法である。本実施形態では、ＤＲＯＰＣＯＮＮＥＣＴにおける無効化率を学習が進むにつれて下げる。この場合、変更部２８は、学習が進行すると、ＤＲＯＰＣＯＮＮＥＣＴにおいて素子間の接続を無効化する率である無効化率を下げて、正則化の効果を減少させる。これにより、学習部２２は、学習時間を短縮しつつ、精度の高い重み係数ｗｊｋ（２）及び重み係数ｗｉｊ（１）の学習を可能とする。
【００７３】
（変形例５）
判定部２６は、学習の進行の判定材料として、コスト関数Ｅ（またはコスト関数Ｅｒｅｇ）を採用してもよい。例えば、判定部２６は、コスト関数Ｅの変化率が予め定められた変化率用閾値未満となった場合、学習が進行したと判定してもよい。コスト関数Ｅの変化率が予め定められた変化率用閾値未満となった場合には、コスト関数Ｅが一定値になった場合を含む。この場合、変更部２８は、コスト関数Ｅの変化率が予め定められた変化率用閾値未満となった場合に、正則化の効果を減少させることになる。
【００７４】
（変形例６）
学習部２２は、学習の対象のニューラルネットワーク２０として、リカレントニューラルネットワーク（Recurrent Neural Network: RNN）を採用してもよい。
【００７５】
リカレントニューラルネットワークは、隠れ層の出力内容を、次の時刻の入力として使うニューラルネットの構造である。
【００７６】
リカレントニューラルネットワークでは、出力を入力として戻すため、学習率を大きくすると容易に重み係数ｗが発散してしまう。そのため、リカレントニューラルネットワークは、学習率を小さくして時間をかけて学習を行う必要がある。しかし、学習部２２は、学習が進行すると、正則化の効果を減少させるので、短時間で学習を終わらせることができる。また学習部２２は、従来のリカレントニューラルネットワークと比較して、より深い構造のニューラルネットワーク２０で学習を行っても時間を短縮できるので、同じ時間における学習の精度を向上させることができる。
【００７７】
（変形例７）
変更部２８は、学習が進むに連れて、正則化の効果を小さくするとともに、学習率αを小さくしてもよい。
【符号の説明】
【００７８】
１０…情報処理装置、２０…ニューラルネットワーク、２２…学習部、２４…学習実行部、２６…判定部、２８…変更部、３０…記憶部、ｗ…係数、Ｅ…コスト関数、ε…誤差信号、λ…正則化係数
【先行技術文献】
【特許文献】
【００７９】
【特許文献１】特開平８−２０２６７４号公報
【図１】
2017097585.tif 000023
【図２】
2017097585.tif 000024
【図３】
2017097585.tif 000025
【図４】
2017097585.tif 000026
【図５】
2017097585.tif 000027
【図６】
2017097585.tif 000028
【図７】
2017097585.tif 000029
【図８】
2017097585.tif 000030