(57)【要約】【課題】カリキュラム学習の効果を向上させること。【解決手段】情報処理装置は、カリキュラム学習の対象のモデルに対して複数の学習データを入力して、前記学習データごとに損失関数の値を計算し、前記値の統計情報を計算する計算部と、前記統計情報と、前記カリキュラム学習の各繰り返しにおいて利用する学習データを選定するための前記値に対する閾値を計算するための複数のパラメータの値の比率とに基づいて、前記閾値を算出する算出部と、を有する。【選択図】図２
2020030674.tif 000002
【特許請求の範囲】
【請求項１】
カリキュラム学習の対象のモデルに対して複数の学習データを入力して、前記学習データごとに損失関数の値を計算し、前記値の統計情報を計算する計算部と、
前記統計情報と、前記カリキュラム学習の各繰り返しにおいて利用する学習データを選定するための前記値に対する閾値を計算するための複数のパラメータの値の比率とに基づいて、前記閾値を算出する算出部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記算出部は、更に、前記繰り返しの回数に基づいて、前記閾値を算出する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記閾値と前記学習データごとの前記値との比較に基づいて、前記複数の学習データの中から学習データを選定する選定部、
を有することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記選定部により選定される学習データを利用して、前記モデルの学習を行う学習部、
を有することを特徴とする請求項３記載の情報処理装置。
【請求項５】
カリキュラム学習の対象のモデルに対して複数の学習データを入力して、前記学習データごとに損失関数の値を計算し、前記値の統計情報を計算する計算手順と、
前記統計情報と、前記カリキュラム学習の各繰り返しにおいて利用する学習データを選定するための前記値に対する閾値を計算するための複数のパラメータの値の比率とに基づいて、前記閾値を算出する算出手順と、
をコンピュータが実行することを特徴とする情報処理方法。
【請求項６】
カリキュラム学習の対象のモデルに対して複数の学習データを入力して、前記学習データごとに損失関数の値を計算し、前記値の統計情報を計算する計算手順と、
前記統計情報と、前記カリキュラム学習の各繰り返しにおいて利用する学習データを選定するための前記値に対する閾値を計算するための複数のパラメータの値の比率と、前記繰り返しの回数とに基づいて、前記閾値を算出する算出手順と、
をコンピュータが実行させることを特徴とするプログラム。
【請求項７】
前記閾値と前記学習データごとの前記値との比較に基づいて、前記複数の学習データの中から学習データを選定する選定手順、
をコンピュータに実行させることを特徴とする請求項６記載のプログラム。
【請求項８】
前記選定手順において選定される学習データを利用して、前記モデルの学習を行う学習手順、
をコンピュータに実行させることを特徴とする請求項７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
音声認識の実用場面においては、ＤＮＮ（Deep Neural Network）に基づく音響モデルを用いた技術が広く用いられている。
【０００３】
音響モデルの安定的な学習法の一つとして、カリキュラム学習と呼ばれる手法が存在する（例えば、非特許文献１参照）。カリキュラム学習とは、或る基準、例えば、データの学習の難易度に基づいて、多彩な学習データを複数のクラスにクラスタリングし、より平易な学習データから学習を行う手法である。この手法は、適切なタイミングで適切な難易度のデータを学習させていくため、複数の環境に同時に適応するような音響モデルを学習する際に有効である。
【０００４】
カリキュラム学習の手法自体については様々な手法が提案されており、その中でもＳＰＬ（Self- Paced Learning）は、自動で学習カリキュラムを獲得する手法である（例えば、非特許文献２参照）。更に、ＳＰＬに多様性の観点を考慮した、ＳＰＬＤ（Self-Paced Learning with Diversity）と呼ばれる手法も存在する（例えば、非特許文献３参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Y. Bengio, et al. "Curriculum learning", Proceedings of the 26th annual international conference on machine learning, ACM, 2009.
【非特許文献２】K. M. Pawan, P. Benjamin and K. Daphne, "Self-paced learning for latent variable models", Advances in Neural Information Processing Systems, pp.1189-1197, 2010.
【非特許文献３】L. Jiang, et al. "Self-paced learning with diversity", Advances in Neural Information Processing Systems, 2014.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、カリキュラム学習を効果的に行うためには、繰り返しの学習に利用する学習データを選定するための閾値が適切に設定される必要が有る。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、カリキュラム学習の効果を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、情報処理装置は、カリキュラム学習の対象のモデルに対して複数の学習データを入力して、前記学習データごとに損失関数の値を計算し、前記値の統計情報を計算する計算部と、前記統計情報と、前記カリキュラム学習の各繰り返しにおいて利用する学習データを選定するための前記値に対する閾値を計算するための複数のパラメータの値の比率とに基づいて、前記閾値を算出する算出部と、を有する。
【発明の効果】
【０００９】
カリキュラム学習の効果を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態における学習装置１０のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における学習装置１０の機能構成例を示す図である。
【図３】学習装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【図４】ロスの度数分布の一例を示す図である。
【図５】学習データを上位Ｍ［％］と下位（１００−Ｍ）［％］に分離した例を示す図である。
【図６】各繰り返しの閾値の目安の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における学習装置１０のハードウェア構成例を示す図である。図１の学習装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１２】
学習装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って学習装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１４】
図２は、本発明の実施の形態における学習装置１０の機能構成例を示す図である。図２において、学習装置１０は、前処理部１１、パラメータ算出部１２、学習データ選定部１３及びモデル学習部１４等を有する。これら各部は、学習装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。学習装置１０は、また、学習モデル記憶部１２１、コーパスプール記憶部１２２及び選定済みデータ記憶部１２３等を利用する。これら各記憶部は、例えば、補助記憶装置１０２若しくはメモリ装置１０３、又は学習装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００１５】
学習モデル記憶部１２１には、学習対象の音響モデルであるモデルＭ１（例えば、ＤＮＮモデル）が記憶されている。本実施の形態において、モデルＭ１の初期状態（初期モデル）は、既に、或る程度の大きさのコーパスを用いて、一般的な学習法により学習がなされている状態であるとする。なお、「或る程度の大きさ」とは、一般にＤＮＮモデルの学習に充分と思われる量であり、例えば、音声認識であれば、最低でも１００時間程度の分量が期待される。それより少量のデータでもよいが、見込まれる効果は小さくなると考えられる。
【００１６】
コーパスプール記憶部１２２には、モデルＭ１のカリキュラム学習の学習用のデータとして、複数のコーパスが記憶されている。本実施の形態において１つのコーパスは、複数の学習データ（音声認識用のデータ）の集合である。本実施の形態では、コーパスｃ１、ｃ２及びｃ３の３つのコーパスがコーパスプール記憶部１２２に記憶されている。コーパスｃ１は、例えば、音質が相対的に高い学習データの集合である。コーパスｃ２は、例えば、遠くの発声が集音された学習データの集合である。コーパスｃ３は、雑音が混在している環境においてで発声された学習データの集合である。但し、コーパスの分類方法は、所定のものに限定されない。
【００１７】
選定済みデータ記憶部１２３には、カリキュラム学習における繰り返しごとに、学習の利用対象として選定された学習データが記憶される。なお、選定済みデータ記憶部１２３に記憶された学習データは、コーパスプール記憶部１２２から除去される。
【００１８】
なお、本実施の形態では、カリキュラム学習法として、ＳＰＬＤ（Self-Paced Learning with Diversity）を使用した場合の例を記載する。
【００１９】
以下、学習装置１０が実行する処理手順について説明する。図３は、学習装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【００２０】
ステップＳ１０１において、前処理部１１は、変数ｎに１を代入する。変数ｎは、カリキュラム学習における繰り返しの順番を示す変数である。以下、ｎ番目の繰り返しを「繰り返しｎ」という。続いて、前処理部１１は、コーパスごとに、ステップＳ１０２及びＳ１０３を含むループ処理Ｌ１を実行する。ループ処理Ｌ１において処理対象とされているコーパスを「対象コーパス」という。
【００２１】
ステップＳ１０２において、前処理部１１は、対象コーパスに含まれる学習データごとに、当該学習データをモデルＭ１に入力し、モデルＭ１からの出力について損失関数の値（以下、「ロス」とうい。）を計算する。続いて、前処理部１１は、学習データごとに計算されたロスについて統計情報を計算する（Ｓ１０３）。ここでは、統計情報としてロスの分布が導出される。
【００２２】
したがって、ループ処理Ｌ１が各コーパス（コーパスｃ１〜ｃ３）について実行されると、図４に示されるようなロスの度数分布が統計情報の一例として得られる。図４において、「ｃｌｅａｎ」は、コーパスｃ１に対応する。「ｄｉｓｔ」は、コーパスｃ２に対応する。「ｎｏｉｓｙ」は、コーパスｃ３に対応する。例えば、前処理部１１は、全コーパスに跨って、全学習データのロスを昇順にソートして、図４に示されるような度数分布を生成してもよい。前処理部１１は、当該統計情報（度数分布、各コーパスのロスの昇順のソート結果）をパラメータ算出部１２へ入力する。
【００２３】
ループ処理Ｌ１に続いて、パラメータ算出部１２は、当該統計情報に基づいて、全コーパスに跨って、全学習データのロスを上位Ｍ［％］と下位（１００−Ｍ）［％］に分離するロスの値を探索する（Ｓ１０４）。Ｍの値は、予めユーザによって設定される。但し、Ｍは１００未満の非常に大きい値がよい。そうすることで、ロスの順でソートした際の最下位付近の学習データが、学習に使用しないほうが良い外れ値のデータである可能性を考慮することができる。
【００２４】
図５は、学習データを上位Ｍ［％］と下位（１００−Ｍ）［％］に分離した例を示す図である。図５では、Ｍの値が９９である例が示されている。
【００２５】
パラメータ算出部１２は、この上位Ｍ％とそれ以下を分離するロスの値を、カリキュラム学習の最後の繰り返し（例えば、Ｎ回繰り返すのであれば、Ｎ回目の繰り返し）で目安とすべき閾値（以下、「ｔｈｒ'Ｎ」という。）とる。図５の例では、ｔｈｒ'Ｎ＝０．６８である。なお、Ｎの値は、予め、ユーザによって設定される。
【００２６】
続いて、パラメータ算出部１２は、コーパスごとに、ステップＳ１０５〜Ｓ１１０を含むループ処理Ｌ２を実行する。ループ処理Ｌ２において処理対象とされているコーパスを「対象コーパス」という。
【００２７】
ステップＳ１０５において、パラメータ算出部１２は、対象コーパス内の学習データをロスの昇順にソートする。すなわち、ここでのソートの対象は、対象コーパス内の学習データに限られる。続いて、パラメータ算出部１２は、変数ｉに１を代入する（Ｓ１０６）。変数ｉは、ステップＳ１０５でのソート順における、対象コーパス内の学習データの順番（以下、「コーパス内順位」という。）に対応する変数である。以下、ｉ番目の学習データを「学習データｉ」という。
【００２８】
続いて、対象コーパス内の学習データごとに、ステップＳ１０７〜Ｓ１１０を含むループ処理Ｌ３が実行される。
【００２９】
ステップＳ１０７において、パラメータ算出部１２は、繰り返しｎにおける学習データｉに対する閾値ｔｈｒｎを、以下の式（１）に基づいて算出する（Ｓ１０６）。
【００３０】
【数１】
2020030674.tif 000003
式（１）は、学習の繰り返し（ｎの増加）に応じて、図６の破線に示されるように等差数列的に閾値を変化させていくことで、最後の繰り返し（Ｎ回目の繰り返し）の閾値がｔｈｒ'Ｎに到達することを目指す式である。なお、図６では、Ｎ＝８である例に対応する。したがって、閾値ｔｈｒｎを示す破線が８本示されている。また、式（１）より明らかなように、閾値ｔｈｒｎは、コーパス内順位ｉにも依存する。したがって、図６に示した破線は、あくまでも閾値ｔｈｒｎの目安である。各学習データの閾値ｔｈｒｎは異なるからである。
【００３１】
式（１）において、ｒの値は、予めユーザによって設定されるパラメータである。ここで、ｒ及び式（１）の理論的根拠について説明する。
【００３２】
ＳＰＬＤの場合、カリキュラム決定のための閾値ｔｈｒは、
【００３３】
【数２】
2020030674.tif 000004
で表される。ここで、λ、γは、ｔｈｒ決定のための定数のパラメータであり、それぞれ、年齢項、多様性重みと呼ばれる。λが大きい場合、よりロスの大きい学習データ（＝モデルにとって難しい学習データ）を学習に取り入れやすくなる。また、γが大きいほど、複数のコーパスから学習データを広く選定しやすくなる。また、ｉはコーパス内順位である。
【００３４】
コーパス内順位による逓減項を考慮しない場合、閾値ｔｈｒは、単に、
【００３５】
【数３】
2020030674.tif 000005
のように、λとγの和で表される。このときのλとγの和が、各繰り返しにおける閾値の目安値と等しくなるようにする。本実施の形態において、目安とするｔｈｒは、式（１）に関して説明したように、学習の繰り返し回数と最終繰り返し時のロスの値から等差数列の一般項の形で求められる。すなわち、繰り返し回数がＮ回、現在がｎ回目の繰り返しであり、最終繰り返し時の目安の閾値の値がｔｈｒ'Ｎとすると、初項：ｔｈｒ'Ｎ／Ｎ、公差：ｔｈｒ'Ｎ／Ｎの等差数列として、
【００３６】
【数４】
2020030674.tif 000006
と表せる。例えば、ｔｈｒ'Ｎ＝０．６８、Ｎ＝８であれば、ｔｈｒ'ｎ＝（ｎ×０．６８）／８＝０．８５ｎである。
【００３７】
また、λとγをｔｈｒを用いて考える。式（３）において、λ＝ｒ×ｔｈｒ'（但し、ｒは０以上１以下の実数）と表すと、γ＝（１−ｒ）×ｔｈｒ'と表せる。例えば、ｔｈｒ'ｎ＝０．８５ｎであり、ｒ＝０．８の場合、λ＝０．８×ｔｈｒ'ｎ＝０．６８ｎである。また、γ＝０．２×ｔｈｒ'ｎ＝０．０１７ｎである。
【００３８】
ここで、ｔｈｒ'は、式（３）のとおり決められているので、λ及びγのぞれぞれの値の比率ｒを媒介変数として決めることで、カリキュラムパラメータ（ｔｈｒｎ）を自動で決定することができる。このｒが大きい場合は、多様性重みが小さくなるため、各コーパス内の順位をあまり考慮しなくなる。ｒが小さい場合、年齢項が小さくなり、各コーパスからデータを得やすくなる一方で、簡単なタスクでも、順位が低くなると選定しづらくなる挙動を示す。この比率ｒは、自動決定できず学習時に恣意的に決める必要があるパラメータであり、望む学習のスタイルに応じてユーザが自由に設定すればよい。
【００３９】
上記より、全Ｎ回中ｎ回目の繰り返しにおける学習データｉに対する閾値ｔｈｒｎは、式（１）に基づいて求めることができる。パラメータ算出部１２は、閾値ｔｈｒｎを学習データ選定部１３へ入力する。
【００４０】
続いて、学習データ選定部１３は、学習データｉのロスと閾値ｔｈｒｎとを比較する（Ｓ１０８）。当該ロスが閾値ｔｈｒｎ未満である場合（Ｓ１０８でＮｏ）、学習データ選定部１３は、学習データｉを、コーパスプール記憶部１２２から選定済みデータ記憶部１２３へ移動する（Ｓ１０９）。すなわち、学習データｉは、コーパスプール記憶部１２２内の対象コーパスから削除される。したがって、ｎ＋１回目以降の繰り返しにおいて、学習データｉは、Ｓ１０２〜Ｓ１１０の処理対象とはされない。続いて、学習データ選定部１３は、変数ｉに１を加算する（Ｓ１１０）。
【００４１】
ループ処理Ｌ３において、学習データｉのロスが閾値ｔｈｒｎ以上となると（Ｓ１０８でＮｏ）、対象コーパスについてのループ処理Ｌ３は終了する。学習データは、昇順にソートされているため、学習データｉのロスは、増加傾向に有るところ、閾値ｔｈｒｎは、ｉの増加に伴って小さくなる（厳しくなる）ため、以降の学習データｉが、閾値ｔｈｒｎより小さくなることがないのは明らかだからである。
【００４２】
全てのコーパスについてループ処理Ｌ２が実行されると、モデル学習部１４は、選定済みデータ記憶部１２３に記憶されている全学習データをモデルＭ１に入力して、モデルＭ１について、繰り返しｎの学習を行う（Ｓ１１１）。その結果、モデルＭのパラメータが更新される。なお、学習は、公知の技術（一般的なＤＮＮ最適化法）を用いて行われればよい。
【００４３】
続いて、モデル学習部１４は、変数ｎに１を加算する（Ｓ１１２）。続いて、モデル学習部１４は、変数ｎの値をＮと比較する（Ｓ１１３）。
【００４４】
変数ｎの値がＮ以下であれば（Ｓ１１３でＮｏ）、ループ処理Ｌ１以降が繰り返される。この際、ループ処理Ｌ１では、学習によってパラメータが変化したモデルＭ１が利用される。したがって、同じ学習データに対するロスの値が変化する可能性が有る。一方、変数ｎの値がＮを超えていれば（Ｓ１１３でＹｅｓ）、図３の処理は終了する。
【００４５】
上述したように、本実施の形態によれば、カリキュラム学習において利用される閾値を、学習データ群の統計情報から算出することができる。したがって、学習データ群に適した閾値が得られることを期待することがきる。その結果、カリキュラム学習の効果を向上させることができる。
【００４６】
また、本実施の形態によれば、既に実行された繰り返しにおいて選定された学習データは、コーパスプール記憶部１２２から削除され、選定済みデータ記憶部１２３に移動される。すなわち、ｎ回目の繰り返しにおいて選定された学習データについては、ｎ＋１回目以降においてロスの計算や、閾値との比較等の実行対象とはされない。その結果、カリキュラム学習の効率性を向上させることができる。
【００４７】
なお、本実施の形態では、モデルＭ１が音声認識に関するモデルである例を示したが、本実施の形態は、例えば、手書き文字の認識や画像認識等、他の各種のモデルについてのカリキュラム学習にも適用可能である。
【００４８】
また、学習データごとに計算されたロスの度数分布が当該ロスについての統計情報の一例である例を説明したが、当該統計情報として、当該ロスの平均、分散、又は中央値等、他の指標が用いられてもよい。例えば、ｍ個のコーパスのロスの平均値（あるいは中央値)を、それぞれμ１〜μｍで表す場合、これらをロスの順にソートし、最低値、最大値を得る。この時、年齢項についてロスの最低値にｌｍｉｎ回目のループで到達、ロスの最高値にｌｍａｘ回目のループで到達することを考え、１〜ｌｍｉｎ回目、及びｌｍｉｎ回目〜ｌｍａｘ回目、ｌｍａｘ回目〜最終ループまでを等分するように各ループにおける閾値の初期値を与えていくことで、カリキュラムを設定することができる。例えば、ｌｍｉｎ＝１、ｌｍａｘ＝Ｎ（Ｎは学習のループ回数）とする場合、ロスの平均値の最低値から最高値までを学習ループ回数で等分するような閾値の設定となる。
【００４９】
なお、本実施の形態において、学習装置１０は、情報処理装置の一例である。前処理部１１は、計算部の一例である。パラメータ算出部１２は、算出部の一例である。学習データ選定部１３は、選定部の一例である。モデル学習部１４は、学習部の一例である。比率ｒは、閾値を計算するための複数のパラメータの値の比率の一例である。
【００５０】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５１】
１０          学習装置
１１          前処理部
１２          パラメータ算出部
１３          学習データ選定部
１４          モデル学習部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１２１        学習モデル記憶部
１２２        コーパスプール記憶部
１２３        選定済みデータ記憶部
Ｂ            バス
【図１】
2020030674.tif 000007
【図２】
2020030674.tif 000008
【図３】
2020030674.tif 000009
【図４】
2020030674.tif 000010
【図５】
2020030674.tif 000011
【図６】
2020030674.tif 000012