(57)【要約】【課題】安定した学習を効率よく短時間で行うこと。【解決手段】学習装置は、時系列データを所定区間に分割することで、複数の第１部分時系列データを生成し、複数の第１部分時系列データと、時系列データ全体に対する教師データとをそれぞれ対応付けた第１学習データを生成する。学習装置は、第１学習データを基にして、複数の層に含まれる各ＲＮＮのうち、第１層に含まれる第１ＲＮＮ（たとえば、ＬＳＴＭ５０）の第１パラメータを学習する。学習処理部は、複数の層に含まれる各ＲＮＮのパラメータを学習する場合、学習済みの第１パラメータを第１ＲＮＮに設置する。学習装置は、第１部分時系列データを第１ＲＮＮにそれぞれ入力して得られるデータと、教師データとを基にして、複数の層に含まれる各ＲＮＮ（たとえば、ＬＳＴＭ６０）のパラメータを学習する。【選択図】図８
2020102107.tif 000002
【特許請求の範囲】
【請求項１】
時系列に複数のデータが並んだ時系列データを所定区間に分割することで、複数の第１部分時系列データを生成し、前記複数の第１部分時系列データと、前記時系列データ全体に対する教師データとをそれぞれ対応付けた第１学習データを生成する第１生成部と、
前記第１学習データを基にして、複数の層に含まれる各ＲＮＮ（Recurrent  Neural  Network）のうち、第１層に含まれる第１ＲＮＮの第１パラメータを学習する第１学習部と、
前記複数の層に含まれる各ＲＮＮのパラメータを学習する場合、学習済みの前記第１パラメータを前記第１ＲＮＮに設置して、前記第１部分時系列データをそれぞれ入力して得られるデータと、前記教師データとを基にして、前記複数の層に含まれる各ＲＮＮのパラメータを学習する学習処理部と
を有することを特徴とする学習装置。
【請求項２】
前記学習処理部は、前記第１ＲＮＮの学習済みの前記第１パラメータを設置して、前記第１部分時系列データをそれぞれ入力して得られる複数の第２部分時系列データと、前記教師データとをそれぞれ対応付けた第２学習データを生成する第２生成部と、
前記第２学習データを基にして、前記第１層よりも一つ上層となる第２層に含まれる第２ＲＮＮの第２パラメータを学習する第２学習部とを有することを特徴とする請求項１に記載の学習装置。
【請求項３】
前記第１生成部は、前記第１ＲＮＮに前記第１部分時系列データを入力した場合に出力される出力データと、前記教師データとが異なる場合に、前記第１学習データに含まれる第１部分時系列データと前記教師データとの複数の組のうち、一部の組について、第１部分時系列データに対応する前記教師データを、前記出力データに更新することで、前記第１学習データを生成することを特徴とする請求項１または２に記載の学習装置。
【請求項４】
前記第１生成部は、前記第１ＲＮＮに前記第１部分時系列データを入力した場合に出力される出力データと、前記教師データとが異なる場合に、前記第１学習データに含まれる第１部分時系列データと前記教師データとの複数の組のうち、一部の組について、第１部分時系列データに対応する前記教師データを、前記教師データおよび前記出力データとは異なる他のデータに更新することで、前記第１学習データを生成することを特徴とする請求項１または２に記載の学習装置。
【請求項５】
前記第１生成部は、前記時系列データに対応する音声データの特徴を基にして、前記時系列データを前記複数の第１部分時系列データに分割することを特徴とする請求項１〜４のいずれか一つに記載の学習装置。
【請求項６】
コンピュータが実行する学習方法であって、
時系列に複数のデータが並んだ時系列データを所定区間に分割することで、複数の第１部分時系列データを生成し、前記複数の第１部分時系列データと、前記時系列データ全体に対する教師データとをそれぞれ対応付けた第１学習データを生成し、
前記第１学習データを基にして、複数の層に含まれる各ＲＮＮ（Recurrent  Neural  Network）のうち、第１層に含まれる第１ＲＮＮの第１パラメータを学習し、
前記複数の層に含まれる各ＲＮＮのパラメータを学習する場合、学習済みの前記第１パラメータを前記第１ＲＮＮに設置して、前記第１部分時系列データをそれぞれ入力して得られるデータと、前記教師データとを基にして、前記複数の層に含まれる各ＲＮＮのパラメータを学習する
処理を実行することを特徴とする学習方法。
【請求項７】
コンピュータに、
時系列に複数のデータが並んだ時系列データを所定区間に分割することで、複数の第１部分時系列データを生成し、前記複数の第１部分時系列データと、前記時系列データ全体に対する教師データとをそれぞれ対応付けた第１学習データを生成し、
前記第１学習データを基にして、複数の層に含まれる各ＲＮＮ（Recurrent  Neural  Network）のうち、第１層に含まれる第１ＲＮＮの第１パラメータを学習し、
前記複数の層に含まれる各ＲＮＮのパラメータを学習する場合、学習済みの前記第１パラメータを前記第１ＲＮＮに設置して、前記第１部分時系列データをそれぞれ入力して得られるデータと、前記教師データとを基にして、前記複数の層に含まれる各ＲＮＮのパラメータを学習する
処理を実行させることを特徴とする学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置等に関する。
【背景技術】
【０００２】
時系列データを学習するＲＮＮ（Recurrent  Neural  Network）において、そのネットワークを効率よくかつ安定して学習することが求められている。ＲＮＮの学習では、時系列データと教師データとの学習データをＲＮＮに与え、時系列データを入力した際に、ＲＮＮから出力される値が教師データに近づくように、ＲＮＮのパラメータを学習する。
【０００３】
たとえば、時系列データが映画のレビュー（単語列）である場合には、教師データは、レビューが肯定的であるか否定的であるかを示すもの（正解ラベル）となる。時系列データが文（文字列）である場合には、教師データは、何の言語かを示すものとなる。ここで、時系列データに対応する教師データは、時系列データ全体に対応するもので、部分的な時系列データに対してそれぞれ対応するものではない。
【０００４】
図３９は、従来のＲＮＮの処理の一例を示す図である。図３９に示すように、ＲＮＮ１０は、Mean  Pooling１に接続され、時系列データに含まれるデータ（たとえば、各単語ｘ）が入力されると、パラメータに基づく計算を行って、隠れ状態ベクトルｈを算出し、Mean  Pooling１に出力する。ＲＮＮ１０は、次のデータが入力されると、前のデータで算出した隠れ状態ベクトルｈと、次のデータとを用いて、パラメータに基づく計算を行い、隠れ状態ベクトルｈを算出する処理を繰り返し実行する。
【０００５】
たとえば、ＲＮＮ１０が、時系列データに含まれる単語ｘ（０）、ｘ（１）、ｘ（２）、・・・ｘ（ｎ）を順に取得した場合について説明する。ＲＮＮ１０−０は、データｘ（０）を取得すると、データｘ（０）とパラメータとに基づく計算を行って、隠れ状態ベクトルｈ０を算出し、Mean  Pooling１に出力する。ＲＮＮ１０−１は、データｘ（１）を取得すると、データｘ（１）と、隠れ状態ベクトルｈ０と、パラメータとに基づく計算を行って、隠れ状態ベクトルｈ１を算出し、Mean  Pooling１に出力する。ＲＮＮ１０−２は、データｘ（２）を取得すると、データｘ（２）と、隠れ状態ベクトルｈ１と、パラメータとに基づく計算を行って、隠れ状態ベクトルｈ２を算出し、Mean  Pooling１に出力する。ＲＮＮ１０−ｎは、データｘ（ｎ）を取得すると、データｘ（ｎ）と、隠れ状態ベクトルｈｎ−１と、パラメータとに基づく計算を行って、隠れ状態ベクトルｈｎを算出し、Mean  Pooling１に出力する。
【０００６】
Mean  Pooling１は、隠れ状態ベクトルｈ０〜ｈｎを平均化したベクトルｈａｖｅを出力する。たとえば、時系列データが映画のレビューである場合、ベクトルｈａｖｅは、レビューが肯定的であるか否定的であるかの判定に用いられる。
【０００７】
図３９に示したＲＮＮ１０の学習を行う場合、学習データに含まれる時系列データの長さが長くなるほど、１回の学習（パラメータ更新）に時系列分の計算を行うことになるため、計算時間が掛かり、学習の効率が低下する。
【０００８】
ＲＮＮの学習方法に関する技術として、図４０に示す従来技術がある。図４０は、従来のＲＮＮの学習方法の一例を示す図である。この従来技術では、初期学習区間として、短い時系列区間を設定して学習する。従来技術は、徐々に学習区間を拡張していき、最終的には時系列データの全体学習を行う。
【０００９】
たとえば、従来技術は、初期学習として、時系列データのｘ（０）、ｘ（１）を用いて学習し、この学習が終了すると、２回目において、時系列データのｘ（０）、ｘ（１）、ｘ（２）を用いて学習する。従来技術は、徐々に学習区間を拡張していき、最終的には、時系列データｘ（０）、ｘ（１）、ｘ（２）、・・・、ｘ（ｎ）を用いて全体学習を行う。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平８−２２７４１０号公報
【特許文献２】特開２０１０−２６６９７５号公報
【特許文献３】特開平５−２６５９９４号公報
【特許文献４】特開平６−２３１１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した従来技術では、安定した学習を効率よく短時間で行うことができないという問題がある。
【００１２】
図４０で説明した従来技術では、時系列データを分割して学習するものであるが、時系列データに対する教師データ自体は、時系列データ全体に対するものである。このため、従来技術では、ＲＮＮに対する適切なパラメータを更新することが難しい。適切なパラメータを学習するためには、結局のところ、時系列データ全体（ｘ（０）、ｘ（１）、ｘ（２）、・・・、ｘ（ｎ））と、教師データとの学習データを用いることになり、従来技術では、学習効率が低下する。
【００１３】
１つの側面では、本発明は、安定した学習を効率よく短時間で行うことができる学習装置、学習方法および学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
第１の案では、学習装置は、第１生成部と、第１学習部と、学習処理部とを有する。第１生成部は、時系列に複数のデータが並んだ時系列データを所定区間に分割することで、複数の第１部分時系列データを生成し、複数の第１部分時系列データと、時系列データ全体に対する教師データとをそれぞれ対応付けた第１学習データを生成する。第１学習部は、第１学習データを基にして、複数の層に含まれる各ＲＮＮ（Recurrent  Neural  Network）のうち、第１層に含まれる第１ＲＮＮの第１パラメータを学習する。学習処理部は、複数の層に含まれる各ＲＮＮのパラメータを学習する場合、学習済みの第１パラメータを第１ＲＮＮに設置して、第１部分時系列データをそれぞれ入力して得られるデータと、教師データとを基にして、複数の層に含まれる各ＲＮＮのパラメータを学習する。
【発明の効果】
【００１５】
安定した学習を効率よく短時間で行うことができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本実施例１に係る学習装置の処理を説明するための図（１）である。
【図２】図２は、本実施例１に係る学習装置の処理を説明するための図（２）である。
【図３】図３は、本実施例１に係る学習装置の処理を説明するための図（３）である。
【図４】図４は、本実施例１に係る学習装置の構成を示す機能ブロック図である。
【図５】図５は、本実施例１に係る学習データテーブルのデータ構造の一例を示す図である。
【図６】図６は、本実施例１に係る第１学習データテーブルのデータ構造の一例を示す図である。
【図７】図７は、本実施例１に係る第２学習データテーブルのデータ構造の一例を示す図である。
【図８】図８は、本実施例１の階層型のＲＮＮの一例を示す図である。
【図９】図９は、本実施例１に係る第１生成部の処理を説明するための図である。
【図１０】図１０は、本実施例１に係る第１学習部の処理を説明するための図である。
【図１１】図１１は、本実施例１に係る第２生成部の処理を説明するための図である。
【図１２】図１２は、本実施例１に係る第２学習部の処理を説明するための図である。
【図１３】図１３は、本実施例１に係る学習装置の処理手順を示すフローチャートである。
【図１４】図１４は、本実施例２の階層型のＲＮＮの一例を示す図である。
【図１５】図１５は、本実施例２に係る学習装置の構成を示す機能ブロック図である。
【図１６】図１６は、本実施例２に係る第１学習データテーブルのデータ構造の一例を示す図である。
【図１７】図１７は、本実施例２に係る第２学習データテーブルのデータ構造の一例を示す図である。
【図１８】図１８は、本実施例２に係る第３学習データテーブルのデータ構造の一例を示す図である。
【図１９】図１９は、本実施例２に係る第１生成部の処理を説明するための図である。
【図２０】図２０は、本実施例２に係る第１学習部の処理を説明するための図である。
【図２１】図２１は、本実施例２に係る第１学習部の教師ラベル更新処理の一例を示す図である。
【図２２】図２２は、本実施例２に係る第２生成部の処理を説明するための図である。
【図２３】図２３は、本実施例２に係る第２学習部の処理を説明するための図である。
【図２４】図２４は、本実施例２に係る第３生成部の処理を説明するための図である。
【図２５】図２５は、本実施例２に係る第３学習部の処理を説明するための図である。
【図２６】図２６は、本実施例２に係る学習装置の処理手順を示すフローチャートである。
【図２７】図２７は、本実施例３の階層型のＲＮＮの一例を示す図である。
【図２８】図２８は、本実施例３に係る学習装置の構成を示す機能ブロック図である。
【図２９】図２９は、本実施例３に係る学習データテーブルのデータ構造の一例を示す図である。
【図３０】図３０は、本実施例３に係る第１学習データテーブルのデータ構造の一例を示す図である。
【図３１】図３１は、本実施例３に係る第２学習データテーブルのデータ構造の一例を示す図である。
【図３２】図３２は、本実施例３に係る第１生成部の処理を説明するための図である。
【図３３】図３３は、本実施例３に係る第１学習部の処理を説明するための図である。
【図３４】図３４は、本実施例３に係る第１学習部の教師ラベル更新処理の一例を示す図である。
【図３５】図３５は、本実施例３に係る第２生成部の処理を説明するための図である。
【図３６】図３６は、本実施例３に係る第２学習部の処理を説明するための図である。
【図３７】図３７は、本実施例３に係る学習装置の処理手順を示すフローチャートである。
【図３８】図３８は、本実施例に係る学習装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【図３９】図３９は、従来のＲＮＮの処理の一例を示す図である。
【図４０】図４０は、従来のＲＮＮの学習方法の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示する学習装置、学習方法および学習プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１８】
図１は、本実施例１に係る学習装置の処理を説明するための図（１）である。本実施例１に係る学習装置では、時系列方向に分割した所定単位の下層のＲＮＮ２０と、それらを時系列方向に集約する上層のＲＮＮ３０とからなる階層型のリカレント型ネットワーク１５を用いて学習を行う。
【００１９】
まず、階層型のリカレント型ネットワーク１５に時系列データを入力した場合の処理の一例について説明する。ＲＮＮ２０は、ＲＮＮ３０に接続され、時系列データに含まれるデータ（たとえば、各単語ｘ）が入力されると、ＲＮＮ２０のパラメータθ２０に基づく計算を行って、隠れ状態ベクトルｈを算出し、ＲＮＮ２０，３０に出力する。ＲＮＮ２０は、次のデータが入力されると、前のデータで算出した隠れ状態ベクトルｈと、次のデータと用いて、パラメータθ２０に基づく計算を行い、隠れ状態ベクトルｈを算出する処理を繰り返し実行する。
【００２０】
たとえば、本実施例１に係るＲＮＮ２０を、時系列方向に４つ単位のＲＮＮとする。時系列データには、データｘ（０）、ｘ（１）、ｘ（２）、ｘ（３）、ｘ（４）、・・・、ｘ（ｎ）が含まれているものとする。
【００２１】
ＲＮＮ２０−０は、データｘ（０）を取得すると、データｘ（０）とパラメータθ２０とに基づく計算を行って、隠れ状態ベクトルｈ０を算出し、ＲＮＮ３０−０に出力する。ＲＮＮ２０−１は、データｘ（１）を取得すると、データｘ（１）と、隠れ状態ベクトルｈ０と、パラメータθ２０とに基づく計算を行って、隠れ状態ベクトルｈ１を算出し、ＲＮＮ３０−０に出力する。
【００２２】
ＲＮＮ２０−２は、データｘ（２）を取得すると、データｘ（２）と、隠れ状態ベクトルｈ１と、パラメータθ２０とに基づく計算を行って、隠れ状態ベクトルｈ２を算出し、ＲＮＮ３０−０に出力する。ＲＮＮ２０−３は、データｘ（３）を取得すると、データｘ（３）と、隠れ状態ベクトルｈ２と、パラメータθ２０とに基づく計算を行って、隠れ状態ベクトルｈ３を算出し、ＲＮＮ３０−０に出力する。
【００２３】
ＲＮＮ２０−４〜２０−７は、ＲＮＮ２０−０〜２０−３と同様にして、データｘ（４）〜ｘ（７）を取得すると、前のデータで算出された隠れ状態ベクトルｈと、取得したデータとを用いて、パラメータθ２０に基づく計算を行い、隠れ状態ベクトルｈを算出する。ＲＮＮ２０−４〜２０−７は、隠れ状態ベクトルｈ４〜ｈ７を、ＲＮＮ３０−１に出力する。
【００２４】
ＲＮＮ２０−ｎ−３〜２０−ｎは、ＲＮＮ２０−０〜２０−３と同様にして、データｘ（ｎ−３）〜ｘ（ｎ）を取得すると、前のデータで算出された隠れ状態ベクトルｈと、取得したデータとを用いて、パラメータθ２０に基づく計算を行い、隠れ状態ベクトルｈを算出する。ＲＮＮ２０−ｎ−３〜２０−ｎは、隠れ状態ベクトルｈｎ−３〜ｈｎを、ＲＮＮ３０−ｍに出力する。
【００２５】
ＲＮＮ３０は、ＲＮＮ２０から入力される複数の隠れ状態ベクトルｈ０〜ｈｎを集約し、ＲＮＮ３０のパラメータθ３０に基づく計算を行って、隠れ状態ベクトルＹを出力する。たとえば、ＲＮＮ３０は、ＲＮＮ２０から４つの隠れ状態ベクトルｈが入力されると、ＲＮＮ３０のパラメータθ３０に基づく計算を行って、隠れ状態ベクトルＹを算出する。ＲＮＮ３０は、続く４つの隠れ状態ベクトルｈが入力されると、一つ前に算出した隠れ状態ベクトルＹと、４つの隠れ状態ベクトルｈと、パラメータθ３０とを基にして、隠れ状態ベクトルＹを算出する処理を繰り返し実行する。
【００２６】
ＲＮＮ３０−０は、隠れ状態ベクトルｈ０〜ｈ３と、パラメータθ３０に基づく計算を行って、隠れ状態ベクトルＹ０を算出する。ＲＮＮ３０−１は、隠れ状態ベクトルＹ０と、隠れ状態ベクトルｈ４〜ｈ７と、パラメータθ３０に基づく計算を行って、隠れ状態ベクトルＹ１を算出する。ＲＮＮ３０−ｍは、一つ前に算出された隠れ状態ベクトルＹｍ−１と、隠れ状態ベクトルｈｎ−３〜ｈｎと、パラメータθ３０に基づく計算を行って、Ｙを算出する。Ｙは、時系列データに対する推定結果のベクトルとなる。
【００２７】
次に、本実施例１に係る学習装置が、リカレント型ネットワーク１５を学習する処理について説明する。学習装置は、第１学習処理を行った後に、第２学習処理を行う。第１学習処理において、学習装置は、下層の時系列方向に分割した各ＲＮＮ２０−０〜２０−ｎに与える教師データを、全体の教師データと見なして、パラメータθ２０を学習する。第２学習処理において、学習装置は、下層のパラメータθ２０を更新しないで、ＲＮＮ３０−０〜３０−ｎのパラメータθ３０の学習を、全体の教師データを用いて行う。
【００２８】
図２を用いて、第１学習処理を説明する。学習データには、時系列データと、教師データとが含まれる。時系列データには、「データｘ（０）、ｘ（１）、ｘ（２）、ｘ（３）、ｘ（４）、・・・、ｘ（ｎ）」が含まれているものとする。教師データを「Ｙ」とする。
【００２９】
学習装置は、ＲＮＮ２０−０に対して、データｘ（０）を入力し、データｘ（０）とパラメータθ２０とに基づく計算を行って、隠れ状態ベクトルｈ０を算出し、ノード３５−０に出力する。学習装置は、ＲＮＮ２０−１に対して、隠れ状態ベクトルｈ０と、データｘ（１）を入力し、隠れ状態ベクトルｈ０と、データｘ（１）とパラメータθ２０とに基づく計算を行って、隠れ状態ベクトルｈ１を算出し、ノード３５−０に出力する。学習装置は、ＲＮＮ２０−２に対して、隠れ状態ベクトルｈ１と、データｘ（２）を入力し、隠れ状態ベクトルｈ１と、データｘ（２）とパラメータθ２０とに基づく計算を行って、隠れ状態ベクトルｈ２を算出し、ノード３５−０に出力する。学習装置は、ＲＮＮ２０−３に対して、隠れ状態ベクトルｈ２と、データｘ（３）を入力し、隠れ状態ベクトルｈ２と、データｘ（３）とパラメータθ２０とに基づく計算を行って、隠れ状態ベクトルｈ３を算出し、ノード３５−０に出力する。
【００３０】
学習装置は、ノード３５−０に入力される各隠れ状態ベクトルｈ０〜ｈ３を集約したベクトルが、教師データ「Ｙ」に近づくように、ＲＮＮ２０のパラメータθ２０を更新する。
【００３１】
同様にして、学習装置は、時系列データｘ（４）〜ｘ（７）を、ＲＮＮ２０−４〜２０−７に入力し、各隠れ状態ベクトルｈ４〜ｈ７を算出する。学習装置は、ノード３５−１に入力される各隠れ状態ベクトルｈ４〜ｈ７を集約したベクトルが、教師データ「Ｙ」に近づくように、ＲＮＮ２０のパラメータθ２０を更新する。
【００３２】
学習装置は、時系列データｘ（ｎ−３）〜ｘ（ｎ）を、ＲＮＮ２０−ｎ−３〜２０−ｎに入力し、各隠れ状態ベクトルｈｎ−３〜ｈｎを算出する。学習装置は、ノード３５−ｍに入力される各隠れ状態ベクトルｈｎ−３〜ｈｎを集約したベクトルが、教師データ「Ｙ」に近づくように、ＲＮＮ２０のパラメータθ２０を更新する。学習装置は、複数の時系列データの組（ｘ（０）〜ｘ（３））、（ｘ（４）〜ｘ（７））、（ｘ（ｎ−３）〜ｘ（ｎ））を用いて、上記処理を繰り返し実行する。
【００３３】
図３を用いて、第２学習処理を説明する。学習装置は、第２学習処理を行う場合に、第２学習処理を行うための時系列データの各データｈｍ（０）、ｈｍ（４）、・・、ｈｍ（ｔ１）を生成する。データｈｍ（０）は、隠れ状態ベクトルｈ０〜ｈ３を集約したベクトルである。データｈｍ（４）は、隠れ状態ベクトルｈ４〜ｈ７を集約したベクトルである。データｈｍ（ｔ１）は、隠れ状態ベクトルｈｎ−３〜ｈｎを集約したベクトルである。
【００３４】
学習装置は、データｈｍ（０）を、ＲＮＮ３０−０に入力し、データｈｍ（０）と、パラメータθ３０とに基づく計算を行って、隠れ状態ベクトルＹ０を算出し、ＲＮＮ３０−１に出力する。学習装置は、データｈｍ（４）と、隠れ状態ベクトルＹ０とをＲＮＮ３０−１に入力し、データｈｍ（０）と、隠れ状態ベクトルＹ０とパラメータθ３０とに基づく計算を行って、隠れ状態ベクトルＹ１を算出し、次の時系列のＲＮＮ３０−２（図示略）に出力する。学習装置は、データｈｍ（ｔ１）と、一つ前に算出された隠れ状態ベクトルＹｍ−１と、パラメータθ３０とに基づく計算を行って、隠れ状態ベクトルＹｍを算出する。
【００３５】
学習装置は、ＲＮＮ３０−ｍから出力されるＹｍが、教師データの「Ｙ」に近づくように、ＲＮＮ３０のパラメータθ３０を更新する。学習装置は、複数の時系列データの組（ｈｍ（０）〜ｈｍ（ｔ１））を用いて、上記処理を繰り返し実行する。第２学習処理では、ＲＮＮ２０のパラメータθ２０の更新は行わない。
【００３６】
上記のように、本実施例１に係る学習装置は、下層の時系列方向に分割した各ＲＮＮ２０−０〜２０−ｎに与える教師データを、全体の教師データと見なして、パラメータθ２０を学習する。また、学習装置は、下層のパラメータθ２０を更新しないで、ＲＮＮ３０−０〜３０−ｎのパラメータθ３０の学習を、全体の教師データを用いて行う。このように、下層のパラメータθ２０をまとめて学習し、上層のパラメータθ３０をまとめて学習するため、安定した学習を行うことができる。
【００３７】
また、本実施例１に係る学習装置は、上層、下層に分けて所定範囲内で学習を行うため、学習効率を向上させることができる。たとえば、上層の計算コストを、１／下層区間長（たとえば、４）に削減することができる。下層については、従来技術と同一の演算回数で、「時系列データ長／下層区間長」倍の学習（パラメータθ２０を更新する学習）を行うことができる。
【００３８】
次に、本実施例１に係る学習装置の構成の一例について説明する。図４は、本実施例１に係る学習装置の構成を示す機能ブロック図である。図４に示すように、この学習装置１００は、通信部１１０、入力部１２０、表示部１３０、記憶部１４０、制御部１５０を有する。なお、本実施例１に係る学習装置１００は、ＲＮＮの一例として、ＬＳＴＭ（Long  Short  Term  Memory）を用いる。
【００３９】
通信部１１０は、ネットワーク等を介して、外部装置（図示略）と通信を実行する処理部である。たとえば、通信部１１０は、後述する学習データテーブル１４１の情報を外部装置から受信する。通信部１１０は、通信装置の一例である。後述する制御部１５０は、通信部１１０を介して、外部装置とデータをやり取りする。
【００４０】
入力部１２０は、各種の情報を、学習装置１００に入力するための入力装置である。たとえば、入力部１２０は、キーボードやタッチパネル等に対応する。
【００４１】
表示部１３０は、制御部１５０から出力される各種の情報を表示する表示装置である。表示部１３０は、液晶ディスプレイやタッチパネル等に対応する。
【００４２】
記憶部１４０は、学習データテーブル１４１、第１学習データテーブル１４２、第２学習データテーブル１４３、パラメータテーブル１４４を有する。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００４３】
学習データテーブル１４１は、学習データを格納するテーブルである。図５は、本実施例１に係る学習データテーブルのデータ構造の一例を示す図である。図５に示すように、学習データテーブル１４１は、教師ラベルと、時系列データとを対応付ける。たとえば、時系列データ「ｘ１（０）、ｘ１（１）、・・・、ｘ１（ｎ）」に対応する教師ラベル（教師データ）は、「Ｙ」となる。
【００４４】
第１学習データテーブル１４２は、学習データテーブル１４１に格納される時系列データを分割した、第１部分時系列データを格納するテーブルである。図６は、本実施例１に係る第１学習データテーブルのデータ構造の一例を示す図である。図６に示すように、第１学習データテーブル１４２は、教師ラベルと、第１部分時系列データとを対応付ける。各第１部分時系列データは、時系列データを４つ毎に分割したデータである。各第１部分時系列データを生成する処理は後述する。
【００４５】
第２学習データテーブル１４３は、第１学習データテーブル１４２の各第１部分時系列データを、下層のＬＳＴＭに入力して得られる第２部分時系列データを格納するテーブルである。図７は、本実施例１に係る第２学習データテーブルのデータ構造の一例を示す図である。図７に示すように、第２学習データテーブル１４３は、教師ラベルと、第２部分時系列データとを対応付ける。各第２部分時系列データは、第１学習データテーブル１４２の各第１部分時系列データを、下層のＬＳＴＭに入力して得られる。各第２部分時系列データを生成する処理は後述する。
【００４６】
パラメータテーブル１４４は、下層のＬＳＴＭのパラメータ、上層のＬＳＴＭのパラメータ、Affine変換部のパラメータを格納するテーブルである。
【００４７】
制御部１５０は、図８に示す階層型のＲＮＮを実行して、パラメータの学習処理を行う。図８は、本実施例１の階層型のＲＮＮの一例を示す図である。図８に示すように、この階層型のＲＮＮは、ＬＳＴＭ５０，６０と、Mean  Pooling部５５、Affine変換部６５ａと、Softmax部６５ｂとを有する。
【００４８】
ＬＳＴＭ５０は、図１で説明した下層のＲＮＮ２０に対応するＲＮＮである。ＬＳＴＭ５０は、Mean  Pooling部５５に接続される。ＬＳＴＭ５０は、時系列データに含まれるデータが入力されると、ＬＳＴＭ５０のパラメータθ５０に基づく計算を行って、隠れ状態ベクトルｈを算出し、Mean  Pooling部５５に出力する。ＬＳＴＭ５０は、次のデータが入力されると、前のデータで算出した隠れ状態ベクトルｈと、次のデータと用いて、パラメータθ５０に基づく計算を行い、隠れ状態ベクトルｈを算出する処理を繰り返し実行する。
【００４９】
ＬＳＴＭ５０−０は、データｘ（０）を取得すると、データｘ（０）とパラメータθ５０とに基づく計算を行って、隠れ状態ベクトルｈ０を算出し、Mean  Pooling部５５−０に出力する。ＬＳＴＭ５０−１は、データｘ（１）を取得すると、データｘ（１）と、隠れ状態ベクトルｈ０と、パラメータθ５０とに基づく計算を行って、隠れ状態ベクトルｈ１を算出し、Mean  Pooling部５５−０に出力する。
【００５０】
ＬＳＴＭ５０−２は、データｘ（２）を取得すると、データｘ（２）と、隠れ状態ベクトルｈ１と、パラメータθ５０とに基づく計算を行って、隠れ状態ベクトルｈ２を算出し、Mean  Pooling部５５−０に出力する。ＬＳＴＭ５０−３は、データｘ（３）を取得すると、データｘ（３）と、隠れ状態ベクトルｈ２と、パラメータθ５０とに基づく計算を行って、隠れ状態ベクトルｈ３を算出し、Mean  Pooling部５５−０に出力する。
【００５１】
ＬＳＴＭ５０−４〜５０−７は、ＬＳＴＭ５０−０〜５０−３と同様にして、データｘ（４）〜ｘ（７）を取得すると、前のデータで算出された隠れ状態ベクトルｈと、取得したデータとを用いて、パラメータθ５０に基づく計算を行い、隠れ状態ベクトルｈを算出する。ＬＳＴＭ５０−４〜５０−７は、隠れ状態ベクトルｈ４〜ｈ７を、Mean  Pooling部５５−１に出力する。
【００５２】
ＬＳＴＭ５０−ｎ−３〜５０−ｎは、ＬＳＴＭ５０−０〜５０−３と同様にして、データｘ（ｎ−３）〜ｘ（ｎ）を取得すると、前のデータで算出された隠れ状態ベクトルｈと、取得したデータとを用いて、パラメータθ５０に基づく計算を行い、隠れ状態ベクトルｈを算出する。ＬＳＴＭ５０−ｎ−３〜５０−ｎは、隠れ状態ベクトルｈｎ−３〜ｈｎを、Mean  Pooling部５５−ｍに出力する。
【００５３】
Mean  Pooling部５５は、下層のＬＳＴＭ５０から入力される各隠れ状態ベクトルｈを集約し、集約したベクトルｈｍを、上層のＬＳＴＭ６０に出力する。たとえば、Mean  Pooling部５５−０は、隠れ状態ベクトルｈ０〜ｈ３を、平均化したベクトルｈｍ（０）を、ＬＳＴＭ６０−０に入力する。Mean  Pooling部５５−１は、隠れ状態ベクトルｈ４〜ｈ７を、平均化したベクトルｈｍ（４）を、ＬＳＴＭ６０−１に入力する。Mean  Pooling部５５−ｍは、隠れ状態ベクトルｈｎ−３〜ｈｎを、平均化したベクトルｈｍ（ｎ−３）を、ＬＳＴＭ６０−ｍに入力する。
【００５４】
ＬＳＴＭ６０は、図１で説明した上層のＲＮＮ３０に対応するＲＮＮである。ＬＳＴＭ６０は、Mean  Pooling部５５から入力される複数の隠れ状態ベクトルｈｍと、ＬＳＴＭ６０のパラメータθ６０に基づく計算を行って、隠れ状態ベクトルＹを出力する。ＬＳＴＭ６０は、Mean  Pooling部５５から、続く隠れ状態ベクトルｈｍが入力されると、一つ前に算出した隠れ状態ベクトルＹと、隠れ状態ベクトルｈｍと、パラメータθ６０とを基にして、隠れ状態ベクトルＹを算出する処理を繰り返し実行する。
【００５５】
ＬＳＴＭ６０−０は、隠れ状態ベクトルｈｍ（０）と、パラメータθ６０に基づく計算を行って、隠れ状態ベクトルＹ０を算出する。ＬＳＴＭ６０−１は、隠れ状態ベクトルＹ０と、隠れ状態ベクトルｈｍ（４）と、パラメータθ６０に基づく計算を行って、隠れ状態ベクトルＹ１を算出する。ＬＳＴＭ６０−ｍは、一つ前に算出された隠れ状態ベクトルＹｍ−１と、隠れ状態ベクトルｈｍ（ｎ−３）と、パラメータθ６０に基づく計算を行って、隠れ状態ベクトルＹｍを算出する。ＬＳＴＭ６０−ｍは、ＹｍをAffine変換部６５ａに出力する。
【００５６】
Affine変換部６５ａは、ＬＳＴＭ６０から出力される隠れ状態ベクトルＹｍに対して、アフィン変換を実行する処理部ある。たとえば、Affine変換部６５ａは、式（１）に基づいて、アフィン変換を実行し、ベクトルＹＡを算出する。式（１）に含まれるＡは、行列であり、ｂは、ベクトルである。行列Ａの各要素、ベクトルｂの各要素には、学習される重みが設定される。
【００５７】
ＹＡ＝ＡＹｍ＋ｂ・・・（１）
【００５８】
Softmax部６５ｂは、アフィン変換されたベクトルＹＡをソフトマック関数に入力して、値「Ｙ」を算出する処理部である。Ｙは、時系列データに対する推定結果のベクトルとなる。
【００５９】
図４の説明に戻る。制御部１５０は、取得部１５１と、第１生成部１５２と、第１学習部１５３と、第２生成部１５４と、第２学習部１５５とを有する。制御部１５０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、制御部１５０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。第２生成部１５４および第２学習部１５５は、学習処理部の一例である。
【００６０】
取得部１５１は、外部装置（図示略）からネットワークを介して、学習データテーブル１４１の情報を取得する処理部である。取得部１５１は、取得した学習データテーブル１４１の情報を、学習データテーブル１４１に格納する。
【００６１】
第１生成部１５２は、学習データテーブル１４１を基にして、第１学習データテーブル１４２の情報を生成する処理部である。図９は、本実施例１に係る第１生成部の処理を説明するための図である。第１生成部１５２は、学習データテーブル１４１のレコードを選択し、選択したレコードの時系列データを所定区間である４つ単位に分割する。第１生成部１５２は、分割した４つのデータの組（第１部分時系列データ）それぞれと、分割前の時系列データに対応する教師ラベルとを対応付けて、第１学習データテーブル１４２に格納する。
【００６２】
たとえば、第１生成部１５２は、時系列データ「ｘ１（０）、ｘ１（１）、・・・、ｘ（ｎ１）」を、第１部分時系列データ「ｘ１（０）、ｘ１（１）、ｘ１（２）、ｘ１（３）」、「ｘ１（４）、ｘ１（５）、ｘ１（６）、ｘ１（７）」、・・・、「ｘ１（ｎ１−３）、ｘ１（ｎ１−２）、ｘ１（ｎ１−１）、ｘ１（ｎ１）」に分割する。第１生成部１５２は、各第１部分時系列データに、分割前の時系列データ「ｘ１（０）、ｘ１（１）、・・・、ｘ（ｎ１）」に対応する教師ラベル「Ｙ」を対応付けて、第１学習データテーブル１４２に格納する。
【００６３】
第１生成部１５２は、学習データテーブル１４１の他のレコードについても、上記処理を繰り返し実行することで、第１学習データテーブル１４２の情報を生成する。第１生成部１５２は、第１学習データテーブル１４２の情報を、第１学習データテーブル１４２に格納する。
【００６４】
第１学習部１５３は、第１学習データテーブル１４２を基にして、階層型のＲＮＮのＬＳＴＭ５０のパラメータθ５０を学習する処理部である。第１学習部１５３は、学習したパラメータθ５０をパラメータテーブル１４４に格納する。第１学習部１５３の処理は、上述した、第１学習処理に対応する。
【００６５】
図１０は、本実施例１に係る第１学習部の処理を説明するための図である。第１学習部１５３は、ＬＳＴＭ５０、Mean  Pooling部５５、Affine変換部６５ａ、Softmax部６５ｂを実行する。第１学習部１５３は、ＬＳＴＭ５０をMean  Pooling部５５に接続し、Mean  Pooling部５５をAffine変換部６５ａに接続し、Affine変換部６５ａをSoftmax部６５ｂに接続する。第１学習部１５３は、ＬＳＴＭ５０のパラメータθ５０を初期値に設定する。
【００６６】
第１学習部１５３は、第１学習データテーブル１４２の第１部分時系列データに格納された各データを、ＬＳＴＭ５０−０〜５０−３に順に入力し、Softmax部６５ｂから出力される推測ラベルが、教師ラベルに近づくように、ＬＳＴＭ５０のパラメータθ５０およびAffine変換部６５ａのパラメータを学習する。第１学習部１５３は、第１学習データテーブル１４２に格納された各第１部分時系列データについて、上記処理を繰り返し実行する。たとえば、第１学習部１５３は、勾配降下法等を用いて、ＬＳＴＭ５０のパラメータθ５０およびAffine変換部６５ａのパラメータを学習する。
【００６７】
第２生成部１５４は、第１学習データテーブル１４２を基にして、第２学習データテーブル１４３の情報を生成する処理部である。図１１は、本実施例１に係る第２生成部の処理を説明するための図である。
【００６８】
第２生成部１５４は、ＬＳＴＭ５０と、Mean  Pooling部５５とを実行し、第１学習部１５３によって学習済みのパラメータθ５０を、ＬＳＴＭ５０に設定する。第２生成部１５４は、各第１部分時系列データを、ＬＳＴＭ５０−１〜５０−３に順に入力し、Mean  Pooling部５５から出力されるデータｈｍを算出する処理を繰り返し実行する。第２生成部１５４は、学習データテーブル１４１の１つのレコードの時系列データから分割された各第１部分時系列データをＬＳＴＭ５０に入力することで、一組の第２部分時系列データを算出する。かかる一組の第２部分時系列データに対応する教師ラベルは、分割元の時系列データに対応する教師ラベルとなる。
【００６９】
たとえば、第２生成部１５４は、各第１部分時系列データ「ｘ１（０）、ｘ１（１）、ｘ１（２）、ｘ１（３）」、「ｘ１（４）、ｘ１（５）、ｘ１（６）、ｘ１（７）」、・・・、「ｘ１（ｎ１−３）、ｘ１（ｎ１−２）、ｘ１（ｎ１−１）、ｘ１（ｎ１）」をＬＳＴＭ５０にそれぞれ入力することで、第２部分時系列データ「ｈｍ１（０）、ｈｍ１（４）、・・・、ｈｍ１（ｔ１）」を算出する。かかる第２部分時系列データ「ｈｍ１（０）、ｈｍ１（４）、・・・、ｈｍ１（ｔ１）」に対応する教師ラベルは、時系列データ「ｘ１（０）、ｘ１（１）、・・・、ｘ（ｎ１）」の教師ラベル「Ｙ」となる。
【００７０】
第２生成部１５４は、第１学習データテーブル１４２の他のレコードについても、上記処理を繰り返し実行することで、第２学習データテーブル１４３の情報を生成する。第２生成部１５４は、第２学習データテーブル１４３の情報を、第２学習データテーブル１４３に格納する。
【００７１】
第２学習部１５５は、第２学習データテーブル１４３を基にして、階層型のＲＮＮのＬＳＴＭ６０のパラメータθ６０を学習する処理部である。第２学習部１５５は、学習したパラメータθ６０をパラメータテーブル１４４に格納する。第２学習部１５５の処理は、上述した第２学習処理に対応する。また、第２学習部１５５は、Affine変換部６５ａのパラメータを、パラメータテーブル１４４に格納する。
【００７２】
図１２は、本実施例１に係る第２学習部の処理を説明するための図である。第２学習部１５５は、ＬＳＴＭ６０、Affine変換部６５ａ、Softmax部６５ｂを実行する。第２学習部１５５は、ＬＳＴＭ６０をAffine変換部６５ａに接続し、Affine変換部６５ａをSoftmax部６５ｂに接続する。第２学習部１５５は、ＬＳＴＭ６０のパラメータθ６０を初期値に設定する。
【００７３】
第２学習部１５５は、第２学習データテーブル１４３の第２部分時系列データに格納された各データを、ＬＳＴＭ６０−０〜６０−ｍに順に入力し、Softmax部６５ｂから出力される推測ラベルが、教師ラベルに近づくように、ＬＳＴＭ６０のパラメータθ６０およびAffine変換部６５ａのパラメータを学習する。第２学習部１５５は、第２学習データテーブル１４３に格納された各第２部分時系列データについて、上記処理を繰り返し実行する。たとえば、第２学習部１５５は、勾配降下法等を用いて、ＬＳＴＭ６０のパラメータθ６０およびAffine変換部６５ａのパラメータを学習する。
【００７４】
次に、本実施例１に係る学習装置１００の処理手順の一例について説明する。図１３は、本実施例１に係る学習装置の処理手順を示すフローチャートである。図１３に示すように、学習装置１００の第１生成部１５２は、学習データテーブル１４１に含まれる時系列データを所定区間に分割して、第１部分時系列データを生成し、第１学習データテーブル１４２の情報を生成する（ステップＳ１０１）。
【００７５】
学習装置１００の第１学習部１５３は、第１学習データテーブル１４２を基にして、下層のＬＳＴＭ５０のパラメータθ５０を学習する（ステップＳ１０２）。第１学習部１５３は、学習済みの下層のＬＳＴＭ５０のパラメータθ５０をパラメータテーブル１４４に格納する（ステップＳ１０３）。
【００７６】
学習装置１００の第２生成部１５４は、第１学習データテーブルと、学習済みの下層のＬＳＴＭのパラメータθ５０を用いて、第２学習データテーブル１４３の情報を生成する（ステップＳ１０４）。
【００７７】
学習装置１００の第２学習部１５５は、第２学習データテーブル１４３を基にして、上層のＬＳＴＭ６０のパラメータθ６０をおよびAffine変換部のパラメータを学習する（ステップＳ１０５）。第２学習部１５５は、学習済みの上層のＬＳＴＭ６０のパラメータθ６０をおよびAffine変換部のパラメータをパラメータテーブル１４４に格納する（ステップＳ１０６）。なお、パラメータテーブル１４４の情報は、外部装置に通知されてもよいし、管理者端末に出力して表示されてもよい。
【００７８】
次に、本実施例１に係る学習装置１００の効果について説明する。学習装置１００は、時系列データを所定区間に分割した第１部分時系列データと生成し、下層の時系列方向に分割した各ＬＳＴＭ５０−０〜５０−ｎに与える教師データを、全体の教師データと見なして、パラメータθ５０を学習する。また、学習装置１００は、学習済みのパラメータθ６０を更新しないで、上層のＬＳＴＭ６０−０〜６０−ｍのパラメータθ６０の学習を、全体の教師データを用いて行う。このように、下層のパラメータθ５０をまとめて学習した後に、上層のパラメータθ６０をまとめて学習するため、安定した学習を行うことができる。
【００７９】
また、本実施例１に係る学習装置１００は、上層、下層に分けて所定範囲内で学習を行うため、学習効率を向上させることができる。たとえば、上層の計算コストを、１／下層区間長（たとえば、４）に削減することができる。下層については、従来技術と同一の演算回数で、「時系列データ長／下層区間長」倍の学習を行うことができる。
【実施例２】
【００８０】
図１４は、本実施例２の階層型のＲＮＮの一例を示す図である。図１４に示すように、この階層型のＲＮＮは、ＲＮＮ７０と、ＧＲＵ（Gated  Recurrent  Unit）７１と、ＬＳＴＭ７２と、Affine変換部７５ａと、Softmax部７５ｂとを有する。図１４では一例として、下層のＲＮＮとして、ＧＲＵ７１、ＲＮＮ７０を用いて説明するが、下層のＲＮＮに他のＲＮＮが更に接続されていてもよい。
【００８１】
ＲＮＮ７０は、ＧＲＵ７１に接続され、時系列データに含まれるデータ（たとえば、単語ｘ）が入力されると、ＲＮＮ７０のパラメータθ７０に基づく計算を行って、隠れ状態ベクトルｈを算出し、ＲＮＮ７０に入力する。ＲＮＮ７０は、次のデータが入力されると、前のデータで計算した隠れ状態ベクトルｈと、次のデータとを用いて、パラメータθ７０に基づく計算を行い、隠れ状態ベクトルｒを算出し、ＧＲＵ７１に入力する。ＲＮＮ７０は、２つのデータが入力された際に算出された隠れ状態ベクトルｒを、ＧＲＵ７１に入力する処理を繰り返し実行する。
【００８２】
たとえば、本実施例２に係るＲＮＮ７０に入力する時系列データには、データｘ（０）、ｘ（１）、ｘ（２）、ｘ（３）、ｘ（４）、・・・、ｘ（ｎ）が含まれているものとする。
【００８３】
ＲＮＮ７０−０は、データｘ（０）を取得すると、データｘ（０）とパラメータθ７０とに基づく計算を行って、隠れ状態ベクトルｈ０を算出し、ＲＮＮ７０−１に出力する。ＲＮＮ７０−１は、データｘ（１）を取得すると、データｘ（１）と、隠れ状態ベクトルｈ０と、パラメータθ７０とに基づく計算を行って、隠れ状態ベクトルｒ（１）を算出し、ＧＲＵ７１−０に出力する。
【００８４】
ＲＮＮ７０−２は、データｘ（２）を取得すると、データｘ（２）とパラメータθ７０とに基づく計算を行って、隠れ状態ベクトルｈ２を算出し、ＲＮＮ７０−３に出力する。ＲＮＮ７０−３は、データｘ（３）を取得すると、データｘ（３）と、隠れ状態ベクトルｈ２と、パラメータθ７０とに基づく計算を行って、隠れ状態ベクトルｒ（３）を算出し、ＧＲＵ７１−１に出力する。
【００８５】
ＲＮＮ７０−４，７０−５は、ＲＮＮ７０−０，７０−１と同様にして、データｘ（４）、ｘ（５）が入力されると、パラメータθ７０に基づく計算を行って、隠れ状態ベクトルｈ４、ｒ（５）を算出し、隠れ状態ベクトルｒ（５）を、ＧＲＵ７１−２に出力する。
【００８６】
ＲＮＮ７０−６，７０−７は、ＲＮＮ７０−２，７０−３と同様にして、データｘ（６）、ｘ（７）が入力されると、パラメータθ７０に基づく計算を行って、隠れ状態ベクトルｈ６、ｒ（７）を算出し、隠れ状態ベクトルｒ（７）を、ＧＲＵ７１−３に出力する。
【００８７】
ＲＮＮ７０−ｎ−３，７０−ｎ−２は、ＲＮＮ７０−０，７０−１と同様にして、データｘ（ｎ−３）、ｘ（ｎ−２）が入力されると、パラメータθ７０に基づく計算を行って、隠れ状態ベクトルｈｎ−３、ｒ（ｎ−２）を算出し、隠れ状態ベクトルｒ（ｎ−２）を、ＧＲＵ７１−ｍ−１に出力する。
【００８８】
ＲＮＮ７０−ｎ−１，７０−ｎは、ＲＮＮ７０−２，７０−３と同様にして、データｘ（ｎ−１）、ｘ（ｎ）が入力されると、パラメータθ７０に基づく計算を行って、隠れ状態ベクトルｈｎ−１、ｒ（ｎ）を算出し、隠れ状態ベクトルｒ（ｎ）を、ＧＲＵ７１−ｍに出力する。
【００８９】
ＧＲＵ７１は、ＲＮＮ７０から入力される複数の隠れ状態ベクトルｒに対して、ＧＲＵ７１のパラメータθ７１に基づく計算を行い、隠れ状態ベクトルｈｇを算出し、ＧＲＵ７１に入力する。ＧＲＵ７１は、次の隠れ状態ベクトルｒが入力されると、隠れ状態ベクトルｈｇと、次の隠れ状態ベクトルｒと用いて、パラメータθ７１に基づく計算を行い、隠れ状態ベクトルｇを算出する。ＧＲＵ７１は、隠れ状態ベクトルｇを、ＬＳＴＭ７２に出力する。ＧＲＵ７１は、２つの隠れ状態ベクトルｒが入力された際に算出された隠れ状態ベクトルｇを、ＬＳＴＭ７２に入力する処理を繰り返し実行する。
【００９０】
ＧＲＵ７１−０は、隠れ状態ベクトルｒ（１）を取得すると、隠れ状態ベクトルｒ（１）とパラメータθ７１とに基づく計算を行って、隠れ状態ベクトルｈｇ０を算出し、ＧＲＵ７１−１に出力する。ＧＲＵ７１−１は、隠れ状態ベクトルｒ（３）を取得すると、隠れ状態ベクトルｒ（３）と、隠れ状態ベクトルｈｇ０と、パラメータθ７１とに基づく計算を行って、隠れ状態ベクトルｇ（１）を算出し、ＬＳＴＭ７２−０に出力する。
【００９１】
ＧＲＵ７１−２，７１−３は、ＧＲＵ７１−０，７１−１と同様にして、隠れ状態ベクトルｒ（５）、ｒ（７）が入力されると、パラメータθ７１に基づく計算を行って、隠れ状態ベクトルｈｇ２、ｇ（７）を算出し、隠れ状態ベクトルｇ（７）を、ＬＳＴＭ７２−１に出力する。
【００９２】
ＧＲＵ７１−ｍ−１，７１−ｍは、ＧＲＵ７１−０，７１−１と同様にして、隠れ状態ベクトルｒ（ｎ−２）、ｒ（ｎ）が入力されると、パラメータθ７１に基づく計算を行って、隠れ状態ベクトルｈｇｍ−１、ｇ（ｎ）を算出し、隠れ状態ベクトルｇ（ｎ）を、ＬＳＴＭ７２−ｌに出力する。
【００９３】
ＬＳＴＭ７２は、ＧＲＵ７１から隠れ状態ベクトルｇが入力されると、隠れ状態ベクトルｇとＬＳＴＭ７２のパラメータθ７２とに基づく計算を行い、隠れ状態ベクトルｈｌを算出する。ＬＳＴＭ７２は、次の隠れ状態ベクトルｇが入力されると、隠れ状態ベクトルｈｌ、ｇと、パラメータθ７２に基づく計算を行い、隠れ状態ベクトルｈｌを算出する。ＬＳＴＭ７２は、隠れ状態ベクトルｇが入力されるたびに、上記処理を繰り返し実行する。そして、ＬＳＴＭ７２は、隠れ状態ベクトルｈ１を、Affine変換部６５ａに出力する。
【００９４】
ＬＳＴＭ７２−０は、ＧＲＵ７１−１から隠れ状態ベクトルｇ（３）が入力されると、隠れ状態ベクトルｇ（３）とＬＳＴＭ７２のパラメータθ７２とに基づく計算を行い、隠れ状態ベクトルｈｌ０を算出する。ＬＳＴＭ７２−０は、隠れ状態ベクトルｈｌ０を、ＬＳＴＭ７２−１に出力する。
【００９５】
ＬＳＴＭ７２−１は、ＧＲＵ７１−３から隠れ状態ベクトルｇ（７）が入力されると、隠れ状態ベクトルｇ（７）とＬＳＴＭ７２のパラメータθ７２とに基づく計算を行い、隠れ状態ベクトルｈｌ１を算出する。ＬＳＴＭ７２−１は、隠れ状態ベクトルｈｌ１を、ＬＳＴＭ７２−２（図示略）に出力する。
【００９６】
ＬＳＴＭ７２−ｌは、ＧＲＵ７１−ｍから隠れ状態ベクトルｇ（ｎ）が入力されると、隠れ状態ベクトルｇ（ｎ）とＬＳＴＭ７２のパラメータθ７２とに基づく計算を行い、隠れ状態ベクトルｈｌｌを算出する。ＬＳＴＭ７２−ｌは、隠れ状態ベクトルｈｌｌを、Affine変換部６５ａに出力する。
【００９７】
Affine変換部７５ａは、ＬＳＴＭ７２から出力される隠れ状態ベクトルｈｌｌに対して、アフィン変換を実行する処理部ある。たとえば、Affine変換部７５ａは、式（２）に基づいて、アフィン変換を実行し、ベクトルＹＡを算出する。式（２）に含まれるＡ、ｂに関する説明は、式（１）に含まれるＡ、ｂに関する説明と同様である。
【００９８】
ＹＡ＝Ａｈｌｌ＋ｂ・・・（２）
【００９９】
Softmax部７５ｂは、アフィン変換されたベクトルＹＡをソフトマック関数に入力して、値「Ｙ」を算出する処理部である。Ｙは、時系列データに対する推定結果のベクトルとなる。
【０１００】
次に、本実施例２に係る学習装置の構成の一例について説明する。図１５は、本実施例２に係る学習装置の構成を示す機能ブロック図である。図１５に示すように、この学習装置２００は、通信部２１０、入力部２２０、表示部２３０、記憶部２４０、制御部２５０を有する。
【０１０１】
通信部２１０は、ネットワーク等を介して、外部装置（図示略）と通信を実行する処理部である。たとえば、通信部２１０は、後述する学習データテーブル２４１の情報を外部装置から受信する。通信部２１０は、通信装置の一例である。後述する制御部２５０は、通信部２１０を介して、外部装置とデータをやり取りする。
【０１０２】
入力部２２０は、各種の情報を、学習装置２００に入力するための入力装置である。たとえば、入力部２２０は、キーボードやタッチパネル等に対応する。
【０１０３】
表示部２３０は、制御部２５０から出力される各種の情報を表示する表示装置である。表示部２３０は、液晶ディスプレイやタッチパネル等に対応する。
【０１０４】
記憶部２４０は、学習データテーブル２４１、第１学習データテーブル２４２、第２学習データテーブル２４３、第３学習データテーブル２４４、パラメータテーブル２４５を有する。記憶部２４０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。
【０１０５】
学習データテーブル２４１は、学習データを格納するテーブルである。学習データテーブル２４１のデータ構造は、図５に示した学習データテーブル１４１のデータ構造と同様であるため、説明を省略する。
【０１０６】
第１学習データテーブル２４２は、学習データテーブル２４１に格納される時系列データを分割した、第１部分時系列データを格納するテーブルである。図１６は、本実施例２に係る第１学習データテーブルのデータ構造の一例を示す図である。図１６に示すように、第１学習データテーブル２４２は、教師ラベルと、第１部分時系列データとを対応付ける。本実施例２の各第１部分時系列データは、時系列データを２つ毎に分割したデータである。各第１部分時系列データを生成する処理は後述する。
【０１０７】
第２学習データテーブル２４３は、第１学習データテーブル２４２の各第１部分時系列データを、下層のＲＮＮ７０に入力して得られる第２部分時系列データを格納するテーブルである。図１７は、本実施例２に係る第２学習データテーブルのデータ構造の一例を示す図である。図１７に示すように、第２学習データテーブル２４３は、教師ラベルと、第２部分時系列データとを対応付ける。各第２部分時系列データを生成する処理は後述する。
【０１０８】
第３学習データテーブル２４４は、学習データテーブル２４１の時系列データを、下層のＲＮＮ７０に入力した場合に、上層のＧＲＵ７１から出力される第３部分時系列データを格納するテーブルである。図１８は、本実施例２に係る第３学習データテーブルのデータ構造の一例を示す図である。図１８に示すように、第３学習データテーブル２４４は、教師ラベルと、第３部分時系列データとを対応付ける。各第３部分時系列データを生成する処理は後述する。
【０１０９】
パラメータテーブル２４５は、下層のＲＮＮ７０のパラメータθ７０、ＧＲＵのパラメータθ７１、上層のＬＳＴＭ７２のパラメータθ７２、Affine変換部７５ａのパラメータを格納するテーブルである。
【０１１０】
制御部２５０は、図１４で説明した階層型のＲＮＮを実行して、パラメータの学習を行う処理部である。制御部２５０は、取得部２５１、第１生成部２５２、第１学習部２５３、第２生成部２５４、第２学習部２５５、第３生成部２５６、第３学習部２５７を有する。制御部２５０は、ＣＰＵやＭＰＵなどによって実現できる。また、制御部２５０は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによっても実現できる。
【０１１１】
取得部２５１は、外部装置（図示略）からネットワークを介して、学習データテーブル２４１の情報を取得する処理部である。取得部２５１は、取得した学習データテーブル２４１の情報を、学習データテーブル２４１に格納する。
【０１１２】
第１生成部２５２は、学習データテーブル２４１を基にして、第１学習データテーブル２４２の情報を生成する処理部である。図１９は、本実施例２に係る第１生成部の処理を説明するための図である。第１生成部２５２は、学習データテーブル２４１のレコードを選択し、選択したレコードの時系列データを所定区間である２つ単位に分割する。第１生成部２５２は、分割した２つのデータの組（第１部分時系列データ）それぞれと、分割前の時系列データに対応する教師ラベルとを対応付けて、第１学習データテーブル２４２に格納する。
【０１１３】
たとえば、第１生成部２５２は、時系列データ「ｘ１（０）、ｘ１（１）、・・・、ｘ（ｎ１）」を、第１部分時系列データ「ｘ１（０）、ｘ１（１）」、「ｘ１（２）、ｘ１（３）」、・・・、「ｘ１（ｎ１−１）、ｘ１（ｎ１）」に分割する。第１生成部２５２は、各第１部分時系列データに、分割前の時系列データ「ｘ１（０）、ｘ１（１）、・・・、ｘ（ｎ１）」に対応する教師ラベル「Ｙ」を対応付けて、第１学習データテーブル２４２に格納する。
【０１１４】
第１生成部２５２は、学習データテーブル２４１の他のレコードについても、上記処理を繰り返し実行することで、第１学習データテーブル２４２の情報を生成する。第１生成部２５２は、第１学習データテーブル２４２の情報を、第１学習データテーブル２４２に格納する。
【０１１５】
第１学習部２５３は、第１学習データテーブル２４２を基にして、ＲＮＮ７０のパラメータθ７０を学習する処理部である。第１学習部２５３は、学習したパラメータθ７０をパラメータテーブル２４５に格納する。
【０１１６】
図２０は、本実施例２に係る第１学習部の処理を説明するための図である。第１学習部２５３は、ＲＮＮ７０、Affine変換部７５ａ、Softmax部７５ｂを実行する。第１学習部２５３は、ＲＮＮ７０をAffine変換部７５ａに接続し、Affine変換部７５ａをSoftmax部７５ｂに接続する。第１学習部２５３は、ＲＮＮ７０のパラメータθ７０を初期値に設定する。
【０１１７】
第１学習部２５３は、第１学習データテーブル２４２の第１部分時系列データに格納された各データを、ＲＮＮ７０−０〜７０−１に順に入力し、Softmax部７５ｂから出力される推測ラベルＹが、教師ラベルに近づくように、ＲＮＮ７０のパラメータθ７０およびAffine変換部７５ａのパラメータを学習する。第１学習部２５３は、第１学習データテーブル２４２に格納された各第１部分時系列データについて、上記処理を「Ｄ」回繰り返し実行する。Ｄは予め設定される値であり、たとえば、「Ｄ＝１０」とする。第１学習部２５３は、勾配降下法等を用いて、ＲＮＮ７０のパラメータθ７０およびAffine変換部７５ａのパラメータを学習する。
【０１１８】
第１学習部２５３は、Ｄ回学習を行った場合、第１学習データテーブル２４２の教師ラベルを更新する処理を実行する。図２１は、本実施例２に係る第１学習部の教師ラベル更新処理の一例を示す図である。
【０１１９】
図２１の学習結果５Ａは、第１部分時系列データ（データ１、データ２、・・・）と、教師ラベルと、推定ラベルとを対応付ける。たとえば、ｘ１（０、１）は、ＲＮＮ７０−０、ＲＮＮ７０−１に、データｘ１（０）、ｘ（１）を入力したことを示す。教師ラベルは、第１学習データテーブル２４２で定義された、第１部分時系列データに対応する教師ラベルである。推定ラベルは、第１部分時系列データを、図２０のＲＮＮ７０−０，７０−１に、入力した場合に、Softmax部７５ｂから出力される推定ラベルである。学習結果５Ａにおいて、ｘ１（０、１）の教師ラベルは「Ｙ」であり、推定ラベルが「Ｙ」であることが示される。
【０１２０】
学習結果５Ａに示す例では、ｘ１（２、３）、ｘ１（６、７）、ｘ２（２、３）、ｘ２（４、５）において、教師ラベルと、推定ラベルとが異なっている。第１学習部２５３は、教師ラベルと、推定ラベルとが異なっている教師ラベルのうち、所定の割合の教師ラベルを、推定ラベルに更新する。更新結果５Ｂに示すように、第１学習部２５３は、ｘ１（２、３）に対応する教師ラベルを「Ｎｏｔ  Ｙ」に更新し、ｘ２（４、５）に対応する教師ラベルを「Ｙ」に更新する。第１学習部２５３は、図２１で説明した更新を、第１学習データテーブル２４２の教師ラベルに反映させる。
【０１２１】
第１学習部２５３は、更新した第１学習データテーブル２４２を用いて、再度、ＲＮＮ７０のパラメータθ７０およびAffine変換部７５ａのパラメータを学習する。第１学習部２５３は、学習したＲＮＮ７０のパラメータθ７０を、パラメータテーブル２４５に格納する。
【０１２２】
図１５の説明に戻る。第２生成部２５４は、学習データテーブル２４１を基にして、第２学習データテーブル２４３の情報を生成する処理部である。図２２は、本実施例２に係る第２生成部の処理を説明するための図である。第２生成部２５４は、ＲＮＮ７０を実行し、第１学習部２５３によって学習済みのパラメータθ７０を、ＲＮＮ７０に設定する。
【０１２３】
第２生成部２５４は、時系列データを、ＲＮＮ７０の所定区間である２つ毎の単位、ＧＲＵ７１の時系列としては４つ毎の単位に分割する。第２生成部２５４は、分割したデータを、ＲＮＮ７０−０〜７０−３にそれぞれ入力し、ＲＮＮ７０−０，７０−３から出力される隠れ状態ベクトルｒを算出する処理を繰り返し実行する。第２生成部２５４は、学習データテーブル１４１の１つのレコードの時系列データを分割し、入力することで、複数の第２部分時系列データを算出する。かかる複数の第２部分時系列データに対応する教師ラベルは、分割元の時系列データに対応する教師ラベルとなる。
【０１２４】
たとえば、第２生成部２５４は、時系列データ「ｘ１（０）、ｘ１（１）、ｘ１（２）、ｘ１（３）」をＲＮＮ７０にそれぞれ入力することで、第２部分時系列データ「ｒ１（０）、ｒ１（３）」を算出する。かかる第２部分時系列データ「ｒ１（０）、ｒ１（３）」に対応する教師ラベルは、時系列データ「ｘ１（０）、ｘ１（１）、・・・、ｘ（ｎ１）」の教師ラベル「Ｙ」となる。
【０１２５】
第２生成部２５４は、学習データテーブル２４１の他のレコードについても、上記処理を繰り返し実行することで、第２学習データテーブル２４３の情報を生成する。第２生成部２５４は、第２学習データテーブル２４３の情報を、第２学習データテーブル２４３に格納する。
【０１２６】
第２学習部２５５は、第２学習データテーブル２４３を基にして、階層型のＲＮＮのＧＲＵ７１のパラメータθ７１を学習する処理部である。第２学習部２５５は、学習したパラメータθ７１をパラメータテーブル２４５に格納する。
【０１２７】
図２３は、本実施例２に係る第２学習部の処理を説明するための図である。第２学習部２５５は、ＧＲＵ７１、Affine変換部７５ａ、Softmax部７５ｂを実行する。第２学習部２５５は、ＧＲＵ７１をAffine変換部７５ａに接続し、Affine変換部７５ａをSoftmax部７５ｂに接続する。第２学習部２５５は、ＧＲＵ７１のパラメータθ７１を初期値に設定する。
【０１２８】
第２学習部２５５は、第２学習データテーブル２４３の第２部分時系列データに格納された各データを、ＧＲＵ７１−０，７１−１に順に入力し、Softmax部７５ｂから出力される推測ラベルが、教師ラベルに近づくように、ＧＲＵ７１のパラメータθ７１およびAffine変換部７５ａのパラメータを学習する。第２学習部２５５は、第２学習データテーブル２４３に格納された各第２部分時系列データについて、上記処理を繰り返し実行する。たとえば、第２学習部２５５は、勾配降下法等を用いて、ＧＲＵ７１のパラメータθ７１およびAffine変換部７５ａのパラメータを学習する。
【０１２９】
図１５の説明に戻る。第３生成部２５６は、学習データテーブル２４１を基にして、第３学習データテーブル２４４の情報を生成する処理部である。図２４は、本実施例２に係る第３生成部の処理を説明するための図である。第３生成部２５６は、ＲＮＮ７０、ＧＲＵ７１を実行し、第１学習部２５３によって学習済みのパラメータθ７０を、ＲＮＮ７０に設定する。第３生成部２５６は、第２学習部２５５によって学習済みのパラメータθ７１を、ＧＲＵ７１に設定する。
【０１３０】
第３生成部２５６は、時系列データを４つ毎の単位に分割する。第３生成部２５６は、分割したデータを、ＲＮＮ７０−０〜７０−３にそれぞれ入力し、ＧＲＵ７１−１から出力される隠れ状態ベクトルｇを算出する処理を繰り返し実行する。第３生成部２５６は、学習データテーブル２４１の１つのレコードの時系列データを分割し、入力することで、一つのレコードの第３部分時系列データを算出する。かかる第３部分時系列データに対応する教師ラベルは、分割元の時系列データに対応する教師ラベルとなる。
【０１３１】
たとえば、第３生成部２５６は、時系列データ「ｘ１（０）、ｘ１（１）、ｘ１（２）、ｘ１（３）」をＲＮＮ７０にそれぞれ入力することで、第３部分時系列データ「ｇ１（３）」を算出する。第３生成部２５６は、時系列データ「ｘ１（４）、ｘ１（５）、ｘ１（６）、ｘ１（７）」をＲＮＮ７０にそれぞれ入力することで、第３部分時系列データ「ｇ１（７）」を算出する。第３生成部２５６は、時系列データ「ｘ１（ｎ１−３）、ｘ１（ｎ１−２）、ｘ１（ｎ１−１）、ｘ１（ｎ１）」をＲＮＮ７０にそれぞれ入力することで、第３部分時系列データ「ｇ１（ｎ１）」を算出する。かかる第３部分時系列データ「ｇ１（３）、ｇ１（７）、・・・、ｇ１（ｎ１）」に対応する教師ラベルは、時系列データ「ｘ１（０）、ｘ１（１）、・・・、ｘ（ｎ１）」の教師ラベル「Ｙ」となる。
【０１３２】
第３生成部２５６は、学習データテーブル２４１の他のレコードについても、上記処理を繰り返し実行することで、第３学習データテーブル２４４の情報を生成する。第３生成部２５６は、第３学習データテーブル２４４の情報を、第３学習データテーブル２４４に格納する。
【０１３３】
第３学習部２５７は、第３学習データテーブル２４４を基にして、階層型のＲＮＮのＬＳＴＭ７２のパラメータθ７２を学習する処理部である。第３学習部２５７は、学習したパラメータθ７２をパラメータテーブル２４５に格納する。
【０１３４】
図２５は、本実施例２に係る第３学習部の処理を説明するための図である。第３学習部２５７は、ＬＳＴＭ７２、Affine変換部７５ａ、Softmax部７５ｂを実行する。第３学習部２５７は、ＬＳＴＭ７２をAffine変換部７５ａに接続し、Affine変換部７５ａをSoftmax部７５ｂに接続する。第３学習部２５７は、ＬＳＴＭ７２のパラメータθ７２を初期値に設定する。
【０１３５】
第３学習部２５７は、第３学習データテーブル２４４の第３部分時系列データに格納された各データを、ＬＳＴＭ７２に順に入力し、Softmax部７５ｂから出力される推測ラベルが、教師ラベルに近づくように、ＬＳＴＭ７２のパラメータθ７２およびAffine変換部７５ａのパラメータを学習する。第３学習部２５７は、第３学習データテーブル２４４に格納された各第３部分時系列データについて、上記処理を繰り返し実行する。たとえば、第３学習部２５７は、勾配降下法等を用いて、ＬＳＴＭ７２のパラメータθ７２およびAffine変換部７５ａのパラメータを学習する。
【０１３６】
次に、本実施例２に係る学習装置２００の処理手順の一例について説明する。図２６は、本実施例２に係る学習装置の処理手順を示すフローチャートである。図２６に示すように、学習装置２００の第１生成部２５２は、学習データテーブル２４１に含まれる時系列データを所定区間に分割して、第１部分時系列データを生成し、第１学習データテーブル２４２の情報を生成する（ステップＳ２０１）。
【０１３７】
学習装置２００の第１学習部２５３は、第１学習データテーブル２４２を基にして、ＲＮＮ７０のパラメータθ７０の学習をＤ回実行する（ステップＳ２０２）。第１学習部２５３は、第１学習データテーブル２４２について、推定ラベルと教師ラベルとが異なる教師ラベルの内、所定割合の教師ラベルを、推定ラベルに変更する（ステップＳ２０３）。
【０１３８】
第１学習部２５３は、更新した第１学習データテーブル２４２を基にして、ＲＮＮ７０のパラメータθ７０を学習する（ステップＳ２０４）。ここで、第１学習部２５３は、ステップＳ２０３、Ｓ２０４の処理を所定回数繰り返した後に、ステップＳ２０５に移行してもよい。第１学習部２５３は、学習済みのＲＮＮのパラメータθ７０をパラメータテーブル２４５に格納する（ステップＳ２０５）。
【０１３９】
学習装置２００の第２生成部２５４は、学習データテーブル２４１と、学習済みのＲＮＮ７０のパラメータθ７０を用いて、第２学習データテーブル２４３の情報を生成する（ステップＳ２０６）。
【０１４０】
学習装置２００の第２学習部２５５は、第２学習データテーブル２４３を基にして、ＧＲＵ７１のパラメータθ７１を学習する（ステップＳ２０７）。第２学習部２５５は、ＧＲＵ７１のパラメータθ７１をパラメータテーブル２４５に格納する（ステップＳ２０８）。
【０１４１】
学習装置２００の第３生成部２５６は、学習データテーブル２４１と、学習済みのＲＮＮ７０のパラメータθ７０と、学習済みのＧＲＵ７１のパラメータθ７１とを用いて、第３学習データテーブル２４４の情報を生成する（ステップＳ２０９）。
【０１４２】
第３学習部２５７は、第３学習データテーブル２４４を基にして、ＬＳＴＭ７２のパラメータθ７２およびAffine変換部７５ａのパラメータを学習する（ステップＳ２１０）。第３学習部２５７は、学習済みのＬＳＴＭ７２のパラメータθ７２およびAffine変換部７５ａのパラメータをパラメータテーブル２４５に格納する（ステップＳ２１１）。なお、パラメータテーブル２４５の情報は、外部装置に通知されてもよいし、管理者端末に出力して表示されてもよい。
【０１４３】
次に、本実施例２に係る学習装置２００の効果について説明する。学習装置２００は、学習データテーブル２４１の時系列データを所定区間に分割して、第１学習データテーブル２４２を生成し、第１学習データテーブル２４２を基にして、ＲＮＮ７０のパラメータθ７０を学習する。学習装置２００は、学習済みのパラメータθ７０と、学習データテーブル２４１の時系列データを所定区間に分割したデータとを用いて、第２学習データテーブル２４３を生成し、第２学習データテーブル２４３を基にして、ＧＲＵ７１のパラメータθ７１を学習する。学習装置２００は、学習済みのパラメータθ７０、θ７１と、学習データテーブル２４１の時系列データを所定区間に分割したデータとを用いて、第３学習データテーブル２４４を生成し、第３学習データテーブル２４４を基にして、ＬＳＴＭ７２のパラメータθ７２を学習する。このように、学習装置２００は、各層のパラメータθ７０、θ７１、θ７２を順にまとめて学習していくため、安定した学習を行うことができる。
【０１４４】
学習装置２００は、第１学習データテーブル２４２を基にして、ＲＮＮ７０のパラメータθ７０を学習する際に、Ｄ回学習を行った後に、教師ラベルと推定ラベルとを比較する。学習装置２００は、教師ラベルと、推定ラベルとが異なっている教師ラベルのうち、所定の割合の教師ラベルを、推定ラベルに更新する。かかる処理を実行することで、短い区間で学習することでの過学習を抑止することができる。
【０１４５】
なお、本実施例２に係る学習装置２００は、ＲＮＮ７０，ＧＲＵ７１に２単位でデータを入力する場合について説明したがこれに限定されるものではない。たとえば、ＲＮＮ７０に対しては、単語長相当の８〜１６単位、ＧＲＵ７１に対しては文相当の５〜１０単位でデータを入力することが好ましい。
【実施例３】
【０１４６】
図２７は、本実施例３の階層型のＲＮＮの一例を示す図である。図２７に示すように、この階層型のＲＮＮは、ＬＳＴＭ８０ａと、ＬＳＴＭ８０ｂと、ＧＲＵ８１ａと、ＧＲＵ８１ｂと、Affine変換部８５ａと、Softmax部８５ｂとを有する。図２７では一例として、下層のＬＳＴＭとして、２つのＬＳＴＭ８０を用いる場合について説明するが、これに限定されるものでは無く、ｎ個のＬＳＴＭ８０を配置してもよい。
【０１４７】
ＬＳＴＭ８０ａは、ＬＳＴＭ８０ｂに接続され、ＬＳＴＭ８０ｂは、ＧＲＵ８１ａに接続される。ＬＳＴＭ８０ａは、時系列データに含まれるデータ（たとえば、単語ｘ）が入力されると、ＬＳＴＭ８０ａのパラメータθ８０ａに基づく計算を行って、隠れ状態ベクトルを算出し、ＬＳＴＭ８０ｂに入力する。ＬＳＴＭ８０ａは、次のデータが入力されると、前のデータで算出した隠れ状態ベクトルと、次のデータと用いて、パラメータθ８０ａに基づく計算を行い、隠れ状態ベクトルを算出する処理を繰り返し実行する。ＬＳＴＭ８０ｂは、ＬＳＴＭ８０ａから入力される隠れ状態ベクトルと、ＬＳＴＭ８０ｂのパラメータθ８０ｂに基づく計算を行って、隠れ状態ベクトルを算出し、ＧＲＵ８１ａに出力する。たとえば、ＬＳＴＭ８０ｂは、４つのデータが入力される度に、隠れ状態ベクトルを、ＧＲＵ８１ａに出力する。
【０１４８】
たとえば、本実施例３に係るＬＳＴＭ８０ａ、ＬＳＴＭ８０ｂを、時系列方向に４つ単位のＬＳＴＭとする。時系列データには、データｘ（０）、ｘ（１）、ｘ（２）、ｘ（３）、ｘ（４）、・・・、ｘ（ｎ）が含まれているものとする。
【０１４９】
ＬＳＴＭ８０ａ−０１は、データｘ（０）が入力されると、データｘ（０）とパラメータθ８０ａとに基づく計算を行って隠れ状態ベクトルを算出し、隠れ状態ベクトルをＬＳＴＭ８０ｂ−０２，８０ａ−１１に出力する。ＬＳＴＭ８０ｂ−０２は、隠れ状態ベクトルの入力を受け付けると、パラメータθ８０ｂに基づく計算を行って、隠れ状態ベクトルを算出し、ＬＳＴＭ８０ｂ−１２に出力する。
【０１５０】
ＬＳＴＭ８０ａ−１１は、データｘ（１）と、隠れ状態ベクトルとが入力されると、パラメータθ８０ａに基づく計算を行って隠れ状態ベクトルを算出し、隠れ状態ベクトルをＬＳＴＭ８０ｂ−１２，８０ａ−２１に出力する。ＬＳＴＭ８０ｂ−１２は、２つの隠れ状態ベクトルの入力を受け付けると、パラメータθ８０ｂに基づく計算を行って、隠れ状態ベクトルを算出し、ＬＳＴＭ８０ｂ−２２に出力する。
【０１５１】
ＬＳＴＭ８０ａ−２１は、データｘ（２）と、隠れ状態ベクトルとが入力されると、パラメータθ８０ａに基づく計算を行って隠れ状態ベクトルを算出し、隠れ状態ベクトルをＬＳＴＭ８０ｂ−２２，８０ａ−３１に出力する。ＬＳＴＭ８０ｂ−２２は、２つの隠れ状態ベクトルの入力を受け付けると、パラメータθ８０ｂに基づく計算を行って、隠れ状態ベクトルを算出し、ＬＳＴＭ８０ｂ−３２に出力する。
【０１５２】
ＬＳＴＭ８０ａ−３１は、データｘ（３）と、隠れ状態ベクトルとが入力されると、パラメータθ８０ａに基づく計算を行って隠れ状態ベクトルを算出し、隠れ状態ベクトルをＬＳＴＭ８０ｂ−３２に出力する。ＬＳＴＭ８０ｂ−３２は、２つの隠れ状態ベクトルの入力を受け付けると、パラメータθ８０ｂに基づく計算を行って、隠れ状態ベクトルｈ（３）を算出し、ＧＲＵ８１ａ−０１に出力する。
【０１５３】
ＬＳＴＭ８０ａ−４１〜８０ａ−７１，８０ｂ−４２〜８０ｂ−７２は、データｘ（４）〜ｘ（７）が入力されると、ＬＳＴＭ８０ａ−０１〜８０ａ−３１，８０ｂ−０２〜８０ｂ−３２と同様に隠れ状態ベクトルを算出する。ＬＳＴＭ８０ｂ−３２は、隠れ状態ベクトルｈ（７）を、ＧＲＵ８１ａ−１１に出力する。
【０１５４】
ＬＳＴＭ８０ａ−ｎ２１〜８０ａ−ｎ１，８０ｂ−ｎ−２２〜８０ｂ−ｎ２は、データｘ（ｎ−２）〜ｘ（ｎ）が入力されると、ＬＳＴＭ８０ａ−０１〜８０ａ−３１，８０ｂ−０２〜８０ｂ−３２と同様に隠れ状態ベクトルを算出する。ＬＳＴＭ８０ｂ−ｎ２は、隠れ状態ベクトルｈ（ｎ）を、ＧＲＵ８１ａ−ｍ１に出力する。
【０１５５】
ＧＲＵ８１ａは、ＧＲＵ８１ｂに接続され、ＧＲＵ８１ｂは、Affine変換部８５ａに接続される。ＧＲＵ８１ａは、ＬＳＴＭ８０ｂから隠れ状態ベクトルが入力されると、ＧＲＵ８１ａのパラメータθ８１ａに基づく計算を行って、隠れ状態ベクトルを算出し、ＧＲＵ８１ｂに入力する。ＧＲＵ８１ｂは、ＧＲＵ８１ａから隠れベクトルが入力されると、ＧＲＵ８１ｂのパラメータθ８１ｂに基づく計算を行って、隠れ状態ベクトルを算出し、Affine変換部８５ａに出力する。ＧＲＵ８１ａ、ＧＲＵ８１ｂは、上記処理を繰り返し実行する。
【０１５６】
ＧＲＵ８１ａ−０１は、隠れ状態ベクトルｈ（３）が入力されると、隠れ状態ベクトルｈ（３）とパラメータθ８１ａに基づく計算を行って隠れ状態ベクトルを算出し、隠れ状態ベクトルを、ＧＲＵ８１ｂ−０２，８１ａ−１１に出力する。ＧＲＵ８１ｂ−０２は、隠れベクトルの入力を受け付けると、パラメータθ８１ｂに基づく計算を行って、隠れ状態ベクトルを算出し、ＧＲＵ８１ｂ−１２に出力する。
【０１５７】
ＧＲＵ８１ａ−１１は、隠れ状態ベクトルｈ（７）と、前のＧＲＵの隠れ状態ベクトルとが入力されると、パラメータθ８１ａに基づく計算を行って隠れ状態ベクトルを算出し、隠れ状態ベクトルをＧＲＵ８１ｂ−１２，８１ａ−３１（図示略）に出力する。ＧＲＵ８１ｂ−１２は、２つの隠れ状態ベクトルの入力を受け付けると、パラメータθ８１ｂに基づく計算を行って、隠れ状態ベクトルを算出し、ＧＲＵ８１ｂ−２２（図示略）に出力する。
【０１５８】
ＧＲＵ８１ａ−ｍ１は、隠れ状態ベクトルｈ（ｎ）と、前のＧＲＵの隠れ状態ベクトルとが入力されると、パラメータθ８１ａに基づく計算を行って隠れ状態ベクトルを算出し、隠れ状態ベクトルをＧＲＵ８１ｂ−ｍ２に出力する。ＧＲＵ８１ｂ−ｍ２は、２つの隠れ状態ベクトルの入力を受け付けると、パラメータθ８１ｂに基づく計算を行って、隠れ状態ベクトルｇ（ｎ）を算出し、隠れ状態ベクトルｇ（ｎ）をAffine変換部８５ａに出力する。
【０１５９】
Affine変換部８５ａは、ＧＲＵ８１ｂから出力される隠れ状態ベクトルｇ（ｎ）に対して、アフィン変換を実行する処理部ある。たとえば、Affine変換部８５ａは、式（３）に基づいて、アフィン変換を実行し、ベクトルＹＡを算出する。式（３）に含まれるＡ、ｂに関する説明は、式（１）に含まれるＡ、ｂに関する説明と同様である。
【０１６０】
ＹＡ＝Ａｇ（ｎ）＋ｂ・・・（３）
【０１６１】
Softmax部８５ｂは、アフィン変換されたベクトルＹＡをソフトマック関数に入力して、値「Ｙ」を算出する処理部である。Ｙは、時系列データに対する推定結果のベクトルとなる。
【０１６２】
次に、本実施例３に係る学習装置の構成の一例について説明する。図２８は、本実施例３に係る学習装置の構成を示す機能ブロック図である。図２８に示すように、この学習装置３００は、通信部３１０、入力部３２０、表示部３３０、記憶部３４０、制御部３５０を有する。
【０１６３】
通信部３１０は、ネットワーク等を介して、外部装置（図示略）と通信を実行する処理部である。たとえば、通信部３１０は、後述する学習データテーブル３４１の情報を外部装置から受信する。通信部２１０は、通信装置の一例である。後述する制御部３５０は、通信部３１０を介して、外部装置とデータをやり取りする。
【０１６４】
入力部３２０は、各種の情報を、学習装置３００に入力するための入力装置である。たとえば、入力部３２０は、キーボードやタッチパネル等に対応する。
【０１６５】
表示部３３０は、制御部３５０から出力される各種の情報を表示する表示装置である。表示部３３０は、液晶ディスプレイやタッチパネル等に対応する。
【０１６６】
記憶部３４０は、学習データテーブル３４１、第１学習データテーブル３４２、第２学習データテーブル３４３、パラメータテーブル３４４を有する。記憶部３４０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。
【０１６７】
学習データテーブル３４１は、学習データを格納するテーブルである。図２９は、本実施例３に係る学習データテーブルのデータ構造の一例を示す図である。図２９に示すように、学習データテーブル３４１は、教師ラベルと、時系列データと、音声データとを対応付ける。本実施例３に係る時系列データは、ユーザ音声に関する、音素列のデータである。音声データは、時系列データの生成元となる音声データである。
【０１６８】
第１学習データテーブル３４２は、学習データテーブル３４１に格納される時系列データを分割した、第１部分時系列データを格納するテーブルである。本実施例３では、時系列データは、発声の区切り、話者交代といった所定の基準で分割される。図３０は、本実施例３に係る第１学習データテーブルのデータ構造の一例を示す図である。図３０に示すように、第１学習データテーブル３４２は、教師ラベルと、第１部分時系列データとを対応付ける。各第１部分時系列データは、時系列データを、所定の基準で分割したデータである。
【０１６９】
第２学習データテーブル３４３は、第１学習データテーブル３４２の各第１部分時系列データを、ＬＳＴＭ８０ａ、ＬＳＴＭ８０ｂに入力して得られる第２部分時系列データを格納するテーブルである。図３１は、本実施例３に係る第２学習データテーブルのデータ構造の一例を示す図である。図３１に示すように、第２学習データテーブル３４３は、教師ラベルと、第２部分時系列データとを対応付ける。各第２部分時系列データは、第１学習データテーブル１４２の各第１部分時系列データを、ＬＳＴＭ８０ａ、８０ｂに入力して得られる。
【０１７０】
パラメータテーブル３４４は、ＬＳＴＭ８０ａのパラメータθ８０ａ、ＬＳＴＭ８０ｂのパラメータθ８０ｂ、ＧＲＵ８１ａのパラメータθ８１ａ、ＧＲＵ８１ｂのパラメータθ８１ｂ、Affine変換部８５ａのパラメータを格納するテーブルである。
【０１７１】
制御部３５０は、図２７に示す階層型のＲＮＮを実行して、パラメータの学習を行う処理部である。制御部３５０は、取得部３５１、第１生成部３５２、第１学習部３５３、第２生成部３５４、第２学習部３５５を有する。制御部３５０は、ＣＰＵやＭＰＵなどによって実現できる。また、制御部３５０は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによっても実現できる。
【０１７２】
取得部３５１は、外部装置（図示略）からネットワークを介して、学習データテーブル３４１の情報を取得する処理部である。取得部３５１は、取得した学習データテーブル３４１の情報を、学習データテーブル３４１に格納する。
【０１７３】
第１生成部３５２は、学習データテーブル３４１を基にして、第１学習データテーブル３４２の情報を生成する処理部である。図３２は、本実施例３に係る第１生成部の処理を説明するための図である。第１生成部３５２は、学習データテーブル３４１の時系列データを選択する。たとえば、時系列データには、発話者Ａおよび発話者Ｂの音声データが対応付けられているものとする。第１生成部３５２は、時系列データに対応する音声の特徴量を算出し、たとえば、音声パワーが閾値未満となる発話の区切り時刻を特定する。図３２に示す例では、発話の区切り時刻を、ｔ１、ｔ２、ｔ３とする。
【０１７４】
第１生成部３５２は、発話の区切り時刻ｔ１、ｔ２、ｔ３を基にして、時系列データを、複数の第１部分時系列データに分割する。図３２に示す例では、第１生成部３５２は、時系列データ「ohayokyowaeetoneesanjidehairyokai」を「ohayo」、「kyowa」、「eetoneesanjide」、「hairyokai」の各第１部分時系列データに分割する。第１生成部３５２は、時系列データに対応する教師ラベル「Ｙ」と、各第１部分時系列データとを対応付けて、第１学習データテーブル３４２に格納する。
【０１７５】
第１学習部３５３は、第１学習データテーブル３４２を基にして、ＬＳＴＭ８０のパラメータθ８０を学習する処理部である。第１学習部３５３は、学習したパラメータθ８０をパラメータテーブル３４４に格納する。
【０１７６】
図３３は、本実施例３に係る第１学習部の処理を説明するための図である。第１学習部３５３は、ＬＳＴＭ８０ａ、ＬＳＴＭ８０ｂ、Affine変換部８５ａ、Softmax部８５ｂを実行する。第１学習部３５３は、ＬＳＴＭ８０ａをＬＳＴＭ８０ｂに接続し、ＬＳＴＭ８０ｂをAffine変換部８５ａに接続し、Affine変換部８５ａをSoftmax部８５ｂに接続する。第１学習部３５３は、ＬＳＴＭ８０ａのパラメータθ８０ａを初期値に設定し、ＬＳＴＭ８０ｂのパラメータθ８０ｂを初期値に設定する。
【０１７７】
第１学習部３５３は、第１学習データテーブル３４２の第１部分時系列データに格納された各データを、ＬＳＴＭ８０ａ，８０ｂに順に入力し、Softmax部８５ｂから出力される推測ラベルＹが、教師ラベルに近づくように、ＬＳＴＭ８０ａのパラメータθ８０ａ、ＬＳＴＭ８０ａのパラメータθ８０ｂ、Affine変換部８５ａのパラメータを学習する。第１学習部３５３は、第１学習データテーブル３４２に格納された各第１部分時系列データについて、上記処理を「Ｄ」回繰り返し実行する。Ｄは予め設定される値であり、たとえば、「Ｄ＝１０」とする。第１学習部３５３は、勾配降下法等を用いて、ＬＳＴＭ８０ａのパラメータθ８０ａ、ＬＳＴＭ８０ａのパラメータθ８０ｂ、Affine変換部８５ａのパラメータを学習する。
【０１７８】
第１学習部３５３は、Ｄ回学習を行った場合、第１学習データテーブル３４２の教師ラベルを更新する処理を実行する。図３４は、本実施例３に係る第１学習部の教師ラベル更新処理の一例を示す図である。
【０１７９】
図３４の学習結果６Ａは、第１部分時系列データ（データ１、データ２、・・・）と、教師ラベルと、推定ラベルとを対応付ける。たとえば、データ１「ｏｈａｙｏ」は、ＬＳＴＭ８０に、音素列「ｏ」、「ｈ」、「ａ」、「ｙ」、「ｏ」を入力したことを示す。教師ラベルは、第１学習データテーブル３４２で定義された、第１部分時系列データに対応する教師ラベルである。推定ラベルは、第１部分時系列データを、図３３のＬＳＴＭ８０に、入力した場合に、Softmax部７５ｂから出力される推定ラベルである。学習結果６Ａにおいて、データ１「ｏｈａｙｏ」の教師ラベルは「Ｙ」であり、推定ラベルが「Ｚ」であることが示される。
【０１８０】
学習結果６Ａに示す例では、データ１「ｏｈａｙｏ」、データ１「ｋｙｏｗａ」、データ２「ｈａｉ」、データ２「ｓｏｄｅｓｕ」において、教師ラベルと、推定ラベルとが異なっている。第１学習部３５３は、教師ラベルと、推定ラベルとが異なっている教師ラベルのうち、所定の割合の教師ラベルを、推定ラベル、推定ラベル以外の他のラベル（たとえば、カテゴリ無しのラベル）に更新する。更新結果６Ｂに示すように、第１学習部３５３は、データ１「ｏｈａｙｏ」に対応する教師ラベルを「Ｎｏ  Ｃｌａｓｓ」に更新し、データ１「ｈａｉ」に対応する教師ラベルを「Ｎｏ  Ｃｌａｓｓ」に更新する。第１学習部３５３は、図３４で説明した更新を、第１学習データテーブル３４２の教師ラベルに反映させる。
【０１８１】
第１学習部３５３は、更新した第１学習データテーブル３４２を用いて、再度、ＬＳＴＭ８０のパラメータθ８０およびAffine変換部８５ａのパラメータを学習する。第１学習部３５３は、学習したＬＳＴＭ８０のパラメータθ８０を、パラメータテーブル３４４に格納する。
【０１８２】
図２８の説明に戻る。第２生成部３５４は、第１学習データテーブル３４２を基にして、第２学習データテーブル３４３の情報を生成する処理部である。図３５は、本実施例３に係る第２生成部の処理を説明するための図である。
【０１８３】
第２生成部３５４は、ＬＳＴＭ８０ａ，８０ｂを実行し、第１学習部３５３によって学習済みのパラメータθ８０ａを、ＬＳＴＭ８０ａに設定し、パラメータθ８０ｂを、ＬＳＴＭ８０ｂに設定する。第２生成部３５４は、各第１部分時系列データを、ＬＳＴＭ８０ａ−０１〜８０ａ−４１に順に入力し、隠れ状態ベクトルｈを算出する処理を繰り返し実行する。第２生成部３５４は、学習データテーブル３４１の１つのレコードの時系列データから分割された各第１部分時系列データをＬＳＴＭ８０ａに入力することで、一組の第２部分時系列データを算出する。かかる一組の第２部分時系列データに対応する教師ラベルは、分割元の時系列データに対応する教師ラベルとなる。
【０１８４】
たとえば、第２生成部３５４は、各第１部分時系列データ「ohayo」、「kyowa」、「eetoneesanjide」、「hairyokai」、をＬＳＴＭ８０ａにそれぞれ入力することで、第２部分時系列データ「ｈ１、ｈ２、ｈ３、ｈ４」を算出する。かかる第２部分時系列データ「ｈ１、ｈ２、ｈ３、ｈ４」に対応する教師ラベルは、時系列データ「ohayokyowaeetoneesanjidehairyokai」の教師ラベル「Ｙ」となる。
【０１８５】
第２生成部３５４は、第１学習データテーブル３４２の他のレコードについても、上記処理を繰り返し実行することで、第２学習データテーブル３４３の情報を生成する。第２生成部３５４は、第２学習データテーブル３４３の情報を、第２学習データテーブル３４３に格納する。
【０１８６】
第２学習部３５５は、第２学習データテーブル３４３を基にして、階層型のＲＮＮのＧＲＵ８１ａのパラメータθ８１ａおよびＧＲＵ８１ｂのパラメータθ８１ｂを学習する処理部である。第２学習部３５５は、学習したパラメータθ８１ａ，θ８１ｂをパラメータテーブル３４４に格納する。また、第２学習部３５５は、Affine変換部８５ａのパラメータを、パラメータテーブル３４４に格納する。
【０１８７】
図３６は、本実施例３に係る第２学習部の処理を説明するための図である。第２学習部３５５は、ＧＲＵ８１ａ、ＧＲＵ８１ｂ、Affine変換部８５ａ、Softmax部８５ｂを実行する。第２学習部３５５は、ＧＲＵ８１ａをＧＲＵ８１ｂに接続し、ＧＲＵ８１ｂをAffine変換部８５ａに接続し、Affine変換部８５ａをSoftmax部８５ｂに接続する。第２学習部３５５は、ＧＲＵ８１ａのパラメータθ８１ａを初期値に設定し、ＧＲＵ８１ｂのパラメータθ８１ｂを初期値に設定する。
【０１８８】
第２学習部３５５は、第２学習データテーブル３４３の第２部分時系列データに格納された各データを、ＧＲＵ８１に順に入力し、Softmax部８５ｂから出力される推測ラベルが、教師ラベルに近づくように、ＧＲＵ８１ａ，８１ｂのパラメータθ８１ａ，θ８１ｂおよびAffine変換部８５ａのパラメータを学習する。第２学習部３５５は、第２学習データテーブル３４３に格納された各第２部分時系列データについて、上記処理を繰り返し実行する。たとえば、第２学習部３５５は、勾配降下法等を用いて、ＧＲＵ８１ａ，８１ｂのパラメータθ８１ａ，θ８１ｂおよびAffine変換部８５ａのパラメータを学習する。
【０１８９】
次に、本実施例３に係る学習装置３００の処理手順の一例について説明する。図３７は、本実施例３に係る学習装置の処理手順を示すフローチャートである。以下の説明では、適宜、ＬＳＴＭ８０ａおよびＬＳＴＭ８０ａをまとめて、ＬＳＴＭ８０と表記する。パラメータθ８０ａ、パラメータθ８０ｂをまとめて、パラメータθ８０と表記する。ＧＲＵ８１ａと、ＧＲＵ８１ｂとをまとめて、ＧＲＵ８１と表記する。パラメータθ８１ａ、パラメータθ８１ｂをまとめて、パラメータθ８１と表記する。図３７に示すように、学習装置３００の第１生成部３５２は、学習データテーブル３４１に含まれる時系列データを発話の区切りを基にして分割し、第１部分時系列データを生成する（ステップＳ３０１）。第１生成部３５２は、第１部分時系列データと教師ラベルとの組を第１学習データテーブルに格納する（ステップＳ３０２）。
【０１９０】
学習装置３００の第１学習部３５３は、第１学習データテーブル２４２を基にして、ＬＳＴＭ８０のパラメータθ８０の学習をＤ回実行する（ステップＳ３０３）。第１学習部３５３は、第１学習データテーブル３４２について、推定ラベルと教師ラベルとが異なる教師ラベルの内、所定割合の教師ラベルを、「Ｎｏ  Ｃｌａｓｓ」に変更する（ステップＳ３０４）。
【０１９１】
第１学習部３５３は、更新した第１学習データテーブル３４２を基にして、ＬＳＴＭ８０のパラメータθ８０を学習する（ステップＳ３０５）。第１学習部３５３は、学習済みのＬＳＴＭのパラメータθ８０をパラメータテーブル３４４に格納する（ステップＳ３０６）。
【０１９２】
学習装置３００の第２生成部３５４は、第１学習データテーブル３４２と、学習済みのＬＳＴＭ８０のパラメータθ８０を用いて、第２学習データテーブル３４３の情報を生成する（ステップＳ３０７）。
【０１９３】
学習装置３００の第２学習部３５５は、第２学習データテーブル３４３を基にして、ＧＲＵ８１のパラメータθ８１およびAffine変換部８５ａのパラメータを学習する（ステップＳ３０８）。第２学習部２５５は、ＧＲＵ８１のパラメータθ８１およびAffine変換部８５ａのパラメータをパラメータテーブル３４４に格納する（ステップＳ３０９）。
【０１９４】
次に、本実施例３に係る学習装置３００の効果について説明する。学習装置３００は、時系列データに対応する音声の特徴量を算出し、たとえば、音声パワーが閾値未満となる発話の区切り時刻を特定し、特定した区切り時刻を基にして、第１部分時系列データを生成する。これにより、発話区間を一つの単位として、ＬＳＴＭ８０、ＧＲＵ８１の学習を行うことができる。
【０１９５】
学習装置３００は、第１学習データテーブル３４２を基にして、ＬＳＴＭ８０のパラメータθ８０を学習する際に、Ｄ回学習を行った後に、教師ラベルと推定ラベルとを比較する。学習装置３００は、教師ラベルと、推定ラベルとが異なっている教師ラベルのうち、所定の割合の教師ラベルを、カテゴリ無しのラベルに更新する。かかる処理を実行することで、全体の識別に寄与しない音素列の区間の影響を抑止することができる。
【０１９６】
次に、本実施例に示した学習装置１００（２００，３００）と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図３８は、本実施例に係る学習装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【０１９７】
図３８に示すように、コンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、ユーザからのデータの入力を受け付ける入力装置４０２と、ディスプレイ４０３とを有する。また、コンピュータ４００は、記憶媒体からプログラム等を読み取る読み取り装置４０４と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置４０５とを有する。コンピュータ４００は、各種情報を一時記憶するＲＡＭ４０６と、ハードディスク装置４０７とを有する。そして、各装置４０１〜４０７は、バス４０８に接続される。
【０１９８】
ハードディスク装置４０７は、取得プログラム４０７ａ、第１生成プログラム４０７ｂ、第１学習プログラム４０７ｃ、第２生成プログラム４０７ｄ、第２学習プログラム４０７ｅを有する。ＣＰＵ４０１は、取得プログラム４０７ａ、第１生成プログラム４０７ｂ、第１学習プログラム４０７ｃ、第２生成プログラム４０７ｄ、第２学習プログラム４０７ｅを読み出して、ＲＡＭ４０６に展開する。
【０１９９】
取得プログラム４０７ａは、取得プロセス４０６ａとして機能する。第１生成プログラム４０７ｂは、第１生成プロセス４０６ｂとして機能する。第１学習プログラム４０７ｃは、第１生成プロセス４０６ｃとして機能する。第２生成プログラム４０７ｄは、第２生成プロセス４０６ｄとして機能する。第２学習プログラム４０７ｅは、第２学習プロセス４０６ｅとして機能する。
【０２００】
取得プロセス４０６ａの処理は、取得部１５１、２５１，３５１の処理に対応する。第１生成プロセス４０６ｂの処理は、第１生成部１５２，２５２，３５２の処理に対応する。第１学習プロセス４０６ｃの処理は、第１学習部１５３，２５３，３５３の処理に対応する。第２生成プロセス４０６ｄの処理は、第２生成部１５４，２５４，３５４の処理に対応する。第２学習プロセスの処理は、第２学習部１５５，２５５，３５５の処理に対応する。
【０２０１】
なお、各プログラム４０７ａ〜４０７ｅについては、必ずしも最初からハードディスク装置４０７に記憶させておかなくてもよい。例えば、コンピュータ４００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ４００が各プログラム４０７ａ〜４０７ｅを読み出して実行するようにしてもよい。
【０２０２】
図示を省略したが、ハードディスク装置４０７は、第３生成プログラムおよび第３学習プログラムを有していてもよい。ＣＰＵ４０１は、第３生成プログラムおよび第３学習プログラムを読み出して、ＲＡＭ４０６に展開する。第３生成プログラムおよび第３学習プログラムは、第３生成プロセスおよび第３学習プロセスとして機能する。第３生成プロセスは、第３生成部２５６の処理に対応する。第３学習プロセスは、第３学習部２５７の処理に対応する。
【０２０３】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０２０４】
（付記１）時系列に複数のデータが並んだ時系列データを所定区間に分割することで、複数の第１部分時系列データを生成し、前記複数の第１部分時系列データと、前記時系列データ全体に対する教師データとをそれぞれ対応付けた第１学習データを生成する第１生成部と、
前記第１学習データを基にして、複数の層に含まれる各ＲＮＮ（Recurrent  Neural  Network）のうち、第１層に含まれる第１ＲＮＮの第１パラメータを学習する第１学習部と、
前記複数の層に含まれる各ＲＮＮのパラメータを学習する場合、学習済みの前記第１パラメータを前記第１ＲＮＮに設置して、前記第１部分時系列データをそれぞれ入力して得られるデータと、前記教師データとを基にして、前記複数の層に含まれる各ＲＮＮのパラメータを学習する学習処理部と
を有することを特徴とする学習装置。
【０２０５】
（付記２）前記学習処理部は、前記第１ＲＮＮの学習済みの前記第１パラメータを設置して、前記第１部分時系列データをそれぞれ入力して得られる複数の第２部分時系列データと、前記教師データとをそれぞれ対応付けた第２学習データを生成する第２生成部と、
前記第２学習データを基にして、前記第１層よりも一つ上層となる第２層に含まれる第２ＲＮＮの第２パラメータを学習する第２学習部とを有することを特徴とする付記１に記載の学習装置。
【０２０６】
（付記３）前記第１生成部は、前記第１ＲＮＮに前記第１部分時系列データを入力した場合に出力される出力データと、前記教師データとが異なる場合に、前記第１学習データに含まれる第１部分時系列データと前記教師データとの複数の組のうち、一部の組について、第１部分時系列データに対応する前記教師データを、前記出力データに更新することで、前記第１学習データを生成することを特徴とする付記１または２に記載の学習装置。
【０２０７】
（付記４）前記第１生成部は、前記第１ＲＮＮに前記第１部分時系列データを入力した場合に出力される出力データと、前記教師データとが異なる場合に、前記第１学習データに含まれる第１部分時系列データと前記教師データとの複数の組のうち、一部の組について、第１部分時系列データに対応する前記教師データを、前記教師データおよび前記出力データとは異なる他のデータに更新することで、前記第１学習データを生成することを特徴とする付記１または２に記載の学習装置。
【０２０８】
（付記５）前記第１生成部は、前記時系列データに対応する音声データの特徴を基にして、前記時系列データを前記複数の第１部分時系列データに分割することを特徴とする付記１〜４のいずれか一つに記載の学習装置。
【０２０９】
（付記６）コンピュータが実行する学習方法であって、
時系列に複数のデータが並んだ時系列データを所定区間に分割することで、複数の第１部分時系列データを生成し、前記複数の第１部分時系列データと、前記時系列データ全体に対する教師データとをそれぞれ対応付けた第１学習データを生成し、
前記第１学習データを基にして、複数の層に含まれる各ＲＮＮ（Recurrent  Neural  Network）のうち、第１層に含まれる第１ＲＮＮの第１パラメータを学習し、
前記複数の層に含まれる各ＲＮＮのパラメータを学習する場合、学習済みの前記第１パラメータを前記第１ＲＮＮに設置して、前記第１部分時系列データをそれぞれ入力して得られるデータと、前記教師データとを基にして、前記複数の層に含まれる各ＲＮＮのパラメータを学習する
処理を実行することを特徴とする学習方法。
【０２１０】
（付記７）前記複数の層に含まれる各ＲＮＮのパラメータを学習する処理は、前記第１ＲＮＮの学習済みの前記第１パラメータを設置して、前記第１部分時系列データをそれぞれ入力して得られる複数の第２部分時系列データと、前記教師データとをそれぞれ対応付けた第２学習データを生成し、前記第２学習データを基にして、前記第１層よりも一つ上層となる第２層に含まれる第２ＲＮＮの第２パラメータを学習することを特徴とする付記６に記載の学習方法。
【０２１１】
（付記８）前記第１学習データを生成する処理は、前記第１ＲＮＮに前記第１部分時系列データを入力した場合に出力される出力データと、前記教師データとが異なる場合に、前記第１学習データに含まれる第１部分時系列データと前記教師データとの複数の組のうち、一部の組について、第１部分時系列データに対応する前記教師データを、前記出力データに更新することで、前記第１学習データを生成することを特徴とする付記６または７に記載の学習方法。
【０２１２】
（付記９）前記第１学習データを生成する処理は、前記第１ＲＮＮに前記第１部分時系列データを入力した場合に出力される出力データと、前記教師データとが異なる場合に、前記第１学習データに含まれる第１部分時系列データと前記教師データとの複数の組のうち、一部の組について、第１部分時系列データに対応する前記教師データを、前記教師データおよび前記出力データとは異なる他のデータに更新することで、前記第１学習データを生成することを特徴とする付記６または７に記載の学習方法。
【０２１３】
（付記１０）前記第１学習データを生成する処理は、前記時系列データに対応する音声データの特徴を基にして、前記時系列データを前記複数の第１部分時系列データに分割することを特徴とする付記６〜９のいずれか一つに記載の学習方法。
【０２１４】
（付記１１）コンピュータに、
時系列に複数のデータが並んだ時系列データを所定区間に分割することで、複数の第１部分時系列データを生成し、前記複数の第１部分時系列データと、前記時系列データ全体に対する教師データとをそれぞれ対応付けた第１学習データを生成し、
前記第１学習データを基にして、複数の層に含まれる各ＲＮＮ（Recurrent  Neural  Network）のうち、第１層に含まれる第１ＲＮＮの第１パラメータを学習し、
前記複数の層に含まれる各ＲＮＮのパラメータを学習する場合、学習済みの前記第１パラメータを前記第１ＲＮＮに設置して、前記第１部分時系列データをそれぞれ入力して得られるデータと、前記教師データとを基にして、前記複数の層に含まれる各ＲＮＮのパラメータを学習する
処理を実行させることを特徴とする学習プログラム。
【０２１５】
（付記１２）前記複数の層に含まれる各ＲＮＮのパラメータを学習する処理は、前記第１ＲＮＮの学習済みの前記第１パラメータを設置して、前記第１部分時系列データをそれぞれ入力して得られる複数の第２部分時系列データと、前記教師データとをそれぞれ対応付けた第２学習データを生成し、前記第２学習データを基にして、前記第１層よりも一つ上層となる第２層に含まれる第２ＲＮＮの第２パラメータを学習することを特徴とする付記１１に記載の学習プログラム。
【０２１６】
（付記１３）前記第１学習データを生成する処理は、前記第１ＲＮＮに前記第１部分時系列データを入力した場合に出力される出力データと、前記教師データとが異なる場合に、前記第１学習データに含まれる第１部分時系列データと前記教師データとの複数の組のうち、一部の組について、第１部分時系列データに対応する前記教師データを、前記出力データに更新することで、前記第１学習データを生成することを特徴とする付記１１または１２に記載の学習プログラム。
【０２１７】
（付記１４）前記第１学習データを生成する処理は、前記第１ＲＮＮに前記第１部分時系列データを入力した場合に出力される出力データと、前記教師データとが異なる場合に、前記第１学習データに含まれる第１部分時系列データと前記教師データとの複数の組のうち、一部の組について、第１部分時系列データに対応する前記教師データを、前記教師データおよび前記出力データとは異なる他のデータに更新することで、前記第１学習データを生成することを特徴とする付記１１または１２に記載の学習プログラム。
【０２１８】
（付記１５）前記第１学習データを生成する処理は、前記時系列データに対応する音声データの特徴を基にして、前記時系列データを前記複数の第１部分時系列データに分割することを特徴とする付記１１〜１４のいずれか一つに記載の学習プログラム。
【符号の説明】
【０２１９】
１００，２００，３００    学習装置
１１０，２１０，３１０    通信部
１２０，２２０，３２０    入力部
１３０，２３０，３３０    表示部
１４０，２４０，３４０    記憶部
１４１，２４１，３４１    学習データテーブル
１４２，２４２，３４２    第１学習データテーブル
１４３，２４３，３４３    第２学習データテーブル
１４４，２４５，３４４    パラメータテーブル
１５０，２５０，３５０    制御部
１５１、２５１，３５１    取得部
１５２，２５２，３５２    第１生成部
１５３，２５３，３５３    第１学習部
１５４，２５４，３５４    第２生成部
１５５，２５５，３５５    第２学習部
２５６    第３生成部
２５７    第３学習部
２４４    第３学習データテーブル
【図１】
2020102107.tif 000003
【図２】
2020102107.tif 000004
【図３】
2020102107.tif 000005
【図４】
2020102107.tif 000006
【図５】
2020102107.tif 000007
【図６】
2020102107.tif 000008
【図７】
2020102107.tif 000009
【図８】
2020102107.tif 000010
【図９】
2020102107.tif 000011
【図１０】
2020102107.tif 000012
【図１１】
2020102107.tif 000013
【図１２】
2020102107.tif 000014
【図１３】
2020102107.tif 000015
【図１４】
2020102107.tif 000016
【図１５】
2020102107.tif 000017
【図１６】
2020102107.tif 000018
【図１７】
2020102107.tif 000019
【図１８】
2020102107.tif 000020
【図１９】
2020102107.tif 000021
【図２０】
2020102107.tif 000022
【図２１】
2020102107.tif 000023
【図２２】
2020102107.tif 000024
【図２３】
2020102107.tif 000025
【図２４】
2020102107.tif 000026
【図２５】
2020102107.tif 000027
【図２６】
2020102107.tif 000028
【図２７】
2020102107.tif 000029
【図２８】
2020102107.tif 000030
【図２９】
2020102107.tif 000031
【図３０】
2020102107.tif 000032
【図３１】
2020102107.tif 000033
【図３２】
2020102107.tif 000034
【図３３】
2020102107.tif 000035
【図３４】
2020102107.tif 000036
【図３５】
2020102107.tif 000037
【図３６】
2020102107.tif 000038
【図３７】
2020102107.tif 000039
【図３８】
2020102107.tif 000040
【図３９】
2020102107.tif 000041
【図４０】
2020102107.tif 000042