(57)【要約】【課題】ｃＧＡＮネットワークをベースとしつつ、予めクラスラベルが付与された訓練データを用いて学習される、ニューラルネットワークを用いた分類器を提供する。【解決手段】分類器は、予め定められた変換関数を用いて入力データに含まれる特徴量を示す第１のサンプルを生成する変換手段と、入力データに関連付けられた条件情報およびノイズの入力を受けて、第２のサンプルを生成する生成ネットワークと、第１のサンプルからなる入力または第１のサンプルと第２のサンプルとの結合からなる入力を受けて、入力されるサンプルの種別、および、入力データが属するクラスを出力する識別ネットワークと、予めクラスラベルが付与された訓練データを入力データとして、変換手段により第１の訓練サンプルを生成するとともに、生成ネットワークにより第２の訓練サンプルを生成する訓練サンプル生成手段とを含む。【選択図】図２
2019028839.tif 000002
【特許請求の範囲】
【請求項１】
入力データがいずれのクラスに属するのかを出力する分類器であって、
予め定められた変換関数を用いて前記入力データに含まれる特徴量を示す第１のサンプルを生成する変換手段と、
前記入力データに関連付けられた条件情報およびノイズの入力を受けて、第２のサンプルを生成する生成ネットワークと、
前記第１のサンプルからなる入力または前記第１のサンプルと前記第２のサンプルとの結合からなる入力を受けて、入力されるサンプルの種別、および、前記入力データが属するクラスを出力する識別ネットワークと、
予めクラスラベルが付与された訓練データを前記入力データとして、前記変換手段により第１の訓練サンプルを生成するとともに、前記生成ネットワークにより第２の訓練サンプルを生成する訓練サンプル生成手段と、
前記第１の訓練サンプルからなる入力および前記第１の訓練サンプルと前記第２の訓練サンプルとの結合からなる入力を前記識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、前記識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように、前記識別ネットワークのパラメータを更新する第１の更新手段とを備える、分類器。
【請求項２】
前記第１の訓練サンプルからなる入力および前記第１の訓練サンプルと前記第２の訓練サンプルとの結合からなる入力を前記識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに一致するように、前記生成ネットワークのパラメータを更新する第２の更新手段をさらに備える、請求項１に記載の分類器。
【請求項３】
前記第１の更新手段は、前記第１の訓練サンプルからなる入力および前記第１の訓練サンプルと前記第２の訓練サンプルとの結合からなる入力を前記識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別を互いに識別できる確率と、前記識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルとが一致する確率とを要素として含む目的関数に基づいて、前記識別ネットワークのパラメータを更新する、請求項１または２に記載の分類器。
【請求項４】
入力データがいずれのクラスに属するのかを出力する分類器であって、
予め定められた変換関数を用いて前記入力データに含まれる特徴量を示す第１のサンプルを生成する変換手段と、
前記入力データに関連付けられた条件情報およびノイズの入力を受けて、第２のサンプルを生成する生成ネットワークと、
前記第１のサンプルからなる入力または前記第１のサンプルと前記第２のサンプルとの結合からなる入力を受けて、入力されるサンプルの種別、および、前記入力データが属するクラスを出力する識別ネットワークと、
任意の入力データから前記変換手段により前記第１のサンプルを生成するとともに、前記生成ネットワークにより前記第２のサンプルを生成し、前記第１のサンプルと前記第２のサンプルとの結合からなる入力を前記識別ネットワークに与えたときに出力されるクラスを前記任意の入力データが属するクラスを出力する分類手段とを備え、
前記識別ネットワークのパラメータは、前記変換手段により訓練データから生成された第１の訓練サンプルからなる入力および前記第１の訓練サンプルと前記生成ネットワークにより生成された第２の訓練サンプルとの結合からなる入力を前記識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、前記識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように決定されている、分類器。
【請求項５】
入力データがいずれのクラスに属するのかを出力する分類器の学習方法であって、
予め定められた変換関数を用いて前記入力データに含まれる特徴量を示す第１のサンプルを生成するステップと、
前記入力データに関連付けられた条件情報およびノイズの入力を受けて、同次元の第２のサンプルを生成する生成ネットワークを学習するステップと、
前記第１のサンプルからなる入力または前記第１のサンプルと前記第２のサンプルとの結合からなる入力を受けて、入力されるサンプルの種別、および、前記入力データが属するクラスを出力する識別ネットワークを学習するステップと、
予めクラスラベルが付与された訓練データから前記変換関数を用いた第１の訓練サンプルを生成するとともに、前記訓練データを前記生成ネットワークに入力して第２の訓練サンプルを生成するステップとを備え、
前記識別ネットワークを学習するステップは、前記第１の訓練サンプルからなる入力および前記第１の訓練サンプルと前記第２の訓練サンプルとの結合からなる入力を前記識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、前記識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように、前記識別ネットワークのパラメータを更新するステップを備える、分類器の学習方法。
【請求項６】
入力データがいずれのクラスに属するのかを出力する分類器における分類方法であって、
任意の入力データから予め定められた変換関数を用いて当該前記入力データに含まれる特徴量を示す第１のサンプルを生成するステップを備え、前記分類器は、
前記入力データに関連付けられた条件情報およびノイズの入力を受けて、第２のサンプルを生成する生成ネットワークと、
前記第１のサンプルからなる入力または前記第１のサンプルと前記第２のサンプルとの結合からなる入力を受けて、入力されるサンプルの種別、および、前記入力データが属するクラスを出力する識別ネットワークとを備え、前記分類方法は、
前記任意の入力データから前記生成ネットワークを用いて前記第２のサンプルを生成するステップと、
前記第１のサンプルと前記第２のサンプルとの結合からなる入力を前記識別ネットワークに与えたときに出力されるクラスとして前記任意の入力データが属するクラスを出力するステップとを備え、
前記識別ネットワークのパラメータは、前記変換関数により訓練データから生成された第１の訓練サンプルからなる入力および前記第１の訓練サンプルと前記生成ネットワークにより生成された第２の訓練サンプルとの結合からなる入力を前記識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、前記識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように決定されている、分類器における分類方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、ニューラルネットワークを用いた分類器に関する。
【背景技術】
【０００２】
ディープニューラルネットワーク（deep neural network；以下「ＤＮＮ」とも略称する。）は、様々なタスク（例えば、画像処理、音声認識、話者認識、言語認識など）に対して、顕著な特徴学習性能および分類性能を示すことが知られている。ＤＮＮが高い性能を発揮するためには、多くのラベル付き訓練データが必要である。例えば、音声認識に応用する場合には、数１００から数１０００時間分のラベル付き訓練データが必要になる場合もある。
【０００３】
一方、ＤＮＮをモデル化するのに用いる訓練データが少ないと、過学習（overfitting）の状態に陥りやすい。過学習は、訓練データに対しては学習されているが、未知のデータに対しては十分に汎化できていない状態を意味する。このような過学習の状態において、テストデータに対する性能は低いものとなる。
【０００４】
モデルの汎化性能が低くなる主な原因は、訓練データの分布とテストデータの分布との間のずれである。汎化性能を改善するという課題に対する解決手段の一例として、"adversarial training"が提案されている（例えば、非特許文献１などを参照）。このような"adversarial training"の一例として、ＧＡＮ（generative adversarial nets）と称されるモデルが知られている（例えば、非特許文献２などを参照）。ＧＡＮの持つ高いイメージ生成能力が注目されている。ＧＡＮにおいては、ゲーム理論に由来する二人ゼロサムゲームを用いて、サンプルを生成する生成モデルが学習される。
【０００５】
ＧＡＮは、２つのネットワークで構成される。一方のネットワークは、イメージが真（real）であるか偽（fake）であるかを分類する識別器（discriminator）であり、他方のネットワークは、識別器を「欺く」イメージを生成する生成器（generator）である。
【０００６】
このようなＧＡＮの一例として、生成器（生成ネットワーク）に対して、データ生成プロセスを指示するための条件情報（conditional information）を用いる、条件付ＧＡＮ（conditional GAN；以下「ｃＧＡＮ」とも略称する。）が提案されている。ｃＧＡＮは、条件情報として、離散的ラベル、テキスト、イメージを用いて、イメージ生成およびイメージ−イメージ変換といったイメージに関するタスクをうまく処理できることが報告されている（例えば、非特許文献３などを参照）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Christian Szegedy et. al, "Intriguing properties of neural networks", arXiv:1312.6199, Dec. 2013
【非特許文献２】T. Salimans, I. Goodfellow, W. Zaremba, V. Cheung, A. Radford, X. Chen, "Improved Techniques for Training GANs", arXiv:1606.03498, 2016
【非特許文献３】M. Mirza and S. Osindero, "Conditional Generative Adversarial Nets", arXiv:1411.1784, Nov. 2014
【非特許文献４】I. Goodfellow, "NIPS 2016 Tutorial: Generative Adversarial Networks", arXiv:1701.00160, 2017
【非特許文献５】T. Salimans, I. Goodfellow, W. Zaremba, V. Cheung, A. Radford, X.Chen, "Improved Techniques for Training GANs", arXiv:1606.03498, 2016
【発明の概要】
【発明が解決しようとする課題】
【０００８】
例えば、分類タスクにおいて、ＧＡＮにより生成されるサンプルは、ＤＮＮの過学習の問題を解消するために用いられる。従来、生成されるサンプルは、分類モデルの汎化性能を改善するために、それ単独で、あるいは、オリジナルサンプルに追加される形で分類器の学習に用いられてきた。しかしながら、生成されるサンプルを定量的に評価すべき方法が明らかではないため、生成されるサンプルのうちから、分類モデルの汎化性能を改善できるサンプルを効率的に選択することは容易ではない（例えば、非特許文献４などを参照）。
【０００９】
別のアプローチとして、準教師ありＧＡＮ（semi-supervised GAN）が提案されている。準教師ありＧＡＮでは、識別ネットワークからクラスラベルを出力するとともに、生成されたサンプルに対応する付加クラスを付加することで、ラベルなしサンプルを用いてモデルの生成を改善する（例えば、非特許文献５などを参照）。この準教師ありＧＡＮでは、分類モデルの汎化性能を改善するために、多くのラベルなしサンプルが必要であるという課題がある。
【００１０】
本技術は、ｃＧＡＮネットワークをベースとしつつ、予めクラスラベルが付与された訓練データを用いて学習される、ニューラルネットワークを用いた分類器を提供することを目的としている。
【課題を解決するための手段】
【００１１】
本発明のある局面に従えば、入力データがいずれのクラスに属するのかを出力する分類器が提供される。分類器は、予め定められた変換関数を用いて入力データに含まれる特徴量を示す第１のサンプルを生成する変換手段と、入力データに関連付けられた条件情報およびノイズの入力を受けて、第２のサンプルを生成する生成ネットワークと、第１のサンプルからなる入力または第１のサンプルと第２のサンプルとの結合からなる入力を受けて、入力されるサンプルの種別、および、入力データが属するクラスを出力する識別ネットワークと、予めクラスラベルが付与された訓練データを入力データとして、変換手段により第１の訓練サンプルを生成するとともに、生成ネットワークにより第２の訓練サンプルを生成する訓練サンプル生成手段と、第１の訓練サンプルからなる入力および第１の訓練サンプルと第２の訓練サンプルとの結合からなる入力を識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように、識別ネットワークのパラメータを更新する第１の更新手段とを含む。
【００１２】
好ましくは、分類器は、第１の訓練サンプルからなる入力および第１の訓練サンプルと第２の訓練サンプルとの結合からなる入力を識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに一致するように、生成ネットワークのパラメータを更新する第２の更新手段をさらに含む。
【００１３】
好ましくは、第１の更新手段は、第１の訓練サンプルからなる入力および第１の訓練サンプルと第２の訓練サンプルとの結合からなる入力を識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別を互いに識別できる確率と、識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルとが一致する確率とを要素として含む目的関数に基づいて、識別ネットワークのパラメータを更新する。
【００１４】
好ましくは、第１の更新手段および第２の更新手段は、予め定められた条件が成立するまで、交互に更新処理を実行する。
【００１５】
好ましくは、分類器は、任意の入力データから変換手段により第１のサンプルを生成するとともに、生成ネットワークにより第２のサンプルを生成し、第１のサンプルと第２のサンプルとの結合からなる入力を識別ネットワークに与えたときに出力されるクラスを任意の入力データが属するクラスを出力する分類手段をさらに含む。
【００１６】
本発明の別の局面に従えば、入力データがいずれのクラスに属するのかを出力する分類器が提供される。分類器は、予め定められた変換関数を用いて入力データに含まれる特徴量を示す第１のサンプルを生成する変換手段と、入力データに関連付けられた条件情報およびノイズの入力を受けて、第２のサンプルを生成する生成ネットワークと、第１のサンプルからなる入力または第１のサンプルと第２のサンプルとの結合からなる入力を受けて、入力されるサンプルの種別、および、入力データが属するクラスを出力する識別ネットワークと、任意の入力データから変換手段により第１のサンプルを生成するとともに、生成ネットワークにより第２のサンプルを生成し、第１のサンプルと第２のサンプルとの結合からなる入力を識別ネットワークに与えたときに出力されるクラスを任意の入力データが属するクラスを出力する分類手段とを含む。識別ネットワークのパラメータは、変換手段により訓練データから生成された第１の訓練サンプルからなる入力および第１の訓練サンプルと生成ネットワークにより生成された第２の訓練サンプルとの結合からなる入力を識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように決定されている。
【００１７】
本発明のさらに別の局面に従えば、入力データがいずれのクラスに属するのかを出力する分類器の学習方法が提供される。分類器の学習方法は、予め定められた変換関数を用いて入力データに含まれる特徴量を示す第１のサンプルを生成するステップと、入力データに関連付けられた条件情報およびノイズの入力を受けて、第２のサンプルを生成する生成ネットワークを学習するステップと、第１のサンプルからなる入力または第１のサンプルと第２のサンプルとの結合からなる入力を受けて、入力されるサンプルの種別、および、入力データが属するクラスを出力する識別ネットワークを学習するステップと、予めクラスラベルが付与された訓練データから変換関数を用いた第１の訓練サンプルを生成するとともに、訓練データを生成ネットワークに入力して第２の訓練サンプルを生成するステップとを含む。識別ネットワークを学習するステップは、第１の訓練サンプルからなる入力および第１の訓練サンプルと第２の訓練サンプルとの結合からなる入力を識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように、識別ネットワークのパラメータを更新するステップを含む。
【００１８】
本発明のさらに別の局面に従えば、入力データがいずれのクラスに属するのかを出力する分類器における分類方法が提供される。分類器における分類方法は、任意の入力データから予め定められた変換関数を用いて当該入力データに含まれる特徴量を示す第１のサンプルを生成するステップを含む。分類器は、入力データに関連付けられた条件情報およびノイズの入力を受けて、第２のサンプルを生成する生成ネットワークと、第１のサンプルからなる入力または第１のサンプルと第２のサンプルとの結合からなる入力を受けて、入力されるサンプルの種別、および、入力データが属するクラスを出力する識別ネットワークとを含む。分類方法は、さらに、任意の入力データから生成ネットワークを用いて第２のサンプルを生成するステップと、第１のサンプルと第２のサンプルとの結合からなる入力を識別ネットワークに与えたときに出力されるクラスとして任意の入力データが属するクラスを出力するステップとを含む。識別ネットワークのパラメータは、変換関数により訓練データから生成された第１の訓練サンプルからなる入力および第１の訓練サンプルと生成ネットワークにより生成された第２の訓練サンプルとの結合からなる入力を識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、識別ネットワークから出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように決定されている。
【発明の効果】
【００１９】
本発明によれば、ｃＧＡＮネットワークをベースとした、予めクラスラベルが付与された訓練データを用いて学習される、ニューラルネットワークを用いた分類器を提供できる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態に従う分類器を用いた言語自動選択システムの構成を示す模式図である。
【図２】本実施の形態に従う分類器の機能構成を示す模式図である。
【図３】本実施の形態に従う分類器を実現するためのハードウェア構成の一例を示す模式図である。
【図４】本実施の形態に従う分類器に対する学習フェーズの処理手順を示すフローチャートである。
【図５】本実施の形態に従う分類器を用いた運用フェーズの処理手順を示すフローチャートである。
【図６】本実施の形態に従う分類器の運用形態の一例を示す模式図である。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２２】
［Ａ．応用例］
まず、本実施の形態に従う分類器の応用例について説明する。本実施の形態に従う分類器は、入力データがいずれのクラスに属するのかを出力する。このような分類器は、例えば、話者がいずれの言語を話しているのかを特定する言語自動選択システムに応用できる。
【００２３】
図１は、本実施の形態に従う分類器を用いた言語自動選択システム１の構成を示す模式図である。図１を参照して、言語自動選択システム１は、複数の言語システム６と、いずれか１つの言語システム６を選択するための選択器４とを含む。
【００２４】
言語システム６は、例えば、特定の言語を処理するシステムを包含するものであり、例えば、音声翻訳システムや音声応答システムなどが想定される。選択器４は、分類器１０からの指令に従って、音声入力２をいずれか１つの言語システム６に接続する。
【００２５】
分類器１０は、予め用意される言語システム６で利用可能なそれぞれの言語の音声データを訓練データとして用いた学習により構築される。分類器１０は、音声入力２が入力されると、後述するようなネットワークを用いて、入力された音声入力２がいずれかの言語であるかを決定し、その決定結果に基づいて、選択指令を選択器４へ出力する。
【００２６】
このような言語自動選択システム１によれば、話者がいずれかの言語で話し始めると、その言語に対応する言語システム６が自動的に選択されるようになる。
【００２７】
上述の応用例はあくまでも一例であり、本実施の形態に従う分類器は、様々なタスクに対する適用が可能である。他の応用例としては、例えば、誰が話しているのかを特定する話者認識システムなどが挙げられる。
【００２８】
［Ｂ．ネットワーク（ｃＧＡＮ分類器）］
本実施の形態に従う分類器は、教師ありｃＧＡＮベースのフレームワークを有している。図２は、本実施の形態に従う分類器１０の機能構成を示す模式図である。図２を参照して、分類器１０は、生成ネットワーク２２と、識別ネットワーク２４とを含む。生成ネットワーク２２および識別ネットワーク２４としては、任意のニューラルネットワークを採用することができ、その層数などについても任意に設計できる。例えば、多層パーセプトロンまたはＣＮＮ（Convolutional Neural Network）を採用することができる。
【００２９】
分類器１０は、後述するような訓練データを用いた学習により構築される。そのため、分類器１０は、学習フェーズおよび運用フェーズが存在する。生成ネットワーク２２および識別ネットワーク２４は、学習フェーズおよび運用フェーズのいずれにおいても利用される。但し、識別ネットワーク２４は、学習フェーズにおいて識別器（discriminator）として機能し、運用フェーズにおいて分類器（classifier）として機能することになる。
【００３０】
分類器１０においては、生成ネットワーク２２および識別ネットワーク２４を連係させて学習することで、少ない訓練データで分類性能を高めることができる。
【００３１】
学習フェーズおよび運用フェーズのいずれにおいても、生成ネットワーク２２には、条件情報（conditional information）２６およびノイズ２８が入力される。生成ネットワーク２２に入力される条件情報２６およびノイズ２８をそれぞれ「ｃ（ｘｒｅａｌ）」および「ｚ（ｎｏｉｓｅ）」とも記す。
【００３２】
本実施の形態に従う分類器１０においては、条件情報２６として、実データあるいは実データから生成される情報（例えば、特徴量）を用いる。例えば、図１に示す言語自動選択システム１などにおいては、実データとしては、所定時間（例えば、１０秒）にわたる音声データの時間波形などが用いられる。但し、実データとしては、分類器の応用先に応じて任意の長さおよび形態の情報を用いてもよい。
【００３３】
条件情報２６（ｃ（ｘｒｅａｌ））およびノイズ２８（ｚ（ｎｏｉｓｅ））は、複数次元を有しているベクトルであることが好ましい。例えば、ｃ（ｘｒｅａｌ）として、４００次元を有するベクトルを用いるとともに、ｚ（ｎｏｉｓｅ）として、１００次元を有するベクトルを用いてもよい。ノイズ２８は、例えば、ガウシアンノイズソースから発生するベクトルであってもよいし、それ以外の任意のノイズソースから発生するベクトルであってもよい。なお、各入力の次元数についても、任意の設定が可能である。
【００３４】
生成ネットワーク２２は、条件情報２６およびノイズ２８からサンプルを生成する。この生成されるサンプルを「生成サンプル３０」とも称する。また、生成サンプル３０を「ｘｆａｋｅ」とも記す。
【００３５】
このように、生成ネットワーク２２は、ベクトルであるｃ（ｘｒｅａｌ）およびｚ（ｎｏｉｓｅ）からベクトルであるｘｆａｋｅを生成する。例えば、ｘｆａｋｅとして、４９次元を有するベクトルを用いるようにしてもよい。
【００３６】
識別ネットワーク２４には、生成ネットワーク２２から出力される生成サンプル３０と、実データから生成される実サンプル３２とが選択的に入力される。実サンプル３２を「ｘＤｒｅａｌ」とも記す。実サンプル３２（ｘＤｒｅａｌ）は、生成サンプル３０（ｘｆａｋｅ）と同じ次元数を有するベクトルが用いられる。
【００３７】
上述の例においては、生成サンプル３０（ｘｆａｋｅ）および実サンプル３２（ｘＤｒｅａｌ）は、いずれも４９次元のベクトルが用いられる。すなわち、生成ネットワーク２２は、入力データに関連付けられた条件情報およびノイズの入力を受けて、実サンプル３２（ｘＤｒｅａｌ）と同次元の生成サンプル３０（ｘｆａｋｅ）を生成する。
【００３８】
識別ネットワーク２４は、入力されたサンプルが生成サンプル３０および実サンプル３２のいずれかであるかを示す識別出力３４、および、入力されたサンプルがいずれかのクラスに属するのかを示すクラスフラグ３６を出力する。識別出力３４を「Ｒｅａｌ／Ｆａｋｅ」とも記し、クラスフラグ３６を「ｋ１，ｋ２，…」とも記す。
【００３９】
このように、識別ネットワーク２４は、実サンプル３２（ｘＤｒｅａｌ）からなる入力または実サンプル３２（ｘＤｒｅａｌ）と生成サンプル３０（ｘｆａｋｅ）との結合からなる入力を受けて、入力されるサンプルの種別（識別出力３４）、および、入力データが属するクラス（クラスフラグ３６）を出力する。
【００４０】
識別ネットワーク２４から出力される識別出力３４は、生成ネットワーク２２の最適化の指標として用いられる。すなわち、生成ネットワーク２２は、生成サンプル３０を識別ネットワーク２４に入力したときに、識別ネットワーク２４が入力された生成サンプル３０を「実サンプル」と間違える確率を最小とすることを目的関数として学習を行なう。
【００４１】
また、実データに対応するラベルが事前情報として与えられており、識別ネットワーク２４は、出力されるクラスフラグ３６の値と事前情報のラベルとが一致する確率を最大とすることを目的関数として学習を行なう。このとき、識別ネットワーク２４には、同一のラベルが付与された生成サンプル３０および実サンプル３２が入力されることになる。
【００４２】
このように、本実施の形態に従う分類器１０においては、生成ネットワーク２２は、識別ネットワーク２４を可能な限り欺ける生成サンプル３０を生成できることを目的として学習される。識別ネットワーク２４は、生成ネットワーク２２からの生成サンプル３０と実サンプル３２とを可能な限り間違えずに識別するとともに、生成サンプル３０および実サンプル３２を可能な限り間違えずに分類（クラス分け）できることを目的として学習される。
【００４３】
ここで、識別出力３４（Ｒｅａｌ／Ｆａｋｅ）についての目的関数をＶＤとし、Ｋ−クラスの目的関数をＶＣとすると、ネットワークの最適化は、以下のような（１）式および（２）式でそれぞれ表わすことができる。
【００４４】
【数１】
2019028839.tif 000003
【００４５】
式中のＤ（ｘ）は、任意のサンプルｘが、生成サンプル３０（ｘｆａｋｅ）ではなく、実サンプル３２（ｘＤｒｅａｌ）からのものである確率を示す。Ｄ（ｋ｜ｘ）は、任意のサンプルｘが、任意のクラスｋに属する確率を示す。
【００４６】
実サンプル３２（ｘＤｒｅａｌ）および生成サンプル３０（ｘｆａｋｅ）は、以下の（３）式および（４）式のように定義できる。
【００４７】
【数２】
2019028839.tif 000004
【００４８】
式中のＤＴは判別用の変換関数であり、Ｇ（ｚ，ｃ）は生成ネットワーク２２の出力である。このように、予め定められた変換関数ＤＴを用いて入力データに含まれる特徴量を示す実サンプル３２（ｘＤｒｅａｌ）が生成される。
【００４９】
本実施の形態に従うｃＧＡＮベースの分類器１０の目的関数Ｖは、以下の（５）式のように定義できる。
【００５０】
【数３】
2019028839.tif 000005
【００５１】
式中のαは、（１）式および（２）式に示す目的関数の間のトレードオフ係数を示す。
上述の（５）式に示される目的関数は、第１の訓練サンプル（実サンプル３２：ｘＤｒｅａｌ）からなる入力および第１の訓練サンプルと第２の訓練サンプル（生成サンプル３０：ｘｆａｋｅ）との結合からなる入力を識別ネットワーク２４にそれぞれ与えたときに出力されるサンプルの種別を互いに識別できる確率を示す目的関数ＶＤと、識別ネットワーク２４から出力されるクラスが対応する訓練データに付与されたクラスラベルとが一致する確率を示す目的関数ＶＣとの結合になっている。
【００５２】
目的関数ＶＤおよびＶＣを最適化するために、識別ネットワーク２４の内部パラメータは２つの目的関数の間で共有される。
【００５３】
（１）式および（２）式に示すように、最適化処理においては、識別ネットワーク２４および生成ネットワーク２２がそれぞれ最適化される。まず、目的関数ＶＤおよびＶＣの値を最大化するように、識別ネットワーク２４を最適化する。
【００５４】
より具体的には、学習フェーズにおいては、予めクラスラベルが付与された訓練データを入力データとして、変換関数ＤＴにより第１の訓練サンプルを生成するとともに、生成ネットワーク２２により第２の訓練サンプルが生成される。そして、第１の訓練サンプルからなる入力および第１の訓練サンプルと第２の訓練サンプルとの結合からなる入力を識別ネットワーク２４にそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、識別ネットワーク２４から出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように、識別ネットワーク２４のパラメータが更新される。
【００５５】
続いて、ｌｏｇ（１―Ｄ（Ｇ（ｚ，ｃ）））を最小化するとともに、ｌｏｇ（Ｄ（ｋ｜Ｇ（ｚ，ｃ））を最大化するように、生成ネットワーク２２を最適化する。
【００５６】
より具体的には、学習フェーズにおいては、第１の訓練サンプルからなる入力および第１の訓練サンプルと第２の訓練サンプルとの結合からなる入力を識別ネットワークにそれぞれ与えたときに出力されるサンプルの種別が互いに一致するように、生成ネットワークのパラメータが更新される。
【００５７】
識別ネットワーク２４のパラメータの更新処理および生成ネットワーク２２のパラメータの更新処理は、予め定められた条件が成立するまで交互に実行される。
【００５８】
以上のような手順によって、分類器１０を構成する２つのネットワークが構築される。
［Ｃ．分類器１０を実現するハードウェア構成］
次に、分類器１０を実現するハードウェア構成の一例について説明する。図３は、本実施の形態に従う分類器１０を実現するためのハードウェア構成の一例を示す模式図である。分類器１０は、典型的には、汎用コンピュータを用いて実現される。
【００５９】
図３を参照して、コンピュータ２０は、主要なハードウェアコンポーネントとして、プロセッサ１００と、主メモリ１０２と、ディスプレイ１０４と、入力デバイス１０６と、ネットワークインターフェイス（Ｉ／Ｆ：interface）１０８と、光学ドライブ１３４と、二次記憶装置１１２とを含む。これらのコンポーネントは、内部バス１１０を介して互いに接続される。
【００６０】
プロセッサ１００は、後述するような各種プログラムを実行することで、本実施の形態に従う分類器１０の実現に必要な処理を実行する演算主体であり、例えば、１または複数のＣＰＵ（central processing unit）やＧＰＵ（graphics processing unit）などで構成される。複数のコアを有するようなＣＰＵまたはＧＰＵを用いてもよい。
【００６１】
主メモリ１０２は、プロセッサ１００がプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する記憶領域であり、例えば、ＤＲＡＭ（dynamic random access memory）やＳＲＡＭ（static random access memory）などの揮発性メモリデバイスなどで構成される。
【００６２】
ディスプレイ１０４は、処理に係るユーザインターフェイスや処理結果などを出力する表示部であり、例えば、ＬＣＤ（liquid crystal display）や有機ＥＬ（electroluminescence）ディスプレイなどで構成される。
【００６３】
入力デバイス１０６は、ユーザからの指示や操作などを受付けるデバイスであり、例えば、キーボード、マウス、タッチパネル、ペンなどで構成される。また、入力デバイス１０６としては、機械学習に必要な音声を収集するためのマイクロフォンを含んでいてもよいし、機械学習に必要な音声を収集した集音デバイスと接続するためのインターフェイスを含んでいてもよい。
【００６４】
ネットワークインターフェイス１０８は、インターネット上またはイントラネット上の任意の情報処理装置などとの間でデータを遣り取りする。ネットワークインターフェイス１０８としては、例えば、イーサネット（登録商標）、無線ＬＡＮ（local area network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの任意の通信方式を採用できる。
【００６５】
光学ドライブ１３４は、ＣＤ−ＲＯＭ（compact disc read only memory）、ＤＶＤ（digital versatile disc）などの光学ディスク１３６に格納されている情報を読出して、内部バス１１０を介して他のコンポーネントへ出力する。光学ディスク１３６は、非一過的（non-transitory）な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ１３４が光学ディスク１３６からプログラムを読み出して、二次記憶装置１１２などにインストールすることで、コンピュータ２０により分類器１０の機能を提供できるようになる。したがって、本発明の主題は、二次記憶装置１１２などにインストールされたプログラム自体、または、本実施の形態に従う機能や処理を実現するためのプログラムを格納した光学ディスク１３６などの記録媒体でもあり得る。
【００６６】
図３には、非一過的な記録媒体の一例として、光学ディスク１３６などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、ＭＯ（magneto-optical disk）などの光磁気記録媒体を用いてもよい。
【００６７】
二次記憶装置１１２は、プロセッサ１００にて実行されるプログラム、後述するようなネットワークを構築するための訓練データ、および、ネットワークを規定するパラメータなどを格納するコンポーネントであり、例えば、ハードディスク、ＳＳＤ（solid state drive）などの不揮発性記憶装置で構成される。
【００６８】
より具体的には、二次記憶装置１１２は、典型的には、図示しないＯＳ（operating system）の他、分類器１０を構築するための学習プログラム１１４と、分類器１０として機能するための分類プログラム１１６と、分類器１０を構成するネットワークを規定するネットワークパラメータ１１８と、ネットワークを構築するための訓練データ１２０とを格納している。
【００６９】
これらのプログラムをプロセッサ１００で実行する際に必要となるライブラリや機能モジュールの一部を、ＯＳが標準で提供するライブラリまたは機能モジュールを用いて代替するようにしてもよい。この場合には、各プログラム単体では、対応する機能を実現するために必要なプログラムモジュールのすべてを含むものにはならないが、ＯＳの実行環境下にインストールされることで、必要な機能を実現できる。このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
【００７０】
また、これらのプログラムは、上述したようないずれかの記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
【００７１】
図３には、単一のコンピュータ２０が分類器１０を構成する例を示すが、これに限らず、コンピュータネットワークを介して接続された複数のコンピュータが明示的または黙示的に連携して、分類器１０および分類器１０を含む言語自動選択システム１を実現するようにしてもよい。
【００７２】
コンピュータ２０（プロセッサ１００）がプログラムを実行することで実現される機能の全部または一部を、集積回路などのハードワイヤード回路（hard-wired circuit）を用いて実現してもよい。例えば、ＡＳＩＣ（application specific integrated circuit）やＦＰＧＡ（field-programmable gate array）などを用いて実現してもよい。
【００７３】
当業者であれば、本発明が実施される時代に応じた技術を適宜用いて、本実施の形態に従う分類器を実現できるであろう。
【００７４】
［Ｄ．分類器１０を構築および利用する場合の処理手順］
次に、本実施の形態に従う分類器１０を構築および利用する場合の処理手順について説明する。
【００７５】
（ｄ１：学習フェーズ）
まず、本実施の形態に従う分類器１０を構築する学習フェーズでの処理手順について説明する。図４は、本実施の形態に従う分類器１０に対する学習フェーズの処理手順を示すフローチャートである。図４に示す各ステップは、図３に示すコンピュータ２０（プロセッサ１００）が学習プログラム１１４を実行することで実現される。
【００７６】
学習フェーズにおいては、識別ネットワーク２４および生成ネットワーク２２の学習が交互に実行される。
【００７７】
より具体的には、コンピュータ２０は、生成ネットワーク２２および識別ネットワーク２４の各ネットワークパラメータに対して初期値を設定する（ステップＳ１００）。各ネットワークに設定されるネットワークパラメータは、ランダムに決定されてもよいし、経験則などに基づいて、予め定められた標準的な値を設定してもよい。
【００７８】
例えば、音声データ（ＷＡＶファイル）などの学習に用いる入力データから実データｘｒｅａｌを用意する（ステップＳ１０２）。
【００７９】
続いて、コンピュータ２０は、識別ネットワーク２４を学習する。すなわち、ステップＳ１０４〜Ｓ１１６に示すように、コンピュータ２０は、第１のサンプル（実サンプルｘＤｒｅａｌ）からなる入力、または、第１のサンプルと第２のサンプル（生成サンプルｘｆａｋｅ）との結合からなる入力を受けて、入力されるサンプルの種別、および、入力データが属するクラスを出力する識別ネットワーク２４を学習する。
【００８０】
より具体的には、コンピュータ２０は、実データｘｒｅａｌから１つのバッチデータ（ミニバッチ）を読み込む（ステップＳ１０４）。読み込んだミニバッチは、複数のサンプルを含み、各サンプルには、クラスラベルｋが付与されているものとする。また、本実施の形態においては、学習フェーズにおける識別ネットワーク２４のパラメータをこのミニバッチ単位で更新する。
【００８１】
コンピュータ２０は、読み込んだミニバッチに含まれる各サンプルに対応する実データｘｒｅａｌを変換関数ＤＴに入力して、実サンプルｘＤｒｅａｌをそれぞれ算出する（ステップＳ１０６）。すなわち、コンピュータ２０は、予め定められた変換関数ＤＴを用いて入力データ（実データｘｒｅａｌ）に含まれる特徴量を示す第１のサンプル（実サンプルｘＤｒｅａｌ）を生成する。このような処理によって、実データｘｒｅａｌと、実サンプルｘＤｒｅａｌと、クラスラベルｋとからなるデータセットが、読み込んだミニバッチに含まれるサンプルの数（すなわち、ミニバッチサイズ）だけ訓練用として生成される。
【００８２】
並行して、コンピュータ２０は、読み込んだミニバッチに含まれる各サンプルに対応する条件情報ｃ（ｘｒｅａｌ）と、ランダムに発生させた所定次元数を有するノイズｚ（ｎｏｉｓｅ）とを結合して入力データをそれぞれ生成し（ステップＳ１０８）、生成ネットワーク２２に入力することで、訓練用としての生成サンプルｘｆａｋｅをそれぞれ算出する（ステップＳ１１０）。
【００８３】
このように、ステップＳ１０４〜Ｓ１１０においては、予めクラスラベルが付与された訓練データから変換関数ＤＴを用いた第１の訓練サンプルを生成するとともに、訓練データを生成ネットワーク２２に入力して第２の訓練サンプルを生成する処理が実行される。
【００８４】
コンピュータ２０は、読み込んだミニバッチに含まれる各サンプルに対応する実サンプルｘＤｒｅａｌ同士を結合したデータを識別ネットワーク２４に入力して識別出力３４およびクラスフラグ３６をそれぞれ算出する（ステップＳ１１２）。
【００８５】
また、コンピュータ２０は、読み込んだミニバッチに含まれる各サンプルに対応する実サンプルｘＤｒｅａｌと、ステップＳ１１０において算出した対応する生成サンプルｘｆａｋｅとを結合したデータを識別ネットワーク２４に入力して識別出力３４およびクラスフラグ３６をそれぞれ算出する（ステップＳ１１４）。
【００８６】
これらの処理によって、識別出力の正解を「Ｒｅａｌ」とする実データｘｒｅａｌ（クラスラベルｋ）についての識別出力３４およびクラスフラグ３６からなるデータセットが、読み込んだミニバッチに含まれるサンプルの数だけ生成される（ステップＳ１１２）とともに、識別出力の正解を「Ｆａｋｅ」とする生成サンプルｘｆａｋｅ（クラスラベルｋ）についての識別出力３４およびクラスフラグ３６からなるデータセットが、読み込んだミニバッチに含まれるサンプルの数だけ生成される（ステップＳ１１４）。
【００８７】
コンピュータ２０は、ステップＳ１１２およびＳ１１４において生成されたデータセットに含まれる識別出力３４およびクラスフラグ３６の各セットが、対応する識別出力の正解およびクラスラベルｋと一致するように、識別ネットワーク２４の内部パラメータを更新する（ステップＳ１１６）。この内部パラメータの更新は、上述の（５）式に示すような目的関数が用いられてもよい。
【００８８】
すなわち、ステップＳ１１６においては、第１の訓練サンプルからなる入力および第１の訓練サンプルと第２の訓練サンプルとの結合からなる入力を識別ネットワーク２４にそれぞれ与えたときに出力されるサンプルの種別が互いに識別されるとともに、識別ネットワーク２４から出力されるクラスが対応する訓練データに付与されたクラスラベルと一致するように、識別ネットワーク２４のパラメータを更新する処理が実行される。
【００８９】
コンピュータ２０は、１または複数のバッチデータについて識別ネットワーク２４のパラメータ更新が完了すると、識別ネットワーク２４の学習を終了する。そして、コンピュータ２０は、ステップＳ１２０以下に示す、生成ネットワーク２２の学習を開始する。
【００９０】
より具体的には、コンピュータ２０は、実データｘｒｅａｌから１つのバッチデータ（ミニバッチ）を読み込む（ステップＳ１２０）。読み込んだミニバッチは、複数のサンプルを含むものとする。また、本実施の形態においては、学習フェーズにおける生成ネットワーク２２のパラメータをミニバッチ単位で更新する。
【００９１】
コンピュータ２０は、読み込んだミニバッチに含まれる各サンプルに対応する実データｘｒｅａｌを変換関数ＤＴに入力して、実サンプルｘＤｒｅａｌをそれぞれ算出する（ステップＳ１２２）。
【００９２】
並行して、コンピュータ２０は、読み込んだミニバッチに含まれる各サンプルに対応する条件情報ｃ（ｘｒｅａｌ）と、ランダムに発生させた所定次元数を有するノイズｚ（ｎｏｉｓｅ）とを結合して入力データをそれぞれ生成し（ステップＳ１２４）、生成ネットワーク２２に入力することで、生成サンプルｘｆａｋｅをそれぞれ算出する（ステップＳ１２６）。
【００９３】
そして、コンピュータ２０は、読み込んだバッチデータに含まれる各サンプルに対応する実サンプルｘＤｒｅａｌと、ステップＳ１２６において算出した対応する生成サンプルｘｆａｋｅとを結合したデータを識別ネットワーク２４に入力して識別出力３４およびクラスフラグ３６をそれぞれ算出する（ステップＳ１２８）。この処理によって、生成サンプルｘｆａｋｅを入力とした場合の識別出力３４が、読み込んだバッチデータに含まれるサンプルの数だけ生成される（ステップＳ１２８）。
【００９４】
コンピュータ２０は、読み込んだバッチデータに含まれる各サンプルについて算出される生成サンプルｘｆａｋｅが識別ネットワーク２４により「Ｒｅａｌ」と出力される（すなわち、実サンプルであると誤識別される）ように、生成ネットワーク２２の内部パラメータを更新する（ステップＳ１３０）。この内部パラメータの更新は、上述の（２）式に示すような目的関数が用いられてもよい。
【００９５】
すなわち、ステップＳ１３０においては、第１の訓練サンプルからなる入力（すなわち、実サンプルｘＤｒｅａｌ同士の結合）を識別ネットワーク２４に与えたときに出力されるサンプルの種別（すなわち、「Ｒｅａｌ」）と、第１の訓練サンプルと第２の訓練サンプルとの結合からなる入力（すなわち、実サンプルｘＤｒｅａｌと生成サンプルｘｆａｋｅとの結合）を識別ネットワーク２４に与えたときに出力されるサンプルの種別とが互いに一致するように、生成ネットワーク２２のパラメータを更新する処理が実行される。
【００９６】
以上の手順により、生成ネットワーク２２の学習処理が完了する。
続いて、コンピュータ２０は、分類器１０全体としての学習終了条件が成立したか否かを判断する（ステップＳ１３２）。学習終了条件としては、例えば、バリデーションデータの認識率の改善量が予め定められた値より小さいことなどを含む。
【００９７】
分類器１０全体としての学習終了条件が成立していなければ（ステップＳ１３２においてＮＯの場合）、コンピュータ２０は、ステップＳ１０４以下の処理を再度実行する。これに対して、分類器１０全体としての学習終了条件が成立していれば（ステップＳ１３２においてＹＥＳの場合）、識別ネットワーク２４および生成ネットワーク２２の学習処理は終了する。すなわち、分類器１０としてのネットワークが構築されたことになる。
【００９８】
なお、学習の進め方としては、識別ネットワーク２４の学習をＮ回（Ｎは１以上の整数）行なった後、生成ネットワーク２２の学習を行なうようにしてもよい。
【００９９】
また、識別ネットワーク２４および生成ネットワーク２２の学習処理の各々において、それぞれバッチデータを読み込んで、実サンプルｘＤｒｅａｌをそれぞれ算出する処理例を記載したが、同一のバッチデータを用いて、識別ネットワーク２４および生成ネットワーク２２の学習処理を行なってもよい。この場合には、ステップＳ１０４において読み込まれる実データｘｒｅａｌ、ならびに、Ｓ１０６において生成される実サンプルｘＤｒｅａｌを、ステップＳ１２０およびＳ１２２においてもそのまま利用することになる。そのため、ステップＳ１２０およびＳ１２２の処理は省略されてもよい。
【０１００】
（ｄ２：運用フェーズ）
次に、本実施の形態に従う分類器１０を用いた運用フェーズでの処理手順について説明する。図５は、本実施の形態に従う分類器１０を用いた運用フェーズの処理手順を示すフローチャートである。図５に示す各ステップは、図３に示すコンピュータ２０（プロセッサ１００）がプログラムを実行することで実現される。
【０１０１】
まず、コンピュータ２０は、分類対象の実データが入力されると（ステップＳ２００）、当該入力された分類対象の実データに対して前処理（例えば、所定長さのデータ単位にする処理）などを行なった上で、所定次元数を有する条件情報ｃ（ｘｒｅａｌ）を用意する（ステップＳ２０２）。
【０１０２】
そして、コンピュータ２０は、実データｘｒｅａｌを変換関数ＤＴに入力して、実サンプルｘＤｒｅａｌを算出する（ステップＳ２０４）。
【０１０３】
並行して、コンピュータ２０は、条件情報ｃ（ｘｒｅａｌ）と、ランダムに発生させた所定次元数を有するノイズｚ（ｎｏｉｓｅ）とを結合して入力データを生成し（ステップＳ２０６）、生成ネットワーク２２に入力することで、生成サンプルｘｆａｋｅを算出する（ステップＳ２０８）。
【０１０４】
コンピュータ２０は、ステップＳ２０４において算出した実サンプルｘＤｒｅａｌと、ステップＳ２０８において算出した生成サンプルｘｆａｋｅとを結合したデータを識別ネットワーク２４に入力してクラスフラグ３６を算出する（ステップＳ２１０）。
【０１０５】
最終的に、コンピュータ２０は、算出されたクラスフラグ３６に基づいて、入力された分類対象の実データｘｒｅａｌの属するクラスを決定する（ステップＳ２１２）。
【０１０６】
以上のような分類処理は、分類対象の実データが入力されるたびに実行される。
［Ｅ．運用形態］
上述したように、本実施の形態に従う分類器１０は、学習フェーズおよび運用フェーズのいずれにおいても、同様のネットワーク構成が採用される。汎用的な応用を考慮すると、学習フェーズにおいて最適化されたネットワークを同一のタスクを実行する複数のシステムに応用する場合には、学習によって得られたネットワークパラメータのみを配布するようにしてもよい。
【０１０７】
図６は、本実施の形態に従う分類器１０の運用形態の一例を示す模式図である。図６を参照して、例えば、ある装置上で分類器１０を学習し（学習フェーズ）、その結果生成されたネットワークのパラメータを、実際に分類タスクを実行する装置（運用フェーズ）に配布するようにしてもよい。この場合、学習フェーズによって生成された生成ネットワーク２２のパラメータおよび識別ネットワーク２４のパラメータに加えて、変換関数ＤＴ自体も配布される。これらのパラメータのセットおよび変換関数ＤＴを用いることで、運用フェーズに利用可能な分類器１０を実現できる。
【０１０８】
すなわち、本実施の形態においては、分類器１０を構成する生成ネットワーク２２および識別ネットワーク２４のパラメータ、ならびに、変換関数ＤＴ自体が本件発明の技術的範囲の対象となり得る。
【０１０９】
図６には、分類タスクが実行される場所にシステムを配置する、いわゆるオンプレミス環境に適した処理例を示すが、これに限らず、コンピュータネットワーク上に配置された１または複数のサーバを用いて、分類タスクを処理する、いわゆるクラウドサービス環境を採用してもよい。
【０１１０】
クラウド環境を採用する場合には、分類タスクを処理するサーバ装置において、分類器１０の学習を行なうとともに、その学習によって生成された分類器１０をそのまま利用することになる。この場合、運用フェーズにおいて、分類器１０は、典型的には、コンピュータネットワークを介して入力データを受付け、その受付けた入力データに対して実行される分類タスクの結果を、コンピュータネットワークを介して応答することになる。
【０１１１】
上述した分類器１０の運用は一例であり、要求されるタスクの内容や実行環境などに応じて適宜適切な実装が可能である。また、本実施の形態に従う分類器１０は、より大きなタスクの一部として組み込まれてもよい。この場合、他のタスクを実行する装置やモジュールと連携することで、目的のタスクを実行することになる。
【０１１２】
［Ｆ．分類器１０の性能評価］
次に、本実施の形態に従う分類器１０の性能評価の一例について説明する。以下では、本実施の形態に従う分類器１０を言語認識タスクに応用した場合の性能評価の一例を示す。
【０１１３】
（ｆ１：実験条件）
以下の性能評価においては、２つのｉ−ベクトルデータセットを用いた。１番目のｉ−ベクトルデータセットは、"X. Lu, P. Shen, Y. Tsao, H. Kawai, Regularization of neural network model with distance metric learning for i-vector based spoken language identification, Computer Speech & Language, 2017"に詳述されているものである。以下、１番目のｉ−ベクトルデータセットを「ＮＩＳＴ５０」とも称す。２番目のｉ−ベクトルデータセットは、１３言語のデータセット（英語、日本語、北京語、韓国語、タイ語、ビルマ語、ベトナム語、インドネシア語、フランス語、スペイン語、ロシア語、ポルトガル語、アラビア語）である。以下、２番目のｉ−ベクトルデータセットを「ＮＩＳＴ１３」とも称す。
【０１１４】
４８５．９時間分の訓練データと、２８．６時間分のバリデーションデータと、２８．５時間分のテストデータとを用意した。各言語についての発話数は、５７２５〜４０５２９であり、訓練データについての総発話数は、２９４４５３である。また、バリデーションデータおよびテストデータについての発話数は、９０２〜１５００である。バリデーションデータおよびテストデータのデータセットについての総発話数は、１５８９８である。１回の発話の平均継続時間は、５．９秒である。認識エラーを評価基準として用いた。
【０１１５】
次に、生成ネットワーク２２および識別ネットワーク２４の実装例について説明する。以下の表１に、各ネットワークの構成例を示す。
【０１１６】
【表１】
2019028839.tif 000006
【０１１７】
生成ネットワーク２２については、ノイズｚおよび条件情報ｃ（ｘｒｅａｌ）に対応する２つの入力レイヤが存在する。これらの２つの入力レイヤは、完全結合（fully connected：ＦＣ）ニューラルネットワークにマージされる。生成ネットワーク２２においては、バッチ汎化が採用される。
【０１１８】
識別ネットワーク２４についても、生成ネットワーク２２と同様に、実サンプルｘＤｒｅａｌおよび生成サンプルｘｆａｋｅに対応する２つの入力レイヤが存在する。本実施の形態に従う分類器１０においては、生成ネットワーク２２がどのようなタイプの特徴を生成すべきかを指示する上で、実サンプルｘＤｒｅａｌは重要な役割を果たす。
【０１１９】
ミニバッチサイズを１２８に設定し、学習率を０．０００５に設定した。最大学習エポックを５００に設定した。最終結果は、最良の検証結果に基づいて選択した。性能は、（５）式中のトレードオフ係数αが取り得る範囲を大きくすることで改善し得るが、以下の性能評価においては、「０．５」と設定した。
【０１２０】
（ｆ２：ＮＩＳＴ５０言語認識データに対する評価結果）
ＮＩＳＴ５０言語認識データに対する評価結果の一例を表２に示す。表２中の数字は、誤り率を示し、その値が小さい程、分類性能が高いと言える。
【０１２１】
【表２】
2019028839.tif 000007
【０１２２】
表２中の上から３つ（ＣＯＳＩＮＥ（ＲＡＷ），ＬＩＮ−ＳＶＭ（ＬＤＡ），ＲＢＦ−ＳＶＭ（ＬＤＡ））は、比較のために、従来手法による評価結果を示す。
【０１２３】
より具体的には、ＣＯＳＩＮＥ（ＲＡＷ）は、生データ（raw data）に対する余弦距離（cosine distance）カーネルを用いた評価結果を示し、ＬＩＮ−ＳＶＭ（ＬＤＡ）は、線形のＳＶＭ（support vector machine）カーネルを用いた評価結果を示し、ＲＢＦ−ＳＶＭ（ＬＤＡ）は、放射基底関数（radial basic function：ＲＢＦ）カーネルを用いた評価結果を示す。
【０１２４】
追加的に、データ拡張（data augmentation）および生データ特徴とＬＤＡ（linear discriminative analysis）特徴との組み合わせを用いた評価も行なった。データ拡張は、元のｉ−ベクトル特徴に［−１，１］の範囲に一様に分布するノイズを加えることで行なった。また、元の１２５００の訓練データに加えて、データ拡張のために別に１２５００の訓練データを用意した。この評価は、最適化されたＤＮＮモデルを用いて行なった。このＤＮＮモデルは、ＤＰマッチングを組み合わせたものであり、２つの完全結合された隠れ層を有し、入力層に対するドロップアウトを０．３とし、隠れ層に対するドロップアウトを０．５としている。
【０１２５】
なお、慣性項を有する確率的勾配降下法（stochastic gradient descent；以下、「ＳＧＤ」とも略称する。）とＡｄａｇｒａｄ最適化法と比較したところ、慣性項を有するＳＧＤを用いた方がより好ましい結果が得られることが分かったので、慣性項を有するＳＧＤを用いた評価結果をベースラインとして、表２中の上から４番目（ＤＮＮ＋ＤＭ＋ＤＰ）に示している。なお、ＤＭは"distance measure"を意味し、ＤＰは"dropout"を意味する。
【０１２６】
また、すべての訓練データをラベル付きデータおよびラベルなしデータとして設定した上で、準教師ありＧＡＮ（semi-supervised GAN）を用いた実験を行なった。生データ特徴およびＬＤＡ特徴のそれぞれを訓練データとして設定した。それぞれの評価結果を、表２中の上から５番目（Ｓｅｍｉ−ｓｕｐｅｒｖｉｓｅｄ  ＧＡＮ（ＲＡＷ））および６番目（Ｓｅｍｉ−ｓｕｐｅｒｖｉｓｅｄ  ＧＡＮ（ＬＤＡ））に示している。
【０１２７】
準教師ありＧＡＮに対するベースラインとして、ＤＰマッチングを組み合わせたＤＮＮモデルを用いた場合の評価結果も併せて示す（表２中の上から７番目〜１０番目）。
【０１２８】
より具体的には、表２中の上から７番目（ＤＮＮ  ＤＰ（ＬＤＡ））は、ＬＤＡ特徴を訓練データとして用いた場合の評価結果を示す。表２中の上から８番目（ＤＮＮ  ＤＰ（ＲＡＷ＋ＬＤＡ））は、生データ特徴とＬＤＡ特徴との組み合わせを訓練データとして用いた場合の評価結果を示す。表２中の上から９番目（ＤＮＮ  ＤＰ（Ｄａｔａ  ａｕｇｍｅｎｔａｔｉｏｎ））は、データ拡張されたデータを訓練データとして用いた場合の評価結果を示す。表２中の上から１０番目（ＤＮＮ  ＤＰ（ＬＤＡ＋ｘｆａｋｅ））は、ＬＤＡ特徴および生成サンプルｘｆａｋｅを訓練データとして用いた場合の評価結果を示す。
【０１２９】
上述の従来手法の詳細については、"X. Lu, P. Shen, Y. Tsao, H. Kawai, Regularization of neural network model with distance metric learning for i-vector based spoken language identification, Computer Speech & Language, 2017"を参照されたい。
【０１３０】
表２中の上から１１番目〜１４番目は、本実施の形態に従う分類器１０の評価結果を示す。それぞれの評価結果は、生成ネットワーク２２に入力する条件情報２６、および、識別ネットワーク２４に入力する実サンプル３２をそれぞれ異ならせたものである。
【０１３１】
上述したように、本実施の形態に従う分類器１０においては、生成ネットワーク２２がどのようなタイプの特徴を生成すべきかを指示することで、実サンプルｘＤｒｅａｌは重要な役割を果たす。本実施の形態においては、生成される特徴の効率を改善するために、実サンプルｘＤｒｅａｌを出力するための変換関数ＤＴを用いる。変換関数ＤＴの影響を評価するために、生成ネットワーク２２および識別ネットワーク２４のそれぞれの入力を異ならせた。より具体的には、ＬＤＡ特徴および識別ボトルネック特徴を用意した。
【０１３２】
ＬＤＡ特徴としては、元の４００次元のｉ−ベクトルデータに対してＬＤＡを適用することで得られた４９次元のベクトルを用いた。また、識別ボトルネック特徴としては、５層の隠れ層（すなわち、５１２−５１２−２００−５１２−５１２）を有するとともに、生のｉ−ベクトルデータを入力とし、その結果生成される言語ＩＤ群を出力とするニューラルネットワークにより生成されるベクトルを用いた。
【０１３３】
なお、生成ネットワーク２２および識別ネットワーク２４は、Ａｄａｇｒａｄ最適化法を用いて学習した。
【０１３４】
表２中の上から１１番目（ｃＧＡＮ−ｃｌａｓｓｉｆｉｅｒ（ＲＡＷ，ＲＡＷ））は、生成ネットワーク２２および識別ネットワーク２４のいずれの入力として、生データ特徴を用いた場合の評価結果を示す。この評価結果においては、ある程度の性能が発揮されているものの、後述の評価結果よりは低い性能となっている。この理由としては、生データ特徴は、言語、話者、チャネルといった複数の変数を含むものとなり、このような生データを用いることで、生成ネットワーク２２により生成される生成サンプルｘｆａｋｅがタスクに応じたものとならない可能性が高めるためであると考えられる。但し、タスクによっては、このような生データをそれぞれのネットワークの入力に用いた場合であっても、有効に機能することがある。
【０１３５】
一方、識別ネットワーク２４の入力としてより識別性の高い特徴を用いることで、すなわち、ＬＤＡ特徴または識別ボトルネック特徴を用いることで、生成ネットワーク２２からはより識別性の高い特徴が出力されるようになり、生成モデルとしての汎化性能を改善できる。
【０１３６】
表２中の上から１２番目（ｃＧＡＮ−ｃｌａｓｓｉｆｉｅｒ（ＬＤＡ，ＬＤＡ））は、生成ネットワーク２２および識別ネットワーク２４のいずれの入力として、ＬＤＡ特徴を用いた場合の評価結果を示す。表２中の上から１３番目（ｃＧＡＮ−ｃｌａｓｓｉｆｉｅｒ（ＲＡＷ，ＬＤＡ））は、生成ネットワーク２２の入力として、生データ特徴を用いるとともに、識別ネットワーク２４の入力として、ＬＤＡ特徴を用いた場合の評価結果を示す。いずれの場合もベースラインに比較して、十分に有意な改善を示している。
【０１３７】
表２中の上から１４番目（ｃＧＡＮ−ｃｌａｓｓｉｆｉｅｒ（ＲＡＷ，ＢＮ２００））は、生成ネットワーク２２の入力として、生データ特徴を用いるとともに、識別ネットワーク２４の入力として、識別ボトルネック特徴を用いた場合の評価結果を示す。この評価結果が最も高い分類性能を示す。この評価結果においては、テストデータに対する誤り率は５．８２％となり、ベースラインとした最良の従来手法に比較して、６１．６％の性能改善を示している。
【０１３８】
以上のような評価結果が示すように、本実施の形態に従う分類器１０は、ＤＮＮモデルの生成を効率的に改善できる。
【０１３９】
（ｆ３：ＮＩＳＴ１３言語認識データに対する評価結果）
次に、ＮＩＳＴ１３言語認識データに対する評価結果の一例を表３に示す。表３中の数字は、誤り率を示し、その値が小さい程、分類性能が高いと言える。
【０１４０】
【表３】
2019028839.tif 000008
【０１４１】
ＮＩＳＴ５０言語データセットは小さいものであり、本実施の形態に従う分類器１０をより大きなデータセットに適用した場合の性能を評価するために、ＮＩＳＴ１３言語データセットを用いた実験を行なった。
【０１４２】
入力データとして、４００次元のｉ−ベクトルデータを生成し、ロジスティック回帰ベースの分類器を用いた結果をベースラインとした。ｉ−ベクトルデータは、１０２４個のガウシアン要素からなるガウシアン混合モデルベースの汎用バックグラウンドモデルに基づいて抽出した。このベースラインの評価結果を表３中の上から１番目（Ｌｏｇｉｓｔｉｃ  Ｒｅｇｒｅｓｓｉｏｎ（ＲＡＷ））に示す。
【０１４３】
また、ドロップアウト設定を有するＤＮＮモデルをベースラインシステムとして用いた。このＤＮＮモデルは、ＤＰマッチングを組み合わせたものであり、５１２ニューロンを有する隠れ層を３層含むものであり、経験則として、隠れ層に対するドロップアウトを０．１に設定した。
【０１４４】
表３中の上から２番目（ＤＮＮ  ＤＰ（ＲＡＷ））は、生データを訓練データとして用いた場合の評価結果を示す。表３中の上から３番目（ＤＮＮ  ＤＰ（ＢＮ２００））は、識別ボトルネック特徴を訓練データとして用いた場合の評価結果を示す。
【０１４５】
一方、本実施の形態に従う分類器１０について、上述のＮＩＳＴ５０言語データセットに対する最良の設定と同様の構造的および実験的な設定を用いた。このときの評価結果を表３中の４番目（ｃＧＡＮ−ｃｌａｓｓｉｆｉｅｒ  ＤＴ（ＲＡＷ，ＢＮ２００））に示す。表３に示すように、本実施の形態に従う分類器１０は、ＤＮＮシステムに比較して２８．７％の性能改善を示し、ロジスティック回帰ベースのシステムに比較して４４．５％の性能改善を示している。
【０１４６】
［Ｇ．別のタスクに対する性能評価］
次に、本実施の形態に従う分類器１０をＭＩＮＳＴ（mixed national institute of standards and technology database）に適用した場合の評価結果を示す。ＭＩＮＳＴは、手書きの数字（０〜９）に正解ラベルが付与されたデータセットである。
【０１４７】
次に、ＭＩＮＳＴに対する評価結果の一例を表４に示す。表４中の数字は、誤り率を示し、その値が小さい程、分類性能が高いと言える。
【０１４８】
【表４】
2019028839.tif 000009
【０１４９】
比較対象として、すべての訓練データをラベル付きデータおよびラベルなしデータとして設定した上で、準教師ありＧＡＮを用いた実験を行なった。評価結果を表４中の上から１番目（Ｓｅｍｉ−ｓｕｐｅｒｖｉｓｅｄ  ＧＡＮ（Ａｌｌ））に示している。
【０１５０】
また、ＭＩＮＳＴタスクに対しては、ＣＮＮモデルが従来のＤＮＮモデルに比較してより高い効率性を示すことが示されている。そのため、比較例として、実サンプルｘＤｒｅａｌを生成するために、より効率的なＣＮＮベースの非線形の変換関数ＤＴ（ＣＮＮ−ＤＴ）を用いた。
【０１５１】
表４中の上から２番目（ＤＮＮ  ＤＰ（ＣＮＮ−ＤＴ））には、ＤＰマッチングを組み合わせたＤＮＮモデルに対して、ＣＮＮベースの非線形の変換関数ＤＴを用いて変換したデータを訓練データとした場合の評価結果を示す。
【０１５２】
表４中の上から３番目（ｃＧＡＮ−ｃｌａｓｓｉｆｉｅｒ  ＤＴ（ＲＡＷ，ＣＮＮ−ＤＴ））は、本実施の形態に従う分類器１０の評価結果を示す。この評価結果において、７８４次元の画像ベクトル（画像に対して他の前処理は行なっていない）を生成ネットワーク２２の入力として用いた。
【０１５３】
表４に示すように、本実施の形態に従う分類器１０によれば、ＭＩＮＳＴタスクについても、従前の他のＧＡＮモデルを用いた場合に比較して、より高い分類性能を示すことが分かる。
【０１５４】
［Ｈ．まとめ］
本実施の形態に従う分類器は、教師ありｃＧＡＮベースのフレームワークを有している。従来のＧＡＮモデルは、イメージ生成または準教師あり学習の用途に用いられることを主目的としていたが、本実施の形態に従う分類器は、教師あり学習のフレームワークとして用いることができるとともに、そのフレームワークのまま分類タスクにも応用が可能である。すなわち、十分に学習されたネットワークをそのまま用いて分類を行なうことができる。
【０１５５】
本実施の形態に従う分類器のフレームワークにおいては、最適化および生成された特徴の選択を自動化することにより、生成されるサンプルを定量的に評価する必要がない。すなわち、識別ネットワーク２４から出力されるクラスフラグ３６は分類性能の最適化に用いることができ、識別ネットワーク２４から出力される「Ｒｅａｌ／Ｆａｋｅ」の識別出力３４はモデルの生成性能の最適化に用いることができる。
【０１５６】
上述の評価結果に示されるように、本実施の形態に従う分類器は、従来手法に比較して、より高い分類性能を有し得ることが分かる。また、上述の評価結果に示されるように、実サンプルｘＤｒｅａｌを出力するための変換関数ＤＴの設計が非常に重要である。この変換関数ＤＴをより好ましく設計することで、より高い分類性能を実現できる。
【０１５７】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５８】
１  言語自動選択システム、２  音声入力、４  選択器、６  言語システム、１０  分類器、２０  コンピュータ、２２  生成ネットワーク、２４  識別ネットワーク、２６  条件情報、２８  ノイズ、３０  生成サンプル、３２  実サンプル、３４  識別出力、３６  クラスフラグ、１００  プロセッサ、１０２  主メモリ、１０４  ディスプレイ、１０６  入力デバイス、１０８  ネットワークインターフェイス、１１０  内部バス、１１２  二次記憶装置、１１４  学習プログラム、１１６  分類プログラム、１１８  ネットワークパラメータ、１２０  訓練データ、１３４  光学ドライブ、１３６  光学ディスク、ＤＴ  変換関数。
【図１】
2019028839.tif 000010
【図２】
2019028839.tif 000011
【図３】
2019028839.tif 000012
【図４】
2019028839.tif 000013
【図５】
2019028839.tif 000014
【図６】
2019028839.tif 000015