(57)【要約】【課題】半教師学習の学習精度を向上させることを課題とする。【解決手段】学習装置は、特徴生成器により、入力データから特徴量を生成する。学習装置は、ラベルつきデータに対し、教師あり学習器により、特徴生成器の出力から第１の出力を生成し、ラベルなしデータに対し、教師なし学習器により、特徴生成器の出力から第２の出力を生成する。学習装置は、特徴生成器の学習において、ラベルつきデータと第１の出力から生成される第１の誤差と、ラベルなしデータと第２の出力から生成される第２の誤差との寄与割合を、当該学習の過程で変化させる。【選択図】図３
2018181071.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
特徴生成器により、入力データから特徴量を生成し、
ラベルつきデータに対し、教師あり学習器により、前記特徴生成器の出力から第１の出力を生成し、
ラベルなしデータに対し、教師なし学習器により、前記特徴生成器の出力から第２の出力を生成し、
前記特徴生成器の学習において、前記ラベルつきデータと前記第１の出力から生成される第１の誤差と、前記ラベルなしデータと前記第２の出力から生成される第２の誤差との寄与割合を、当該学習の過程で変化させる
処理を実行させる学習プログラム。
【請求項２】
請求項１に記載の学習プログラムであって、
前記変化させる処理は、過去の学習結果に基づき前記寄与割合を変化させるタイミングに関する特定のスケジュールに従って、前記寄与割合を前記学習の過程で変化させる学習プログラム。
【請求項３】
請求項１に記載の学習プログラムであって、
前記学習の前処理として、複数のラベルつきデータを有するデータ群を訓練用データ群と検証用データ群とに分割し、
前記寄与割合を変化させる複数の割合変化スケジュールそれぞれを用いて、前記訓練用データ群による前記教師あり学習器の学習を実行し、
前記複数の割合変化スケジュールより、前記教師あり学習器に前記検証用データ群を適用した場合の前記第１の誤差に基づき第１の割合変化スケジュールを特定し、
前記学習の実行時に、前記第１の割合変化スケジュールにしたがって、前記寄与割合を当該学習の過程で変化させる学習プログラム。
【請求項４】
請求項３に記載の学習プログラムであって、
前記第１の割合変化スケジュールは、前記教師あり学習器に前記検証用データ群を適用した場合の前記第１の誤差が最も小さい割合変化スケジュールである学習プログラム。
【請求項５】
請求項１に記載の学習プログラムであって、
前記複数のラベルつきデータを有するデータ群を訓練用データ群と検証用データ群とに分割し、
予め定めた前記寄与割合を用いて、前記訓練用データ群で前記教師あり学習器を学習したときの前記第１の誤差である訓練誤差を算出し、
前記訓練用データ群で前記教師あり学習器を学習した後に前記教師あり学習器に前記検証用データ群を適用したときの前記第１の誤差である検証誤差を算出し、
前記訓練誤差と前記検証誤差との比較結果に基づいて、前記寄与割合を決定する学習プログラム。
【請求項６】
請求項４に記載の学習プログラムであって、
前記算出する処理は、前記訓練用データ群のうち所定数の訓練用データを用いた学習が完了する各契機で、前記訓練誤差および前記検証誤差を算出して、前記各契機で前記寄与割合を決定して、前記寄与割合を当該学習の過程で変化させる学習プログラム。
【請求項７】
請求項１から６のいずれか一つに記載の学習プログラムであって、
前記ラベルなしデータは、前記ラベルつきデータに含まれるラベルとは異なるラベルが付加されたデータ、または、いずれのラベルも付加されていないデータである学習プログラム。
【請求項８】
コンピュータが、
特徴生成器により、入力データから特徴量を生成し、
ラベルつきデータに対し、教師あり学習器により、前記特徴生成器の出力から第１の出力を生成し、
ラベルなしデータに対し、教師なし学習器により、前記特徴生成器の出力から第２の出力を生成し、
前記特徴生成器の学習において、前記ラベルつきデータと前記第１の出力から生成される第１の誤差と、前記ラベルなしデータと前記第２の出力から生成される第２の誤差との寄与割合を、当該学習の過程で変化させる
処理を実行する学習方法。
【請求項９】
特徴生成器により、入力データから特徴量を生成する生成部と、
ラベルつきデータに対し、教師あり学習器により、前記特徴生成器の出力から第１の出力を生成する第１生成部と、
ラベルなしデータに対し、教師なし学習器により、前記特徴生成器の出力から第２の出力を生成する第２生成部と、
前記特徴生成器の学習において、前記ラベルつきデータと前記第１の出力から生成される第１の誤差と、前記ラベルなしデータと前記第２の出力から生成される第２の誤差との寄与割合を、当該学習の過程で変化させる割合制御部と
を有する学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習プログラム、学習方法および学習装置に関する。
【背景技術】
【０００２】
機械学習の分野で、分類や回帰等の目的で教師有学習を行う際、教師有データを用いる教師有学習と教師無データを用いる教師無学習を組み合わせた半教師学習が利用されている。半教師学習の一つの方式として、特徴生成器、教師有学習器、教師無学習器を使用し、特徴生成器によって作成された特徴量によって、教師有学習器が分類や回帰などの当初の目的の学習を実行し、教師無学習が別途用意した教師無データで例えば教師無データの再構成、圧縮、ノイズ除去、補間等を学習する手法が知られている。
【０００３】
例えば、教師無データの再構成を例にして説明すると、教師有学習器は、教師ラベルと教師有学習器の出力の差である教師有誤差が最小になるように、学習器内部のパラメータ調整を実行する。また、教師無学習器は、入力と教師無学習器の出力の差である教師無誤差が最小になるように学習する。そして、特徴生成器は、教師有誤差と教師無誤差の総和が最小になるように学習する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０２６４５５号公報
【特許文献２】特開２０１７−０４９６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記半教師学習では、教師有学習と教師無学習の進行の差によって、どちらかの誤差が下がらなくなり、学習精度が向上しない場合がある。具体的には、教師有学習器や教師無学習器が解く問題の性質によって、学習の難易度が異なり、教師有学習器と教師無学習器の学習の進行にばらつきが生じる。
【０００６】
このような場合、一方の誤差のみを下げる特徴を特徴生成器が作成する状況が生じやすく、下がった誤差を維持しつつもう一方の誤差を下げる特徴の生成が困難になり、もう一方の学習器の学習に大きな時間がかかって学習が進まなくなる。例えば、教師無誤差のみが下がっている場合は、教師有学習が進んでおらず、当初の目的に対する学習精度が劣化する。一方、教師有誤差のみが下がっている場合は教師有学習が過剰に進んで過学習となっており、訓練データ以外のデータに対する学習精度が劣化する。
【０００７】
一つの側面では、半教師学習の学習精度を向上させることができる学習プログラム、学習方法および学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、学習プログラムは、コンピュータに、特徴生成器により、入力データから特徴量を生成する処理を実行させる。学習プログラムは、コンピュータに、ラベルつきデータに対し、教師あり学習器により、前記特徴生成器の出力から第１の出力を生成し、ラベルなしデータに対し、教師なし学習器により、前記特徴生成器の出力から第２の出力を生成する処理を実行させる。学習プログラムは、コンピュータに、前記特徴生成器の学習において、前記ラベルつきデータと前記第１の出力から生成される第１の誤差と、前記ラベルなしデータと前記第２の出力から生成される第２の誤差との寄与割合を、当該学習の過程で変化させる処理を実行させる。
【発明の効果】
【０００９】
一実施形態によれば、半教師学習の学習精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１にかかる半教師学習を説明する図である。
【図２】図２は、一般的な半教師学習を説明する図である。
【図３】図３は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。
【図４】図４は、実施例１にかかる学習処理の流れを示すフローチャートである。
【図５】図５は、半教師学習の具体例を説明する図である。
【図６】図６は、一般的な半教師学習の学習結果を説明する図である。
【図７】図７は、実施例１に学習装置を用いて誤差の混合割合を一時的に変更した場合の学習結果を説明する図である。
【図８】図８は、実施例１の学習装置を用いて誤差の混合割合を動的に変更した場合の学習結果を示す図である。
【図９】図９は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する学習プログラム、学習方法および学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１２】
［学習処理の説明］
図１は、実施例１にかかる半教師学習を説明する図である。図１に示すように、実施例１にかかる学習装置は、特徴生成器、教師有学習器、教師無学習器を用いた半教師学習を実行する情報処理装置の一例である。
【００１３】
実施例１では、教師無学習が再構成の学習を実行する例で説明するので、特徴生成器をエンコーダ、教師無学習器をデコーダと記載することがあるが、学習内容や機能を限定するものではない。また、各学習器には、勾配法やニューラルネットワークなど様々な学習手法を採用することができる。また、学習の例として画像を例示して説明するが、あくまで一例であり、学習内容や学習対象を限定するものではない。
【００１４】
特徴生成器は、入力ｘから特徴量ｚを生成する。例えば、特徴生成器は、学習対象が画像の場合は、画像内のエッジ、コントラスト、画像内の目や鼻の位置などを特徴量として生成する。
【００１５】
教師有学習器は、ラベルつきの教師有データに対し、分類や回帰などの学習を実行する。具体的には、教師有学習器は、教師有データである入力ｘから生成された特徴量ｚを入力として予測値ｙ´を出力する。そして、教師有学習器は、予測値ｙ´と入力ｘに対して予め既知である出力ｙとの誤差である教師有誤差が最小になるように学習する。例えば、教師有学習器は、車の画像が入力されたときの出力が車であれば教師有誤差が小さく、車の画像が入力されたときの出力が人であれば教師有誤差が大きいと判定し、この教師有誤差が小さくなるように学習する。
【００１６】
教師無学習器は、ラベルなしの教師無データに対し、再構成、圧縮、ノイズ除去、補間などの学習を実行する。具体的には、教師無学習器は、教師無データである入力ｘから生成された特徴量ｚを入力として予測値ｘ´を出力する。そして、教師無学習器は、予測値ｘ´と入力ｘとの誤差である教師無誤差が最小になるように学習する。例えば、教師無学習器は、車の入力画像が正しく復元できるように学習する。
【００１７】
このような学習器を有する学習装置は、エンコーダが学習に使用する教師有誤差と教師無誤差のバランスを動的に変化させて一方の誤差のみを低下させる特徴量が生成されないように制御する。すなわち、学習装置は、教師有誤差と教師無誤差との寄与割合を当該学習の過程で変化させる。このようにすることで、学習装置は、半教師学習の学習精度の向上を図る。
【００１８】
一方で、一般的な半教師学習は、特徴生成器が教師有誤差と教師無誤差の総和が最小になるように学習する。図２は、一般的な半教師学習を説明する図である。図２に示すように、教師有学習器は、教師有誤差が最小になるように学習し、教師無学習器は、教師無誤差が最小になるように学習する。そして、特徴生成器は、教師有誤差と教師無誤差の総和が最小になるように学習する。このとき、特徴生成器は、予め定めた割合で総和を算出する。例えば、特徴生成器は、教師有誤差と教師無誤差の混合割合を２：１などと定めて、「総和＝（教師有誤差×２）＋教師無誤差」と算出し、この総和が最小になるように学習する。
【００１９】
しかし、総和算出時の割合を無作為に固定した場合、学習の進行にばらつきによって、学習精度が劣化する。具体的には、教師無誤差のみが下がっている場合は、教師有学習が進んでおらず、当初の目的に対する精度が出ない。一方、教師有誤差のみが下がっている場合は、教師有学習が過剰に進んで過学習となっており、訓練データ以外のデータに対する精度が出ない。例えば、教師無学習器にＷｏｒｄ２ＶｅｃやＤｏｃ２Ｖｅｃ等の分散表現の学習を使用した場合、例えば教師有データに含まれない単語に関するパラメータ等のように、エンコーダの教師有学習に直接的な関係がないパラメータが非常に多いため、一度教師無学習の誤差のみを下げる特徴の生成に偏ってしまうと修正が困難になり、教師有学習が進まなくなる。この結果、一般的な半教師学習では学習精度が劣化する事象が発生する。
【００２０】
そこで、上述したように、実施例１にかかる学習装置は、教師有誤差と教師無誤差を動的に変化する割合で混合した誤差を最小化するように学習を進めることで、半教師学習の学習精度の向上を図る。
【００２１】
［機能構成］
図３は、実施例１にかかる学習装置１０の機能構成を示す機能ブロック図である。図３に示すように、学習装置１０は、教師有データＤＢ１１、教師無データＤＢ１２、特徴生成器１３、教師有学習器１４、教師有誤差計算機１５、フェーダー１６、教師無学習器１７、教師無誤差計算機１８、フェーダー１９、フェード制御器２０を有する。なお、特徴生成器１３は、生成部の一例であり、教師有学習器１４は、第１生成部の一例であり、教師無学習器１７は、第２生成部の一例であり、フェード制御器２０は、割合制御部の一例である。
【００２２】
なお、教師有データＤＢ１１や教師無データＤＢ１２は、メモリやハードディスクなどに記憶される。特徴生成器１３、教師有学習器１４、教師有誤差計算機１５、フェーダー１６、教師無学習器１７、教師無誤差計算機１８、フェーダー１９、フェード制御器２０は、プロセッサなどが実行するプロセスによって実現することもできる。
【００２３】
教師有データＤＢ１１は、ラベル付きの教師有データ群を記憶するデータベースであり、教師有学習器１４を訓練する教師有データ群を記憶する。例えば、写真を例にして説明すると、教師有データＤＢ１１は、車、人など何が写っているかを示す被写体のラベルが付加されたデータ群を記憶する。
【００２４】
教師無データＤＢ１２は、ラベルなしの教師無データ群を記憶するデータベースであり、教師無学習器１７を訓練する教師無データ群を記憶する。具体的には、教師無データＤＢ１２は、教師有データからみたラベルが付加されていないデータ群を記憶する。上記例で説明すると、教師無データＤＢ１２は、被写体以外の日付などのラベルが付加されたデータ群や全くラベルが付加されていないデータ群などを記憶する。したがって、多くの教師無データを採用することができ、教師無学習の学習精度を高めることができる。
【００２５】
特徴生成器１３は、フェード制御器２０が生成した混合比にしたがって、教師有誤差と教師無誤差とを混合して総和を算出し、当該総和が最小になるように学習を実行する学習器である。例えば、特徴生成器１３は、フェーダー１６から出力された教師有誤差と、フェーダー１９から出力された教師無誤差との総和を算出し、この総和が最小になるように学習する。
【００２６】
そして、特徴生成器１３は、教師有データＤＢ１１に対して、教師有データＤＢ１１から教師有データを読み出して入力ｘとし、学習結果を用いて入力ｘから特徴量ｚを生成して、教師有学習器１４に出力する。同様に、特徴生成器１３は、教師無データＤＢ１２に対して、教師無データＤＢ１２から教師無データを読み出して入力ｘとし、学習結果を用いて入力ｘから特徴量ｚを生成して、教師無学習器１７に出力する。
【００２７】
教師有学習器１４は、教師有データＤＢ１１に記憶される教師有データを用いて、教師有誤差が最小になるように学習する学習器である。具体的には、教師有学習器１４は、特徴生成器１３によって教師有データである入力ｘから生成された特徴量ｚから、予測値ｙ´を生成する。そして、教師有学習器１４は、生成した予測値ｙ´を教師有誤差計算機１５に出力する。
【００２８】
教師有誤差計算機１５は、教師有誤差を算出する。具体的には、教師有誤差計算機１５は、教師有学習器１４から入力された予測値ｙ´と、予測値ｙ´が生成された時の入力値ｘに対応する教師有データｙとの差分を、教師有誤差として算出する。そして、教師有誤差計算機１５は、教師有誤差を教師有学習器１４にフィードバックして更なる学習を実行させるとともに、教師有誤差をフェーダー１６に出力する。
【００２９】
フェーダー１６は、フェード制御器２０から通知される混合割合にしたがって、教師有誤差の割合を増加または減少させる。具体的には、フェーダー１６は、フェード制御器２０から教師有誤差と教師無誤差の混合割合として「２：１」が通知されると、教師有誤差計算機１５から入力された教師有誤差を２倍にして特徴生成器１３に出力する。
【００３０】
教師無学習器１７は、教師無データＤＢ１２に記憶される教師無データを用いて、教師無誤差が最小になるように学習する学習器である。具体的には、教師無学習器１７は、特徴生成器１３によって教師無データである入力ｘから生成された特徴量ｚから、出力ｘ´を生成する。そして、教師有学習器１４は、生成した出力ｘ´を教師無誤差計算機１８に出力する。
【００３１】
教師無誤差計算機１８は、教師無誤差を算出する。具体的には、教師無誤差計算機１８は、教師無学習器１７から入力された出力ｘ´と、出力ｘ´が生成された時の入力値ｘとの差分を、教師無誤差として算出する。そして、教師無誤差計算機１８は、教師無誤差を教師無学習器１７にフィードバックして更なる学習を実行させるとともに、教師無誤差をフェーダー１９に出力する。
【００３２】
フェーダー１９は、フェード制御器２０から通知される混合割合にしたがって、教師無誤差の割合を増加または減少させる。具体的には、フェーダー１９は、フェード制御器２０から教師有誤差と教師無誤差の混合割合として「１：１．５」が通知されると、教師無誤差計算機１８から入力された教師無誤差を１．５倍にして特徴生成器１３に出力する。
【００３３】
フェード制御器２０は、教師有誤差と教師無誤差との寄与割合を決定する。具体的には、フェード制御器２０は、特徴生成器１３が教師有誤差と教師無誤差との総和を算出する際の重みを決定して、フェーダー１６とフェーダー１９とに出力する。
【００３４】
ここで、寄与割合の決定手法について具体的に説明する。フェード制御器２０は、ハイパーパラメータとして学習時に渡された、学習時間に対する混合の割合を記載した混合スケジュールに従って決定することができる。
【００３５】
具体的には、混合スケジュールは、教師有学習および教師無学習の問題の性質に従ってユーザがあらかじめ設定することができる。例えば、フェード制御器２０は、過去の学習結果に基づき生成された混合スケジュールにしたがって、混合割合を動的に変更する。ここで生成される混合は、過去の様々な学習結果を解析した管理者によって生成されたものであり、最初に教師無学習の割合を高くし、その後に教師有学習の割合を高くするなどがスケジュールされる。
【００３６】
また、フェード制御器２０は、教師無学習にＷｏｒｄ２Ｖｅｃ等の分散表現の学習が使用される場合、学習初期の短期間は教師有学習の割合を高くするスケジュールを作成することもできる。具体例を挙げると、フェード制御器２０は、学習初期は教師有学習の誤差を２倍にするなど、総和算出時の教師有誤差の割合が高くなるように設定する。なお、学習初期とは、例えば２分などの所定時間であってもよく、１００個の訓練データのように訓練データの数であってもよい。
【００３７】
また、フェード制御器２０は、学習に使用するデータを訓練データと検証データに分割し、検証データの教師有誤差が最も下がるスケジュールをハイパーパラメータ探索によって探索することもできる。
【００３８】
例えば、フェード制御器２０は、教師有データ群の９割を訓練データとし、残りの１割を検証データとする。そして、フェード制御器２０は、複数の混合スケジュールを生成する。例えば、フェード制御器２０は、処理開始から１００個の訓練データまでの教師有誤差と教師無誤差の混合割合（混合比）を「３：１」、１０１個目から２００個目までの混合割合を「１：３」、２０１個目以降の混合割合を「１：１」などとする複数の混合パターンを生成する。そして、フェード制御器２０は、生成した複数の混合スケジュールを各フェーダーに通知するとともに、分割して得られた訓練データを特徴生成器１３に通知する。このようにして、フェード制御器２０は、各混合スケジュールで訓練データを用いた学習を教師有学習器１４および教師無学習器１７に実行させる。
【００３９】
そして、フェード制御器２０は、各混合スケジュールで学習された教師有学習器１４に、検証データを適用する。その後、フェード制御器２０は、検証データを適用して得られた教師有誤差が最も小さい混合スケジュールを特定し、当該混合スケジュールを採用すると決定する。このように、フェード制御器２０は、学習の前処理で決定した混合スケジュールを各フェーダーに通知して、各学習器による学習を開始させる。なお、検証データを適用して得られた教師有誤差が最も小さい混合スケジュールに限らず、学習器の特徴や学習期間などによって予め定めた基準（例えば閾値など）を満たす混合スケジュールを採用することもできる。
【００４０】
混合スケジュール生成の更なる別例としては、フェード制御器２０は、混合割合を学習の進行具合に従って動的に制御することもできる。具体的には、フェード制御器２０は、データを訓練データと検証データに分割し、訓練データを使って適当な誤差の混合割合で学習を開始する。学習中、フェード制御器２０は、訓練データに対する教師有誤差（訓練誤差）と検証データに対する教師有誤差（検証誤差）を確認する。そして、フェード制御器２０は、訓練誤差に対して検証誤差が大きすぎれば、過学習状態と判定して教師無誤差の混合割合を上げ、そうでなければ、適切または学習不足と判定して教師無誤差の混合割合を下げる。
【００４１】
例えば、フェード制御器２０は、教師有データ群の９割を教師有訓練データとし、残りの１割を教師有検証データとする。また、フェード制御器２０は、教師有誤差と教師無誤差の混合比として２：１を設定する。そして、フェード制御器２０は、分割した各データを特徴生成器１３に通知するとともに、混合比を各フェーダーに通知して、学習を実行させる。
【００４２】
その後、フェード制御器２０は、所定時間が経過した場合または所定の訓練データ数の学習が完了した場合、検証データを用いた学習を各学習器に実行させる。ここで、フェード制御器２０は、訓練データを用いたときの教師有誤差（教師有訓練誤差）と検証データを用いたときの教師有誤差（教師有検証誤差）との差（教師有差分）を算出する。
【００４３】
そして、フェード制御器２０は、教師有差分（教師有検証誤差−教師有訓練誤差）が第１閾値以上であれば、誤差が大きすぎることから、教師無誤差の混合割合を上げるように、教師有誤差と教師無誤差の混合比を「２：１」から「２：１.５」や「１：２」などに変更する。また、フェード制御器２０は、教師有差分が第１閾値未満かつ第２閾値以上であれば、混合比を「２：１」のまま維持する。また、フェード制御器２０は、教師有差分が第２閾値未満であれば、誤差が小さすぎることから、教師有誤差の混合割合を上げるように、教師有誤差と教師無誤差の混合比を「２：１」から「２．５：１」などに変更する。なお、閾値は、任意に設定することができる。
【００４４】
その後、フェード制御器２０は、変更後の混合比を各フェーダーに通知して、学習を継続させ、継続後、所定時間が経過した場合または所定の訓練データ数の学習が完了した場合、上記混合比の調整を繰り返す。このようにして、フェード制御器２０は、学習が所定間隔完了するたびに、混合比が適切か否かを判定して、混合比の動的変更を実現する。
【００４５】
なお、上記いずれの例でも、教師有誤差に着目した例を説明したが、これに限定されるものではなく、教師無誤差に対して同様の判定を実行することもできる。また、教師有誤差と教師無誤差の両方に着目することもできる。
【００４６】
例えば、フェード制御器２０は、教師有データ群の９割を教師有訓練データとし、残りの１割を教師有検証データとするとともに、教師無データ群の９割を教師無訓練データとし、残りの１割を教師無検証データとする。また、フェード制御器２０は、教師有誤差と教師無誤差の混合比として２：１を設定する。そして、フェード制御器２０は、分割した各データを特徴生成器１３に通知するとともに、混合比を各フェーダーに通知して、学習を実行させる。
【００４７】
その後、フェード制御器２０は、所定時間が経過した場合または所定の訓練データ数の学習が完了した場合、検証データを用いた学習を各学習器に実行させる。ここで、フェード制御器２０は、訓練データを用いたときの教師有誤差（教師有訓練誤差）と検証データを用いたときの教師有誤差（教師有検証誤差）との差（教師有差分）を算出する。同様に、フェード制御器２０は、訓練データを用いたときの教師無誤差（教師無訓練誤差）と検証データを用いたときの教師無誤差（教師無検証誤差）との差（教師無差分）を算出する。
【００４８】
そして、フェード制御器２０は、教師有差分と教師無差分とを比較し、教師有差分の方が閾値以上大きければ、教師無誤差の混合割合を上げるように混合比を変更し、教師無差分の方が閾値以上大きければ、教師有誤差の混合割合を上げるように混合比を変更することもできる。また、ここでも上記手法と同様に複数の閾値による判断を適用することができる。
【００４９】
［処理の流れ］
図４は、実施例１にかかる学習処理の流れを示すフローチャートである。なお、ここでは、図４に示すように、学習装置１０は、処理を開始すると、特徴生成器１３、教師有学習器１４、教師無学習器１７のそれぞれを初期化する（Ｓ１０１）。
【００５０】
続いて、学習装置１０は、誤差の混合を制御するフェード制御器２０を初期化し、混合スケジュールを読み込む（Ｓ１０２）。例えば、学習装置１０は、予め作成された混合スケジュール、混合割合の初期値などをフェード制御器２０に設定する。
【００５１】
その後、学習装置１０は、各学習器等を用いた学習を実行し、教師有誤差と教師無誤差とを計算する（Ｓ１０３）。続いて、学習装置１０は、教師有誤差と教師無誤差と用いた上記いずれかの手法により、フェード制御器２０において誤差の混合割合を決定し、混合された割合で誤差を計算する（Ｓ１０４）。ここで、各フェーダーに更新された混合割合が通知される。
【００５２】
その後、学習装置１０は、教師有誤差を最小化するように、教師有学習器１４を更新し（Ｓ１０５）、教師無誤差を最小化するように、教師無学習器１７を更新し（Ｓ１０６）、混合された誤差を最小化するように、特徴生成器１３を更新する（Ｓ１０７）。
【００５３】
そして、学習装置１０は、訓練データが残っているなど、学習を継続する場合（Ｓ１０８：Ｎｏ）、Ｓ１０３以降を繰り返し、訓練データが残っていないなど、学習を終了する場合（Ｓ１０８：Ｙｅｓ）、処理を終了する。
【００５４】
［効果、比較例］
次に、一般的な手法による学習例と実施例１にかかる学習装置１０の学習例について説明する。図５は、半教師学習の具体例を説明する図である。ここでは、＋−のラベルを学習に使える教師有データと、＋−のラベルを学習に使えない教師無データとを用いて学習を行い、教師無データのラベルを推定する学習を例にして説明する。なお、特徴量は２次元とし、教師有学習器は、正例（＋）と負例（−）を直線で分離する線形学習器とする。また、エンコードとデコーダは、図５に示す４種類（ａ、ｂ、ｃ、ｄ）のデータに対して、同種のデータは近く、異種のデータは遠くなるように学習する分散表現（クラスタリング）の学習器とする。
【００５５】
図６は、一般的な半教師学習の学習結果を説明する図である。図６の（ａ）は、学習前の特徴量の分布と教師有学習器の分離直線を示す。学習前であることから、特徴量はランダムに散らばっており、分離直線も適当な場所に存在する。この状態から、教師無学習が先行して進み、特徴量が教師無誤差の低下に偏った場合、図６の（ｂ）の状態となる。すなわち、正（＋）のデータや負（−）のデータが分離されず、ａ、ｂ、ｃ、ｄのクラスタリングが先行して実行されるので、分離直線によって分離される精度が低い。
【００５６】
その後、さらに教師有学習が進むと特徴量が変化して図６の（ｃ）のような状態となる。すなわち、教師有誤差が下がる方向に学習されるので、分離直線の正（＋）側にある負例データが分離直線の負（−）側に移動しようとする。しかし、これ以上、教師有誤差を下げようとすると、図６の（ｄ）の状態となる。すなわち、教師無誤差が大きく増加してクラスタが崩れるため、教師有学習が進まなくなる。したがって、学習精度が劣化する。
【００５７】
図７は、実施例１に学習装置１０を用いて誤差の混合割合を一時的に変更した場合の学習結果を説明する図である。ここでは、学習初期に教師有誤差の割合を高くする混合スケジュールを適用した場合を説明する。この場合、最初は、図７の（ａ）に示すように、教師有データの特徴が大きく変化して図７の（ｂ）に示す状態となる。すなわち、割合の大きい誤差による強い影響を受けるので、正（＋）のデータが分離直線の正側に移動しようとし、負（−）のデータが分離直線の負側に移動しようとする。
【００５８】
その後、誤差の割合を変更しない場合、図７の（ｃ）の状態となる。すなわち、誤差の割合を変えずに教師有誤差の割合が高いまま学習を進めると、クラスタリングが正確に実行されないので、データが分離されず過学習となる。この結果、教師無データの分類精度が劣化する。また、クラスタリングするように、教師無誤差を下げると、教師有誤差が大きく上がるため、教師無学習も進まなくなる。したがって、一般的な手法に比べれば学習精度が向上する。
【００５９】
図８は、実施例１の学習装置１０を用いて誤差の混合割合を動的に変更した場合の学習結果を示す図である。図８の（ａ）に示すように、学習前、特徴量はランダムに散らばっており、分離直線も適当な場所に存在する。この状態から、初期の学習が終了した段階で教師有誤差割合が動的に下がるように混合スケジュールを与えた場合、図８の（ｂ）に示すように、教師無データに対する分類精度が高い学習結果が得られる。
【００６０】
上述したように、学習装置１０は、エンコーダが学習に使用する教師有誤差と教師無誤差のバランスを動的に変化させて一方の誤差のみを低下させる特徴量が生成されないようにすることで、半教師学習の学習精度を向上させることができる。
【実施例２】
【００６１】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００６２】
［学習器の統合］
例えば、教師有学習器と教師無学習器がニューラルネットワーク等で構成され、特徴生成器と統合されている場合は、どちらも混合誤差を最小化することで計算を単純化することもできる。
【００６３】
［混合スケジュール］
上記実施例では、問題の性質に従ってユーザがあらかじめ設定する手法と、動的に変更する手法とを説明したが、これらはいずれか一方を選択して実行することもでき、両方を実行することもできる。例えば、学習装置１０は、問題の性質に応じて、教師有誤差または教師無誤差のいずれの割合を高くするかをあらかじめ決定する。これは、管理者等によって手動で設定することもでき、ユーザが判定基準を生成することで自動判定することもできる。
【００６４】
そして、学習装置１０は、予め決められた混合割合を初期値として学習を開始し、所定時間が経過した場合または所定訓練データ数が学習された場合、上記手法によって、混合割合を動的に変更することができる。
【００６５】
［システム］
記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６７】
［ハードウェア構成］
図９は、ハードウェア構成例を示す図である。図９に示すように、学習装置１０は、通信インタフェース１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。
【００６８】
通信インタフェース１０ａは、他の装置の通信を制御するネットワークインタフェースカードなどである。ＨＤＤ１０ｂは、プログラムやデータなどを記憶する記憶装置の一例である。
【００６９】
メモリ１０ｃの一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。プロセッサ１０ｄの一例としては、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＰＬＤ（Programmable  Logic  Device）等が挙げられる。
【００７０】
また、学習装置１０は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。つまり、学習装置１０は、特徴生成器１３、教師有学習器１４、教師有誤差計算機１５、フェーダー１６、教師無学習器１７、教師無誤差計算機１８、フェーダー１９、フェード制御器２０と同様の機能を実行するプログラムを実行する。この結果、学習装置１０は、特徴生成器１３、教師有学習器１４、教師有誤差計算機１５、フェーダー１６、教師無学習器１７、教師無誤差計算機１８、フェーダー１９、フェード制御器２０と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、学習装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００７１】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【００７２】
１０  学習装置
１１  教師有データＤＢ
１２  教師無データＤＢ
１３  特徴生成器
１４  教師有学習器
１５  教師有誤差計算機
１６  フェーダー
１７  教師無学習器
１８  教師無誤差計算機
１９  フェーダー
２０  フェード制御器
【図１】
2018181071.tif 000003
【図２】
2018181071.tif 000004
【図３】
2018181071.tif 000005
【図４】
2018181071.tif 000006
【図５】
2018181071.tif 000007
【図６】
2018181071.tif 000008
【図７】
2018181071.tif 000009
【図８】
2018181071.tif 000010
【図９】
2018181071.tif 000011