(57)【特許請求の範囲】
【請求項１】
入力データ及び当該入力データに対応する目的変数で構成される複数の学習用データが与えられた場合に、複数の基底関数に前記入力データを入力して、前記各基底関数の出力値を要素とする特徴量ベクトルを算出する特徴量ベクトル算出部と、
特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように当該点の分布を調整する分布調整部と、
複数の前記学習用データについて、前記特徴量ベクトルの入力に応じて前記目的変数の推定値を出力する推定関数を生成する関数生成部と、
を備え、
前記分布調整部は、追加的に新たな学習用データが与えられた場合に、当該新たな学習用データと既存の学習用データとを含む学習用データ群を対象に、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように前記学習用データを間引く、
情報処理装置。
【請求項２】
前記分布調整部は、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように前記各学習用データに対して重み付けする、
請求項１に記載の情報処理装置。
【請求項３】
前記分布調整部は、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように、間引き後に残った学習用データの各々に対して重み付けする、
請求項１に記載の情報処理装置。
【請求項４】
前記所定の分布は、一様分布又はガウス分布である、
請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
予め用意された複数の関数を組み合わせて前記基底関数を生成する基底関数生成部をさらに備える、
請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
前記基底関数生成部は、遺伝的アルゴリズムに基づいて前記基底関数を更新し、
前記特徴量ベクトル算出部は、前記基底関数が更新された場合に、更新後の前記基底関数に前記入力データを入力して特徴量ベクトルを算出し、
前記関数生成部は、前記更新後の基底関数を用いて算出された特徴量ベクトルの入力に応じて前記目的変数の推定値を出力する推定関数を生成する、
請求項５に記載の情報処理装置。
【請求項７】
入力データ及び当該入力データに対応する目的変数で構成される複数の学習用データが与えられた場合に、複数の基底関数に前記入力データを入力して、前記各基底関数の出力値を要素とする特徴量ベクトルを算出するステップと、
特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように当該点の分布を調整するステップと、
複数の前記学習用データについて、前記特徴量ベクトルの入力に対して前記目的変数の推定値を出力する推定関数を生成するステップと、
追加的に新たな学習用データが与えられた場合に、当該新たな学習用データと既存の学習用データとを含む学習用データ群を対象に、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように前記学習用データを間引くステップと、
を含む、
推定機生成方法。
【請求項８】
入力データ及び当該入力データに対応する目的変数で構成される複数の学習用データが与えられた場合に、複数の基底関数に前記入力データを入力して、前記各基底関数の出力値を要素とする特徴量ベクトルを算出する特徴量ベクトル算出機能と、
特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように当該点の分布を調整する分布調整機能と、
複数の前記学習用データについて、前記特徴量ベクトルの入力に応じて前記目的変数の推定値を出力する推定関数を生成する関数生成機能と、
追加的に新たな学習用データが与えられた場合に、当該新たな学習用データと既存の学習用データとを含む学習用データ群を対象に、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように前記学習用データを間引く機能と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、推定機生成方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、定量的に特徴を決定づけることが難しい任意のデータ群から、そのデータ群の特徴量を機械的に抽出する手法に注目が集まっている。例えば、任意の音楽データを入力とし、その音楽データが属する音楽のジャンルを機械的に抽出するアルゴリズムを自動構築する手法が知られている。ジャズ、クラシック、ポップス等、音楽のジャンルは、楽器の種類や演奏形態に応じて定量的に決まるものではない。そのため、これまでは任意の音楽データが与えられたときに、その音楽データから機械的に音楽のジャンルを抽出することは一般的に難しいと考えられていた。
【０００３】
しかし、実際には、音楽データに含まれる音程の組み合わせ、音程の組み合わせ方、楽器の種類の組み合わせ、メロディーラインやベースラインの構造等、様々な情報の組み合わせの中に、音楽のジャンルを分ける特徴が潜在的に含まれている。そのため、この特徴を抽出するアルゴリズム（以下、特徴量抽出機）を機械学習により自動構築できないか、という観点から特徴量抽出機の研究が行われた。その研究成果の一つとして、例えば、下記の特許文献１に記載された遺伝アルゴリズムに基づく特徴量抽出機の自動構築方法を挙げることができる。遺伝アルゴリズムとは、生物の進化過程に倣い、機械学習の過程で、選択、交差、突然変異の要素を考慮したものを言う。
【０００４】
同文献に記載の特徴量抽出機自動構築アルゴリズムを利用することにより、任意の音楽データから、その音楽データが属する音楽のジャンルを抽出する特徴量抽出機を自動構築することができるようになる。また、同文献に記載の特徴量抽出機自動構築アルゴリズムは、非常に汎用性が高く、音楽データに限らず、任意のデータ群から、そのデータ群の特徴量を抽出する特徴量抽出機を自動構築することができる。そのため、同文献に記載の特徴量抽出機自動構築アルゴリズムは、音楽データや映像データのような人工的なデータの特徴量解析、自然界に存在する様々な観測量の特徴量解析への応用が期待されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−４８２６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の文献に記載の特徴量抽出式自動構築アルゴリズムは、予め用意された学習用データを利用して特徴量抽出式を自動構築する。また、学習用データの数が多いほど、自動構築される特徴量抽出式の性能が向上する。しかし、特徴量抽出式の構築に利用可能なメモリ量には限りがある。また、学習用データの数が多いと、特徴量抽出式の構築を実現するために高い演算性能が要求される。そのため、多量に供給される学習用データのうち、特徴量抽出式の性能向上に寄与する有用な学習用データを優先的に利用する仕組みが求められている。この仕組みを実現することで、より精度の高い特徴量抽出式が得られるようになるため、特徴量抽出式を利用して結果を推定する推定機の性能を向上させることが可能になると期待される。
【０００７】
そこで、本技術は、上記のような事情を受けて考案されたものであり、より高性能な推定機を生成することが可能な、新規かつ改良された情報処理装置、推定機生成方法、及びプログラムを提供することを意図している。
【課題を解決するための手段】
【０００８】
本技術のある観点によれば、入力データ及び当該入力データに対応する目的変数で構成される複数の学習用データが与えられた場合に、複数の基底関数に前記入力データを入力して、前記各基底関数の出力値を要素とする特徴量ベクトルを算出する特徴量ベクトル算出部と、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように当該点の分布を調整する分布調整部と、複数の前記学習用データについて、前記特徴量ベクトルの入力に応じて前記目的変数の推定値を出力する推定関数を生成する関数生成部と、を備える、情報処理装置が提供される。
【０００９】
また、本技術の別の観点によれば、入力データ及び当該入力データに対応する目的変数で構成される複数の学習用データが与えられた場合に、複数の基底関数に前記入力データを入力して、前記各基底関数の出力値を要素とする特徴量ベクトルを算出するステップと、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように当該点の分布を調整するステップと、複数の前記学習用データについて、前記特徴量ベクトルの入力に対して前記目的変数の推定値を出力する推定関数を生成するステップと、を含む、推定機生成方法が提供される。
【００１０】
また、本技術の別の観点によれば、入力データ及び当該入力データに対応する目的変数で構成される複数の学習用データが与えられた場合に、複数の基底関数に前記入力データを入力して、前記各基底関数の出力値を要素とする特徴量ベクトルを算出する特徴量ベクトル算出機能と、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように当該点の分布を調整する分布調整機能と、複数の前記学習用データについて、前記特徴量ベクトルの入力に応じて前記目的変数の推定値を出力する推定関数を生成する関数生成機能と、をコンピュータに実現させるためのプログラムが提供される。
【００１１】
また、本技術の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【００１２】
以上説明したように本技術によれば、より高性能な推定機を生成することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】機械学習により構築された推定機を利用して結果を推定するシステムの構成について説明するための説明図である。
【図２】推定機の構築に利用される学習用データの構成について説明するための説明図である。
【図３】推定機の構造について説明するための説明図である。
【図４】推定機の構築方法について説明するための説明図である。
【図５】推定機の構築方法について説明するための説明図である。
【図６】推定機の構築方法について説明するための説明図である。
【図７】推定機の構築方法について説明するための説明図である。
【図８】推定機の構築方法について説明するための説明図である。
【図９】推定機の構築方法について説明するための説明図である。
【図１０】推定機の構築方法について説明するための説明図である。
【図１１】推定機の構築方法について説明するための説明図である。
【図１２】推定機の構築方法について説明するための説明図である。
【図１３】オンライン学習について説明するための説明図である。
【図１４】オフライン学習に基づく推定機の構築方法及びオンライン学習に基づく推定機の構築方法に関して解決すべき課題について説明するための説明図である。
【図１５】本実施形態に係る情報処理装置の機能構成について説明するための説明図である。
【図１６】本実施形態に係る推定機構築部の詳細な機能構成について説明するための説明図である。
【図１７】特徴量空間における学習用データの分布と推定機の精度との関係について説明するための説明図である。
【図１８】特徴量空間における学習用データの分布と推定機の精度との関係及びオンライン学習の効果について説明するための説明図である。
【図１９】本実施形態に係る学習用データのサンプリング方法について説明するための説明図である。
【図２０】本実施形態に係る効率的な学習用データのサンプリング方法について説明するための説明図である。
【図２１】本実施形態に係る効率的な学習用データのサンプリング方法について説明するための説明図である。
【図２２】本実施形態に係る効率的な学習用データのサンプリング方法について説明するための説明図である。
【図２３】本実施形態に係る効率的な学習用データのサンプリング方法について説明するための説明図である。
【図２４】本実施形態に係る効率的な学習用データのサンプリング方法について説明するための説明図である。
【図２５】本実施形態に係る効率的な学習用データのサンプリング方法について説明するための説明図である。
【図２６】本実施形態に係る効率的な学習用データのサンプリング方法について説明するための説明図である。
【図２７】本実施形態に係る効率的な重み付け方法について説明するための説明図である。
【図２８】本実施形態に係る効率的な重み付け方法について説明するための説明図である。
【図２９】本実施形態に係る効率的な重み付け方法について説明するための説明図である。
【図３０】本実施形態に係る効率的な重み付け方法について説明するための説明図である。
【図３１】本実施形態に係る効率的なサンプリング／重み付け方法について説明するための説明図である。
【図３２】本実施形態の一変形例に係る学習用データの選択方法について説明するための説明図である。
【図３３】本実施形態の一変形例に係る学習用データの選択方法について説明するための説明図である。
【図３４】本実施形態の一変形例に係る重み付け方法について説明するための説明図である。
【図３５】本実施形態の一変形例に係る学習用データの選択方法について説明するための説明図である。
【図３６】本実施形態の一変形例に係る重み付け方法について説明するための説明図である。
【図３７】画像認識機の構築に利用する学習用データの生成方法について説明するための説明図である。
【図３８】言語解析機の構築に利用する学習用データの生成方法について説明するための説明図である。
【図３９】オンライン学習の適用により得られる効果について説明するための説明図である。
【図４０】本実施形態に係る情報処理装置の機能を実現することが可能なハードウェア構成例を示した説明図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照しながら、本技術に係る好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１５】
［説明の流れについて］
ここで、以下に記載する説明の流れについて簡単に述べる。
【００１６】
まず、図１〜図１２を参照しながら、推定機の自動構築方法について説明する。次いで、図１３及び図１４を参照しながら、オンライン学習に基づく推定機の自動構築方法について説明する。次いで、図１５及び図１６を参照しながら、本実施形態に係る情報処理装置１０の機能構成について説明する。次いで、図１７〜図１９を参照しながら、本実施形態に係る学習用データの統合方法について説明する。
【００１７】
次いで、図２０〜図２６を参照しながら、本実施形態に係る効率的な学習用データのサンプリング方法について説明する。次いで、図２７〜図３０を参照しながら、本実施形態に係る効率的な重み付け方法について説明する。次いで、図３１を参照しながら、本実施形態に係る効率的な学習用データのサンプリング方法及び重み付け方法を組み合わせる方法について説明する。
【００１８】
次いで、図３２を参照しながら、本実施形態の一変形例（変形例１）に係る学習用データのサンプリング方法について説明する。次いで、図３３及び図３４を参照しながら、本実施形態の一変形例（変形例２）に係る学習用データのサンプリング方法及び重み付け方法について説明する。次いで、図３５及び図３６を参照しながら、本実施形態の一変形例（変形例３）に係る学習用データのサンプリング方法及び重み付け方法について説明する。
【００１９】
次いで、図３７を参照しながら、本実施形態に係る技術を画像認識機の自動構築方法に応用する方法について説明する。次いで、図３８を参照しながら、本実施形態に係る技術を言語解析機の自動構築方法に応用する方法について説明する。次いで、図３９を参照しながら、本実施形態に係るオンライン学習の効果について説明する。次いで、図４０を参照しながら、本実施形態に係る情報処理装置１０の機能を実現することが可能なハードウェア構成例について説明する。
【００２０】
最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
【００２１】
（説明項目）
１：はじめに
１−１：推定機の自動構築方法
１−１−１：推定機の構成
１−１−２：構築処理の流れ
１−２：オンライン学習の実現に向けて
２：実施形態
２−１：情報処理装置１０の機能構成
２−２：学習用データの統合方法
２−２−１：特徴量空間における学習用データの分布と推定機の精度
２−２−２：データ統合時にサンプリングする構成
２−２−３：データ統合時に重み付けする構成
２−２−４：データ統合時にサンプリング及び重み付けする構成
２−３：効率的なサンプリング／重み付け方法
２−３−１：サンプリング方法
２−３−２：重み付け方法
２−３−３：組み合わせ方法
２−４：サンプリング処理及び重み付け処理に関する変形例
２−４−１：変形例１（距離に基づく処理）
２−４−２：変形例２（クラスタリングに基づく処理）
２−４−３：変形例３（密度推定手法に基づく処理）
３：応用例
３−１：画像認識機の自動構築方法
３−２：言語解析機の自動構築方法
４：ハードウェア構成例
５：まとめ
【００２２】
＜１：はじめに＞
後述する実施形態は、推定機の自動構築方法に関する。また、同実施形態は、推定機の構築に用いる学習用データを追加できるようにする仕組み（以下、オンライン学習）に関する。そこで、同実施形態に係る技術について詳細に説明するに先立ち、推定機の自動構築方法及びオンライン学習を実現するに当たって解決すべき課題について説明する。なお、以下では遺伝アルゴリズムに基づく推定機の自動構築方法を例に挙げて説明を進めるが、同実施形態に係る技術の適用範囲はこれに限定されない。
【００２３】
［１−１：推定機の自動構築方法］
推定機の自動構築方法について説明する。
【００２４】
（１−１−１：推定機の構成）
はじめに、図１〜図３を参照しながら、推定機の構成について説明する。図１は、推定機を利用するシステムのシステム構成例を示した説明図である。また、図２は、推定機の構築に利用する学習用データの構成例を示した説明図である。そして、図３は、推定機の構造及び構築方法の概要を示した説明図である。
【００２５】
まず、図１を参照する。図１に示すように、推定機の構築及び推定値の算出は、例えば、情報処理装置１０により実行される。情報処理装置１０は、複数の学習用データ（Ｘ１，ｔ１），…，（ＸＮ，ｔＮ）を利用して推定機を構築する。なお、以下の説明において、学習用データの集合を学習用データセットと呼ぶ場合がある。また、情報処理装置１０は、構築した推定機を利用して入力データＸから推定値ｙを算出する。この推定値ｙは、入力データＸの認識に利用される。例えば、推定値ｙが所定の閾値Ｔｈより大きい場合に認識結果ＹＥＳが得られ、推定値ｙが所定の閾値Ｔｈより小さい場合に認識結果ＮＯが得られる。
【００２６】
図２を参照しながら、より具体的に推定機の構成について考えてみよう。図２に例示した学習用データセットは、“海”の画像を認識する画像認識機の構築に利用されるものである。この場合、情報処理装置１０により構築される推定機は、入力された画像の“海らしさ”を表す推定値ｙを出力するものとなる。図２に示すように、学習用データは、データＸｋと目的変数ｔｋとのペア（但し、ｋ＝１〜Ｎ）により構成される。データＸｋは、ｋ番目の画像データ（画像＃ｋ）である。また、目的変数ｔｋは、画像＃ｋが“海”の画像である場合に１、画像＃ｋが“海”の画像でない場合に０となる変数である。
【００２７】
図２の例では、画像＃１が“海”の画像であり、画像＃２が“海”の画像であり、…、画像＃Ｎが“海”の画像でない。この場合、ｔ１＝１、ｔ２＝１、…、ｔＮ＝０となる。この学習用データセットが入力されると、情報処理装置１０は、入力された学習用データセットに基づく機械学習により、入力された画像の“海らしさ”を表す推定値ｙを出力する推定機を構築する。この推定値ｙは、入力された画像の“海らしさ”が高いほど１に近づき、“海らしさ”が低いほど０に近づく値である。
【００２８】
また、新たに入力データＸ（画像Ｘ）が入力されると、情報処理装置１０は、学習用データセットを利用して構築された推定機に画像Ｘを入力し、画像Ｘの“海らしさ”を表す推定値ｙを算出する。この推定値ｙを利用すると、画像Ｘが“海”の画像であるか否かを認識することが可能になる。例えば、推定値ｙ≧所定の閾値Ｔｈの場合、入力された画像Ｘが“海”の画像であると認識される。一方、推定値ｙ＜所定の閾値Ｔｈの場合、入力された画像Ｘが“海”の画像でないと認識される。
【００２９】
本実施形態は、上記のような推定機を自動構築する技術に関する。なお、ここでは画像認識機の構築に利用される推定機について説明したが、本実施形態に係る技術は、様々な推定機の自動構築方法に適用することができる。例えば、言語解析機の構築に適用することもできるし、楽曲のメロディーラインやコード進行などを解析する音楽解析機の構築にも適用することができる。さらに、蝶の動きや雲の流れなどの自然現象を再現したり、自然の振る舞いを予測したりする動き予測機の構築などにも適用することができる。
【００３０】
例えば、特開２００９−４８２６６号公報、特願２０１０−１５９５９８号明細書、特願２０１０−１５９５９７号明細書、特願２００９−２７７０８３号明細書、特願２００９−２７７０８４号明細書などに記載のアルゴリズムに適用することができる。また、ＡｄａＢｏｏｓｔなどのアンサンブル学習手法や、ＳＶＭやＳＶＲなどのカーネルを用いた学習手法などにも適用できる。ＡｄａＢｏｏｓｔなどのアンサンブル学習手法に適用する場合、弱学習機（Ｗｅａｋ  Ｌｅａｒｎｅｒ）が後述する基底関数φに対応する。また、ＳＶＭやＳＶＲなどの学習手法に適用する場合、カーネルが後述する基底関数φに対応する。なお、ＳＶＭはＳｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ、ＳＶＲはＳｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｒｅｇｒｅｓｓｉｏｎ、ＲＶＭはＲｅｌｅｖａｎｃｅ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅの略である。
【００３１】
ここで、図３を参照しながら、推定機の構造について説明する。図３に示すように、推定機は、基底関数リスト（φ１，…，φＭ）及び推定関数ｆにより構成される。基底関数リスト（φ１，…，φＭ）は、Ｍ個の基底関数φｋ（ｋ＝１〜Ｍ）を含む。また、基底関数φｋは、入力データＸの入力に応じて特徴量ｚｋを出力する関数である。さらに、推定関数ｆは、Ｍ個の特徴量ｚｋ（ｋ＝１〜Ｍ）を要素として含む特徴量ベクトルＺ＝（ｚ１，…，ｚＭ）の入力に応じて推定値ｙを出力する関数である。基底関数φｋは、予め用意された１又は複数の処理関数を組み合わせて生成される。
【００３２】
処理関数としては、例えば、三角関数、指数関数、四則演算、デジタルフィルタ、微分演算、中央値フィルタ、正規化演算、ホワイトノイズの付加処理、画像処理フィルタなどが利用可能である。例えば、入力データＸが画像の場合、ホワイトノイズの付加処理ＡｄｄＷｈｉｔｅＮｏｉｓｅ（）、中央値フィルタＭｅｄｉａｎ（）、ぼかし処理Ｂｌｕｒ（）を組み合わせた基底関数φｊ（Ｘ）＝ＡｄｄＷｈｉｔｅＮｏｉｓｅ（Ｍｅｄｉａｎ（Ｂｌｕｒ（Ｘ）））などが利用される。この基底関数φｊは、入力データＸに対し、ぼかし処理、中央値フィルタ処理、及びホワイトノイズの付加処理を順次施すことを意味する。
【００３３】
（１−１−２：構築処理の流れ）
さて、基底関数φｋ（ｋ＝１〜Ｍ）の構成、基底関数リストの構成、推定関数ｆの構成は、学習用データセットに基づく機械学習により決定される。以下、この機械学習による推定機の構築処理について、より詳細に説明する。
【００３４】
（全体構成）
まず、図４を参照しながら、全体的な処理の流れについて説明する。図４は、全体的な処理の流れについて説明するための説明図である。なお、以下で説明する処理は、情報処理装置１０により実行される。
【００３５】
図４に示すように、まず、情報処理装置１０に学習用データセットが入力される（Ｓ１０１）。なお、学習用データとしては、データＸと目的変数ｔの組が入力される。学習用データセットが入力されると、情報処理装置１０は、処理関数を組み合わせて基底関数を生成する（Ｓ１０２）。次いで、情報処理装置１０は、基底関数にデータＸを入力して特徴量ベクトルＺを算出する（Ｓ１０３）。次いで、情報処理装置１０は、基底関数の評価及び推定関数の生成を行う（Ｓ１０４）。
【００３６】
次いで、情報処理装置１０は、所定の終了条件を満たしたか否かを判定する（Ｓ１０５）。所定の終了条件を満たした場合、情報処理装置１０は、処理をステップＳ１０６に進める。一方、所定の終了条件を満たしていない場合、情報処理装置１０は、処理をステップＳ１０２に戻し、ステップＳ１０２〜Ｓ１０４の処理を繰り返し実行する。処理をステップＳ１０６に進めた場合、情報処理装置１０は、推定関数を出力する（Ｓ１０６）。上記の通り、ステップＳ１０２〜Ｓ１０４の処理は、繰り返し実行される。そこで、以下の説明においては、第τ回目の繰り返し処理においてステップＳ１０２で生成される基底関数を第τ世代の基底関数と呼ぶことにする。
【００３７】
（基底関数の生成（Ｓ１０２））
ここで、図５〜図１０を参照しながら、ステップＳ１０２の処理（基底関数の生成）について、より詳細に説明する。
【００３８】
まず、図５を参照する。図５に示すように、情報処理装置１０は、現在の世代が２世代目以降であるか否かを判定する（Ｓ１１１）。つまり、情報処理装置１０は、現在実行しようとしているステップＳ１０２の処理が第２回目以降の繰り返し処理であるか否かを判定する。２世代目以降である場合、情報処理装置１０は、処理をステップＳ１１３に進める。一方、２世代目以降でない場合（第１世代である場合）、情報処理装置１０は、処理をステップＳ１１２に進める。処理をステップＳ１１２に進めた場合、情報処理装置１０は、基底関数をランダムに生成する（Ｓ１１２）。一方、処理をステップＳ１１３に進めた場合、情報処理装置１０は、基底関数を進化的に生成する（Ｓ１１３）。そして、情報処理装置１０は、ステップＳ１１２又はＳ１１３の処理が完了すると、ステップＳ１０２の処理を終了する。
【００３９】
（Ｓ１１２：基底関数をランダムに生成）
次に、図６及び図７を参照しながら、ステップＳ１１２の処理について、より詳細に説明する。ステップＳ１１２の処理は、第１世代の基底関数を生成する処理に関する。
【００４０】
まず、図６を参照する。図６に示すように、情報処理装置１０は、基底関数のインデックスｍ（ｍ＝０〜Ｍ−１）に関する処理ループを開始する（Ｓ１２１）。次いで、情報処理装置１０は、基底関数φｍ（ｘ）をランダムに生成する（Ｓ１２２）。次いで、情報処理装置１０は、基底関数のインデックスｍがＭ−１に達したか否かを判定し、基底関数のインデックスｍがＭ−１に達していない場合、情報処理装置１０は、基底関数のインデックスｍをインクリメントしてステップＳ１２１に処理を戻す（Ｓ１２４）。一方、基底関数のインデックスｍがｍ＝Ｍ−１の場合、情報処理装置１０は、処理ループを終了する（Ｓ１２４）。ステップＳ１２４で処理ループを終了すると、情報処理装置１０は、ステップＳ１１２の処理を完了する。
【００４１】
（ステップＳ１２２の詳細）
次に、図７を参照しながら、ステップＳ１２２の処理について、より詳細に説明する。
【００４２】
ステップＳ１２２の処理を開始すると、図７に示すように、情報処理装置１０は、基底関数のプロトタイプをランダムに決定する（Ｓ１３１）。プロトタイプとしては、既に例示した処理関数の他、線形項、ガウシアンカーネル、シグモイドカーネルなどの処理関数が利用可能である。次いで、情報処理装置１０は、決定したプロトタイプのパラメータをランダムに決定し、基底関数を生成する（Ｓ１３２）。
【００４３】
（Ｓ１１３：基底関数を進化的に生成）
次に、図８〜図１０を参照しながら、ステップＳ１１３の処理について、より詳細に説明する。ステップＳ１１３の処理は、第τ世代（τ≧２）の基底関数を生成する処理に関する。従って、ステップＳ１１３を実行する際には、第τ−１世代の基底関数φｍ，τ−１（ｍ＝１〜Ｍ）及び当該基底関数φｍ，τ−１の評価値ｖｍ，τ−１が得られている。
【００４４】
まず、図８を参照する。図８に示すように、情報処理装置１０は、基底関数の数Ｍを更新する（Ｓ１４１）。つまり、情報処理装置１０は、第τ世代の基底関数の数Ｍτを決定する。次いで、情報処理装置１０は、第τ−１世代の基底関数φｍ，τ−１（ｍ＝１〜Ｍ）に対する評価値ｖτ−１＝｛ｖ１，τ−１，…，ｖＭ，τ−１｝に基づき、第τ−１世代の基底関数の中からｅ個の有用な基底関数を選択して第τ世代の基底関数φ１，τ、…、φｅ，τに設定する（Ｓ１４２）。
【００４５】
次いで、情報処理装置１０は、残り（Ｍτ−ｅ）個の基底関数φｅ＋１，τ、…、φＭτ，τを生成する方法を交差、突然変異、ランダム生成の中からランダムに選択する（Ｓ１４３）。交差を選択した場合、情報処理装置１０は、処理をステップＳ１４４に進める。また、突然変異を選択した場合、情報処理装置１０は、処理をステップＳ１４５に進める。そして、ランダム生成を選択した場合、情報処理装置１０は、処理をステップＳ１４６に進める。
【００４６】
処理をステップＳ１４４に進めた場合、情報処理装置１０は、ステップＳ１４２で選択された基底関数φ１，τ、…、φｅ，τの中から選択された基底関数を交差させて新たな基底関数φｍ’，τ（ｍ’≧ｅ＋１）を生成する（Ｓ１４４）。また、処理をステップＳ１４５に進めた場合、情報処理装置１０は、ステップＳ１４２で選択された基底関数φ１，τ、…、φｅ，τの中から選択された基底関数を突然変異させて新たな基底関数φｍ’，τ（ｍ’≧ｅ＋１）を生成する（Ｓ１４５）。一方、処理をステップＳ１４６に進めた場合、情報処理装置１０は、ランダムに新たな基底関数φｍ’，τ（ｍ’≧ｅ＋１）を生成する（Ｓ１４６）。
【００４７】
ステップＳ１４４、Ｓ１４５、Ｓ１４６のいずれかの処理を終えると、情報処理装置１０は、処理をステップＳ１４７に進める。処理をステップＳ１４７に進めると、情報処理装置１０は、第τ世代の基底関数がＭ個（Ｍ＝Ｍτ）に達したか否かを判定する（Ｓ１４７）。第τ世代の基底関数がＭ個に達していない場合、情報処理装置１０は、処理を再びステップＳ１４３に戻す。一方、第τ世代の基底関数がＭ個に達した場合、情報処理装置１０は、ステップＳ１１３の処理を終了する。
【００４８】
（Ｓ１４４の詳細：交差）
次に、図９を参照しながら、ステップＳ１４４の処理について、より詳細に説明する。
【００４９】
ステップＳ１４４の処理を開始すると、図９に示すように、情報処理装置１０は、ステップＳ１４２で選択された基底関数φ１，τ、…、φｅ，τの中から同じプロトタイプを持つ基底関数をランダムに２つ選択する（Ｓ１５１）。次いで、情報処理装置１０は、選択した２つの基底関数が持つパラメータを交差させて新たな基底関数を生成する（Ｓ１５２）。
【００５０】
（Ｓ１４５の詳細：突然変異）
次に、図１０を参照しながら、ステップＳ１４５の処理について、より詳細に説明する。
【００５１】
ステップＳ１４５の処理を開始すると、図１０に示すように、情報処理装置１０は、ステップＳ１４２で選択された基底関数φ１，τ、…、φｅ，τの中から基底関数をランダムに１つ選択する（Ｓ１６１）。次いで、情報処理装置１０は、選択した基底関数が持つパラメータの一部をランダムに変更して新たな基底関数を生成する（Ｓ１６２）。
【００５２】
（Ｓ１４６の詳細：ランダム生成）
次に、図７を参照しながら、ステップＳ１４６の処理について、より詳細に説明する。
【００５３】
ステップＳ１２２の処理を開始すると、図７に示すように、情報処理装置１０は、基底関数のプロトタイプをランダムに決定する（Ｓ１３１）。プロトタイプとしては、既に例示した処理関数の他、線形項、ガウシアンカーネル、シグモイドカーネルなどの処理関数が利用可能である。次いで、情報処理装置１０は、決定したプロトタイプのパラメータをランダムに決定し、基底関数を生成する（Ｓ１３２）。
【００５４】
以上、ステップＳ１０２の処理（基底関数の生成）について、より詳細に説明した。
【００５５】
（基底関数の計算（Ｓ１０３））
次に、図１１を参照しながら、ステップＳ１０３の処理（基底関数の計算）について、より詳細に説明する。
【００５６】
図１１に示すように、情報処理装置１０は、学習用データセットに含まれるｉ番目のデータＸ（ｉ）のインデックスｉに関する処理ループを開始する（Ｓ１７１）。例えば、学習用データセットとしてＮ個のデータの組｛Ｘ（１），…，Ｘ（Ｎ）｝が入力された場合には、ｉ＝１〜Ｎに関して処理ループが実行される。次いで、情報処理装置１０は、基底関数φｍのインデックスｍに関する処理ループを開始する（Ｓ１７２）。例えば、Ｍ個の基底関数を生成した場合には、ｍ＝１〜Ｍに関して処理ループが実行される。
【００５７】
次いで、情報処理装置１０は、特徴量ｚｍｉ＝φｍ（ｘ（ｉ））を計算する（Ｓ１７３）。次いで、情報処理装置１０は、処理をステップＳ１７４に進め、基底関数のインデックスｍに関する処理ループを続ける。そして、情報処理装置１０は、基底関数のインデックスｍに関する処理ループが終了すると、処理をステップＳ１７５に進め、インデックスｉに関する処理ループを続ける。インデックスｉに関する処理ループが終了した場合、情報処理装置１０は、ステップＳ１０３の処理を終了する。
【００５８】
以上、ステップＳ１０３の処理（基底関数の計算）について、より詳細に説明した。
【００５９】
（基底関数の評価・推定関数の生成（Ｓ１０４））
次に、図１２を参照しながら、ステップＳ１０４の処理（基底関数の評価・推定関数の生成）について、より詳細に説明する。
【００６０】
図１２に示すように、情報処理装置１０は、ＡＩＣ基準の増減法に基づく回帰／判別学習により推定関数のパラメータｗ＝｛ｗ０，…，ｗＭ｝を算出する（Ｓ１８１）。つまり、情報処理装置１０は、特徴量ｚｍｉ＝φｍ，τ（ｘ（ｉ））と目的変数ｔ（ｉ）の組（ｉ＝１〜Ｎ）が推定関数ｆによりフィッティングされるように、回帰／判別学習によりベクトルｗ＝｛ｗ０，…，ｗＭ｝を求める。但し、推定関数ｆ（ｘ）は、ｆ（ｘ）＝Σｗｍφｍ，τ（ｘ）＋ｗ０であるとする。次いで、情報処理装置１０は、パラメータｗが０となる基底関数の評価値ｖを０に設定し、それ以外の基底関数の評価値ｖを１に設定する（Ｓ１８２）。つまり、評価値ｖが１の基底関数は有用な基底関数である。
【００６１】
以上、ステップＳ１０４の処理（基底関数の評価・推定関数の生成）について、より詳細に説明した。
【００６２】
推定機の構築に係る処理の流れは上記の通りである。このように、ステップＳ１０２〜Ｓ１０４の処理が繰り返し実行され、基底関数が進化的手法により逐次更新されることにより推定精度の高い推定関数が得られる。つまり、上記の方法を適用することで、高性能な推定機を自動構築することができる。
【００６３】
［１−２：オンライン学習の実現に向けて］
さて、上記のように、機械学習により推定機を自動構築するアルゴリズムの場合、学習用データの数が多いほど、構築される推定機の性能が高くなる。そのため、可能な限り多くの学習用データを利用して推定機を構築するのが好ましい。しかしながら、学習用データの格納に利用できる情報処理装置１０のメモリ容量は限られている。また、学習用データの数が多くなると、推定機の構築を実現するために要求される演算性能も高くなってしまう。こうした理由から、バッチ処理にて推定機を構築する上記の方法（以下、オフライン学習）を用いている限り、推定機の性能は、情報処理装置１０のリソースにより制限されてしまう。
【００６４】
そこで、本件発明者は、学習用データを逐次追加できるようにする仕組み（以下、オンライン学習）を考案した。オンライン学習に係る推定機の構築は、図１３に示すような処理の流れに沿って行われる。図１３に示すように、まず、学習用データセットが情報処理装置１０に入力される（Ｓｔｅｐ  １）。次いで、情報処理装置１０は、入力された学習用データセットを利用し、既に説明した推定機の自動構築方法により推定機を構築する（Ｓｔｅｐ  ２）。
【００６５】
次いで、情報処理装置１０は、随時又は所定のタイミングで追加の学習用データを取得する（Ｓｔｅｐ  ３）。次いで、情報処理装置１０は、（Ｓｔｅｐ  １）で入力された学習用データセットと、（Ｓｔｅｐ  ３）で取得した学習用データとを統合する（Ｓｔｅｐ  ４）。このとき、情報処理装置１０は、学習用データのサンプリング処理や重み付け処理を実行し、統合後の学習用データセットを生成する。そして、情報処理装置１０は、統合後の学習用データセットを利用し、再び推定機を構築する（Ｓｔｅｐ  ２）。このとき、情報処理装置１０は、既に説明した推定機の自動構築方法により推定機を構築する。
【００６６】
なお、（Ｓｔｅｐ  ２）で構築された推定機は、構築の度に出力されるようにしてもよい。また、（Ｓｔｅｐ  ２）〜（Ｓｔｅｐ  ４）の処理は繰り返し実行される。そして、学習用データセットは、処理が繰り返される度に更新される。例えば、繰り返しの度に学習用データが追加されるようにすれば、推定機の構築処理に利用される学習用データの数が増加するため、推定機の性能が向上する。しかし、情報処理装置１０のリソースには限界があるため、（Ｓｔｅｐ  ４）で実行される学習用データの統合処理では、より有用な学習用データが推定機の構築に利用されるように統合の仕方を工夫する必要がある。
【００６７】
（課題の整理）
図１４に示すように、オフライン学習を適用する場合、推定機の構築に利用可能な学習用データの数に限りがあるため、推定機の更なる性能向上に限界がある。一方、オンライン学習を適用すると、学習用データの追加が可能になるため、推定機の更なる性能向上が期待できる。しかし、情報処理装置１０のリソースには限りがあるため、限られたリソースの中で推定機の更なる性能向上を果たせるように学習用データの統合方法を工夫する必要がある。以下の実施形態に係る技術は、こうした課題を解決すべく考案されたものである。
【００６８】
＜２：実施形態＞
本技術の一実施形態について説明する。
【００６９】
［２−１：情報処理装置１０の機能構成］
まず、図１５及び図１６を参照しながら、本実施形態に係る情報処理装置１０の機能構成について説明する。図１５は、本実施形態に係る情報処理装置１０の全体的な機能構成を示した説明図である。一方、図１６は、本実施形態に係る情報処理装置１０を構成する推定機構築部１２の詳細な機能構成を示した説明図である。
【００７０】
（全体的な機能構成）
まず、図１５を参照しながら、全体的な機能構成について説明する。図１５に示すように、情報処理装置１０は、主に、学習用データ取得部１１と、推定機構築部１２と、入力データ取得部１３と、結果認識部１４とにより構成される。
【００７１】
推定機の構築処理が開始されると、学習用データ取得部１１は、推定機の構築に利用する学習用データを取得する。例えば、学習用データ取得部１１は、記憶装置（非図示）に格納された学習用データを読み出す。或いは、学習用データ取得部１１は、学習用データを提供するシステムなどからネットワークを介して学習用データを取得する。また、学習用データ取得部１１は、タグが付されたデータを取得し、タグに基づいてデータと目的変数との組で構成される学習用データを生成してもよい。
【００７２】
学習用データ取得部１１により取得された学習用データの集合（学習用データセット）は、推定機構築部１２に入力される。学習用データセットが入力されると、推定機構築部１２は、入力された学習用データセットに基づく機械学習により推定機を構築する。例えば、推定機構築部１２は、既に説明した遺伝アルゴリズムに基づく推定機の自動構築方法を利用して推定機を構築する。また、学習用データ取得部１１から追加の学習用データが入力された場合、推定機構築部１２は、学習用データを統合し、統合後の学習用データセットを利用して推定機を構築する。
【００７３】
推定機構築部１２により構築された推定機は、結果認識部１４に入力される。この推定機は、任意の入力データに対する認識結果を得るために利用される。入力データ取得部１３により認識対象の入力データが取得されると、取得された入力データは、結果認識部１４に入力される。入力データが入力されると、結果認識部１４は、入力された入力データを推定機に入力し、推定機から出力される推定値に基づいて認識結果を生成する。例えば、図１に示すように、結果認識部１４は、推定値ｙと所定の閾値Ｔｈとを比較し、比較結果に応じて認識結果を出力する。
【００７４】
以上、情報処理装置１０の全体的な機能構成について説明した。
【００７５】
（推定機構築部１２の機能構成）
次に、図１６を参照しながら、推定機構築部１２の機能構成について詳細に説明する。図１６に示すように、推定機構築部１２は、基底関数リスト生成部１２１と、特徴量計算部１２２と、推定関数生成部１２３と、学習用データ統合部１２４とにより構成される。
【００７６】
推定機の構築処理が開始されると、まず、基底関数リスト生成部１２１は、基底関数リストを生成する。そして、基底関数リスト生成部１２１により生成された基底関数リストは、特徴量計算部１２２に入力される。また、特徴量計算部１２２には、学習用データセットが入力される。基底関数リスト及び学習用データセットが入力されると、特徴量計算部１２２は、入力された学習用データセットのデータを基底関数リストに含まれる各基底関数に入力して特徴量を算出する。特徴量計算部１２２により算出された特徴量の組（特徴量ベクトル）は、推定関数生成部１２３に入力される。
【００７７】
特徴量ベクトルが入力されると、推定関数生成部１２３は、入力された特徴量ベクトル及び学習用データを構成する目的変数に基づいて回帰／判別学習により推定関数を生成する。なお、遺伝アルゴリズムに基づく推定機の構築方法を適用する場合、推定関数生成部１２３は、生成した推定関数に対する各基底関数の寄与率（評価値）を算出し、その寄与率に基づいて終了条件を満たすか否かを判定する。終了条件を満たす場合、推定関数生成部１２３は、基底関数リスト及び推定関数を含む推定機を出力する。
【００７８】
一方、終了条件を満たさない場合、推定関数生成部１２３は、生成した推定関数に対する各基底関数の寄与率を基底関数リスト生成部１２１に通知する。この通知を受けた基底関数リスト生成部１２１は、遺伝アルゴリズムにより各基底関数の寄与率に基づいて基底関数リストを更新する。基底関数リストを更新した場合、基底関数リスト生成部１２１は、更新後の基底関数リストを特徴量計算部１２２に入力する。更新後の基底関数リストが入力された場合、特徴量計算部１２２は、更新後の基底関数リストを用いて特徴量ベクトルを算出する。そして、特徴量計算部１２２により算出された特徴量ベクトルは、推定関数生成部１２３に入力される。
【００７９】
上記のように、遺伝アルゴリズムに基づく推定機の構築方法を適用する場合、終了条件が満たされるまで、推定関数生成部１２３による推定関数の生成処理、基底関数リスト生成部１２１による基底関数リストの更新処理、及び特徴量計算部１２２による特徴量ベクトルの算出処理が繰り返し実行される。そして、終了条件が満たされた場合、推定関数生成部１２３から推定機が出力される。
【００８０】
また、追加の学習用データが入力されると、入力された追加の学習用データは、特徴量計算部１２２及び学習用データ統合部１２４に入力される。追加の学習用データが入力されると、特徴量計算部１２２は、追加の学習用データを構成するデータを基底関数リストに含まれる各基底関数に入力して特徴量を生成する。そして、追加の学習用データに対応する特徴量ベクトル及び既存の学習用データに対応する特徴量ベクトルは、学習用データ統合部１２４に入力される。なお、学習用データ統合部１２４には、既存の学習用データも入力されているものとする。
【００８１】
学習用データ統合部１２４は、後述する学習用データの統合方法に基づいて既存の学習用データセットと追加の学習用データとを統合する。例えば、学習用データ統合部１２４は、特徴量空間において特徴量ベクトルにより示される座標（以下、特徴量座標）の分布が所定の分布となるように学習用データを間引いたり、学習用データに重みを設定したりする。学習用データを間引いた場合、間引き後の学習用データセットが統合後の学習用データセットとして利用される。一方、学習用データに重みを設定した場合、推定関数生成部１２３による回帰／判別学習の際に各学習用データに設定された重みが考慮される。
【００８２】
学習用データが統合されると、統合後の学習用データセットを用いて推定機の自動構築処理が実行される。具体的には、学習用データ統合部１２４から推定関数生成部１２３に統合後の学習用データセットと、統合後の学習用データセットに含まれる学習用データに対応する特徴量ベクトルとが入力され、推定関数生成部１２３により推定関数が生成される。また、遺伝アルゴリズムに基づく推定機の構築方法を適用する場合、統合後の学習用データセットを利用して推定関数の生成、寄与率の算出、基底関数リストの更新などの処理が実行される。
【００８３】
以上、推定機構築部１２の詳細な機能構成について説明した。
【００８４】
［２−２：学習用データの統合方法］
次に、本実施形態に係る学習用データの統合方法について説明する。ここで説明する学習用データの統合方法は、学習用データ統合部１２４の機能により実現される。
【００８５】
（２−２−１：特徴量空間における学習用データの分布と推定機の精度）
まず、図１７を参照しながら、特徴量空間における学習用データの分布と推定機の精度との関係について考察する。図１７は、特徴量空間における学習用データの分布例を示した説明図である。
【００８６】
１つの特徴量ベクトルは、１つの学習用データを構成するデータを基底関数リストに含まれる各基底関数に入力することで得られる。つまり、１つの学習用データには１つの特徴量ベクトル（特徴量座標）が対応する。そのため、特徴量座標の分布を特徴量空間における学習用データの分布と呼ぶことにする。特徴量空間における学習用データの分布は、例えば、図１７のようになる。なお、表現の都合上、図１７の例では２次元の特徴量空間を考えているが、特徴量空間の次元数はこれに限定されない。
【００８７】
さて、図１７に例示した特徴量座標の分布を参照すると、第４象限に疎な領域が存在していることに気づくであろう。既に説明した通り、推定関数は、全ての学習用データについて特徴量ベクトルと目的変数との関係がうまく表現されるように回帰／判別学習により生成される。そのため、特徴量座標の密度が疎な領域について、推定関数は、特徴量ベクトルと目的変数との関係をうまく表現できていない可能性が高い。従って、認識処理の対象となる入力データに対応する特徴量座標が上記の疎な領域に位置する場合、高精度の認識結果を期待することは難しい。
【００８８】
図１８に示すように、学習用データの数が多くなると疎な領域が生じにくくなり、どの領域に対応する入力データが入力されても高い精度で認識結果を出力することが可能な推定機を構築できるようになると期待される。また、学習用データの数が比較的少なくても、特徴量座標が特徴量空間において満遍なく分布していれば、高い精度で認識結果を出力することが可能な推定機を構築できるものと期待される。そこで、本件発明者は、学習用データを統合する際に特徴量座標の分布を考慮し、統合後の学習用データセットに対応する特徴量座標の分布が所定の分布（例えば、一様分布やガウス分布など）となるように調整する仕組みを考案した。
【００８９】
（２−２−２：データ統合時にサンプリングする構成）
まず、図１９を参照しながら、学習用データをサンプリングする方法について説明する。図１９は、学習用データをサンプリングする方法について説明するための説明図である。
【００９０】
既に説明したように、オンライン学習を適用する場合、逐次的に学習用データを追加できるため、多量の学習用データを用いて推定機を構築することが可能になる。しかし、情報処理装置１０のメモリリソースが限られている場合、学習用データの統合時に、推定機の構築に利用する学習用データの数を絞り込む必要がある。このとき、ランダムに学習用データを間引くのではなく、特徴量座標の分布を考慮して学習用データを間引くことで、推定機の精度を低下させることなく、学習用データの数を絞り込むことができる。例えば、図１９に示すように、密な領域に含まれる特徴量座標を多く間引き、疎な領域に含まれる特徴量座標を極力残すようにする。
【００９１】
このような方法で学習用データを間引くことにより、統合後の学習用データセットに対応する特徴量座標の密度が均一になる。つまり、学習用データの数は少なくなったが、特徴量空間の全体に満遍なく特徴量座標が分布しているため、推定関数の生成時に実行する回帰／判別学習の際に特徴量空間の全体が考慮されることになる。その結果、情報処理装置１０のメモリリソースが限られていても、高い精度で正しい認識結果を推定することが可能な推定機を構築することが可能になる。
【００９２】
（２−２−３：データ統合時に重み付けする構成）
次に、学習用データに重みを設定する方法について説明する。
【００９３】
情報処理装置１０のメモリリソースが限られている場合、学習用データの統合時に学習用データを間引く方法は有効である。一方、メモリリソースに余裕がある場合、学習用データを間引く代わりに、学習用データに重みを設定することで推定機の性能を向上させることが可能になる。例えば、疎な領域に特徴量座標が含まれる学習用データには大きな重みを設定し、密な領域に特徴量座標が含まれる学習用データには小さな重みを設定する。そして、推定関数の生成時に実行する回帰／判別学習の際に各学習用データに設定された重みを考慮するようにする。
【００９４】
（２−２−４：データ統合時にサンプリング及び重み付けする構成）
また、学習用データをサンプリングする方法と、学習用データに重みを設定する方法とを組み合わせてもよい。例えば、特徴量座標の分布が所定の分布となるように学習用データを間引いた後、間引き後の学習用データセットに含まれる学習用データに対し、特徴量座標の密度に応じた重みを設定する。このように、間引き処理と重み付け処理とを組み合わせることにより、メモリリソースが限られていても、より高精度の推定機を構築することが可能になる。
【００９５】
［２−３：効率的なサンプリング／重み付け方法］
次に、学習用データの効率的なサンプリング／重み付け方法について説明する。
【００９６】
（２−３−１：サンプリング方法）
まず、図２０を参照しながら、学習用データの効率的なサンプリング方法について説明する。図２０は、学習用データの効率的なサンプリング方法について説明するための説明図である。
【００９７】
図２０に示すように、情報処理装置１０は、特徴量計算部１２２の機能により、全ての学習用データについて特徴量ベクトル（特徴量座標）を算出する（Ｓ２０１）。次いで、情報処理装置１０は、特徴量計算部１２２の機能により、算出した特徴量座標を正規化する（Ｓ２０２）。例えば、特徴量計算部１２２は、図２１に示すように、各特徴量について、分散が１、平均が０となるように値を正規化する。このようにして正規化された特徴量座標は、学習用データ統合部１２４に入力される。
【００９８】
次いで、情報処理装置１０は、学習用データ統合部１２４の機能により、ランダムにハッシュ関数ｇを生成する（Ｓ２０３）。例えば、学習用データ統合部１２４は、下記の式（１）に示すような５ビットの値を出力するハッシュ関数ｇを複数生成する。このとき、学習用データ統合部１２４は、Ｑ個のハッシュ関数ｇｑ（ｑ＝１〜Ｑ）を生成する。但し、関数ｈｊ（ｊ＝１〜５）は、下記の式（２）により定義される。また、ｄ及びＴｈｒｅｓｈｏｌｄは、乱数により決定される。
【００９９】
但し、特徴量座標の分布を一様分布に近づける場合、Ｔｈｒｅｓｈｏｌｄの決定に用いる乱数として一様乱数を用いる。また、特徴量座標の分布をガウス分布に近づける場合、Ｔｈｒｅｓｈｏｌｄの決定に用いる乱数としてガウス乱数を用いる。他の分布についても同様である。また、ｄの決定は、ｚｄの算出に用いた基底関数の寄与率に応じた偏りのある乱数を用いて行われる。例えば、ｚｄの算出に用いた基底関数の寄与率が大きいほど、ｄの発生する確率が高くなる乱数が用いられる。
【０１００】
【数１】
0005909943.tif 000002
【０１０１】
ハッシュ関数ｇｑ（ｑ＝１〜Ｑ）を生成すると、学習用データ統合部１２４は、各学習用データに対応する特徴量ベクトルＺをハッシュ関数ｇｑに入力し、ハッシュ値を算出する。そして、学習用データ統合部１２４は、算出したハッシュ値に基づいて学習用データをバケットに割り当てる（Ｓ２０４）。但し、ここで言うバケットとは、ハッシュ値として取り得る値が対応付けられた領域を意味する。
【０１０２】
例えば、ハッシュ値が５ビット、Ｑ＝２５６の場合について考えてみよう。この場合、バケットの構成は図２２のようになる。図２２に示すように、ハッシュ値が５ビットであるから、１つのハッシュ関数ｇｑに対し、３２個のバケット（以下、バケットセット）が設けられる。また、Ｑ＝２５６であるから、２５６組のバケットセットが設けられる。この例に沿って、学習用データをバケットに割り当てる方法について説明する。
【０１０３】
ある学習用データに対応する特徴量ベクトルＺが与えられると、２５６個のハッシュ関数ｇ１〜ｇ２５６を用いて２５６個のハッシュ値が算出される。例えば、ｇ１（Ｚ）＝２（１０進数表示）であった場合、学習用データ統合部１２４は、その学習用データをｇ１に対応するバケットセットの中で２に対応するバケットに割り当てる。同様に、ｇｑ（Ｚ）（ｑ＝２〜２５６）を算出し、各値に対応するバケットに学習用データを割り当てる。図２２の例では、２種類の学習用データを白丸と黒丸とで表現し、各バケットとの対応関係を模式的に表現している。
【０１０４】
このようにして各学習用データをバケットに割り当てると、学習用データ統合部１２４は、所定の順序でバケットから学習用データを１つ選択する（Ｓ２０５）。例えば、学習用データ統合部１２４は、図２３に示すように、左上（ハッシュ関数のインデックスｑが小さく、バケットに割り当てられた値が小さい側）から順にバケットを走査し、バケットに割り当てられた学習用データを１つ選択する。
【０１０５】
バケットから学習用データを選択するルールは、図２４に示した通りである。第１に、学習用データ統合部１２４は、空のバケットをスキップする。第２に、学習用データ統合部１２４は、１つの学習用データを選択した場合、同じ学習用データを他の全てのバケットから除く。第３に、学習用データ統合部１２４は、１つのバケットに複数の学習用データが割り当てられている場合にはランダムに１つの学習用データを選択する。なお、選択された学習用データの情報は、学習用データ統合部１２４により保持される。
【０１０６】
１つの学習用データを選択した後、学習用データ統合部１２４は、所定数の学習用データを選択し終えたか否かを判定する（Ｓ２０６）。所定数の学習用データを選択し終えた場合、学習用データ統合部１２４は、選択した所定数の学習用データを統合後の学習用データセットとして出力し、学習用データの統合に係る一連の処理を終了する。一方、所定数の学習用データを選択し終えていない場合、学習用データ統合部１２４は、処理をステップＳ２０５に進める。
【０１０７】
以上、学習用データの効率的なサンプリング方法について説明した。なお、特徴量空間と上記のバケットとの対応関係は図２５に示したイメージ図のようになる。また、上記の方法により学習用データのサンプリングを行った結果は、例えば、図２６（一様分布の例）のようになる。図２６を参照すると、疎な領域に含まれる特徴量座標は残り、密な領域に含まれる特徴量座標が間引かれていることが分かる。なお、上記のバケットを利用しない場合、学習用データのサンプリングに要する演算負荷は格段に大きくなる点に注意されたい。
【０１０８】
（２−３−２：重み付け方法）
次に、図２７を参照しながら、学習用データの効率的な重み付け方法について説明する。図２７は、学習用データの効率的な重み付け方法について説明するための説明図である。
【０１０９】
図２７に示すように、情報処理装置１０は、特徴量計算部１２２の機能により、全ての学習用データについて特徴量ベクトル（特徴量座標）を算出する（Ｓ２１１）。次いで、情報処理装置１０は、特徴量計算部１２２の機能により、算出した特徴量座標を正規化する（Ｓ２１２）。例えば、特徴量計算部１２２は、図２１に示すように、各特徴量について、分散が１、平均が０となるように値を正規化する。このようにして正規化された特徴量座標は、学習用データ統合部１２４に入力される。
【０１１０】
次いで、情報処理装置１０は、学習用データ統合部１２４の機能により、ランダムにハッシュ関数ｇを生成する（Ｓ２１３）。例えば、学習用データ統合部１２４は、上記の式（１）に示すような５ビットの値を出力するハッシュ関数ｇを複数生成する。このとき、学習用データ統合部１２４は、Ｑ個のハッシュ関数ｇｑ（ｑ＝１〜Ｑ）を生成する。但し、関数ｈｊ（ｊ＝１〜５）は、上記の式（２）により定義される。また、ｄ及びＴｈｒｅｓｈｏｌｄは、乱数により決定される。
【０１１１】
但し、特徴量座標の分布を一様分布に近づける場合、Ｔｈｒｅｓｈｏｌｄの決定に用いる乱数として一様乱数を用いる。また、特徴量座標の分布をガウス分布に近づける場合、Ｔｈｒｅｓｈｏｌｄの決定に用いる乱数としてガウス乱数を用いる。他の分布についても同様である。また、ｄの決定は、ｚｄの算出に用いた基底関数の寄与率に応じた偏りのある乱数を用いて行われる。例えば、ｚｄの算出に用いた基底関数の寄与率が大きいほど、ｄの発生する確率が高くなる乱数が用いられる。
【０１１２】
ハッシュ関数ｇｑ（ｑ＝１〜Ｑ）を生成すると、学習用データ統合部１２４は、各学習用データに対応する特徴量ベクトルＺをハッシュ関数ｇｑに入力し、ハッシュ値を算出する。そして、学習用データ統合部１２４は、算出したハッシュ値に基づいて学習用データをバケットに割り当てる（Ｓ２１４）。次いで、学習用データ統合部１２４は、各学習用データについて密度を算出する（Ｓ２１５）。例えば、図２８に示すように、学習用データがバケットに割り当てられているものとしよう。また、白丸で表現された学習用データに注目する。
【０１１３】
この場合、学習用データ統合部１２４は、まず、各ハッシュ関数に対応するバケットセットについて、白丸を含むバケットに割り当てられている学習用データの数をカウントする。例えば、ハッシュ関数ｇ１に対応するバケットセットを参照すると、白丸を含むバケットに割り当てられている学習用データの数は１である。同様に、ハッシュ関数ｇ２に対応するバケットセットを参照すると、白丸を含むバケットに割り当てられている学習用データの数は２である。学習用データ統合部１２４は、ハッシュ関数ｇ１〜ｇ２５６に対応するバケットセットについて、白丸を含むバケットに割り当てられている学習用データの数をカウントする。
【０１１４】
そして、学習用データ統合部１２４は、カウントした数の平均値を算出し、算出した平均値を白丸に対応する学習用データの密度とみなす。同様にして、学習用データ統合部１２４は、全ての学習用データの密度を算出する。なお、各学習用データの密度は図２９のＢ図のように表現される。但し、色が濃い部分の密度が高く、色が薄い部分の密度が低い。
【０１１５】
さて、全ての学習用データについて密度を算出し終えると、学習用データ統合部１２４は、処理をステップＳ２１７に進める（Ｓ２１６）。ステップＳ２１７に処理を進めた場合、学習用データ統合部１２４は、算出した密度から各学習用データに設定する重みを算出する（Ｓ２１７）。例えば、学習用データ統合部１２４は、密度の逆数を重みに設定する。なお、各学習用データに設定される重みの分布は図３０のＢ図のように表現される。但し、色が濃い部分の重みが大きく、色が薄い部分の重みが小さい。図３０を参照すると、密な領域の重みが小さく、疎な領域の重みが大きくなっていることが分かるであろう。
【０１１６】
上記のようにして各学習用データに設定する重みを算出し終えると、学習用データ統合部１２４は、重み付けに係る一連の処理を終了する。以上、学習用データの効率的な重み付け方法について説明した。なお、上記のバケットを利用しない場合、学習用データの重み付けに要する演算負荷は格段に大きくなる点に注意されたい。
【０１１７】
（２−３−３：組み合わせ方法）
次に、図３１を参照しながら、上記の効率的なサンプリング方法と効率的な重み付け方法とを組み合わせる方法について説明する。図３１は、上記の効率的なサンプリング方法と効率的な重み付け方法とを組み合わせる方法について説明するための説明図である。
【０１１８】
図３１に示すように、学習用データ統合部１２４は、まず、学習用データのサンプリング処理を実行する（Ｓ２２１）。このサンプリング処理は、図２０に示した処理の流れに沿って実行される。そして、所定数の学習用データが得られると、学習用データ統合部１２４は、得られた学習用データを対象に重み付け処理を実行する（Ｓ２２２）。この重み付け処理は、図２７に示した処理の流れに沿って実行される。なお、サンプリング処理の際に算出した特徴量ベクトルやハッシュ関数を流用してもよい。サンプリング処理及び重み付け処理を実行し終えると、学習用データ統合部１２４は、一連の処理を終了する。
【０１１９】
以上、学習用データの効率的なサンプリング／重み付け方法について説明した。なお、ここでは特徴量座標の分布を効率的に所定の分布に近づけるための効率的なサンプリング／重み付け方法について説明したが、バケットを利用したデータのサンプリング／重み付け方法の適用範囲はこれに限定されない。例えば、任意のデータ群について、ハッシュ関数に基づくバケットへのデータ割り当てを行い、バケットから図２４に示したルールに従ってデータをサンプリングすることにより、任意のデータ群の分布を効率的に所定の分布に近づけることができようになる。重み付け処理についても同様である。
【０１２０】
［２−４：サンプリング処理及び重み付け処理に関する変形例］
次に、サンプリング処理及び重み付け処理に関する変形例を紹介する。
【０１２１】
（２−４−１：変形例１（距離に基づく処理））
まず、図３２を参照しながら、特徴量座標間の距離に基づく学習用データのサンプリング方法について説明する。図３２は、特徴量座標間の距離に基づく学習用データのサンプリング方法について説明するための説明図である。
【０１２２】
図３２に示すように、学習用データ統合部１２４は、まず、ランダムに１つの特徴量座標を選択する（Ｓ２３１）。次いで、学習用データ統合部１２４は、インデックスｊを１に初期化する（Ｓ２３２）。次いで、学習用データ統合部１２４は、未だ選択されてないＪ個の特徴量座標の中からｊ番目の特徴量座標を対象座標に設定する（Ｓ２３３）。次いで、学習用データ統合部１２４は、既に選択された全ての特徴量座標と対象座標との距離Ｄを算出する（Ｓ２３４）。次いで、学習用データ統合部１２４は、算出した距離Ｄの最小値Ｄｍｉｎを抽出する（Ｓ２３５）。
【０１２３】
次いで、学習用データ統合部１２４は、ｊ＝Ｊであるか否かを判定する（Ｓ２３６）。ｊ＝Ｊである場合、学習用データ統合部１２４は、処理をステップＳ２３７に進める。一方、ｊ≠Ｊである場合、学習用データ統合部１２４は、処理をステップＳ２３３に進める。処理をステップＳ２３７に進めた場合、学習用データ統合部１２４は、最小値Ｄｍｉｎが最大となる対象座標（特徴量座標）を選択する（Ｓ２３７）。次いで、学習用データ統合部１２４は、ステップＳ２３１及びＳ２３７において選択された特徴量座標の数が所定数に達したか否かを判定する（Ｓ２３８）。
【０１２４】
ステップＳ２３１及びＳ２３７において選択された特徴量座標の数が所定数に達した場合、学習用データ統合部１２４は、選択された特徴量座標に対応する学習用データを統合後の学習用データセットとして出力し、一連の処理を終了する。一方、ステップＳ２３１及びＳ２３７において選択された特徴量座標の数が所定数に達していない場合、学習用データ統合部１２４は、処理をステップＳ２３２に進める。
【０１２５】
以上、特徴量座標間の距離に基づく学習用データのサンプリング方法について説明した。
【０１２６】
（２−４−２：変形例２（クラスタリングに基づく処理））
次に、クラスタリングに基づく学習用データのサンプリング／重み付け方法について説明する。なお、以下ではサンプリング方法及び重み付け方法についてそれぞれ別々に説明するが、これらの方法を組み合わせてもよい。
【０１２７】
（学習用データの選択）
まず、図３３を参照しながら、クラスタリングに基づく学習用データのサンプリング方法について説明する。図３３は、クラスタリングに基づく学習用データのサンプリング方法について説明するための説明図である。
【０１２８】
図３３に示すように、まず、学習用データ統合部１２４は、特徴量ベクトルを所定数のクラスタに分類する（Ｓ２４１）。クラスタリング手法としては、例えば、ｋ−ｍｅａｎｓ法や階層的クラスタリングなどの手法が利用可能である。次いで,学習用データ統合部１２４は、各クラスタから順に１つずつ特徴量ベクトルを選択する（Ｓ２４２）。そして、学習用データ統合部１２４は、選択した特徴量ベクトルに対応する学習用データの組を統合後の学習用データセットとして出力し、一連の処理を終了する。
【０１２９】
（重みの設定）
次に、図３４を参照しながら、クラスタリングに基づく学習用データの重み付け方法について説明する。図３４は、クラスタリングに基づく学習用データの重み付け方法について説明するための説明図である。
【０１３０】
図３４に示すように、まず、学習用データ統合部１２４は、特徴量ベクトルを所定数のクラスタに分類する（Ｓ２５１）。クラスタリング手法としては、例えば、ｋ−ｍｅａｎｓ法や階層的クラスタリングなどの手法が利用可能である。次いで,学習用データ統合部１２４は、各クラスタの要素数をカウントし、要素数の逆数を算出する（Ｓ２５２）。そして、学習用データ統合部１２４は、算出した要素数の逆数を重みとして出力し、一連の処理を終了する。
【０１３１】
以上、クラスタリングに基づく学習用データのサンプリング／重み付け方法について説明した。
【０１３２】
（２−４−３：変形例３（密度推定手法に基づく処理））
次に、密度推定手法に基づく学習用データのサンプリング／重み付け方法について説明する。なお、以下ではサンプリング方法及び重み付け方法についてそれぞれ別々に説明するが、これらの方法を組み合わせてもよい。
【０１３３】
（学習用データの選択）
まず、図３５を参照しながら、密度推定手法に基づく学習用データのサンプリング方法について説明する。図３５は、密度推定手法に基づく学習用データのサンプリング方法について説明するための説明図である。
【０１３４】
図３５に示すように、まず、学習用データ統合部１２４は、特徴量座標の密度をモデル化する（Ｓ２６１）。密度のモデル化には、例えば、ＧＭＭ（Ｇａｕｓｓｉａｎ  Ｍｉｘｔｕｒｅ  Ｍｏｄｅｌ）などの密度推定手法が利用される。次いで、学習用データ統合部１２４は、構築したモデルに基づいて各特徴量座標の密度を算出する（Ｓ２６２）。次いで、学習用データ統合部１２４は、未だ選択されていない特徴量座標の中から、密度の逆数に比例する確率でランダムに特徴量座標を選択する（Ｓ２６３）。
【０１３５】
次いで、学習用データ統合部１２４は、所定数の特徴量座標を選択したか否かを判定する（Ｓ２６４）。所定数の特徴量座標を選択していない場合、学習用データ統合部１２４は、処理をステップＳ２６３に進める。一方、所定数の特徴量座標を選択した場合、学習用データ統合部１２４は、選択した特徴量座標に対応する学習用データの組を統合後の学習用データセットとして出力し、一連の処理を終了する。
【０１３６】
（重みの設定）
次に、図３６を参照しながら、密度推定手法に基づく学習用データの重み付け方法について説明する。図３６は、密度推定手法に基づく学習用データの重み付け方法について説明するための説明図である。
【０１３７】
図３６に示すように、まず、学習用データ統合部１２４は、特徴量座標の密度をモデル化する（Ｓ２７１）。密度のモデル化には、例えば、ＧＭＭなどの密度推定手法が利用される。次いで、学習用データ統合部１２４は、構築したモデルに基づいて各特徴量座標の密度を算出する（Ｓ２７２）。そして、学習用データ統合部１２４は、算出した密度の逆数を重みに設定し、一連の処理を終了する。
【０１３８】
以上、密度推定手法に基づく学習用データのサンプリング／重み付け方法について説明した。
【０１３９】
＜３：応用例＞
次に、本実施形態に係る技術の応用例について説明する。なお、本実施形態に係る技術の応用範囲は広く、画像データの識別機、テキストデータの識別機、音声データの識別機、信号データの識別機など、様々な識別器や解析機の自動構築に応用することができる。ここでは一例として、画像認識機の自動構築方法への応用及び言語解析機の自動構築方法への応用について紹介する。
【０１４０】
［３−１：画像認識機の自動構築方法］
まず、図３７を参照しながら、画像認識機の自動構築方法への応用について述べる。図３７は、画像認識機の構築に利用する学習用データセットの生成方法について説明するための説明図である。なお、ここで言う画像認識機とは、例えば、画像を入力すると、その画像が“花”の画像なのか、“空”の画像なのか、或いは、“寿司”の画像なのかなどを自動認識するアルゴリズムのことを意味する。
【０１４１】
上記の説明においては、データＸと目的変数ｔとで構成される学習用データが与えられるものとして説明を進めてきた。しかし、オンライン学習を想定する場合、学習用データセットは、例えば、Ｗｅｂサービスをクローリングして得られる情報（以下、取得情報）から自動的に生成されることが望ましい。例えば、図３７のＡ図に示すような取得情報が得られたとする。この取得情報は、画像と、画像に付与されたタグとにより構成される。例えば、入力された画像が“花”の画像であるか否かを認識する画像認識機を構築する場合、情報処理装置１０は、タグに“花”が含まれる画像に対して目的変数ｔ＝１を割り当て、それ以外の画像に対して目的変数ｔ＝０を割り当てる（Ｂ図を参照）。
【０１４２】
同様に、入力された画像が“空”の画像であるか否かを認識する画像認識機を構築する場合、情報処理装置１０は、タグに“空”が含まれる画像に対して目的変数ｔ＝１を割り当て、それ以外の画像に対して目的変数ｔ＝０を割り当てる（Ｃ図を参照）。また、入力された画像が“寿司”の画像であるか否かを認識する画像認識機を構築する場合、情報処理装置１０は、タグに“寿司”が含まれる画像に対して目的変数ｔ＝１を割り当て、それ以外の画像に対して目的変数ｔ＝０を割り当てる（Ｄ図を参照）。このようにタグを利用することにより、所望の画像認識機の構築に利用可能な学習用データセットを生成することができる。
【０１４３】
なお、学習用データセットが生成できると、既に説明した学習用データの統合処理及び推定機の構築処理を実行することにより、画像認識機（推定値ｙから認識結果を得る手段）に利用される推定機（推定値ｙの算出手段）を自動構築することができる。以上、画像認識機の自動構築方法への応用について説明した。
【０１４４】
［３−２：言語解析機の自動構築方法］
次に、図３８を参照しながら、言語解析機の自動構築方法への応用について述べる。図３８は、言語解析機の構築に利用する学習用データセットの生成方法について説明するための説明図である。なお、ここで言う言語解析機とは、例えば、文を入力すると、その文が“政治”に関する文なのか、“経済”に関する文なのか、或いは、“芸能”に関する文なのかなどを自動認識するアルゴリズムのことを意味する。
【０１４５】
上記の説明においては、データＸと目的変数ｔとで構成される学習用データが与えられるものとして説明を進めてきた。しかし、オンライン学習を想定する場合、学習用データセットは、例えば、Ｗｅｂサービスをクローリングして得られる情報（取得情報）から自動的に生成されることが望ましい。例えば、図３８のＡ図に示すような取得情報が得られたとする。この取得情報は、文と、文に付与されたタグとにより構成される。例えば、入力された文が“政治”に関する文であるか否かを認識する言語解析機を構築する場合、情報処理装置１０は、タグが“政治”の文に対して目的変数ｔ＝１を割り当て、それ以外の文に対して目的変数ｔ＝０を割り当てる（Ｂ図を参照）。
【０１４６】
同様に、入力された文が“経済”に関する文であるか否かを認識する言語解析機を構築する場合、情報処理装置１０は、タグが“経済”の文に対して目的変数ｔ＝１を割り当て、それ以外の文に対して目的変数ｔ＝０を割り当てる（Ｃ図を参照）。このようにタグを利用することにより、所望の言語解析機の構築に利用可能な学習用データセットを生成することができる。なお、学習用データセットが生成できると、既に説明した学習用データの統合処理及び推定機の構築処理を実行することにより、言語解析機（推定値ｙから認識結果を得る手段）に利用される推定機（推定値ｙの算出手段）を自動構築することができる。
【０１４７】
（オンライン学習の効果について）
上記の言語解析機の自動構築方法を用いて実験を行った。その実験結果を図３９に示す。図３９に示したグラフの横軸は経過時間（単位は日）であり、縦軸は平均Ｆ値（Ａｖｅｒａｇｅ  Ｆ−Ｍｅａｓｕｒｅｓ）である。また、実線（Ｏｎｌｉｎｅ，１ｋ）及び破線（Ｏｎｌｉｎｅ，４ｋ）は、オンライン学習による学習用データセットの逐次更新を続けた場合の実験結果を示している。一方、鎖線（Ｏｆｆｌｉｎｅ，１ｋ）及び一点鎖線（Ｏｆｆｌｉｎｅ，４ｋ）は、オフライン学習による実験結果を示している。なお、１ｋは、推定機の構築に利用する学習用データの数を１０００個に設定したことを示している。一方、４ｋは、推定機の構築に利用する学習用データの数を４０００個に設定したことを示している。
【０１４８】
図３９から明らかなように、推定機の構築に利用する学習用データの数が多いほど高精度の推定機が得られている。また、オフライン学習の場合はすぐに精度が頭打ちになるが、オンライン学習を行った場合には時間の経過に伴って精度が向上していくことが分かる。そして、ある程度の時間が経過した後、オンライン学習の結果は、オフライン学習の結果に比べて格段に良い結果となっている。この実験結果から、オンライン学習による学習用データセットの更新を行うことで推定機の高精度化を実現できることが明らかとなった。なお、ここでは言語解析機の自動構築方法について実験結果を示したが、他の認識機の自動構築方法についても同様の効果が期待される。
【０１４９】
（効果のまとめ）
上記のように、オンライン学習が可能になることで推定機の精度を向上させることができる。また、推定機の構築手法として、例えば、特開２００９−４８２６６号公報、特願２０１０−１５９５９８号明細書、特願２０１０−１５９５９７号明細書、特願２００９−２７７０８３号明細書、特願２００９−２７７０８４号明細書などに記載のアルゴリズムなど、様々な方法が適用可能である。そのため、様々な種類の認識機について精度の向上を図ることができる。また、Ｗｅｂサービスなどから取得した取得情報を利用して学習用データセットを自動生成する仕組みを設けることで、メンテナンスフリーで継続的に推定機の精度向上が図れる。また、学習用データセットを逐次更新することにより、常に新しい学習用データセットから推定機が構築されるため、新しいタグの登場や時代の変遷に伴うタグの意味変化などにも柔軟に対応することが可能になる。
【０１５０】
＜４：ハードウェア構成例＞
上記の情報処理装置１０が有する各構成要素の機能は、例えば、図４０に示すハードウェア構成を用いて実現することが可能である。つまり、当該各構成要素の機能は、コンピュータプログラムを用いて図４０に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、ＰＨＳ、ＰＤＡ等の携帯情報端末、ゲーム機、又は種々の情報家電がこれに含まれる。但し、上記のＰＨＳは、Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ−ｐｈｏｎｅ  Ｓｙｓｔｅｍの略である。また、上記のＰＤＡは、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔの略である。
【０１５１】
図４０に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０と、を有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６と、を有する。但し、上記のＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。また、上記のＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略である。そして、上記のＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。
【０１５２】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【０１５３】
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ（以下、リモコン）が用いられることもある。
【０１５４】
出力部９１８としては、例えば、ＣＲＴ、ＬＣＤ、ＰＤＰ、又はＥＬＤ等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のＣＲＴは、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅの略である。また、上記のＬＣＤは、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略である。そして、上記のＰＤＰは、Ｐｌａｓｍａ  ＤｉｓｐｌａｙＰａｎｅｌの略である。さらに、上記のＥＬＤは、Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙの略である。
【０１５５】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略である。
【０１５６】
ドライブ９２２は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、ＨＤ  ＤＶＤメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体９２８は、例えば、非接触型ＩＣチップを搭載したＩＣカード、又は電子機器等であってもよい。但し、上記のＩＣは、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【０１５７】
接続ポート９２４は、例えば、ＵＳＢポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９３０を接続するためのポートである。外部接続機器９３０は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。但し、上記のＵＳＢは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略である。また、上記のＳＣＳＩは、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅの略である。
【０１５８】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ用の通信カード、光通信用のルータ、ＡＤＳＬ用のルータ、又は各種通信用のモデム等である。また、通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、上記のＷＵＳＢは、Ｗｉｒｅｌｅｓｓ  ＵＳＢの略である。そして、上記のＡＤＳＬは、Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅの略である。
【０１５９】
以上、ハードウェア構成例について説明した。
【０１６０】
＜５：まとめ＞
最後に、本実施形態の技術的思想について簡単に纏める。以下に記載する技術的思想は、例えば、ＰＣ、携帯電話、ゲーム機、情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。
【０１６１】
上記の情報処理装置の機能構成は以下のように表現することができる。例えば、下記（１）に記載の情報処理装置は、特徴量空間における特徴量座標の分布が所定の分布に近づくように特徴量座標の分布を調整する。具体的には、下記（２）に記載のように、特徴量座標の分布が所定の分布に近づくように学習用データを間引いたり、或いは、下記（３）に記載のように、各学習用データに重みを付けたりする処理が行われる。もちろん、下記（４）に示すように、間引き処理と重み付け処理とを組み合わせることも可能である。このような方法で特徴量空間における特徴量座標の分布を所定の分布（例えば、一様分布やガウス分布）に近づけることにより、推定機の性能をより向上させることが可能になる。
【０１６２】
（１）
入力データ及び当該入力データに対応する目的変数で構成される複数の学習用データが与えられた場合に、複数の基底関数に前記入力データを入力して、前記各基底関数の出力値を要素とする特徴量ベクトルを算出する特徴量ベクトル算出部と、
特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように当該点の分布を調整する分布調整部と、
複数の前記学習用データについて、前記特徴量ベクトルの入力に応じて前記目的変数の推定値を出力する推定関数を生成する関数生成部と、
を備える、
情報処理装置。
【０１６３】
（２）
前記分布調整部は、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように前記学習用データを間引く、
上記（１）に記載の情報処理装置。
【０１６４】
（３）
前記分布調整部は、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように前記各学習用データに対して重み付けする、
上記（１）に記載の情報処理装置。
【０１６５】
（４）
前記分布調整部は、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように、前記学習用データを間引き、かつ、間引き後に残った学習用データの各々に対して重み付けする、
上記（１）に記載の情報処理装置。
【０１６６】
（５）
前記所定の分布は、一様分布又はガウス分布である、
上記（１）〜（４）のいずれか１項に記載の情報処理装置。
【０１６７】
（６）
前記分布調整部は、追加的に新たな学習用データが与えられた場合に、当該新たな学習用データと既存の学習用データとを含む学習用データ群を対象に、特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように前記学習用データを間引く、
上記（２）又は（４）に記載の情報処理装置。
【０１６８】
（７）
予め用意された複数の関数を組み合わせて前記基底関数を生成する基底関数生成部をさらに備える、
上記（１）〜（６）のいずれか１項に記載の情報処理装置。
【０１６９】
（８）
前記基底関数生成部は、遺伝的アルゴリズムに基づいて前記基底関数を更新し、
前記特徴量ベクトル算出部は、前記基底関数が更新された場合に、更新後の前記基底関数に前記入力データを入力して特徴量ベクトルを算出し、
前記関数生成部は、前記更新後の基底関数を用いて算出された特徴量ベクトルの入力に応じて前記目的変数の推定値を出力する推定関数を生成する、
上記（７）に記載の情報処理装置。
【０１７０】
（９）
入力データ及び当該入力データに対応する目的変数で構成される複数の学習用データが与えられた場合に、複数の基底関数に前記入力データを入力して、前記各基底関数の出力値を要素とする特徴量ベクトルを算出するステップと、
特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように当該点の分布を調整するステップと、
複数の前記学習用データについて、前記特徴量ベクトルの入力に対して前記目的変数の推定値を出力する推定関数を生成するステップと、
を含む、
推定機生成方法。
【０１７１】
（１０）
入力データ及び当該入力データに対応する目的変数で構成される複数の学習用データが与えられた場合に、複数の基底関数に前記入力データを入力して、前記各基底関数の出力値を要素とする特徴量ベクトルを算出する特徴量ベクトル算出機能と、
特徴量空間において前記特徴量ベクトルにより特定される点の分布が所定の分布に近づくように当該点の分布を調整する分布調整機能と、
複数の前記学習用データについて、前記特徴量ベクトルの入力に応じて前記目的変数の推定値を出力する推定関数を生成する関数生成機能と、
をコンピュータに実現させるためのプログラム。
【０１７２】
（備考）
上記の特徴量計算部１２２は、特徴量ベクトル算出部の一例である。上記の学習用データ統合部１２４は、分布調整部の一例である。上記の推定関数生成部１２３は、関数生成部の一例である。上記の基底関数リスト生成部１２１は、基底関数生成部の一例である。
【０１７３】
以上、添付図面を参照しながら本技術に係る好適な実施形態について説明したが、本技術はここで開示した構成例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本技術の技術的範囲に属するものと了解される。
【符号の説明】
【０１７４】
１０      情報処理装置
１１      学習用データ取得部
１２      推定機構築部
１２１    基底関数リスト生成部
１２２    特徴量計算部
１２３    推定関数生成部
１２４    学習用データ統合部
１３      入力データ取得部
１４      結果認識部
【図１】
0005909943.tif 000003
【図２】
0005909943.tif 000004
【図３】
0005909943.tif 000005
【図４】
0005909943.tif 000006
【図５】
0005909943.tif 000007
【図６】
0005909943.tif 000008
【図７】
0005909943.tif 000009
【図８】
0005909943.tif 000010
【図９】
0005909943.tif 000011
【図１０】
0005909943.tif 000012
【図１１】
0005909943.tif 000013
【図１２】
0005909943.tif 000014
【図１３】
0005909943.tif 000015
【図１４】
0005909943.tif 000016
【図１５】
0005909943.tif 000017
【図１６】
0005909943.tif 000018
【図１７】
0005909943.tif 000019
【図１８】
0005909943.tif 000020
【図１９】
0005909943.tif 000021
【図２０】
0005909943.tif 000022
【図２１】
0005909943.tif 000023
【図２２】
0005909943.tif 000024
【図２３】
0005909943.tif 000025
【図２４】
0005909943.tif 000026
【図２５】
0005909943.tif 000027
【図２６】
0005909943.tif 000028
【図２７】
0005909943.tif 000029
【図２８】
0005909943.tif 000030
【図３０】
0005909943.tif 000031
【図３１】
0005909943.tif 000032
【図３２】
0005909943.tif 000033
【図３３】
0005909943.tif 000034
【図３４】
0005909943.tif 000035
【図３５】
0005909943.tif 000036
【図３６】
0005909943.tif 000037
【図３７】
0005909943.tif 000038
【図３８】
0005909943.tif 000039
【図３９】
0005909943.tif 000040
【図４０】
0005909943.tif 000041
【図２９】
0005909943.tif 000042