(57)【特許請求の範囲】
【請求項１】
入力信号が特定のクラスに属する事後確率を出力するニューラルネットワークを学習する学習装置であって、
前記ニューラルネットワークの出力層は、それぞれのクラスに対応するＮ個（Ｎは２以上の整数）のユニットと、１個の追加ユニットとを含み、
前記学習装置は、
サンプル信号を前記ニューラルネットワークに与え、前記出力層におけるそれぞれのユニットについて、直前の層から出力された信号を設定されたパラメータに従って結合したＮ＋１個の入力値を取得する伝播部と、
それぞれの前記入力値を前記事後確率を算出するための関数に入力して、前記出力層のそれぞれのユニットに対応するＮ＋１個の確率値を含む確率ベクトルを生成する確率算出部と、
前記出力層のそれぞれのユニットに対応するＮ＋１個の目標値を含む教師ベクトルと、前記確率ベクトルとの誤差を小さくするように、前記ニューラルネットワークに含まれるパラメータを更新する更新部と、
を備え、
前記追加ユニットに対応する目標値は、１／２である
学習装置。
【請求項２】
前記教師ベクトルは、それぞれのクラスに対応する目標値が、前記サンプル信号が前記クラスに属する確率に基づく値である
請求項１に記載の学習装置。
【請求項３】
前記教師ベクトルは、それぞれの目標値が０以上であり、全ての目標値の和が１であり、前記追加ユニットに対応する目標値が１／２である
請求項２に記載の学習装置。
【請求項４】
前記教師ベクトルは、正解クラスに対応する目標値が１／２であり、前記追加ユニットに対応する目標値が１／２であり、他の目標値が０である
請求項３に記載の学習装置。
【請求項５】
前記伝播部は、前記サンプル信号を前記ニューラルネットワークの入力層から順方向に伝播させて、Ｎ＋１個の前記入力値を取得する
請求項１から４の何れか１項に記載の学習装置。
【請求項６】
前記更新部は、前記誤差を前記ニューラルネットワークの前記出力層から逆方向に伝播させて、前記誤差を小さくするようにそれぞれの層のパラメータを更新する
請求項５に記載の学習装置。
【請求項７】
前記出力層のそれぞれのユニットに対応するＮ＋１個の目標値を含む教師ベクトルと、前記確率ベクトルとの誤差を算出する誤差算出部をさらに備える
請求項１から６の何れか１項に記載の学習装置。
【請求項８】
前記確率算出部は、それぞれの前記入力値をｓｏｆｔｍａｘ関数に入力して、Ｎ＋１個の確率値を含む前記確率ベクトルを生成する
請求項７に記載の学習装置。
【請求項９】
前記誤差算出部は、ｃｒｏｓｓ−ｅｎｔｒｏｐｙ誤差を算出する
請求項８に記載の学習装置。
【請求項１０】
前記ニューラルネットワークの前記出力層のそれぞれのクラスに対応したユニットは、当該ユニットに対応する前記入力値から、前記追加ユニットに対応する前記入力値を減算する関数により、前記入力信号が当該ユニットに対応するクラスに属する前記事後確率の確率値を算出する
請求項９に記載の学習装置。
【請求項１１】
音声信号から指定された検索パターンと類似する部分を検出する音声検出装置であって、
前記音声信号を音声パラメータ系列に変換する分析部と、
前記音声パラメータ系列に含まれるそれぞれの音声パラメータについて、検索パターンにおける発生のしやすさを表すスコアを前記ニューラルネットワークを用いて算出するスコア算出部と、
前記スコアに基づき、前記音声信号に前記検索パターンが含まれているかを検出する検出部と、
前記ニューラルネットワークを学習する、請求項１から１０の何れか１項に記載の学習装置と、
を備える音声検出装置。
【請求項１２】
入力信号が特定のクラスに属する事後確率を出力するニューラルネットワークを学習する学習方法であって、
前記ニューラルネットワークの出力層は、それぞれのクラスに対応するＮ個（Ｎは２以上の整数）のユニットと、１個の追加ユニットとを含み、
サンプル信号を前記ニューラルネットワークに与え、前記出力層におけるそれぞれのユニットについて、直前の層から出力された信号を設定されたパラメータに従って結合したＮ＋１個の入力値を取得する伝播ステップと、
それぞれの前記入力値を前記事後確率を算出するための関数に入力して、前記出力層のそれぞれのユニットに対応するＮ＋１個の確率値を含む確率ベクトルを生成する確率算出ステップと、
前記出力層のそれぞれのユニットに対応するＮ＋１個の目標値を含む教師ベクトルと、前記確率ベクトルとの誤差を小さくするように、前記ニューラルネットワークに含まれるパラメータを更新する更新ステップと、
を実行し、
前記追加ユニットに対応する目標値は、１／２である
学習方法。
【請求項１３】
情報処理装置を、入力信号が特定のクラスに属する事後確率を出力するニューラルネットワークを学習する学習装置として機能させるためのプログラムであって、
前記ニューラルネットワークの出力層は、それぞれのクラスに対応するＮ個（Ｎは２以上の整数）のユニットと、１個の追加ユニットとを含み、
前記学習装置を
サンプル信号を前記ニューラルネットワークに与え、前記出力層におけるそれぞれのユニットについて、直前の層から出力された信号を設定されたパラメータに従って結合したＮ＋１個の入力値を取得する伝播部と、
それぞれの前記入力値を前記事後確率を算出するための関数に入力して、前記出力層のそれぞれのユニットに対応するＮ＋１個の確率値を含む確率ベクトルを生成する確率算出部と、
前記出力層のそれぞれのユニットに対応するＮ＋１個の目標値を含む教師ベクトルと、前記確率ベクトルとの誤差を小さくするように、前記ニューラルネットワークに含まれるパラメータを更新する更新部と、
して機能させ、
前記追加ユニットに対応する目標値は、１／２である
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、学習装置、音声検出装置、学習方法およびプログラムに関する。
【背景技術】
【０００２】
クラス分類をするニューラルネットワークが知られている。このようなニューラルネットワークは、入力信号がそれぞれのクラスに属する事後確率を出力する。
【０００３】
また、入力信号から特定の検索パターンと類似する部分を検出するパターン検出装置が知られている。例えば、パターン検出装置は、音声信号から「こんにちは」等の特定のキーワードを検出する。クラス分類をするニューラルネットワークは、このようなパターン検出装置に適用することができる。
【０００４】
ところで、ニューラルネットワークは、このようなパターン検出装置に適用された場合、検索パターンに関連するクラスの事後確率を出力すればよく、全てのクラスの事後確率を出力しなくてもよい。例えば、前後の音素との接続を考慮したトライフォンを用いた音素パラメータを用いて音声信号をクラス分類する場合、全てのクラスの数は、数千個となる。これに対して、例えば「こんにちは」等の単語を検出するために事後確率が必要なクラス数は、数個から数１０個程度である。従って、このような場合には、ニューラルネットワークは、数個から数１０程度のクラスの事後確率を出力すればよい。
【０００５】
しかし、クラス分類をするニューラルネットワークは、出力層の活性化関数にｓｏｆｔｍａｘ関数を用いる。ｓｏｆｔｍａｘ関数は、入力層および隠れ層に用いられるｓｉｇｍｏｉｄ関数とは異なり、全てのユニットに対応する入力値に基づき１つのユニットの出力値を決定しなければならない。
【０００６】
従って、パターン検出装置に適用されるニューラルネットワークは、特定のクラスについての事後確率を出力すればよいにも関わらず、全てのユニットに対応する入力値を算出しなければならなかった。このため、このようなパターン検出装置に適用されるニューラルネットワークは、出力層での計算コストが多くなってしまっていた。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】J.Devlin，  R.Zbib，Z.Huang，  T.Lamar，  R.Schwartz  and  J.Makhoul，  “Fast  and  robust  neural  network  joint  models  for  statistical  machine  translation”，  Proceedings  of  the  52nd  Annual  Meeting  of  the  Association  for  Computational  Linguistics，  pp.1370-1380，  2014
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明が解決しようとする課題は、少ない計算コストで入力信号が特定のクラスに属する事後確率を出力させるように、ニューラルネットワークを学習することにある。
【課題を解決するための手段】
【０００９】
実施形態に係る学習装置は、入力信号が特定のクラスに属する事後確率を出力するニューラルネットワークを学習する。前記ニューラルネットワークの出力層は、それぞれのクラスに対応するＮ個（Ｎは２以上の整数）のユニットと、１個の追加ユニットとを含む。前記学習装置は、伝播部と、確率算出部と、誤差算出部と、更新部とを備える。前記伝播部は、サンプル信号を前記ニューラルネットワークに与え、前記出力層におけるそれぞれのユニットについて、直前の層から出力された信号を設定されたパラメータに従って結合したＮ＋１個の入力値を取得する。前記確率算出部は、それぞれの前記入力値を事後確率を算出するための関数に入力して、前記出力層のそれぞれのユニットに対応するＮ＋１個の確率値を含む確率ベクトルを生成する。前記誤差算出部は、前記出力層のそれぞれのユニットに対応するＮ＋１個の目標値を含む教師ベクトルと、前記確率ベクトルとの誤差を算出する。前記更新部は、前記誤差を小さくするように前記ニューラルネットワークに含まれるパラメータを更新する。前記教師ベクトルにおける前記追加ユニットに対応する目標値は、１／２である。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る音声検出装置の構成図。
【図２】ニューラルネットワークの各層を説明するための図。
【図３】学習装置の機能構成を示す図。
【図４】学習装置の処理フローを示す図。
【図５】学習装置のハードウェア構成を示す図。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら実施形態について詳細に説明する。
【００１２】
図１は、実施形態に係る音声検出装置１０の構成を示す図である。音声検出装置１０は、音声信号から指定された検索パターンと類似する部分を検出する。例えば、音声検出装置１０は、音声信号から「こんにちは」等の特定のキーワードを検出する。
【００１３】
音声検出装置１０は、分析部１２と、スコア算出部１４と、ニューラルネットワーク２０と、検出部２２と、学習装置３０とを備える。
【００１４】
分析部１２は、音声信号を入力し、入力した音声信号を、音声の音響的な特徴を表すパラメータの系列に変換して出力する。例えば、分析部１２は、一定期間毎に、ＭＦＣＣ（メル周波数ケプストラム係数）の音声パラメータ系列を出力する。分析部１２は、信号の入力開始時点から終了時点まで連続して音声パラメータ系列を出力してもよいし、逐次的に音声パラメータ系列を出力してもよい。また、分析部１２は、信号を一旦全て蓄積したのちにオフラインで分析して音声パラメータ系列を出力してもよいし、入力される信号をリアルタイムで分析して音声パラメータ系列を出力してもよい。
【００１５】
スコア算出部１４は、音声パラメータ系列に含まれるそれぞれの音声パラメータについて、検索パターンにおける発生のしやすさを表すスコアを算出する。より具体的には、スコア算出部１４は、それぞれの音声パラメータをニューラルネットワーク２０に与え、与えた音声パラメータが特定のクラスに属する事後確率をニューラルネットワーク２０から取得し、取得した事後確率をスコアとして出力する。なお、本実施形態においては、スコア算出部１４は、自然対数により対数化した事後確率（対数事後確率）をニューラルネットワーク２０から取得する。
【００１６】
ニューラルネットワーク２０は、入力信号として音声パラメータを分析部１２から取得する。ニューラルネットワーク２０は、入力信号が、Ｎ個（Ｎは２以上の整数）のクラスのうちの特定のクラスに属する対数事後確率を出力する。本実施形態においては、特定のクラスは、検索パターンに属する１以上のクラスである。
【００１７】
ニューラルネットワーク２０は、特定のクラス以外のクラスについては、対数事後確率を出力しない（例えば、０または最低値を出力する）。例えば、音声信号から「こんにちは」等のキーワードを検出する場合、ニューラルネットワーク２０は、入力信号がトライフォンで表された音声パラメータであれば、数個から数１０個程度のクラスについて対数事後確率を出力し、他のクラスについての対数事後確率を出力しない。
【００１８】
検出部２２は、スコア算出部１４により算出されたスコアに基づき、音声信号に検索パターンが含まれているかを検出する。より具体的には、検出部２２は、音声パラメータ系列中の部分系列と検索パターンとの類似度を算出し、算出した類似度が予め設定された閾値を超えている場合に、その部分系列が検索パターンと類似していると判定する。例えば、部分系列と検索パターンとの類似度は、部分系列に含まれる全てのスコアを累積した累積スコアにより表される。例えば、検索パターンがＨＭＭ（隠れマルコフモデル）である場合、検出部２２は、動的計画法等のマッチングアルゴリズムを用いて、ＨＭＭのそれぞれのパスについて部分系列が検索パターンに類似しているかを判定する。
【００１９】
検出部２２は、音声信号に検索パターンが含まれていると判定した場合、フラグ等を外部に出力する。これにより、音声検出装置１０は、指定された検索パターンと類似する部分を検出したことを外部に通知することができる。
【００２０】
図２は、ニューラルネットワーク２０の各層を説明するための図である。ニューラルネットワーク２０は、直列に接続された複数の層を有し、層と層との間でベクトルを伝達する。順伝播型の場合、ニューラルネットワーク２０は、例えば、入力層４０と、１以上の隠れ層４２と、出力層４４とを有する。ニューラルネットワーク２０は、隠れ層４２が無い構成であってもよい。そして、ニューラルネットワーク２０は、入力信号を入力層４０から順方向に伝播させて、出力層４４からＮ個のクラスのそれぞれに対応したＮ個の出力値ｙ１，ｙ２，…，ｙＮを出力する。出力値ｙ１，ｙ２，…，ｙＮは、入力信号がＮ個のクラスのそれぞれのクラスに属する事後確率の推定値を表す。
【００２１】
出力層４４は、それぞれのクラスに対応するＮ個のユニットと、１個の追加ユニットとを含む。また、出力層４４は、直前の層から、Ｍ個（Ｍは１以上の整数）の要素ｏ１，ｏ２，…，ｏＭを含むベクトルを取得する。続いて、出力層４４は、Ｍ個の要素ｏ１，ｏ２，…，ｏＭを予め設定されたパラメータに基づき結合して、Ｎ＋１個のユニットのそれぞれに対応したＮ＋１個の入力値ｘ１，ｘ２，…，ｘＮ，ｘＮ＋１を生成する。そして、出力層４４は、Ｎ＋１個の入力値ｘ１，ｘ２，…，ｘＮ，ｘＮ＋１を予め設定された関数に与えて、Ｎ個のクラスのそれぞれに対応したＮ個の出力値ｙ１，ｙ２，…，ｙＮを出力する。
【００２２】
具体的には、出力層４４は、下記の式（１１）、式（１２）に示す演算を実行する。変数に付けられたオーバラインは、ベクトルであることを表す。ｆ（）は、出力層４４において用いる関数を表す。
【数１】
0006509694.tif 000002
【００２３】
また、ベクトルｘは、下記の式（１３）により表される。ベクトルｙは、下記の式（１４）により表される。
【数２】
0006509694.tif 000003
【００２４】
なお、ベクトルｘ，ｙに含まれる要素の位置を表すインデックスのうち、１以上Ｎ以下の値は、Ｎ個のクラスに対応するユニットの番号を指す。従って、ｘｃは（ｃは、１以上Ｎ以下の整数）、ｃ番目のクラスのユニットに対応する入力値を表す。また、ｙｃは、ｃ番目のクラスのユニットに対応する出力値を表す。また、ベクトルｘ，ｙに含まれる要素のインデックスのうち、Ｎ＋１の値は、追加ユニットの番号を指す。従って、ｘＮ＋１は、追加ユニットに対応する入力値を表す。
【００２５】
また、ベクトルｏは、下記の式（１５）により表される。
【数３】
0006509694.tif 000004
【００２６】
なお、ベクトルｏに含まれる要素の位置を表すインデックスは、出力層４４の直前の層のユニットの番号を指す。
【００２７】
また、２次元行列Ｗ、および、ベクトルｂは、下記の式（１６）および式（１７）により表される。
【数４】
0006509694.tif 000005
【００２８】
行列Ｗは、それぞれのユニットに設定された結合の重みを表すパラメータである。また、ベクトルｂは、それぞれのユニットに設定されたバイアスを表すパラメータである。これらのパラメータは、学習により更新される。より詳しくは、行列Ｗの要素ｗｉ，ｊは、出力層４４の直前の層のｊ番目のユニットから、出力層４４のｉ番目のユニットへ伝達する値に乗ずる重みを表す。また、ベクトルｂの要素ｂｉは、出力層４４のｉ番目のユニットに設定されたバイアスを表す。
【００２９】
ｃ番目のクラスのユニットに対応する入力値ｘｃは、下記の式（１８）により表される。
【数５】
0006509694.tif 000006
【００３０】
ここで、本実施形態において、出力層４４において用いる関数は、下記の式（２１）により表される。
【数６】
0006509694.tif 000007
【００３１】
従って、ｃ番目のクラスのユニットに対応する出力値ｙｃは、ｃ番目のクラスのユニットに対応する入力値ｘｃから、追加ユニットに対応する入力値ｘＮ＋１を減算した値となる。
【００３２】
この出力値ｙｃは、ニューラルネットワーク２０に入力信号が、ｃ番目のクラスに属する対数事後確率（ｌｏｇｐ（ｃ｜ｏ））の推定値を表す。
【００３３】
本実施形態に係るニューラルネットワーク２０は、出力層４４においてこのような関数を用いるので、ｃ番目のクラスの対数事後確率の算出をするために、ｃ番目のクラスのユニットに対応する入力値ｘｃと、追加ユニットに対する入力値ｘＮ＋１とを演算すればよい。従って、ニューラルネットワーク２０は、ｃ番目のクラスの対数事後確率の算出をするために、ｓｏｆｔｍａｘ関数のような全ての入力値を用いた演算をしなくてよいので、計算コストを少なくすることができる。
【００３４】
例えば、音声信号から「こんにちは」等の特定のキーワードの部分を検出する場合、ニューラルネットワーク２０は、数千個のクラスのうちの、数個から数１０個程度の対数事後確率を出力すればよい。従って、ニューラルネットワーク２０は、数千個の大半のクラスの対数事後確率を算出しなくてよいので、大幅に計算コストを削減することができる。
【００３５】
なお、実際の動作時には、ニューラルネットワーク２０は、対数事後確率を算出する必要のあるユニットの機能を実行していれば、他のユニット（対数事後確率を算出するために用いられないユニット）の機能を停止してもよい。つまり、ニューラルネットワーク２０は、出力層４４における特定のクラスに対応するユニットおよび追加ユニットの機能を実行していれば、出力層４４における特定のクラス以外のクラスに対応するユニットの機能を停止してもよい。
【００３６】
なお、ニューラルネットワーク２０がこのような関数を用いてそれぞれのクラスに対応する対数事後確率が算出できる理由については詳細を後述する。
【００３７】
図３は、学習装置３０の機能構成をニューラルネットワーク２０とともに示す図である。
【００３８】
ニューラルネットワーク２０は、構造記憶部４６と、パラメータ記憶部４８とを有する。構造記憶部４６は、ニューラルネットワーク２０の層構造および層間のユニットの接続関係を表す構造情報を記憶する。パラメータ記憶部４８は、直前の層から出力されたベクトルの要素を結合して、次の層の入力値を含むベクトルを生成するための結合用のパラメータを、層毎に記憶する。本実施形態においては、ニューラルネットワーク２０は、それぞれの層毎に、それぞれのユニットに設定された結合の重み行列を表すパラメータ、および、それぞれのユニットに設定されたバイアスを表すパラメータを記憶する。
【００３９】
学習装置３０は、ニューラルネットワーク２０に記憶された結合用のパラメータを学習する。本実施形態においては、学習装置３０は、ニューラルネットワーク２０のパラメータ記憶部４８に記憶されたパラメータを学習する。
【００４０】
学習装置３０は、訓練データ記憶部５２と、変換部５４と、伝播部５６と、確率算出部５８と、誤差算出部６０と、更新部６２と、収束判定部６４とを有する。
【００４１】
訓練データ記憶部５２は、ニューラルネットワーク２０に与えるサンプル信号と、変換前教師ベクトルとの組を記憶する。訓練データ記憶部５２は、サンプル信号と変換前教師ベクトルとの組を複数セット記憶してもよい。
【００４２】
サンプル信号は、Ｎ個のクラスのうちの特定のクラスに属することが予めわかっている入力信号の一例である。変換前教師ベクトルは、対応するサンプル信号を分類した場合に、ニューラルネットワーク２０から出力されるべきＮ個の目標値ｒ１，ｒ２，…，ｒＮを要素として含むベクトルである。
【００４３】
本実施形態においては、変換前教師ベクトルは、１−ｏｆ−ｋ符号化によるベクトルで表される。すなわち、サンプル信号がｃ番目のクラスに属する場合、変換前教師ベクトルは、下記の式（３１）により表される。
【数７】
0006509694.tif 000008
【００４４】
つまり、変換前教師ベクトルは、正解のクラスに対応する目標値ｒｃが１であり、他のクラスの目標値が全て０であるベクトルである。
【００４５】
変換部５４は、Ｎ個の目標値ｒ１，ｒ２，…，ｒＮを含む変換前教師ベクトルを、Ｎ＋１個の目標値ｒ´１，ｒ´２，…，ｒ´Ｎ，ｒ´Ｎ＋１を含む教師ベクトルに変換する。具体的には、変換部５４は、変換前教師ベクトルに、追加ユニットに対応する要素を追加する。そして、変換部５４は、正解のクラスに対応する要素を１／２に設定する。さらに、変換部５４は、追加ユニットに対応する要素を、定数である１／２に設定する。
【００４６】
具体的には、教師ベクトルは、下記の式（３２）により表される。
【数８】
0006509694.tif 000009
【００４７】
このような教師ベクトルは、それぞれのクラスに対応する目標値が、サンプル信号がクラスに属する確率に基づく値であり、追加ユニットに対応する目標値ｒ´Ｎ＋１が、予め定められた定数である。
【００４８】
より具体的には、教師ベクトルは、それぞれの目標値が０以上であり、全ての目標値の和が１である。さらに、教師ベクトルは、正解クラスに対応する目標値ｒ´ｃが１／２であり、追加ユニットｒ´Ｎ＋１に対応する目標値が１／２であり、他の目標値が０である。
【００４９】
なお、訓練データ記憶部５２は、変換前教師ベクトルに代えて、変換後の教師ベクトルをサンプル信号と組にして記憶してもよい。この場合、学習装置３０は、変換部５４を有さない構成となる。
【００５０】
伝播部５６は、ニューラルネットワーク２０の構造情報およびパラメータを取得し、サンプル信号をニューラルネットワーク２０の入力層から順方向に伝播させる。伝播部５６は、出力層４４におけるそれぞれのユニットについて、直前の層から出力された信号を設定されたパラメータに従って結合したＮ＋１個の入力値ｘ１，ｘ２，…，ｘＮ，ｘＮ＋１を取得する。そして、伝播部５６は、下記の式（３３）に示すような、Ｎ＋１個の入力値ｘ１，ｘ２，…，ｘＮ，ｘＮ＋１を含む入力ベクトルを出力する。
【数９】
0006509694.tif 000010
【００５１】
確率算出部５８は、伝播部５６から入力ベクトルを取得する。確率算出部５８は、それぞれの入力値を事後確率を算出するための関数に入力して、出力層４４のそれぞれのユニットに対応するＮ＋１個の確率値ｙ´１，ｙ´２，…，ｙ´Ｎ，ｙ´Ｎ＋１を含む確率ベクトルを生成する。本実施形態においては、確率算出部５８は、それぞれの入力値ｘ１，ｘ２，…，ｘＮ，ｘＮ＋１をｓｏｆｔｍａｘ関数に入力して、Ｎ＋１個の確率値ｙ´１，ｙ´２，…，ｙ´Ｎ，ｙ´Ｎ＋１を生成する。具体的には、確率算出部５８は、下記の式（３４）のような演算をして、ｉ番目の確率値ｙ´ｉを算出する。
【００５２】
【数１０】
0006509694.tif 000011
【００５３】
そして、確率算出部５８は、下記の式（３５）に示すような確率ベクトルを出力する。
【数１１】
0006509694.tif 000012
【００５４】
誤差算出部６０は、Ｎ＋１個の目標値ｒ´１，ｒ´２，…，ｒ´Ｎ，ｒ´Ｎ＋１を含む教師ベクトルと、Ｎ＋１個の確率値ｙ´１，ｙ´２，…，ｙ´Ｎ，ｙ´Ｎ＋１を含む確率ベクトルとの誤差Ｅを算出する。本実施形態において、誤差算出部６０は、ｃｒｏｓｓ−ｅｎｔｒｏｐｙ誤差を算出する。具体的には、誤差算出部６０は、下記の式（３６）に示すような演算をして、誤差Ｅを算出する。
【数１２】
0006509694.tif 000013
【００５５】
更新部６２は、誤差算出部６０により算出された誤差Ｅを小さくするように、ニューラルネットワーク２０に含まれるパラメータを更新する。具体的には、更新部６２は、パラメータ記憶部４８に記憶された、それぞれのユニットに設定された結合の重みベクトルを表すパラメータ、および、それぞれのユニットに設定されたバイアスを表すパラメータを更新する。
【００５６】
本実施形態においては、更新部６２は、誤差逆伝播法によりパラメータを更新する。すなわち、更新部６２は、誤差Ｅをニューラルネットワーク２０の出力層４４から逆方向に伝播させて、誤差Ｅを小さくするようにそれぞれの層のパラメータを更新する。更新部６２は、他の方法によりパラメータを更新してもよい。
【００５７】
収束判定部６４は、更新部６２によりパラメータを更新した結果、パラメータの更新が収束したか否かを判定する。収束判定部６４は、パラメータの更新が収束したと判定した場合、現在のサンプル信号および教師ベクトルを用いた学習を終了する。収束判定部６４は、パラメータの更新が収束していないと判定した場合、伝播部５６に処理を戻す。伝播部５６は、収束判定部６４から処理が戻された場合、同一のサンプル信号をニューラルネットワーク２０に与えて再度処理を実行する。
【００５８】
図４は、学習装置３０の処理フローを示す図である。学習装置３０は、図４に示すフローに従って処理を実行する。
【００５９】
まず、学習装置３０は、ニューラルネットワーク２０のパラメータを初期化する（Ｓ１１）。続いて、変換部５４は、Ｎ個の目標値ｒ１，ｒ２，…，ｒＮを含む変換前教師ベクトルから、Ｎ＋１個の目標値ｒ´１，ｒ´２，…，ｒ´Ｎ，ｒ´Ｎ＋１を含む教師ベクトルに生成する（Ｓ１２）。
【００６０】
続いて、伝播部５６は、サンプル信号をニューラルネットワーク２０の入力層から順方向に伝播させる。そして、伝播部５６は、Ｎ＋１個の入力値ｘ１，ｘ２，…，ｘＮ，ｘＮ＋１を含む入力ベクトルを出力する（Ｓ１３）。
【００６１】
続いて、確率算出部５８は、入力ベクトルに含まれるそれぞれの入力値ｘ１，ｘ２，…，ｘＮ，ｘＮ＋１をｓｏｆｔｍａｘ関数に入力して、Ｎ＋１個の確率値ｙ´１，ｙ´２，…，ｙ´Ｎ，ｙ´Ｎ＋１を生成する（Ｓ１４）。続いて、誤差算出部６０は、Ｎ＋１個の目標値ｒ´１，ｒ´２，…，ｒ´Ｎ，ｒ´Ｎ＋１を含む教師ベクトルと、Ｎ＋１個の確率値ｙ´１，ｙ´２，…，ｙ´Ｎ，ｙ´Ｎ＋１を含む確率ベクトルとの間のｃｒｏｓｓ−ｅｎｔｒｏｐｙ誤差Ｅを算出する（Ｓ１５）。
【００６２】
続いて、更新部６２は、誤差Ｅをニューラルネットワーク２０の出力層４４から逆方向に伝播させて、誤差Ｅを小さくするようにニューラルネットワーク２０のそれぞれの層のパラメータを更新する（Ｓ１６）。続いて、収束判定部６４は、パラメータを更新した結果、パラメータの更新が収束したか否かを判定する（Ｓ１７）。収束判定部６４は、パラメータの更新が収束したと判定した場合（Ｓ１７のＹｅｓ）、本フローを終了する。収束判定部６４は、パラメータの更新が収束していないと判定した場合（Ｓ１７のＮｏ）、処理をステップＳ１３に戻し、ステップＳ１３から処理を繰り返して実行させる。
【００６３】
以上のような学習装置３０によれば、少ない計算コストで入力信号が特定のクラスに属する事後確率を出力させるように、ニューラルネットワーク２０を学習することができる。
【００６４】
なお、本実施形態に係るニューラルネットワーク２０は、音声検出に限らず他の装置にも適用することができる。例えば、入力画像に特定の物体が含まれているかどうかを判定する装置、入力コンテキストにおける特定単語の生起確率を評価する装置等にも適用することができる。
【００６５】
（ニューラルネットワーク２０の出力層４４において用いる関数）
つぎに、ニューラルネットワーク２０の出力層４４において用いる関数について説明する。
【００６６】
Ｎクラス分類を行う従来のニューラルネットワークは、通常、出力層のユニット数をクラス数Ｎと一致させ、Ｎ次元の要素を含む出力ベクトルを出力する。入力信号ｏがこのようなニューラルネットワークに与えられた場合、Ｎ次元の出力ベクトルのｃ番目の要素ｙｃ（１≦ｃ≦Ｎ）は、入力信号ｏがｃ番目のクラスに属する事後確率ｐ（ｃ｜ｏ）を表す。
【００６７】
このようなニューラルネットワークの出力層では、一般に、活性化関数として、下記の式（４１）に示すようなｓｏｆｔｍａｘ関数が用いられる。ｓｏｆｔｍａｘ関数は、入力ベクトルに対して、要素毎に指数関数を適用し、要素毎の出力値の和を１に正規化する関数である。
【００６８】
【数１３】
0006509694.tif 000014
【００６９】
出力層でｓｏｆｔｍａｘ関数を用いるニューラルネットワークの学習は、一般に、目的関数としてｃｒｏｓｓ−ｅｎｔｒｏｐｙ誤差を用いて、誤差逆伝播法によって行われる。ｃｒｏｓｓ−ｅｎｔｒｏｐｙ誤差は、下記の式（４２）に表される。
【００７０】
【数１４】
0006509694.tif 000015
【００７１】
式（４２）のｒは、教師ベクトルである。多くの場合、教師ベクトルｒには、１−ｏｆ−ｋ符号化によるベクトルが用いられる。
【００７２】
式（４１）から、入力信号がｃ番目のクラスに属する対数事後確率ｌｏｇｐ（ｃ｜ｏ）は、下記の式（４３）のように表される。
【数１５】
0006509694.tif 000016
【００７３】
ニューラルネットワークを適用する用途によっては、出力ベクトルに含まれる全ての要素を算出することは不要であり、特定のｃ番目のクラスについて対数事後確率ｌｏｇｐ（ｃ｜ｏ）を算出する場合がある。例えば、入力画像に特定の物体が含まれているかどうかを判定したい場合、入力音声中に特定のキーワードが含まれているかどうかを判定したい場合、入力コンテキストにおける特定単語の生起確率を評価したい場合等である。
【００７４】
しかし、式（４３）では、特定のｃ番目のクラスについて対数事後確率ｌｏｇｐ（ｃ｜ｏ）を算出する場合であっても、正規化するための項であるｌｏｇＺ（ｘ）を、Ｎ次元の入力ベクトルの全ての要素を用いて演算をしなければならない。従って、Ｎが大きい場合、演算コストが大きくなる。
【００７５】
Ｎクラス分類を行う従来のニューラルネットワークは、出力層のユニット数をＮとする。しかし、以下では、出力層に、Ｎ個のクラスにそれぞれ対応するＮ個のユニットと、ｌｏｇＺ（ｘ）の推定値に対応する１個の追加ユニットとを有するニューラルネットワークを学習することを考える。なお、出力層におけるｃ番目のクラスに対応するユニットのインデックスをｃ、ｌｏｇＺ（ｘ）の推定値に対応する追加ユニットのインデックスをＮ＋１とする。
【００７６】
出力層にＮ＋１個のユニットを有するニューラルネットワークでは、下記の式（４４）のようなＮ＋１次元のベクトルが関数に与えられることが期待される。
【数１６】
0006509694.tif 000017
【００７７】
式（４４）に示す入力ベクトルをｓｏｆｔｍａｘ関数に入力した場合、下記の式（４５）に示すようなベクトルが出力されることが期待される。
【００７８】
【数１７】
0006509694.tif 000018
【００７９】
従って、下記の式（４６）に示すような教師ベクトルを用いることにより、式（４５）に示すようなベクトルを出力するニューラルネットワークを学習することができる。
【００８０】
【数１８】
0006509694.tif 000019
【００８１】
式（４６）に示す教師ベクトルの１番目からＮ番目までの要素は、サンプル信号によって異なる。しかし、式（４６）に示す教師ベクトルのＮ＋１番目の要素は、全てのサンプル信号について定数（＝１／２）となる。
【００８２】
従って、学習装置３０は、出力層の追加ユニットに対応する要素を定数（＝１／２）とすることにより、正規化項（ｌｏｇＺ（ｘ））の推定値を学習することができる。そして、式（４６）の教師ベクトルを用いて学習したニューラルネットワークは、式（４４）で示したようＮ＋１個の入力値を含む入力ベクトルを生成することができる。
【００８３】
以上から、本実施形態に係るニューラルネットワーク２０は、ｃ番目のクラスの対数事後確率ｌｏｇｐ（ｃ｜ｏ）の推定値を、下記の式（４７）のように算出することができる。
【数１９】
0006509694.tif 000020
【００８４】
式（４７）によって算出された対数事後確率の推定値は、入力ベクトルのうちの２つの要素しか用いずに算出される。従って、実施形態に係るニューラルネットワーク２０によれば、小さい計算コストで入力信号が特定のクラスに属する対数事後確率を算出することができる。
【００８５】
学習装置３０によって学習したニューラルネットワーク２０を用いて、入力信号が特定のクラスに属する対数事後確率を推定する方法についてさらに説明する。
【００８６】
出力層４４の直前の層からＭ個の要素ｏ１，ｏ２，…，ｏＭを含むベクトルが出力される。また、出力層４４のパラメータは、Ｎ＋１行×Ｍ列の重みｗを含む行列と、Ｎ＋１個のバイアスｂとを含む。
【００８７】
この場合、出力層４４において用いる関数に与えられる入力ベクトルは、下記の式（５１）により表される。
【数２０】
0006509694.tif 000021
【００８８】
ニューラルネットワーク２０の出力層４４において用いる関数は、上述した式（４７）により表される。式（４７）の関数に、式（５１）により表される入力ベクトルを代入すると、下記の式（５２）のように式変形される。
【数２１】
0006509694.tif 000022
【００８９】
従って、本実施形態に係るニューラルネットワーク２０は、出力層４４において式（５２）を演算することにより、ｃ番目のクラスの対数事後確率の推定値を算出することができる。なお、Ｎ個のクラスのうち一部についてのみ対数事後確率の推定値を算出すればよい場合、ニューラルネットワーク２０は、学習して得られた重みＷおよびバイアスｂのうち、対数事後確率の推定値を算出する必要がないクラスに対応するパラメータを記憶しなくてよい。これにより、ニューラルネットワーク２０は、メモリ量を削減することができる。
【００９０】
また、重みの差分のベクトルは、下位の式（５３）のように表される。また、バイアスの差分のベクトルは、式（５４）のように表される。
【００９１】
【数２２】
0006509694.tif 000023
【００９２】
式（５３）に示す重みの差分のベクトルは、学習終了後において算出することができる。また、式（５４）に示すバイアスの差分のベクトルも、学習後において算出することができる。
【００９３】
従って、ニューラルネットワーク２０は、学習後において予め算出された式（５３）に示す重みの差分のベクトルおよび式（５４）に示すバイアスの差分のベクトルを記憶しておくことにより、出力層４４において下記の式（５５）を演算してｃ番目のクラスの対数事後確率の推定値を算出することができる。
【数２３】
0006509694.tif 000024
【００９４】
このようなニューラルネットワーク２０は、式（５５）の演算により対数事後確率の推定値を算出することにより、分類時における計算コストおよびメモリ量を少なくすることができる。
【００９５】
（ハードウェア構成）
図５は、実施形態に係る学習装置３０のハードウェア構成の一例を示す図である。本実施形態に係る学習装置３０は、例えば図５に示すようなハードウェア構成の情報処理装置により実現される。この情報処理装置は、ＣＰＵ（Central  Processing  Unit）２０１と、ＲＡＭ（Random  Access  Memory）２０２と、ＲＯＭ（Read  Only  Memory）２０３と、操作入力装置２０４と、表示装置２０５と、記憶装置２０６と、通信装置２０７とを備える。そして、これらの各部は、バスにより接続される。
【００９６】
ＣＰＵ２０１は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。ＣＰＵ２０１は、ＲＡＭ２０２の所定領域を作業領域として、ＲＯＭ２０３および記憶装置２０６等に記憶されたプログラムとの協働により各種処理を実行する。
【００９７】
ＲＡＭ２０２は、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のメモリである。ＲＡＭ２０２は、ＣＰＵ２０１の作業領域として機能する。ＲＯＭ２０３は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
【００９８】
操作入力装置２０４は、マウスおよびキーボード等の入力デバイスである。操作入力装置２０４は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をＣＰＵ２０１に出力する。
【００９９】
表示装置２０５は、ＬＣＤ（Liquid  Crystal  Display）等の表示デバイスである。表示装置２０５は、ＣＰＵ２０１からの表示信号に基づいて、各種情報を表示する。
【０１００】
記憶装置２０６は、フラッシュメモリ等の半導体による記憶媒体、または、磁気的若しくは光学的に記録可能な記憶媒体等にデータを書き込みおよび読み出しをする装置である。記憶装置２０６は、ＣＰＵ２０１からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。通信装置２０７は、ＣＰＵ２０１からの制御に応じて外部の機器とネットワークを介して通信する。
【０１０１】
本実施形態の学習装置３０で実行されるプログラムは、変換モジュール、伝播モジュール、確率算出モジュール、誤差算出モジュール、更新モジュールおよび収束判定モジュールを含むモジュール構成となっている。このプログラムは、ＣＰＵ２０１（プロセッサ）によりＲＡＭ２０２上に展開して実行されることにより、情報処理装置を変換部５４、伝播部５６、確率算出部５８、誤差算出部６０、更新部６２および収束判定部６４として機能させる。
【０１０２】
なお、学習装置３０は、このような構成に限らず、変換部５４、伝播部５６、確率算出部５８、誤差算出部６０、更新部６２および収束判定部６４の少なくとも一部をハードウェア回路（例えば半導体集積回路）により実現した構成であってもよい。
【０１０３】
また、本実施形態の学習装置３０で実行されるプログラムは、コンピュータにインストール可能な形式または実行可能な形式のファイルで、ＣＤ−ＲＯＭ、フレキシブルディスク、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１０４】
また、本実施形態の学習装置３０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の学習装置３０で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、学習装置３０で実行されるプログラムを、ＲＯＭ２０３等に予め組み込んで提供するように構成してもよい。
【０１０５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０６】
１０  音声検出装置
１２  分析部
１４  スコア算出部
２０  ニューラルネットワーク
２２  検出部
３０  学習装置
４０  入力層
４２  隠れ層
４４  出力層
４６  構造記憶部
４８  パラメータ記憶部
５２  訓練データ記憶部
５４  変換部
５６  伝播部
５８  確率算出部
６０  誤差算出部
６２  更新部
６４  収束判定部
【図１】
0006509694.tif 000025
【図２】
0006509694.tif 000026
【図３】
0006509694.tif 000027
【図４】
0006509694.tif 000028
【図５】
0006509694.tif 000029