(57)【要約】  半教師あり学習を行う情報処理装置（１０）は、識別器で使用されるパラメータ群である辞書を取得する辞書入力部（１１０）と、辞書と、教師ありデータ（１７２）と、ラベルが付与された教師なしデータ（１７４）とに基づいて、辞書の識別境界を求める境界判定部（１２０）と、識別境界に従って教師なしデータ（１７４）にラベルを付与するラベル付与部（１３０）と、識別境界に基づくラベルと予め付与されたラベルとに応じて算出される教師ありデータ（１７２）の損失と、識別境界から離れるほど小さくなるように算出される教師なしデータ（１７４）の損失との総和を計算する損失計算部（１４０）と、損失の総和を減少させるように、辞書を更新する辞書更新部（１５０）と、更新された辞書を出力する辞書出力部（１６０）と、を備える。
2014136316.tif 000002
【特許請求の範囲】
【請求項１】
教師ありデータ及び教師なしデータを用いて半教師あり学習を行う情報処理装置であって、
識別器で使用されるパラメータ群である辞書を取得する辞書入力部と、
前記辞書と、前記教師ありデータと、ラベルが付与された教師なしデータとに基づいて、前記辞書の識別境界を求める境界判定部と、
前記識別境界に従って前記教師なしデータにラベルを付与するラベル付与部と、
前記識別境界に基づくラベルと予め付与されたラベルとに応じて算出される前記教師ありデータの損失と、前記識別境界から離れるほど小さくなるように算出される前記教師なしデータの損失との総和を計算する損失計算部と、
前記損失の総和を減少させるように、前記辞書を更新する辞書更新部と、
前記更新された辞書を出力する辞書出力部と、
を備える情報処理装置。
【請求項２】
前記損失計算部は、前記教師なしデータの損失を算出する際に、ガウス分布を示す関数を用いる、
請求項１に記載の情報処理装置。
【請求項３】
前記辞書更新部は、前記損失の総和の微分値を用いて、前記辞書を更新する、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記辞書出力部は、前記辞書の更新に伴う前記損失の総和の変化量に基づいて、前記辞書を出力するか、前記辞書の更新を継続するかを判定する、
請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
入力された識別対象のデータを、前記辞書を用いて識別する識別部を更に有する、
請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
教師ありデータ及び教師なしデータを用いて半教師あり学習を行う情報処理装置により実行される情報処理方法であって、
前記情報処理装置が、
識別器で使用されるパラメータ群である辞書を取得し、
前記辞書と、前記教師ありデータと、ラベルが付与された教師なしデータとに基づいて、前記辞書の識別境界を求め、
前記識別境界に従って前記教師なしデータにラベルを付与し、
前記識別境界に基づくラベルと予め付与されたラベルとに応じて算出される前記教師ありデータの損失と、前記識別境界から離れるほど小さくなるように算出される前記教師なしデータの損失との総和を計算し、
前記損失の総和を減少させるように、前記辞書を更新し、
前記更新された辞書を出力する、
ことを含む情報処理方法。
【請求項７】
教師ありデータ及び教師なしデータを用いて半教師あり学習を行う情報処理装置で実行されるプログラムであって、
前記情報処理装置に、
識別器で使用されるパラメータ群である辞書を取得する辞書入力機能と、
前記辞書と、前記教師ありデータと、ラベルが付与された教師なしデータとに基づいて、前記辞書の識別境界を求める境界判定機能と、
前記識別境界に従って前記教師なしデータにラベルを付与するラベル付与機能と、
前記識別境界に基づくラベルと予め付与されたラベルとに応じて算出される前記教師ありデータの損失と、前記識別境界から離れるほど小さくなるように算出される前記教師なしデータの損失との総和を計算する損失計算機能と、
前記損失の総和を減少させるように、前記辞書を更新する辞書更新機能と、
前記更新された辞書を出力する辞書出力機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、教師ありデータと教師なしデータを用いて半教師あり学習を行う情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
半教師あり学習とは、正解クラスがラベルとして付与されたサンプル群からなる教師ありデータと、正解クラスが付与されていないサンプル群からなる教師なしデータの両方を用いて識別器を学習することで、教師ありデータだけを用いて学習する場合よりも高い識別精度を実現できる学習のことである。【０００３】
従来の代表的な半教師あり学習であるSelf-TrainingあるいはCo-Trainingと呼ばれる手法が、非特許文献１に記載されている。これは「識別器が高い確信度で判定したクラスは正しい」ことを仮定した手法で、どのような識別器にも用いることができる利点がある。この他にも、類似度グラフやマニフォールドによる手法（非特許文献１、特許文献１）、ラベルの生成モデルを仮定する手法（特許文献２）、サンプル間のマージンを最大にする決定境界を探索する手法（非特許文献２）などが提案されている。しかしながら、これらの手法は特定の識別器に対する半教師あり学習法であり、どのような識別器にも使えるような汎用的な手法ではない。また、特許文献３には、ラベルあり学習データと、ラベルなし学習データとを用いて、識別モデルパラメタと生成モデルパラメタとを学習し、両モデルが乖離すると罰則が与えられる制約のもと、それぞれのパラメタを算出する、標準パタン学習装置が開示されている。また、特許文献４には、ＬＶＱ２（Learning Vector Quantization：学習ベクトル量子化）において、あるカテゴリに偏った位置に設定されてしまう識別面を、カテゴリ間の中央付近に設定する手法が開示されている。【０００４】
ここで、本発明と関連の深い従来技術である、Self-Trainingについて図２を用いて説明する。図２は、従来の半教師あり学習装置２０の処理構成例を示すブロック図である。図２に示すように、この従来の半教師あり学習装置２０は、辞書入力部２０１と、辞書学習部２０２と、判定部２０３と、ラベル付与部２０４と、辞書出力部２０５と、データ保存部２０６とから構成されており、データ保存部２０６には、教師ありデータ２０７と教師なしデータ２０８とが保存されている。【０００５】
このような構成を有する従来の半教師あり学習装置２０はつぎのように動作する。すなわち、辞書入力部２０１は識別器で使われるパラメータ群で構成される辞書の初期値をメモリにロードし、辞書学習部２０２はデータ保存部２０６に保存されている教師ありデータ２０７およびラベル付与部２０４でラベルが付与された教師なしデータ２０８を用いて前記辞書を学習し、判定部２０３は辞書学習部２０２で学習した辞書を用いて教師なしデータ２０８を認識し、各サンプルについて１位と判定したクラスとその確信度を求め、ラベル付与部２０４は十分高い確信度で判定した教師なしデータ２０８のサンプルに対して判定部２０３で１位と判定したクラスを該サンプルに付与し、辞書学習部２０２はこれらラベルを付与した教師なしデータ２０８と教師ありデータ２０７とを用いて前記辞書をさらに学習することを繰り返す。ラベル付与部２０４で新たなラベルを付与する教師なしデータが存在しないなどの終了条件を満たした場合、辞書出力部２０５はメモリにある学習後の辞書をハードディスクなどに出力する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２１１６９３号公報
【特許文献２】特開２０１０−２８２２７５号公報
【特許文献３】特開２０１１−６５５７９号公報
【特許文献４】特開平６−３３３０５２号公報
【非特許文献】
【０００７】
【非特許文献１】Xiaojin Zhu & Andrew B. Goldberg, "Introduction to Semi-Supervised Learning", Morgan & Claypool Publishers, 2009.
【非特許文献２】T. Joachims, "Transductive Inference for Text Classification using Support Vector Machines", 16th ICML, pp.200-209, 1999.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したような従来手法の問題点は、教師なしデータの全サンプルを学習に用いていないため、辞書の学習精度の改善には限界があるということである。【０００９】
この問題点について、図３乃至図６を用いて詳細に説明する。図３乃至図６は、従来の半教師あり学習の流れを説明するための図である。図３に示したのは、２クラスの２次元データの例である。四角で示した教師ありデータは、属すべき正解クラスが黒あるいは灰色で示すように与えられている。一方、白丸で示した教師なしデータは、本来ならば図４に示す通りの正解が付与されるべきデータであるが、何らかの理由で正解が付与されていないものとする。【００１０】
従来手法は、図５に示すように、学習処理と認識処理を繰り返すことで半教師あり学習を行っている。すなわち、１回目の学習では教師ありデータのみを用いて破線で示す位置に識別境界を設定し、この識別境界を用いて教師なしデータを認識しクラス判定を行う。ここで、斜線で示した識別境界付近は確信度が低い（すなわち、間違えやすい）ため、教師なしデータのうち、斜線で示す領域外に位置するサンプルについてのみクラスを付与する。次に２回目の学習では、教師ありデータとクラスが付与された教師なしデータを用いて識別境界を設定し、この識別境界を用いて教師なしデータを認識しクラス判定を行う。この時、まだラベルが付与されていない教師なしデータのサンプルが存在しても、当該サンプルが斜線で示す領域内にある場合（すなわち、確信度が低い場合）は、新たにラベルを付与するサンプルが存在しないと判断して半教師あり学習を終了する。このように、従来手法では、教師なしデータに含まれる全サンプルを学習に用いていないため、図４と見比べるとわかるように、本来の正解クラスが得られないうちに処理が終了してしまい、辞書の学習精度に改善の余地が残る。【００１１】
またここで、教師なしデータのうち、確信度の低いサンプルまでクラスを付与した場合の例を図６に示す。この例では、１回目の判定で、教師なしデータに含まれるすべてのサンプルにクラスが付与されるため、すべてのサンプルが正しく識別されたと判定されて学習が終了してしまう。このように、従来手法では、確信度の低いサンプルまでクラスを付与したとしても、図４と見比べるとわかるように、本来の正解クラスが得られないうちに処理が終了してしまい、辞書の学習精度に改善の余地が残る。【００１２】
本発明は、上記に鑑みてなされたものであり、辞書の学習精度を改善させた半教師あり学習を行う情報処理装置、情報処理方法およびプログラムを提供する。
【課題を解決するための手段】
【００１３】
本発明の第１の態様は情報処理装置に関する。第１態様に係る情報処理装置は、教師ありデータ及び教師なしデータを用いて半教師あり学習を行う情報処理装置であって、識別器で使用されるパラメータ群である辞書を取得する辞書入力部と、辞書と、教師ありデータと、ラベルが付与された教師なしデータとに基づいて、辞書の識別境界を求める境界判定部と、識別境界に従って教師なしデータにラベルを付与するラベル付与部と、識別境界に基づくラベルと予め付与されたラベルとに応じて算出される教師ありデータの損失と、識別境界から離れるほど小さくなるように算出される教師なしデータの損失との総和を計算する損失計算部と、損失の総和を減少させるように、辞書を更新する辞書更新部と、更新された辞書を出力する辞書出力部と、を備える。【００１４】
本発明の第２の態様は情報処理方法に関する。第２態様に係る情報処理方法は、教師ありデータ及び教師なしデータを用いて半教師あり学習を行う情報処理装置により実行される情報処理方法であって、情報処理装置が、識別器で使用されるパラメータ群である辞書を取得し、辞書と、教師ありデータと、ラベルが付与された教師なしデータとに基づいて、辞書の識別境界を求め、識別境界に従って教師なしデータにラベルを付与し、識別境界に基づくラベルと予め付与されたラベルとに応じて算出される教師ありデータの損失と、識別境界から離れるほど小さくなるように算出される教師なしデータの損失との総和を計算し、損失の総和を減少させるように、辞書を更新し、更新された辞書を出力する、ことを含む。【００１５】
なお、本発明の他の態様としては、上記各態様の構成を少なくとも１つのコンピュータに実現させるプログラムであってもよいし、このようなプログラムを記憶したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
【発明の効果】
【００１６】
本発明によれば、半教師あり学習における辞書の学習精度を改善できる。
【図面の簡単な説明】
【００１７】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１８】
【図１】第１実施形態における情報処理装置の処理構成を概念的に示すブロック図である。
【図２】従来の半教師あり学習装置の処理構成例を示すブロック図である。
【図３】従来の半教師あり学習の流れを説明するための図である。
【図４】従来の半教師あり学習の流れを説明するための図である。
【図５】従来の半教師あり学習の流れを説明するための図である。
【図６】従来の半教師あり学習の流れを説明するための図である。
【図７】第１実施形態における情報処理装置の動作例を示すフローチャートである。
【図８】第１実施形態における情報処理装置の作用を説明するための図である。
【図９】損失関数として用いられるシグモイド関数の一例を示す図である。
【図１０】実施例における処理の流れを示すフローチャートである。
【図１１】第２実施形態における情報処理装置の処理構成を概念的に示すブロック図である。
【図１２】第２実施形態における情報処理装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について説明する。なお、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。なお、以下の説明で用いる各図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２０】
［第１実施形態］
〔処理構成〕
図１は、第１実施形態における情報処理装置１０の処理構成を概念的に示すブロック図である。情報処理装置１０は、教師ありデータ１７２と、教師なしデータ１７４とを用いて、半教師あり学習を行う。図１において、情報処理装置１０は、辞書入力部１１０と、境界判定部１２０と、ラベル付与部１３０と、損失計算部１４０と、辞書更新部１５０と、辞書出力部１６０と、データ保存部１７０とを有する。
【００２１】
辞書入力部１１０は、辞書学習の開始時に、情報処理装置１０で使用される辞書の初期値を取得してメモリ等にロードする。ここでいう"辞書"は、識別器で所定のデータを識別するために使用されるパラメータ群である。また、ここでいう"パラメータ"とは、特に限定されないが、例えば、文字認識で言えば、識別器によって特定の文字と認識される代表パターンの特徴を示すパラメータである。辞書には、これらのパラメータが少なくとも１つは設定されており、識別器は、当該設定されたパラメータの類似度に鑑みて、未知のデータを識別する。
【００２２】
データ保存部１７０は、正解クラスがラベルとして付与されたサンプル群からなる教師ありデータ１７２と、正解クラスがラベルとして付与されていないサンプル群からなる教師なしデータ１７４とを保存している。なお、このデータ保存部１７０は、図１では情報処理装置１０に備えられているが、情報処理装置１０以外の他の装置に備えられていてもよい。
【００２３】
境界判定部１２０は、データ保存部１７０に記憶されている、教師ありデータ１７２及びラベルが付与された教師なしデータ１７４を用いて、辞書入力部１１０に入力された辞書を学習することにより、その辞書における識別境界を求める。すなわち、識別境界と辞書とは相互関係にあり、後述する辞書更新部１５０によって辞書が更新されれば、この識別境界も変動する。
【００２４】
ラベル付与部１３０は、教師なしデータ１７４にラベルを付与する。詳細には、ラベル付与部１３０は、まず、境界判定部１２０によって求められた識別境界を用いて、教師なしデータ１７４に付与すべきラベルを特定する。そして、ラベル付与部１３０は、特定されたラベルを教師なしデータ１７４に付与する。
【００２５】
損失計算部１４０は、データ保存部１７０に記憶されている、教師ありデータ１７２の損失とラベルが付与された教師なしデータ１７４の損失との総和を計算する。詳細には、損失計算部１４０は、教師なしデータ１７４に対しては、識別境界に重きを置いた損失を算出する。"識別境界に重きを置いた損失"とは、境界判定部１２０によって求められた識別境界から離れるほど小さくなるような損失を意味する。例えば、損失計算部１４０は、識別境界から離れた位置に存在する教師なしデータ１７４ほど小さな損失を与えるような関数を用いてもよいし、識別境界から一定の範囲に存在する教師なしデータ１７４にのみ所定値の損失を与えるようにしてもよい。また、損失計算部１４０は、教師ありデータ１７２に対しては、境界判定部１２０によって求められた識別境界で、教師ありデータ１７２が正しく認識されるか否かによって損失を計算する。例えば、損失計算部１４０は、教師ありデータ１７２に予め付与されたラベルと、境界判定部１２０で求められた識別境界によって判定されるラベルが異なっていた場合に、当該教師ありデータ１７２に対して損失を与える。
【００２６】
辞書更新部１５０は、損失計算部１４０によって計算された損失が小さくなるように、辞書のパラメータを更新する。辞書パラメータを更新するアルゴリズムは、例えば、既知の手法を用いてもよく、特に限定されない。
【００２７】
辞書更新部１５０によって辞書が更新された場合は、境界判定部１２０で、識別境界が再度判定される。そして、ラベル付与部１３０で、更新された識別境界に応じて教師なしデータ１７４のラベルが再度付与される。そして、損失計算部１４０で、更新された識別境界に基づいて、教師ありデータ１７２の損失とラベルが付与された教師なしデータ１７４の損失との総和が再計算される。
【００２８】
辞書出力部１６０は、辞書更新後に損失計算部１４０で計算される損失が辞書更新前の損失と比較して小さくならない等、所定の条件を満たした場合、その時点における辞書をハードディスク等の記憶領域に出力する。なお、辞書出力部１６０は、辞書更新後に損失計算部１４０で計算される損失が、ある程度の学習精度を示す所定値以下となった場合に、辞書を出力するようにしてもよい。一方、所定の条件を満たさない場合、辞書出力部１６０は、上述した各処理部に辞書の学習処理を継続させる。
【００２９】
〔動作例〕
第１実施形態における情報処理装置１０を用いて実行される情報処理方法について、図７を用いて説明する。図７は、第１実施形態における情報処理装置１０の動作例を示すフローチャートである。
【００３０】
情報処理装置１０は、教師ありデータ１７２を用いて入力された辞書を学習して、当該辞書の初期の識別境界を求める（Ｓ１０２）。そして、情報処理装置１０は、Ｓ１０２で求めた識別境界に従って、教師なしデータの各サンプルにラベルを付与する（Ｓ１０４）。この時、情報処理装置１０は、十分に大きな値を、第１の損失として設定する。そして、情報処理装置１０は、教師ありデータの損失と、識別境界に重きを置いた教師なしデータの損失との総和を算出し（Ｓ１０６）、これを第２の損失とする。詳細には、情報処理装置１０は、教師なしデータに対する損失を、識別境界から離れるほど損失が小さくなるような関数を用いて算出する。また、情報処理装置１０は、教師ありデータに対する損失を、識別誤りがある場合に損失を与える関数を用いて算出する。そして、情報処理装置１０は、第１の損失と第２の損失とを比較する（Ｓ１０８）。比較した結果、第２の損失が第１の損失よりも小さい場合（Ｓ１０８：ＹＥＳ）、情報処理装置１０は、損失の総和が減少するように辞書を更新する（Ｓ１１０）。またこの時、情報処理装置１０は、Ｓ１０６で算出された第２の損失を、新たな第１の損失として置き換える。またこの時、情報処理装置１０は、更新した辞書と、教師ありデータ１７２と、ラベルが付与された教師なしデータ１７４とを用いて、損失が減少するような識別境界を求め、これを新たな識別境界とする。そして、情報処理装置１０は、新たな識別境界に従って、教師なしデータ１７４を判定し、ラベルを付与し直す（Ｓ１１２）。一方、第２の損失が第１の損失より小さくならない場合は（Ｓ１０８：ＮＯ）、情報処理装置１０は、その時点における辞書をハードディスク等の記憶領域に出力する（Ｓ１１４）。
【００３１】
次に、図８を参照して、本実施形態の作用を説明する。図８は、第１実施形態における情報処理装置１０の作用を説明するための図である。情報処理装置１０は、入力された辞書を用いて教師ありデータを学習し識別境界の初期値を求める（図８の８０１）。次に、情報処理装置１０は、求められた識別境界に応じて教師なしデータの各サンプルのクラスを判定してラベルを付与する。そして、情報処理装置１０は、識別境界に重きを置いた教師なしデータの損失と、教師ありデータの損失との総和を計算する（図８の８０２）。例えば、情報処理装置１０は、教師なしデータについては、識別境界付近の斜線で示す領域に含まれるサンプルには１を、それ以外のサンプルには０を損失として与える。また、情報処理装置１０は、教師ありデータについては、識別誤りとなる情報処理装置１０は、教師なしデータについては、識別境界付近の斜線で示す領域に含まれるサンプルには１を、それ以外のサンプルには０を損失として与える。さらに、情報処理装置１０は、識別境界を少し動かして教師なしデータの各サンプルについて再度クラスを判定してラベルを付与する。そして、情報処理装置１０は、更新された識別境界を基に、識別境界に重きを置いた教師なしデータの損失と、教師ありデータの損失との総和を再度計算し、損失が減少する識別境界を求める（図８の８０３）。情報処理装置１０は、これらの処理を繰り返すことで、計算される損失が変わらなくなった時点、すなわち識別境界付近に設定された斜線の領域に含まれるサンプル数の変化がなくなった時点で処理を終了し、得られた識別境界を辞書として出力する（図８の８０４）。
【００３２】
次に、具体的な実施例を用いて、本発明の動作を説明する。ここでは、教師ありデータを｛ｘｎ，ｔｎ｜ｎ＝１，・・・，Ｎ｝と表記する。ｘｎは教師ありデータのｎ番目のサンプルを表す。また、ｔｎはｘｎの正解クラスを表す。また、Ｎは教師ありデータのサンプル数を表す。同様に、教師なしデータを｛ｚｎ｜ｎ＝１，・・・，Ｍ｝と表記する。ｚｎは教師なしデータのｎ番目のサンプル表す。また、Ｍは教師なしデータのサンプル数を表す。ここで、正解クラスの数をＫとした時、損失Ｌ（θ）は下記の式１で定義される。
【００３３】
【数１】
2014136316.tif 000003
【００３４】
上記式１において、θは辞書と呼ばれる識別器のパラメータ群を表す。また、λ（λ＞０）は教師なしデータに対する重みを表す。また、１（・・・）は真偽値に応じて所定の値を返却する指示関数を表す。本実施例で、この指示関数は、括弧内の条件式が真（ｔｒｕｅ）であれば１を返却し、偽（ｆａｌｓｅ）であれば０を返却する。また、ωｋはｋ番目の正解クラスを表す。また、ｒｎ（θ）はｚｎに対して識別器が判定したクラスを表す。また、上記式１において、ρｋｊ（・・・）は下記の式２で定義される。
【００３５】
【数２】
2014136316.tif 000004
【００３６】
ここで、ｇｋ（・・・）は、クラスωｋの識別関数を表す。ただし、識別関数の値は常に正であり、属する可能性が高いクラスほど、その値が大きくなるように定義される。すなわち、ｉ＝１，・・・，Ｋに対してｇｉ（・・・）が最大となるクラスωｉが、識別器の判定する１位クラスとなる。従って、ρｋｊ（・・・）が負であれば、ｘはクラスωｋに正しく判定されていることを意味する。具体的には、ρｋｊ（・・・）が負の場合は、対象とするサンプルｘｎまたはサンプルｚｎが、クラスωｋとクラスωｊとの識別境界を基準として、クラスωｋ側に位置することを意味する。また、ρｋｊ（・・・）が正の場合は、対象とするサンプルｘｎまたはサンプルｚｎが、クラスωｋとクラスωｊとの識別境界を基準として、クラスωｊ側に位置することを意味する。また、ρｋｊ（・・・）＝０であれば、サンプルｘｎまたはサンプルｚｎはクラスωｋとクラスωｊとの識別境界上に存在することを意味する。すなわち、本具体例のρｋｊ（・・・）によれば、対象とするサンプルｘｎまたはサンプルｚｎの識別境界からの距離を判断できる。
【００３７】
ｆ（・・・）は、損失の大きさを表す任意の単調増加関数であり、例えば、下記の式３で定義されるようなシグモイド関数である。なお、図９は、損失関数として用いられるシグモイド関数の一例を示す図である。
【００３８】
【数３】
2014136316.tif 000005
【００３９】
ここで、ξ（ξ＞０）は、シグモイド関数の傾きを表すパラメータである。図９に示す損失関数によれば、誤認識（ρ＞０）となるサンプルに対しては大きな損失が与えられ、正認識（ρ＜０）となるサンプルに対しては小さな損失が与えられる。教師なしデータに対しては、識別器が判定する１位クラスが付与されるため、教師なしデータの各サンプルはいずれも正認識となる。よって、教師なしデータに関しては、識別境界に近いサンプルほど、大きな損失が与えられる。これは、図８の斜線で示した、識別境界に重きを置いた損失と同等の効果を有している。
【００４０】
また、教師なしデータに対するｆ（・・・）としては、ガウス分布を示す関数等、識別境界（ρ＝０）を中心に単調減少する任意の関数を用いても構わない。
【００４１】
損失Ｌ（θ）が減少するように辞書を更新するためには、例えば、下記の式４に示される、最急降下法を用いることができる。ここで、θ（ｔ）は更新前の辞書を表し、θ（ｔ＋１）は更新後の辞書を表す。ただし、下記の式４において、εは微小な正の値である。
【００４２】
【数４】
2014136316.tif 000006
【００４３】
また、上記の式４を用いる以外にも、θに適当な値を加えて変化させ、損失Ｌ（θ）が減少するようなθを新たな辞書として採用してもよい。
【００４４】
次に、図１０に示すフローチャートを参照して、本実施例の動作について説明する。図１０は、実施例における処理の流れを示すフローチャートである。
【００４５】
情報処理装置１０は、まず、教師ありデータ１７２を用いて入力された辞書θを学習し、初期の識別境界を求める（Ｓ１００２）。そして、情報処理装置１０は、求めた識別境界に従って、教師なしデータ１７４にラベルを付与する。この時、情報処理装置１０は、第１の損失Ｌ１として十分大きな値を設定する（Ｓ１００４）。そして、情報処理装置１０は、教師ありデータ１７２および教師なしデータ１７４に対して式１に従い損失Ｌ(θ)を計算し、これを第２の損失Ｌ２とする（Ｓ１００６）。そして、情報処理装置１０は、第１の損失Ｌ１と第２の損失Ｌ２を比較する（Ｓ１００８）。比較した結果、第２の損失Ｌ２が第１の損失Ｌ１よりも小さい場合（Ｓ１００８：ＹＥＳ）、情報処理装置１０は、式４に従って損失が減少するように辞書θを更新する（Ｓ１０１０）。またこの時、情報処理装置１０は、Ｓ１００６で算出された第２の損失Ｌ２を、新たな第１の損失Ｌ１として置き換える。またこの時、情報処理装置１０は、更新した辞書θと、教師ありデータ１７２と、ラベルが付与された教師なしデータ１７４とを用いて、損失が減少するような識別境界を求め、これを新たな識別境界とする。そして、情報処理装置１０は、新たな識別境界に従って、教師なしデータ１７４を判定し、ラベルを付与し直す（Ｓ１０１２）。一方、第２の損失Ｌ２が第１の損失Ｌ１より小さくならない場合は（Ｓ１００８：ＮＯ）、情報処理装置１０は、その時点における辞書をハードディスク等の記憶領域に出力する（Ｓ１０１４）。
【００４６】
〔第１実施形態の効果〕
以上、本実施形態によれば、識別境界付近の教師なしデータ１７４も学習に用いることができ、半教師あり学習の学習精度が改善される。
【００４７】
［第２実施形態］
第２実施形態は、以下の点を除いて、第１実施形態と同様である。
【００４８】
〔処理構成〕
図１１は、第２実施形態における情報処理装置１０の処理構成を概念的に示す図である。図１１において、情報処理装置１０は、識別部１８０を更に有する。
【００４９】
識別部１８０は、辞書出力部１６０から出力された辞書を用いて、情報処理装置１０に入力された識別対象のデータがどのクラスに属するかを分類する。
【００５０】
〔動作例〕
第２実施形態における情報処理装置１０を用いて実行される情報処理方法について、図１２を用いて説明する。図１２は、第２実施形態における情報処理装置１０の動作例を示すフローチャートである。
【００５１】
情報処理装置１０は、ユーザからの入力や所定のファイルの読込などにより、識別対象のデータを取得する（Ｓ２０２）。そして、情報処理装置１０は、取得された識別対象のデータを、辞書出力部１６０から出力された辞書を用いて識別する（Ｓ２０４）。そして、情報処理装置１０は、識別の結果を出力する（Ｓ２０６）。情報処理装置１０は、例えばディスプレイ等の表示装置に識別結果を出力してもよいし、プリンタを用いて帳票に識別結果を出力してもよい。
【００５２】
〔第２実施形態の効果〕
以上、本実施形態によれば、情報処理装置１０によって学習された辞書によって、任意のデータを識別し、その識別結果を提示することができる。
【００５３】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【００５４】
また、上述した実施形態では、説明の便宜上、データを２クラスに分類する例を示したが、本発明は、３クラス以上に分類する場合にも同様に適用できる。
【００５５】
また、上述の説明で用いた複数のフローチャートでは、複数の工程（処理）が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。
【００５６】
以下、参考形態の例を付記する。
１．
教師ありデータ及び教師なしデータを用いて半教師あり学習を行う情報処理装置であって、
識別器で使用されるパラメータ群である辞書を取得する辞書入力部と、
前記辞書と、前記教師ありデータと、ラベルが付与された教師なしデータとに基づいて、前記辞書の識別境界を求める境界判定部と、
前記識別境界に従って前記教師なしデータにラベルを付与するラベル付与部と、
前記識別境界に基づくラベルと予め付与されたラベルとに応じて算出される前記教師ありデータの損失と、前記識別境界から離れるほど小さくなるように算出される前記教師なしデータの損失との総和を計算する損失計算部と、
前記損失の総和を減少させるように、前記辞書を更新する辞書更新部と、
前記更新された辞書を出力する辞書出力部と、
を備える情報処理装置。
２．
前記損失計算部は、前記教師なしデータの損失を算出する際に、ガウス分布を示す関数を用いる、
１．に記載の情報処理装置。
３．
前記辞書更新部は、前記損失の総和の微分値を用いて、前記辞書を更新する、
１．又は２．に記載の情報処理装置。
４．
前記辞書出力部は、前記辞書の更新に伴う前記損失の総和の変化量に基づいて、前記辞書を出力するか、前記辞書の更新を継続するかを判定する、
１．乃至３．のいずれか１つに記載の情報処理装置。
５．
入力された識別対象のデータを、前記辞書を用いて識別する識別部を更に有する、
１．乃至４．のいずれか１つに記載の情報処理装置。
６．
教師ありデータ及び教師なしデータを用いて半教師あり学習を行う情報処理装置により実行される情報処理方法であって、
前記情報処理装置が、
識別器で使用されるパラメータ群である辞書を取得し、
前記辞書と、前記教師ありデータと、ラベルが付与された教師なしデータとに基づいて、前記辞書の識別境界を求め、
前記識別境界に従って前記教師なしデータにラベルを付与し、
前記識別境界に基づくラベルと予め付与されたラベルとに応じて算出される前記教師ありデータの損失と、前記識別境界から離れるほど小さくなるように算出される前記教師なしデータの損失との総和を計算し、
前記損失の総和を減少させるように、前記辞書を更新し、
前記更新された辞書を出力する、
ことを含む情報処理方法。
７．
前記情報処理装置が、前記教師なしデータの損失を算出する際に、ガウス分布を示す関数を用いる、
ことを含む６．に記載の情報処理方法。
８．
前記情報処理装置が、前記損失の総和の微分値を用いて、前記辞書を更新する、
ことを含む６．又は７．に記載の情報処理方法。
９．
前記情報処理装置が、前記辞書の更新に伴う前記損失の総和の変化量に基づいて、前記辞書を出力するか、前記辞書の更新を継続するかを判定する、
ことを含む６．乃至８．のいずれか１つに記載の情報処理方法。
１０．
前記情報処理装置が、入力された識別対象のデータを、前記辞書を用いて識別する、
ことを含む６．乃至９．のいずれか１つに記載の情報処理方法。
１１．
教師ありデータ及び教師なしデータを用いて半教師あり学習を行う情報処理装置で実行されるプログラムであって、
前記情報処理装置に、
識別器で使用されるパラメータ群である辞書を取得する辞書入力機能と、
前記辞書と、前記教師ありデータと、ラベルが付与された教師なしデータとに基づいて、前記辞書の識別境界を求める境界判定機能と、
前記識別境界に従って前記教師なしデータにラベルを付与するラベル付与機能と、
前記識別境界に基づくラベルと予め付与されたラベルとに応じて算出される前記教師ありデータの損失と、前記識別境界から離れるほど小さくなるように算出される前記教師なしデータの損失との総和を計算する損失計算機能と、
前記損失の総和を減少させるように、前記辞書を更新する辞書更新機能と、
前記更新された辞書を出力する辞書出力機能と、
を実現させるプログラム。
１２．
前記情報処理装置に、前記教師なしデータの損失を算出する際に、ガウス分布を示す関数を用いる前記損失計算機能、
を実現させる１１．に記載のプログラム。
１３．
前記情報処理装置に、前記損失の総和の微分値を用いて、前記辞書を更新する前記辞書更新機能、
を実現させる１１．又は１２．に記載のプログラム。
１４．
前記情報処理装置に、前記辞書の更新に伴う前記損失の総和の変化量に基づいて、前記辞書を出力するか、前記辞書の更新を継続するかを判定する前記辞書出力機能、
を実現させる１１．乃至１３．のいずれか１つに記載のプログラム。
１５．
前記情報処理装置に、入力された識別対象のデータを、前記辞書を用いて識別する識別機能、
を更に実現させる１１．乃至１４．のいずれか１つに記載のプログラム。
【００５７】
この出願は、２０１３年３月４日に出願された日本出願特願２０１３−０４２０１４号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2014136316.tif 000007
【図２】
2014136316.tif 000008
【図３】
2014136316.tif 000009
【図４】
2014136316.tif 000010
【図５】
2014136316.tif 000011
【図６】
2014136316.tif 000012
【図７】
2014136316.tif 000013
【図８】
2014136316.tif 000014
【図９】
2014136316.tif 000015
【図１０】
2014136316.tif 000016
【図１１】
2014136316.tif 000017
【図１２】
2014136316.tif 000018
【国際調査報告】
2014136316.tif 000019
2014136316.tif 000020