(57)【特許請求の範囲】
【請求項１】
データが有する素性のうち所定の素性に基づいて当該データの分類を行う学習器を用いて、判定対象データの分類を行う分類部と、
大偏差原理に基づいて、前記分類部による分類結果に誤りが生じる確率の挙動を、前記分類部による分類結果から推定する推定部と、
前記推定部により推定された挙動に基づいて、新たな素性を前記学習器の学習対象に追加するか否かを判定する判定部と
を有することを特徴とする学習装置。 
【請求項２】
前記推定部は、前記大偏差原理に基づいて、前記分類部による分類結果に誤りが生じる確率が所定の範囲内となる確率分布関数の収束を評価する値を算出し、
前記判定部は、前記推定部により算出された値が所定の閾値を超える場合は、前記新たな素性を前記学習器の学習対象に追加する
ことを特徴とする請求項１に記載の学習装置。 
【請求項３】
前記推定部は、前記大偏差原理に基づいて、前記分類部による分類結果に誤りが生じる確率が所定の範囲内となるレート関数が収束する速さを算出し、
前記判定部は、前記推定部が算出した速さが所定の速さ以下となる場合は、前記新たな素性を前記学習器の学習対象に追加する
ことを特徴とする請求項２に記載の学習装置。 
【請求項４】
前記判定部により、前記新たな素性を前記学習器の学習対象に追加すると判定された場合は、前記新たな素性と前記所定の素性とに基づいて前記データの分類を行う学習器を学習する学習部
を有することを特徴とする請求項１〜３のうちいずれか１つに記載の学習装置。 
【請求項５】
前記学習部は、前記新たな素性として、前記分類部による分類結果が誤りであった判定対象データが有する素性のうち、共通する特徴を有する素性を用いて、前記学習器を学習する
ことを特徴とする請求項４に記載の学習装置。 
【請求項６】
前記分類部は、前記学習部により学習された前記学習器を用いて、前記判定対象データを再度分類し、
前記推定部は、前記分類部による再度の分類結果から、前記分類部による分類結果の数を増大させた際に誤りが生じる確率の挙動を再度推定し、
前記判定部は、前記推定部により再度推定された挙動に基づいて、さらに新たな素性を前記学習器の学習対象に追加するか否かを再度判定する
ことを特徴とする請求項４または５に記載の学習装置。 
【請求項７】
学習装置が実行する学習方法であって、
データが有する素性のうち所定の素性に基づいて当該データの分類を行う学習器を用いて、判定対象データの分類を行う分類工程と、
大偏差原理に基づいて、前記分類工程による分類結果に誤りが生じる確率の挙動を、前記分類工程による分類結果から推定する推定工程と、
前記推定工程により推定された挙動に基づいて、新たな素性を前記学習器の学習対象に追加するか否かを判定する判定工程と
を含むことを特徴とする学習方法。 
【請求項８】
コンピュータに
データが有する素性のうち所定の素性に基づいて当該データの分類を行う学習器を用いて、判定対象データの分類を行う分類手順と、
大偏差原理に基づいて、前記分類手順による分類結果に誤りが生じる確率の挙動を、前記分類手順による分類結果から推定する推定手順と、
前記推定手順により推定された挙動に基づいて、新たな素性を前記学習器の学習対象に追加するか否かを判定する判定手順と
を実行させることを特徴とする学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法および学習プログラムに関する。
【背景技術】
【０００２】
従来、データが有する特徴をあらかじめ学習し、学習結果に基づいて、判定対象となるデータの分類を行う機械学習の技術が知られている。このような技術の一例として、学習用のデータが有する複数の素性のうち予め指定された素性の特徴を学習し、判定対象となるデータが有する素性の特徴に基づいて、データの分類を行う技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−００１９６８号公報
【非特許文献】
【０００４】
【非特許文献１】『大偏差原理と数理物理学／ヴァラダン』、千代延  大造、数理科学  Ｎｏ．５４６，ＤＥＣＥＭＢＥＲ  ２００８
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した技術では、データの分類精度を向上させることができない場合がある。例えば、上述した技術では、予め指定された素性以外に、データの分類に有用な素性が存在していたとしても、その素性の特徴を学習していない場合は、データの分類精度を向上させることができない。
【０００６】
本願は、上記に鑑みてなされたものであって、データの分類精度を向上させることができる学習装置、学習方法および学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る学習装置は、データが有する素性のうち所定の素性に基づいて当該データの分類を行う学習器を用いて、判定対象データの分類を行う分類部と、大偏差原理に基づいて、前記分類部による分類結果に誤りが生じる確率の挙動を、前記分類部による分類結果から推定する推定部と、前記推定部により推定された挙動に基づいて、新たな素性を前記学習器の学習対象に追加するか否かを判定する判定部とを有することを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、データの分類精度を向上させることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る学習装置の一例を示す図である。
【図２】図２は、実施形態にかかる情報配信装置が有する機能構成の一例を示す図である。
【図３】図３は、実施形態に係る学習情報データベースに登録された情報の一例を示す図である。
【図４】図４は、実施形態に係る対象情報データベースに登録される情報の一例を示す図である。
【図５】図５は、実施形態に係る分類結果データベースに登録される情報の一例を示す図である。
【図６】図６は、実施形態に係る学習装置が用いるレート関数の一例を説明するための図である。
【図７】図７は、実施形態に係る学習装置が実行する処理の流れの一例を説明するフローチャートである。
【図８】図８は、学習装置の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る学習装置、学習方法および学習プログラムを実施するための形態（以下、「実施形態」と呼ぶ。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る学習装置、学習方法および学習プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１１】
〔１．学習装置が実行する処理の一例〕
まず、図１を用いて、学習装置１０の一例について説明する。図１は、実施形態に係る学習装置の一例を示す図である。なお、図１には、学習装置１０が実行する処理の一例として、ユーザの分類を行う学習器を学習する学習処理の一例と、学習結果に基づいて、ユーザの分類を行う分類処理の一例とについて記載した。
【００１２】
例えば、学習装置１０は、正解データ（すなわち、正例データ）として、ユーザが有する属性を示す情報である素性を含む学習データが登録された学習情報データベース３１を有する。このような学習データには、各ユーザの性別、年齢、身長、若しくは体重等といった身体的な属性を示す素性や、学歴、職業、収入、住所、家族構成等といった社会的な属性が含まれている。なお、学習データには、好きな食べ物や良く閲覧するウェブページ等といった趣味趣向を示す素性や、所有している車の車種といった所有物を示す素性等が含まれていてもよい。すなわち、学習データには、分類対象となるユーザの属性のみならず、ユーザに関連する任意の情報を示す情報が素性として含まれているものとする。
【００１３】
このような学習データを用いて、学習装置１０は、ユーザの分類を行うための学習器を学習する。より具体的には、学習装置１０は、学習データに含まれる所定の素性を学習対象とし、学習対象が有する共通点や特徴等を学習することで、学習対象となった素性に応じてユーザの分類を行う学習器を学習する（ステップＳ１）。例えば、学習データには、「ドライブが好きである」ユーザａ〜ｄの性別を示す素性＃１や、ユーザａ〜ｄの収入を示す素性＃２が含まれている。
【００１４】
このような場合、学習装置１０は、図１中（Ａ）に示すように、各ユーザａ〜ｄの素性＃１「ａ１」〜「ｄ１」や、素性＃２「ａ２」〜「ｄ２」が有する共通性等といった特徴を学習することで、「ドライブが好きである」ユーザの素性＃１や素性＃２が有する特徴を示す学習器を学習する。なお、図１に示す例では、学習データに素性＃１および素性＃２が含まれる例について記載したが、学習データには、他にも素性＃３や素性＃４等、任意の数の素性が含まれていてよい。
【００１５】
続いて、学習装置１０が学習結果に基づいて、ユーザの分類を行う分類処理を実行する。例えば、学習装置１０は、判定対象データが登録された対象情報データベース３２を有する。判定対象データには、分類対象となるユーザＡ〜Ｄに関する各種の素性＃１〜＃３が含まれている。なお、図１に示す例では、判定対象データに素性＃１〜＃３が含まれる例について記載したが、学習データには、他にも任意の数の素性が含まれていてよい。このような判定対象データを記憶する場合、学習装置１０は、学習結果に基づいて、判定対象データの分類を行う（ステップＳ２）。
【００１６】
例えば、学習装置１０は、図１中（Ｂ）に示すように、判定対象データに含まれる各ユーザＡ〜Ｄに関する素性＃１「Ａ１」〜「Ｄ１」や、素性＃２「Ａ２」〜「Ｄ２」が有する特徴と、学習器が示す特徴とを比較し、比較結果に基づいて、各ユーザＡ〜Ｄが「ドライブが好きである」か「ドライブが好きではない」かを分類する。例えば、学習装置１０は、ユーザＡの素性＃１「Ａ１」と素性＃２「Ａ２」とが有する特徴が、学習器が示す特徴と共通する場合は、ユーザＡが「ドライブが好きである」と判定する。一方、学習装置１０は、ユーザＣの素性＃１「Ｃ１」と素性＃２「Ｃ２」とが有する特徴が、学習器が示す特徴と共通しない場合は、ユーザＣが「ドライブが好きではない」と判定する。
【００１７】
このように、学習装置１０は、学習データに含まれる素性が有する特徴を用いて、ユーザの分類を行う学習器を生成する。そして、学習装置１０は、生成した学習器と、各ユーザに関する素性が有する特徴とに基づいて、ユーザの分類を行う。
【００１８】
ここで、学習装置１０は、学習装置１０の管理を行う管理者によってあらかじめ設計された素性が有する特徴を学習する。例えば、「ドライブが好きである」か否か分類するためには、性別や収入といった素性＃１および素性＃２が重要であり、年代といった素性＃３は重要ではないと管理者によって判断された場合、学習装置１０は、ユーザａ〜ｄに関する素性＃１および素性＃２の特徴を学習し、素性＃３の特徴を学習しない。
【００１９】
しかしながら、ユーザＡ〜Ｄを「ドライブが好きである」か否か分類する際に、年代といった属性を示すユーザＡ〜Ｄの素性＃３が重要な素性であった場合、すなわち、素性＃３が隠れた要素であった場合には、分類精度があまり良くならないと考えられる。一方で、分類精度を向上させるため、あらかじめ全ての素性について学習を行った場合には、分類には重要ではない素性の特徴も学習することになるため、無駄な処理コストが生じてしまう。
【００２０】
そこで、学習装置１０は、以下の判定処理を実行する。まず、学習装置１０は、判定対象データの分類結果が正しいか否かを特定する（ステップＳ３）。そして、学習装置１０は、大偏差原理（Large  Deviation  Principle）を用いて、対象ユーザの数を増大させた際に分類結果に誤りが生じる確率の挙動を、実際の分類結果から推定し、推定結果に基づいて、新たな素性を学習結果に追加するか否かを判定する（ステップＳ４）。
【００２１】
以下、学習装置１０が大偏差原理を用いて、分類結果に誤りが生じる確率の挙動を、実際の分類結果から推定する処理について具体的に説明する。例えば、学習器による分類結果には、学習モデルと実際の測定環境の相違による誤りが含まれると考えられる。このような誤りが生じる確率は、学習器に対して許容される誤差の範囲内となるのが望ましい。
【００２２】
そこで、学習装置１０は、大偏差原理を用いて、観測データの数を増大させた際に、分類結果に生じる誤りが所定の範囲で生じる確率の収束を評価する値（以下、評価値Ｐと記載する。）を算出する。例えば、学習装置１０は、実際の分類結果に誤りが含まれる割合から、誤りが生じる確率分布を示す関数を生成し、生成した関数のルジャンドル変換となるレート関数Ｉ（ｘ）を算出する。
【００２３】
そして、学習装置１０は、算出したレート関数Ｉ（ｘ）を用いて、所定の確率以上で誤りが生じる確率である評価値Ｐの値を算出する。また、学習装置１０は、確率分布関数が「０」へと収束する速度を示す収束速度Ｓの値を算出する。
【００２４】
ここで、評価値Ｐの値が所定の閾値を超えて、収束速度が閾値以下となる状態は、誤差による誤りではなく、大偏差により発生する事象であると考えられる。このような場合には、学習器が学習対象とすべき隠れた素性を学習対象に追加することで、学習器の分類精度をさらに向上させることができると予測される。
【００２５】
このように、評価値Ｐや収束速度Ｓの値は、学習器の分類精度を向上させることができるか否か、すなわち、学習器の分類精度を向上させる隠れた素性が存在するか否かの指標となりうる。そこで、学習装置１０は、評価値Ｐの値と収束速度Ｓの値とに応じて、新たな素性を学習対象に追加するか否かを判定する。
【００２６】
例えば、学習装置１０は、評価値Ｐの値が所定の閾値以下となる場合、または、収束速度Ｓの値が所定の閾値を超える場合等、評価値Ｐや収束値Ｓの挙動が所定の挙動に当てはまらない場合は（ステップＳ５）、学習器による分類精度が十分であると判定し、処理を終了する（ステップＳ６）。一方、学習装置１０は、評価値Ｐの値が所定の閾値を超え、かつ、収束速度Ｓの値が所定の閾値以下となる場合等、評価値Ｐや収束値Ｓの挙動が所定の挙動に当てはまる場合は（ステップＳ７）、新たな素性を学習対象に追加することで、学習器の分類性の向上を行うことができると判定し、新たな素性を学習対象に追加する（ステップＳ８）。
【００２７】
具体的な例を挙げると、学習装置１０は、分類結果が誤りであったユーザの判定対象データを抽出し、抽出した判定対象データに含まれる素性のうち、学習対象ではない素性であって、分類結果が誤りであったユーザ間で共通する素性を特定する。例えば、学習装置１０は、図１中（Ｃ）に示すように、ユーザＣの素性＃３「Ｃ３」と、ユーザＤの素性＃３「Ｄ３」とが共通若しくは類似する素性である場合、ユーザＣおよびユーザＤの素性＃３を学習対象に追加する。そして、学習装置１０は、ユーザａ〜ｄの素性＃１及び素性＃２に加えて、ユーザＣおよびユーザＤの素性＃３の特徴を学習器に学習させる。
【００２８】
また、学習装置１０は、学習器に新たな素性＃３の特徴を学習させた場合は、学習器を用いて、判定対象データの分類を再度実行する。また、学習装置１０は、再度の分類により得られた分類結果の正誤を特定し、大偏差原理を用いて、誤りが生じる確率の挙動を再度推定する。そして、学習装置１０は、再度の推定結果に応じて、分類精度をさらに向上させるために、新たな素性を学習対象に追加するか否かを判定し、分類精度をさらに向上させることができる場合には、新たな素性を学習対象に追加する。
【００２９】
このように、学習装置１０は、実際の分類結果から、大偏差原理を用いて分類結果の数を増大させた際に、分類結果に誤りが生じる確率の挙動を推定する。すなわち、学習装置１０は、確率分布関数の収束を評価する評価値Ｐや収束速度Ｓを算出し、算出した評価値Ｐや収束速度Ｓの値に基づいて、大偏差における挙動がを素性の不足によるものかどうかを判定する。
【００３０】
そして、学習装置１０は、推定した挙動に基づいて、新たな素性を学習対象に追加するか否かを判定する。このため、学習装置１０は、学習対象となる素性の設計が精度良く行われなかった場合にも、ブートストラップ的に分類精度を向上させることができる。また、学習装置１０は、収束値の値が所定の閾値へと近づく場合は、分類を行う学習器の学習を終了するので、所謂過学習を防ぐことができる。
【００３１】
〔２．大偏差原理に基づく処理について〕
ここで、学習装置１０が用いる大偏差原理の一例について説明する。大偏差原理は、ある確率変数列Ｓｎ／ｎが有する確率法則に関して、中心極限定理が１／ｎ（１／２）のオーダーでのずれを示すのに対し、１のオーダーでのずれを見たときの確率法則の漸近挙動を考えることができる。より具体的には、大偏差原理は、確率変数の確率法則の収束を指数的な収束として見たときの、指数的な収束の速さを定式化することができる。なお、大偏差原理の一例や証明等については、非特許文献１や、数理科学１９９５、Ｎｏ．０２、５ページ目等を参照されたい。
【００３２】
例えば、大偏差原理は、確率変数Ａの確率分布をＰｎ（Ａ）とした際に、以下の式（１）で示されるレート関数κを求める問題となる。
【００３３】
【数１】
0006377050.tif 000002
【００３４】
より具体的には、学習装置１０は、実際の分類結果に含まれる誤りの分布を示す関数を、指数関数の漸近形式に変換し、測度空間への双対変換を行う。そして、学習装置１０は、双対関係にある２つの関数の距離を求める汎関数であるレート関数を導出することで、レート関数を算出する。そして、学習装置１０は、レート関数の値に基づいて、分類結果に誤りが所定の確率以上で含まれる確率の確率分布関数の収束を評価し、評価結果に基づいて、新たな素性を学習対象に追加するか否かを判定する。
【００３５】
以下、学習装置１０が大偏差原理（クラメルの方法）を用いて、新たな素性を学習対象に追加するか否かを判定する処理の一例について説明する。例えば、以下の式（２）で示されるデータＸ１〜Ｘｎを考える。また、可測度関数としては、後述する式（１４）を想定した事例としている。
【００３６】
【数２】
0006377050.tif 000003
【００３７】
ここで、データＸ１〜Ｘｎの値は、分類結果の正誤に対応するものとする。例えば、データＸ１〜Ｘｎの値は、対応付けられた分類結果が正しい場合は「０」となり、誤りであれば「１」になるものとする。このような前提の元、ある学習器は、３４０分の１の確率で、誤った分類を行うものとする。すなわち、実際の分類結果において、誤りが３４０分の１の確率で生じたものとする。このような場合、分類結果の確率分布Ｐは、以下の式（３）で表すことができる。
【００３８】
【数３】
0006377050.tif 000004
【００３９】
また、ｎ個の分類結果に誤りが含まれる数は、以下式（４）に示すＳｎとなる。
【００４０】
【数４】
0006377050.tif 000005
【００４１】
このような場合、以下の式（５）で表される極限値ｃ（λ）を考えると、極限値ｃ（λ）のルジャンドル変換となるレート関数Ｉ（ｘ）は、以下の式（６）で表すことができる。
【００４２】
【数５】
0006377050.tif 000006
【００４３】
【数６】
0006377050.tif 000007
【００４４】
ここで、レート関数が凸関数であることを利用して、以下の式（７）を満たすλを算出すると、λの値は、以下の式（８）で示すことができる。
【００４５】
【数７】
0006377050.tif 000008
【００４６】
【数８】
0006377050.tif 000009
【００４７】
ここで、式（８）に示すλの値を、式（６）に代入すると、レート関数Ｉ（ｘ）は、以下の式（９）で表すことができる。
【００４８】
【数９】
0006377050.tif 000010
【００４９】
この結果、レート関数Ｉ（ｘ）は、以下の式（１０）で表すことができる。
【００５０】
【数１０】
0006377050.tif 000011
【００５１】
ここで、１０００個の分類結果のうち、誤りが出現する確率が１００分の１以上となる確率分布関数の収束は、以下の式（１１）で評価される。ここで、式（１１）において、値ｘは、ｘ∈［１／１００，１］を満たすものとする。
【００５２】
【数１１】
0006377050.tif 000012
【００５３】
この結果、１０００個の分類結果のうち、誤りが出現する確率が１００分の１以上となる確率分布関数の収束は、以下の式（１２）で表される評価値Ｐの値で評価される。
【００５４】
【数１２】
0006377050.tif 000013
【００５５】
また、確率分布関数が「０」に収束する速さは、以下の式（１３）で表される収束速度Ｓの値で評価される。なお、素性の不足によらない、通常の判定誤差は大数の法則により平均値に収束する。
【００５６】
【数１３】
0006377050.tif 000014
【００５７】
なお、可測度関数としては、後述する式（１４）で示される。
【００５８】
【数１４】
0006377050.tif 000015
【００５９】
〔３．学習装置が有する機能構成の一例〕
次に、図２を用いて、実施形態にかかる学習装置１０が有する機能構成の一例について説明する。図２は、実施形態にかかる情報配信装置が有する機能構成の一例を示す図である。図２に示すように、学習装置１０は、インタフェース部２０、記憶部３０、および制御部４０を有する。また、図２に示す例では、学習装置１０は、インタフェース部２０を介して、入力装置５０および出力装置６０と接続されている。
【００６０】
入力装置５０は、学習装置１０に対して各種の情報を入力するための装置であり、例えば、マウス、キーボード、タッチパネル、マイクといった入力デバイスや、フラッシュメモリやＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）等といった任意の記録媒体から情報を読み取る読取装置によって実現される。このような入力装置５０は、例えば、学習データや判定対象データの登録や、閾値の設定、新たな素性の指定等に用いられる。
【００６１】
出力装置６０は、学習装置１０の処理結果を出力するための装置であり、例えば、モニタやプリンタ等により実現される。このような出力装置６０は、例えば、学習装置１０による判定結果の出力や、新たな素性を学習対象とするか否か、新たな素性の指定画面等が出力される。
【００６２】
インタフェース部２０は、入力装置５０からの入力を受付けるインタフェースである。また、インタフェース部２０は、出力装置６０に対して、各種の情報を出力するためのインタフェースである。
【００６３】
記憶部３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０は、学習情報データベース３１、対象情報データベース３２、分類結果データベース３３、および学習モデル３４が登録されている。
【００６４】
以下、図３〜図５を用いて、記憶部３０が記憶する各データベース３１〜３３に登録された情報の一例について説明する。
【００６５】
まず、図３を用いて、学習情報データベース３１に登録された情報の一例について説明する。図３は、実施形態に係る学習情報データベースに登録された情報の一例を示す図である。図３に示すように、学習情報データベース３１には、学習データとして、各ユーザａ〜ｄの性別や年収を示す素性＃１および素性＃２が登録されている。なお、学習情報データベース３１には、ユーザａ〜ｄ以外にも、所定の条件を満たすユーザの素性＃１および素性＃２が登録されているものとする。また、学習情報データベース３１には、素性＃１および素性＃２以外にも、任意の素性が含まれていてもよい。
【００６６】
ここで、学習情報データベース３１には、学習器の学習時に正解データとして用いるデータが学習データとして登録されている。例えば、素性＃１および素性＃２に基づいて、ユーザを「ドライブが好き」なグループと「ドライブが好きではない」グループとに分類する学習器の学習を行う場合は、学習情報データベース３１には、「ドライブが好き」なグループに分類されるユーザの性別や年収といった属性を示す素性＃１および素性＃２が登録されることとなる。
【００６７】
例えば、図３に示す例では、学習情報データベース３１には、ユーザａの素性＃１「ａ１」および素性＃２「ａ２」が対応付けて登録されている。なお、図３に示す例では、各ユーザａ〜ｄの素性＃１や素性＃２として、「ａ１」〜「ｄ１」、「ａ２」〜「ｄ２」といった概念的な値を記載したが、実際には、素性＃１や素性＃２を示すフラグや情報が登録されることとなる。例えば、素性＃１が性別を示す素性である場合、「ａ１」〜「ｄ１」は、「男性」や「女性」といった値であってもよい。
【００６８】
次に、図４を用いて、対象情報データベース３２に登録される情報の一例について説明する。図４は、実施形態に係る対象情報データベースに登録される情報の一例を示す図である。図４に示す例では、対象情報データベース３２には、対象情報として、各ユーザＡ〜Ｄの素性＃１〜素性＃３が登録されている。なお、対象情報データベース３２には、ユーザＡ〜Ｄ以外にも、所定の条件を満たすユーザの素性＃１〜素性＃３が登録されているものとする。また、対象情報データベース３２には、素性＃１〜素性＃３以外にも、任意の素性が含まれていてもよい。
【００６９】
例えば、図４に示す例では、対象情報データベース３２には、ユーザＡの素性＃１「Ａ１」、素性＃２「Ａ２」、および素性＃３「Ａ３」が対応付けて登録されている。なお、図４に示す例では、各ユーザＡ〜Ｄの素性＃１〜素性＃３として、「Ａ１」〜「Ｄ１」、「Ａ２」〜「Ｄ２」、「Ａ３」〜「Ｄ３」といった概念的な値を記載したが、実際には、素性＃１〜素性＃３を示すフラグや情報が登録されることとなる。
【００７０】
次に、図５を用いて、分類結果データベース３３に登録される情報の一例について説明する。図５は、実施形態に係る分類結果データベースに登録される情報の一例を示す図である。図５に示す例では、分類結果データベース３３には、分類結果として、判定対象データに素性が含まれていたユーザＡ〜Ｄの分類結果と、分類結果の正誤を示す情報とが対応付けて登録されている。
【００７１】
例えば、分類結果データベース３３には、ユーザＡおよびユーザＢを学習器で分類した分類結果が「Ｇ１」であり、その分類結果が「正」である旨が登録されている。また、分類結果データベース３３には、ユーザＣを学習器で分類した分類結果が「Ｇ１」であり、ユーザＤを学習器で分類した分類結果が「Ｇ２」であり、それらの分類結果が「誤」である旨が登録されている。
【００７２】
なお、図５に示す例では、各ユーザＡ〜Ｄの分類結果として「Ｇ１」や「Ｇ２」といった概念的な値を記載した。かかる値は、例えば、「ドライブが好き」なグループや「ドライブが好きではない」グループ等、学習器によって分類される各グループを示す情報である。
【００７３】
図２に戻り、説明を続ける。学習モデル３４は、学習情報データベース３１に登録された学習データを用いて学習された学習器である。例えば、学習モデル３４は、ユーザａ〜ｄの素性＃１および素性＃２が有する特徴を学習した学習器である。このような学習モデル３４は、例えば、対象情報データベース３２に登録された判定対象データのうち、素性＃１および素性＃２が有する特徴に基づいて、各ユーザＡ〜Ｄを「Ｇ１」または「Ｇ２」といったグループに分類する。
【００７４】
制御部４０は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等によって、学習装置１０内部の記憶装置に記憶されている各種プログラムがＲＡＭを作業領域として実行されることにより実現される。
【００７５】
図２に示すように、制御部４０は、受付部４１、学習部４２、分類部４３、取得部４４、推定部４５、および判定部４６を有する。
【００７６】
受付部４１は、学習データや判定対象データの受付を行う。例えば、受付部４１は、入力装置５０から、学習データや判定対象データを受付けた場合は、受付けた学習データや判定対象データを学習情報データベース３１や対象情報データベース３２に登録する。
【００７７】
学習部４２は、学習情報データベース３１に登録された学習データを用いて、学習モデル３４の学習を行う。例えば、学習部４２は、正解データとして、学習情報データベース３１に登録された学習データに含まれる素性＃１および素性＃２が有する特徴を学習した学習モデル３４を生成する。このような学習モデル３４は、例えば、判定対象データに含まれるユーザＡの素性＃１および素性＃２に応じて、ユーザＡがユーザａ〜ｄと同じグループに属するか否かの分類を行う。
【００７８】
分類部４３は、所定の素性に基づいてデータの分類を行う学習モデル３４を用いて、対象情報データベース３２に登録された判定対象データの分類を行う。具体的には、分類部４３は、学習部４２によって学習が行われた学習モデル３４を読み出し、読み出した学習モデル３４を用いて、対象情報データベース３２に登録された判定対象データの分類を行う。そして、分類部４３は、分類結果を分類結果データベース３３に登録する。
【００７９】
例えば、分類部４３は、対象情報データベース３２から、ユーザＡの素性＃１および素性＃２を読み出し、学習モデル３４を用いて、ユーザＡが「Ｇ１」と「Ｇ２」とのいずれに分類されるか判定する。そして、分類部４３は、ユーザＡが「Ｇ１」に分類されると判定した場合は、ユーザＡの分類結果「Ｇ１」を分類結果データベース３３に登録する。
【００８０】
取得部４４は、分類部４３による分類結果の正誤を取得する。例えば、取得部４４は、分類結果データベース３３を参照し、各ユーザＡ〜Ｄの分類結果を取得する。また、取得部４４は、取得した分類結果を各ユーザＡ〜Ｄに対して提示し、分類結果の正誤の入力を依頼する。そして、取得部４４は、入力された分類結果の正誤を分類結果データベース３３に登録する。
【００８１】
推定部４５は、大偏差原理に基づいて、分類部４３による分類結果に誤りが生じる確率の挙動を、分類部４３による分類結果から推定する。具体的には、推定部４５は、大偏差原理に基づいて、分類結果に誤りが生じる確率が所定の確率以上となる確率分布関数の収束を評価する評価値Ｐを算出する。また、推定部４５は、大偏差原理に基づいて、分類結果に誤りが生じる確率が所定の確率以上となる確率分布関数が収束する収束速度Ｓを算出する。
【００８２】
例えば、推定部４５は、分類結果データベース３３に登録された各ユーザＡ〜Ｄの正誤から、式（３）で示した確率分布Ｐを算出し、算出した確率分布Ｐから式（６）に示すレート関数Ｉ（ｘ）を算出する。そして、推定部４５は、レート関数Ｉ（ｘ）と、学習装置１０の管理者等により設定される閾値とに基づいて、式（１１）を計算し、式（１２）に示す評価値Ｐ、および、式（１３）に示す収束速度Ｓを算出する。
【００８３】
ここで、図６は、実施形態に係る学習装置が用いるレート関数の一例を説明するための図である。例えば、図６中の実線で示す関数「ｙ＝ｆ（ｘ）」上において、「ｘ＝ｘ０」で関数「ｙ＝ｆ（ｘ）」に接する関数を考える。このような関数は、図６中の点線で示す関数となるが、かかる関数が「ｘ＝０」の場合の切片を「−ｆ＊」、「ｆ（ｘ）」を「ｘ」で微分した関数を「ｇ（ｘ）」とすると、「ｙ＝ｇ（ｘ０）ｘ−ｆ＊」で表すことができる。
【００８４】
このような関数「ｙ＝ｆ（ｘ）」と関数「ｙ＝ｇ（ｘ０）ｘ−ｆ＊」との間には、図６中（Ａ）で示すように、ｘの値に応じた差異である相対エントロピーが生じる。このような相対エントロピーは、２つの関数の差異図る尺度、すなわち、２つの確率分布の差異を図る尺度として利用可能である。そこで、学習装置１０は、このような相対エントロピーをレート関数Ｉ（ｘ）として利用する。
【００８５】
図２に戻り、説明を続ける。判定部４６は、推定部４５により推定された挙動に基づいて、新たな素性を学習モデル３４の学習対象に追加するか否かを判定する。具体的には、判定部４６は、推定部４５が算出した評価値Ｐおよび収束速度Ｓの値を取得する。そして、判定部４６は、評価値Ｐの値が所定の閾値を超え、かつ、収束速度Ｓの値が所定の速さ以下となる場合は、新たな素性を学習対象に追加する。
【００８６】
なお、判定部４６は、評価値Ｐの値が所定の閾値を超えた場合は、収束速度Ｓの値によらず、新たな素性を学習対象に追加してもよい。また、判定部４６は、収束速度Ｓの値が所定の速さ以下となる場合は、評価値Ｐの値によらず、新たな素性を学習対象に追加してもよい。また、判定部４６は、評価値Ｐの値と収束速度Ｓの値との組合せに応じて、新たな素性を学習対象に追加するか否かを判定してもよい。
【００８７】
ここで、判定部４６は、新たな素性を学習対象に追加すると判定した場合には、以下の処理を実行する。まず、判定部４６は、分類結果データベース３３を参照し、分類結果が「誤」であるユーザを特定する。続いて、判定部４６は、対象情報データベース３２を参照し、特定したユーザの素性のうち、学習モデル３４の学習対象になっていない素性を特定する。そして、判定部４６は、特定した素性のうち、分類結果が「誤」であったユーザ間で共通する素性の値を抽出し、抽出した素性の値を、新たな学習対象として、学習情報データベース３１に登録する。すなわち、判定部４６は、対象情報データベース３２に登録されたデータのうち、分類結果が誤りであると判定されたユーザ間で共通する値の素性を新たな学習対象として学習情報データベース３１に登録する。
【００８８】
このような場合、学習部４２は、学習情報データベース３１に登録された素性、すなわち、予め登録された素性と新たに登録された素性とを用いて、学習モデル３４の学習を再度実行する。このような場合、学習部４２は、指定された素性を正解データ又は不正解データとして学習情報データベース３１に登録し、学習情報データベース３１に登録された学習データ、すなわち、前回使用した学習データと、新たに追加されたデータとを用いて、学習モデル３４の再学習を行う。
【００８９】
このような学習モデル３４の再学習が行われた場合、分類部４３は、再学習が行われた学習モデル３４を用いて、対象情報データベース３２に登録された判定対象情報の分類を再度実行する。また、取得部４４は、分類部４３によって再度の分類が実行された場合は、再度の分類結果の正誤を再度取得する。そして、推定部４５は、分類結果の正誤が再度取得された場合は、再分類の分類結果から、評価値Ｐおよび収束速度Ｓを再度算出する。そして、判定部４６は、再度算出された評価値Ｐおよび収束速度Ｓの値に応じて、さらに新たな素性を学習結果に追加するか否かを再度判定する。
【００９０】
なお、判定部４６は、分類結果が「誤」であったユーザの素性の値を出力装置６０に出力されることで管理者に提示し、管理者が選択した素性の値を、新たな学習対象として、学習情報データベース３１に登録してもよい。また、判定部４６は、新たな学習対象を追加しない場合は、学習モデル３４の学習が終了した旨を、出力装置６０から出力することとなる。
【００９１】
〔４．学習装置が実行する処理の手順〕
次に、図７を用いて、学習装置１０が実行する処理の流れについて説明する。図７は、実施形態に係る学習装置が実行する処理の流れの一例を説明するフローチャートである。例えば、学習装置１０は、学習結果を用いて、判定対象データの分類を行う（ステップＳ１０１）。続いて、学習装置１０は、分類結果の正誤を取得する（ステップＳ１０２）。そして、学習装置１０は、全ての分類結果について正誤を取得したか否かを判定し（ステップＳ１０３）、取得していない場合は（ステップＳ１０３：Ｎｏ）、取得するまで待機する。
【００９２】
一方、学習装置１０は、全ての正誤を取得した場合は（ステップＳ１０３：Ｙｅｓ）、大偏差原理に基づいて、分類結果を増大させた際に誤りが生じる確率の挙動を推定する（ステップＳ１０４）。そして、学習装置１０は、評価値Ｐの値が所定の閾値よりも大きいか否か、および収束速度Ｓの値が所定の閾値よりも小さいか否かに応じて、分類結果を増大させた際に誤りが生じる確率が閾値による所定の判定条件に当てはまるか否かを判定する（ステップＳ１０５）。具体的には、学習装置１０は、大偏差における挙動が素性の不足によるものかどうかを判定する。
【００９３】
そして、学習装置１０は、誤りが生じる確率が閾値による判定条件に当てはまる判定した場合は（ステップＳ１０５：Ｙｅｓ）、分類結果が誤りであるデータが有する素性のうち、学習対象ではない素性であって、分類結果が誤りであるデータ間で共通する素性を学習対象に追加する（ステップＳ１０６）。そして、学習装置１０は、学習モデル３４の再学習を行い（ステップＳ１０７）、ステップＳ１０１から処理を再度実行する。
【００９４】
一方、学習装置１０は、誤りが生じる確率が閾値による判定条件に当てはまらないと判定した場合は（ステップＳ１０５：Ｎｏ）、すなわち、評価値Ｐの値が所定の閾値よりも小さい場合や、収束速度Ｓの値が所定の閾値よりも大きい場合等には、再学習を行わずに処理を終了する。
【００９５】
〔５．変形例〕
上述した実施形態に係る学習装置１０は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、上記の学習装置１０の他の実施形態について説明する。
【００９６】
〔５−１．誤りデータ出現確率について〕
上述した式（１）〜式（１３）では、学習装置１０は、１０００個の分類結果が存在する場合の誤りデータ出現確率を１００分の１として計算を行った。しかしながら、実施形態は、これに限定されるものではなく、学習装置１０は、誤りデータ出現確率を任意の値に設定することができる。すなわち、誤りデータ出現確率は、学習器に対して許容される誤差の範囲内で任意の値に設定されてよい。
【００９７】
〔５−２．新たな素性の追加について〕
上述した学習装置１０は、評価値Ｐおよび収束速度Ｓの値に応じて、新たな素性を追加するか否かを判定した。しかしながら、実施形態は、これに限定されるものではない。例えば、学習装置１０は、評価値Ｐの値が所定の閾値以上である場合は、収束速度Ｓの値によらず、新たな素性を学習対象に追加してもよい。なお、学習装置１０は、評価値Ｐと比較する閾値、および収束速度Ｓと比較する閾値として、任意の値を採用可能である。
【００９８】
また、上述した学習装置１０は、学習データに含まれる素性や、新たに学習対象に追加された素性を正例を示す正解データとして用いる機械学習を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、学習装置１０は、正解データ以外にも、負例を示す不正解データを用いた機械学習を行ってもよい。また、学習装置１０は、ユーザを２つのグループに分類する学習器の学習を行ったが、実施形態は、これに限定されるものではない。すなわち、学習装置１０は、ユーザを任意の数のグループに分類する学習器の学習を行ってもよい。
【００９９】
ここで、正例および負例は、二値分類を学習する機械学習において、二値の一方、および他方を示す概念である。正例および負例は、二値に分けるために便宜上用いられている名称であるため、学習されるデータの内容とは関係しても良く、関係しなくても良い。なお、正例は、正解、Ｐｏｓｉｔｉｖｅ、またはＴｒｕｅ等と記載される。負例は、不正解、Ｎｅｇａｔｉｖｅ、またはＦａｌｓｅ等と記載される。正解データおよび不正解データの内容、または用語等は、学習の事例によって異なる。
【０１００】
〔５−３．大偏差原理について〕
ここで、大偏差原理には、複数のバリエーションが存在する。例えば、上述した説明では、クラメールの大偏差原理を用いた処理の一例について記載した。しかしながら、実施形態は、これに限定されるものではない。例えば、大偏差原理には、ランダムポテンシャル中の電子の挙動を示すアンダーソンモデルを評価するＤｏｎｓｋｅｒ−Ｖａｒａｄｈａｎの大偏差原理等が存在する。学習装置１０は、このようなＤｏｎｓｋｅｒ−Ｖａｒａｄｈａｎの大偏差原理等、任意のバリエーションの大偏差原理を上述した処理に適用し、分類結果の数を増大させた際において誤りが生じる確率の挙動を推定してよい。
【０１０１】
〔５−４．適用対象について〕
上述した学習装置１０は、ユーザを「ドライブが好きである」グループと「ドライブが好きではない」グループとに分類する学習器の学習を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、学習装置１０は、任意の測定データやログデータ等、任意のデータの分類を行う学習器の学習を行ってもよい。また、学習装置１０は、広告に関連する分類等、任意の分類を行ってよい。例えば、学習装置１０は、所定の広告について、ユーザが閲覧若しくはクリックするか否かの分類を行ってもよい。また、例えば、学習装置１０は、所定の商品について、ユーザが購入するか否かの分類を行ってもよい。このように、学習装置１０は、上述した処理の結果得られる学習器を用いた分類を、広告配信や商品のリコメンド等と組み合わせて実施可能にしてもよい。
【０１０２】
〔５−５．追加する素性の特定について〕
上述した学習装置１０は、分類結果が誤りであるユーザの素性を新たな学習対象に追加した。ここで、学習装置１０は、大偏差原理を用いて分類結果の数を増大させた際に誤りが生じる確率の挙動に応じて、新たに学習対象に追加すべき素性を特定してもよい。例えば、学習装置１０は、新たな学習対象を追加した際に、大偏差原理を用いて分類結果の数を増大させた際に誤りが生じる確率の値と、新たな学習対象を追加する前に、大偏差原理を用いて分類結果の数を増大させた際に誤りが生じる確率の値とを比較する。そして、学習装置１０は、比較の結果、誤りが生じる確率の値が所定の閾値以上低下していない場合には、前回学習対象に追加した素性を学習対象から除外し、他の素性を新たな学習対象として追加してもよい。
【０１０３】
また、学習装置１０は、前回算出した評価値Ｐや収束速度Ｓの値と、新たに算出した評価値Ｐや収束速度Ｓの値とを比較し、評価値Ｐの値が減少していない場合や、収束速度Ｓの値が減少している場合等、評価値Ｐや収束速度Ｓの値が改善していない場合には、前回学習対象に追加した素性を学習対象から除外し、他の素性を新たな学習対象として追加してもよい。すなわち、学習装置１０は、新たな素性を追加するか否かの判断だけではなく、追加対象となる素性の選択に大偏差原理を適用してもよい。
【０１０４】
〔５−６．ハードウェア構成〕
また、上述してきた実施形態に係る学習装置１０は、例えば図８に示すような構成のコンピュータ１０００によって実現される。図８は、学習装置の機能を実現するコンピュータのハードウェア構成の一例を示す図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ１３００、ＨＤＤ１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を有する。
【０１０５】
ＣＰＵ１１００は、ＲＯＭ１３００又はＨＤＤ１４００に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【０１０６】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス１５００は、通信網５００（ネットワークＮに対応する）を介して他の機器からデータを受信してＣＰＵ１１００へ送り、また、通信網５００を介してＣＰＵ１１００が生成したデータを他の機器へ送信する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、入出力インターフェイス１６００を介して生成したデータを出力装置へ出力する。
【０１０７】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラム又はデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１０８】
例えば、コンピュータ１０００が学習装置１０として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムを実行することにより、制御部４０の機能を実現する。また、ＨＤＤ１４００には、記憶部３０内の各データが格納される。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置から通信網５００を介してこれらのプログラムを取得してもよい。
【０１０９】
〔６．効果〕
上述したように、学習装置１０は、判定対象データが有する素性のうち所定の素性に基づいて判定対象データの分類を行う学習器を用いて、判定対象データの分類を行う。また、学習装置１０は、大偏差原理に基づいて、分類結果に誤りが生じる確率の挙動を、実際の分類結果から推定する。そして、学習装置１０は、推定された挙動に基づいて、新たな素性を学習器の学習対象に追加するか否かを判定する。このため、学習装置１０は、学習器による分類精度をブートストラップ的に向上させることができ、本手法を繰り返し実行させていくうちに不足している素性をすべて抽出、追加することができる。また、素性の不足による誤り発生の状況を大偏差に結びつけることにより、平均値に収束する通常の判定誤差とは区別した状況を作り出し、過学習を防ぐこともできる。
【０１１０】
また、学習装置１０は、大偏差原理に基づいて、収束の挙動を評価する評価値Ｐを算出し、評価値Ｐが所定の閾値を超える場合は、新たな素性を学習器の学習対象に追加する。この結果、学習装置１０は、分類結果を増大させた際に、分類結果に誤りが生じる確率が閾値による判定条件に当てはまる場合には、新たな素性を追加する。この結果、学習装置１０は、過学習を防ぎつつ、分類精度を向上させることができる。
【０１１１】
また、学習装置１０は、大偏差原理に基づいて、分類結果に誤りが生じる確率が所定の範囲内となるレート関数が収束する速さが所定の速さ以下となる場合は、新たな素性を学習対象に追加する。この結果、学習装置１０は、過学習を防ぎつつ、分類精度を向上させることができる。
【０１１２】
また、学習装置１０は、新たな素性を学習器の学習対象に追加すると判定した場合は、新たな素性と所定の素性とに基づいてデータの分類を行う学習器を再度学習する。より具体的には、学習装置１０は、新たな素性として、分類結果が誤りであった判定対象データが有する素性のうち、共通する特徴を有する素性を用いて、学習器の学習を再度実行する。この結果、学習装置１０は、学習器の分類精度を向上させることができる。
【０１１３】
また、学習装置１０は、再度学習された学習器を用いて、判定対象データを再度分類し、再度の分類結果から、分類結果の数を増大させた際に誤りが生じる確率の挙動を再度推定し、再度推定された挙動に基づいて、さらに新たな素性を学習器の学習結果に追加するか否かを再度判定する。このため、学習装置１０は、学習器による分類精度をブートストラップ的に向上させることができる。
【０１１４】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１１５】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、配信部は、配信手段や配信回路に読み替えることができる。
【符号の説明】
【０１１６】
１０  学習装置
２０  インタフェース部
３０  記憶部
３１  学習情報データベース
３２  対象情報データベース
３３  分類結果データベース
３４  学習モデル
４０  制御部
４１  受付部
４２  学習部
４３  分類部
４４  取得部
４５  推定部
４６  判定部
５０  入力装置
６０  出力装置
【図１】
0006377050.tif 000016
【図２】
0006377050.tif 000017
【図３】
0006377050.tif 000018
【図４】
0006377050.tif 000019
【図５】
0006377050.tif 000020
【図６】
0006377050.tif 000021
【図７】
0006377050.tif 000022
【図８】
0006377050.tif 000023