(57)【要約】【課題】短い発話でも高い精度で発話言語を認識できるよう発話言語認識モデルを訓練する。【解決手段】  この方法は、第１の発話時間の発話データで訓練済の第１のニューラルネットワーク（ＮＮ）を準備するステップと、第１の発話時間の発話データと、その発話データに含まれる第２の発話時間の発話データと、言語情報とからなる訓練データを含む訓練データを準備するステップと、第１の発話時間の発話データが第１のＮＮに入力されたときの、第１のＮＮ内の知識の転送元層の出力と、この発話データと関連付けられた第２の発話時間の発話データが第２のＮＮに入力されたときの第２のＮＮ内の転送先層の出力と、当該第２の発話時間の発話データの言語情報とを少なくとも用いて、前記第２のＮＮの訓練を行うステップとを含む。【選択図】図６
2020038343.tif 000002
【特許請求の範囲】
【請求項１】
第１の発話時間の発話データにより訓練済の、所定数の言語の集合に関する発話の言語識別のための第１のニューラルネットワークを用いて、前記第１の発話時間より短い第２の発話時間の発話データにより、前記言語の集合に関する発話の言語識別のための第２のニューラルネットワークを訓練する言語識別モデルの訓練方法であって、
前記第２の発話時間の発話データの各々は、前記第１の発話時間の発話データのいずれかの一部であり、
前記第１のニューラルネットワークは、前記第１の発話時間の発話データを入力として各層の出力を伝搬するように配置された第１の数の畳込み層群と、当該第１の数の畳込み層群の出力を受け、言語識別情報を出力する第１の分類ネットワークとを含み、
前記第２のニューラルネットワークは、前記第２の発話時間の発話データを入力として各層の出力を伝搬するように配置された第２の数の畳込み層群と、当該第２の数の畳込み層群の出力を受け、前記言語識別情報を出力するための第２の分類ネットワークとを含み、
前記第１の数の畳込み層群のある層は、前記第２のニューラルネットワークに対する知識の転送元となる転送元層であり、
前記第２の数の畳込み層群のある層は、前記知識の転送先となる転送先層であり、
前記方法は、
前記第１のニューラルネットワークを動作可能な形式で準備するステップと、
前記第１のニューラルネットワークの訓練を行ったときの前記第１の発話時間の発話データと、前記第１の発話時間の発話データに含まれる前記第２の発話時間の発話データと、当該第１の発話時間の発話データの発話言語を示す言語情報とからなる訓練データを互いに関連付けて含む訓練データを機械読取可能な形式で準備するステップと、
前記訓練データの前記第１の発話時間の発話データが前記第１の数の畳込み層群に入力されたときの前記転送元層の出力と、当該第１の発話時間の発話データと関連付けられた前記第２の発話時間の発話データが前記第２の数の畳込み層群に入力されたときの前記転送先層の出力と、当該第２の発話時間の発話データの言語情報とを少なくとも用いて、前記第２のニューラルネットワークを訓練するステップとを含む、言語識別モデルの訓練方法。
【請求項２】
前記転送元層のニューロン数は、前記転送先層のニューロン数と同じである、請求項１に記載の言語識別モデルの訓練方法。
【請求項３】
前記転送元層は前記第１の数の畳込み層群の最上位層であり、前記転送先層は、前記第２の数の畳込み層群の最上位層である、請求項１又は請求項２に記載の言語識別モデルの訓練方法。
【請求項４】
前記第２のニューラルネットワークを訓練するステップは、
前記訓練データの前記第１の発話時間の発話データｘＴが前記第１の数の畳込み層群に入力されたときの前記転送元層の出力ｕＴ（ｘＴ；ΘＴ）、ただしΘＴは前記転送元層のパラメータ集合を表す、を算出するステップと、
前記発話データｘＴに関連する前記第２の発話時間の発話データｘＳが前記第２の畳込み層群に入力されたときの前記転送先層の出力ｕＳ（ｘＳ；ΘＳ）、ただしΘＳは前記転送先層のパラメータ集合を表す、を算出するステップと、
前記転送先層において以下の損失関数ＬＦＲＫＤを算出するステップと、
【数１】
2020038343.tif 000013
ただしλは重み係数、Ｌｈａｒｄ（ｘｓ，ｙ）は、前記第２のニューラルネットワークに前記発話データｘＳが与えられたときの前記第２のニューラルネットワークの出力と、当該発話データｘＳに関連付けられた前記言語情報ｙとの間に定義される損失関数、
前記発話データｘＳが与えられたときの前記第２のニューラルネットワークの出力と、当該発話データｘＳに関連付けられた前記言語情報ｙとを用いて誤差逆伝播法により前記第２のニューラルネットワークのパラメータを更新するステップとを含む、請求項１〜請求項３のいずれかに記載の言語識別モデルの訓練方法。
【請求項５】
さらに、訓練データセット及び開発データセットを用いて、前記第１のニューラルネットワークのパラメータと、前記第２のニューラルネットワークのパラメータとを、前記開発データセットの入力に対する前記第２のニューラルネットワークの出力の誤差、前記訓練データセットに対する前記第１のニューラルネットワークの誤差、及び前記訓練データセットに対する前記第２のニューラルネットワークの誤差とを用いて定義される損失関数を最小化するよう、対話型で調整する対話型パラメータ調整ステップを含む、請求項１から請求項４のいずれかに記載の言語識別モデルの訓練方法。
【請求項６】
前記対話型パラメータ調整ステップは、
訓練データセット及び開発データセットから抽出されたミニバッチデータセットを用いて、前記開発データセットの入力に対する前記第２のニューラルネットワークの出力の誤差、前記訓練データセットに対する前記第１のニューラルネットワークとの誤差とを用いて定義される第１の誤差関数を最小化するよう、前記第１のニューラルネットワークのパラメータを調整する第１の調整ステップと、
前記訓練データセットから抽出されたミニバッチデータセットに対する前記第２のニューラルネットワークの誤差を用いて定義される第２の損失関数を最小化するよう、前記第２のニューラルネットワークのパラメータを調整する第２の調整ステップと、
前記第１の調整ステップ及び前記第２の調整ステップを、前記ミニバッチデータセットを変化させながら前記訓練データセット及び開発データセットに対して所定の終了条件が成立するまで交互に繰返すステップとを含む、請求項５に記載の言語識別モデルの訓練方法。
【請求項７】
第１の発話時間の発話データにより訓練済の、所定数の言語の集合に関する発話の言語識別のための第１のニューラルネットワークを用いて、前記第１の発話時間より短い第２の発話時間の発話データにより、前記言語の集合に関する発話の言語識別をするための第２のニューラルネットワークを訓練する言語識別モデルの訓練装置であって、
前記第２の発話時間の発話データの各々は、前記第１の発話時間の発話データのいずれかの一部であり、
前記第１のニューラルネットワークは、前記第１の発話時間の発話データを入力として各層の出力を伝搬するように配置された第１の数の畳込み層群と、当該第１の数の畳込み層群の出力を受け、言語識別情報を出力する第１の分類ネットワークとを含み、
前記第２のニューラルネットワークは、前記第２の発話時間の発話データを入力として各層の出力を伝搬するように配置された第２の数の畳込み層群と、当該第２の数の畳込み層群の出力を受け、前記言語情報を出力するための第２の分類ネットワークとを含み、
前記第１の数の畳込み層群のある層は、前記第２のニューラルネットワークに対する知識の転送元となる転送元層であり、
前記第２の数の畳込み層群のある層は、前記知識の転送先となる転送先層であり、
前記装置は、
前記第１のニューラルネットワークを動作可能な形式で記憶するモデル記憶装置と、
前記第１のニューラルネットワークの訓練を行ったときの前記第１の発話時間の発話データと、前記第１の発話時間の発話データに含まれる前記第２の発話時間の発話データと、当該第２の発話時間の発話データの発話言語を示す言語情報とからなる訓練データを互いに関連付けて含む訓練データを機械読取可能な形式で記憶する訓練データ記憶装置と、
前記訓練データの前記第１の発話時間の発話データが前記第１の数の畳込み層群に入力されたときの前記転送元層の出力と、当該第１の発話時間の発話データと関連付けられた前記第２の発話時間の発話データが前記第２の数の畳込み層群に入力されたときの前記転送先層の出力と、当該第２の発話時間の発話データの言語情報とを少なくとも用いて、前記第２のニューラルネットワークを訓練するための訓練手段とを含む言語識別モデルの訓練装置
【請求項８】
コンピュータを、請求項１〜請求項６のいずれかに記載の訓練方法の各ステップを実行するよう機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は音声言語識別技術に関し、特に、ニューラルネットワークを使用して短時間の発話データから発話の言語を識別するためのモデルの訓練技術に関する。
【背景技術】
【０００２】
発話言語識別（ＬＩＤ）は、発話がどの言語でなされているかを識別する技術である。発話言語識別は音声言語翻訳、多言語音声認識等、幅広い多言語発話処理システムの前処理として機能することが多い。こうした応用の多くにおいて、発話言語識別技術はリアルタイムに動作することが前提とされており、したがって短い発話のみに基づいて高い信頼性で発話言語を識別することが非常に重要である。
【０００３】
最近では、発話言語識別技術は幅広く研究され、発展を遂げている。例えば、サポートベクタマシン、確率的線形識別分析（ＰＬＤＡ）、及び深層ニューラルネットワーク等の従来の分類器を用いたｉ−ベクタ技術はその有効性が確認され、様々なシステム、特に比較的長い発話に対するタスクにおいて最先端の性能を示している。しかし、短い発話に対する発話言語識別では、ｉ−ベクタを用いた方式では性能がしばしばひどく劣化することが知られている。
【０００４】
一方、最近はまた、畳込みニューラルネットワーク（ＣＮＮ）、再帰型ニューラルネットワーク（ＲＮＮ）、及びアテンションを用いたニューラルネットワーク等によるEnd-to-End型の手法を音声言語識別に用いる試みがされている（後掲の非特許文献１、２及び３）。短い発話に対する音声言語認識では、End-to-End型の手法はｉ−ベクタを用いた手法と比較してより高い性能を示すことがわかってきた。しかし、短い発話は、長い発話と比較してバリエーションが大きく、モデルの汎化が難しい。したがって、短い発話に対しても十分な汎化を可能とすることが求められている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】A. Lozano-Diez, R. Zazo Candil, J. G. Dominguez, D. T. Toledano and J. G. Rodriguez, “An end-to-end approach to language identification in short utterances using convolutional neural networks,” in Proc. of Interspeech, 2015.
【非特許文献２】S. Fernando, V. Sethu, E. Ambikairajah and J. Epps, “Bidirectional Modelling for Short Duration Language Identification,” in Proc. of Interspeech, 2017.
【非特許文献３】W. Geng, W. Wang, Y. Zhao, X. Cai and B. Xu, “End-to-End Language Identification Using Attention-Based Recurrent Neural Networks,” in Proc. of Interspeech, 2016.
【非特許文献４】G. Hinton, O. Vinyals and J. Dean, “Distilling the knowledge in a neural network,” arXiv preprint arXiv:1503.02531, 2015.
【非特許文献５】A. Romero, N. Ballas, S. E. Kahou, A. Chassang, C. Gatta and Y. Bengio, “Fitnets: Hints for thin deep nets,” in Proc. of ICLR, 2015.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一方、知識蒸留（Knowledge Distillation。以下「ＫＤ」という。）という手法が非特許文献４で提案されている。この手法は、知識の圧縮方法ということができる。図１を参照して、この手法によるシステム４０では、コンパクトなスチューデントネットワーク６０を、より複雑で高性能なティーチャーネットワーク５０の出力を用いて訓練する。ティーチャーネットワーク５０は高精度で動作可能ではあるが、構成が複雑で構成要素が多いため動作に時間がかかり、リアルタイムの処理には向かない。一方、スチューデントネットワーク６０はティーチャーネットワーク５０と比較して層の数及び各層を構成するニューロンの数が少なく、ティーチャーネットワーク５０より高速に動作する。しかしスチューデントネットワーク６０は構成がシンプルであるだけに、通常の手法での訓練では十分な性能を示すことができない。こうした問題に対し、非特許文献４では、ティーチャーネットワーク５０が持つ言語認識の知識を用いた知識蒸留によりスチューデントネットワーク６０を訓練する手法が開示されている。
【０００７】
非特許文献４に開示された手法の概略は以下のとおりである。図１を参照して、ティーチャーネットワーク５０を通常の手法により訓練する。
【０００８】
すなわち、ティーチャーネットワーク５０のための訓練データを準備する。訓練データを構成する各訓練サンプルは、一定発話時間の発話データと、その発話の言語を示すラベルからなる。訓練時には、ティーチャーネットワーク５０の入力にこの発話データを表す行列ｘが入力される。一方、その行列ｘの言語を表すベクトルがハードラベルとしてティーチャーネットワーク５０の出力に与えられる。このハードラベルのベクトルは、識別対象の言語の数だけの要素を持つワンホットベクトルである。ティーチャーネットワーク５０はこうした訓練データを用いて通常の誤差逆伝播法により訓練される。
【０００９】
ティーチャーネットワーク５０を用いたスチューデントネットワーク６０の訓練は以下のように行われる。スチューデントネットワーク６０を訓練するための訓練サンプルは、ティーチャーネットワーク５０を訓練するときの訓練データと同じ訓練データ（発話データと言語識別のラベル）と、その訓練サンプルの発話データをティーチャーネットワーク５０に入力したときにティーチャーネットワーク５０が出力するラベル（ソフトラベルと呼ぶ。）とである。訓練サンプルの発話データｘに対してティーチャーネットワーク５０が出力する値は最終的にソフトマックス層５４で要素数Ｋ個のベクトルとして出力される。各要素は、発話がその要素に対応する言語の発話である確率を表す。発話データｘが入力されたときのティーチャーネットワーク５０の出力ベクトルをベクトルｚ（ｘ）とし、ベクトルｚ（ｘ）のｉ番目の要素をｚｉ（ｘ）、ソフトマックス層５４の出力ベクトルｑのｉ番目の要素をｑｉとすると、非特許文献４では両者の間に以下のような関係をもたせる。
【００１０】
【数１】
2020038343.tif 000003
このとき、ソフトマックス層５４の出力するラベルの値を「ソフト化」するために、ティーチャーネットワーク５０の出力層が出力する値を「温度」と呼ばれる値Ｔで除算５２してソフトマックス層５４への入力とする。温度Ｔは通常は１であるが、温度Ｔが大きくなると、ソフトマックス層５４の値の出力分布がある程度ならされる（ソフト化される）。
【００１１】
このソフトラベルを用いたスチューデントネットワーク６０の訓練は以下のように行われる。訓練サンプルの発話データｘがスチューデントネットワーク６０に入力される。このときのスチューデントネットワーク６０の最終層の出力値に対して、以下の２通りの損失（第１の損失６６及び第２の損失７０）を計算し、両者の加重和により最終的な合計損失７４を計算する。この合計損失７４が０に近づくよう、誤差逆伝播法によってスチューデントネットワーク６０のパラメータを更新する。
【００１２】
すなわち、一方では、発話データｘの言語を表すワンホットベクトルからなるハードラベル７２と、スチューデントネットワーク６０の出力にソフトマックス層６８を適用して得た出力ベクトルとを用いて、クロスエントロピー（ＣＥ）による第２の損失７０を算出する。他方では、スチューデントネットワーク６０の出力をティーチャーネットワーク５０のソフトラベル計算に用いた温度Ｔを用いて除算６２し、さらにこの値を入力とするソフトマックス層６４の出力と、ティーチャーネットワーク５０から得たソフトラベル５６とから、第１の損失６６を計算する。この第２の損失７０と第１の損失６６との加重和が合計損失７４である。合計損失をＬＫＤとし、ＬＫＤを式で表すと以下のようになる。
【００１３】
【数２】
2020038343.tif 000004
ここでＬｈａｒｄが第２の損失７０であり、Ｌｓｏｆｔが第１の損失６６を表す。λはハード損失とソフト損失とをバランスさせるための重みである。Ｎは訓練サンプルの数を表す。ｙはハードラベルを表す要素数Ｋのワンホットベクトルである。
【００１４】
ここでは、クロスエントロピーを用いて、ソフト損失（第１の損失６６）と、訓練サンプルの発話データｘに対するハード損失（第２の損失７０）とを以下の式により算出する。
【００１５】
【数３】
2020038343.tif 000005
ここで、ｐ（ｘ）は各クラスに対してスチューデントモデルが出力する確率を要素とするＫ次元ベクトルであり、ｙＴ及びｑＴはそれぞれ、ベクトルｙ及びｑに対する転置を表す。図１から明らかなように、ソフト損失を算出する際にもティーチャーネットワークの処理と同様、スチューデントネットワーク６０の出力は温度Ｔで除算６２された後にソフトマックス層６４に与えられる。
【００１６】
一方、このＫＤに触発された技術であって、非特許文献５に開示されたＦｉｔＮｅｔｓと呼ばれる技術がある。非特許文献５に開示されたネットワークの訓練方法について、図２から図５を参照して説明する。図２を参照して、このシステム１００は、訓練済のティーチャーネットワーク１１０を用いて、ティーチャーネットワーク１１０より層の数は多いが、各層のニューロン数が少ないスチューデントネットワーク（非特許文献５ではＦｉｔＮｅｔと呼ばれている。）１２０を訓練する。非特許文献５では、ニューラルネットワークの層の数が多いほど柔軟に処理できるという特性を利用するため、この図２に示すようにスチューデントネットワーク１２０の層の数がティーチャーネットワーク１１０の層の数より多いことが前提とされている。ただしスチューデントネットワーク１２０の各隠れ層内のニューロン数はティーチャーネットワーク１１０のものより少ない。すなわち、スチューデントネットワーク１２０は全体としてティーチャーネットワーク１１０より「スリム」なネットワークである。
【００１７】
非特許文献５では、ティーチャーネットワーク１１０の中央付近の隠れ層１１４を転送元、スチューデントネットワーク１２０の中央付近の隠れ層１２４を転送先とする。非特許文献５よれば、転送元の隠れ層１１４及び転送先の隠れ層１２４が入力から遠すぎるとネットワークの柔軟性に欠けるということであり、非特許文献５では転送元の隠れ層１１４及び転送先の隠れ層１２４の双方とも中央の層がえらばれている。ｈ、ｇを自然数として、転送元の隠れ層１１４が第ｈ層、転送先の隠れ層１２４が第ｇ層であるものとする。図２では、ティーチャーネットワーク１１０の第１層から転送元の隠れ層１１４までの層群全体をＷＨｉｎｔ層１１２として表し、スチューデントネットワーク１２０の第１層から転送先の隠れ層１２４までの層群全体をＷＧｕｉｄｅｄ層１２２と呼ぶ。
【００１８】
また、ティーチャーネットワーク１１０の隠れ層のニューロン数がスチューデントネットワーク１２０のニューロン数より多いため、図３に示すように、転送先の隠れ層１２４を含むＷＧｕｉｄｅｄ層の直後に、転送先の隠れ層１２４の出力数と等しい数の入力を持ち、転送元の隠れ層１１４を含むＷＨｉｎｔ層１１２の出力数と等しい数の出力を持つリグレッサ１２６を設ける。
【００１９】
図３に示すように、非特許文献５の技術では、転送先の隠れ層１２４を含むＷＧｕｉｄｅｄ層１２２のパラメータＷＧｕｉｄｅｄとリグレッサ１２６のパラメータＷｒとにより定義される損失ＬＨＴを最小化するようにＷＧｕｉｄｅｄの値を学習し、さらに図４に示すようにスチューデントネットワーク１２０の出力に対して定義される損失ＬＫＤを最小化するよう、非特許文献４のＫＤ手法を用いてスチューデントネットワーク１２０を訓練する。
【００２０】
より詳細には、図２〜図４及び図５を参照して、スチューデントネットワーク１２０の訓練は以下のようにして行われる。図２のティーチャーネットワーク１１０のＷＨｉｎｔ層１１２に対応して準備されたパラメータ集合ＷＨｉｎｔに、訓練済のティーチャーネットワーク１１０のパラメータ集合の中で、第１層から第ｈ層までのパラメータ集合｛ＷＴ１，…，ＷＴｈ｝を代入する（ステップ１４０）。また、スチューデントネットワーク１２０のパラメータ集合の中で、第１層から第ｇ層までのパラメータ集合に対応して準備されたパラメータ集合ＷＧｕｉｄｅｄに、ランダムに初期化したスチューデントネットワーク１２０のパラメータ集合｛ＷＳ１，…，ＷＳｇ｝を代入する（ステップ１４２）。ここで、パラメータ集合ＷＧｕｉｄｅｄは隠れ層ＷＧｕｉｄｅｄ1，…，ＷＧｕｉｄｅｄgを含む。
【００２１】
ステップ１４４でリグレッサ１２６のパラメータ集合Ｗｒを、ランダムに選んだ小さな値で初期化する。ステップ１４６で以下の式によりＷＧｕｉｄｅｄに対応するパラメータ集合Ｗ*Ｇｕｉｄｅｄの値を計算する。パラメータ集合Ｗ*Ｇｕｉｄｅｄは隠れ層ＷＧｕｉｄｅｄ*1，…，ＷＧｕｉｄｅｄ*gを含む。
【００２２】
【数４】
2020038343.tif 000006
続くステップ１４８で、上の式により計算されたＷＧｕｉｄｅｄの各隠れ層ＷＧｕｉｄｅｄ*1，…，ＷＧｕｉｄｅｄ*gの値をスチューデントネットワーク１２０の隠れ層｛ＷＳ１，…，ＷＳｇ｝に代入する。以上でスチューデントネットワーク１２０の第１段階の訓練は終了である。
【００２３】
このようにしてスチューデントネットワーク１２０の第１段階の訓練が終了した後、ステップ１５０でスチューデントネットワーク１２０に対するＫＤの学習が次式により実行される。
【００２４】
【数５】
2020038343.tif 000007
上記非特許文献５に記載された技術は、ティーチャーネットワーク１１０よりも層数の多いスリムなスチューデントネットワーク１２０を、訓練済のティーチャーネットワーク１１０のパラメータを使用して訓練することにより、スチューデントネットワーク１２０の精度を高くできるという意味で有用である。スチューデントネットワーク１２０はティーチャーネットワーク１１０よりも層の数は多いが、各層に含まれるニューロンの数は少なく、したがって高い精度を保ちながら比較的高速に動作する。
【００２５】
しかし、非特許文献５に記載された技術を用いた場合では、訓練済のティーチャーネットワークのパラメータを用いてスチューデントネットワークの第１段階の訓練を行った後、さらにティーチャーネットワークの出力を用いてスチューデントネットワークの第２段階の訓練を行う必要があり、処理が複雑であるという問題がある。しかも、短い発話（例えば４秒未満）の場合にはやはり精度が落ち、発話が短くなるほど精度の劣化が甚だしくなるという問題がある。
【００２６】
したがってこの発明は、発話が短くても高い精度で発話言語を認識できるような発話言語認識モデルの訓練方法を提供することである。
【課題を解決するための手段】
【００２７】
この発明の第１の局面に係る言語識別モデルの訓練方法は、第１の発話時間の発話データにより訓練済の、所定数の言語の集合に関する発話の言語識別のための第１のニューラルネットワークを用いて、第１の発話時間より短い第２の発話時間の発話データにより、言語の集合に関する発話の言語識別のための第２のニューラルネットワークの訓練を行う言語識別モデルの訓練方法である。第２の発話時間の発話データの各々は、第１の発話時間の発話データのいずれかの一部である。第１のニューラルネットワークは、第１の発話時間の発話データを入力として各層の出力を伝搬するように配置された第１の数の畳込み層群と、当該第１の数の畳込み層群の出力を受け、言語識別情報を出力する第１の分類ネットワークとを含む。第２のニューラルネットワークは、第２の発話時間の発話データを入力として各層の出力を伝搬するように配置された第２の数の畳込み層群と、当該第２の数の畳込み層群の出力を受け、言語識別情報を出力するための第２の分類ネットワークとを含む。第１の数の畳込み層群のある層は、第２のニューラルネットワークに対する知識の転送元となる転送元層であり、第２の数の畳込み層群のある層は、知識の転送先となる転送先層である。この方法は、第１のニューラルネットワークを動作可能な形式で準備するステップと、第１のニューラルネットワークの訓練を行ったときの第１の発話時間の発話データと、第１の発話時間の発話データに含まれる第２の発話時間の発話データと、当該第１の発話時間の発話データの発話言語を示す言語情報とからなる訓練データを互いに関連付けて含む訓練データを機械読取可能な形式で準備するステップと、訓練データの第１の発話時間の発話データが第１の数の畳込み層群に入力されたときの転送元層の出力と、当該第１の発話時間の発話データと関連付けられた第２の発話時間の発話データが第２の数の畳込み層群に入力されたときの転送先層の出力と、当該第２の発話時間の発話データの言語情報とを少なくとも用いて、第２のニューラルネットワークを訓練するステップとを含む。
【００２８】
好ましくは、転送元層のニューロン数は、転送先層のニューロン数と同じである。
【００２９】
より好ましくは、転送元層は第１の数の畳込み層群の最上位層であり、転送先層は、第２の数の畳込み層群の最上位層である。
【００３０】
さらに好ましくは、第２のニューラルネットワークを訓練するステップは、訓練データの第１の発話時間の発話データｘＴが第１の数の畳込み層群に入力されたときの転送元層の出力ｕＴ（ｘＴ；ΘＴ）、ただしΘＴは転送元層のパラメータ集合を表す、を算出するステップと、発話データｘＴに関連する第２の発話時間の発話データｘＳが第２の畳込み層群に入力されたときの転送先層の出力ｕＳ（ｘＳ；ΘＳ）、ただしΘＳは転送先層のパラメータ集合を表す、を算出するステップと、転送先層において以下の損失関数ＬＦＲＫＤを算出するステップと、
【数６】
2020038343.tif 000008
（ただしλは重み係数、Ｌｈａｒｄ（ｘｓ，ｙ）は、前記第２のニューラルネットワークに発話データｘＳが与えられたときの前記第２のニューラルネットワークの出力と、当該発話データｘＳに関連付けられた前記言語情報ｙとの間に定義される損失関数）発話データｘＳが与えられたときの第２のニューラルネットワークの出力と、当該発話データｘＳに関連付けられた言語情報とを用いて誤差逆伝播法により第２のニューラルネットワークのパラメータを更新するステップとを含む。
【００３１】
好ましくは、この言語識別モデルの訓練方法はさらに、訓練データセット及び開発データセットを用いて、第１のニューラルネットワークのパラメータと、第２のニューラルネットワークのパラメータとを、開発データセットの入力に対する第２のニューラルネットワークの出力の誤差、訓練データセットに対する第１のニューラルネットワークの誤差、及び訓練データセットに対する第２のニューラルネットワークの誤差とを用いて定義される損失関数を最小化するよう、対話型で調整する対話型パラメータ調整ステップを含む。
【００３２】
より好ましくは、対話型パラメータ調整ステップは、訓練データセット及び開発データセットから抽出されたミニバッチデータセットを用いて、開発データセットの入力に対する第２のニューラルネットワークの出力の誤差と、訓練データセットに対する第１のニューラルネットワークとの誤差とを用いて定義される第１の誤差関数を最小化するよう、第１のニューラルネットワークのパラメータを調整する第１の調整ステップと、訓練データセットから抽出されたミニバッチデータセットに対する第２のニューラルネットワークの誤差を用いて定義される第２の損失関数を最小化するよう、第２のニューラルネットワークのパラメータを調整する第２の調整ステップと、第１の調整ステップ及び第２の調整ステップを、ミニバッチデータセットを変化させながら訓練データセット及び開発データセットに対して所定の終了条件が成立するまで交互に繰返すステップとを含む。
【００３３】
第２の局面に係る言語識別モデルの訓練装置は、第１の発話時間の発話データにより訓練済の、所定数の言語の集合に関する発話の言語識別のための第１のニューラルネットワークを用いて、第１の発話時間より短い第２の発話時間の発話データにより、言語の集合に関する発話の言語識別をするための第２のニューラルネットワークを訓練する言語識別モデルの訓練装置である。第２の発話時間の発話データの各々は、第１の発話時間の発話データのいずれかの一部であり得る。第１のニューラルネットワークは、第１の発話時間の発話データを入力として各層の出力を伝搬するように配置された第１の数の畳込み層群と、当該第１の数の畳込み層群の出力を受け、言語識別情報を出力する第１の分類ネットワークとを含む。第２のニューラルネットワークは、第２の発話時間の発話データを入力として各層の出力を伝搬するように配置された第２の数の畳込み層群と、当該第２の数の畳込み層群の出力を受け、言語情報を出力するための第２の分類ネットワークとを含む。第１の数の畳込み層群のある層は、第２のニューラルネットワークに対する知識の転送元となる転送元層であり、第２の数の畳込み層群のある層は、知識の転送先となる転送先層である。この装置は、第１のニューラルネットワークを動作可能な形式で記憶するモデル記憶装置と、第１のニューラルネットワークの訓練を行ったときの第１の発話時間の発話データと、第１の発話時間の発話データに含まれる第２の発話時間の発話データと、当該第２の発話時間の発話データの発話言語を示す言語情報とからなる訓練データを互いに関連付けて含む訓練データを機械読取可能な形式で記憶する訓練データ記憶装置と、訓練データの第１の発話時間の発話データが第１の数の畳込み層群に入力されたときの転送元層の出力と、当該第１の発話時間の発話データと関連付けられた第２の発話時間の発話データが第２の数の畳込み層群に入力されたときの転送先層の出力と、当該第２の発話時間の発話データの言語情報とを少なくとも用いて、第２のニューラルネットワークを訓練する訓練手段とを含む。
この発明の第３の局面に係るコンピュータプログラムは、コンピュータを、上記したいずれかの装置の各手段として機能させる。
【図面の簡単な説明】
【００３４】
【図１】非特許文献４に開示されたスチューデントネットワーク６０の訓練方法の概略を示す模式図である。
【図２】非特許文献５に開示されたティーチャーネットワークとスチューデントネットワークの概略構成を模式的に示す図である。
【図３】非特許文献５におけるスチューデントネットワークの第１段階の訓練方法を模式的に説明する図である。
【図４】非特許文献５におけるスチューデントネットワークの第２段階の訓練方法を模式的に説明する図である。
【図５】非特許文献５におけるスチューデントネットワークの訓練を実現するプログラムの制御構造の概略を示すフローチャートである。
【図６】この発明の第１の実施の形態に係る発話言語識別モデルの訓練方法の概略を模式的に示す図である。
【図７】この発明の第１の実施の形態に係る発話言語識別モデルの訓練方法を実現する訓練装置の構成を示すブロック図である。
【図８】この発明の第１の実施の形態に係る発話言語識別モデルの訓練方法を実現するようコンピュータを機能させるコンピュータプログラムの制御構造を示すフローチャートである。
【図９】図８に示すプログラムの一部の制御構造を示すフローチャートである。
【図１０】図８に示すプログラムの一部の制御構造を示すフローチャートである。
【図１１】実験で使用した各言語の訓練データの概要を表形式で示す図である。
【図１２】実験で使用したティーチャーネットワークの構成を示す図である。
【図１３】実験で使用したスチューデントネットワークの構成を示す図である。
【図１４】実験の結果を条件に応じて対比して表形式で示す図である。
【図１５】この発明の第１の実施の形態に係る発話言語識別モデルにおいて抽出された特徴量の分布を、ベースライン、ティーチャーモデル、及び従来技術を用いたモデルにおける特徴量の分布と対比して示す図である。
【図１６】第２の実施の形態に係る訓練装置の概略構成を示すブロック図である。
【図１７】コンピュータを、第２の実施の形態に係る訓練装置として機能させるプログラムの制御構造を示すフローチャートである。
【図１８】第２の実施の形態に係る訓練装置での、ティーチャーネットワークのパラメータ調整の手順を模式的に示す図である。
【図１９】第２の実施の形態に係る訓練装置での、スチューデントネットワークのパラメータ調整の手順を模式的に示す図である。
【図２０】第２の実施の形態に係る訓練装置に関する実験結果を、従来技術及び第１の実施の形態に係る訓練装置の実験結果とあわせて表形式で示す図である
【図２１】第２の実施の形態に係る訓練装置について、異なる発話長に対する精度を確認する実験結果を、従来技術及び第１の実施の形態に係る訓練装置の実験結果とあわせて表形式で示す図である。
【図２２】この発明の各実施の形態に係る発話言語識別モデルの訓練方法を実現するコンピュータシステムの外観図である。
【図２３】図２２に示すコンピュータシステムのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００３５】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【００３６】
［第１の実施の形態］
＜構成＞
［訓練の概略］
図６に、この発明の第１の実施の形態に係る発話言語識別モデルの訓練方法２００の構成の概略を示す。図６を参照して、この実施の形態に係る訓練方法２００は、訓練済のティーチャーネットワーク２１０を用いてスチューデントネットワーク２２０を訓練する。
【００３７】
ティーチャーネットワーク２１０は、この実施の形態では発話時間が４秒の発話データ２３０からなる訓練データを用いて訓練され、４秒の発話データの入力に応答して、その発話データの言語が所定数（例えば１０個）の言語の中のいずれであるかを示す出力ベクトル２１２を出力するように訓練される。この訓練自体には通常の手法が用いられる。この訓練に用いられる訓練サンプルは、４秒の発話データとその発話データの発話言語が何かを表すラベルとを含む。
【００３８】
ティーチャーネットワーク２１０は、各々が畳込みブロックからなる複数の隠れ層を含む特徴抽出部２１４と、特徴抽出部２１４の出力する特徴量に基づいて発話言語を分類し出力ベクトル２１２を出力するための２層の全結合層からなる全結合層ネットワーク２１６とを含む。全結合層ネットワーク２１６の最終ステージには図示しないsoftmax層が存在する。このように複数の畳込みブロックを含む深層ニューラルネットワーク（Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）を以下「ＤＣＮＮ」と呼ぶ。
【００３９】
特徴抽出部２１４は複数の畳込みブロックを含むが、本実施の形態ではその最上位層の畳込みブロック２１８が訓練で獲得した特徴抽出に関する知識を後述のような方法でスチューデントネットワーク２２０に転送する。この知識は畳込みブロック２１８の出力という形で表される。
【００４０】
スチューデントネットワーク２２０は、ティーチャーネットワーク２１０と同様、ＤＣＮＮからなる。スチューデントネットワーク２２０は、発話データ２３０より短い２秒という発話時間の発話データ２３２を含む訓練データと、ティーチャーネットワーク２１０の畳込みブロック２１８のパラメータとを用いて訓練され、２秒の発話時間の発話データの入力に応答して、ティーチャーネットワーク２１０の出力ベクトル２１２と同様、入力された発話データによる発話が１０言語の中のどの言語で発話されたかを示す出力ベクトル２２２を出力するためのものである。
【００４１】
スチューデントネットワーク２２０は、ティーチャーネットワーク２１０の特徴抽出部２１４と同様、複数の畳込みブロックを含む特徴抽出部２２４と、特徴抽出部２２４の出力する特徴量に基づいて入力発話の分類を行い、出力ベクトル２２２を出力するための２層の全結合層からなる全結合層ネットワーク２２６とを含む。なお、全結合層ネットワーク２２６は、最終層に図示しないsoftmax層を含む。
【００４２】
特徴抽出部２２４も複数の畳込みブロックを含むが、この実施形態ではその最上位の階層の畳込みブロック２２８に、畳込みブロック２１８の知識を転送する。したがって、畳込みブロック２２８のニューロン数は、畳込みブロック２１８のニューロン数と同じである。一方、スチューデントネットワーク２２０への入力の発話長はティーチャーネットワーク２１０への入力の発話長の半分であるため、スチューデントネットワーク２２０の最下段の畳込み層のニューロン数はティーチャーネットワーク２１０の最下段のニューロンの半分である。同様に、特徴抽出部２２４内の一部畳込みブロックのニューロンは、特徴抽出部２１４内の各畳込みブロックのニューロンより少ない。こうした構成によりスチューデントネットワーク２２０はティーチャーネットワーク２１０より高速に動作可能である。
【００４３】
［発話言語識別モデルの訓練装置］
図７にこの実施の形態に係る発話言語識別モデルの訓練方法を実現する訓練装置の概略構成をブロック図形式で示す。図７を参照して、この訓練装置２５０は、ティーチャーネットワーク２１０の訓練に用いる訓練サンプルを含む訓練データを記憶するためのティーチャーネットワーク訓練データ記憶部２６０と、ティーチャーネットワーク２１０を、動作可能な形式で記憶するための第１の言語識別モデル記憶部２６２と、ティーチャーネットワーク訓練データ記憶部２６０に記憶された訓練データを用いて第１の言語識別モデル記憶部２６２に記憶されたティーチャーネットワーク２１０を通常の誤差逆伝播法を用いて訓練するためのティーチャーネットワーク訓練部２６４とを含む。各訓練サンプルは、この実施の形態では例えば発話時間４秒の発話データとその発話の言語を識別する言語ラベルとを含む。
【００４４】
第１の言語識別モデル記憶部２６２は、ティーチャーネットワーク２１０が実現する関数のアルゴリズムを規定するプログラムを記憶するためのティーチャーネットワークプログラム記憶部２８０と、このアルゴリズムが実現する関数の振る舞いを決定するパラメータ及びティーチャーネットワーク２１０の構成を規定するハイパーパラメータを記憶するためのティーチャーネットワークパラメータ記憶部２８２とを含む。ここでいうハイパーパラメータは、ネットワークの層数、各畳込み層が使用するフィルタサイズ及びその数、マックスプーリングの際のウィンドウサイズ及びそのストライド等の情報を含む。
【００４５】
訓練装置２５０はさらに、ティーチャーネットワーク訓練データ記憶部２６０に記憶された訓練サンプルの各々を変換して発話時間２秒の発話データと元の４秒の発話データとを含む訓練サンプルを出力するための訓練データ変換部２６６と、訓練データ変換部２６６の出力する訓練サンプルを機械可読な形式で記憶するためのスチューデントネットワーク訓練データ記憶部２６８とを含む。発話時間２秒の発話データの各々は、その元になった発話時間４秒の発話データと関連付けられている。
【００４６】
訓練データ変換部２６６は、例えばティーチャーネットワーク訓練データ記憶部２６０に記憶された各訓練サンプルの４秒の発話データを発話時間２秒ずつの発話データに分割し、分割して得られた２つの発話データの各々と元の４秒の発話データとを互いに関連付けて組合わせ、さらに元の訓練サンプルのラベルを付すことで新しい訓練サンプルを生成する。すなわち、ティーチャーネットワーク２１０の訓練サンプル１つからはスチューデントネットワーク２２０の訓練サンプルが２つ得られ、各訓練サンプルは、２秒の発話データと、その発話データの元となった４秒の発話データと、その発話データの言語を示すラベルとを含む。このように、短い時間の発話データが長い時間の発話データの約数となっていると、短い時間の発話データの生成上では都合がよい。ただし、この発明はそのような実施の形態には限定されず、短い発話時間が長い発話時間の約数でなくてもよい。
【００４７】
訓練装置２５０はさらに、スチューデントネットワーク訓練データ記憶部２６８に記憶されたスチューデントネットワーク２２０の訓練データ及び第１の言語識別モデル記憶部２６２に記憶されたティーチャーネットワーク２１０からなる言語識別モデルを用いて、後述する訓練方法によりスチューデントネットワーク２２０を訓練するためのスチューデントネットワーク訓練部２７２と、スチューデントネットワーク２２０を記憶するための第２の言語識別モデル記憶部２７０とを含む。
【００４８】
第２の言語識別モデル記憶部２７０は、スチューデントネットワーク２２０が実現する関数のアルゴリズムを規定するプログラムを記憶するためのスチューデントネットワークプログラム記憶部２９０と、このアルゴリズムが実現する関数の振る舞いを決定するパラメータ及びスチューデントネットワーク２２０の構成を規定するハイパーパラメータを記憶するためのスチューデントネットワークパラメータ記憶部２９２とを含む。
【００４９】
図８−図１０は、図７に示すスチューデントネットワーク訓練部２７２として機能するようコンピュータを制御するコンピュータプログラムの制御構造を示すフローチャートである。図８を参照して、このプログラムは、ティーチャーネットワーク２１０用の訓練データを用いてティーチャーネットワーク２１０を訓練するステップ３２０と、訓練済のティーチャーネットワーク２１０とハードラベルとを用いてスチューデントネットワークを訓練するステップ３２２とを含む。
【００５０】
図９に、図８のステップ３２０の詳細を示す。図９を参照して、このプログラムは、ティーチャーネットワーク２１０の訓練データを準備するステップ３３０と、ティーチャーネットワーク２１０のパラメータ集合を初期化するステップ３３２と、訓練の予定実行数だけ訓練処理３３６を繰返すステップ３３４と、ステップ３３４の結果得られたティーチャーネットワーク２１０のパラメータ集合をティーチャーネットワークパラメータ記憶部２８２（図７）に保存してこの処理を終了する訓練処理３３８とを含む。
【００５１】
訓練処理３３６は、訓練データセットからｍサンプルのミニバッチをサンプリングするステップ３５０と、ティーチャーネットワーク２１０にミニバッチの音声データを入力したときのティーチャーネットワーク２１０の出力を訓練データ内のハードラベルとの差を算出するステップ３５２と、ミニバッチに対して算出される以下の損失関数ＬＴ（ｘＴ，ｙ）を最小化するようティーチャーネットワーク２１０の全ての層のパラメータを誤差逆伝播法により更新して訓練処理３３６を終了するステップ３５４とを含む。なお次式においてラベルｙの右肩の「Ｔ」は転置を表す。一方、下添字の「Ｔ」はティーチャーネットワーク２１０に関する値であることを示す。同様にスチューデントネットワーク２２０に関する損失関数ＬＳ（ｘＳ，ｙ）も定義される。
【００５２】
【数７】
2020038343.tif 000009
【００５３】
図１０に、図８のステップ３２２の詳細を示す。図１０を参照して、このプログラムは、訓練済のティーチャーネットワーク２１０とハードラベルとからスチューデントネットワーク２２０を訓練する訓練データを準備するステップ３６０と、スチューデントネットワークパラメータ記憶部２９２に記憶されたスチューデントネットワーク２２０のパラメータ集合ΘＳを初期化するステップ３６２とを含む。本実施の形態では、ステップ３６２の初期化ではGlorotの一様分布手法と呼ばれる手法を用いている。もちろん、初期化はこの手法に限定されず、他の手法を用いてもよい。
【００５４】
なお、ステップ３６０では、図７に示すように、訓練データ変換部２６６がティーチャーネットワーク訓練データ記憶部２６０に記憶された訓練データから発話長２秒の訓練データを生成し、元の発話長４秒の訓練データとあわせてスチューデントネットワーク訓練データ記憶部２６８に格納する。なお、ここでは発話長４秒の訓練データを中央で分割して発話長２秒の訓練データを２つ生成している。しかしこの発明はそのような実施の形態には限定されない。もとの訓練データから、互いに重なる発話部分を持つ複数の訓練データに生成してもよい。
【００５５】
このプログラムはさらに、ステップ３６０で準備されたスチューデントネットワーク２２０の訓練データを用いて、以下の訓練処理３６６を予め定めておいた予定実行数だけ繰返すステップ３６４と、ステップ３６４の訓練が終了した時点のスチューデントネットワーク２２０のパラメータ集合ΘＳを図７に示すスチューデントネットワークパラメータ記憶部２９２に保存して処理を終了するステップ３６８とを含む。なおこの実施の形態では、訓練処理３６６の処理を指定回数だけ繰返したときに訓練を終了するものとしたが、他の終了条件の成立により繰返しを終了するようにしてもよい。例えばミニバッチによるパラメータの更新の大きさの絶対値がしきい値以下となることが所定回数連続したときに、繰返しを終了するようにしてもよい。
【００５６】
訓練処理３６６は、訓練データからｍ個の訓練サンプルのミニバッチをサンプリングするステップ３８０と、これらｍ個の訓練サンプルの中の２秒の発話データをそれぞれスチューデントネットワーク２２０に入力し、スチューデントネットワーク２２０の出力とハードラベルとの差を算出するステップ３８２とを含む。ステップ３８２では、スチューデントネットワーク２２０の転送先の隠れ層である畳込みブロック２２８の出力も算出し記憶する。転送先の畳込みブロック２２８の出力はｕＳ（ｘＳ；ΘＳ）と表される特徴量である。ここで、ｘＳはスチューデントネットワーク２２０に入力される２秒の発話データを表し、ΘＳは知識の転送先である畳込みブロック２２８のパラメータ集合を表し、ｕＳは畳込みブロック２２８までの特徴抽出部２２４により規定される関数を表す。なお、各ミニバッチを構成するｍ個の訓練サンプルは、少なくとも識別の対象となる言語の数以上であることが望ましい。例えば、言語別にそれぞれ同数ずつ、又はサンプル数に比例した割合で、合計がｍ個になるように各言語からサンプリングすることが望ましい。
【００５７】
訓練処理３６６はさらに、訓練データの各々について、その４秒の発話データをティーチャーネットワーク２１０に入力し、そのときのティーチャーネットワーク２１０の知識の転送元である畳込みブロック２１８の出力を算出するステップ３８４を含む。畳込みブロック２１８の出力はｕＴ（ｘＴ；ΘＴ）と表される特徴量である。ここで、ｘＴはティーチャーネットワーク２１０に入力される４秒の発話データを表し、ΘＴは畳込みブロック２１８のパラメータ集合を表し、ｕＴは転送元層までの特徴抽出部２１４により規定される関数を表す。
【００５８】
訓練処理３６６はさらに、ステップ３８４に続き、以下の式（６）により表される損失関数ＬＦＲＫＤを計算するステップ３８６を含む。
【００５９】
【数８】
2020038343.tif 000010
訓練処理３６６はさらに、ステップ３８６に続き、スチューデントネットワーク２２０の全ての層のネットワークのパラメータを、上記した損失関数を最小化するよう通常の誤差逆伝播法で更新し、対象となるミニバッチによる訓練処理３６６を終了するステップ３８８を含む。
【００６０】
＜動作＞
図６〜図１０を参照して、この実施の形態に係る訓練装置２５０は以下のように動作する。最初に、ティーチャーネットワーク訓練データ記憶部２６０にティーチャーネットワーク２１０の訓練データを準備する。ティーチャーネットワークプログラム記憶部２８０には、ティーチャーネットワーク２１０のアルゴリズムを規定するプログラムが予め記憶されている。ティーチャーネットワーク訓練部２６４は、この訓練データとティーチャーネットワークプログラム記憶部２８０に記憶されたプログラムとを用いてティーチャーネットワーク２１０を訓練する（図８のステップ３２０）。
【００６１】
ティーチャーネットワーク２１０の訓練では、図９に示すように、最初にステップ３３０が準備され、ティーチャーネットワーク２１０のパラメータ集合を初期化する（ステップ３３２）。続いて訓練処理３３６が訓練の予定実行数だけ繰返し行われる（ステップ３３４）。このステップ３３４が終了したときのティーチャーネットワーク２１０のパラメータ集合がティーチャーネットワークパラメータ記憶部２８２（図７）に記憶される。この結果、ティーチャーネットワークパラメータ記憶部２８２にはティーチャーネットワーク２１０の各層のパラメータ集合が記憶される。このパラメータ集合は図６に示す転送元となる畳込みブロック２１８のパラメータ集合ΘＴを含む。
【００６２】
ティーチャーネットワーク２１０の訓練が終了すると、訓練データ変換部２６６がティーチャーネットワーク訓練データ記憶部２６０に記憶されたティーチャーネットワークのための訓練データを変換し、スチューデントネットワーク２２０のための訓練データを生成する（ステップ３６０）。変換後の訓練データはスチューデントネットワーク訓練データ記憶部２６８に記憶される。スチューデントネットワーク訓練データ記憶部２６８に記憶される各訓練サンプルは、ティーチャーネットワーク訓練データ記憶部２６０に記憶されていた訓練サンプルの４秒の発話データを分割した２秒の発話データと、元になった４秒の発話データと、ラベルとを含む。
【００６３】
スチューデントネットワークプログラム記憶部２９０には、スチューデントネットワーク訓練部２７２のアルゴリズムを規定するプログラム（スチューデントネットワークプログラム）が記憶されている。スチューデントネットワークパラメータ記憶部２９２には、スチューデントネットワーク２２０の構成を規定するハイパーパラメータが予め記憶され、スチューデントネットワーク２２０のパラメータを記憶する記憶領域が確保される。
【００６４】
スチューデントネットワーク２２０の訓練では、スチューデントネットワーク訓練部２７２は、スチューデントネットワーク２２０のための訓練データを準備する（ステップ３６０）。具体的には、スチューデントネットワーク訓練部２７２は図７に示すスチューデントネットワーク訓練データ記憶部２６８にアクセスし、訓練データファイルをオープンしメモリにロードする。続いてスチューデントネットワークパラメータ記憶部２９２に確保されたスチューデントネットワークのパラメータ集合の記憶領域を初期化する（ステップ３６２）。このパラメータ集合は、図６に示す転送先となる畳込みブロック２２８のパラメータ集合ΘＳを含む。
【００６５】
続いて、スチューデントネットワーク訓練部２７２は、以下の処理（図１０の訓練処理３６６）を所定の予定実行回数だけ繰返すステップ３６４を実行する。
【００６６】
訓練処理３６６では、スチューデントネットワーク訓練部２７２は、スチューデントネットワーク訓練データ記憶部２６８に記憶された訓練データからｍ個の訓練サンプルからなるミニバッチをサンプリングする（ステップ３８０）。このミニバッチに含まれる各訓練サンプルの中の２秒の発話データｘＳをスチューデントネットワーク２２０に入力し、それぞれに対応してスチューデントネットワーク２２０から出力される識別結果ｙとハードラベルとの誤差を算出する。同時に、スチューデントネットワーク２２０の特徴抽出部２２４の最上位層である畳込みブロック２２８の出力ｕＳ（ｘＳ；ΘＳ）を算出する（ステップ３８２）。
【００６７】
続いてステップ３８４で、ティーチャーネットワーク２１０に各訓練サンプルの中で、ミニバッチに含まれる２秒のサンプリングデータを含む４秒の発話データｘＴを入力し、特徴抽出部２１４の最上位層である転送元の畳込みブロック２１８からの出力ｕＴ（ｘＴ；ΘＴ）を算出する。
【００６８】
さらにスチューデントネットワーク訓練部２７２は、式（６）により表される損失関数ＬＦＲＫＤの値を算出する（ステップ３８６）。
【００６９】
訓練処理３６６の最後には、スチューデントネットワーク２２０のパラメータ全てを、損失関数ＬＦＲＫＤの値を最小化するように通常の誤差逆伝播法を用いて更新し、１ミニバッチに対する訓練処理３６６の処理を終了する（ステップ３８８）。
【００７０】
以上の処理を予定実行数だけ繰返すことにより、スチューデントネットワーク２２０の訓練が終了する。スチューデントネットワーク訓練部２７２はこのときのスチューデントネットワーク２２０のパラメータ集合をスチューデントネットワークパラメータ記憶部２９２に保存し（ステップ３６８）、スチューデントネットワーク２２０の訓練を終了する。
【００７１】
＜実験結果＞
上記実施の形態にしたがった訓練方法により訓練したスチューデントネットワークによる実験を行い、上記訓練方法が有効か否かを確認した。
【００７２】
図１１に、この実験で使用した各言語の訓練データの概要を示す。図１１を参照して、この実験では、ビルマ語、中国語、英語、フランス語、インドネシア語、日本語、韓国語、スペイン語、タイ語及びベトナム語の発話データを用いた。これら発話データは出願人において準備したものである。
【００７３】
各言語の発話データを、訓練用データセット、検証用データセット、及びテスト用データセットに分割した。各言語についてのこれらデータに関する情報は図１１に記載したとおりであり、各言語について、訓練用データセットが４５００、検証用データセットが３００、テスト用データセットが１２００のサンプルからからなっている。ただし、各発話データの合計時間は図１１に示すように互いに一致しているわけではない。発話データの平均時間は７．６秒である。これら発話データはいずれもネイティブ話者により発話されたデータである。
【００７４】
実験でのモデルの評価には発話言語の識別誤り率（ＵＥＲ）を用いた。
【００７５】
実験では、図１２に示すような構成のＤＣＮＮをティーチャーネットワークとして、図１３に示すような構成のＤＣＮＮをスチューデントネットワークとして、それぞれ準備した。図１２に示す例は入力の発話長が４秒のものであり、図１３に示す例は入力の発話長が２秒のものである。
【００７６】
図１２を参照して、ティーチャーネットワークのＤＣＮＮは、入力として４秒の発話を受ける。音声信号をフレーム長２５ｍｓｅｃ、フレーム間隔（フレーム移動間隔）１０ｍｓｅｃでフレーム化する。入力の発話長が４秒なので、１入力のフレーム数は全部で４×１０００／１０＝４００フレームである。各フレームは音声信号を６０次元のメルフィルタバンクに通して得られた６０個の要素からなる６０次元のベクトルである。すなわち、ＤＣＮＮには４００×６０の行列が入力される。図１２において、例えば第１行において「conv(7×7, 16, relu)」とあるのは、畳込みブロックにおいて使用されるフィルタのサイズが７×７、フィルタ数が１６、活性化関数がRectified Linear Unitであることを示す。「max-pooling（3×3, stride 2×2）」は、マックスプーリングが、３×３の領域を対象に、横方向に２つずつ移動させながら行われ、行の末尾まで移動したら対象領域を縦（下）方向に２つ移動させて同じ処理が行われること、を示す。「ＢＮ」は、その畳込みブロックにおいてバッチ正規化処理を行うことを示す。
【００７７】
図１３を参照して、スチューデントネットワーク２２０のＤＣＮＮは、入力として２秒の発話を受ける。入力される音声信号をフレーム化し、各フレームを６０次元のベクトルに変換する。この結果、ＤＣＮＮへの入力は２００×６０の行列となる。図１３において図１２と異なるのは、入力ベクトルの数（入力層のニューロン数）の相違に加えて、畳込みブロックの第３層のmax-poolingのストライドが１×２（図１２では２×２）となっている点である。これは、入力データの次元数が図１２と図１３とで異なっているのに対し、転送元層と転送先の層とのニューロン数を等しくするための調整である。その他の点では、図１３の見方は図１２と同様である。
【００７８】
この実験では、図１３に示すものと同じ構成のＤＣＮＮを発話長２秒の訓練データで訓練したものをベースラインとした。さらに、発話長が２秒の発話を入力とするＤＣＮＮを、発話長が４秒のティーチャーネットワークを使用したＫＤ手法（非特許文献１）により訓練したものを本実施の形態との比較例として準備した。ＫＤ手法を用いた比較例は、温度Ｔ＝３、５、７とλ＝０．１、０．３、０．５及び０．７の組合わせで構築した。
【００７９】
本実施の形態のスチューデントネットワークとしては、図１２と同様の構成で入力発話長＝２秒のＤＣＮＮを準備し、同様の構成で入力発話長４秒のＤＣＮＮをティーチャーネットワークとして訓練することで準備した。この際、λは０．１、０．３，０．５及び０．７を用いた。
【００８０】
実験の結果を図１４に示す。図１４を参照して、ＫＤ手法を用いたものでは、Ｔ＝３，λ＝０．３としたものがテストでは最も高い性能（ＵＥＲ＝５．６９％）を示した。これはベースライン（ＵＥＲ＝６．８７％）と比較して１７．１８％の改善である。これに対して本実施の形態の手法により訓練したネットワーク（ＦＲＫＤ）では、λ＝０．３で知識転送訓練の損失関数にＬ１ノルムを採用したものが最も高い性能（ＵＥＲ＝５．２８％）を示した。これはベースラインと比較して１８．９４％の改善であり、ＫＤ法と比較しても７．２１％の改善である。
【００８１】
この実験ではλ＝０．５に固定してＬ１ノルムを用いたものとＬ２ノルムを用いたものとの性能比較も行った。その結果、前者のＵＥＲが５．３３％であったのに対し、後者のＵＥＲは５．８９％であった。したがってＬ１ノルムを用いた方がＬ２ノルムを用いたものと比較して９．５１％ほど相対的に性能がよいことが分かった。Ｌ２ノルムを用いたものはＫＤ法で最も高い性能を示したもの（ＵＥＲ＝５．６９％）よりも性能が低くなっている。
【００８２】
以上から、この発明の手法により訓練したモデルは、ＫＤ法を用いたものより高い性能が得られること、損失関数にＬ２ノルムではなくＬ１ノルムを用いた方が高い性能を実現できることが分かった。
【００８３】
図１５に、実験で用いたベースラインのモデル、スチューデントネットワークの訓練に用いたティーチャーネットワーク、ＫＤ法により訓練したスチューデントネットワーク、及びこの発明に係る方法により訓練したスチューデントネットワークにより得られた特徴量を次元圧縮して可視化した図を示す。この図は検証データセットに対して各モデルが出力した特徴量の分布を２次元の散布図のように表したものである。ティーチャーモデルは発話長４秒のもの、ベースラインと２つのスチューデントモデルは発話長１秒のものである。
【００８４】
図１５（Ｂ）に示すように、ティーチャーネットワークの図では特徴量がきれいに１０個のクラスタに分散している。この１０個のクラスタは、それぞれの言語に対応している。したがってティーチャーネットワークを用いると１０個の言語を高い精度で識別できることが分かる。それに対し、図１５（Ａ）に示すベースラインでは、特徴量の分離がよくできておらず、言語の識別性能が低いことが分かる。図１５（Ｃ）に示すＫＤ法によるものでは、図１５（Ａ）のベースラインよりは特徴量の分離がよいが、それでも十分ではない。一方、図１５（Ｄ）に示すこの発明によるものでは、特徴量がよく分離されており、図１５（Ｂ）に示すティーチャーネットワークのものに近くなっている。したがってこの図１５からも、この発明によるＤＣＮＮの訓練方法により、精度の高い発話言語識別が可能であることが分かる。
【００８５】
＜変形例＞
上記実施の形態では、ティーチャーネットワークを４秒の発話データで、スチューデントネットワークを２秒の発話データで、それぞれ訓練した。しかし発話データ長の長さはこの組合わせには限定されない。またスチューデントネットワークの発話長がティーチャーネットワークの発話長より短ければよい。ただし、今回の発明の目的から考えて、スチューデントネットワークを訓練するための発話長は２秒以下であることが望ましい。さらに、上記実施の形態では４秒と２秒というように、一方が他方の倍数、すなわち他方が一方の約数という関係になっている。しかしそのような組合わせに限定されるわけではない。ただし、訓練データの準備の容易さ、畳込みネットワークのハイパーパラメータの決定の容易さから考えて、倍数と約数という関係の発話長で訓練データを準備することが現実的である。
【００８６】
また、上記実験では、ティーチャーネットワーク及びスチューデントネットワークのいずれも７層の畳込みブロックを含んでいる。また、転送元の層及び転送先の層の双方ともこれら畳込みブロックの最上位の隠れ層である。しかしこの発明はそのような実施の形態には限定されない。畳込みブロックの数は７層以外でもよいし、ティーチャーネットワークとスチューデントネットワークの畳込みブロックの数が一致しなくても良い。また転送元の層又は転送先の層は、特徴量を抽出する畳込みブロック群の最上位の畳込みブロックでなくてもよいし、両者の畳込みブロック群内での位置が一致する必要もない。
【００８７】
上記実施の形態では、ＬＦＲＫＤ損失を用いた訓練を言語識別のためのＤＣＮＮに適用した。このＤＣＮＮでは、畳込みブロック群が出力するのは特徴量に相当し、その特徴量を全結合層に入力することで言語識別を行っている。しかしこの発明はそのような実施の形態には限定されない。例えば、同じ手法により訓練された畳込みブロック群が抽出した特徴量を用いて、話者識別を行うこともできる。ただしこの場合には、特徴量を用いて、発話が特定の話者によってなされたものか否かを判定する２クラス分類器としてＤＣＮＮを利用するのが現実的である。
【００８８】
［第２の実施の形態］
以下に説明する第２の実施の形態は、第１の実施の形態により得られたモデルに対して、ティーチャーネットワークとスチューデントネットワークとの対話型訓練（対話型パラメータ調整）という、新規な方法で改良を加えたものである。後述するように、この方法で訓練したスチューデントネットワークは、第１の実施の形態において訓練したものよりもさらに高い精度を示した。また、同じ発話時間での精度もより高くなることが確認できた。したがって、同じ精度で言語識別するのであれば、必要な発話長をより短くできる。
【００８９】
＜構成＞
図１６に、この第２の実施の形態に係る訓練装置４００の概略構成をブロック図形式で示す。図１６を参照して、訓練装置４００は、第１の実施の形態と同様に構成されたティーチャーネットワーク訓練データ記憶部２６０、第１の言語識別モデル記憶部２６２、ティーチャーネットワーク訓練部２６４、訓練データ変換部２６６、スチューデントネットワーク訓練データ記憶部２６８、スチューデントネットワーク訓練部２７２及び第２の言語識別モデル記憶部２７０を含む。
【００９０】
訓練装置４００はさらに、第１の言語識別モデルを構成するティーチャーネットワーク２１０のパラメータ調整のためにスチューデントネットワーク２２０に入力される開発データセットを記憶する開発データ記憶部４１２と、ティーチャーネットワーク訓練データ記憶部２６０に記憶されたティーチャーネットワーク訓練データ、スチューデントネットワーク訓練データ記憶部２６８に記憶されたスチューデントネットワーク訓練データ、及び開発データ記憶部４１２に記憶された開発データを用いて、ティーチャーネットワーク２１０とスチューデントネットワーク２２０とのパラメータを調整するための訓練データを記憶するための訓練データ記憶装置４１４と、この訓練データを用いたティーチャーネットワーク２１０とスチューデントネットワーク２２０との間での対話型処理により、ティーチャーネットワークとスチューデントネットワークとの双方のパラメータの調整を行い、それによってスチューデントネットワークによる言語識別の精度を第１の実施の形態によるものと比較してより高くするための対話型モデル調整部４１０とを含む。
【００９１】
図１７に、コンピュータを訓練装置４００として機能させるためのコンピュータプログラムの制御構造をフローチャート形式で示す。図１８に、この第２の実施の形態における損失関数とティーチャーネットワーク２１０及びスチューデントネットワーク２２０のパラメータ更新の概略を模式的に示す。
【００９２】
図１７を参照して、このプログラムは、ティーチャーネットワーク訓練データを用いて第１の言語識別モデルを構成するティーチャーネットワーク２１０を訓練するステップ３２０と、ステップ３２０により訓練されたティーチャーネットワーク２１０のパラメータセットの中で、最上位層の畳込みブロック２１８（図１８）のパラメータセットΘ０Ｔを記憶装置に保存するステップ４５０と、ステップ４５０に続き、スチューデントネットワーク訓練データを用いてスチューデントネットワーク２２０を訓練するステップ３２２と、ステップ３２２に引き続き、ティーチャーネットワーク２１０及びスチューデントネットワーク２２０のパラメータ調整に使用する訓練データを、ティーチャーネットワーク訓練データ、スチューデントネットワーク訓練データ、及び開発データ記憶部４１２に記憶された開発データを用いて訓練データ記憶装置４１４に準備するステップ４５２とを含む。なお、ここでの訓練データは、｛ティーチャーネットワーク２１０の訓練データ、スチューデントネットワーク２２０の訓練データ、開発データ、ラベル｝の組である。これらの中で｛ティーチャーネットワーク２１０の訓練データ、スチューデントネットワーク２２０の訓練データ、ラベル｝の組がスチューデントネットワーク２２０のパラメータ調整に使用され、｛ティーチャーネットワーク２１０の訓練データ、開発データ、ラベル｝の組がティーチャーネットワーク２１０のパラメータ調整に用いられる。したがって、図１８に示されるように、スチューデントネットワーク２２０への入力である訓練データは開発データサンプル５２０を含む。開発データセットサンプル５２０は、２秒の発話長の発話データと、その発話の言語を示すラベルｙとが組になったものである。
【００９３】
このプログラムはさらに、訓練の予定実行数だけ外側ループ処理４５６を実行するステップ４５４と、ステップ４５２が完了したときのスチューデントネットワーク２２０のパラメータ集合を図７のスチューデントネットワークパラメータ記憶部２９２のような記憶装置に記憶してプログラムの実行を終了するステップ４５８とを含む。
【００９４】
外側ループ処理４５６は、訓練データをシャッフルするステップ４８０と、このシャッフル後の訓練データを用い、全訓練データを処理するまで以下に説明する内側ループ処理４８４を実行するステップ４８２とを含む。
【００９５】
内側ループ処理４８４は、訓練データのミニバッチセットからｍサンプルのミニバッチをサンプリングするステップ５００と、ステップ５００でサンプリングされたミニバッチの中で｛ティーチャーネットワーク２１０の訓練データ、開発データ、ラベル｝の組を用いて以下の損失関数＾ＬＴを最小化するようにティーチャーネットワーク２１０のパラメータを調整するステップ５０２とを含む（記号「＾」は数式では文字の直上に記載されている「ハット記号」を表す。）。
【００９６】
【数９】
2020038343.tif 000011
この式中で使用されている損失関数ＬＴ及びＬＳはそれぞれ、ティーチャーネットワーク２１０の損失関数及びスチューデントネットワーク２２０の損失関数を表す。この損失関数としては、誤差逆伝播法が使用可能なものであればどのようなものを用いてもよいが、この実施の形態では従来の技術で紹介した式（３）と同様のものを用いる。γ及びξは実験により定めるパラメータである。ノルム１の項は、このパラメータ調整において、ティーチャーネットワーク２１０の最上位層の畳込みブロック２１８のパラメータが、元の畳込みブロック２１８のパラメータ（初期値Θ０Ｔ）からあまり離れてしまわないようにするための制約である。
【００９７】
このプログラムはさらに、ステップ５００でサンプリングされたミニバッチの中で｛ティーチャーネットワーク２１０の訓練データ、スチューデントネットワーク２２０の訓練データ、ラベル｝を用いて、以下の損失関数＾ＬＳを最小化するようにスチューデントネットワーク２２０のパラメータを調整するステップ５０４を含む。
【００９８】
【数１０】
2020038343.tif 000012
式（８）中において、ＬＳ及びＬｋｔはそれぞれ第１の実施の形態で使用したものと同じである。定数λはＬＳとＬｋｔとのバランスを取るための定数であり、実験により定められる。
【００９９】
図１８及び図１９を参照して、図１７の内側ループ処理４８４について説明する。図１７のステップ５０２では、各ミニバッチの各サンプルについて、ティーチャーネットワーク２１０の訓練データである発話データ２３０（サンプルｘＴ）がティーチャーネットワーク２１０に与えられる。ティーチャーネットワーク２１０の全結合層ネットワーク２１６からは出力ベクトル２１２が出力される。この出力ベクトル２１２とラベルｙとの間で計算される損失関数ＬＴは矢印５３２が示すように式（７）の一部を構成する。ティーチャーネットワーク２１０の畳込みブロック２１８からはｕＴ（ｘＴ；ΘＴ）が出力される。ｕＴ（ｘＴ；ΘＴ）は、畳込みブロック２１８のパラメータ集合がパラメータ集合ΘＴ、ティーチャーネットワーク２１０の入力がサンプルｘＴのときの畳込みブロック２１８の出力ベクトルを表す。このベクトルは、矢印５３６で表されるように式（７）の一部を構成する。
【０１００】
一方、開発データサンプル５２０（ｘＳ）がスチューデントネットワーク２２０に入力されると、スチューデントネットワーク２２０からは出力ベクトル５２２が出力される。出力ベクトル５２２とラベルｙとの間で計算される損失関数ＬＳは、矢印５３４で示すように式（７）の一部を構成する。
【０１０１】
また、ティーチャーネットワーク２１０と同様の構成で、畳込みブロック２１８に代えて、パラメータ集合ΘＴではなくあらかじめ記憶していた初期パラメータ集合Θ０Ｔを持つ畳込みブロック５２８とすることでネットワーク５２４が得られる。ネットワーク５２４は特徴抽出部５２６を含み、特徴抽出部５２６の最上位の隠れ層は畳込みブロック５２８である。このネットワーク５２４は他の点ではティーチャーネットワーク２１０と同一である。このネットワーク５２４に発話データ２３０（ｘＴ）を入力する。そのときの畳込みブロック５２８の出力ｕＴ（ｘＴ；Θ０Ｔ）は、矢印５３８で示すように式（７）の一部を構成する。
【０１０２】
こうして得られる式（７）の損失関数が最小化するようにティーチャーネットワーク２１０のパラメータを調整する。
【０１０３】
一方、図１９を参照して、スチューデントネットワーク２２０のパラメータ調整は以下のようにして行われる。ティーチャーネットワーク２１０に発話データ２３０（ｘＴ）を与える。発話データ２３０（発話長は４秒）に対応する発話データ２３２（発話長は２秒）をスチューデントネットワーク２２０に与える。スチューデントネットワーク２２０の出力する出力ベクトル２２２とラベルｙとの間で定義される損失関数Ｌｓは、矢印５６０で示すように式（８）の一部を構成する。同じく、畳込みブロック２１８の出力ベクトルと畳込みブロック２２８の出力ベクトルとから第１の実施の形態で用いた損失関数Ｌｋｔが算出される。この損失関数Ｌｋｔも、矢印５６２により示すように式（８）の一部を構成する。
【０１０４】
式８及び式（９）において、λ、γ、及びξはハイパーパラメータであって、これらをいずれも（０、１）の範囲で様々に変化させることで、最適な組合せを実験により求める。
【０１０５】
＜動作＞
図１６を参照して、ティーチャーネットワーク２１０及びスチューデントネットワーク２２０の訓練は第１の実施の形態と同様にティーチャーネットワーク訓練部２６４、訓練データ変換部２６６及びスチューデントネットワーク訓練部２７２により行われる。これらの訓練が終了すると、ティーチャーネットワーク訓練データ記憶部２６０にはティーチャーネットワーク２１０が記憶されている。第２の言語識別モデル記憶部２７０にはスチューデントネットワーク２２０が記憶されている。
【０１０６】
この後、対話型モデル調整部４１０が開発データ記憶部４１２を用いてさらにティーチャーネットワーク２１０とスチューデントネットワーク２２０のパラメータを調整する。開発データ記憶部４１２にはあらかじめ前述した構成の訓練データが記憶されている。
【０１０７】
図１７を参照して、訓練装置４００による言語識別モデルの訓練は、コンピュータを以下のように機能させることで実現される。ステップ３２０では、ティーチャーネットワーク訓練データを用いて第１の言語識別モデルを構成するティーチャーネットワーク２１０を訓練する。ステップ４５０では、ステップ３２０により訓練されたティーチャーネットワーク２１０のパラメータセットの中で、最上位層の畳込みブロック２１８（図１８）のパラメータセットΘ０Ｔを記憶装置に保存する。さらにステップ３２２では、スチューデントネットワーク訓練データを用いてスチューデントネットワーク２２０を訓練する。ステップ４５２では、ティーチャーネットワーク２１０及びスチューデントネットワーク２２０のパラメータ調整に使用する訓練データを、ティーチャーネットワーク訓練データ、スチューデントネットワーク訓練データ、及び開発データ記憶部４１２に記憶された開発データを用いて訓練データ記憶装置４１４に準備する。
【０１０８】
ここでの訓練データは、｛ティーチャーネットワーク２１０の訓練データ、スチューデントネットワーク２２０の訓練データ、開発データ、ラベル｝の組である。これらの中で｛ティーチャーネットワーク２１０の訓練データ、スチューデントネットワーク２２０の訓練データ、ラベル｝の組がスチューデントネットワーク２２０のパラメータ調整に使用され、｛ティーチャーネットワーク２１０の訓練データ、開発データ、ラベル｝の組がスチューデントネットワーク２２０のパラメータ調整に用いられる。
【０１０９】
さらに、ステップ４５４では、訓練の予定実行数だけ外側ループ処理４５６を実行する。
【０１１０】
外側ループ処理４５６のステップ４８０では、訓練データをシャッフルする。続くステップ４８２では、このシャッフル後の訓練データを用い、全訓練データを処理するまで以下に説明する内側ループ処理４８４を実行する。
【０１１１】
内側ループ処理４８４のステップ５００では、訓練データのミニバッチセットからｍサンプルのミニバッチをサンプリングする。続くステップ５０２において、サンプリングされたミニバッチの中で｛ティーチャーネットワーク２１０の訓練データ、開発データ、ラベル｝の組を用いて式（７）に示す損失関数＾ＬＴを最小化するようにティーチャーネットワーク２１０のパラメータを調整する。さらに、続くステップ５０４において、ステップ５００でサンプリングされたミニバッチの中で｛ティーチャーネットワーク２１０の訓練データ、スチューデントネットワーク２２０の訓練データ、ラベル｝を用いて、式（８）に示す損失関数＾ＬＳを最小化するようにスチューデントネットワーク２２０のパラメータを調整する。
【０１１２】
以下、全ての訓練データを処理するまで内側ループ処理４８４が繰返され、さらに訓練の予定実行数だけ外側ループ処理４５６が繰返される。
【０１１３】
＜実験結果＞
この第２の実施の形態に係る訓練装置４００により訓練されたスチューデントネットワークの性能を確認するための実験を行った。実験の結果を、第１の実施の形態による訓練装置２５０及びそのパータ―ベーションによる結果とあわせて図２０に示す。ここで、バーターベーションとは、第１の実施の形態による訓練装置において、損失Ｌｋｔにランダムノイズを重畳させて（Ｌｋｔ＝||ＵＴ−ＵＳ＋Noise||）学習させることを意味している。実験によれば、第１の実施の形態による訓練装置の学習時にバーターベーションを行うことにより、精度が若干上がる場合があった。この実験では、図２０に示した第１の実施の形態の結果に鑑みて、λ＝０．３に設定した上で、γの値を０．１、０．２及び０．３に変化させた。「ＶａｌＩｄ．」はスチューデントネットワークによる、検証データセットに対する精度（ＵＲＥ％）を示し、「Ｔｅｓｔ」はテストデータセットに対する精度を示す。
【０１１４】
図２０を参照して、この第２の実施の形態では、γ＝０．１、０．２及び０．３におけるテストデータに対する言語識別精度は、それぞれ４．７８、５．１２、及び４．８６であった。これらはいずれも第１の実施の形態で最もよい精度（λ＝０．３のときの５．２８）を上回っている。それだけではなく、パータ―ベーションによる精度（５．１７）も上回っている。
【０１１５】
この結果、第２の実施の形態によれば、パータ―ベーションによるように偶然の結果に影響されることなく、一定の手順にしたがうことで高い識別精度を実化するようにスチューデントニューラルネットワークを訓練できることが分かる。
【０１１６】
図２１には、第２の実施の形態に係る方法で訓練したスチューデントニューラルネットワーク（ＩＴＳＬ：Ｉｎｔｅｒａｃｔｉｖｅ  Ｔｅａｃｈｅｒ−Ｓｔｕｄｅｎｔ  Ｌｅａｒｎｉｎｇ）の言語識別精度（ＵＲＥ％）を、他の方式によるものと比較して表形式で示したものである。比較対象は、ベースライン（ＤＣＮＮ）、第１の実施の形態に係るもの（ＦＲＫＤ）、及び第１の実施の形態に対するパータ―ベーションによるもの（ＦＲＫＤ−Ｐ）である。これらの実験では、いずれも発話長４秒の発話を入力とするティーチャーモデルを用いた。ＩＳＴＬではλ＝０．３、γ＝０．１、及びξ＝０．１に設定した。
【０１１７】
図２１に示すように、この第２の実施の形態に係るスチューデントモデル（ＩＴＳＬ）では、全ての発話長において他の方式によるものを上回る精度を示した。具体的には、ＩＳＴＬは、ベースモデルに対して発話長２秒、１．５秒、１．０秒についてそれぞれ３０．４％、２２．７％及び１６．０％の改善を示した。ＩＳＴＬはまた、ＦＲＫＤに対してもそれぞれ９．５％、６．１％、及び８．７の改善を示した。ＦＲＫＤ―Ｐに対しても、ＩＳＴＬはそれぞれ７．５％、４．６％、及び７．３％の改善を示した。
【０１１８】
これらの結果から、この第２の実施の形態に係るスチューデントニューラルネットワークからなる言語識別モデルは、短い発話長の入力に対しても高い精度でその言語を識別できることが分かる。これは、このモデルの畳込みブロック２２８（図１８及び図１９を参照）が、短い発話長の入力からロバストな特徴量を抽出できることを示している。したがって、言語識別だけではなく、短い発話長で何らかの判定を行う必要があるタスク、例えば話者認証にも適用できる可能性があることを示す。
【０１１９】
［コンピュータによる実現］
この発明の実施の形態に係る訓練装置２５０及び４００並びにそれらによる言語識別モデルの訓練方法は、コンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとにより実現できる。図２２はこのコンピュータシステム６３０の外観を示し、図２３はコンピュータシステム６３０の内部構成を示す。
【０１２０】
図２２を参照して、このコンピュータシステム６３０は、メモリポート６５２及びＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）ドライブ６５０を有するコンピュータ６４０と、キーボード６４６と、マウス６４８と、モニタ６４２とを含む。
【０１２１】
図２３を参照して、コンピュータ６４０は、メモリポート６５２及びＤＶＤドライブ６５０に加えて、ＣＰＵ（中央処理装置）６５６及びＧＰＧＰＵ（汎用画像処理装置）６５７を含む。コンピュータ６４０はさらに、ＣＰＵ６５６、ＧＰＧＰＵ６５７、メモリポート６５２及びＤＶＤドライブ６５０に接続されたバス６６６と、ブートプログラム等を記憶する読出専用メモリ（ＲＯＭ）６５８と、バス６６６に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するランダムアクセスメモリ（ＲＡＭ）６６０と、ハードディスク６５４を含む。コンピュータシステム６３０はさらに、他端末との通信を可能とするネットワーク６６８への接続を提供するネットワークインターフェイス（Ｉ／Ｆ）６４４と、発話信号を音声信号として入出力する機能を持つ音声Ｉ／Ｆ６７０とを含む。
【０１２２】
コンピュータシステム６３０を上記した実施の形態に係る訓練装置２５０又は４００の各機能部として、言語識別モデルの訓練方法の各ステップを実行するよう機能させるためのコンピュータプログラムは、ＤＶＤドライブ６５０又はメモリポート６５２に装着されるＤＶＤ６６２又はリムーバブルメモリ６６４に記憶され、さらにハードディスク６５４に転送される。又は、プログラムはネットワーク６６８を通じてコンピュータ６４０に送信されハードディスク６５４に記憶されてもよい。また、キーボード６４６、マウス６４８、及びモニタ６４２とエディタプログラム等を用いてソースプログラムを作成し、コンパイラによりコンパイルしてオブジェクトプログラムをハードディスク６５４に格納するようにしてもよい。プログラムは実行の際にＲＡＭ６６０にロードされる。ＤＶＤ６６２から、リムーバブルメモリ６６４から又はネットワーク６６８を介して、直接にＲＡＭ６６０にプログラムをロードしてもよい。
【０１２３】
このプログラムは、コンピュータ６４０を、上記実施の形態に係る訓練装置２５０又は４００として、言語識別モデルの訓練方法の各ステップを実行するよう機能させるための命令列を含む。ティーチャーネットワーク２１０、スチューデントネットワーク２２０の訓練において実行される大量の数値演算処理は、ＣＰＵ６５６及びＧＰＧＰＵ６５７を用いて行う（ＣＰＵ６５６のみを用いてもよいがＧＰＧＰＵ６５７を用いる方が高速である。）。コンピュータ６４０にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ６４０上で動作するオペレーティングシステム若しくはサードパーティのプログラム、又は、コンピュータ６４０にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体は、この実施の形態のシステム、装置及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の内、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記した訓練装置２５０として、言語識別モデルの訓練方法の各ステップを実行する機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
【０１２４】
なお、上記実施の形態では、図１０に示すように、ミニバッチ処理の際に同時にティーチャーネットワーク２１０による値ｕＴ（ｘＴ；ΘＴ）を算出している。しかしこの発明はそのような実施の形態には限定されない。この値はスチューデントネットワーク２２０の訓練処理とは独立計算できる。したがってスチューデントネットワーク２２０の訓練に先立ち、各サンプルを用いて予め算出しておいてもよい。この場合、この値を記憶装置に記憶しておくことが必要になる。
【０１２５】
今回開示された実施の形態は単に例示であって、この発明が上記した実施の形態のみに制限されるわけではない。この発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【０１２６】
４０、１００  システム
５０、１１０、２１０  ティーチャーネットワーク
５２、６２  除算
５４、６４、６８  ソフトマックス層
５６  ソフトラベル
６０、１２０、２２０  スチューデントネットワーク
６６  第１の損失関数
７０  第２の損失関数
７２  ハードラベル
７４  合計損失
１１２  ＷＨｉｎｔ層
１１４  転送元の隠れ層
１２２  ＷＧｕｉｄｅｄ層
１２４  転送先の隠れ層
１２６  リグレッサ
２００  訓練方法
２１２、２２２、５２２  出力ベクトル
２１４、２２４、５２６  特徴抽出部
２１６、２２６  全結合層ネットワーク
２１８、２２８、５２８  畳込みブロック
２３０、２３２  発話データサンプル
２５０、４００  訓練装置
２６０  ティーチャーネットワーク訓練データ記憶部
２６２  第１の言語識別モデル記憶部
２６４  ティーチャーネットワーク訓練部
２６６  訓練データ変換部
２６８  スチューデントネットワーク訓練データ記憶部
２７０  第２の言語識別モデル記憶部
２７２  スチューデントネットワーク訓練部
２８０  ティーチャーネットワークプログラム記憶部
２８２  ティーチャーネットワークパラメータ記憶部
２９０  スチューデントネットワークプログラム記憶部
２９２  スチューデントネットワークパラメータ記憶部
３３６、３３８、３６６  訓練処理
【図１】
2020038343.tif 000014
【図２】
2020038343.tif 000015
【図３】
2020038343.tif 000016
【図４】
2020038343.tif 000017
【図５】
2020038343.tif 000018
【図６】
2020038343.tif 000019
【図７】
2020038343.tif 000020
【図８】
2020038343.tif 000021
【図９】
2020038343.tif 000022
【図１０】
2020038343.tif 000023
【図１１】
2020038343.tif 000024
【図１２】
2020038343.tif 000025
【図１３】
2020038343.tif 000026
【図１４】
2020038343.tif 000027
【図１５】
2020038343.tif 000028
【図１６】
2020038343.tif 000029
【図１７】
2020038343.tif 000030
【図１８】
2020038343.tif 000031
【図１９】
2020038343.tif 000032
【図２０】
2020038343.tif 000033
【図２１】
2020038343.tif 000034
【図２２】
2020038343.tif 000035
【図２３】
2020038343.tif 000036