"2N個の格納領域で構成される領域群をM個有するデータ格納部と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算部と、前記計算部により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理部と、所定の順序で前記格納領域を走査し、所定数の入力データが取得されるまで前記格納領域に格納されている入力データを1つずつ取得するデータ取得部と、を備え、前記データ取得部は、取得した入力データと同じ入力データが他の前記格納領域に格納されている場合には当該他の格納領域に格納されている入力データを消去し、1つの前記格納領域に複数の入力データが格納されている場合には当該複数の入力データの中からランダムに1つの入力データを取得する、情報処理装置。前記第1関数は、入力データが閾値を上回っている場合に1を出力し、入力データが閾値を下回っている場合に0を出力する関数であり、前記閾値は、乱数により決定される、請求項1に記載の情報処理装置。前記入力データがS次元ベクトルS≧2である場合、前記第1関数は、前記入力データを構成するs次元目s≦Sの要素が前記閾値を上回っている場合に1を出力し、当該s次元目の要素が前記閾値を下回っている場合に0を出力する関数であり、次元数sは、乱数により決定される、請求項2に記載の情報処理装置。前記閾値を決定するために用いる乱数は、一様乱数又はガウス乱数である、請求項2に記載の情報処理装置。2N個の格納領域で構成される領域群をM個有するデータ格納部と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算部と、前記計算部により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理部と、処理対象の入力データと同じ入力データが格納されている格納領域について、1つの格納領域当たりに格納されている入力データの数を算出する密度算出部と、を備える、情報処理装置。2N個の格納領域で構成される領域群をM個用意しておき、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行するステップと、第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納するステップと、所定の順序で前記格納領域を走査し、所定数の入力データが取得されるまで前記格納領域に格納されている入力データを1つずつ取得するステップと、を含み、前記取得するステップでは、取得した入力データと同じ入力データが他の前記格納領域に格納されている場合には当該他の格納領域に格納されている入力データを消去し、1つの前記格納領域に複数の入力データが格納されている場合には当該複数の入力データの中からランダムに1つの入力データを取得する処理が実行される、情報処理方法。2N個の格納領域で構成される領域群をM個用意しておき、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行するステップと、第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納するステップと、処理対象の入力データと同じ入力データが格納されている格納領域について、1つの格納領域当たりに格納されている入力データの数を算出するステップと、を含む、情報処理方法。2N個の格納領域で構成される領域群をM個有するデータ格納機能と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算機能と、前記計算機能により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理機能と、所定の順序で前記格納領域を走査し、所定数の入力データが取得されるまで前記格納領域に格納されている入力データを1つずつ取得するデータ取得機能と、をコンピュータに実現させるためのプログラムであり、前記データ取得機能は、取得した入力データと同じ入力データが他の前記格納領域に格納されている場合には当該他の格納領域に格納されている入力データを消去し、1つの前記格納領域に複数の入力データが格納されている場合には当該複数の入力データの中からランダムに1つの入力データを取得する、プログラム。2N個の格納領域で構成される領域群をM個有するデータ格納機能と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算機能と、前記計算機能により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理機能と、処理対象の入力データと同じ入力データが格納されている格納領域について、1つの格納領域当たりに格納されている入力データの数を算出する密度算出機能と、をコンピュータに実現させるためのプログラム。上記の文献に記載の特徴量抽出式自動構築アルゴリズムは、予め用意された学習用データを利用して特徴量抽出式を自動構築する。また、学習用データの数が多いほど、自動構築される特徴量抽出式の性能が向上する。しかし、特徴量抽出式の構築に利用可能なメモリ量には限りがある。また、学習用データの数が多いと、特徴量抽出式の構築を実現するために高い演算性能が要求される。そのため、多量に供給される学習用データの中から、特徴量抽出式の性能向上に寄与する有用な学習用データをサンプリングして利用する技術の研究開発が進められている。上記のような研究開発の過程で、本件発明者は、膨大な数のデータ群から所定の条件を満たす所定数のデータを抽出する技術について検討を行った。特に、本件発明者は、ある空間内の座標点で表現されるデータ群の中から、座標点の分布が所定の分布となるようにデータ群を効率的に抽出する技術について検討を行った。その結果、分布を考慮してデータ群を抽出する方法はいくつか考えられるが、抽出元のデータ数が多くなると演算負荷が大きくなってしまうことが分かった。そこで、本技術は、上記のような事情を受けて考案されたものであり、演算負荷を低減することが可能な、新規かつ改良された情報処理装置、情報処理方法、及びプログラムを提供することを意図している。本技術のある観点によれば、2N個の格納領域で構成される領域群をM個有するデータ格納部と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算部と、前記計算部により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理部と、所定の順序で前記格納領域を走査し、所定数の入力データが取得されるまで前記格納領域に格納されている入力データを1つずつ取得するデータ取得部と、を備え、前記データ取得部は、取得した入力データと同じ入力データが他の前記格納領域に格納されている場合には当該他の格納領域に格納されている入力データを消去し、1つの前記格納領域に複数の入力データが格納されている場合には当該複数の入力データの中からランダムに1つの入力データを取得する、情報処理装置が提供される。また、本技術の別の観点によれば、2N個の格納領域で構成される領域群をM個有するデータ格納部と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算部と、前記計算部により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理部と、処理対象の入力データと同じ入力データが格納されている格納領域について、1つの格納領域当たりに格納されている入力データの数を算出する密度算出部と、を備える、情報処理装置が提供される。また、本技術の別の観点によれば、2N個の格納領域で構成される領域群をM個用意しておき、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行するステップと、第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納するステップと、所定の順序で前記格納領域を走査し、所定数の入力データが取得されるまで前記格納領域に格納されている入力データを1つずつ取得するステップと、を含み、前記取得するステップでは、取得した入力データと同じ入力データが他の前記格納領域に格納されている場合には当該他の格納領域に格納されている入力データを消去し、1つの前記格納領域に複数の入力データが格納されている場合には当該複数の入力データの中からランダムに1つの入力データを取得する処理が実行される、情報処理方法が提供される。また、本技術の別の観点によれば、2N個の格納領域で構成される領域群をM個用意しておき、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行するステップと、第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納するステップと、処理対象の入力データと同じ入力データが格納されている格納領域について、1つの格納領域当たりに格納されている入力データの数を算出するステップと、を含む、情報処理方法が提供される。また、本技術の別の観点によれば、2N個の格納領域で構成される領域群をM個有するデータ格納機能と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算機能と、前記計算機能により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理機能と、所定の順序で前記格納領域を走査し、所定数の入力データが取得されるまで前記格納領域に格納されている入力データを1つずつ取得するデータ取得機能と、をコンピュータに実現させるためのプログラムであり、前記データ取得機能は、取得した入力データと同じ入力データが他の前記格納領域に格納されている場合には当該他の格納領域に格納されている入力データを消去し、1つの前記格納領域に複数の入力データが格納されている場合には当該複数の入力データの中からランダムに1つの入力データを取得する、プログラムが提供される。また、本技術の別の観点によれば、2N個の格納領域で構成される領域群をM個有するデータ格納機能と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算機能と、前記計算機能により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理機能と、処理対象の入力データと同じ入力データが格納されている格納領域について、1つの格納領域当たりに格納されている入力データの数を算出する密度算出機能と、をコンピュータに実現させるためのプログラムが提供される。また、本技術の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。以上説明したように本技術によれば、演算負荷を低減することが可能になる。以下に添付図面を参照しながら、本技術に係る好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。[説明の流れについて]ここで、以下に記載する説明の流れについて簡単に述べる。まず、図1~図12を参照しながら、推定機の自動構築方法について説明する。次いで、図13及び図14を参照しながら、オンライン学習に基づく推定機の自動構築方法について説明する。次いで、図15及び図16を参照しながら、本実施形態に係る情報処理装置10の機能構成について説明する。次いで、図17~図19を参照しながら、本実施形態に係る学習用データの統合方法について説明する。次いで、図20~図26を参照しながら、本実施形態に係る効率的な学習用データのサンプリング方法について説明する。次いで、図27~図30を参照しながら、本実施形態に係る効率的な重み付け方法について説明する。次いで、図31を参照しながら、本実施形態に係る効率的な学習用データのサンプリング方法及び重み付け方法を組み合わせる方法について説明する。次いで、図32を参照しながら、本実施形態に係る技術を画像認識機の自動構築方法に応用する方法について説明する。次いで、図33を参照しながら、本実施形態に係る技術を言語解析機の自動構築方法に応用する方法について説明する。次いで、図34を参照しながら、本実施形態に係るオンライン学習の効果について説明する。次いで、図35を参照しながら、本実施形態に係る情報処理装置10の機能を実現することが可能なハードウェア構成例について説明する。最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。説明項目1:はじめに1-1:推定機の自動構築方法1-1-1:推定機の構成1-1-2:構築処理の流れ1-2:オンライン学習の実現に向けて2:実施形態2-1:情報処理装置10の機能構成2-2:学習用データの統合方法2-2-1:特徴量空間における学習用データの分布と推定機の精度2-2-2:データ統合時にサンプリングする構成2-2-3:データ統合時に重み付けする構成2-2-4:データ統合時にサンプリング及び重み付けする構成2-3:効率的なサンプリング/重み付け方法2-3-1:サンプリング方法2-3-2:重み付け方法2-3-3:組み合わせ方法3:応用例3-1:画像認識機の自動構築方法3-2:言語解析機の自動構築方法4:ハードウェア構成例5:まとめ<1:はじめに>後述する実施形態は、推定機の自動構築方法に関する。また、同実施形態は、推定機の構築に用いる学習用データを追加できるようにする仕組み以下、オンライン学習に関する。そこで、同実施形態に係る技術について詳細に説明するに先立ち、推定機の自動構築方法及びオンライン学習を実現するに当たって解決すべき課題について説明する。なお、以下では遺伝アルゴリズムに基づく推定機の自動構築方法を例に挙げて説明を進めるが、同実施形態に係る技術の適用範囲はこれに限定されない。[1-1:推定機の自動構築方法]推定機の自動構築方法について説明する。1-1-1:推定機の構成はじめに、図1~図3を参照しながら、推定機の構成について説明する。図1は、推定機を利用するシステムのシステム構成例を示した説明図である。また、図2は、推定機の構築に利用する学習用データの構成例を示した説明図である。そして、図3は、推定機の構造及び構築方法の概要を示した説明図である。まず、図1を参照する。図1に示すように、推定機の構築及び推定値の算出は、例えば、情報処理装置10により実行される。情報処理装置10は、複数の学習用データX1,t1,...,XN,tNを利用して推定機を構築する。なお、以下の説明において、学習用データの集合を学習用データセットと呼ぶ場合がある。また、情報処理装置10は、構築した推定機を利用して入力データXから推定値yを算出する。この推定値yは、入力データXの認識に利用される。例えば、推定値yが所定の閾値Thより大きい場合に認識結果YESが得られ、推定値yが所定の閾値Thより小さい場合に認識結果NOが得られる。図2を参照しながら、より具体的に推定機の構成について考えてみよう。図2に例示した学習用データセットは、海の画像を認識する画像認識機の構築に利用されるものである。この場合、情報処理装置10により構築される推定機は、入力された画像の海らしさを表す推定値yを出力するものとなる。図2に示すように、学習用データは、データXkと目的変数tkとのペア但し、k=1~Nにより構成される。データXkは、k番目の画像データ画像kである。また、目的変数tkは、画像kが海の画像である場合に1、画像kが海の画像でない場合に0となる変数である。図2の例では、画像1が海の画像であり、画像2が海の画像であり、...、画像Nが海の画像でない。この場合、t1=1、t2=1、...、tN=0となる。この学習用データセットが入力されると、情報処理装置10は、入力された学習用データセットに基づく機械学習により、入力された画像の海らしさを表す推定値yを出力する推定機を構築する。この推定値yは、入力された画像の海らしさが高いほど1に近づき、海らしさが低いほど0に近づく値である。また、新たに入力データX画像Xが入力されると、情報処理装置10は、学習用データセットを利用して構築された推定機に画像Xを入力し、画像Xの海らしさを表す推定値yを算出する。この推定値yを利用すると、画像Xが海の画像であるか否かを認識することが可能になる。例えば、推定値y≧所定の閾値Thの場合、入力された画像Xが海の画像であると認識される。一方、推定値y<所定の閾値Thの場合、入力された画像Xが海の画像でないと認識される。本実施形態は、上記のような推定機を自動構築する技術に関する。なお、ここでは画像認識機の構築に利用される推定機について説明したが、本実施形態に係る技術は、様々な推定機の自動構築方法に適用することができる。例えば、言語解析機の構築に適用することもできるし、楽曲のメロディーラインやコード進行などを解析する音楽解析機の構築にも適用することができる。さらに、蝶の動きや雲の流れなどの自然現象を再現したり、自然の振る舞いを予測したりする動き予測機の構築などにも適用することができる。例えば、特開2009-48266号公報、特願2010-159598号明細書、特願2010-159597号明細書、特願2009-277083号明細書、特願2009-277084号明細書などに記載のアルゴリズムに適用することができる。また、AdaBoostなどのアンサンブル学習手法や、SVMやSVRなどのカーネルを用いた学習手法などにも適用できる。AdaBoostなどのアンサンブル学習手法に適用する場合、弱学習機WeakLearnerが後述する基底関数φに対応する。また、SVMやSVRなどの学習手法に適用する場合、カーネルが後述する基底関数φに対応する。なお、SVMはSupportVectorMachine、SVRはSupportVectorRegression、RVMはRelevanceVectorMachineの略である。ここで、図3を参照しながら、推定機の構造について説明する。図3に示すように、推定機は、基底関数リストφ1,...,φM及び推定関数fにより構成される。基底関数リストφ1,...,φMは、M個の基底関数φkk=1~Mを含む。また、基底関数φkは、入力データXの入力に応じて特徴量zkを出力する関数である。さらに、推定関数fは、M個の特徴量zkk=1~Mを要素として含む特徴量ベクトルZ=z1,...,zMの入力に応じて推定値yを出力する関数である。基底関数φkは、予め用意された1又は複数の処理関数を組み合わせて生成される。処理関数としては、例えば、三角関数、指数関数、四則演算、デジタルフィルタ、微分演算、中央値フィルタ、正規化演算、ホワイトノイズの付加処理、画像処理フィルタなどが利用可能である。例えば、入力データXが画像の場合、ホワイトノイズの付加処理AddWhiteNoise、中央値フィルタMedian、ぼかし処理Blurを組み合わせた基底関数φjX=AddWhiteNoiseMedianBlurXなどが利用される。この基底関数φjは、入力データXに対し、ぼかし処理、中央値フィルタ処理、及びホワイトノイズの付加処理を順次施すことを意味する。1-1-2:構築処理の流れさて、基底関数φkk=1~Mの構成、基底関数リストの構成、推定関数fの構成は、学習用データセットに基づく機械学習により決定される。以下、この機械学習による推定機の構築処理について、より詳細に説明する。全体構成まず、図4を参照しながら、全体的な処理の流れについて説明する。図4は、全体的な処理の流れについて説明するための説明図である。なお、以下で説明する処理は、情報処理装置10により実行される。図4に示すように、まず、情報処理装置10に学習用データセットが入力されるS101。なお、学習用データとしては、データXと目的変数tの組が入力される。学習用データセットが入力されると、情報処理装置10は、処理関数を組み合わせて基底関数を生成するS102。次いで、情報処理装置10は、基底関数にデータXを入力して特徴量ベクトルZを算出するS103。次いで、情報処理装置10は、基底関数の評価及び推定関数の生成を行うS104。次いで、情報処理装置10は、所定の終了条件を満たしたか否かを判定するS105。所定の終了条件を満たした場合、情報処理装置10は、処理をステップS106に進める。一方、所定の終了条件を満たしていない場合、情報処理装置10は、処理をステップS102に戻し、ステップS102~S104の処理を繰り返し実行する。処理をステップS106に進めた場合、情報処理装置10は、推定関数を出力するS106。上記の通り、ステップS102~S104の処理は、繰り返し実行される。そこで、以下の説明においては、第τ回目の繰り返し処理においてステップS102で生成される基底関数を第τ世代の基底関数と呼ぶことにする。基底関数の生成S102ここで、図5~図10を参照しながら、ステップS102の処理基底関数の生成について、より詳細に説明する。まず、図5を参照する。図5に示すように、情報処理装置10は、現在の世代が2世代目以降であるか否かを判定するS111。つまり、情報処理装置10は、現在実行しようとしているステップS102の処理が第2回目以降の繰り返し処理であるか否かを判定する。2世代目以降である場合、情報処理装置10は、処理をステップS113に進める。一方、2世代目以降でない場合第1世代である場合、情報処理装置10は、処理をステップS112に進める。処理をステップS112に進めた場合、情報処理装置10は、基底関数をランダムに生成するS112。一方、処理をステップS113に進めた場合、情報処理装置10は、基底関数を進化的に生成するS113。そして、情報処理装置10は、ステップS112又はS113の処理が完了すると、ステップS102の処理を終了する。S112:基底関数をランダムに生成次に、図6及び図7を参照しながら、ステップS112の処理について、より詳細に説明する。ステップS112の処理は、第1世代の基底関数を生成する処理に関する。まず、図6を参照する。図6に示すように、情報処理装置10は、基底関数のインデックスmm=0~M-1に関する処理ループを開始するS121。次いで、情報処理装置10は、基底関数φmxをランダムに生成するS122。次いで、情報処理装置10は、基底関数のインデックスmがM-1に達したか否かを判定し、基底関数のインデックスmがM-1に達していない場合、情報処理装置10は、基底関数のインデックスmをインクリメントしてステップS121に処理を戻すS124。一方、基底関数のインデックスmがm=M-1の場合、情報処理装置10は、処理ループを終了するS124。ステップS124で処理ループを終了すると、情報処理装置10は、ステップS112の処理を完了する。ステップS122の詳細次に、図7を参照しながら、ステップS122の処理について、より詳細に説明する。ステップS122の処理を開始すると、図7に示すように、情報処理装置10は、基底関数のプロトタイプをランダムに決定するS131。プロトタイプとしては、既に例示した処理関数の他、線形項、ガウシアンカーネル、シグモイドカーネルなどの処理関数が利用可能である。次いで、情報処理装置10は、決定したプロトタイプのパラメータをランダムに決定し、基底関数を生成するS132。S113:基底関数を進化的に生成次に、図8~図10を参照しながら、ステップS113の処理について、より詳細に説明する。ステップS113の処理は、第τ世代τ≧2の基底関数を生成する処理に関する。従って、ステップS113を実行する際には、第τ-1世代の基底関数φm,τ-1m=1~M及び当該基底関数φm,τ-1の評価値vm,τ-1が得られている。まず、図8を参照する。図8に示すように、情報処理装置10は、基底関数の数Mを更新するS141。つまり、情報処理装置10は、第τ世代の基底関数の数Mτを決定する。次いで、情報処理装置10は、第τ-1世代の基底関数φm,τ-1m=1~Mに対する評価値vτ-1={v1,τ-1,...,vM,τ-1}に基づき、第τ-1世代の基底関数の中からe個の有用な基底関数を選択して第τ世代の基底関数φ1,τ、...、φe,τに設定するS142。次いで、情報処理装置10は、残りMτ-e個の基底関数φe1,τ、...、φMτ,τを生成する方法を交差、突然変異、ランダム生成の中からランダムに選択するS143。交差を選択した場合、情報処理装置10は、処理をステップS144に進める。また、突然変異を選択した場合、情報処理装置10は、処理をステップS145に進める。そして、ランダム生成を選択した場合、情報処理装置10は、処理をステップS146に進める。処理をステップS144に進めた場合、情報処理装置10は、ステップS142で選択された基底関数φ1,τ、...、φe,τの中から選択された基底関数を交差させて新たな基底関数φm’,τm’≧e1を生成するS144。また、処理をステップS145に進めた場合、情報処理装置10は、ステップS142で選択された基底関数φ1,τ、...、φe,τの中から選択された基底関数を突然変異させて新たな基底関数φm’,τm’≧e1を生成するS145。一方、処理をステップS146に進めた場合、情報処理装置10は、ランダムに新たな基底関数φm’,τm’≧e1を生成するS146。ステップS144、S145、S146のいずれかの処理を終えると、情報処理装置10は、処理をステップS147に進める。処理をステップS147に進めると、情報処理装置10は、第τ世代の基底関数がM個M=Mτに達したか否かを判定するS147。第τ世代の基底関数がM個に達していない場合、情報処理装置10は、処理を再びステップS143に戻す。一方、第τ世代の基底関数がM個に達した場合、情報処理装置10は、ステップS113の処理を終了する。S144の詳細:交差次に、図9を参照しながら、ステップS144の処理について、より詳細に説明する。ステップS144の処理を開始すると、図9に示すように、情報処理装置10は、ステップS142で選択された基底関数φ1,τ、...、φe,τの中から同じプロトタイプを持つ基底関数をランダムに2つ選択するS151。次いで、情報処理装置10は、選択した2つの基底関数が持つパラメータを交差させて新たな基底関数を生成するS152。S145の詳細:突然変異次に、図10を参照しながら、ステップS145の処理について、より詳細に説明する。ステップS145の処理を開始すると、図10に示すように、情報処理装置10は、ステップS142で選択された基底関数φ1,τ、...、φe,τの中から基底関数をランダムに1つ選択するS161。次いで、情報処理装置10は、選択した基底関数が持つパラメータの一部をランダムに変更して新たな基底関数を生成するS162。S146の詳細:ランダム生成次に、図7を参照しながら、ステップS146の処理について、より詳細に説明する。ステップS122の処理を開始すると、図7に示すように、情報処理装置10は、基底関数のプロトタイプをランダムに決定するS131。プロトタイプとしては、既に例示した処理関数の他、線形項、ガウシアンカーネル、シグモイドカーネルなどの処理関数が利用可能である。次いで、情報処理装置10は、決定したプロトタイプのパラメータをランダムに決定し、基底関数を生成するS132。以上、ステップS102の処理基底関数の生成について、より詳細に説明した。基底関数の計算S103次に、図11を参照しながら、ステップS103の処理基底関数の計算について、より詳細に説明する。図11に示すように、情報処理装置10は、学習用データセットに含まれるi番目のデータXiのインデックスiに関する処理ループを開始するS171。例えば、学習用データセットとしてN個のデータの組{X1,...,XN}が入力された場合には、i=1~Nに関して処理ループが実行される。次いで、情報処理装置10は、基底関数φmのインデックスmに関する処理ループを開始するS172。例えば、M個の基底関数を生成した場合には、m=1~Mに関して処理ループが実行される。次いで、情報処理装置10は、特徴量zmi=φmxiを計算するS173。次いで、情報処理装置10は、処理をステップS174に進め、基底関数のインデックスmに関する処理ループを続ける。そして、情報処理装置10は、基底関数のインデックスmに関する処理ループが終了すると、処理をステップS175に進め、インデックスiに関する処理ループを続ける。インデックスiに関する処理ループが終了した場合、情報処理装置10は、ステップS103の処理を終了する。以上、ステップS103の処理基底関数の計算について、より詳細に説明した。基底関数の評価推定関数の生成S104次に、図12を参照しながら、ステップS104の処理基底関数の評価推定関数の生成について、より詳細に説明する。図12に示すように、情報処理装置10は、AIC基準の増減法に基づく回帰/判別学習により推定関数のパラメータw={w0,...,wM}を算出するS181。つまり、情報処理装置10は、特徴量zmi=φm,τxiと目的変数tiの組i=1~Nが推定関数fによりフィッティングされるように、回帰/判別学習によりベクトルw={w0,...,wM}を求める。但し、推定関数fxは、fx=Σwmφm,τxw0であるとする。次いで、情報処理装置10は、パラメータwが0となる基底関数の評価値vを0に設定し、それ以外の基底関数の評価値vを1に設定するS182。つまり、評価値vが1の基底関数は有用な基底関数である。以上、ステップS104の処理基底関数の評価推定関数の生成について、より詳細に説明した。推定機の構築に係る処理の流れは上記の通りである。このように、ステップS102~S104の処理が繰り返し実行され、基底関数が進化的手法により逐次更新されることにより推定精度の高い推定関数が得られる。つまり、上記の方法を適用することで、高性能な推定機を自動構築することができる。[1-2:オンライン学習の実現に向けて]さて、上記のように、機械学習により推定機を自動構築するアルゴリズムの場合、学習用データの数が多いほど、構築される推定機の性能が高くなる。そのため、可能な限り多くの学習用データを利用して推定機を構築するのが好ましい。しかしながら、学習用データの格納に利用できる情報処理装置10のメモリ容量は限られている。また、学習用データの数が多くなると、推定機の構築を実現するために要求される演算性能も高くなってしまう。こうした理由から、バッチ処理にて推定機を構築する上記の方法以下、オフライン学習を用いている限り、推定機の性能は、情報処理装置10のリソースにより制限されてしまう。そこで、本件発明者は、学習用データを逐次追加できるようにする仕組み以下、オンライン学習を考案した。オンライン学習に係る推定機の構築は、図13に示すような処理の流れに沿って行われる。図13に示すように、まず、学習用データセットが情報処理装置10に入力されるStep1。次いで、情報処理装置10は、入力された学習用データセットを利用し、既に説明した推定機の自動構築方法により推定機を構築するStep2。次いで、情報処理装置10は、随時又は所定のタイミングで追加の学習用データを取得するStep3。次いで、情報処理装置10は、Step1で入力された学習用データセットと、Step3で取得した学習用データとを統合するStep4。このとき、情報処理装置10は、学習用データのサンプリング処理や重み付け処理を実行し、統合後の学習用データセットを生成する。そして、情報処理装置10は、統合後の学習用データセットを利用し、再び推定機を構築するStep2。このとき、情報処理装置10は、既に説明した推定機の自動構築方法により推定機を構築する。なお、Step2で構築された推定機は、構築の度に出力されるようにしてもよい。また、Step2~Step4の処理は繰り返し実行される。そして、学習用データセットは、処理が繰り返される度に更新される。例えば、繰り返しの度に学習用データが追加されるようにすれば、推定機の構築処理に利用される学習用データの数が増加するため、推定機の性能が向上する。しかし、情報処理装置10のリソースには限界があるため、Step4で実行される学習用データの統合処理では、より有用な学習用データが推定機の構築に利用されるように統合の仕方を工夫する必要がある。課題の整理図14に示すように、オフライン学習を適用する場合、推定機の構築に利用可能な学習用データの数に限りがあるため、推定機の更なる性能向上に限界がある。一方、オンライン学習を適用すると、学習用データの追加が可能になるため、推定機の更なる性能向上が期待できる。しかし、情報処理装置10のリソースには限りがあるため、限られたリソースの中で推定機の更なる性能向上を果たせるように学習用データの統合方法を工夫する必要がある。以下の実施形態に係る技術は、こうした課題を解決すべく考案されたものである。<2:実施形態>本技術の一実施形態について説明する。[2-1:情報処理装置10の機能構成]まず、図15及び図16を参照しながら、本実施形態に係る情報処理装置10の機能構成について説明する。図15は、本実施形態に係る情報処理装置10の全体的な機能構成を示した説明図である。一方、図16は、本実施形態に係る情報処理装置10を構成する推定機構築部12の詳細な機能構成を示した説明図である。全体的な機能構成まず、図15を参照しながら、全体的な機能構成について説明する。図15に示すように、情報処理装置10は、主に、学習用データ取得部11と、推定機構築部12と、入力データ取得部13と、結果認識部14とにより構成される。推定機の構築処理が開始されると、学習用データ取得部11は、推定機の構築に利用する学習用データを取得する。例えば、学習用データ取得部11は、記憶装置非図示に格納された学習用データを読み出す。或いは、学習用データ取得部11は、学習用データを提供するシステムなどからネットワークを介して学習用データを取得する。また、学習用データ取得部11は、タグが付されたデータを取得し、タグに基づいてデータと目的変数との組で構成される学習用データを生成してもよい。学習用データ取得部11により取得された学習用データの集合学習用データセットは、推定機構築部12に入力される。学習用データセットが入力されると、推定機構築部12は、入力された学習用データセットに基づく機械学習により推定機を構築する。例えば、推定機構築部12は、既に説明した遺伝アルゴリズムに基づく推定機の自動構築方法を利用して推定機を構築する。また、学習用データ取得部11から追加の学習用データが入力された場合、推定機構築部12は、学習用データを統合し、統合後の学習用データセットを利用して推定機を構築する。推定機構築部12により構築された推定機は、結果認識部14に入力される。この推定機は、任意の入力データに対する認識結果を得るために利用される。入力データ取得部13により認識対象の入力データが取得されると、取得された入力データは、結果認識部14に入力される。入力データが入力されると、結果認識部14は、入力された入力データを推定機に入力し、推定機から出力される推定値に基づいて認識結果を生成する。例えば、図1に示すように、結果認識部14は、推定値yと所定の閾値Thとを比較し、比較結果に応じて認識結果を出力する。以上、情報処理装置10の全体的な機能構成について説明した。推定機構築部12の機能構成次に、図16を参照しながら、推定機構築部12の機能構成について詳細に説明する。図16に示すように、推定機構築部12は、基底関数リスト生成部121と、特徴量計算部122と、推定関数生成部123と、学習用データ統合部124とにより構成される。推定機の構築処理が開始されると、まず、基底関数リスト生成部121は、基底関数リストを生成する。そして、基底関数リスト生成部121により生成された基底関数リストは、特徴量計算部122に入力される。また、特徴量計算部122には、学習用データセットが入力される。基底関数リスト及び学習用データセットが入力されると、特徴量計算部122は、入力された学習用データセットのデータを基底関数リストに含まれる各基底関数に入力して特徴量を算出する。特徴量計算部122により算出された特徴量の組特徴量ベクトルは、推定関数生成部123に入力される。特徴量ベクトルが入力されると、推定関数生成部123は、入力された特徴量ベクトル及び学習用データを構成する目的変数に基づいて回帰/判別学習により推定関数を生成する。なお、遺伝アルゴリズムに基づく推定機の構築方法を適用する場合、推定関数生成部123は、生成した推定関数に対する各基底関数の寄与率評価値を算出し、その寄与率に基づいて終了条件を満たすか否かを判定する。終了条件を満たす場合、推定関数生成部123は、基底関数リスト及び推定関数を含む推定機を出力する。一方、終了条件を満たさない場合、推定関数生成部123は、生成した推定関数に対する各基底関数の寄与率を基底関数リスト生成部121に通知する。この通知を受けた基底関数リスト生成部121は、遺伝アルゴリズムにより各基底関数の寄与率に基づいて基底関数リストを更新する。基底関数リストを更新した場合、基底関数リスト生成部121は、更新後の基底関数リストを特徴量計算部122に入力する。更新後の基底関数リストが入力された場合、特徴量計算部122は、更新後の基底関数リストを用いて特徴量ベクトルを算出する。そして、特徴量計算部122により算出された特徴量ベクトルは、推定関数生成部123に入力される。上記のように、遺伝アルゴリズムに基づく推定機の構築方法を適用する場合、終了条件が満たされるまで、推定関数生成部123による推定関数の生成処理、基底関数リスト生成部121による基底関数リストの更新処理、及び特徴量計算部122による特徴量ベクトルの算出処理が繰り返し実行される。そして、終了条件が満たされた場合、推定関数生成部123から推定機が出力される。また、追加の学習用データが入力されると、入力された追加の学習用データは、特徴量計算部122及び学習用データ統合部124に入力される。追加の学習用データが入力されると、特徴量計算部122は、追加の学習用データを構成するデータを基底関数リストに含まれる各基底関数に入力して特徴量を生成する。そして、追加の学習用データに対応する特徴量ベクトル及び既存の学習用データに対応する特徴量ベクトルは、学習用データ統合部124に入力される。なお、学習用データ統合部124には、既存の学習用データも入力されているものとする。学習用データ統合部124は、後述するデータの統合方法に基づいて既存の学習用データセットセットと追加の学習用データとを統合する。例えば、学習用データ統合部124は、特徴量空間において特徴量ベクトルにより示される座標以下、特徴量座標の分布が所定の分布となるように学習用データを間引いたり、学習用データに重みを設定したりする。学習用データを間引いた場合、間引き後の学習用データセットが統合後の学習用データセットとして利用される。一方、学習用データに重みを設定した場合、推定関数生成部123による回帰/判別学習の際に各学習用データに設定された重みが考慮される。学習用データが統合されると、統合後の学習用データセットを用いて推定機の自動構築処理が実行される。具体的には、学習用データ統合部124から推定関数生成部123に統合後の学習用データセットと、統合後の学習用データセットに含まれる学習用データに対応する特徴量ベクトルとが入力され、推定関数生成部123により推定関数が生成される。また、遺伝アルゴリズムに基づく推定機の構築方法を適用する場合、統合後の学習用データセットを利用して推定関数の生成、寄与率の算出、基底関数リストの更新などの処理が実行される。以上、推定機構築部12の詳細な機能構成について説明した。[2-2:学習用データの統合方法]次に、本実施形態に係る学習用データの統合方法について説明する。ここで説明する学習用データの統合方法は、学習用データ統合部124の機能により実現される。2-2-1:特徴量空間における学習用データの分布と推定機の精度まず、図17を参照しながら、特徴量空間における学習用データの分布と推定機の精度との関係について考察する。図17は、特徴量空間における学習用データの分布例を示した説明図である。1つの特徴量ベクトルは、1つの学習用データを構成するデータを基底関数リストに含まれる各基底関数に入力することで得られる。つまり、1つの学習用データには1つの特徴量ベクトル特徴量座標が対応する。そのため、特徴量座標の分布を特徴量空間における学習用データの分布と呼ぶことにする。特徴量空間における学習用データの分布は、例えば、図17のようになる。なお、表現の都合上、図17の例では2次元の特徴量空間を考えているが、特徴量空間の次元数はこれに限定されない。さて、図17に例示した特徴量座標の分布を参照すると、第4象限に疎な領域が存在していることに気づくであろう。既に説明した通り、推定関数は、全ての学習用データについて特徴量ベクトルと目的変数との関係がうまく表現されるように回帰/判別学習により生成される。そのため、特徴量座標の密度が疎な領域について、推定関数は、特徴量ベクトルと目的変数との関係をうまく表現できていない可能性が高い。従って、認識処理の対象となる入力データに対応する特徴量座標が上記の疎な領域に位置する場合、高精度の認識結果を期待することは難しい。図18に示すように、学習用データの数が多くなると疎な領域が生じにくくなり、どの領域に対応する入力データが入力されても高い精度で認識結果を出力することが可能な推定機を構築できるようになると期待される。また、学習用データの数が比較的少なくても、特徴量座標が特徴量空間において満遍なく分布していれば、高い精度で認識結果を出力することが可能な推定機を構築できるものと期待される。そこで、本件発明者は、学習用データを統合する際に特徴量座標の分布を考慮し、統合後の学習用データセットに対応する特徴量座標の分布が所定の分布例えば、一様分布やガウス分布などとなるように調整する仕組みを考案した。2-2-2:データ統合時にサンプリングする構成まず、図19を参照しながら、学習用データをサンプリングする方法について説明する。図19は、学習用データをサンプリングする方法について説明するための説明図である。既に説明したように、オンライン学習を適用する場合、逐次的に学習用データを追加できるため、多量の学習用データを用いて推定機を構築することが可能になる。しかし、情報処理装置10のメモリリソースが限られている場合、学習用データの統合時に、推定機の構築に利用する学習用データの数を絞り込む必要がある。このとき、ランダムに学習用データを間引くのではなく、特徴量座標の分布を考慮して学習用データを間引くことで、推定機の精度を低下させることなく、学習用データの数を絞り込むことができる。例えば、図19に示すように、密な領域に含まれる特徴量座標を多く間引き、疎な領域に含まれる特徴量座標を極力残すようにする。このような方法で学習用データを間引くことにより、統合後の学習用データに対応する特徴量座標の密度が均一になる。つまり、学習用データの数は少なくなったが、特徴量空間の全体に満遍なく特徴量座標が分布しているため、推定関数の生成時に実行する回帰/判別学習の際に特徴量空間の全体が考慮されることになる。その結果、情報処理装置10のメモリリソースが限られていても、高い精度で正しい認識結果を推定することが可能な推定機を構築することが可能になる。2-2-3:データ統合時に重み付けする構成次に、学習用データに重みを設定する方法について説明する。情報処理装置10のメモリリソースが限られている場合、学習用データの統合時に学習用データを間引く方法は有効である。一方、メモリリソースに余裕がある場合、学習用データを間引く代わりに、学習用データに重みを設定することで推定機の性能を向上させることが可能になる。例えば、疎な領域に特徴量座標が含まれる学習用データには大きな重みを設定し、密な領域に特徴量座標が含まれる学習用データには小さな重みを設定する。そして、推定関数の生成時に実行する回帰/判別学習の際に各学習用データに設定された重みを考慮するようにする。2-2-4:データ統合時にサンプリング及び重み付けする構成また、学習用データをサンプリングする方法と、学習用データに重みを設定する方法とを組み合わせてもよい。例えば、特徴量座標の分布が所定の分布となるように学習用データを間引いた後、間引き後の学習用データセットに含まれる学習用データに対し、特徴量座標の密度に応じた重みを設定する。このように、間引き処理と重み付け処理とを組み合わせることにより、メモリリソースが限られていても、より高精度の推定機を構築することが可能になる。[2-3:効率的なサンプリング/重み付け方法]次に、学習用データの効率的なサンプリング/重み付け方法について説明する。2-3-1:サンプリング方法まず、図20を参照しながら、学習用データの効率的なサンプリング方法について説明する。図20は、学習用データの効率的なサンプリング方法について説明するための説明図である。図20に示すように、情報処理装置10は、特徴量計算部122の機能により、全ての学習用データについて特徴量ベクトル特徴量座標を算出するS201。次いで、情報処理装置10は、特徴量計算部122の機能により、算出した特徴量座標を正規化するS202。例えば、特徴量計算部122は、図21に示すように、各特徴量について、分散が1、平均が0となるように値を正規化する。このようにして正規化された特徴量座標は、学習用データ統合部124に入力される。次いで、情報処理装置10は、学習用データ統合部124の機能により、ランダムにハッシュ関数gを生成するS203。例えば、学習用データ統合部124は、下記の式1に示すような5ビットの値を出力するハッシュ関数gを複数生成する。このとき、学習用データ統合部124は、Q個のハッシュ関数gqq=1~Qを生成する。但し、関数hjj=1~5は、下記の式2により定義される。また、d及びThresholdは、乱数により決定される。但し、特徴量座標の分布を一様分布に近づける場合、Thresholdの決定に用いる乱数として一様乱数を用いる。また、特徴量座標の分布をガウス分布に近づける場合、Thresholdの決定に用いる乱数としてガウス乱数を用いる。他の分布についても同様である。また、dの決定は、zdの算出に用いた基底関数の寄与率に応じた偏りのある乱数を用いて行われる。例えば、zdの算出に用いた基底関数の寄与率が大きいほど、dの発生する確率が高くなる乱数が用いられる。ハッシュ関数gqq=1~Qを生成すると、学習用データ統合部124は、各学習用データに対応する特徴量ベクトルZをハッシュ関数gqに入力し、ハッシュ値を算出する。そして、学習用データ統合部124は、算出したハッシュ値に基づいて学習用データをバケットに割り当てるS204。但し、ここで言うバケットとは、ハッシュ値として取り得る値が対応付けられた領域を意味する。例えば、ハッシュ値が5ビット、Q=256の場合について考えてみよう。この場合、バケットの構成は図22のようになる。図22に示すように、ハッシュ値が5ビットであるから、1つのハッシュ関数gqに対し、32個のバケット以下、バケットセットが設けられる。また、Q=256であるから、256組のバケットセットが設けられる。この例に沿って、学習用データをバケットに割り当てる方法について説明する。ある学習用データに対応する特徴量ベクトルZが与えられると、256個のハッシュ関数g1~g256を用いて256個のハッシュ値が算出される。例えば、g1Z=210進数表示であった場合、学習用データ統合部124は、その学習用データをg1に対応するバケットセットの中で2に対応するバケットに割り当てる。同様に、gqZq=2~256を算出し、各値に対応するバケットに学習用データを割り当てる。図22の例では、2種類の学習用データを白丸と黒丸とで表現し、各バケットとの対応関係を模式的に表現している。このようにして各学習用データをバケットに割り当てると、学習用データ統合部124は、所定の順序でバケットから学習用データを1つ選択するS205。例えば、学習用データ統合部124は、図23に示すように、左上ハッシュ関数のインデックスqが小さく、バケットに割り当てられた値が小さい側から順にバケットを走査し、バケットに割り当てられた学習用データを1つ選択する。バケットから学習用データを選択するルールは、図24に示した通りである。第1に、学習用データ統合部124は、空のバケットをスキップする。第2に、学習用データ統合部124は、1つの学習用データを選択した場合、同じ学習用データを他の全てのバケットから除く。第3に、学習用データ統合部124は、1つのバケットに複数の学習用データが割り当てられている場合にはランダムに1つの学習用データを選択する。なお、選択された学習用データの情報は、学習用データ統合部124により保持される。1つの学習用データを選択した後、学習用データ統合部124は、所定数の学習用データを選択し終えたか否かを判定するS206。所定数の学習用データを選択し終えた場合、学習用データ統合部124は、選択した所定数の学習用データを統合後の学習用データセットとして出力し、学習用データの統合に係る一連の処理を終了する。一方、所定数の学習用データを選択し終えていない場合、学習用データ統合部124は、処理をステップS205に進める。以上、学習用データの効率的なサンプリング方法について説明した。なお、特徴量空間と上記のバケットとの対応関係は図25に示したイメージ図のようになる。また、上記の方法により学習用データのサンプリングを行った結果は、例えば、図26一様分布の例のようになる。図26を参照すると、疎な領域に含まれる特徴量座標は残り、密な領域に含まれる特徴量座標が間引かれていることが分かる。なお、上記のバケットを利用しない場合、学習用データのサンプリングに要する演算負荷は格段に大きくなる点に注意されたい。2-3-2:重み付け方法次に、図27を参照しながら、学習用データの効率的な重み付け方法について説明する。図27は、学習用データの効率的な重み付け方法について説明するための説明図である。図27に示すように、情報処理装置10は、特徴量計算部122の機能により、全ての学習用データについて特徴量ベクトル特徴量座標を算出するS211。次いで、情報処理装置10は、特徴量計算部122の機能により、算出した特徴量座標を正規化するS212。例えば、特徴量計算部122は、図21に示すように、各特徴量について、分散が1、平均が0となるように値を正規化する。このようにして正規化された特徴量座標は、学習用データ統合部124に入力される。次いで、情報処理装置10は、学習用データ統合部124の機能により、ランダムにハッシュ関数gを生成するS213。例えば、学習用データ統合部124は、上記の式1に示すような5ビットの値を出力するハッシュ関数gを複数生成する。このとき、学習用データ統合部124は、Q個のハッシュ関数gqq=1~Qを生成する。但し、関数hjj=1~5は、上記の式2により定義される。また、d及びThresholdは、乱数により決定される。但し、特徴量座標の分布を一様分布に近づける場合、Thresholdの決定に用いる乱数として一様乱数を用いる。また、特徴量座標の分布をガウス分布に近づける場合、Thresholdの決定に用いる乱数としてガウス乱数を用いる。他の分布についても同様である。また、dの決定は、zdの算出に用いた基底関数の寄与率に応じた偏りのある乱数を用いて行われる。例えば、zdの算出に用いた基底関数の寄与率が大きいほど、dの発生する確率が高くなる乱数が用いられる。ハッシュ関数gqq=1~Qを生成すると、学習用データ統合部124は、各学習用データに対応する特徴量ベクトルZをハッシュ関数gqに入力し、ハッシュ値を算出する。そして、学習用データ統合部124は、算出したハッシュ値に基づいて学習用データをバケットに割り当てるS214。次いで、学習用データ統合部124は、各学習用データについて密度を算出するS215。例えば、図28に示すように、学習データがバケットに割り当てられているものとしよう。また、白丸で表現された学習用データに注目する。この場合、学習用データ統合部124は、まず、各ハッシュ関数に対応するバケットセットについて、白丸を含むバケットに割り当てられている学習用データの数をカウントする。例えば、ハッシュ関数g1に対応するバケットセットを参照すると、白丸を含むバケットに割り当てられている学習用データの数は1である。同様に、ハッシュ関数g2に対応するバケットセットを参照すると、白丸を含むバケットに割り当てられている学習用データの数は2である。学習用データ統合部124は、ハッシュ関数g1~g256に対応するバケットセットについて、白丸を含むバケットに割り当てられている学習用データの数をカウントする。そして、学習用データ統合部124は、カウントした数の平均値を算出し、算出した平均値を白丸に対応する学習用データの密度とみなす。同様にして、学習用データ統合部124は、全ての学習用データの密度を算出する。なお、各学習用データの密度は図29のB図のように表現される。但し、色が濃い部分の密度が高く、色が薄い部分の密度が低い。さて、全ての学習用データについて密度を算出し終えると、学習用データ統合部124は、処理をステップS217に進めるS216。ステップS217に処理を進めた場合、学習用データ統合部124は、算出した密度から各学習用データに設定する重みを算出するS217。例えば、学習用データ統合部124は、密度の逆数を重みに設定する。なお、各学習用データに設定される重みの分布は図30のB図のように表現される。但し、色が濃い部分の重みが大きく、色が薄い部分の重みが小さい。図30を参照すると、密な領域の重みが小さく、疎な領域の重みが大きくなっていることが分かるであろう。上記のようにして各学習用データに設定する重みを算出し終えると、学習用データ統合部124は、重み付けに係る一連の処理を終了する。以上、学習用データの効率的な重み付け方法について説明した。なお、上記のバケットを利用しない場合、学習用データの重み付けに要する演算負荷は格段に大きくなる点に注意されたい。2-3-3:組み合わせ方法次に、図31を参照しながら、上記の効率的なサンプリング方法と効率的な重み付け方法とを組み合わせる方法について説明する。図31は、上記の効率的なサンプリング方法と効率的な重み付け方法とを組み合わせる方法について説明するための説明図である。図31に示すように、学習用データ統合部124は、まず、学習用データのサンプリング処理を実行するS221。このサンプリング処理は、図20に示した処理の流れに沿って実行される。そして、所定数の学習用データが得られると、学習用データ統合部124は、得られた学習用データを対象に重み付け処理を実行するS222。この重み付け処理は、図27に示した処理の流れに沿って実行される。なお、サンプリング処理の際に算出した特徴量ベクトルやハッシュ関数を流用してもよい。サンプリング処理及び重み付け処理を実行し終えると、学習用データ統合部124は、一連の処理を終了する。以上、学習用データの効率的なサンプリング/重み付け方法について説明した。なお、ここでは特徴量座標の分布を効率的に所定の分布に近づけるための効率的なサンプリング/重み付け方法について説明したが、バケットを利用したデータのサンプリング/重み付け方法の適用範囲はこれに限定されない。例えば、任意のデータ群について、ハッシュ関数に基づくバケットへのデータ割り当てを行い、バケットから図24に示したルールに従ってデータをサンプリングすることにより、任意のデータ群の分布を効率的に所定の分布に近づけることができようになる。重み付け処理についても同様である。<3:応用例>次に、本実施形態に係る技術の応用例について説明する。なお、本実施形態に係る技術の応用範囲は広く、画像データの識別機、テキストデータの識別機、音声データの識別機、信号データの識別機など、様々な識別器や解析機の自動構築に応用することができる。ここでは一例として、画像認識機の自動構築方法への応用及び言語解析機の自動構築方法への応用について紹介する。[3-1:画像認識機の自動構築方法]まず、図32を参照しながら、画像認識機の自動構築方法への応用について述べる。図32は、画像認識機の構築に利用する学習用データセットの生成方法について説明するための説明図である。なお、ここで言う画像認識機とは、例えば、画像を入力すると、その画像が花の画像なのか、空の画像なのか、或いは、寿司の画像なのかなどを自動認識するアルゴリズムのことを意味する。上記の説明においては、データXと目的変数tとで構成される学習用データが与えられるものとして説明を進めてきた。しかし、オンライン学習を想定する場合、学習用データセットは、例えば、Webサービスをクローリングして得られる情報以下、取得情報から自動的に生成されることが望ましい。例えば、図32のA図に示すような取得情報が得られたとする。この取得情報は、画像と、画像に付与されたタグとにより構成される。例えば、入力された画像が花の画像であるか否かを認識する画像認識機を構築する場合、情報処理装置10は、タグに花が含まれる画像に対して目的変数t=1を割り当て、それ以外の画像に対して目的変数t=0を割り当てるB図を参照。同様に、入力された画像が空の画像であるか否かを認識する画像認識機を構築する場合、情報処理装置10は、タグに空が含まれる画像に対して目的変数t=1を割り当て、それ以外の画像に対して目的変数t=0を割り当てるC図を参照。また、入力された画像が寿司の画像であるか否かを認識する画像認識機を構築する場合、情報処理装置10は、タグに寿司が含まれる画像に対して目的変数t=1を割り当て、それ以外の画像に対して目的変数t=0を割り当てるD図を参照。このようにタグを利用することにより、所望の画像認識機の構築に利用可能な学習用データセットを生成することができる。なお、学習用データセットが生成できると、既に説明した学習用データの統合処理及び推定機の構築処理を実行することにより、画像認識機推定値yから認識結果を得る手段に利用される推定機推定値yの算出手段を自動構築することができる。以上、画像認識機の自動構築方法への応用について説明した。[3-2:言語解析機の自動構築方法]次に、図33を参照しながら、言語解析機の自動構築方法への応用について述べる。図33は、言語解析機の構築に利用する学習用データセットの生成方法について説明するための説明図である。なお、ここで言う言語解析機とは、例えば、文を入力すると、その文が政治に関する文なのか、経済に関する文なのか、或いは、芸能に関する文なのかなどを自動認識するアルゴリズムのことを意味する。上記の説明においては、データXと目的変数tとで構成される学習用データが与えられるものとして説明を進めてきた。しかし、オンライン学習を想定する場合、学習用データセットは、例えば、Webサービスをクローリングして得られる情報取得情報から自動的に生成されることが望ましい。例えば、図33のA図に示すような取得情報が得られたとする。この取得情報は、文と、文に付与されたタグとにより構成される。例えば、入力された文が政治に関する文であるか否かを認識する言語解析機を構築する場合、情報処理装置10は、タグが政治の文に対して目的変数t=1を割り当て、それ以外の文に対して目的変数t=0を割り当てるB図を参照。同様に、入力された文が経済に関する文であるか否かを認識する言語解析機を構築する場合、情報処理装置10は、タグが経済の文に対して目的変数t=1を割り当て、それ以外の文に対して目的変数t=0を割り当てるC図を参照。このようにタグを利用することにより、所望の言語解析機の構築に利用可能な学習用データセットを生成することができる。なお、学習用データセットが生成できると、既に説明した学習用データの統合処理及び推定機の構築処理を実行することにより、言語解析機推定値yから認識結果を得る手段に利用される推定機推定値yの算出手段を自動構築することができる。オンライン学習の効果について上記の言語解析機の自動構築方法を用いて実験を行った。その実験結果を図34に示す。図34に示したグラフの横軸は経過時間単位は日であり、縦軸は平均F値AverageF-Measuresである。また、実線Online,1k及び破線Online,4kは、オンライン学習による学習用データセットの逐次更新を続けた場合の実験結果を示している。一方、鎖線Online,1k及び一点鎖線Online,4kは、オフライン学習による実験結果を示している。なお、1kは、推定機の構築に利用する学習用データの数を1000個に設定したことを示している。一方、4kは、推定機の構築に利用する学習用データの数を4000個に設定したことを示している。図34から明らかなように、推定機の構築に利用する学習用データの数が多いほど高精度の推定機が得られている。また、オフライン学習の場合はすぐに精度が頭打ちになるが、オンライン学習を行った場合には時間の経過に伴って精度が向上していくことが分かる。そして、ある程度の時間が経過した後、オンライン学習の結果は、オフライン学習の結果に比べて格段に良い結果となっている。この実験結果から、オンライン学習による学習用データセットの更新を行うことで推定機の高精度化を実現できることが明らかとなった。なお、ここでは言語解析機の自動構築方法について実験結果を示したが、他の認識機の自動構築方法についても同様の効果が期待される。効果のまとめ上記のように、オンライン学習が可能になることで推定機の精度を向上させることができる。また、推定機の構築手法として、例えば、特開2009-48266号公報、特願2010-159598号明細書、特願2010-159597号明細書、特願2009-277083号明細書、特願2009-277084号明細書などに記載のアルゴリズムなど、様々な方法が適用可能である。そのため、様々な種類の認識機について精度の向上を図ることができる。また、Webサービスなどから取得した取得情報を利用して学習用データセットを自動生成する仕組みを設けることで、メンテナンスフリーで継続的に推定機の精度向上が図れる。また、学習用データセットを逐次更新することにより、常に新しい学習用データセットから推定機が構築されるため、新しいタグの登場や時代の変遷に伴うタグの意味変化などにも柔軟に対応することが可能になる。<4:ハードウェア構成例>上記の情報処理装置10が有する各構成要素の機能は、例えば、図35に示すハードウェア構成を用いて実現することが可能である。つまり、当該各構成要素の機能は、コンピュータプログラムを用いて図35に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、PersonalHandy-phoneSystemの略である。また、上記のPDAは、PersonalDigitalAssistantの略である。図35に示すように、このハードウェアは、主に、CPU902と、ROM904と、RAM906と、ホストバス908と、ブリッジ910と、を有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926と、を有する。但し、上記のCPUは、CentralProcessingUnitの略である。また、上記のROMは、ReadOnlyMemoryの略である。そして、上記のRAMは、RandomAccessMemoryの略である。CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ以下、リモコンが用いられることもある。出力部918としては、例えば、CRT、LCD、PDP、又はELD等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のCRTは、CathodeRayTubeの略である。また、上記のLCDは、LiquidCrystalDisplayの略である。そして、上記のPDPは、PlasmaDisplayPanelの略である。さらに、上記のELDは、Electro-LuminescenceDisplayの略である。記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、ハードディスクドライブHDD等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のHDDは、HardDiskDriveの略である。ドライブ922は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928は、例えば、DVDメディア、Blu-rayメディア、HDDVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体928は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。但し、上記のICは、IntegratedCircuitの略である。接続ポート924は、例えば、USBポート、IEEE1394ポート、SCSI、RS-232Cポート、又は光オーディオ端子等のような外部接続機器930を接続するためのポートである。外部接続機器930は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。但し、上記のUSBは、UniversalSerialBusの略である。また、上記のSCSIは、SmallComputerSystemInterfaceの略である。通信部926は、ネットワーク932に接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth登録商標、又はWUSB用の通信カード、光通信用のルータ、ADSL用のルータ、又は各種通信用のモデム等である。また、通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内LAN、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のLANは、LocalAreaNetworkの略である。また、上記のWUSBは、WirelessUSBの略である。そして、上記のADSLは、AsymmetricDigitalSubscriberLineの略である。以上、ハードウェア構成例について説明した。<5:まとめ>最後に、本実施形態の技術的思想について簡単に纏める。以下に記載する技術的思想は、例えば、PC、携帯電話、ゲーム機、情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。当該情報処理装置の構成は、例えば、下記のように表現することができる。12N個の格納領域で構成される領域群をM個有するデータ格納部と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算部と、前記計算部により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理部と、所定の順序で前記格納領域を走査し、所定数の入力データが取得されるまで前記格納領域に格納されている入力データを1つずつ取得するデータ取得部と、を備え、前記データ取得部は、取得した入力データと同じ入力データが他の前記格納領域に格納されている場合には当該他の格納領域に格納されている入力データを消去し、1つの前記格納領域に複数の入力データが格納されている場合には当該複数の入力データの中からランダムに1つの入力データを取得する、情報処理装置。2前記第1関数は、入力データが閾値を上回っている場合に1を出力し、入力データが閾値を下回っている場合に0を出力する関数であり、前記閾値は、乱数により決定される、上記1に記載の情報処理装置。3前記入力データがS次元ベクトルS≧2である場合、前記第1関数は、前記入力データを構成するs次元目s≦Sの要素が前記閾値を上回っている場合に1を出力し、当該s次元目の要素が前記閾値を下回っている場合に0を出力する関数であり、次元数sは、乱数により決定される、上記2に記載の情報処理装置。4前記閾値を決定するために用いる乱数は、一様乱数又はガウス乱数である、上記2又は3に記載の情報処理装置。52N個の格納領域で構成される領域群をM個有するデータ格納部と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算部と、前記計算部により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理部と、処理対象の入力データと同じ入力データが格納されている格納領域について、1つの格納領域当たりに格納されている入力データの数を算出する密度算出部と、を備える、情報処理装置。62N個の格納領域で構成される領域群をM個用意しておき、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行するステップと、第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納するステップと、所定の順序で前記格納領域を走査し、所定数の入力データが取得されるまで前記格納領域に格納されている入力データを1つずつ取得するステップと、を含み、前記取得するステップでは、取得した入力データと同じ入力データが他の前記格納領域に格納されている場合には当該他の格納領域に格納されている入力データを消去し、1つの前記格納領域に複数の入力データが格納されている場合には当該複数の入力データの中からランダムに1つの入力データを取得する処理が実行される、情報処理方法。72N個の格納領域で構成される領域群をM個用意しておき、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行するステップと、第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納するステップと、処理対象の入力データと同じ入力データが格納されている格納領域について、1つの格納領域当たりに格納されている入力データの数を算出するステップと、を含む、情報処理方法。82N個の格納領域で構成される領域群をM個有するデータ格納機能と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算機能と、前記計算機能により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理機能と、所定の順序で前記格納領域を走査し、所定数の入力データが取得されるまで前記格納領域に格納されている入力データを1つずつ取得するデータ取得機能と、をコンピュータに実現させるためのプログラムであり、前記データ取得機能は、取得した入力データと同じ入力データが他の前記格納領域に格納されている場合には当該他の格納領域に格納されている入力データを消去し、1つの前記格納領域に複数の入力データが格納されている場合には当該複数の入力データの中からランダムに1つの入力データを取得する、プログラム。92N個の格納領域で構成される領域群をM個有するデータ格納機能と、ランダムに0又は1を出力するN個の第1関数で構成され、第k番目k=1~Nの第1関数から出力される値を第k番目のビット値として出力する第2関数に対し、入力データを入力してNビットの出力データQを取得する処理をM回実行する計算機能と、前記計算機能により第m回目m=1~Mに出力データQが取得された場合に、第m番目の領域群における第Q番目の格納領域に前記入力データを格納する格納処理機能と、処理対象の入力データと同じ入力データが格納されている格納領域について、1つの格納領域当たりに格納されている入力データの数を算出する密度算出機能と、をコンピュータに実現させるためのプログラム。備考上記の学習用データ統合部124は、データ格納部、計算部、格納処理部、データ取得部、密度算出部の一例である。上記のバケットは、格納領域の一例である。上記の関数hは、第1関数の一例である。上記のハッシュ関数gは、第2関数の一例である。以上、添付図面を参照しながら本技術に係る好適な実施形態について説明したが、本技術はここで開示した構成例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本技術の技術的範囲に属するものと了解される。"