以下に、本願に係る学習装置、学習方法及び学習プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
[音声認識装置の構成]
ここで、学習装置の詳細を説明する前に、end-to-endの音声認識モデル(ニューラルネットワーク)を用いた音声認識装置について説明する。音声認識装置は、後述する学習装置において学習済みのパラメータが設定された音声認識モデルを用いて音声認識を行う。図1に示すように、音声認識装置10は、制御部11及び記憶部19を有する。
制御部11は、音声認識装置10全体を制御する。制御部11は、CPU(Central Processing Unit)等により実現される。制御部11は、変換部110及び探索部120を有する。また、変換部110には、音声特徴量符号化部111及び記号列復号化部112が含まれる。記憶部19は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置である。記憶部19は、ニューラルネットワークのパラメータΛを記憶する。
変換部110は、ニューラルネットワークを用いて、音声データを音声特徴量に変換し、音声特徴量を「記号列を特定する情報」に変換する。このとき、変換部110は、学習済みのニューラルネットワークのパラメータΛを記憶部19から読み込み、読み込んだパラメータに応じた変換を行う。なお、Λは、複数のニューラルネットワークのパラメータの集合である。
ここで、記号列とは、アルファベット、漢字、スペース等のあらゆる記号(シンボル)や、それらの系列である単語、認識結果の終端を示す記号等を含む記号の系列である。また、記号列を特定する情報とは、入力音声をある記号列に変換した際の尤度(事後確率)である。
変換部110を構成するニューラルネットワークのうち、音声データを音声特徴量に変換する部分をエンコーダ層、音声特徴量を事後確率に変換する部分をデコーダ層と呼ぶこととすると、エンコーダ層が音声特徴量符号化部111に対応し、デコーダ層が記号列復号化部112に対応する。
ここで、変換部110に含まれる各部の処理について説明する。音声特徴量符号化部111は、入力された音声データx´´を、音声特徴量に変換(符号化)する。また、記号列復号化部112は、音声特徴量を、記号列を特定する情報に変換(復号化)する。なお、音声特徴量符号化部111及び記号列復号化部112によって用いられるニューラルネットワークのパラメータは、Λに含まれるものとする。
探索部120は、記号列を特定する情報を基に記号列を探索する。この探索結果である記号列が、音声認識結果(推定記号列)である。
ここで、記号列復号化部112によって変換される記号列を特定する情報は、音声データx´´に対する音声認識結果の推定記号列y´´の事後確率p(y´´|x´´)である。このため、探索部120は、事後確率p(y´´|x´´)が最大化されるような記号列をビームサーチ等により探索する。
例えば、探索部120は、記号列の候補のうち1文字目の尤度の大きさが上位所定数に入るものを選択し、さらに、続く記号の尤度の大きさが上位所定数に入るものを選択していくことを繰り返すことで、出力する記号列を選択することができる。
[音声認識装置の処理]
図2を用いて、音声認識装置10の処理の流れを説明する。図2は、音声認識装置の処理の流れを示すフローチャートである。図2に示すように、まず、音声認識装置10は、記憶部19からパラメータを読み込む(ステップS11)。また、音声認識装置10は、認識用の音声データの入力を受け付ける(ステップS12)。
ここで、音声認識装置10は、音声データを音声特徴量に変換する(ステップS13)。次に、音声認識装置10は、音声特徴量を、記号列を特定する情報に変換する(ステップS14)。
なお、音声認識装置10は、ステップS13及びステップS14における変換を、ニューラルネットワークを用いて行う。また、各ニューラルネットワークのパラメータは、ステップS11で読み込まれたものである。
音声認識装置10は、変換した記号列を特定する情報を基に記号列を探索する(ステップS15)。そして、音声認識装置10は、探索によって得られた記号列を音声認識結果として出力する(ステップS16)。
[第1の実施形態]
第1の実施形態について説明する。第1の実施形態の学習装置は、音声認識エラー及び音声復元エラーを用いて音声認識モデルのパラメータの最適化を行う。また、第1の実施形態では、教師ありの音声データ及び教師なしの音声データが学習に用いられる。
[第1の実施形態の学習装置の構成]
図3を用いて、第1の実施形態の学習装置の構成について説明する。図3は、第1の実施形態に係る学習装置の構成の一例を示す図である。図3に示すように、学習装置20は、制御部200及び記憶部290を有する。
制御部200は、学習装置20全体を制御する。制御部200は、CPU等により実現される。制御部200は、変換部210、教師あり学習エラー計算部220、教師なし学習エラー計算部230、特徴量エラー計算部240、更新部250及び判定部260を有する。また、変換部210には、音声特徴量符号化部211、音声復号化部213及び記号列復号化部214が含まれる。このうち、音声特徴量符号化部211及び記号列復号化部214が、音声認識装置10の変換部110で用いたニューラルネットワークと同じニューラルネットワークである。つまり、学習装置20のニューラルネットワークは、音声認識装置10では用いられない部分構造(音声復号化部213)をさらに具備している点が異なる。
記憶部290は、HDD及びSSD等の記憶装置である。記憶部290は、ニューラルネットワークのパラメータΛを記憶する。ニューラルネットワークのパラメータΛの各々の初期値は、あらかじめ適当な値を設定しておくものとする。
ここで、学習装置20に入力されるデータ(学習用データ)について説明する。学習用データとして、
(1)学習用の音声データx´とそれに対応する記号列データy´(正解記号列データ)との組からなる教師あり学習用データ集合Zと、
(2)対応する記号列データがない音声データxのみからなる学習用データ(教師なし学習用音声データ)集合Sと、
があらかじめ与えられるものとする。
なお、学習用データに含まれる音声データ(x´又はx)及び記号列データ(y´)は、いずれもベクトルで表現されていてよい。また、音声データや記号列の定義は、前述の音声認識装置における各用語の定義に従う。
次に、学習装置20の各部の処理について説明する。変換部210は、ニューラルネットワークを用いて、音声データ又は記号列データを中間特徴量に変換し、中間特徴量を音声データ又は記号列を特定する情報に変換する。変換部210は、ニューラルネットワークであり、学習用データの各々を中間特徴量に変換するエンコーダ層と、中間特徴量を「記号列を特定する情報」に変換するデコーダ層とを有する。エンコーダ層は、音声特徴量符号化部211を含み、デコーダ層は、音声復号化部213及び記号列復号化部214を含む。
ここでの中間特徴量とは、音声特徴量符号化部211の出力である音声特徴量である。また、以降の説明では、音声特徴量と記号列特徴量を区別せずに、単に中間特徴量と表記する場合がある。
以降の説明では、ニューラルネットワークの各部(各層)で行われる演算(変換処理)を関数として表記する。例えば、音声特徴量符号化部211に対応するニューラルネットワークの演算を関数f(・)と表記する。この関数の出力値が、音声特徴量符号化部211の出力となる。
また、音声復号化部213に対応するニューラルネットワークの演算を、関数c(・)と表記する。また、記号列復号化部214に対応するニューラルネットワークの演算を、関数d(・)と表記する。
なお、複数の層からなる多層ニューラルネットワークに対応する演算は、各層に対応する演算を表す関数の合成関数で表記できる。例えば、音声特徴量符号化部211と記号列復号化部214とからなる多層ニューラルネットワークの演算は、d(f(・))のように表記することができる。
ここで、ニューラルネットワークの「層」と呼んでいるものは、必ずしも物理的に1層であることを意味するものではなく、複数層をまとめて「層」としてもよい。言い換えれば、ニューラルネットワーク全体の中で1以上の層からなる部分構造を「層」と呼ぶこととする。
音声特徴量符号化部211は、入力された学習用データ中の音声データを音声特徴量に変換(符号化)する。具体的には、音声特徴量符号化部211は、教師あり学習用データ中の音声データx´を音声特徴量f(x´)に、教師なし学習用音声データ中の音声データxを音声特徴量f(x)に変換する。
以下、教師あり学習用データの音声データx´を変換して得た音声特徴量f(x´)を「教師あり音声データに対応する音声特徴量」、教師なし学習用音声データxを変換して得た音声特徴量f(x)を「教師なし音声データに対応する音声特徴量」と呼ぶこととする。
音声復号化部213は、入力された中間特徴量を、音声データに変換(復号化)する。ここで対象となる中間特徴量は、教師なし音声データに対応する音声特徴量f(x)である。
記号列復号化部214は、入力された中間特徴量を、記号列を特定する情報に変換(復号化)する。ここで対象となる中間特徴量は、教師あり音声データに対応する中間特徴量f(x´)である。
音声復号化部213及び記号列復号化部214は、ニューラルネットワーク、例えば、アテンション機構を有する長短期記憶(Long Short Term Memory:LSTM)で実現される。
教師あり学習エラー計算部220は、音声データを記号列データに変換する第1のタスクで学習を行う。第1のタスクに関するエラーは、音声認識エラー計算部222によって計算される。
まず、教師あり音声データに対応する音声特徴量f(x´)を、記号列を特定する情報に変換する場合を例に説明する。記号列を特定する情報の推定結果に基づき特定される記号列を。推定記号列データとする。記号列復号化部214は、第tステップにおいて、直前のステップ(t−1ステップ)でニューラルネットワークから出力される状態ベクトルht−1と、t−1ステップまでに得た推定記号列データy´1:t−1と、音声特徴量f(x´)を入力として、次の出力記号に対応する状態ベクトルhtに変換する。そして、htに基づき、推定記号列データが正解記号列データ中のt番目の記号(以下「正解記号」ともいう)y´tと一致する事後確率P(y´t|y´1:t−1,f(x´))を計算する。これを先頭から順に再帰的に繰り返す。
ここで得られる事後確率P(y´t|y´1:t−1,f(x´))が「記号列を特定する情報」である。
また、記号列復号化部214は、教師なし記号列データに対応する記号列特徴量g(y)についても同様の処理を行い、事後確率P(yt|y1:t−1,g(y))を計算する。
教師あり学習エラー計算部220の音声認識エラー計算部222は、教師あり学習用データ中の音声データを変換部210により変換して得られた結果(事後確率)を用いて音声認識エラーを計算する。具体的には、音声認識エラー計算部222は、微分可能な音声認識エラーLASRとして、(1)式の交差エントロピー損失を計算する。
ここで、y´1:t−1は、y´1からy´t−1までの記号列を表す。つまり、音声認識エラー計算部222は、変換部210によって教師あり音声データx´を変換して得た記号列を特定する情報P(y´t|y´1:t−1,f(x´))を用いて音声認識エラーを計算する。
(1)式は、教師あり音声データx´を変換して得た記号列を特定する情報P(y´t|y´1:t−1,f(x´))に基づき推定される推定記号列データと、学習用データ中で音声データx´にあらかじめ対応付けられた正解記号列データy´との近さを表す尺度といえる。
教師なし学習エラー計算部230は、音声復元エラー計算部231を有する。音声復元エラー計算部231は、ペアデータのない音声データに対してオートエンコーダによる教師なし学習を行う。
音声特徴量符号化部211及び音声復号化部213の学習は、音声復元エラー計算部231を用いて行われる。また、音声特徴量符号化部211及び音声復号化部213の学習は、教師なし音声データを用いて行われる。
音声復元エラー計算部231は、(2)式のように、音声データxと、音声データxを変換部210で変換して合成音声データ^xと、が復元できているか測る音声合成損失を、微分可能な音声復元エラーLspeechとして計算する。
特徴量エラー計算部240は、学習用に与えられた音声データをニューラルネットワークにより変換して得た中間特徴量の分布と、学習用に与えられた音声データ又は記号列データをニューラルネットワークにより変換して得た中間特徴量の分布との非類似度を表す特徴量エラーLdomを計算する。
具体的には、特徴量エラー計算部240は音声認識のタスクに用いる中間特徴量と、他の補助タスクに用いる中間特徴量との非類似度として、特徴量エラーLdomを計算する。ここで、音声認識のタスクとは、教師あり音声データを音声特徴量符号化部211と記号列復号化部214で変換して記号列を特定する情報を得るタスクである、また、音声特徴量とは、教師あり音声データを音声特徴量符号化部211で変換して得た中間特徴量である。また、第1の実施形態において、補助タスクとは、音声復元のタスクである。
音声復元のタスクとは、教師なし音声データを音声特徴量符号化部211と音声復号化部213とにより変換して合成音声を得るタスクである。音声復元のタスクで用いる中間特徴量とは、教師なし音声データを音声特徴量符号化部211で変換して得られる中間特徴量である。
特徴量エラーとは、第1の中間特徴量Fn1(u)と第2の中間特徴量Fn2(v)との非類似度を表す指標であり、例えば、カーネル法に基づく検定における指標であるMMD(Maximum Mean Discrepancy)に基づくエラーを用いることができる。この場合、特徴量エラー計算部240は、(3)式のように特徴量エラーLdomを計算する。ここで、(3)式において、カーネルkは微分可能なものを用いるため、Ldomは微分可能である。
なお、上記の音声認識のタスク及び各補助タスクで得られる各中間特徴量は、第1の特徴量及び第2の特徴量になり得る。また、関数Fn1(・)及び関数Fn2は、f(・)及びg(・)のいずれかである。例えば、第1の特徴量を音声認識のタスクで得られる音声特徴量f(x´)とし、第2の特徴量を音声復元のタスクで得られる音声特徴量f(x)とすることができる。
更新部250は、音声認識エラー計算部222によって計算された音声認識エラーLASRと、音声復元エラー計算部231によって計算された音声復元エラーLspeechと、特徴量エラー計算部240によって計算された特徴量エラーLdomとに基づき、ニューラルネットワークの各パラメータを更新する。具体的には、更新部250は、(4)式のように、各エラーの重み付き和Lを最小化するようにパラメータを更新する。
ここで、α、β、γ、θ、Φは重みを表すパラメータであり、あらかじめ値が設定されるものとする。第1の実施形態ではα、θが用いられる。また、β、γは、後に説明する各実施形態において用いられる。また、LTTS、LASR、Lspeech、Lsymbol、Ldomはエラーである。第1の実施形態ではLASR、Lspeech及びLdomが用いられる。また、LTTS及びLsymbolは、後に説明する各実施形態において用いられる。
第1の実施形態及び後に説明する各実施形態において、Lは、微分可能なLTTS、LASR、Lspeech、Lsymbol、Ldomのうちのいくつかの重み付き和であるため、微分可能である。よって、更新部250は、周知の誤差伝播学習法等により、微分値に基づきニューラルネットワークのパラメータを更新していくことができる。
判定部260は、更新部250によって計算されたエラーが所定の基準を満たしたか否かを判定する。ここで、判定部260によってパラメータが所定の基準を満たしていないと判定された場合、学習装置20は、音声特徴量符号化部211に戻り処理を繰り返す。一方、判定部260によってパラメータが所定の基準を満たしたと判定された場合、学習装置20は、現在のニューラルネットワークのパラメータを学習済みパラメータとして出力する。
なお、所定の基準としては、例えば、繰り返し処理の回数があらかじめ定められた回数に到達したこと、エラーが所定の閾値以下となったこと、パラメータの更新量(エラーの微分値)が所定の閾値以下となったこと、等を用いることができる。
[第1の実施形態の学習装置の処理]
図4を用いて、本実施形態の学習装置20の処理の流れを説明する。図4は、第1の実施形態に係る学習装置の処理の流れを示すフローチャートである。図4に示すように、まず、学習装置20は、記憶部290から各ニューラルネットワークのパラメータを読み込む(ステップS21)。ここで、学習装置20は、教師ありの音声データの入力を受け付ける(ステップS22a)。また、学習装置20は、教師なしの音声データの入力を受け付ける(ステップS23a)。
そして、学習装置20は、並列処理で教師ありエラー計算処理、教師なしエラー計算処理及び特徴量エラー計算処理を実行する(ステップS24)。なお、学習装置20は、ステップS24の各処理を必ずしも並列処理で行う必要はなく、ステップS25へ進む前に各処理を終了させていればよい。
エラーの計算処理が終わると、学習装置20は、各エラーが小さくなるようにパラメータを更新する(ステップS25)。そして、学習装置20は、パラメータが収束したか否かを判定する(ステップS26)。学習装置20は、パラメータが収束していないと判定した場合(ステップS26、No)、ステップS21に戻り処理を繰り返す。一方、学習装置20は、パラメータが収束したと判定した場合(ステップS26、Yes)、パラメータを出力し(ステップS27)、処理を終了する。
第1の実施形態では、教師ありエラー計算処理として、音声認識エラー計算処理を行う。また、第1の実施形態では、教師なしエラー計算処理として、音声復元エラー計算処理を行う。
図5を用いて、音声認識エラー計算処理の流れを説明する。図5に示すように、学習装置20は、まず、教師ありの音声データ及び記号列データを読み込む(ステップS111)。
学習装置20は、読み込んだ音声データを音声特徴量に変換する(ステップS112)。このとき、学習装置20は、音声特徴量を特徴量エラー計算処理に受け渡す(ステップS113)。そして、学習装置20は、音声特徴量を、記号列を特定する情報に変換する(ステップS114)。さらに、学習装置20は、読み込んだ記号列データと変換された記号列を特定する情報とに基づき音声認識エラーを計算する(ステップS115)。
図6を用いて、音声復元エラー計算処理の流れを説明する。図6は、音声復元エラー計算処理の流れを示すフローチャートである。図6に示すように、学習装置20は、まず、教師なしの音声データを読み込む(ステップS211)。
学習装置20は、読み込んだ音声データを音声特徴量に変換する(ステップS212)。そして、学習装置20は、音声特徴量を特徴量エラー計算処理に受け渡す(ステップS213)。ここで、学習装置20は、音声特徴量を音声データに変換する(ステップS214)。さらに、学習装置20は、読み込んだ音声データと音声特徴量から変換された音声データに基づき音声復元エラーを計算する(ステップS215)。
図7を用いて、特徴量エラー計算処理の流れを説明する。図7は、特徴量エラー計算処理の流れを示すフローチャートである。図7に示すように、学習装置20は、まず、第1の中間特徴量と第2の中間特徴量を受け取る(ステップS301)。例えば、第1の中間特徴量は、音声認識エラー計算処理から受け取る音声特徴量であり、第2の中間特徴量は、音声復元エラー計算処理から受け取る音声特徴量である。次に、学習装置20は、第1の中間特徴量と第2の中間特徴量とのエラーを計算する(ステップS302)。
なお、学習装置20は、第1の中間特徴量及び第2の中間特徴量として、各中間特徴量の複数の組み合わせを受け取り、各組み合わせについて計算したエラーを合計した値を特徴量エラーとすることができる。
[第1の実施形態の効果]
これまで説明してきたように、変換部210は、ニューラルネットワークにより、音声データを、記号列を特定する情報に変換する。音声認識エラー計算部222は、音声データと記号列データとが対応付けられた学習用データを用いて、学習用データ中の音声データをニューラルネットワークにより変換して得た記号列を特定する情報に基づき推定される記号列データの推定結果と、学習用データ中の当該音声データに対応する記号列データとの非類似度を表す音声認識エラーを計算する。音声復元エラー計算部231は、記号列データが対応付けられていない音声データである教師なし音声データを用いて、当該教師なし音声データをニューラルネットワークにより変換して得た音声データの推定結果と、教師なし音声データとの非類似度を表す音声復元エラーを計算する。更新部250は、音声認識エラーと音声復元エラーとから計算される所定の基準に基づき、ニューラルネットワークのパラメータを更新する。
音声復元エラーは、教師なし音声データに基づいて算出することができる。つまり、音声復元エラーは、教師なし学習によって最小化を行うことができる。このため、少量の教師あり学習用データに基づいて音声認識エラーを算出することができる。
したがって、音声認識エラーと音声復元エラーとに基づく所定のエラーが最小化されるように、ニューラルネットワークのパラメータを更新することで、少量の教師あり学習用データと、教師なし学習用データに基づいて、半教師あり学習を行うことが可能となる。
また、音声復元エラー計算部231は、教師なし音声データと、変換部210によって教師なし音声データを変換して得た音声特徴量をさらに変換した音声データと、が一致する確率に基づく交差エントロピー損失をエラーとして計算する。これにより、音声復元エラーを微分可能なエラーとして計算することができるため、誤差逆伝播法等の既知の手法でパラメータの最適化を行うことができる。
そして、更新部250において、音声認識エラーと音声復元エラーとに基づく所定の基準(各エラーの重み付き和)を最小化するように、ニューラルネットワークの全てのパラメータを更新することで、音声認識モデルを構成するニューラルネットワークのパラメータをend-to-endで半教師あり学習することができるのである。
具体的には、音声認識エラーと音声復元エラーの重み付け和における各重みは、どのエラーを優先して最小化するかを決定するものである。音声認識エラーは教師あり学習用データに基づくエラーであり、音声復元エラーは教師なし学習用データに基づくエラーである。つまり、重みを調整することで、教師あり学習用データと教師なし学習用データとのどちらのデータにより適合するようにニューラルネットワークを学習させるかを調整することができる。例えば、学習用データの量に応じて、データ量が多い方に対応するエラーが優先されるよう重みを調整すること等が可能となるといえる。
[第2の実施形態]
第2の実施形態について説明する。第2の実施形態の学習装置は、第1の実施形態における音声認識エラー、音声復元エラー及び特徴量エラーに加え、音声合成エラーを用いて音声認識モデルのパラメータの最適化を行う。また、第2の実施形態では、教師ありの音声データ、教師ありの記号列データ及び教師なしの音声データが学習に用いられる。また、第2の実施形態の説明において、第1の実施形態と共通する事項については適宜説明を省略する。
[第2の実施形態の学習装置の構成]
図8を用いて、第2の実施形態の学習装置の構成について説明する。図8は、第2の実施形態に係る学習装置の構成の一例を示す図である。図8に示すように、学習装置20は、制御部200及び記憶部290を有する。
制御部200は、学習装置20全体を制御する。制御部200は、CPU等により実現される。制御部200は、変換部210、教師あり学習エラー計算部220、教師なし学習エラー計算部230、特徴量エラー計算部240、更新部250及び判定部260を有する。また、変換部210には、音声特徴量符号化部211、記号列特徴量符号化部212、音声復号化部213及び記号列復号化部214が含まれる。
記号列特徴量符号化部212は、エンコーダ層に含まれる。また、記号列特徴量符号化部212に対応するニューラルネットワークの演算を、関数g(・)と表記する。記号列特徴量符号化部212は、入力された学習用データ中の記号列データを記号列特徴量に変換(符号化)する。具体的には、記号列特徴量符号化部212は、教師あり学習用データ中の記号列データy´を記号列特徴量g(y´)に変換する。
教師あり学習エラー計算部220は、教師あり音声データと記号列データのペアを2つのタスクで学習する。2つのタスクのうちの1つは、音声データを記号列データに変換する第1のタスクである。第1のタスクに関するエラーは、音声認識エラー計算部222によって計算される。また、2つのタスクのうちのもう1つは、記号列データを音声データに変換する第2のタスクである。第2のタスクに関するエラーは、音声合成エラー計算部221によって計算される。
教師あり記号列データに対応する記号列特徴量g(y´)を、教師あり音声データに変換する場合を例に説明する。変換によって合成される音声を^x(以下「合成音声データ」ともいう)とする。音声復号化部213は、第tステップにおいて、直前のステップ(t−1ステップ)でニューラルネットワークから出力される状態ベクトルht−1と、t−1ステップまでに得た教師音声データx´1:t−1と、記号列特徴量g(y´)を入力として、次の出力記号に対応する状態ベクトルhtに変換する。そして、htに基づき、音声復号化部213は、合成音声のフレーム^xt及び時刻tで音声の合成を終える確率Pr(len(^x)=t)を出力する。
音声合成エラー計算部221は、合成音声フレーム^xtと教師音声フレームx´tとのL1・L2エラーの最小化、及び、時刻tで音声の合成を終える確率の最大化を実現する、微分可能な音声合成エラーLTTSを(5)式のように計算する。
特徴量エラー計算部240は、学習用に与えられた音声データをニューラルネットワークにより変換して得た中間特徴量の分布と、学習用に与えられた音声データ又は記号列データをニューラルネットワークにより変換して得た中間特徴量の分布との非類似度を表す特徴量エラーLdomを計算する。
第2の実施形態において、補助タスクとは、音声復元のタスク及び音声合成のタスクである。音声合成のタスクとは、教師あり記号列データを記号列特徴量符号化部212と音声復号化部213とにより変換して合成音声を得るタスクである。音声合成のタスクで用いる中間特徴量とは、教師あり記号列データを記号列特徴量符号化部212で変換して得られる中間特徴量である。
更新部250は、音声合成エラー計算部221によって計算された音声合成エラーLTTSと、音声認識エラー計算部222によって計算された音声認識エラーLASRと、音声復元エラー計算部231によって計算された音声復元エラーLspeechと、特徴量エラー計算部240によって計算された特徴量エラーLdomとに基づき、ニューラルネットワークの各パラメータを更新する。具体的には、更新部250は、(6)式のように、各エラーの重み付き和Lを最小化するようにパラメータを更新する。
[第2の実施形態の学習装置の処理]
図9を用いて、本実施形態の学習装置20の処理の流れを説明する。図9は、第2の実施形態に係る学習装置の処理の流れを示すフローチャートである。図9に示すように、まず、学習装置20は、記憶部290から各ニューラルネットワークのパラメータを読み込む(ステップS21)。ここで、学習装置20は、教師ありの音声データ及び記号列データの入力を受け付ける(ステップS22b)。また、学習装置20は、教師なしの音声データの入力を受け付ける(ステップS23b)。
そして、学習装置20は、並列処理で教師ありエラー計算処理、教師なしエラー計算処理及び特徴量エラー計算処理を実行する(ステップS24)。なお、学習装置20は、ステップS24の各処理を必ずしも並列処理で行う必要はなく、ステップS25へ進む前に各処理を終了させていればよい。
エラーの計算処理が終わると、学習装置20は、各エラーが小さくなるようにパラメータを更新する(ステップS25)。そして、学習装置20は、パラメータが収束したか否かを判定する(ステップS26)。学習装置20は、パラメータが収束していないと判定した場合(ステップS26、No)、ステップS21に戻り処理を繰り返す。一方、学習装置20は、パラメータが収束したと判定した場合(ステップS26、Yes)、パラメータを出力し(ステップS27)、処理を終了する。
第2の実施形態では、教師ありエラー計算処理として、音声認識エラー計算処理及び音声合成エラー計算処理を行う。また、第2の実施形態では、教師なしエラー計算処理として、音声復元エラー計算処理及び記号列復元エラー計算処理を行う。
音声認識エラー計算処理の流れは、図5を用いて説明した通りである。また、音声復元エラー計算処理の流れは、図6を用いて説明した通りである。また、特徴量エラー計算処理の流れは、図7を用いて説明した通りである。
図10を用いて、音声合成エラーの計算処理について説明する。図10は、音声合成エラー計算処理の流れを示すフローチャートである。まず、学習装置20は、教師なしの記号列データを読み込む(ステップS121)。学習装置20は、読み込んだ記号列データを記号列特徴量に変換する(ステップS122)。ここで、学習装置20は、記号列特徴量を特徴量エラー計算処理に受け渡す(ステップS123)。そして、学習装置20は、記号列特徴量を音声データに変換する(ステップS124)。さらに、学習装置20は、読み込んだ音声データと記号列特徴量から変換された音声データに基づき音声合成エラーを計算する(ステップS125)。
[第2の実施形態の効果]
これまで説明してきたように、音声合成エラー計算部221は、音声データと記号列データとが対応付けられた学習用データを用いて、学習用データ中の記号列データをニューラルネットワークにより変換して得た音声データの推定結果と、学習用データ中の音声データとの非類似度を表す音声合成エラーを計算する。更新部250は、音声認識エラーと音声復元エラーと音声合成エラーとから計算される所定の基準に基づき、ニューラルネットワークのパラメータを更新する。
これにより、第2の実施形態では、教師ありの学習データを用いて、音声認識エラーだけでなく、音声合成エラーを使った学習を行うことができる。このため、第2の実施形態によれば、限られた教師ありの学習データをより有効に利用することができる。
[第3の実施形態]
第3の実施形態について説明する。第3の実施形態の学習装置は、第1の実施形態における音声認識エラー、音声復元エラー及び特徴量エラーに加え、記号列復元エラーを用いて音声認識モデルのパラメータの最適化を行う。また、第3の実施形態では、教師ありの音声データ、教師なしの音声データ及び教師なしの記号列データが学習に用いられる。また、第3の実施形態の説明において、第1の実施形態又は第2の実施形態と共通する事項については適宜説明を省略する。
[第3の実施形態の学習装置の構成]
図11を用いて、第3の実施形態の学習装置の構成について説明する。図11は、第3の実施形態に係る学習装置の構成の一例を示す図である。図11に示すように、学習装置20は、制御部200及び記憶部290を有する。
制御部200は、学習装置20全体を制御する。制御部200は、CPU等により実現される。制御部200は、変換部210、教師あり学習エラー計算部220、教師なし学習エラー計算部230、特徴量エラー計算部240、更新部250及び判定部260を有する。また、変換部210には、音声特徴量符号化部211、記号列特徴量符号化部212、音声復号化部213及び記号列復号化部214が含まれる。
教師なし学習エラー計算部230は、音声復元エラー計算部231及び記号列復元エラー計算部232を有する。音声復元エラー計算部231及び記号列復元エラー計算部232は、それぞれペアデータのない音声データと記号列データに対してオートエンコーダによる教師なし学習を行う。
記号列特徴量符号化部212及び記号列復号化部214の学習は、記号列復元エラー計算部232を用いて行われる。また、記号列特徴量符号化部212及び記号列復号化部214の学習は、教師なし記号列データを用いて行われる。
記号列復元エラー計算部232は、(7)式のように、記号列データyと、記号列データyを変換部210で変換して得た事後確率に基づき特定される推定記号列データと、が一致する確率に基づく交差エントロピー損失を、微分可能な記号列復元エラーLsymbolとして計算する。
特徴量エラー計算部240は、学習用に与えられた音声データをニューラルネットワークにより変換して得た中間特徴量の分布と、学習用に与えられた音声データ又は記号列データをニューラルネットワークにより変換して得た中間特徴量の分布との非類似度を表す特徴量エラーLdomを計算する。
第3の実施形態において、補助タスクとは、音声復元のタスク及び記号列復元のタスクである。記号列復元のタスクとは、教師なし記号列データを記号列特徴量符号化部212と記号列復号化部214とにより変換して記号列を得るタスクである。記号列復元のタスクで用いる中間特徴量とは、教師なし記号列データを記号列特徴量符号化部212で変換して得られる中間特徴量である。
更新部250は、音声認識エラー計算部222によって計算された音声認識エラーLASRと、音声復元エラー計算部231によって計算された音声復元エラーLspeechと、記号列復元エラー計算部232によって計算された記号列復元エラーLsymbolと、特徴量エラー計算部240によって計算されたLdomとに基づき、ニューラルネットワークの各パラメータを更新する。具体的には、更新部250は、(8)式のように、各エラーの重み付き和Lを最小化するようにパラメータを更新する。
[第3の実施形態の学習装置の処理]
図12を用いて、本実施形態の学習装置20の処理の流れを説明する。図12は、第3の実施形態に係る学習装置の処理の流れを示すフローチャートである。図12に示すように、まず、学習装置20は、記憶部290から各ニューラルネットワークのパラメータを読み込む(ステップS21)。ここで、学習装置20は、教師ありの音声データの入力を受け付ける(ステップS22c)。また、学習装置20は、教師なしの音声データ及び記号列データの入力を受け付ける(ステップS23c)。
そして、学習装置20は、並列処理で教師ありエラー計算処理、教師なしエラー計算処理及び特徴量エラー計算処理を実行する(ステップS24)。なお、学習装置20は、ステップS24aの各処理を必ずしも並列処理で行う必要はなく、ステップS25へ進む前に各処理を終了させていればよい。
エラーの計算処理が終わると、学習装置20は、各エラーが小さくなるようにパラメータを更新する(ステップS25)。そして、学習装置20は、パラメータが収束したか否かを判定する(ステップS26)。学習装置20は、パラメータが収束していないと判定した場合(ステップS26、No)、ステップS21に戻り処理を繰り返す。一方、学習装置20は、パラメータが収束したと判定した場合(ステップS26、Yes)、パラメータを出力し(ステップS27)、処理を終了する。
第3の実施形態では、教師ありエラー計算処理として、音声認識エラー計算処理を行う。また、第3の実施形態では、教師なしエラー計算処理として、音声復元エラー計算処理及び記号列復元エラー計算処理を行う。
音声認識エラー計算処理の流れは、図5を用いて説明した通りである。また、音声復元エラー計算処理の流れは、図6を用いて説明した通りである。また、特徴量エラー計算処理の流れは、図7を用いて説明した通りである。
図13を用いて、記号列復元エラー計算処理の流れを説明する。図13は、記号列復元エラー計算処理の流れを示すフローチャートである。図13に示すように、学習装置20は、まず、教師なしの記号列データを読み込む(ステップS221)。
学習装置20は、読み込んだ記号列データを記号列特徴量に変換する(ステップS222)。そして、学習装置20は、記号列特徴量を特徴量エラー計算処理に受け渡す(ステップS223)。ここで、学習装置20は、記号列特徴量を記号列を特定する情報に変換する(ステップS224)。さらに、学習装置20は、読み込んだ記号列データと記号列を特定する情報に基づき記号列復元エラーを計算する(ステップS225)。
[第3の実施形態の効果]
これまで説明してきたように、記号列復元エラー計算部232は、音声データが対応付けられていない記号列データである教師なし記号列データを用いて、当該教師なし記号列データをニューラルネットワークにより変換して得た記号列を特定する情報に基づき推定される記号列データの推定結果と、教師なし記号列データとの非類似度を表す記号列復元エラーを計算する。更新部250は、音声認識エラーと音声復元エラーと記号列復元エラーとから計算される所定の基準に基づき、ニューラルネットワークのパラメータを更新する。
これにより、第3の実施形態では、教師なし学習データのうち、音声データだけでなく記号列データを使った学習を行うことができる。このため、第3の実施形態によれば、教師なしの記号列データを有効に利用した半教師あり学習を行うことができる。
[第4の実施形態]
第4の実施形態について説明する。第4の実施形態の学習装置は、第1の実施形態における音声認識エラー、音声復元エラー及び特徴量エラーに加え、記号列復元エラー及び音声合成エラーを用いて音声認識モデルのパラメータの最適化を行う。また、第4の実施形態では、教師ありの音声データ、教師ありの記号列データ、教師なしの音声データ及び教師なしの記号列データが学習に用いられる。
[第4の実施形態の学習装置の構成]
図14を用いて、第4の実施形態の学習装置の構成について説明する。図14は、第4の実施形態に係る学習装置の構成の一例を示す図である。図14に示すように、学習装置20は、制御部200及び記憶部290を有する。
制御部200は、学習装置20全体を制御する。制御部200は、CPU等により実現される。制御部200は、変換部210、教師あり学習エラー計算部220、教師なし学習エラー計算部230、特徴量エラー計算部240、更新部250及び判定部260を有する。また、変換部210には、音声特徴量符号化部211、記号列特徴量符号化部212、音声復号化部213及び記号列復号化部214が含まれる。このうち、音声特徴量符号化部211及び記号列復号化部214が、音声認識装置10の変換部110で用いたニューラルネットワークと同じニューラルネットワークである。つまり、学習装置20のニューラルネットワークは、音声認識装置10では用いられない部分構造(記号列特徴量符号化部212及び音声復号化部213)をさらに具備している点が異なる。
記憶部290は、HDD及びSSD等の記憶装置である。記憶部290は、ニューラルネットワークのパラメータΛを記憶する。ニューラルネットワークのパラメータΛの各々の初期値は、あらかじめ適当な値を設定しておくものとする。
ここで、学習装置20に入力されるデータ(学習用データ)について説明する。学習用データとして、
(1)学習用の音声データx´とそれに対応する記号列データy´(正解記号列データ)との組からなる教師あり学習用データ集合Zと、
(2)対応する音声データがない記号列データyのみからなる学習用データ(教師なし学習用記号列データ)集合Tと、
(3)対応する記号列データがない音声データxのみからなる学習用データ(教師なし学習用音声データ)集合Sと、
があらかじめ与えられるものとする。
なお、学習用データに含まれる音声データ(x´又はx)及び記号列データ(y´又はy)は、いずれもベクトルで表現されていてよい。また、音声データや記号列の定義は、前述の音声認識装置における各用語の定義に従う。
次に、学習装置20の各部の処理について説明する。変換部210は、ニューラルネットワークを用いて、音声データ又は記号列データを中間特徴量に変換し、中間特徴量を音声データ又は記号列を特定する情報に変換する。変換部210は、ニューラルネットワークであり、学習用データの各々を中間特徴量に変換するエンコーダ層と、中間特徴量を「記号列を特定する情報」に変換するデコーダ層とを有する。エンコーダ層は、音声特徴量符号化部211及び記号列特徴量符号化部212を含み、デコーダ層は、音声復号化部213及び記号列復号化部214を含む。
ここでの中間特徴量とは、音声特徴量符号化部211の出力である音声特徴量、及び、記号列特徴量符号化部212の出力である記号列特徴量である。また、以降の説明では、音声特徴量と記号列特徴量を区別せずに、単に中間特徴量と表記する場合がある。
以降の説明では、ニューラルネットワークの各部(各層)で行われる演算(変換処理)を関数として表記する。例えば、音声特徴量符号化部211に対応するニューラルネットワークの演算を関数f(・)と表記する。この関数の出力値が、音声特徴量符号化部211の出力となる。
また、記号列特徴量符号化部212に対応するニューラルネットワークの演算を、関数g(・)と表記する。また、音声復号化部213に対応するニューラルネットワークの演算を、関数c(・)と表記する。また、記号列復号化部214に対応するニューラルネットワークの演算を、関数d(・)と表記する。
なお、複数の層からなる多層ニューラルネットワークに対応する演算は、各層に対応する演算を表す関数の合成関数で表記できる。例えば、音声特徴量符号化部211と記号列復号化部214とからなる多層ニューラルネットワークの演算は、d(f(・))のように表記することができる。
ここで、ニューラルネットワークの「層」と呼んでいるものは、必ずしも物理的に1層であることを意味するものではなく、複数層をまとめて「層」としてもよい。言い換えれば、ニューラルネットワーク全体の中で1以上の層からなる部分構造を「層」と呼ぶこととする。
音声特徴量符号化部211は、入力された学習用データ中の音声データを音声特徴量に変換(符号化)する。具体的には、音声特徴量符号化部211は、教師あり学習用データ中の音声データx´を音声特徴量f(x´)に、教師なし学習用音声データ中の音声データxを音声特徴量f(x)に変換する。
記号列特徴量符号化部212は、入力された教師なし学習用データ中の記号列データyを記号列特徴量に変換(符号化)する。ここで、記号列特徴量符号化部212の最終的な目標は、入力された記号列データyを変換して得られる記号列特徴量g(y)が、音声データを音声特徴量符号化部211で変換して得られる音声特徴量と近くなるような中間特徴量への変換を行うことである。つまり、学習が進むにしたがって、記号列データyを変換して得られる記号列特徴量g(y)の分布が、音声データxを変換して得た音声特徴量f(x)の分布と類似するようになる。
以下、教師あり学習用データの音声データx´を変換して得た音声特徴量f(x´)を「教師あり音声データに対応する音声特徴量」、教師あり学習用記号列データy´を変換して得た記号列特徴量g(y´)を「教師あり記号列データに対応する記号列特徴量」、教師なし学習用記号列データyを変換して得た記号列特徴量g(y)を「教師なし記号列データに対応する記号列特徴量」、教師なし学習用音声データxを変換して得た音声特徴量f(x)を「教師なし音声データに対応する音声特徴量」と呼ぶこととする。
音声復号化部213は、入力された中間特徴量を、音声データに変換(復号化)する。ここで対象となる中間特徴量は、教師なし音声データに対応する音声特徴量f(x)及び教師あり記号列データに対応する記号列特徴量g(y´)である。
記号列復号化部214は、入力された中間特徴量を、記号列を特定する情報に変換(復号化)する。ここで対象となる中間特徴量は、教師あり音声データに対応する中間特徴量f(x´)及び教師なし記号列データに対応する中間特徴量g(y)である。
音声復号化部213及び記号列復号化部214は、ニューラルネットワーク、例えば、アテンション機構を有する長短期記憶(Long Short Term Memory:LSTM)で実現される。
教師あり学習エラー計算部220は、教師あり音声データと記号列データのペアを2つのタスクで学習する。2つのタスクのうちの1つは、音声データを記号列データに変換する第1のタスクである。第1のタスクに関するエラーは、音声認識エラー計算部222によって計算される。また、2つのタスクのうちのもう1つは、記号列データを音声データに変換する第2のタスクである。第2のタスクに関するエラーは、音声合成エラー計算部221によって計算される。
まず、教師あり音声データに対応する音声特徴量f(x´)を、記号列を特定する情報に変換する場合を例に説明する。記号列を特定する情報の推定結果に基づき特定される記号列を推定記号列データとする。記号列復号化部214は、第tステップにおいて、直前のステップ(t−1ステップ)でニューラルネットワークから出力される状態ベクトルht−1と、t−1ステップまでに得た推定記号列データy´1:t−1と、音声特徴量f(x´)を入力として、次の出力記号に対応する状態ベクトルhtに変換する。そして、htに基づき、推定記号列データが正解記号列データ中のt番目の記号(以下「正解記号」ともいう)y´tと一致する事後確率P(y´t|y´1:t−1,f(x´))を計算する。これを先頭から順に再帰的に繰り返す。
ここで得られる事後確率P(y´t|y´1:t−1,f(x´))が「記号列を特定する情報」である。
また、記号列復号化部214は、教師なし記号列データに対応する記号列特徴量g(y)についても同様の処理を行い、事後確率P(yt|y1:t−1,g(y))を計算する。
教師あり学習エラー計算部220の音声認識エラー計算部222は、教師あり学習用データ中の音声データを変換部210により変換して得られた結果(事後確率)を用いて音声認識エラーを計算する。具体的には、音声認識エラー計算部222は、微分可能な音声認識エラーLASRとして、(1)式の交差エントロピー損失を計算する。
ここで、y´1:t−1は、y´1からy´t−1までの記号列を表す。つまり、音声認識エラー計算部222は、変換部210によって教師あり音声データx´を変換して得た記号列を特定する情報P(y´t|y´1:t−1,f(x´))を用いて音声認識エラーを計算する。
(1)式は、教師あり音声データx´を変換して得た記号列を特定する情報P(y´t|y´1:t−1,f(x´))に基づき推定される推定記号列データと、学習用データ中で音声データx´にあらかじめ対応付けられた正解記号列データy´との近さを表す尺度といえる。
次に、教師あり記号列データに対応する記号列特徴量g(y´)を、教師あり音声データに変換する場合を例に説明する。変換によって合成される音声を^x(以下「合成音声データ」ともいう)とする。音声復号化部213は、第tステップにおいて、直前のステップ(t−1ステップ)でニューラルネットワークから出力される状態ベクトルht−1と、t−1ステップまでに得た教師音声データx´1:t−1と、記号列特徴量g(y´)を入力として、次の出力記号に対応する状態ベクトルhtに変換する。そして、htに基づき、音声復号化部213は、合成音声のフレーム^xt及び時刻tで音声の合成を終える確率Pr(len(^x)=t)を出力する。
音声合成エラー計算部221は、合成音声フレーム^xtと教師音声フレームx´tとのL1・L2エラーの最小化、及び、時刻tで音声の合成を終える確率の最大化を実現する、微分可能な音声合成エラーLTTSを(5)式のように計算する。
教師なし学習エラー計算部230は、音声復元エラー計算部231及び記号列復元エラー計算部232を有する。音声復元エラー計算部231及び記号列復元エラー計算部232は、それぞれペアデータのない音声データと記号列データに対してオートエンコーダによる教師なし学習を行う。
音声特徴量符号化部211及び音声復号化部213の学習は、音声復元エラー計算部231を用いて行われる。また、音声特徴量符号化部211及び音声復号化部213の学習は、教師なし音声データを用いて行われる。
一方、記号列特徴量符号化部212及び記号列復号化部214の学習は、記号列復元エラー計算部232を用いて行われる。また、記号列特徴量符号化部212及び記号列復号化部214の学習は、教師なし記号列データを用いて行われる。
具体的には、記号列復元エラー計算部232は、(7)式のように、記号列データyと、記号列データyを変換部210で変換して得た事後確率に基づき特定される推定記号列データと、が一致する確率に基づく交差エントロピー損失を、微分可能な記号列復元エラーLsymbolとして計算する。
音声復元エラー計算部231は、(2)式のように、音声データxと、音声データxを変換部210で変換して合成音声データ^xと、が復元できているか測る音声合成損失を、微分可能な音声復元エラーLspeechとして計算する。
特徴量エラー計算部240は、学習用に与えられた音声データをニューラルネットワークにより変換して得た中間特徴量の分布と、学習用に与えられた音声データ又は記号列データをニューラルネットワークにより変換して得た中間特徴量の分布との非類似度を表す特徴量エラーLdomを計算する。
具体的には、特徴量エラー計算部240は音声認識のタスクに用いる中間特徴量と、他の補助タスクに用いる中間特徴量との非類似度として、特徴量エラーLdomを計算する。ここで、音声認識のタスクとは、教師あり音声データを音声特徴量符号化部211と記号列復号化部214で変換して記号列を特定する情報を得るタスクである、また、音声特徴量とは、教師あり音声データを音声特徴量符号化部211で変換して得た中間特徴量である。また、第4の実施形態において、補助タスクとは、音声復元のタスク、記号列復元のタスク、及び音声合成のタスクである。
音声復元のタスクとは、教師なし音声データを音声特徴量符号化部211と音声復号化部213とにより変換して合成音声を得るタスクである。音声復元のタスクで用いる中間特徴量とは、教師なし音声データを音声特徴量符号化部211で変換して得られる中間特徴量である。
記号列復元のタスクとは、教師なし記号列データを記号列特徴量符号化部212と記号列復号化部214とにより変換して記号列を得るタスクである。記号列復元のタスクで用いる中間特徴量とは、教師なし記号列データを記号列特徴量符号化部212で変換して得られる中間特徴量である。
音声合成のタスクとは、教師あり記号列データを記号列特徴量符号化部212と音声復号化部213とにより変換して合成音声を得るタスクである。音声合成のタスクで用いる中間特徴量とは、教師あり記号列データを記号列特徴量符号化部212で変換して得られる中間特徴量である。
特徴量エラーとは、第1の中間特徴量Fn1(u)と第2の中間特徴量Fn2(v)との非類似度を表す指標であり、例えば、カーネル法に基づく検定における指標であるMMD(Maximum Mean Discrepancy)に基づくエラーを用いることができる。この場合、特徴量エラー計算部240は、(3)式のように特徴量エラーLdomを計算する。ここで、(3)式において、カーネルkは微分可能なものを用いるため、Ldomは微分可能である。
なお、上記の音声認識のタスク及び各補助タスクで得られる各中間特徴量は、第1の特徴量及び第2の特徴量になり得る。また、関数Fn1(・)及び関数Fn2は、f(・)及びg(・)のいずれかである。例えば、第1の特徴量を音声認識のタスクで得られる音声特徴量f(x´)とし、第2の特徴量を音声復元のタスクで得られる音声特徴量f(x)とすることができる。
更新部250は、音声合成エラー計算部221によって計算された音声合成エラーLTTSと、音声認識エラー計算部222によって計算された音声認識エラーLASRと、音声復元エラー計算部231によって計算された音声復元エラーLspeechと、記号列復元エラー計算部232によって計算された記号列復元エラーLsymbolと、特徴量エラー計算部240によって計算された特徴量エラーLdomと、に基づき、ニューラルネットワークの各パラメータを更新する。具体的には、更新部250は、(9)式のように、各エラーの重み付き和Lを最小化するようにパラメータを更新する。
ここで、α、β、γ、θ、Φは重みを表すパラメータであり、あらかじめ値が設定されるものとする。(9)式において、LTTS、LASR、Lspeech、Lsymbol、Ldomはいずれも微分可能であるため、Lは微分可能である。よって、更新部250は、周知の誤差伝播学習法等により、微分値に基づきニューラルネットワークのパラメータを更新していくことができる。精度を高める意味では、重みα、β、γ、θ、Φはそれぞれ0より大きな値とすることが好ましいが、重みα、β、γ、θ、Φのいずれかを0として学習してもよく、この場合、重み0としたエラーについては考慮しないことを意味する。
判定部260は、更新部250によって計算されたエラーが所定の基準を満たしたか否かを判定する。ここで、判定部260によってパラメータが所定の基準を満たしていないと判定された場合、学習装置20は、音声特徴量符号化部211に戻り処理を繰り返す。一方、判定部260によってパラメータが所定の基準を満たしたと判定された場合、学習装置20は、現在のニューラルネットワークのパラメータを学習済みパラメータとして出力する。
なお、所定の基準としては、例えば、繰り返し処理の回数があらかじめ定められた回数に到達したこと、エラーが所定の閾値以下となったこと、パラメータの更新量(エラーの微分値)が所定の閾値以下となったこと、等を用いることができる。
[第4の実施形態の学習装置の処理]
図15を用いて、本実施形態の学習装置20の処理の流れを説明する。図15は、第4の実施形態に係る学習装置の処理の流れを示すフローチャートである。図15に示すように、まず、学習装置20は、記憶部290から各ニューラルネットワークのパラメータを読み込む(ステップS21)。ここで、学習装置20は、教師ありの音声データ及び記号列データの入力を受け付ける(ステップS22d)。また、学習装置20は、教師なしの音声データ及び記号列データの入力を受け付ける(ステップS23d)。
そして、学習装置20は、並列処理で教師ありエラー計算処理、教師なしエラー計算処理及び特徴量エラー計算処理を実行する(ステップS24)。なお、学習装置20は、ステップS24の各処理を必ずしも並列処理で行う必要はなく、ステップS25へ進む前に各処理を終了させていればよい。
エラーの計算処理が終わると、学習装置20は、各エラーが小さくなるようにパラメータを更新する(ステップS25)。そして、学習装置20は、パラメータが収束したか否かを判定する(ステップS26)。学習装置20は、パラメータが収束していないと判定した場合(ステップS26、No)、ステップS21に戻り処理を繰り返す。一方、学習装置20は、パラメータが収束したと判定した場合(ステップS26、Yes)、パラメータを出力し(ステップS27)、処理を終了する。
第4の実施形態では、教師ありエラー計算処理として、音声認識エラー計算処理及び音声合成エラー計算処理を行う。また、第4の実施形態では、教師なしエラー計算処理として、音声復元エラー計算処理及び記号列復元エラー計算処理を行う。
図5を用いて、音声認識エラー計算処理の流れを説明する。図5に示すように、学習装置20は、まず、教師ありの音声データ及び記号列データを読み込む(ステップS111)。
学習装置20は、読み込んだ音声データを音声特徴量に変換する(ステップS112)。このとき、学習装置20は、音声特徴量を特徴量エラー計算処理に受け渡す(ステップS113)。そして、学習装置20は、音声特徴量を、記号列を特定する情報に変換する(ステップS114)。さらに、学習装置20は、読み込んだ記号列データと変換された記号列を特定する情報とに基づき音声認識エラーを計算する(ステップS115)。
図10を用いて、音声合成エラーの計算処理について説明する。図10は、音声合成エラー計算処理の流れを示すフローチャートである。まず、学習装置20は、教師なしの記号列データを読み込む(ステップS121)。学習装置20は、読み込んだ記号列データを記号列特徴量に変換する(ステップS122)。ここで、学習装置20は、記号列特徴量を特徴量エラー計算処理に受け渡す(ステップS123)。そして、学習装置20は、記号列特徴量を音声データに変換する(ステップS124)。さらに、学習装置20は、読み込んだ音声データと記号列特徴量から変換された音声データに基づき音声合成エラーを計算する(ステップS125)。
図6を用いて、音声復元エラー計算処理の流れを説明する。図6は、音声復元エラー計算処理の流れを示すフローチャートである。図6に示すように、学習装置20は、まず、教師なしの音声データを読み込む(ステップS211)。
学習装置20は、読み込んだ音声データを音声特徴量に変換する(ステップS212)。そして、学習装置20は、音声特徴量を特徴量エラー計算処理に受け渡す(ステップS213)。ここで、学習装置20は、音声特徴量を音声データに変換する(ステップS214)。さらに、学習装置20は、読み込んだ音声データと音声特徴量から変換された音声データに基づき音声復元エラーを計算する(ステップS215)。
図13を用いて、記号列復元エラー計算処理の流れを説明する。図13は、記号列復元エラー計算処理の流れを示すフローチャートである。図13に示すように、学習装置20は、まず、教師なしの記号列データを読み込む(ステップS221)。
学習装置20は、読み込んだ記号列データを記号列特徴量に変換する(ステップS222)。そして、学習装置20は、記号列特徴量を特徴量エラー計算処理に受け渡す(ステップS223)。ここで、学習装置20は、記号列特徴量を記号列を特定する情報に変換する(ステップS224)。さらに、学習装置20は、読み込んだ記号列データと記号列を特定する情報に基づき記号列復元エラーを計算する(ステップS225)。
図7を用いて、特徴量エラー計算処理の流れを説明する。図7は、特徴量エラー計算処理の流れを示すフローチャートである。図7に示すように、学習装置20は、まず、第1の中間特徴量と第2の中間特徴量を受け取る(ステップS301)。例えば、第1の中間特徴量は、音声認識エラー計算処理から受け取る音声特徴量であり、第2の中間特徴量は、音声復元エラー計算処理から受け取る音声特徴量である。次に、学習装置20は、第1の中間特徴量と第2の中間特徴量とのエラーを計算する(ステップS302)。
なお、学習装置20は、第1の中間特徴量及び第2の中間特徴量として、各中間特徴量の複数の組み合わせを受け取り、各組み合わせについて計算したエラーを合計した値を特徴量エラーとすることができる。
[第4の実施形態の効果]
これまで説明してきたように、記号列復元エラー計算部232は、音声データが対応付けられていない記号列データである教師なし記号列データを用いて、当該教師なし記号列データをニューラルネットワークにより変換して得た記号列を特定する情報に基づき推定される記号列データの推定結果と、教師なし記号列データとの非類似度を表す記号列復元エラーを計算する。音声合成エラー計算部221は、音声データと記号列データとが対応付けられた学習用データを用いて、学習用データ中の記号列データをニューラルネットワークにより変換して得た音声データの推定結果と、学習用データ中の音声データとの非類似度を表す音声合成エラーを計算する。特徴量エラー計算部240は、学習用に与えられた音声データをニューラルネットワークにより変換して得た中間特徴量の分布と、学習用に与えられた音声データ又は記号列データをニューラルネットワークにより変換して得た中間特徴量の分布との非類似度を表す特徴量エラーを計算する。更新部250は、音声認識エラーと音声復元エラーと記号列復元エラーと音声合成エラーと特徴量エラーとから計算される所定の基準に基づき、ニューラルネットワークのパラメータを更新する。
このように、第4の実施形態では、教師ありの学習データを用いて、音声認識エラーだけでなく、音声合成エラーを使った学習を行うことができる。また、第4の実施形態では、教師なし学習データのうち、音声データだけでなく記号列データを使った学習を行うことができる。さらに、第4の実施形態では、教師なしの学習データを用いて、特徴量エラーを使った学習を行うことができる。このため、第4の実施形態によれば、教師ありの学習データと教師なしの学習データの両方を有効に利用した半教師あり学習を行うことができる。
[第4の実施形態の変形例]
上述の実施形態の説明では、教師あり学習用データと教師なし学習用データを最初から併用して学習する例を説明したが、これに限られるものではない。例えば、まず教師あり学習用データのみを用いて所定の第1の基準を満たすまで学習を行った後、教師なし学習用データも併用して所定の第2の基準を満たすまで学習を繰り返してもよい。
例えば、最初の所定数は教師あり学習用データのみを用いて学習を行う。この場合、更新部250は、音声認識エラーに基づいてニューラルネットワークのパラメータを繰り返し更新する。そして、最初の所定数を超えたら、教師あり学習用データと教師なし学習用データを併用して、上述のように、音声認識エラー、記号列復元エラー、音声復元エラー及び特徴量エラーに基づいてニューラルネットワークのパラメータを繰り返し更新していく。
これにより、学習済みの音声認識モデルの精度を向上させたり、学習を早期に収束させたりする効果が得られる。
また、第4の実施形態の学習装置20は、第1の実施形態、第2の実施形態及び第3の実施形において計算可能な各エラーに加え、特徴量エラーを使って音声認識モデルの学習を行うことができる。逆に、第4の実施形態において実行可能なエラーの計算処理を適宜組み合わせて実行することで、第1の実施形態、第2の実施形態及び第3の実施形態を実現することができる。
さらに、第4の実施形態の学習装置20は、これまでに説明したものと異なるエラーの組み合わせを使って音声認識モデルの学習を行ってもよい。例えば、第4の実施形態の学習装置20は、音声認識エラー、特徴量エラー及び音声復元エラーの重み付き和を最小化するように学習を行ってもよい。また、計算対象のエラーの組み合わせは、収集した学習用データの性質、求められる音声認識精度、許容される計算量等を考慮して決定されてもよい。
<補記>
教師あり学習用データ及び教師なし学習用データを、所定の単位(ミニバッチ)に分割し、ミニバッチ単位で上述の学習を行ってもよい。この場合、学習用データ集合Z,T,Sがそれぞれミニバッチであると置き換えて上述の処理を行い、当該ミニバッチについての学習が完了すると、次のミニバッチについて同様の処理を行うことを繰り返せば良い。
[第5の実施形態]
第5の実施形態の学習装置20の構成は、第4の実施形態と同じである。ただし、特徴量エラー計算部240と、更新部250の処理が第4の実施形態と異なる。以下、第4の実施形態と異なる部を、特徴量エラー計算部240´、更新部250´とし、詳細を説明する。
第4の実施形態の学習装置20では、特徴量エラー計算部240においてMMDに基づき特徴量エラーを計算していた。第5の実施形態の特徴量エラー計算部240´は、2クラス識別ニューラルネットワークを用いて特徴量エラーを計算する。
つまり、第5の実施形態の学習装置20は、第4の実施形態の学習装置20と同じ変換部210を構成するニューラルネットワークに加えて、特徴量エラー計算部240´に対応する2クラス識別ニューラルネットワークを別途備える点が異なる。したがって、記憶部290に記憶されるニューラルネットワークのパラメータΛは、変換部210を構成するニューラルネットワークのパラメータに加えて、特徴量エラー計算部240に含まれるニューラルネットワークのパラメータも含む。これらのパラメータの初期値はあらかじめ適当な値を設定しておくものとする。
特徴量エラー計算部240´が有する2クラス識別ニューラルネットワークについて説明する。2クラス識別ニューラルネットワークは、入力された中間特徴量が、音声データを変換して得たものであるか、記号列データを変換して得たものであるかを識別した識別結果を出力するニューラルネットワークである。2クラス識別ニューラルネットワークの演算を表す関数をh(・)と表記する。
例えば、2クラス識別ニューラルネットワークは、記号列特徴量g(y)を入力として、h(g(y))を識別結果として出力する。あるいは、音声特徴量f(x)を入力として、h(f(x))を識別結果として出力する。
特徴量エラー計算部240´は、2クラス識別ニューラルネットワークに中間特徴量を入力することで得た識別結果を用いて、(10)式により特徴量エラーLdomを計算する。
更新部250´は、更新部250と同様に、音声認識エラーと各復元エラーと特徴量エラーとに基づく所定のエラーに基づいて、変換部210を構成するニューラルネットワークの各パラメータを更新する。
また、更新部250´は、特徴量エラーLdomの正負を反転した−Ldomに基づき、2クラス識別ニューラルネットワークのパラメータを更新する。具体的には、−Ldomの勾配に応じて、ニューラルネットワークh(・)の各パラメータの値を更新する。
特徴量エラーLdomは、音声特徴量と記号列特徴量との非類似の度合いを表している。つまり、特徴量エラー計算部240´によって計算されるエラーを小さくするようにニューラルネットワークのパラメータを学習することは、音声特徴量と記号列特徴量との分布間距離を最小化するよう学習することを意味する。学習が進むに従い、記号列特徴量が音声特徴量と近くなり、結果として中間特徴量が、音声特徴量なのか記号特徴量なのかを識別することが難しくなる。
一方、−Ldomを最小化するよう学習することは、2クラス識別ニューラルネットワークhが、音声特徴量を、記号列特徴量と誤って識別し、記号列特徴量を音声特徴量と誤って識別することがないように学習しようとすることを意味する。
つまり、2クラス識別ニューラルネットワークh(・)の学習と変換部210を構成するニューラルネットワークの学習は、敵対的学習の関係にある。
最終的に、敵対的学習では、変換部210を構成するニューラルネットワークで得られる中間特徴量が、2クラス識別ニューラルネットワークhで適切に識別できない(十分騙すことができる)ように学習を行う。これにより、記号列特徴量符号化部212から出力される記号列特徴量が、音声特徴量符号化部211から出力される音声特徴量と十分近くなる(似る)ように変換可能なニューラルネットワークを学習できる。
[実験結果]
ここで、図17を用いて、従来技術と実施形態を用いて行った実験について説明する。図17は、実験結果を示す図である。実験では、第1の実施形態、第4の実施形態のそれぞれの手法で学習した音声認識モデルと、従来の教師あり学習手法を用いて学習した音声認識モデル(非特許文献1を参照)とを用いて連続単語認識処理を行った。また、実験条件は以下の通りである。
<従来技術と実施形態で共通の条件>
・教師ありのデータ:100時間の小規模なデータセット
・音声データ:1フレーム当たり80次元のFBANK(入力単位は80次元×発話時間、学習用データに基づく平均分散モデルの正規化パラメータで正規化済み)
・記号列を特定する情報:アルファベットや数字等の文字単位の記号の系列
・パラメータ更新アルゴリズム:AdaDelta(並列処理する発話のミニバッチ数は30個)
<実施形態のみの条件>
・特徴量エラー:(8)式のMMD
・教師なしのデータ:860時間の大規模なデータセット(音声のみ:360時間、記号列のみ500時間相当)
実験の結果、図17に示すように、実施形態の方が文字誤り率(CER:Character Error Rate)及び単語誤り率(WER:Word Error Rate)が低くなった。なお、開発CER及び開発WERは、開発セット、すなわちモデルの構築に使ったデータの認識結果である。また、評価CER及び評価WERは、評価セット、すなわちモデルの構築に使わなかったデータの認識結果である。
図17より、実施形態の手法によれば、従来技術よりも認識精度の高い音声認識モデルを得ることができるといえる。特に第4の実施形態の手法で学習した音声認識モデルは、他の実施形態と比べても認識精度が高かった。
ここで、実施形態の学習装置との対比のため、従来の教師あり学習法によりend-to-end学習を行う学習装置について説明する。図18は、従来の学習装置の構成を示す図である。図18に示すように、従来の学習装置20aは、制御部200a及び記憶部290aを有する。また、制御部200aは、音声特徴量符号化部211a、記号列復号化部214a、音声認識エラー計算部222a、更新部250a及び判定部260aを有する。
学習装置20aは、あらかじめ対応付けられた記号列を特定する情報及び音声データ(教師あり学習用データ)の入力を受け付ける。ここで、音声特徴量符号化部211aは、音声データを、ニューラルネットワークを用いて所定の特徴量に変換する。また、記号列復号化部214aは、音声特徴量符号化部211aによって変換された特徴量を、ニューラルネットワークを用いて記号列を特定する情報に変換する。なお、各ニューラルネットワークのパラメータは、記憶部290aに格納されているものとする。
また、音声認識エラー計算部222aは、記号列復号化部214aによって変換された記号列を特定する情報と、入力された記号列を特定する情報との間のエラーを計算する。更新部250aは、音声認識エラー計算部222aによって計算されたエラーが小さくなるように、パラメータを更新する。そして、判定部260aは、更新部250aによって更新されたエラーが収束したか否かを判定する。ここで、判定部260aによってパラメータが収束していないと判定された場合、学習装置20aは、さらに処理を繰り返す。
[従来の学習装置の処理]
図19を用いて、従来の学習装置の処理について説明する。図19は、従来の学習装置の処理の流れを示すフローチャートである。図19に示すように、まず、学習装置20aは、記憶部290からパラメータを読み込む(ステップS11a)。次に、学習装置20aは、教師ありの音声データ及び記号列を特定する情報の入力を受け付ける(ステップS12a)。
ここで、学習装置20aは、入力された音声データを音声特徴量に変換する(ステップS13a)。次に、学習装置20aは、音声特徴量を記号列を特定する情報に変換する(ステップS14a)。そして、学習装置20aは、変換された記号列を特定する情報及び入力された記号列を特定する情報から音声認識エラーを計算する(ステップS15a)。
ここで、学習装置20aは、音声認識エラーが小さくなるようにパラメータを更新する。そして、学習装置20aは、パラメータが収束したか否かを判定する(ステップS17a)。学習装置20aは、パラメータが収束していないと判定した場合(ステップS17a、No)、ステップS11aに戻り処理を繰り返す。一方、学習装置20aは、パラメータが収束したと判定した場合(ステップS17a、Yes)、処理を終了する。
[その他の実施形態]
実施形態の学習装置20の、音声特徴量符号化部211及び記号列復号化部214のそれぞれに対応するニューラルネットワークは、従来の学習装置20aで用いられるものと同様のものであってもよい。このため、例えば、従来の学習装置20aを用いた教師あり学習により各ニューラルネットワークのパラメータの初期値を決定しておくことができる。つまり、例えば第4の実施形態の学習装置20は、学習装置20aで学習されたニューラルネットワークf(・)、d(・)に、ニューラルネットワークc(・)、g(・)を(第5の実施形態の場合はさらにニューラルネットワークh(・)も)加えてさらに学習を行うことができる。
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
一実施形態として、学習装置20は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習処理を実行する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の学習プログラムを情報処理装置に実行させることにより、情報処理装置を学習装置20として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
また、学習装置20は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習処理に関するサービスを提供する学習サーバ装置として実装することもできる。例えば、学習サーバ装置は、音声データ及び記号列データを入力とし、パラメータを出力とする学習サービスを提供するサーバ装置として実装される。この場合、学習サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
図17は、学習プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、学習装置20の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、学習装置20における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。