(57)【特許請求の範囲】
【請求項１】
予め準備された学習データを用いてコンピュータが行う、リカレント型ニューラルネットワーク（ＲＮＮ）の学習方法であって、
前記学習データは、各々が学習対象データの特徴量と参照値とからなるベクトルの系列を含み、
前記学習方法は、
前記ＲＮＮを初期化するステップと、
前記ベクトルの系列内のあるベクトルを学習開始位置として指定する第１の指定ステップと、
前記ＲＮＮの各パラメータを、前記学習データに対して計算される所定の誤差関数が最小化するように最適化することで前記ＲＮＮの学習を行う学習ステップとを含み、
前記学習ステップは、
前記ベクトルの系列のうち、指定されたベクトルを先頭とする、連続するＮ個、ただしＮは３以上の整数、のベクトルを用い、当該連続するＮ個のベクトルの末尾のベクトルの参照値を正解ラベルとするＴｒｕｎｃａｔｅｄ  ＢＰＴＴにより前記ＲＮＮのパラメータの更新を行う更新ステップと、
予め定める終了条件が成立するまで、前記更新ステップで使用された前記Ｎ個のベクトルの末尾のベクトルに対して所定の関係を満たす位置にあるベクトルを新たに指定して、前記学習ステップを実行する処理を繰返す第１の繰返しステップとを含み、
前記所定の関係を満たす位置にあるベクトルは、前記更新ステップにおける前記指定されたベクトルより少なくとも２個以上後のベクトルである、ＲＮＮの学習方法。
【請求項２】
前記所定の関係を満たす位置にあるベクトルは、前記Ｎ個のベクトルの末尾のベクトルである、請求項１に記載のＲＮＮの学習方法。
【請求項３】
請求項１又は請求項２に記載のＲＮＮの学習方法であって、さらに、
前記第１の繰返しステップで前記終了条件が成立していると判定されたことに応答して、前記第１の指定ステップで指定された前記ベクトルより、前記Ｎより小さな数だけ後のベクトルを次の学習の開始位置として新たに指定する第２の指定ステップと、
前記学習ステップを、前記終了条件が成立するまで実行するステップとを含む、ＲＮＮの学習方法。
【請求項４】
請求項１又は請求項２に記載のＲＮＮの学習方法であって、さらに、前記第１の繰返しステップで前記終了条件が成立していると判定されたことに応答して、前記あるベクトルから１ずつ後のベクトルを新たな学習開始位置として指定しながら、前記あるベクトルからＮ−１個後のベクトルを指定した処理が終了するまで、前記学習ステップを繰返し実行する第２の繰返しステップを含む、ＲＮＮの学習方法。
【請求項５】
コンピュータに、請求項１〜請求項４のいずれかに記載のＲＮＮの学習方法の全てのステップを実行させる、コンピュータプログラム。
【請求項６】
入力された音声信号を所定シフト量及び所定フレーム長でフレーム化するフレーム化処理手段と、
前記フレーム化処理手段が出力する各フレームの音声信号から所定の音声特徴量を抽出し特徴量ベクトルを出力する特徴量抽出手段と、
前記特徴量抽出手段により出力される特徴量ベクトルの系列を入力とし、特徴量ベクトルが入力されるごとに、その特徴量ベクトルに対応するフレームの音声が、想定される音素の集合の各要素である確率を要素とするベクトルを出力するよう、請求項１〜請求項４のいずれかに記載の学習方法により学習を行った、ＲＮＮからなる音響モデルと、
前記音響モデルの出力するベクトルの系列と、統計的言語モデルとを用いた確率的処理により、前記音声信号を生成した尤度が最も高い単語列を出力する音声認識デコーダとを含む、音声認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、リカレント型ニューラルネットワーク（ＲＮＮ）の学習方法に関し、特に、学習の効率を高め、かつ学習後のＲＮＮの精度を高めることができるＲＮＮの学習方法及びそのためのコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、音声認識のための音響モデルとしてＲＮＮを用いることが提案されている。ＲＮＮとは、ニューラルネットワークに時系列の情報を組込んだものである。
【０００３】
図１に、通常のニューラルネットワークの原理を模式的に示す。ニューラルネットワーク３０は、入力ベクトル４６を受ける入力層４０と、入力層４０の出力を受けるように入力層４０に結合された隠れ層４２と、隠れ層４２の出力を受けるように結合され、出力ベクトル４８を出力する出力層４４とを含む。図１では、図を簡明にするために隠れ層が１層の場合を示すが、隠れ層の数は１には限定されない。
【０００４】
このようなニューラルネットワークでは、データは入力層４０から隠れ層４２へ、隠れ層４２から出力層４４へと一方向に流れる。したがってこの型のニューラルネットワークはフィードフォワードニューラルネットワーク（ＦＦＮＮ）と呼ばれる。あるノードから別のノードへの結合には重み、ときにはさらにバイアスが与えられ、これら重み及びバイアスの値が学習により定められる。学習時には、学習データを入力ベクトル４６として隠れ層４２に与え、出力層４４から出力ベクトル４８を得る。この出力ベクトル４８と正解データとの誤差を出力層４４側から隠れ層４２、入力層４０の各ノードに与え、ニューラルネットワーク３０としての誤差が最小になるように各重み及びバイアスの値を最適化する。
【０００５】
一方、ＲＮＮは、ＦＦＮＮのように一方向へのノードの結合でなく、逆方向のノードの結合、同一層内のノード間の結合、同一ノードでの自己ループ等を含む。図２に、ＲＮＮの隠れ層の１例の、各ノードの結合に関する構成を模式的に示す。図２において、この隠れ層７０は例として３つのノードを含む。これら３つのノードの各々は、より下層（入力層に近い層）からデータを受けるための結合及びより上層（出力層に近い層）にデータを渡すための結合に加え、下層のノードにデータを渡すための結合、同じ隠れ層７０内のノードとの間の結合、及び自己ループを持つ。これら結合の各々には重みがパラメータとして割り当てられている。それらパラメータの数は、数百万から数千万になることもある。音声認識のための音響モデルとして使う場合には、これらは、音声コーパス（音声データとテキストの対）から自動的に学習する必要がある。
【０００６】
ＲＮＮの学習方法としては、Back-propagation  through  time法（以下「ＢＰＴＴ」）及びその変形であるTruncated  back-propagation  through  time法（以下「Ｔｒｕｎｃａｔｅｄ  ＢＰＴＴ」）がある。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】H.  Jaeger  (2002):  Tutorial  on  training  recurrent  neural  networks,  covering  BPPT,  RTRL,  EKF  and  the  "echo  state  network"  approach.  GMD  Report  159,  German  National  Research  Center  for  Information  Technology,  2002  (48  pp.)
【非特許文献２】Mikael  Boden.  A  Guide  to  Recurrent  Neural  Networks  and  Backpropagation.  In  the  Dallas  project,  2002.
【非特許文献３】Mikolov  Tomas:  Statistical  Language  Models  based  on  Neural  Networks.  PhD  thesis,  Brno  University  of  Technology,  2012.
【非特許文献４】G.  Heigold,  E.  McDermott,  V.  Vanhoucke,  A.  Senior,  and  M.  Bacchiani,  “Asynchronous  stochastic  optimization  for  sequence  training  of  deep  neural  networks,”  in  Acoustics,  Speech  and  Signal  Processing  (ICASSP),  2014  IEEE  International  Conference  on.  IEEE,  2014,  pp.  5587-5591.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記非特許文献１は、系列全体で、全ての入力と全ての正解データとを用いてＢＰＴＴを行う方法と、系列全体の一部である部分系列について、その部分系列全体で、全ての入力と全ての正解データとを用いてＢＰＴＴを行いながら部分系列を系列全体の中でずらしていくＴｒｕｎｃａｔｅｄ  ＢＰＴＴ法の２つを開示している。
【０００９】
非特許文献２と、非特許文献２を引用した非特許文献３とは、上記非特許文献１に記載されたＴｒｕｎｃａｔｅｄ  ＢＰＴＴ法において、部分系列を１サンプルとした変種を開示している。
【００１０】
非特許文献４は、複数の時系列データを同時に処理することによってＲＮＮの学習を効率化する方法を開示している。
【００１１】
しかし、非特許文献１〜非特許文献４に開示されたいずれの方法においても、音声データのように、連続値の時系列データに対する学習が非効率になるという問題があることが知られている。
【００１２】
この点に関し、ＦＦＮＮの学習においても、隣接する学習データが似ている場合には学習が非効率になることが知られている。そのためにＦＦＮＮでは、学習前に全てのサンプルをランダムに並べ替える手法が採用されている。こうした手法により、隣接する学習データが類似したものになる可能性は低くなり、学習の効率を高めることができる。
【００１３】
しかし、音声データのように時系列のデータにおいては、サンプルの間の時間的な関係が重要である。データをランダムに並べ替えると、そうした時間的情報が失われる。したがってこのようなデータに対しては、ＦＦＮＮのように学習データをランダムに並べ替えることはできない。そのためＲＮＮにおいて音声データのような連続的な時系列のデータによる学習を行う場合、その学習効率を高めることが大きな問題であった。ここで、学習の効率を高めるということは、同じ学習データを用いた学習で計算時間を長大化せずに精度を高める学習が行えること、又は、少ない学習データを用いて、短時間の学習で、既存の方法と同等の精度を得ることができることを意味する。
【００１４】
それ故に本発明の目的は、ＲＮＮに関する時系列のデータによる学習を効率化できる学習方法を提供することである。
【課題を解決するための手段】
【００１５】
本発明の第１の局面に係るＲＮＮの学習方法は、予め準備された学習データを用いてコンピュータが行う。学習データは、各々が学習対象データの特徴量と参照値とからなるベクトルの系列を含む。この学習方法は、ＲＮＮを初期化するステップと、ベクトルの系列内のあるベクトルを学習開始位置として指定する第１の指定ステップと、ＲＮＮの各パラメータを、学習データに対して計算される所定の誤差関数が最小化するように最適化することでＲＮＮの学習を行う学習ステップとを含む。学習ステップは、ベクトルの系列のうち、指定されたベクトルを先頭とする、連続するＮ個、ただしＮは３以上の整数、のベクトルを用い、当該連続するＮ個のベクトルの末尾のベクトルの参照値を正解ラベルとするＴｒｕｎｃａｔｅｄ  ＢＰＴＴによりＲＮＮのパラメータの更新を行う更新ステップと、予め定める終了条件が成立するまで、更新ステップで使用されたＮ個のベクトルの末尾のベクトルに対して所定の関係を満たす位置にあるベクトルを新たに指定して、学習ステップを実行する処理を繰返す第１の繰返しステップとを含む。所定の関係を満たす位置にあるベクトルは、選択するステップにおける指定されたベクトルより少なくとも２個以上後のベクトルである。
【００１６】
好ましくは、所定の関係を満たす位置にあるベクトルは、Ｎ個のベクトルの末尾のベクトルである。
【００１７】
より好ましくは、ＲＮＮの学習方法はさらに、第１の繰返しステップで第１の繰返しステップの終了条件が成立していると判定されたことに応答して、第１の指定ステップで指定されたベクトルより、Ｎより小さな数だけ後のベクトルを次の学習の開始位置として新たに指定する第２の指定ステップと、学習ステップを、終了条件が成立するまで実行するステップとを含む。
【００１８】
さらに好ましくは、Ｎより小さな数は１である。
【００１９】
ＲＮＮの学習方法はさらに、第１の繰返しステップで終了条件が成立していると判定されたことに応答して、あるベクトルから１ずつ後のベクトルを新たな学習開始位置として指定しながら、あるベクトルからＮ―１個後のベクトルを指定した処理が終了するまで、学習ステップを繰返し実行する第２の繰返しステップを含む。
【００２０】
ベクトルの系列を構成する各ベクトルの各々は、音声を変換して得られた音声データの特徴量と、当該音声の音素ラベルからなる参照値とからなっていてもよい。
【００２１】
本発明の第２の局面に係るコンピュータプログラムは、コンピュータに、上記したいずれかのＲＮＮの学習方法の全てのステップを実行させる。
【００２２】
本発明の第３の局面に係る音声認識装置は、入力された音声信号を所定シフト量及び所定フレーム長でフレーム化するフレーム化処理手段と、フレーム化処理手段が出力する各フレームの音声信号から所定の音声特徴量を抽出し特徴量ベクトルを出力する特徴量抽出手段と、特徴量抽出段により出力される特徴量ベクトルの系列を入力とし、特徴量ベクトルが入力されるごとに、その特徴量ベクトルに対応するフレームの音声が、想定される音素の集合の各要素である確率を要素とするベクトルを出力するよう、上記したいずれかのＲＮＮの学習方法により学習を行った、ＲＮＮからなる音響モデルと、音響モデルの出力するベクトルの系列と、統計的言語モデルとを用いた確率的処理により、前記音声信号を生成した尤度が最も高い単語列を出力する音声認識デコーダとを含む。
【図面の簡単な説明】
【００２３】
【図１】ＦＦＮＮの１例の概略構成を示す模式図である。
【図２】ＲＮＮの隠れ層の構成の１例を示す模式図である。
【図３】ＲＮＮのアンフォールドを説明するための模式図である。
【図４】ＲＮＮを１ステップだけアンフォールドして、各層の間の結合とその重み行列等の関係を示す図である。
【図５】ＲＮＮを３ステップだけアンフォールドして、各層の間の結合とその重み行列等の関係を示す図である。
【図６】ＲＮＮを３ステップだけアンフォールドしたときの誤差逆伝搬と、重み行列と、隠れ層の値と、各層の誤差との関係を示す図である。
【図７】本発明の１実施の形態における学習データの選択方法を模式的に示す図である。
【図８】本発明の１実施の形態に係るＲＮＮの学習システムの構成を示すブロック図である。
【図９】図８に示す学習システムの学習処理部を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図１０】本発明の１実施の形態に係る学習方法の効果を従来方法と対比して示すグラフである。
【図１１】本発明の１実施の形態に係る学習方法により学習したＲＮＮからなる音響モデルを用いた音声認識装置のブロック図である。
【図１２】学習データを生成するためのプログラムを実行するコンピュータの外観を示す図である。
【図１３】図１２に外観を示すコンピュータのハードウェアブロック図である。
【発明を実施するための形態】
【００２４】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。以下の実施の形態では、ＲＮＮを音響モデルに適用する例を説明する。しかし本発明はそのような実施の形態には限定されず、時系列のデータを用いてＲＮＮの学習を行う実施の形態であれば、どのようなものに対しても適用できる。例えば音声認識、自動翻訳、画像認識、動画認識等が適用対象として考えられる。
【００２５】
なお、本実施の形態で使用する音声特徴量は、メルフィルタバンクごとのログパワー、それらのデルタ（一次微分）及びデルタデルタ（二次微分）であるが、これら以外の音声特徴量、例えばメル周波数ケプストラム係数又は線形予測法による音声特徴量を用いてもよい。
【００２６】
また、ＲＮＮは典型的にはコンピュータとその上で実行されるプログラムとにより実現される。ＲＮＮを実現するプログラムは、ＲＮＮの構造を示す情報（層の数、各層内のノード数、ノード間の結合に関する情報、各結合に割り当てられた重み及びバイアスの値、後述するアンフォールドを実現するための記憶領域及びそれらと各ノードとの結合に関する情報等）と、入力に対する各ノードの値を算出するプログラムルーチンとの集合により実現される。学習にはさらにそのためのプログラムが必要である。
【００２７】
［第１の実施の形態］
＜本実施の形態における学習方法＞
以下で説明するＲＮＮを用いた音響モデルは、音声特徴量ベクトルｘ（ｔ）の時系列を入力として、その音声特徴量が、隠れマルコフモデルの値ｓである確率Ｐ（ｓ｜ｘ（ｔ））を出力する。以下、この出力をｙ（ｔ）と書く。音響モデルとしてＲＮＮを使用する場合には、尤度計算にＰ（ｘ（ｔ）｜ｓ）を使用する。したがって、音響モデルには、ＲＮＮの出力を、ベイズの定理にしたがった次の式により変形して利用する。
【００２８】
【数１】
0006628350.tif 000002
【００２９】
ＦＦＮＮの学習方法としては、誤差逆伝搬方式が知られている。誤差逆伝搬方式では、学習データごとに、そのデータを入力層に与え、隠れ層を経て出力層からＦＦＮＮの出力を得る。この出力と、正解データとの誤差をＦＦＮＮの出力層から入力層に向けて逆に伝搬させながら、誤差が最小となるように、各ノード間の結合に与えられた重みの値を調整していく。
【００３０】
しかし、このような誤差逆伝搬方式はそのままではＲＮＮには適用できない。これはＦＦＮＮの場合と異なり、循環する経路が存在するためである。しかし、以下に述べるような工夫をすることにより、ＲＮＮの学習に誤差逆伝搬方式を利用できることが知られている。それは、学習データの系列が与えられる時刻ごとにネットワークを別のものとして考え、ある時刻での各ノードの出力が、次の時刻での各ノードに与えられるようなネットワークとしてＲＮＮを取扱う方法である。
【００３１】
これは、図３を参照して、時刻ｔ−２でのネットワーク内の各ノードの出力が、時刻ｔ−１での各ノードに与えられるように、各時刻でのネットワークを別のものとして取扱う、という考え方である。図３においては、この関係を分かりやすく示すため、時刻ｔ−１でのネットワーク内のノード９０についてのみ、そうした入出力の結合関係の例を示している。他のノードについても同様である。
【００３２】
図３を参照して、時刻ｔ−１でのノード９０への入力は、時刻ｔ−２のネットワークの各ノードからのみである。時刻ｔ−１でのノード９０からの出力は、時刻ｔでのネットワークのノードのみに与えられる。このように考えると、データは時系列で考えて一方向のみに流れる。したがってＲＮＮをＦＦＮＮと同様に考えることができ、誤差逆伝搬方式による学習をＲＮＮにも適用できる。なお、このようにＲＮＮを各時刻で別のＲＮＮのように取扱うことを「アンフォールド」と呼ぶ。
【００３３】
ＲＮＮにおいて学習すべきパラメータを説明するために、ＲＮＮにおける隠れ層への入力と隠れ層からの出力との関係について説明する。なお、ここでは説明を簡明にするために隠れ層が１つの場合について説明する。図４はＲＮＮをアンフォールドした図である。図４を参照して、時刻ｔで入力層１０４に与えられる特徴ベクトルをｘ（ｔ）、隠れ層１０２の状態をｓ（ｔ）、出力層１００の出力ベクトルをｙ（ｔ）とする。１ステップ前の隠れ層を隠れ層１０６とすると、隠れ層１０６の状態はｓ（ｔ−１）となる。入力層１０４の各ノードと隠れ層１０２の各ノードとの結合の重みを要素とする行列をＷｘｓ，そのバイアスベクトルをｂｓ，隠れ層１０２の各ノードと出力層１００の各ノードとの結合の重みを要素とする行列をＷｓｙ，そのバイアスベクトルをｂｙ、１ステップ前の隠れ層１０６の各ノードと隠れ層１０２の各ノードとの間の結合の重みを要素とする行列をＷｓｓとする。すると、隠れ層１０２の値ｓ（ｔ）及び出力層１００からの出力ｙ（ｔ）は以下の式にしたがって更新される。
【００３４】
【数２】
0006628350.tif 000003
なお、上式において、Ｈ（）は対応要素間のＴａｎｈ又は対応要素間のシグモイド関数を表す。Ｇ（）はソフトマックス関数と呼ばれる関数である。ベクトルａの要素をａｉ（ｉ＝１，…，ｎ）とすると、Ｇ（ａ）のｉ番目の要素Ｇｉは次式で表される。
【００３５】
【数３】
0006628350.tif 000004
【００３６】
上記より明らかなように、ＲＮＮのパラメータとして、行列Ｗｘｓ，Ｗｓｓ、バイアスベクトルｂｓ、ｂｙの要素の値を求める必要がある。これらの値を求める処理がＲＮＮの学習である。ここでは、現時刻より３ステップ前までの隠れ層の値を用いてＲＮＮの学習をＴｒｕｎｃａｔｅｄ  ＢＰＴＴにより行う場合を説明する。
【００３７】
図５を参照して、この場合、出力層１００の出力ｙ（ｔ）、隠れ層１０２の値ｓ（ｔ）、入力層１０４への入力ｘ（ｔ）、及び１ステップ前の隠れ層１０６の間の関係は図４と同様であり、隠れ層１０２の値ｓ（ｔ）と出力層１００の出力ｙ（ｔ）とは、上記式（１）及び（２）で表される。ただし、図５に示すように３ステップ前までの隠れ層１０２の出力を用いる場合、ＲＮＮの出力ｙ（ｔ）を得るためには、１ステップ前の入力層１０８への入力ベクトルｘ（ｔ−１），２ステップ前の入力層１１２への入力ベクトルｘ（ｔ−２），２ステップ前の隠れ層１１０の値ｓ（ｔ−２）、及び３ステップ前の隠れ層１１４の値ｓ（ｔ−３）が必要である。したがってこれらのための領域を記憶領域に確保し、これら値を記憶する必要がある。これらの間の結合の重みは、上記した式（１）に示すものと同様である。なお、隠れ層１０２，１０６，１１０及び１１４の各々において、状態データｓ（ｔ），ｓ（ｔ−１），ｓ（ｔ−２）及びｓ（ｔ−３）は、それぞれ誤差ｅ（ｔ）、ｅ（ｔ−１）、ｅ（ｔ−２）、及びｅ（ｔ−３）を含んでいる。
【００３８】
図６を参照して、ＲＮＮに関するＴｒｕｎｃａｔｅｄ  ＢＰＴＴによる学習（パラメータの更新）は以下のようにして行われる。図５に示すようにして、３ステップ前の隠れ層の出力及び２ステップ前の入力までを用いて、時刻ｔにおけるＲＮＮの出力ｙ（ｔ）を算出する。このとき、学習データは、入力ベクトルｘ（ｔ）に対する参照値ｒｅｆ（ｔ）を含んでいる。ここで、両者の誤差ｅｓｍをｅｓｍ＝ｙ（ｔ）−ｒｅｆ（ｔ）とする。誤差の符号をこの逆に記述する場合もある。誤差逆伝搬によるパラメータＷｓｓの更新は以下のように行われる。
【００３９】
まず、出力層での誤差ｅ（ｔ）の伝搬、及び隠れ層１０２での再帰的な誤差ｅ（ｔ−１）の伝搬は、それぞれ以下の式（４）及び（５）にしたがって算出される。
【００４０】
【数４】
0006628350.tif 000005
【００４１】
また、パラメータＷｓｓの更新は以下の式（６）により行われる。
【００４２】
【数５】
0006628350.tif 000006
ここで、γは学習率、Ｎは学習データの数を表す。また、Ｗｓｓだけでなく他のパラメータも同様に更新される。
【００４３】
従来のＲＮＮの学習手法のうち、第１番目のものは、学習データ系列全体を入力として、学習データ系列の各時刻でのＲＮＮの出力とその時刻の正解データとを用いてＴｒｕｎｃａｔｅｄ  ＢＰＴＴを行う。これを各学習データ系列に対して順番に行っていく、というものである。
【００４４】
２番目のものは、学習データ系列のうち必要なものを用いて、ある時刻でのＲＮＮの出力を得る。その出力と、その時刻での正解データとを用いて、Ｔｒｕｎｃａｔｅｄ  ＢＰＴＴによりパラメータの更新を行う。これを各時刻について実行し、学習データ全体を処理することでパラメータの学習を行う。
【００４５】
しかし、前述したとおり、いずれの方法でも学習効率があまりよくないことが分かっている。その原因の１つとして、音響データの様な連続的な時系列のデータの場合、隣接するデータが互いに似通っている点が挙げられる。前述したとおり、ＦＦＮＮでは、隣接する学習データが互いに似通っていると学習効率が悪く、ＲＮＮについても事情は同様である。
【００４６】
そこで、本実施の形態では次のような方法によりこの問題を解決する。図７を参照して、この実施の形態の手法では、学習データ系列１３０が与えられたときに、隣接する学習データを連続して利用してパラメータ更新をする、という方法を採らず、ある学習データによるパラメータ更新が終わったときに、その学習データと隣接しない、所定数（図７の場合には２個）だけ飛越した学習データ（図７の場合には、学習が終わったデータから３番目の学習データ）を用いて次のパラメータ更新を行う。以下、このように連続する学習で用いられる学習データ間の距離をスキップ長と呼ぶ。図７の例ではスキップ長は３である。
【００４７】
このように学習を繰返して、学習データ系列１３０の末尾付近まで到達し、それ以後で同様に選択できる学習データが存在しなくなったときに、１回目の学習を終了する。この時点で学習を完了させると、図７の例では学習に用いたデータは全体の３分の１程度、したがって計算量も従来の方法の計算量の３分の１程度となる。しかし、それでも学習後のＲＮＮの精度は従来の方法によるものより高くなる。しかし本実施の形態ではさらに、学習データ全体を有効に使用するために、再度、学習データ系列１３０の先頭に処理位置を戻し、１回目の処理のときの処理対象として選ばれた学習データに隣接する学習データを処理対象の先頭に選び直し、１回目の処理と同様の飛び越し処理を繰返す。同様に、３回目の処理も実行する。この繰返しにより、全ての学習データを用いた学習を行うことができる。
【００４８】
この方法によれば、各学習においては、隣接した学習データは連続しては使用されない。図７に示す例では２個おきの学習データが利用される。このように隣接する学習データを用いるわけではないので、学習効率があがる。しかも、例えば音響モデルの学習にこうした手法を採用した結果、モデルの精度が上がることも後述するように確認できた。
【００４９】
＜構成＞
図８に、上記したＲＮＮの学習を行う学習システムの構成をブロック図形式で示す。図８を参照して、このシステムは、学習に用いる音声コーパスを記憶した学習コーパス記憶部１９０を含む。学習コーパス記憶部１９０に記憶された音声コーパスは、多数の発話の音声データと、それらと対になるテキストとからなる。また、音声データとテキストとの間には対応関係が付けられており、音声データのどの部分がどの音素に対応するものかが分かるようになっている。
【００５０】
このシステムはさらに、学習コーパス記憶部１９０に記憶された各発話の音声データを、所定シフト量及び所定フレーム長で一部重複を許すようにフレーム化し、各フレームに対応音素のラベルを付して学習データとして出力する学習データ作成部１９２と、学習データ作成部１９２が出力する学習データを記憶する学習データ記憶部１９４と、学習データ記憶部１９４に記憶された学習データを用い、上記した手法によりＲＮＮ１９８の学習を行う学習処理部１９６とを含む。従来と異なる処理をするのはこの学習処理部１９６である。
【００５１】
学習処理部１９６は、コンピュータハードウェアと、当該コンピュータハードウェアの中央演算処理装置（ＣＰＵ）が実行するプログラムにより実現される。図９を参照して、そのようなプログラムは、メモリ上にＲＮＮの各パラメータを記憶する領域を確保し、かつ各パラメータを所定の初期化方式により初期化する初期化ステップ２２０と、ハードディスク等の記憶装置に記憶されている変数であるスキップ長skip_sizeを読出し、メモリに格納するステップ２２２と、ＲＮＮの学習時にアンフォールドする隠れ層の数Ｎをハードディスク等の記憶装置から読出し、メモリに記憶するステップ２２４と、  繰返し変数loopの値を、０から変数skip_sizeの値まで１ずつ変化させながら、処理２２８を繰返し実行するステップ２２６とを含む。
【００５２】
ステップ２２６で繰返し実行される処理２２８は、変数ｔの初期値を０として、変数ｔの値を変数skip_sizeだけ増加しながら関数RNN.truncated_BPTTを実行する処理２５０とを含む。ここで、関数RNN.truncated_BPTTはＴｒｕｎｃａｔｅｄ  ＢＰＴＴを実行する関数であり、その引数は、対象となる時刻をｔとして、時刻ｔ−Ｎでの隠れ層の値ｓ（ｔ−Ｎ）と、時刻ｔ−Ｎ＋１から時刻ｔまでの入力の値ｘ（ｔ−Ｎ＋１），ｘ（ｔ−Ｎ＋２），…，ｘ（ｔ）と、時刻ｔでの正解ラベルｒｅｆ（ｔ）とである。
【００５３】
＜動作＞
図９及び図９に構成を示す本実施の形態に係るＲＮＮの学習システムは以下のように動作する。学習コーパス記憶部１９０に記憶された音声コーパスから学習データを生成し学習データ記憶部１９４に記憶するまでのこの装置の動作は、従来のものと変わりない。
【００５４】
学習処理部１９６は、図９に示す制御構造を持つプログラムを実行して以下の様な処理を行う。
【００５５】
このプログラムの実行過程において、初期化ステップ２２０では、メモリ等の記憶装置内にＲＮＮのパラメータを記憶するための記憶領域が確保され、各記憶領域がそれぞれ適切な値で初期化される。このとき、隠れ層の値ｓについては実際上意味がなく、任意の値、例えば０に初期化してもよい。もちろん、何らかの手法で予め得た値で初期化してもよい。
【００５６】
続くステップ２２２で、スキップ長が記憶装置から読込まれ、メモリの、変数skip_sizeに割り当てられた領域に記憶される。ここで、スキップ長とは、学習時に選択する２つの学習データの間のデータ数を指す。ステップ２２４では、ＲＮＮの学習でアンフォールドする隠れ層の数が記憶装置から読み出され、変数Ｎに割り当てられたメモリ領域に記憶される。
【００５７】
ステップ２２６では、最初に変数loopの値を０に決定する。続いて、変数loopの値が、終了条件（loop<skip_size）を満たすか否かを判定する。変数skip_sizeは２以上の正の整数である。したがって最初の繰返しでの判定では終了条件は充足されず、処理２２８が実行される。処理２２８の実行が終わると、変数loopの値が１インクリメントされ、終了条件が充足されるか否かが判定される。終了条件が充足されなければ処理２２８が繰返される。こうして、終了条件が成立するまで処理２２８が繰返し実行される。
【００５８】
処理２２８の繰返しの各々においては、処理２５０がステップ２４０により定められる条件で繰返し実行される。ステップ２４０では、最初の繰返しで変数ｔに０の値が設定される。すなわち、現在時刻ｔとしてｔ＝０が指定される。続いて、繰返しの終了条件（ｔ＜データ長）が充足されているか否かが判定される。ここでのデータ長は、学習データの数に相当する。もしも終了条件が充足されていなければ、処理２５０が実行される。すなわち、隠れ層の値ｓ（ｔ−Ｎ）と、時刻ｔ−Ｎ＋１から時刻ｔまでの入力の値ｘ（ｔ−Ｎ＋１），ｘ（ｔ−Ｎ＋２），…，ｘ（ｔ）と、時刻ｔでの正解ラベルｒｅｆ（ｔ）を引き数として関数RNN.truncated_BPTTを実行する。最初の処理では、これらの値が不定となるが、その場合には初期値として０を用いれば良い。
【００５９】
ステップ２４０では、こうした処理２５０を変数ｔの値を変数skip_sizeの値だけ増加させながら繰返して実行する。このように変数ｔの値を変数skip_sizeの値だけ増加させて処理２５０を実行することにより、図７の最上段に示すような形で学習データの選択とパラメータの更新とが実行される。
【００６０】
本実施の形態では、処理２２８を変数skip_sizeの値だけ繰返している。しかし、上記手法では、繰返しの数が少なくても十分な精度を得ることができる。変数skip_sizeの値が２以上であれば、処理２２８を１回だけ実行しても従来より高い精度でＲＮＮの学習を行うことができる。この場合の学習に要する時間は従来のものと比較して短くなる。もっとも、本実施の形態のように、学習データをスキップしながら学習する処理が完了した後に、学習データの先頭に戻り、今度は図７の次段に示すように１つ後ろにずらした位置から同じように学習データをスキップしながら学習し、以下同じようにすることで、学習データの全体を効率よく利用でき、ＲＮＮの効率を高めることもできる。この場合でも、計算量、したがって処理速度は従来の技術のものと変わらない。
【００６１】
本実施の形態では、アンフォールドする隠れ層の数Ｎが３の場合を例にとった。しかしもちろん本発明はそのような実施の形態には限定されない。Ｎの値は計算量及び利用可能なデータ量に応じ、任意の値でよい。従来のＲＮＮの学習ではＮ＝９及びＮ＝１５等がよく使われる。
【００６２】
結局、上記実施の形態に係る手法では、所定数の間隔をおいた学習データを選択してＴｒｕｎｃａｔｅｄ  ＢＰＴＴによるパラメータの更新を行っている。この過程では、選択されなかった学習データに対応する隠れ層の値も計算されているため、そこから誤差を計算し学習に利用することができる。従来のＴｒｕｎｃａｔｅｄ  ＢＰＴＴでは、実際にこのように行っていたが、本手法はこの誤差計算を省略して実行することに相当する。一見、利用できる誤差情報を利用しないため、学習の効率が悪くなるように思われる。しかし、上記したようにＲＮＮの学習効率はかえって高くなるという、予測に反した結果を得ることができた。従来は、学習データの利用の効率を重視するあまり、このように飛び飛びの学習データを用いて計算の結果の一部を破棄しながらパラメータの更新を行うという方法を見出すことができなかったものと思われる。
【００６３】
＜効果＞
図１０に、本実施の形態に係る学習手法を用いて学習したＲＮＮによる音響モデル３０８を用いたフレーム精度のグラフ２６０と、従来の方式のうち、第２の方式により学習したＲＮＮにより得られた音響モデルを用いたフレーム精度のグラフ２６２とを示す。図１０のグラフは、共通の英語講演音声に対するフレーム単位でのＲＮＮの出力値によりどの音素かを当てる精度（フレーム精度）を縦軸に、学習の更新回数を横軸にして示したものである。ＲＮＮの構成は両者とも同じで学習手法を変えただけである。
【００６４】
上記した学習手法を用いたＲＮＮの学習が最終的に収束したときの音声認識誤り率（後掲の図１１の音声認識デコーダ３１０の出力の誤り率）は１８．８％であった。一方、従来手法によるＲＮＮの学習が収束したときの音声認識誤り率は２１．９％であった。
【００６５】
図１０から明らかに分かるように、本実施の形態に係る学習方法を用いてＲＮＮの学習を行うと、少ない更新回数で高い精度が得られることが分かる。また、最終的に学習が収束したときに、上記方法を用いて得られたモデルの精度は、従来手法を用いたものよりもかなり高くなることが分かる。
【００６６】
なお、この実施の形態では、図９に示す処理２２８及び処理２５０を実行する前に繰返しの終了条件の判定を行っている。しかし本発明はそのような実施の形態には限定されない。処理２２８又は処理２５０を実行した後に終了条件の判定を行うようにしてもよい。
【００６７】
［第２の実施の形態］
上記した第１の実施の形態は、ＲＮＮの学習方法及び学習システムに関するものであった。本発明の第２の実施の形態は、第１の実施の形態のＲＮＮの学習方法又は学習システムにより学習したＲＮＮを音響モデルとして利用する音声認識装置に関する。
【００６８】
図１１を参照して、この第２の実施の形態に係る音声認識装置２８０は、入力音声２８２に対する音声認識を行って、音声認識テキスト２８４として出力する機能を持つ。音声認識装置２８０は、入力音声２８２に対してアナログ／デジタル（Ａ／Ｄ）変換を行ってデジタル信号として出力するＡ／Ｄ変換回路３００と、Ａ／Ｄ変換回路３００の出力するデジタル化された音声信号を、所定長及び所定シフト量で一部重複するようにフレーム化するフレーム化処理部３０２と、フレーム化処理部３０２の出力する各フレームに対して所定の音響処理を行うことにより、そのフレームの音声特徴量を抽出し特徴量ベクトルを出力する特徴量抽出部３０４とを含む。各フレーム及び特徴量ベクトルには、入力音声２８２の例えば先頭に対する相対時刻等の情報が付されている。特徴量としては、前述したとおり、メルフィルタバンクごとのログパワー、その一次微分、二次微分等が用いられる。
【００６９】
音声認識装置２８０はさらに、特徴量抽出部３０４が出力する特徴量ベクトルを一時記憶するための特徴量記憶部３０６と、特徴量記憶部３０６に記憶された特徴量ベクトルを入力として、各時刻における各フレームがある音素に対応する確率を音素ごとに示すベクトルを出力する、ＲＮＮからなる音響モデル３０８と、音響モデル３０８の出力するベクトルと、図示しない統計的言語モデルとを用いて、確率的な処理を行うことによって、入力音声２８２に対応する音声認識テキスト２８４として最も尤度の高い単語列を出力するための音声認識デコーダ３１０とを含む。
【００７０】
音響モデル３０８の入力層のノードの数は特徴量ベクトルの要素の数と一致する。音響モデル３０８の出力層のノードの数は、音声認識装置２８０が扱う言語で想定される音素の数と一致する。出力層の各ノードには、ある時刻で入力された音声が、そのノードの表す音素である確率が出力される。したがって音響モデル３０８の出力は、その時刻での入力音声が、各ノードの表す音素である確率を要素とするベクトルである。
【００７１】
音声認識デコーダ３１０は、予め学習を行っていた、ＷＦＳＴ（Weighted  Finite  State  transducer）と呼ばれるモデルを用いるデコーダである。ここで使用するＷＦＳＴは、言語に関する知識により予め構築されるグラフであり、ＨＣＬＧと呼ばれる知識源を用いる。ＨはＨＭＭを、Ｃは文脈を、Ｌは語彙を、Ｇは文法を、それぞれ表す。ＷＦＳＴの各ノードは状態（音素）を表し、ノード間を結ぶアークは状態遷移を表す。各アークには重みが付されている。この重みは、状態遷移の確率を表す。
【００７２】
音声認識デコーダ３１０は、音響モデル３０８が出力するベクトルの各要素について、このＷＦＳＴによって音素列の確率計算をし、適宜枝刈りを行いながらＷＦＳＴ上をたどっていくことにより、最終的に最も尤度の高い単語列を音声認識テキスト２８４として出力する。
【００７３】
既に述べたように、音響モデル３０８を第１の実施の形態に係るＲＮＮとすることによって、音声認識装置２８０による音声認識の精度は従来のものより高くなる。また音響モデルの学習効率も高くなるので、その構築コストも低く抑えることができ、性能がよくコストも低い音声認識装置を実現できる。
【００７４】
［コンピュータによる実現］
本発明の実施の形態に係るＲＮＮの学習システム及び音声認識装置２８０は、コンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとにより実現できる。図１２はこのコンピュータシステム３３０の外観を示し、図１３はコンピュータシステム３３０の内部構成を示す。
【００７５】
図１２を参照して、このコンピュータシステム３３０は、メモリポート３５２及びＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）ドライブ３５０を有するコンピュータ３４０と、キーボード３４６と、マウス３４８と、モニタ３４２とを含む。
【００７６】
図１３を参照して、コンピュータ３４０は、メモリポート３５２及びＤＶＤドライブ３５０に加えて、ＣＰＵ（中央処理装置）３５６と、ＣＰＵ３５６、メモリポート３５２及びＤＶＤドライブ３５０に接続されたバス３６６と、ブートプログラム等を記憶する読出専用メモリ（ＲＯＭ）３５８と、バス３６６に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するランダムアクセスメモリ（ＲＡＭ）３６０と、ハードディスク３５４を含む。コンピュータシステム３３０はさらに、他端末との通信を可能とするネットワーク３６８への接続を提供するネットワークインターフェイス（Ｉ／Ｆ）３４４を含む。
【００７７】
コンピュータシステム３３０を上記した実施の形態に係るＲＮＮの学習システム及び音声認識装置２８０の各機能部として機能させるためのコンピュータプログラムは、ＤＶＤドライブ３５０又はメモリポート３５２に装着されるＤＶＤ３６２又はリムーバブルメモリ３６４に記憶され、さらにハードディスク３５４に転送される。又は、プログラムはネットワーク３６８を通じてコンピュータ３４０に送信されハードディスク３５４に記憶されてもよい。プログラムは実行の際にＲＡＭ３６０にロードされる。ＤＶＤ３６２から、リムーバブルメモリ３６４から又はネットワーク３６８を介して、直接にＲＡＭ３６０にプログラムをロードしてもよい。
【００７８】
このプログラムは、コンピュータ３４０を、上記実施の形態に係るＲＮＮの学習システム及び音声認識装置２８０の各機能部として機能させるための複数の命令からなる命令列を含む。コンピュータ３４０にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ３４０上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ３４０にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体はこの実施の形態のシステム及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム又は装置としての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
【００７９】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【００８０】
４０，１０４，１０８，１１２  入力層
４２，７０，１０２，１０６，１０８，１１０，１１４  隠れ層
４４，１００  出力層
１３０  学習データ系列
１９０  学習コーパス記憶部
１９２  学習データ作成部
１９４  学習データ記憶部
１９６  学習処理部
１９８  ＲＮＮ
２８０  音声認識装置
３０４  特徴量抽出部
３０６  特徴量記憶部
３０８  音響モデル
３１０  音声認識デコーダ
【図１】
0006628350.tif 000007
【図２】
0006628350.tif 000008
【図３】
0006628350.tif 000009
【図４】
0006628350.tif 000010
【図５】
0006628350.tif 000011
【図６】
0006628350.tif 000012
【図７】
0006628350.tif 000013
【図８】
0006628350.tif 000014
【図９】
0006628350.tif 000015
【図１０】
0006628350.tif 000016
【図１１】
0006628350.tif 000017
【図１２】
0006628350.tif 000018
【図１３】
0006628350.tif 000019