(57)【特許請求の範囲】
【請求項１】
特徴量ベクトル及び当該特徴量ベクトルに対応する目的変数を入力する入力部と、
前記特徴量ベクトルを写像してスカラ量を出力する基底関数を生成する基底関数生成部と、
前記基底関数生成部により生成された基底関数を用いて前記特徴量ベクトルを写像し、当該特徴量ベクトルに対応するスカラ量を算出するスカラ量算出部と、
前記スカラ量算出部により算出されたスカラ量及び当該スカラ量に対応する特徴量ベクトルと共に前記入力部により入力された目的変数を用いて、当該スカラ量の算出に用いた基底関数が当該目的変数の推定に有用であるか否かを評価する基底関数評価部と、
前記基底関数評価部により有用であると評価された基底関数を用いて、前記スカラ量算出部により算出されたスカラ量及び当該スカラ量に対応する目的変数に基づき、当該スカラ量から当該目的変数を推定する推定関数を機械学習により生成する推定関数生成部と、
前記基底関数評価部による評価結果に基づき、有用な前記基底関数の選択、当該有用な基底関数を用いた突然変異及び交差による新たな基底関数の生成、及び、新たな基底関数のランダム生成を実行して、次世代の基底関数を生成する世代交代部と、
前記推定関数生成部により生成された推定関数を出力する出力部と、
を備え、
前記基底関数生成部は、前記特徴量ベクトルの一部だけを写像してスカラ量を出力する基底関数を生成し、
前記推定関数生成部による推定関数の生成処理、前記世代交代部による次世代の基底関数の生成処理、前記スカラ量算出部によるスカラ量の算出処理、前記基底関数評価部による基底関数の評価処理が繰り返し実行される、情報処理装置。
【請求項２】
前記基底関数評価部は、前記スカラ量算出部により算出されたスカラ量の中から情報量基準に応じてスカラ量を選択しつつ、当該スカラ量に対応する目的変数を推定するための回帰又は判別学習を実行し、当該情報量基準に応じて選択されたスカラ量の算出に用いた基底関数を有用であると評価する、
請求項１に記載の情報処理装置。
【請求項３】
前記推定関数生成部は、前記基底関数評価部により有用であると評価された基底関数を順次推定関数に追加する、
請求項１に記載の情報処理装置。
【請求項４】
特徴量ベクトル及び当該特徴量ベクトルに対応する目的変数を入力する入力ステップと、
前記特徴量ベクトルを写像してスカラ量を出力する基底関数を生成する基底関数生成ステップと、
前記基底関数生成ステップで生成された基底関数を用いて前記特徴量ベクトルを写像し、当該特徴量ベクトルに対応するスカラ量を算出するスカラ量算出ステップと、
前記スカラ量算出ステップで算出されたスカラ量及び当該スカラ量に対応する特徴量ベクトルと共に前記入力ステップで入力された目的変数を用いて、当該スカラ量の算出に用いた基底関数が当該目的変数の推定に有用であるか否かを評価する基底関数評価ステップと、
前記基底関数評価ステップで有用であると評価された基底関数を用いて、前記スカラ量算出ステップで算出されたスカラ量及び当該スカラ量に対応する目的変数に基づき、当該スカラ量から当該目的変数を推定する推定関数を機械学習により生成する推定関数生成ステップと、
前記基底関数評価ステップによる評価結果に基づき、有用な前記基底関数の選択、当該有用な基底関数を用いた突然変異及び交差による新たな基底関数の生成、及び、新たな基底関数のランダム生成を実行して、次世代の基底関数を生成する世代交代ステップと、
前記推定関数生成ステップで生成された推定関数を出力する出力ステップと、
を備え、
前記基底関数生成ステップでは、前記特徴量ベクトルの一部だけを写像してスカラ量を出力する基底関数が生成され、
前記推定関数生成ステップにおける推定関数の生成処理、前記世代交代ステップにおける次世代の基底関数の生成処理、前記スカラ量算出ステップにおけるスカラ量の算出処理、前記基底関数評価ステップにおける基底関数の評価処理が繰り返し実行される、
情報処理方法。
【請求項５】
特徴量ベクトル及び当該特徴量ベクトルに対応する目的変数を入力する入力機能と、
前記特徴量ベクトルを写像してスカラ量を出力する基底関数を生成する基底関数生成機能と、
前記基底関数生成機能により生成された基底関数を用いて前記特徴量ベクトルを写像し、当該特徴量ベクトルに対応するスカラ量を算出するスカラ量算出機能と、
前記スカラ量算出機能により算出されたスカラ量及び当該スカラ量に対応する特徴量ベクトルと共に前記入力機能により入力された目的変数を用いて、当該スカラ量の算出に用いた基底関数が当該目的変数の推定に有用であるか否かを評価する基底関数評価機能と、
前記基底関数評価機能により有用であると評価された基底関数を用いて、前記スカラ量算出機能により算出されたスカラ量及び当該スカラ量に対応する目的変数に基づき、当該スカラ量から当該目的変数を推定する推定関数を機械学習により生成する推定関数生成機能と、
前記基底関数評価機能による評価結果に基づき、有用な前記基底関数の選択、当該有用な基底関数を用いた突然変異及び交差による新たな基底関数の生成、及び、新たな基底関数のランダム生成を実行して、次世代の基底関数を生成する世代交代機能と、
前記推定関数生成機能により生成された推定関数を出力する出力機能と、
をコンピュータに実現させ、
前記基底関数生成機能は、前記特徴量ベクトルの一部だけを写像してスカラ量を出力する基底関数を生成し、
前記推定関数生成機能による推定関数の生成処理、前記世代交代機能による次世代の基底関数の生成処理、前記スカラ量算出機能によるスカラ量の算出処理、前記基底関数評価機能による基底関数の評価処理が繰り返し実行される、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来より、回帰や判別を行うための学習アルゴリズムとして、線形回帰／判別、ＳＶＭ／ＳＶＲ、ＲＶＭなどのアルゴリズムが知られている。なお、ＳＶＭはＳｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ、ＳＶＲはＳｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｒｅｇｒｅｓｓｉｏｎ、ＲＶＭはＲｅｌｅｖａｎｃｅ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅの略である。また、下記の特許文献１には、線形回帰、非線形回帰、ＳＶＭなどの学習アルゴリズムを利用して、コンテンツデータから特徴量を検出するための特徴量検出アルゴリズムを自動生成する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１２２１８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の学習アルゴリズムは、特徴量ベクトルｘ＝｛ｘ１，…，ｘｍ｝を入力とし、スカラ量を出力する基底関数φｍ（ｘ）（ｍ＝１〜Ｍ）を線形結合した推定関数ｆ（ｘ）＝Σｗｍφｍ（ｘ）＋ｗ０を機械学習により生成するアルゴリズムである。具体的には、学習データとして特徴量ベクトルｘｊ（ｊ＝１〜Ｎ）と目的変数ｔｊが与えられた場合に、機械学習により、特徴量ベクトルｘから目的変数ｔの推定値ｙを推定する推定関数ｆ（ｘ）が求められる。
【０００５】
線形回帰／判別の場合、φｍ（ｘ）＝ｘｍとするモデルが用いられる。そのため、与えられた特徴量ベクトルｘｊと目的変数ｔｊとの間に非線形性が存在すると、このモデルに基づく推定関数ｆにより特徴量ベクトルｘｊと目的変数ｔｊの組を精度良くフィッティングすることが難しくなる。つまり、推定関数ｆの推定精度が低くなる。一方、ＳＶＭ／ＳＶＲ、ＲＶＭの場合、φｍ（ｘ）を非線形なカーネル関数とするモデルが用いられる。そのため、与えられた特徴量ベクトルｘｊと目的変数ｔｊとの間に非線形性が存在しても、このモデルに基づく推定関数ｆにより特徴量ベクトルｘｊと目的変数ｔｊの組を精度良くフィッティングすることができる。その結果、特徴量ベクトルｘから推定値ｙを精度良く推定することが可能な推定関数ｆが得られる。
【０００６】
しかしながら、ＳＶＭ／ＳＶＲ、ＲＶＭにより得られた推定関数ｆ（ｘ）を計算するのに必要な演算量は、線形回帰／判別により得られた推定関数ｆ（ｘ）を計算するのに必要な演算量に比べて大きくなってしまう。一方、特徴量ベクトルｘｊと目的変数ｔｊとの間に非線形性が存在する場合、線形回帰／判別により得られる推定関数ｆの推定精度は、ＳＶＭ／ＳＶＲ、ＲＶＭにより得られる推定関数ｆに比べて低くなってしまう。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、推定精度を維持しつつ、より演算量を低減した推定関数を生成することが可能な、新規かつ改良された情報処理装置、情報処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、特徴量ベクトル及び当該特徴量ベクトルに対応する目的変数を入力する入力部と、前記特徴量ベクトルを写像してスカラ量を出力する基底関数を所定の関数の組み合わせにより生成する基底関数生成部と、前記基底関数生成部により生成された基底関数を用いて前記特徴量ベクトルを写像し、当該特徴量ベクトルに対応するスカラ量を算出するスカラ量算出部と、前記スカラ量算出部により算出されたスカラ量及び当該スカラ量に対応する特徴量ベクトルと共に前記入力部により入力された目的変数を用いて、当該スカラ量の算出に用いた基底関数が当該目的変数の推定に有用であるか否かを評価する基底関数評価部と、前記基底関数評価部により有用であると評価された基底関数を用いて、前記スカラ量算出部により算出されたスカラ量及び当該スカラ量に対応する目的変数に基づき、当該スカラ量から当該目的変数を推定する推定関数を機械学習により生成する推定関数生成部と、前記推定関数生成部により生成された推定関数を出力する出力部と、を備える、情報処理装置が提供される。
【０００９】
また、前記基底関数生成部は、前記特徴量ベクトルの一部だけを写像してスカラ量を出力する基底関数を生成するように構成されていてもよい。
【００１０】
また、上記の情報処理装置は、前記基底関数評価部による評価結果に基づき、有用な前記基底関数の選択、当該有用な基底関数を用いた突然変異及び交差による新たな基底関数の生成、及び、新たな基底関数のランダム生成を実行して、次世代の基底関数を生成する世代交代部をさらに備えるように構成されていてもよい。この場合、前記推定関数生成部による推定関数の生成処理、前記世代交代部による次世代の基底関数の生成処理、前記スカラ量算出部によるスカラ量の算出処理、前記基底関数評価部による基底関数の評価処理が繰り返し実行される。
【００１１】
また、前記基底関数評価部は、前記スカラ量算出部により算出されたスカラ量の中から情報量基準に応じてスカラ量を選択しつつ、当該スカラ量に対応する目的変数を推定するための回帰又は判別学習を実行し、当該情報量基準に応じて選択されたスカラ量の算出に用いた基底関数を有用であると評価するように構成されていてもよい。
【００１２】
また、前記推定関数生成部は、前記基底関数評価部により有用であると評価された基底関数を順次推定関数に追加するように構成されていてもよい。
【００１３】
また、上記課題を解決するために、本発明の別の観点によれば、特徴量ベクトル及び当該特徴量ベクトルに対応する目的変数を入力する入力ステップと、前記特徴量ベクトルを写像してスカラ量を出力する基底関数を所定の関数の組み合わせにより生成する基底関数生成ステップと、前記基底関数生成ステップで生成された基底関数を用いて前記特徴量ベクトルを写像し、当該特徴量ベクトルに対応するスカラ量を算出するスカラ量算出ステップと、前記スカラ量算出ステップで算出されたスカラ量及び当該スカラ量に対応する特徴量ベクトルと共に前記入力ステップで入力された目的変数を用いて、当該スカラ量の算出に用いた基底関数が当該目的変数の推定に有用であるか否かを評価する基底関数評価ステップと、前記基底関数評価ステップで有用であると評価された基底関数を用いて、前記スカラ量算出ステップで算出されたスカラ量及び当該スカラ量に対応する目的変数に基づき、当該スカラ量から当該目的変数を推定する推定関数を機械学習により生成する推定関数生成ステップと、前記推定関数生成ステップで生成された推定関数を出力する出力ステップと、を備える、情報処理方法が提供される。
【００１４】
また、上記課題を解決するために、本発明の別の観点によれば、特徴量ベクトル及び当該特徴量ベクトルに対応する目的変数を入力する入力機能と、前記特徴量ベクトルを写像してスカラ量を出力する基底関数を所定の関数の組み合わせにより生成する基底関数生成機能と、前記基底関数生成機能により生成された基底関数を用いて前記特徴量ベクトルを写像し、当該特徴量ベクトルに対応するスカラ量を算出するスカラ量算出機能と、前記スカラ量算出機能により算出されたスカラ量及び当該スカラ量に対応する特徴量ベクトルと共に前記入力機能により入力された目的変数を用いて、当該スカラ量の算出に用いた基底関数が当該目的変数の推定に有用であるか否かを評価する基底関数評価機能と、前記基底関数評価機能により有用であると評価された基底関数を用いて、前記スカラ量算出機能により算出されたスカラ量及び当該スカラ量に対応する目的変数に基づき、当該スカラ量から当該目的変数を推定する推定関数を機械学習により生成する推定関数生成機能と、前記推定関数生成機能により生成された推定関数を出力する出力機能と、をコンピュータに実現させるためのプログラムが提供される。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【００１６】
以上説明したように本発明によれば、推定精度を維持しつつ、より演算量を低減した推定関数を生成することが可能になる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１実施形態に係る情報処理装置（学習器）の機能構成について説明するための説明図である。
【図２】同実施形態に係る学習用データの構成例について説明するための説明図である。
【図３】同実施形態に係る基底関数の計算例について説明するための説明図である。
【図４】同実施形態に係る学習アルゴリズムにより得られる推定関数について説明するための説明図である。
【図５】同実施形態に係る学習アルゴリズムにより得られる推定関数について説明するための説明図である。
【図６】同実施形態に係る学習アルゴリズムにおける処理の流れ（全体）について説明するための説明図である。
【図７】同実施形態に係る学習アルゴリズムにおける処理の流れ（基底関数の生成）について説明するための説明図である。
【図８】同実施形態に係る学習アルゴリズムにおける処理の流れ（基底関数のランダム生成）について説明するための説明図である。
【図９】同実施形態に係る学習アルゴリズムにおける処理の流れ（基底関数のランダム生成）について説明するための説明図である。
【図１０】同実施形態に係る学習アルゴリズムにおける処理の流れ（基底関数の進化的生成）について説明するための説明図である。
【図１１】同実施形態に係る学習アルゴリズムにおける処理の流れ（交差）について説明するための説明図である。
【図１２】同実施形態に係る学習アルゴリズムにおける処理の流れ（突然変異）について説明するための説明図である。
【図１３】同実施形態に係る学習アルゴリズムにおける処理の流れ（基底関数の計算）について説明するための説明図である。
【図１４】同実施形態に係る学習アルゴリズムにおける処理の流れ（基底関数の評価・推定関数の生成）について説明するための説明図である。
【図１５】本発明の第２実施形態に係る情報処理装置（学習器）の機能構成について説明するための説明図である。
【図１６】同実施形態に係る学習アルゴリズムにおける処理の流れ（全体）について説明するための説明図である。
【図１７】同実施形態に係る学習アルゴリズムにおける処理の流れ（基底関数の評価）について説明するための説明図である。
【図１８】同実施形態に係る学習アルゴリズムにおける処理の流れ（推定関数の生成）について説明するための説明図である。
【図１９】本発明の各実施形態に係る情報処理装置（学習器）の機能を実現することが可能なハードウェア構成について説明するための説明図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１９】
［説明の流れについて］
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。
【００２０】
まず、線形回帰／判別、ＳＶＭ／ＳＶＲ、ＲＶＭについて紹介し、これら従来手法が抱える問題点について簡単に述べる。次いで、図１を参照しながら、本発明の第１実施形態に係る情報処理装置１００（学習器）の機能構成について説明する。この中で、図２〜図５を参照しながら、同実施形態に係る学習アルゴリズムを実行する際に利用する学習データの構成や学習アルゴリズムにより得られる基底関数及び推定関数の構成について説明する。次いで、図６〜図１４を参照しながら、同実施形態の学習アルゴリズムに係る処理の流れについて説明する。
【００２１】
次いで、図１５を参照しながら、本発明の第２実施形態に係る情報処理装置１００（学習器）の機能構成について説明する。次いで、図１６〜図１８を参照しながら、同実施形態の学習アルゴリズムに係る処理の流れについて説明する。次いで、図１９を参照しながら、本発明の第１及び第２実施形態に係る情報処理装置１００の機能を実現することが可能なハードウェア構成について説明する。最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
【００２２】
（説明項目）
１：はじめに
１−１：線形回帰／判別について
１−２：ＳＶＭ／ＳＶＲ、ＲＶＭについて
２：第１実施形態
２−１：情報処理装置１００（学習器）の機能構成
２−２：学習処理の流れ
２−２−１：全体構成
２−２−２：基底関数の生成（Ｓ１０２）
２−２−３：基底関数の計算（Ｓ１０３）
２−２−４：基底関数の評価・推定関数の生成（Ｓ１０４）
３：第２実施形態
３−１：情報処理装置１００（学習器）の機能構成
３−２：学習処理の流れ
３−２−１：全体構成
３−２−２：基底関数の評価（Ｓ２０６）
３−２−３：推定関数の生成（Ｓ２０７）
４：ハードウェア構成
５：まとめ
【００２３】
＜１：はじめに＞
本発明の実施形態について説明するに先立ち、線形回帰／判別、ＳＶＭ／ＳＶＲ、ＲＶＭについて簡単に説明し、これら従来手法の問題点について指摘する。これらの学習アルゴリズムは、特徴量ベクトルｘを入力とし、スカラ量を出力する基底関数φｍ（ｘ）（ｍ＝１〜Ｍ）を線形結合した推定関数ｆ（ｘ）＝Σｗｍφｍ（ｘ）＋ｗ０を機械学習により生成するアルゴリズムである。具体的には、学習データとして特徴量ベクトルｘｊ（ｊ＝１〜Ｎ）と目的変数ｔｊが与えられた場合に、機械学習により、特徴量ベクトルｘから目的変数ｔの推定値ｙを推定する推定関数ｆ（ｘ）が求められる。
【００２４】
［１−１：線形回帰／判別について］
線形回帰／判別は、下記の式（１）で表現される推定関数ｆ（ｘ）を機械学習により生成する学習アルゴリズムである。但し、重みベクトルｗは、特徴量ベクトルｘと同じ次元数を持つベクトル量ｗ＝（ｗ１，…，ｗＭ）である。つまり、線形回帰／判別は、基底関数φｍをφｍ（ｘ）＝ｘｍとした場合（以下、線形モデル）に相当する。
【００２５】
【数１】
0005573443.tif 000002
【００２６】
この推定関数ｆ（ｘ）を計算するのに必要な演算量は、ｗＴｘを計算する際に実行されるＭ回の積和とｗ０の加算だけである。従って、この推定関数ｆ（ｘ）の計算に要する演算負荷は低い。しかし、特徴量ベクトルｘｊと目的変数ｔｊとの間に非線形性が存在すると、線形モデルを用いて、特徴量ベクトルｘｊと目的変数ｔｊの組を精度良くフィッティングできる推定関数ｆ（ｘ）を得ることが難しい。
【００２７】
［１−２：ＳＶＭ／ＳＶＲ、ＲＶＭについて］
一方、ＳＶＭ／ＳＶＲ、ＲＶＭは、基底関数φｍに非線形なカーネル関数ｋ（ｘ，ｘ（ｍ））を適用したモデル（以下、非線形モデル）を用いる。つまり、ＳＶＭ／ＳＶＲ、ＲＶＭは、下記の式（２）で表現される推定関数ｆ（ｘ）を機械学習により生成する学習アルゴリズムである。非線形なカーネル関数ｋ（ｘ，ｘ（ｍ））としては、例えば、下記の式（３）で表現されるガウスカーネルを用いることができる。但し、ベクトルｘ（ｍ）は、特徴量ベクトルｘと同じ次元数のパラメータである。
【００２８】
【数２】
0005573443.tif 000003
【００２９】
なお、ＳＶＭにより得られる重みベクトルｗの要素は、多くの場合、ほとんどが０に収束する。例えば、重みベクトルｗのうち、０に収束せずに残った要素の次元数をＭ’（Ｍ’＜Ｍ）とする。この場合、上記の推定関数ｆ（ｘ）を計算するために必要な演算量は、カーネル関数に関するＭ’回の演算、Ｍ’回の積和、ｗ０の加算である。そのため、この演算に必要な積和の回数は、特徴量ベクトルｘの次元数をｄとすると、おおよそｄ×Ｍ’回になる。ここではＳＶＭについて述べたが、ＲＶＭの場合も同程度の演算量（ｄ×Ｍ’回の積和）が必要になる。但し、ＲＶＭの場合、０に収束せずに残る重みベクトルｗの要素数Ｍ’がＳＶＭに比べて少なくなる。そのため、ＲＶＭにより得られた推定関数ｆ（ｘ）の演算量は、ＳＶＭにより得られた推定関数ｆ（ｘ）の演算量よりも小さくなる。
【００３０】
上記の通り、ＳＶＭ／ＳＶＲ、ＲＶＭは、非線形なカーネル関数ｋを基底関数φｍとして用いている。そのため、特徴量ベクトルｘｊと目的変数ｔｊとの間に非線形性が存在しても、特徴量ベクトルｘｊと目的変数ｔｊの組を精度良くフィッティングできる推定関数ｆ（ｘ）を得ることができる。しかしながら、ＳＶＭ／ＳＶＲ、ＲＶＭにより得られる推定関数ｆ（ｘ）の演算量は、線形回帰／判別により得られる推定関数ｆ（ｘ）の演算量よりも大きくなってしまう。
【００３１】
そこで、特徴量ベクトルｘの一部だけを選択的に利用する手法が考案された。例えば、この手法によると、ｄ次元の特徴量ベクトルｘのうち、ｄ’（ｄ’＜ｄ）次元の要素だけを利用して推定関数ｆ（ｘ）が生成される。この手法を適用すると、推定関数ｆ（ｘ）の演算量をおおよそｄ’／ｄにすることができる。但し、ＳＶＭ／ＳＶＲ、ＲＶＭなどの非線形モデルにおいて、特徴量ベクトルｘの中から適切な要素を選択することは難しい。こうした理由から、ＳＶＭ／ＳＶＲ、ＲＶＭのようにフィッティング精度が高く、かつ、推定関数ｆ（ｘ）の演算量が小さくなるような新たな学習アルゴリズムが求められている。
【００３２】
＜２：第１実施形態＞
以下、本発明の第１実施形態について説明する。本実施形態は、Ｍ個の特徴量ベクトルｘ（ｍ）（ｍ＝１〜Ｍ）及び各特徴量ベクトルｘ（ｍ）に対応する目的変数ｔ（ｍ）が与えられた場合に、特徴量ベクトルｘから目的変数ｔの推定値ｙを推定する推定関数ｆ（ｘ）を生成する学習アルゴリズムに関する。特に、本実施形態は、特徴量ベクトルｘ（ｍ）と目的変数ｔ（ｍ）の組を精度良くフィッティングでき、かつ、演算負荷の少ないスパースな推定関数ｆ（ｘ）を生成する学習アルゴリズムに関する。
【００３３】
［２−１：情報処理装置１００（学習器）の機能構成］
まず、図１を参照しながら、本実施形態に係る学習アルゴリズムを実現することが可能な情報処理装置１００（学習器）の機能構成について説明する。図１は、本実施形態に係る学習アルゴリズムを実現することが可能な情報処理装置１００（学習器）の機能構成について説明するための説明図である。
【００３４】
図１に示すように、情報処理装置１００は、主に、データ入力部１０１と、基底関数生成部１０２と、記憶部１０３と、基底関数計算部１０４と、推定関数生成部１０５と、関数出力部１０６とにより構成される。また、推定関数生成部１０５は、機械学習部１０５１と、基底関数評価部１０５２とを含む。
【００３５】
まず、学習用データとして、データ入力部１０１に特徴量ベクトルｘ（ｎ）（ｎ＝１〜Ｎ）及び各特徴量ベクトルｘ（ｎ）に対応する目的変数ｔ（ｎ）が入力される。例えば、図２に示すように、学習用データ（Ｄａｔａ  １〜Ｄａｔａ  Ｎ）として、Ｎ個の特徴量ベクトルｘ（１）〜ｘ（Ｎ）及び目的変数ｔ（１）〜ｔ（Ｎ）がデータ入力部１０１に入力される。なお、各特徴量ベクトルｘ（ｎ）は、次元数がＤであるものとする。データ入力部１０１に入力された特徴量ベクトルは、基底関数生成部１０２及び基底関数計算部１０４に入力される。一方、データ入力部１０１に入力された目的変数ｔは、推定関数生成部１０５に含まれる機械学習部１０５１に入力される。
【００３６】
特徴量ベクトルが入力されると、基底関数生成部１０２は、記憶部１０３に予め用意された基底関数のプロトタイプの中から、ランダムに所定数のプロトタイプを選択する。基底関数のプロトタイプとしては、例えば、下記の式（４）に示す線形項、下記の式（５）に示すガウシアンカーネル、下記の式（６）に示すシグモイドカーネル、下記の式（７）及び式（８）に示す三角関数などを用いることができる。但し、ｘ’は、ベクトルｘからｎ次元の要素を抜き出したベクトルである。また、ｘａは、ベクトルｘのａ次元目の要素である。そして、ａ、ｂ、ｚ’、σ、及びｘ’の次元数ｍは、プロトタイプのパラメータである。
【００３７】
【数３】
0005573443.tif 000004
【００３８】
プロトタイプを選択した基底関数生成部１０２は、選択したプロトタイプのパラメータをランダムに決定して基底関数を生成する。例えば、線形項を選択した場合、基底関数生成部１０２は、パラメータａ、ｂ（ａ＝１〜Ｄ、ｂ＝１〜３程度）をランダムに決定して基底関数φ（ｘ）（例えば、ａ＝１、ｂ＝２の場合にはφ（ｘ）＝ｘ１２）を生成する。
【００３９】
また、ガウシアンカーネルを選択した場合、基底関数生成部１０２は、まず、パラメータσ、基底関数φ（ｘ）により写像するベクトルｘの次元数Ｅ（Ｅ＝１〜Ｄ）をランダムに決定する（例えば、σ＝０．１、Ｅ＝２）。次いで、基底関数生成部１０２は、ベクトルｘの中で利用する次元のインデックスｄ（ｄ＝１〜Ｄ）をランダムに決定する（例えば、ｄ＝｛３，４｝）。次いで、基底関数生成部１０２は、ベクトルｚ’として利用するデータのインデックスｉ（ｉ＝１〜Ｎ）をランダムに決定する（例えば、ｉ＝５）。次いで、基底関数生成部１０２は、ベクトルｚ’の各要素ｚ’ｋ＝ｘｄｋ（ｉ）（ｋ＝１〜Ｅ）を決定する（例えば、ｚ’＝｛ｘ３（５），ｘ４（５）｝）。
【００４０】
なお、ここでは線形項が選択された場合とガウシアンカーネルが選択された場合について説明したが、その他のプロトタイプが選択された場合についても同様にして基底関数φ（ｘ）が生成される。このように、基底関数生成部１０２は、プロトタイプの選択及びパラメータの決定を繰り返し実行することにより所定数の基底関数を生成する。例えば、基底関数生成部１０２によりＭ個の基底関数φ１（ｘ）、…、φＭ（ｘ）が生成される。このようにして基底関数生成部１０２により生成されたＭ個の基底関数φ１（ｘ）、…、φＭ（ｘ）は、基底関数計算部１０４に入力される。
【００４１】
Ｍ個の基底関数φ１（ｘ）、…、φＭ（ｘ）が入力されると、基底関数計算部１０４は、Ｍ個の基底関数φ１（ｘ）、…、φＭ（ｘ）を用いて、学習用データとして入力された特徴量ベクトルｘ（１）〜ｘ（Ｎ）を写像する。例えば、学習用データとして入力されたＤａｔａ  １〜Ｄａｔａ  Ｎにそれぞれ対応する特徴量ベクトルｘ（１）〜ｘ（Ｎ）がＭ個の基底関数φ１（ｘ）、…、φＭ（ｘ）により写像され、図３に示すような計算結果が得られる。つまり、基底関数計算部１０４により、計算値φ１（ｘ（１））、…、φＭ（ｘ（１））、…、φ１（ｘ（Ｎ））、…、φＭ（ｘ（Ｎ））が算出される。
【００４２】
なお、以下の説明においては、この計算値φｍ（ｘ（ｉ））をｑｍｉと表記する。このようにして基底関数計算部１０４により算出された計算値ｑｍｉは、推定関数生成部１０５に入力される。
【００４３】
計算値ｑｍｉが入力されると、推定関数生成部１０５は、機械学習部１０５１の機能により、入力された計算値ｑｍｉから目的変数ｔ（ｉ）を推定する推定関数ｆを生成する。推定関数ｆ（ｘ）は、ｆ（ｘ）＝Σｗｍφｍ（ｘ）＋ｗ０である。そこで、機械学習部１０５１は、計算値ｑｍｉ＝φｍ（ｘ（ｉ））と目的変数ｔ（ｉ）の組（ｉ＝１〜Ｎ）が推定関数ｆによりフィッティングされるように、線形回帰／判別によりベクトルｗ＝｛ｗ０，…，ｗＭ｝を求める。このとき、推定関数生成部１０５は、情報量基準ＡＩＣ（Ａｋａｉｋｅ’ｓ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｒｉｔｅｒｉｏｎ）を基準とする増減法（ｓｔｅｐｗｉｚｅ）に基づいて基底関数φｍ（ｘ）を選択する。なお、ここで選択されなかった基底関数φｍ（ｘ）に対応するｗｍは０になる。
【００４４】
機械学習部１０５１によりベクトルｗが得られると、推定関数生成部１０５は、基底関数評価部１０５２の機能により、基底関数φｍ（ｘ）の評価値ｖｍを設定する。例えば、基底関数評価部１０５２は、選択されなかった基底関数φｍ（ｘ）の評価値ｖｍを０に設定し、選択された基底関数φｍ（ｘ）の評価値ｖｍを１に設定する。例えば、ｗｍ’＝０であった場合、基底関数評価部１０５２は、ｗｍ’に対応する基底関数φｍ’（ｘ）の評価値ｖｍ’を０に設定する。また、ｗｍ’≠０であった場合、基底関数評価部１０５２は、ｗｍ’に対応する基底関数φｍ’（ｘ）の評価値ｖｍ’を１に設定する。
【００４５】
以上説明した処理により第１世代の基底関数φｍ（ｘ）及び各基底関数φｍ（ｘ）の評価値ｖｍが得られる。次に、情報処理装置１００は、基底関数評価部１０５２により設定された評価値ｖ＝｛ｖ１，…，ｖＭ｝を基底関数生成部１０２に入力し、この評価値｛ｖ１，…，ｖＭ｝に基づいて第２世代の基底関数φｍ（ｘ）を生成する。なお、以下では、第τ世代の基底関数をφｍ，τ（ｘ）、第τ世代の基底関数φｍ，τ（ｘ）の評価値をｖτ＝｛ｖ１，τ，…，ｖＭ，τ｝と表記することにする。
【００４６】
さて、評価値ｖ１＝｛ｖ１，１，…，ｖＭ，１｝が入力されると、基底関数生成部１０２は、入力された評価値ｖ１に基づき、評価値ｖｍ，１≠０の基底関数φｍ，１を選択し、第２世代の基底関数φｍ，２に設定する。評価値ｖ１の中で０ではない要素の数をｅとすると、基底関数生成部１０２により、ｅ個の基底関数φ１，２、…、φｅ，２が設定される。また、基底関数生成部１０２は、第２世代の基底関数の個数Ｍ２（Ｍ２≧ｅ）を設定する。次いで、基底関数生成部１０２は、（Ｍ２−ｅ）個の基底関数φｅ＋１，２、…、φＭ２，２を進化的手法（突然変異、交差、ランダム生成）により生成する。
【００４７】
まず、基底関数生成部１０２は、突然変異、交差、ランダム生成の中から、第２世代の基底関数φｅ＋１，２、…、φＭ２，２を生成する方法をランダムに選択する。
【００４８】
（突然変異を選択した場合）
第２世代の基底関数φｅ＋１，２、…、φＭ２，２を生成する方法として突然変異を選択した場合、まず、基底関数生成部１０２は、基底関数φ１，２、…、φｅ，２の中からランダムに１つの基底関数φｍ，２を選択する。次いで、基底関数生成部１０２は、選択した基底関数φｍ，２を構成するプロトタイプのパラメータを一部変更した新たな基底関数φｍ’，２（ｍ’≧ｅ＋１）を生成する。例えば、基底関数生成部１０２は、選択した基底関数φｍ，２（ｘ）＝ｘ５２（線形項）のパラメータをランダムに変更して新たな基底関数φｍ’，２（ｘ）＝ｘ１２を生成する。
【００４９】
また、選択した基底関数φｍ，２がガウシアンカーネルの場合、基底関数生成部１０２は、パラメータσ、Ｅ、ｄ、ｚ’などをランダムに変更して新たな基底関数φｍ’，２（ｍ’≧ｅ＋１）を生成する。例えば、基底関数φｍ，２のパラメータがσ＝０．２、ｄ＝｛２，３，４｝、ｚ’＝｛０．１，０．４，０．５｝であった場合、基底関数生成部１０２は、σ＝０．３、ｄ＝｛１，２，３，５｝、ｚ’＝｛０．２，０．１，０．０，０．３｝などのようにパラメータを変更する。この例では、ｄに１次元目が追加され、３次元目に対応するｚ’の値が０．４から０．０に変更され、４次元目が５次元目に変更され、σが０．３に変更されている。なお、新たに追加された次元に対応するｚ’の値は、ランダムに設定される。
【００５０】
ここでは線形項の場合とガウシアンカーネルの場合について説明したが、他のプロトタイプについても同様にしてパラメータが変更され、新たな基底関数が生成される。
【００５１】
（交差を選択した場合）
第２世代の基底関数φｅ＋１，２、…、φＭ２，２を生成する方法として交差を選択した場合、まず、基底関数生成部１０２は、基底関数φ１，２、…、φｅ，２の中から、プロトタイプが同じ２つの基底関数φｍ１，２、φｍ２，２をランダムに選択する。次いで、基底関数生成部１０２は、選択した基底関数φｍ１，２のパラメータの一部と基底関数φｍ２，２のパラメータの一部を交換する。例えば、φｍ１，２（ｘ）＝ｘ５２、φｍ２，２（ｘ）＝ｘ２３を選択した場合、基底関数生成部１０２は、両者が持つパラメータの一部を組み合わせ、新たな基底関数φｍ’，２（ｘ）＝ｘ５３（ｍ’≧ｅ＋１）を生成する。
【００５２】
他の例として、パラメータｄ＝｛１，２｝、ｚ’＝｛０．２，０．３｝、σ＝０．１を持つガウシアンカーネルと、パラメータｄ＝｛２，３，４｝、ｚ’＝｛０．１，０．４，０．５｝、σ＝０．２を持つガウシアンカーネルが選択された場合について考える。この場合、基底関数生成部１０２は、相互に対応するパラメータの一部を組み合わせ、例えば、パラメータｄ＝｛１，２，４｝、ｚ’＝｛０．２，０．１，０．５｝、σ＝０．１を生成する。そして、基底関数生成部１０２は、これらのパラメータを持つガウシアンカーネルを新たな基底関数φｍ’、２に設定する。
【００５３】
（ランダム生成を選択した場合）
第２世代の基底関数φｅ＋１，２、…、φＭ２，２を生成する方法としてランダム生成を選択した場合、まず、基底関数生成部１０２は、プロトタイプをランダムに選択する。次いで、基底関数生成部１０２は、ランダムに選択したプロトタイプのパラメータをランダムに決定し、新たな基底関数φｍ’，２（ｍ’≧ｅ＋１）を生成する。なお、ランダム生成による基底関数φｍ’，２の生成方法は、第１世代の基底関数φｍ，１の生成方法と実質的に同じである。
【００５４】
上記のようにして基底関数生成部１０２により生成された基底関数φｍ，２（ｍ＝１〜Ｍ２）は、基底関数計算部１０４に入力される。
【００５５】
第２世代の基底関数φ１，２（ｘ）、…、φＭ２，２（ｘ）が入力されると、基底関数計算部１０４は、基底関数φ１，２（ｘ）、…、φＭ２，２（ｘ）を用いて、学習用データとして入力された特徴量ベクトルｘ（１）〜ｘ（Ｎ）を写像する。つまり、基底関数計算部１０４により、計算値φ１，２（ｘ（１））、…、φＭ２，２（ｘ（１））、…、φ１，２（ｘ（Ｎ））、…、φＭ２，２（ｘ（Ｎ））が算出される。なお、この計算値φｍ，２（ｘ（ｉ））をあらためてｑｍｉと表記する。このようにして基底関数計算部１０４により算出された計算値ｑｍｉは、推定関数生成部１０５に入力される。
【００５６】
計算値ｑｍｉが入力されると、推定関数生成部１０５は、機械学習部１０５１の機能により、入力された計算値ｑｍｉから目的変数ｔ（ｉ）を推定する推定関数ｆを生成する。推定関数ｆ（ｘ）は、ｆ（ｘ）＝Σｗｍφｍ，２（ｘ）＋ｗ０である。そこで、機械学習部１０５１は、計算値ｑｍｉ＝φｍ，２（ｘ（ｉ））と目的変数ｔ（ｉ）の組（ｉ＝１〜Ｎ）が推定関数ｆによりフィッティングされるように、線形回帰／判別によりベクトルｗ＝｛ｗ０，…，ｗＭ｝を求める。このとき、推定関数生成部１０５は、情報量基準ＡＩＣを基準とする増減法（ｓｔｅｐｗｉｚｅ）に基づいて基底関数φｍ，２（ｘ）を選択する。なお、ここで選択されなかった基底関数φｍ，２（ｘ）に対応するｗｍは０になる。
【００５７】
機械学習部１０５１によりベクトルｗが得られると、推定関数生成部１０５は、基底関数評価部１０５２の機能により、基底関数φｍ，２（ｘ）の評価値ｖｍ，２を設定する。例えば、基底関数評価部１０５２は、選択されなかった基底関数φｍ，２（ｘ）の評価値ｖｍ，２を０に設定し、選択された基底関数φｍ，２（ｘ）の評価値ｖｍ，２を１に設定する。例えば、ｗｍ’，２＝０であった場合、基底関数評価部１０５２は、ｗｍ’，２に対応する基底関数φｍ’，２（ｘ）の評価値ｖｍ’，２を０に設定する。また、ｗｍ’，２≠０であった場合、基底関数評価部１０５２は、ｗｍ’，２に対応する基底関数φｍ’，２（ｘ）の評価値ｖｍ’，２を１に設定する。
【００５８】
以上説明した処理により第２世代の基底関数φｍ，２（ｘ）及び各基底関数φｍ，２（ｘ）の評価値ｖｍ，２が得られる。次に、情報処理装置１００は、基底関数評価部１０５２により設定された評価値ｖ２＝｛ｖ１，２，…，ｖＭ２，２｝を基底関数生成部１０２に入力し、この評価値｛ｖ１，２，…，ｖＭ２，２｝に基づいて第３世代の基底関数φｍ，３（ｘ）を生成する。なお、第τ世代（τ≧３）の基底関数φｍ，τ（ｘ）を生成する方法は、第２世代の基底関数φｍ，２（ｘ）を生成する方法と実質的に同じである。さらに、基底関数φｍ，τ（ｘ）の評価値ｖｍ，τを算出する方法は、基底関数φｍ，２（ｘ）の評価値ｖｍ，２を算出する方法と実質的に同じである。
【００５９】
情報処理装置１００は、基底関数生成部１０２、基底関数計算部１０４、推定関数生成部１０５による上記の処理を繰り返し実行することにより、第τ世代の基底関数φｍ，τ（ｘ）を生成し、各基底関数φｍ，τ（ｘ）の評価値ｖｍ，τを算出する。このように、進化的手法に基づく繰り返し処理を実行することにより、特徴量ベクトルｘから目的関数ｔの推定値ｙを正しく推定することが可能な推定関数ｆ（ｘ）が得られる。なお、上記の繰り返し処理は、所定の終了条件を満たした場合に終了される。所定の終了条件としては、例えば、ユーザにより停止操作が行われた場合、所定回数の繰り返し処理が終了した場合、ＡＩＣの値が所定回数更新されなかった場合などがある。
【００６０】
所定の終了条件を満たした場合、推定関数生成部１０５は、ＡＩＣの値が最も高かった世代τの基底関数φｍ，τ（ｍ＝１〜Ｍτ）及び重みベクトルｗに基づいて推定関数ｆ（ｘ）を生成する。このとき、重みベクトルｗの中にある０の要素に対応する基底関数φｍ，τは破棄される。そして、推定関数生成部１０５により生成された推定関数ｆ（ｘ）は、関数出力部１０６に入力する。推定関数ｆ（ｘ）が入力されると、関数出力部１０６は、入力された推定関数ｆ（ｘ）を出力する。
【００６１】
ここで、学習用データとして、目的変数ｔ＝１と特徴量ベクトルｘ＝（ｘ１，ｘ２）の組、目的変数ｔ＝０と特徴量ベクトルｘ＝（ｘ１，ｘ２）の組を多数与えた場合に得られる推定関数ｆ（ｘ）の出力結果の例を図４に示す。図４には、目的変数ｔ＝１に対応する特徴量ベクトルｘの位置に三角印がプロットされており、目的変数ｔ＝０に対応する特徴量ベクトルｘの位置に丸印がプロットされている。さらに、図４には、学習用データに基づいて算出された推定関数ｆ（ｘ）による判別面が実線で表示されている。図４の例においては、推定関数ｆ（ｘ）による判別面により三角印と丸印が明確に分けられている。
【００６２】
なお、図４に示した学習データから、以下のような推定関数ｆ（ｘ）のアルゴリズムが得られる。但し、Ｎ０は推定関数ｆ（ｘ）の出力値、Ｄａｔａ［０］及びＤａｔａ［１］は特徴量ベクトルｘに対応する。
【００６３】
（推定関数ｆ（ｘ）の例１）
N0 = (
exp(-(pow(Data[0] -
0.50358683, 2)) / 0.00069347367) * 0.4796491139352305 + 
exp(-(pow(Data[0]
- 0.38617584, 2) + pow(Data[1] - 0.88589209, 2)) / 0.021929562) *
-0.9224064456400292 + 
exp(-(pow(Data[0]
- 0.78311056, 2) + pow(Data[1] - 0.20539419, 2)) / 0.010023744) *
-1.10236298660953 + 
exp(-(pow(Data[0]
- 0.78311056, 2) + pow(Data[1] - 0.20539419, 2)) / 0.069347367) *
-2.769727885298161 + 
exp(-(pow(Data[0]
- 0.14187251, 2) + pow(Data[1] - 0.71369296, 2)) / 0.069347367) *
-1.235677130784882 + 
exp(-(pow(Data[0]
- 0.78311056, 2) + pow(Data[1] - 0.20539419, 2)) / 0.022963073) *
2.6693428865776 + 
exp(-(pow(Data[0]
- 0.34576759, 2) + pow(Data[1] - 0.63278008, 2)) / 0.010023744) *
-0.5476941803120182 + 
exp(-(pow(Data[0]
- 0.70230204, 2) + pow(Data[1] - 0.49170125, 2)) / 0.010023744) *
-0.3368579612750615 + 
1.101241695541876);
【００６４】
同様の計算結果を図５にも示した。図５の例は、図４よりも複雑な判別面となるように学習用データを与えた場合の計算結果である。図５には、白抜きの三角印及び白抜きの丸印がプロットされている。これら白抜きの三角印と白抜きの丸印は、誤判定された点を表している。つまり、白抜きの三角印は、目的変数ｔ＝１に対応する点と判定されるべきところ、推定関数ｆ（ｘ）により目的変数ｔ＝０に対応する点と推定されてしまったものである。また、白抜きの丸印は、目的変数ｔ＝０に対応する点と判定されるべきところ、推定関数ｆ（ｘ）により目的変数ｔ＝１に対応する点と推定されてしまったものである。
【００６５】
なお、図５に示した学習データから、以下のような推定関数ｆ（ｘ）のアルゴリズムが得られる。但し、Ｎ０は推定関数ｆ（ｘ）の出力値、Ｄａｔａ［０］及びＤａｔａ［１］は特徴量ベクトルｘに対応する。
【００６６】
（推定関数ｆ（ｘ）の例２）
N0 = (
exp(-(pow(Data[0]
- 0.7211858, 2) + pow(Data[1] - 0.97717839, 2)) / 0.022963073) *
-1.049069329783562 + 
exp(-(pow(Data[0]
- 0.63127691, 2) + pow(Data[1] - 0.34439835, 2)) / 0.0063245553) *
2.8190797768422 + 
exp(-(pow(Data[0]
- 0.61364853, 2) + pow(Data[1] - 0.34439835, 2)) / 0.0063245553) *
-2.37930857487981 + 
exp(-(pow(Data[0]
- 0.61080819, 2) + pow(Data[1] - 0.035269711, 2)) / 0.0024045287) *
-0.5946782556601005 + 
exp(-(pow(Data[0]
- 0.87150288, 2) + pow(Data[1] - 0.035269711, 2)) / 0.0036394019) *
-0.6987029150714169 + 
exp(-(pow(Data[1]
- 0.85269707, 2)) / 0.00063245557) * 0.6775503392921813 + 
exp(-(pow(Data[0]
- 0.71162122, 2) + pow(Data[1] - 0.78423238, 2)) / 0.0036394019) *
0.3436486184353701 + 
exp(-(pow(Data[0]
- 0.81843805, 2) + pow(Data[1] - 0.43360996, 2)) / 0.0072615612) * -0.914378338507427
+ 
exp(-(pow(Data[0]
- 0.3543759, 2) + pow(Data[1] - 0.86514521, 2)) / 0.0045817355) *
0.3784731062546026 + 
exp(-(pow(Data[0]
- 0.16930713, 2) + pow(Data[1] - 0.85062242, 2)) / 0.0045817355) *
0.4832852944216888 + 
exp(-(pow(Data[0]
- 0.88084185, 2) + pow(Data[1] - 0.62655604, 2)) / 0.0055084573) *
0.4897684309617601 + 
exp(-(pow(Data[0]
- 0.88952655, 2) + pow(Data[1] - 0.25518674, 2)) / 0.0036394019) *
-0.5955577705301611 + 
exp(-(pow(Data[0]
- 0.52727592, 2) + pow(Data[1] - 0.34439835, 2)) / 0.0063245553) *
-0.07222350662639272 + 
exp(-(pow(Data[0]
- 0.80200863, 2) + pow(Data[1] - 0.86307055, 2)) / 0.0036394019) *
-1.011609011416502 + 
exp(-(pow(Data[0]
- 0.73402309, 2) + pow(Data[1] - 0.34439835, 2)) / 0.0063245553) * -0.9673439001052475
+ 
exp(-(pow(Data[0]
- 0.73601151, 2) + pow(Data[1] - 0.020746889, 2)) / 0.0063245553) *
-1.254876057599521 + 
exp(-(pow(Data[0]
- 0.73457676, 2)) / 0.028908795) * 1.030719900189407 + 
exp(-(pow(Data[1]
- 0.076763488, 2)) / 0.00043755231) * 0.2406449857609962 +
exp(-(pow(Data[0]
- 1.0028695, 2) + pow(Data[1] - 0.076763488, 2)) / 0.00087303162) *
-0.9178888798735231 + 
exp(-(pow(Data[0]
- 0.61514372, 2) + pow(Data[1] - 0.67219919, 2)) / 0.0041785925) *
-0.7921385857754228 + 
exp(-(pow(Data[0]
- 0.45754567, 2) + pow(Data[1] - 0.88174272, 2)) / 0.0036394019) *
0.5846790563849728 + 
exp(-(pow(Data[0]
- 0.60011977, 2) + pow(Data[1] - 0.78423238, 2)) / 0.0011508799) *
2.191183069444879 + 
exp(-(pow(Data[0]
- 0.58536583, 2) + pow(Data[1] - 0.57468879, 2)) / 0.0036394019) *
-0.4392376886661116 + 
exp(-(pow(Data[0]
- 0.91248208, 2) + pow(Data[1] - 0.080912866, 2)) / 0.0036394019) *
0.4574517539308264 + 
Data[0]
* -0.07407166574269664 + 
exp(-(pow(Data[0]
- 0.71162122, 2) + pow(Data[1] - 0.24273859, 2)) / 0.0045817355) *
0.1873713723186709 + 
exp(-(pow(Data[1]
- 0.0062240665, 2)) / 0.0087303156) * 1.094461608751266 + 
-0.01024187552521462);
【００６７】
このように、本実施形態に係る学習アルゴリズムを用いると、非線形なデータの判別を精度良く行うことができる。また、特徴量ベクトルの全ての次元を必ずしも利用せず、一部の次元だけを利用する部分が推定関数に多く含まれるため、推定関数の計算にかかる負荷が少なくて済む。なお、ＳＶＭやＲＶＭなどの場合には全ての基底関数において特徴量ベクトルの全ての次元が利用される。従って、ＳＶＭやＲＶＭなどの従来手法に比べて、本実施形態に係る学習アルゴリズムで生成された推定関数の演算負荷は小さい。また、本実施形態に係る学習アルゴリズムは、複数種類の基底関数を推定関数に含むことができるため、線形項のような演算負荷の小さい基底関数を含んだ推定関数を得ることができる。その結果、ＳＶＭやＲＶＭなどの従来手法に比べて推定関数の演算負荷が小さくて済む。
【００６８】
以上、本実施形態に係る情報処理装置１００の機能構成について説明した。上記の通り、本実施形態に係る学習アルゴリズムを適用すると、ＳＶＭやＲＶＭなどのように非線形性を有するデータの判別を精度良く行うことができ、かつ、演算負荷の小さい推定関数を自動生成することが可能になる。
【００６９】
［２−２：学習処理の流れ］
次に、本実施形態の学習アルゴリズムに係る処理の流れについて説明する。
【００７０】
（２−２−１：全体構成）
まず、図６を参照しながら、本実施形態の学習アルゴリズムに係る全体的な処理の流れ手について説明する。図６は、本実施形態の学習アルゴリズムに係る全体的な処理の流れ手について説明するための説明図である。なお、本実施形態の学習アルゴリズムに係る処理は、上記の情報処理装置１００により実行される。
【００７１】
図６に示すように、まず、情報処理装置１００に学習用データが入力される（Ｓ１０１）。なお、学習用データとしては、図２に示すような特徴量ベクトルｘと目的変数ｔの組が入力される。学習用データが入力されると、情報処理装置１００は、基底関数生成部１０２の機能により基底関数を生成する（Ｓ１０２）。次いで、情報処理装置１００は、基底関数計算部１０４の機能により基底関数を計算する（Ｓ１０３）。つまり、情報処理装置１００は、ステップＳ１０２で生成された基底関数に特徴量ベクトルｘを入力して、基底関数の計算値を算出する。次いで、情報処理装置１００は、推定関数生成部１０５の機能により、基底関数の評価及び推定関数の生成を行う（Ｓ１０４）。
【００７２】
次いで、情報処理装置１００は、所定の終了条件に達したか否かを判定する（Ｓ１０５）。所定の終了条件に達した場合、情報処理装置１００は、処理をステップＳ１０６に進める。一方、所定の終了条件に達していない場合、情報処理装置１００は、処理をステップＳ１０２に戻し、ステップＳ１０２〜Ｓ１０４の処理を繰り返し実行する。処理をステップＳ１０６に進めた場合、情報処理装置１００は、関数出力部１０６の機能により推定関数を出力する（Ｓ１０６）。上記の通り、ステップＳ１０２〜Ｓ１０４の処理は、繰り返し実行される。そこで、以下の説明においては、第τ回目の繰り返し処理においてステップＳ１０２で生成される基底関数を第τ世代の基底関数と呼ぶことにする。
【００７３】
（２−２−２：基底関数の生成（Ｓ１０２））
ここで、図７〜図１２を参照しながら、ステップＳ１０２の処理（基底関数の生成）について、より詳細に説明する。
【００７４】
まず、図７を参照する。図７に示すように、情報処理装置１００は、現在の世代が２世代目以降であるか否かを判定する（Ｓ１１１）。つまり、情報処理装置１００は、現在実行しようとしているステップＳ１０２の処理が第２回目以降の繰り返し処理であるか否かを判定する。２世代目以降である場合、情報処理装置１００は、処理をステップＳ１１３に進める。一方、２世代目以降でない場合（第１世代である場合）、情報処理装置１００は、処理をステップＳ１１２に進める。処理をステップＳ１１２に進めた場合、情報処理装置１００は、基底関数をランダムに生成する（Ｓ１１２）。一方、処理をステップＳ１１３に進めた場合、情報処理装置１００は、基底関数を進化的に生成する（Ｓ１１３）。そして、情報処理装置１００は、ステップＳ１１２又はＳ１１３の処理が完了すると、ステップＳ１０２の処理を終了する。
【００７５】
（Ｓ１１２：基底関数をランダムに生成）
ここで、図８、図９を参照しながら、ステップＳ１１２の処理について、より詳細に説明する。ステップＳ１１２の処理は、第１世代の基底関数を生成する処理に関する。
【００７６】
まず、図８を参照する。図８に示すように、情報処理装置１００は、基底関数のインデックスｍ（ｍ＝０〜Ｍ−１）に関する処理ループを開始する（Ｓ１２１）。次いで、情報処理装置１００は、基底関数φｍ（ｘ）をランダムに生成する（Ｓ１２２）。次いで、情報処理装置１００は、基底関数のインデックスｍがＭ−１に達したか否かを判定し、基底関数のインデックスｍがＭ−１に達していない場合、情報処理装置１００は、基底関数のインデックスｍをインクリメントしてステップＳ１２１に処理を戻す（Ｓ１２４）。一方、基底関数のインデックスｍがｍ＝Ｍ−１の場合、情報処理装置１００は、処理ループを終了する（Ｓ１２４）。ステップＳ１２４で処理ループを終了すると、情報処理装置１００は、ステップＳ１１２の処理を完了する。
【００７７】
（ステップＳ１２２の詳細）
ここで、図９を参照しながら、ステップＳ１２２の処理について、より詳細に説明する。
【００７８】
ステップＳ１２２の処理を開始すると、図９に示すように、情報処理装置１００は、基底関数のプロトタイプをランダムに決定する（Ｓ１３１）。プロトタイプとしては、線形項、ガウシアンカーネル、シグモイドカーネル、三角関数など、ベクトルを入力としてスカラを出力する関数であれば任意のものが利用可能である。次いで、情報処理装置１００は、決定したプロトタイプのパラメータをランダムに決定し、基底関数を生成する（Ｓ１３２）。
【００７９】
（Ｓ１１３：基底関数を進化的に生成）
次に、図１０〜図１２を参照しながら、ステップＳ１１３の処理について、より詳細に説明する。ステップＳ１１３の処理は、第τ世代（τ≧２）の基底関数を生成する処理に関する。従って、ステップＳ１１３を実行する際には、第τ−１世代の基底関数φｍ，τ−１（ｍ＝１〜Ｍ）及び当該基底関数φｍ，τ−１の評価値ｖｍ，τ−１が得られている。
【００８０】
まず、図１０を参照する。図１０に示すように、情報処理装置１００は、基底関数の数Ｍを更新する（Ｓ１４１）。つまり、情報処理装置１００は、第τ世代の基底関数の数Ｍτを決定する。次いで、情報処理装置１００は、第τ−１世代の基底関数φｍ，τ−１（ｍ＝１〜Ｍ）に対する評価値ｖτ−１＝｛ｖ１，τ−１，…，ｖＭ，τ−１｝に基づき、第τ−１世代の基底関数の中からｅ個の有用な基底関数を選択して第τ世代の基底関数φ１，τ、…、φｅ，τに設定する（Ｓ１４２）。
【００８１】
次いで、情報処理装置１００は、残り（Ｍτ−ｅ）個の基底関数φｅ＋１，τ、…、φＭτ，τを生成する方法を交差、突然変異、ランダム生成の中からランダムに選択する（Ｓ１４３）。交差を選択した場合、情報処理装置１００は、処理をステップＳ１４４に進める。また、突然変異を選択した場合、情報処理装置１００は、処理をステップＳ１４５に進める。そして、ランダム生成を選択した場合、情報処理装置１００は、処理をステップＳ１４６に進める。
【００８２】
処理をステップＳ１４４に進めた場合、情報処理装置１００は、ステップＳ１４２で選択された基底関数φ１，τ、…、φｅ，τの中から選択された基底関数を交差させて新たな基底関数φｍ’，τ（ｍ’≧ｅ＋１）を生成する（Ｓ１４４）。また、処理をステップＳ１４５に進めた場合、情報処理装置１００は、ステップＳ１４２で選択された基底関数φ１，τ、…、φｅ，τの中から選択された基底関数を突然変異させて新たな基底関数φｍ’，τ（ｍ’≧ｅ＋１）を生成する（Ｓ１４５）。一方、処理をステップＳ１４６に進めた場合、情報処理装置１００は、ランダムに新たな基底関数φｍ’，τ（ｍ’≧ｅ＋１）を生成する（Ｓ１４６）。
【００８３】
ステップＳ１４４、Ｓ１４５、Ｓ１４６のいずれかの処理を終えると、情報処理装置１００は、処理をステップＳ１４７に進める。処理をステップＳ１４７に進めると、情報処理装置１００は、第τ世代の基底関数がＭ個（Ｍ＝Ｍτ）に達したか否かを判定する（Ｓ１４７）。第τ世代の基底関数がＭ個に達していない場合、情報処理装置１００は、処理を再びステップＳ１４３に戻す。一方、第τ世代の基底関数がＭ個に達した場合、情報処理装置１００は、ステップＳ１１３の処理を終了する。
【００８４】
（Ｓ１４４の詳細：交差）
ここで、図１１を参照しながら、ステップＳ１４４の処理について、より詳細に説明する。
【００８５】
ステップＳ１４４の処理を開始すると、図１１に示すように、情報処理装置１００は、ステップＳ１４２で選択された基底関数φ１，τ、…、φｅ，τの中から同じプロトタイプを持つ基底関数をランダムに２つ選択する（Ｓ１５１）。次いで、情報処理装置１００は、選択した２つの基底関数が持つパラメータを交差させて新たな基底関数を生成する（Ｓ１５２）。
【００８６】
（Ｓ１４５の詳細：突然変異）
次に、図１２を参照しながら、ステップＳ１４５の処理について、より詳細に説明する。
【００８７】
ステップＳ１４５の処理を開始すると、図１２に示すように、情報処理装置１００は、ステップＳ１４２で選択された基底関数φ１，τ、…、φｅ，τの中から基底関数をランダムに１つ選択する（Ｓ１６１）。次いで、情報処理装置１００は、選択した基底関数が持つパラメータの一部をランダムに変更して新たな基底関数を生成する（Ｓ１６２）。
【００８８】
（Ｓ１４６の詳細：ランダム生成）
次に、図９を参照しながら、ステップＳ１４６の処理について、より詳細に説明する。
【００８９】
ステップＳ１２２の処理を開始すると、図９に示すように、情報処理装置１００は、基底関数のプロトタイプをランダムに決定する（Ｓ１３１）。プロトタイプとしては、線形項、ガウシアンカーネル、シグモイドカーネル、三角関数など、ベクトルを入力としてスカラを出力する関数であれば任意のものが利用可能である。次いで、情報処理装置１００は、決定したプロトタイプのパラメータをランダムに決定し、基底関数を生成する（Ｓ１３２）。
【００９０】
以上、ステップＳ１０２の処理（基底関数の生成）について、より詳細に説明した。
【００９１】
（２−２−３：基底関数の計算（Ｓ１０３））
次に、図１３を参照しながら、ステップＳ１０３の処理（基底関数の計算）について、より詳細に説明する。
【００９２】
図１３に示すように、情報処理装置１００は、学習用データに含まれる特徴量ベクトルｘ（ｉ）のインデックスｉに関する処理ループを開始する（Ｓ１７１）。例えば、学習用データとしてＮ個の特徴量ベクトルの組｛ｘ（１），…，ｘ（Ｎ）｝が入力された場合には、ｉ＝１〜Ｎに関して処理ループが実行される。次いで、情報処理装置１００は、基底関数φｍのインデックスｍに関する処理ループを開始する（Ｓ１７２）。例えば、Ｍ個の基底関数を生成した場合には、ｍ＝１〜Ｍに関して処理ループが実行される。
【００９３】
次いで、情報処理装置１００は、計算値ｑｍｉ＝φｍ（ｘ（ｉ））を計算する（Ｓ１７３）。次いで、情報処理装置１００は、処理をステップＳ１７４に進め、基底関数のインデックスｍに関する処理ループを続ける。そして、情報処理装置１００は、基底関数のインデックスｍに関する処理ループが終了すると、処理をステップＳ１７５に進め、特徴量ベクトルのインデックスｉに関する処理ループを続ける。特徴量ベクトルのインデックスｉに関する処理ループが終了した場合、情報処理装置１００は、ステップＳ１０３の処理を終了する。
【００９４】
以上、ステップＳ１０３の処理（基底関数の計算）について、より詳細に説明した。
【００９５】
（２−２−４：基底関数の評価・推定関数の生成（Ｓ１０４））
次に、図１４を参照しながら、ステップＳ１０４の処理（基底関数の評価・推定関数の生成）について、より詳細に説明する。
【００９６】
図１４に示すように、情報処理装置１００は、ＡＩＣ基準の増減法に基づく回帰／判別学習により推定関数のパラメータｗ＝｛ｗ０，…，ｗＭ｝を算出する（Ｓ１８１）。つまり、情報処理装置１００は、計算値ｑｍｉ＝φｍ，τ（ｘ（ｉ））と目的変数ｔ（ｉ）の組（ｉ＝１〜Ｎ）が推定関数ｆによりフィッティングされるように、回帰／判別学習によりベクトルｗ＝｛ｗ０，…，ｗＭ｝を求める。但し、推定関数ｆ（ｘ）は、ｆ（ｘ）＝Σｗｍφｍ，τ（ｘ）＋ｗ０である。次いで、情報処理装置１００は、パラメータｗが０となる基底関数の評価値ｖを０に設定し、それ以外の基底関数の評価値ｖを１に設定する（Ｓ１８２）。つまり、評価値ｖの基底関数は、有用な基底関数である。
【００９７】
以上、ステップＳ１０４の処理（基底関数の評価・推定関数の生成）について、より詳細に説明した。
【００９８】
本実施形態の学習アルゴリズムに係る処理の流れは上記の通りである。このように、ステップＳ１０２〜Ｓ１０４の処理が繰り返し実行され、基底関数が進化的手法により逐次更新されることにより推定精度の高い推定関数が得られる。特に、基底関数のプロトタイプの種類を限定していないため、非線形なデータを回帰／判別する場合にも高いフィッティング精度が得られる。さらに、特徴量ベクトルの中で有用な次元だけが選択的に利用されるようになるため、推定関数の演算にかかる負荷を減らすことができる。
【００９９】
＜３：第２実施形態＞
次に、本発明の第２実施形態について説明する。上記の第１実施形態においては、情報量基準を用いた回帰／判別学習に基づいて有用な基底関数を選別した。しかし、基底関数の評価方法や目的変数の推定方法としては、アンサンブル学習を利用する方法も考えられる。そこで、本実施形態においては、アンサンブル学習を利用した基底関数の評価方法や目的変数の推定方法について説明する。なお、アンサンブル学習の具体的な手法としては、例えば、ＡｄａＢｏｏｓｔなどの手法を適用することができる。
【０１００】
［３−１：情報処理装置１００（学習器）の機能構成］
まず、図１５を参照しながら、本実施形態に係る情報処理装置１００（学習器）の機能構成について説明する。図１５は、本実施形態に係る情報処理装置１００（学習器）の機能構成について説明するための説明図である。なお、上記の第１実施形態に係る情報処理装置１００と実質的に同じ構成要素については同一の符号を付することにより詳細な説明を省略する。
【０１０１】
図１５に示すように、情報処理装置１００は、主に、データ入力部１０１と、基底関数生成部１０２と、記憶部１０３と、基底関数計算部１０４と、推定関数生成部１０５と、関数出力部１０６とにより構成される。また、推定関数生成部１０５は、基底関数評価部１０５３と、機械学習部１０５４とを含む。上記の第１実施形態に係る情報処理装置１００との主な違いは、推定関数生成部１０５の機能にある。そこで、以下では推定関数生成部１０５の機能について詳細に説明する。
【０１０２】
基底関数φ１〜φＭが入力されると、推定関数生成部１０５は、基底関数評価部１０５３の機能により、入力された基底関数φ１〜φＭを評価する。基底関数評価部１０５３は、下記の式（９）に示すｅｒｒが最小となる関数ｕｍ（φｍ（ｘ））を求める。つまり、基底関数評価部１０５３は、ｅｒｒが最小となるパラメータｄとＴｈを求める。但し、下記の式（９）は、ｔｎとは異なるｕｍ（φｍ（ｘ（ｎ）））の値をｇｎで重み付けて足し合わせる演算を表している。また、関数ｕｍ（φｍ（ｘ））は、下記の式（１０）で定義される。ｄは０又は１である。重み係数ｇ１〜ｇＮは、１／Ｎに予め初期化されているものとする。
【０１０３】
【数４】
0005573443.tif 000005
【０１０４】
関数ｕｍ（φｍ（ｘ））を求めた後、基底関数評価部１０５３は、ｅｒｒの値が小さい方から順に所定数（例えば、２０％）の基底関数φｍ（ｘ）を抽出し、抽出した基底関数φｍ（ｘ）の評価値ｖｍを１に設定する。また、基底関数評価部１０５３は、抽出した基底関数φｍ（ｘ）以外の基底関数φｍ’（ｘ）の評価値ｖｍ’を０に設定する。
【０１０５】
このようにして基底関数評価部１０５３により設定された評価値ｖ＝｛ｖ１，…，ｖＭ｝は、基底関数生成部１０２に入力される。評価値ｖが基底関数生成部１０２に入力されると、基底関数生成部１０２により次世代の基底関数が生成され、基底関数計算部１０４により基底関数が計算され、基底関数評価部１０５３により次世代の基底関数に対する評価値ｖが設定される。このような基底関数生成部１０２、基底関数計算部１０４、基底関数評価部１０５３による処理は、所定の終了条件を満たすまで繰り返し実行される。所定の終了条件としては、例えば、繰り返し処理が所定回数実行された場合や、ｅｒｒの最小値が所定回数更新されなかった場合などである。
【０１０６】
所定の終了条件を満たした場合、推定関数生成部１０５は、機械学習部１０５４の機能により、ｅｒｒが最小となる基底関数φｍ（ｘ）を推定関数ｆ（ｘ）に追加する。但し、推定関数ｆ（ｘ）に基底関数φｍ（ｘ）を追加する処理は、以下のように行われる。
【０１０７】
まず、機械学習部１０５４は、下記の式（１１）により重み係数の更新量Ａを決定する。次いで、機械学習部１０５４は、重み係数ｇｎ（ｎ＝１〜Ｎ）を下記の式（１２）に基づいて更新する。次いで、機械学習部１０５４は、重み係数ｇ１〜ｇＮの合計が１になるように重み係数ｇ１〜ｇＮを正規化する。次いで、機械学習部１０５４は、ｅｒｒが最小となる基底関数φｍ（ｘ）に基づく関数ｕｍ（φｍ（ｘ））を推定関数ｆ（ｘ）に追加する。最終的に得られる推定関数をｆ（ｘ）＝Σｗｋｕｋ（φｋ（ｘ））とすると、ｗｋ＝Ａ、ｕｋ（φｋ（ｘ））＝ｅｒｒが最小となるｕｍ（φｍ（ｘ））が設定される。
【０１０８】
【数５】
0005573443.tif 000006
【０１０９】
更新後の重み係数ｇ１〜ｇＮが基底関数評価部１０５３に入力され、再び基底関数生成部１０２、基底関数計算部１０４、基底関数評価部１０５３による繰り返し処理が実行される。そして、この繰り返し処理に関する所定の終了条件を満たすと、再び機械学習部１０５４によりｅｒｒが最小となる基底関数φｍ（ｘ）が推定関数ｆ（ｘ）に追加される。このように、順次ｅｒｒが最小となる基底関数φｍ（ｘ）が算出され、推定関数ｆ（ｘ）に追加される。その結果、最終的に推定関数ｆ（ｘ）＝Σｗｋｕｋ（φｋ（ｘ））が得られる。なお、推定式は、下記の式（１３）のようになる。この推定式は、ｆ（ｘ）が０．５より大きければ１、０．５以下であれば０を出力することを表す。
【０１１０】
【数６】
0005573443.tif 000007
【０１１１】
以上、本実施形態に係る情報処理装置１００の機能構成について説明した。
【０１１２】
［３−２：学習処理の流れ］
次に、本実施形態の学習アルゴリズムに係る処理の流れについて説明する。
【０１１３】
（３−２−１：全体構成）
まず、図１６を参照しながら、本実施形態の学習アルゴリズムに係る全体的な処理の流れ手について説明する。図１６は、本実施形態の学習アルゴリズムに係る全体的な処理の流れ手について説明するための説明図である。なお、本実施形態の学習アルゴリズムに係る処理は、上記の情報処理装置１００により実行される。
【０１１４】
図１６に示すように、まず、情報処理装置１００に学習用データが入力される（Ｓ２０１）。なお、学習用データとしては、図２に示すような特徴量ベクトルｘと目的変数ｔの組が入力される。次いで、情報処理装置１００は、重み係数ｇ１〜ｇＮを初期化する（Ｓ２０２）。次いで、情報処理装置１００は、基底関数生成部１０２の機能により基底関数を生成する（Ｓ２０３）。なお、ステップＳ２０３の処理は、図６に示したステップＳ１０２の処理と実質的に同じである。
【０１１５】
次いで、情報処理装置１００は、基底関数計算部１０４の機能により基底関数を計算する（Ｓ２０４）。つまり、情報処理装置１００は、ステップＳ１０２で生成された基底関数に特徴量ベクトルｘを入力して、基底関数の計算値を算出する。なお、ステップＳ２０４の処理は、図６に示したステップＳ１０３の処理と実質的に同じである。次いで、情報処理装置１００は、推定関数生成部１０５の機能により、基底関数の評価を行う（Ｓ２０５）。次いで、情報処理装置１００は、基底関数の評価に係る繰り返し処理の終了条件に達したか否かを判定する（Ｓ２０６）。
【０１１６】
繰り返し処理の終了条件に達した場合、情報処理装置１００は、処理をステップＳ２０７に進める。一方、繰り返し処理の終了条件に達していない場合、情報処理装置１００は、処理をステップＳ２０３に戻し、再びステップＳ２０３〜Ｓ２０５の処理を実行する。処理をステップＳ２０７に進めた場合、情報処理装置１００は、ステップＳ２０５における評価結果に基づいて推定関数を生成する（Ｓ２０７）。次いで、情報処理装置１００は、所定数の基底関数を推定関数に追加したか否かを判定する（Ｓ２０８）。
【０１１７】
所定数の基底関数を推定関数に追加した場合、情報処理装置１００は、処理をステップＳ２０９に進める。一方、所定数の基底関数を推定関数に追加していない場合、情報処理装置１００は、処理をステップＳ２０３に戻す。処理をステップＳ２０９に進めた場合、情報処理装置１００は、所定数の基底関数が追加された推定関数を出力し（Ｓ２０９）、一連の処理を終了する。
【０１１８】
（３−２−２：基底関数の評価（Ｓ２０６））
ここで、図１７を参照しながら、ステップＳ２０６の処理（基底関数の評価）について、より詳細に説明する。
【０１１９】
ステップＳ２０６の処理を開始すると、図１７に示すように、情報処理装置１００は、基底関数のインデックスｍ（ｍ＝０〜Ｍ−１）に関する処理ループを開始する（Ｓ２１１）。そして、情報処理装置１００は、上記の式（９）で定義されるｅｒｒが最小となるようにパラメータｄ及びＴｈを算出する（Ｓ２１２）。つまり、情報処理装置１００は、ｅｒｒが最小となるｕｍ（φｍ（ｘ））を算出する。次いで、情報処理装置１００は、基底関数のインデックスｍ＝Ｍ−１の場合には処理をステップＳ２１４に進め、ｍ＜Ｍ−１の場合にはｍをインクリメントして再びステップＳ２１２の処理を実行する（Ｓ２１３）。
【０１２０】
処理をステップＳ２１４に進めた場合、情報処理装置１００は、ｅｒｒが小さい基底関数から順に、所定数の基底関数の評価値ｖを１に設定し、それ以外の基底関数の評価値ｖを０に設定する（Ｓ２１４）。評価値ｖの設定が完了すると、情報処理装置１００は、ステップＳ２０６の処理を終了する。
【０１２１】
（３−２−３：推定関数の生成（Ｓ２０７））
次に、図１８を参照しながら、ステップＳ２０７の処理（推定関数の生成）について、より詳細に説明する。
【０１２２】
ステップＳ２０７の処理を開始すると、図１８に示すように、情報処理装置１００は、重み係数ｇ１〜ｇＮの更新量Ａを決定する（Ｓ２２１）。次いで、情報処理装置１００は、ステップＳ２２１において決定した更新量Ａに基づいて重み係数ｇ１〜ｇＮを更新する（Ｓ２２２）。次いで、情報処理装置１００は、重み係数ｇ１〜ｇＮの合計が１になるように、重み係数ｇ１〜ｇＮを正規化する（Ｓ２２３）。次いで、情報処理装置１００は、基底関数を推定関数に追加する（Ｓ２２４）。基底関数を推定関数に追加すると、情報処理装置１００は、ステップＳ２０７の処理を終了する。
【０１２３】
以上、本実施形態の学習アルゴリズムに係る処理の流れについて説明した。
【０１２４】
＜４：ハードウェア構成＞
上記の情報処理装置１００が有する各構成要素の機能は、例えば、図１９に示すハードウェア構成を用いて実現することが可能である。つまり、当該各構成要素の機能は、コンピュータプログラムを用いて図１９に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、ＰＨＳ、ＰＤＡ等の携帯情報端末、ゲーム機、又は種々の情報家電がこれに含まれる。但し、上記のＰＨＳは、Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ−ｐｈｏｎｅ  Ｓｙｓｔｅｍの略である。また、上記のＰＤＡは、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔの略である。
【０１２５】
図１９に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０と、を有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６と、を有する。但し、上記のＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。また、上記のＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略である。そして、上記のＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。
【０１２６】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【０１２７】
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ（以下、リモコン）が用いられることもある。
【０１２８】
出力部９１８としては、例えば、ＣＲＴ、ＬＣＤ、ＰＤＰ、又はＥＬＤ等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のＣＲＴは、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅの略である。また、上記のＬＣＤは、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略である。そして、上記のＰＤＰは、Ｐｌａｓｍａ  ＤｉｓｐｌａｙＰａｎｅｌの略である。さらに、上記のＥＬＤは、Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙの略である。
【０１２９】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略である。
【０１３０】
ドライブ９２２は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、ＨＤ  ＤＶＤメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体９２８は、例えば、非接触型ＩＣチップを搭載したＩＣカード、又は電子機器等であってもよい。但し、上記のＩＣは、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【０１３１】
接続ポート９２４は、例えば、ＵＳＢポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９３０を接続するためのポートである。外部接続機器９３０は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。但し、上記のＵＳＢは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略である。また、上記のＳＣＳＩは、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅの略である。
【０１３２】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ用の通信カード、光通信用のルータ、ＡＤＳＬ用のルータ、又は各種通信用のモデム等である。また、通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、上記のＷＵＳＢは、Ｗｉｒｅｌｅｓｓ  ＵＳＢの略である。そして、上記のＡＤＳＬは、Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅの略である。
【０１３３】
＜５：まとめ＞
最後に、本発明の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、ＰＣ、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。
【０１３４】
上記の情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、次のような入力部、基底関数生成部、スカラ量算出部、基底関数評価部、推定関数生成部、及び出力部を有する。上記の入力部は、特徴量ベクトル及び当該特徴量ベクトルに対応する目的変数を入力する手段である。また、上記の基底関数生成部は、前記特徴量ベクトルを写像してスカラ量を出力する基底関数を生成する手段である。そして、上記のスカラ量算出部は、前記基底関数生成部により生成された基底関数を用いて前記特徴量ベクトルを写像し、当該特徴量ベクトルに対応するスカラ量を算出する手段である。
【０１３５】
また、上記の基底関数評価部は、前記スカラ量算出部により算出されたスカラ量及び当該スカラ量に対応する特徴量ベクトルと共に前記入力部により入力された目的変数を用いて、当該スカラ量の算出に用いた基底関数が当該目的変数の推定に有用であるか否かを評価する手段である。さらに、上記の推定関数生成部は、前記基底関数評価部により有用であると評価された基底関数を用いて、前記スカラ量算出部により算出されたスカラ量及び当該スカラ量に対応する目的変数に基づき、当該スカラ量から当該目的変数を推定する推定関数を機械学習により生成する手段である。そして、上記の出力部は、前記推定関数生成部により生成された推定関数を出力する手段である。
【０１３６】
このように、所定の関数を組み合わせて生成された基底関数の中から、有用な基底関数を利用して推定関数を生成することにより、十分な推定精度を維持しつつ、スパースな推定関数を得ることができる。その結果、この推定関数を利用することにより、従来手法により得られる推定関数に比べ、同程度の推定精度を得るために必要なメモリ量や計算量を低減することが可能になる。
【０１３７】
（応用例について）
本実施形態に係る学習アルゴリズムは、音楽から抽出した特徴量を入力とし、音楽のムード（明るい、暗い、穏やか、ノリノリなど）やジャンル（ロック、ポップス、ジャズ、クラシックなど）、使っている楽器の種類（ボーカル、ギター、ベース、ドラム、ピアノなど）などを推定する推定アルゴリズムの自動構築に利用できる。また、本実施形態に係る学習アルゴリズムは、写真から抽出した特徴量を入力とし、写真に写っているものが何であるかを認識したり（物体認識）、写真に写っているシーン（街、海、山など）を認識したりする認識アルゴリズムの自動構築に利用できる。
【０１３８】
その他にも、本実施形態に係る学習アルゴリズムは、３軸加速度センサや３軸ジャイロセンサなどにより得られたモーションセンサ信号から抽出した特徴量を入力とし、モーションセンサの搭載された機器を持ち歩いているユーザの行動を自動推定する推定アルゴリズムの自動構築に利用できる。さらに、本実施形態に係る学習アルゴリズムは、工場で出荷前の商品の画像や音声の入力データから抽出した特徴量を入力とし、商品が出荷基準を満たしているかどうかの認識を行う認識アルゴリズムの自動構築に利用できる。
【０１３９】
また、本実施形態に係る学習アルゴリズムは、医療画像（レントゲン、ＣＴ画像など）を入力とし、患者の病気を認識する認識アルゴリズムの自動構築に利用できる。そして、本実施形態に係る学習アルゴリズムは、筋電センサや脳波計などの人体センサから得られた信号を入力とし、ユーザの病気を認識したり、ユーザの行いたい操作を認識したりするユーザインターフェイス（ＢＭＩ：Ｂｒａｉｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅなど）の構築に利用できる可能性がある。
【０１４０】
（備考）
上記のデータ入力部１０１は、入力部の一例である。上記の基底関数計算部１０４は、スカラ量算出部の一例である。上記の関数出力部１０６は、出力部の一例である。上記の基底関数生成部１０２は、世代交代部の一例である。
【０１４１】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１４２】
１００    情報処理装置
１０１    データ入力部
１０２    基底関数生成部
１０３    記憶部
１０４    基底関数計算部
１０５    推定関数生成部
１０５１、１０５４    機械学習部
１０５２、１０５３    基底関数評価部
１０６    関数出力部
【図１】
0005573443.tif 000008
【図２】
0005573443.tif 000009
【図３】
0005573443.tif 000010
【図４】
0005573443.tif 000011
【図５】
0005573443.tif 000012
【図６】
0005573443.tif 000013
【図７】
0005573443.tif 000014
【図８】
0005573443.tif 000015
【図９】
0005573443.tif 000016
【図１０】
0005573443.tif 000017
【図１１】
0005573443.tif 000018
【図１２】
0005573443.tif 000019
【図１３】
0005573443.tif 000020
【図１４】
0005573443.tif 000021
【図１５】
0005573443.tif 000022
【図１６】
0005573443.tif 000023
【図１７】
0005573443.tif 000024
【図１８】
0005573443.tif 000025
【図１９】
0005573443.tif 000026