(58)【調査した分野】(Int.Cl.,DB名)
前記判定部により、前記新たな素性を前記学習器の学習対象に追加すると判定された場合は、前記新たな素性と前記所定の素性とに基づいて前記データの分類を行う学習器を学習する学習部
を有することを特徴とする請求項1〜3のうちいずれか1つに記載の学習装置。
前記学習部は、前記新たな素性として、前記分類部による分類結果が誤りであった判定対象データが有する素性のうち、共通する特徴を有する素性を用いて、前記学習器を学習する
ことを特徴とする請求項4に記載の学習装置。
【発明を実施するための形態】
【0010】
以下に、本願に係る学習装置、学習方法および学習プログラムを実施するための形態(以下、「実施形態」と呼ぶ。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る学習装置、学習方法および学習プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0011】
〔1.学習装置が実行する処理の一例〕
まず、
図1を用いて、学習装置10の一例について説明する。
図1は、実施形態に係る学習装置の一例を示す図である。なお、
図1には、学習装置10が実行する処理の一例として、ユーザの分類を行う学習器を学習する学習処理の一例と、学習結果に基づいて、ユーザの分類を行う分類処理の一例とについて記載した。
【0012】
例えば、学習装置10は、正解データ(すなわち、正例データ)として、ユーザが有する属性を示す情報である素性を含む学習データが登録された学習情報データベース31を有する。このような学習データには、各ユーザの性別、年齢、身長、若しくは体重等といった身体的な属性を示す素性や、学歴、職業、収入、住所、家族構成等といった社会的な属性が含まれている。なお、学習データには、好きな食べ物や良く閲覧するウェブページ等といった趣味趣向を示す素性や、所有している車の車種といった所有物を示す素性等が含まれていてもよい。すなわち、学習データには、分類対象となるユーザの属性のみならず、ユーザに関連する任意の情報を示す情報が素性として含まれているものとする。
【0013】
このような学習データを用いて、学習装置10は、ユーザの分類を行うための学習器を学習する。より具体的には、学習装置10は、学習データに含まれる所定の素性を学習対象とし、学習対象が有する共通点や特徴等を学習することで、学習対象となった素性に応じてユーザの分類を行う学習器を学習する(ステップS1)。例えば、学習データには、「ドライブが好きである」ユーザa〜dの性別を示す素性#1や、ユーザa〜dの収入を示す素性#2が含まれている。
【0014】
このような場合、学習装置10は、
図1中(A)に示すように、各ユーザa〜dの素性#1「a1」〜「d1」や、素性#2「a2」〜「d2」が有する共通性等といった特徴を学習することで、「ドライブが好きである」ユーザの素性#1や素性#2が有する特徴を示す学習器を学習する。なお、
図1に示す例では、学習データに素性#1および素性#2が含まれる例について記載したが、学習データには、他にも素性#3や素性#4等、任意の数の素性が含まれていてよい。
【0015】
続いて、学習装置10が学習結果に基づいて、ユーザの分類を行う分類処理を実行する。例えば、学習装置10は、判定対象データが登録された対象情報データベース32を有する。判定対象データには、分類対象となるユーザA〜Dに関する各種の素性#1〜#3が含まれている。なお、
図1に示す例では、判定対象データに素性#1〜#3が含まれる例について記載したが、学習データには、他にも任意の数の素性が含まれていてよい。このような判定対象データを記憶する場合、学習装置10は、学習結果に基づいて、判定対象データの分類を行う(ステップS2)。
【0016】
例えば、学習装置10は、
図1中(B)に示すように、判定対象データに含まれる各ユーザA〜Dに関する素性#1「A1」〜「D1」や、素性#2「A2」〜「D2」が有する特徴と、学習器が示す特徴とを比較し、比較結果に基づいて、各ユーザA〜Dが「ドライブが好きである」か「ドライブが好きではない」かを分類する。例えば、学習装置10は、ユーザAの素性#1「A1」と素性#2「A2」とが有する特徴が、学習器が示す特徴と共通する場合は、ユーザAが「ドライブが好きである」と判定する。一方、学習装置10は、ユーザCの素性#1「C1」と素性#2「C2」とが有する特徴が、学習器が示す特徴と共通しない場合は、ユーザCが「ドライブが好きではない」と判定する。
【0017】
このように、学習装置10は、学習データに含まれる素性が有する特徴を用いて、ユーザの分類を行う学習器を生成する。そして、学習装置10は、生成した学習器と、各ユーザに関する素性が有する特徴とに基づいて、ユーザの分類を行う。
【0018】
ここで、学習装置10は、学習装置10の管理を行う管理者によってあらかじめ設計された素性が有する特徴を学習する。例えば、「ドライブが好きである」か否か分類するためには、性別や収入といった素性#1および素性#2が重要であり、年代といった素性#3は重要ではないと管理者によって判断された場合、学習装置10は、ユーザa〜dに関する素性#1および素性#2の特徴を学習し、素性#3の特徴を学習しない。
【0019】
しかしながら、ユーザA〜Dを「ドライブが好きである」か否か分類する際に、年代といった属性を示すユーザA〜Dの素性#3が重要な素性であった場合、すなわち、素性#3が隠れた要素であった場合には、分類精度があまり良くならないと考えられる。一方で、分類精度を向上させるため、あらかじめ全ての素性について学習を行った場合には、分類には重要ではない素性の特徴も学習することになるため、無駄な処理コストが生じてしまう。
【0020】
そこで、学習装置10は、以下の判定処理を実行する。まず、学習装置10は、判定対象データの分類結果が正しいか否かを特定する(ステップS3)。そして、学習装置10は、大偏差原理(Large Deviation Principle)を用いて、対象ユーザの数を増大させた際に分類結果に誤りが生じる確率の挙動を、実際の分類結果から推定し、推定結果に基づいて、新たな素性を学習結果に追加するか否かを判定する(ステップS4)。
【0021】
以下、学習装置10が大偏差原理を用いて、分類結果に誤りが生じる確率の挙動を、実際の分類結果から推定する処理について具体的に説明する。例えば、学習器による分類結果には、学習モデルと実際の測定環境の相違による誤りが含まれると考えられる。このような誤りが生じる確率は、学習器に対して許容される誤差の範囲内となるのが望ましい。
【0022】
そこで、学習装置10は、大偏差原理を用いて、観測データの数を増大させた際に、分類結果に生じる誤りが所定の範囲で生じる確率の収束を評価する値(以下、評価値Pと記載する。)を算出する。例えば、学習装置10は、実際の分類結果に誤りが含まれる割合から、誤りが生じる確率分布を示す関数を生成し、生成した関数のルジャンドル変換となるレート関数I(x)を算出する。
【0023】
そして、学習装置10は、算出したレート関数I(x)を用いて、所定の確率以上で誤りが生じる確率である評価値Pの値を算出する。また、学習装置10は、確率分布関数が「0」へと収束する速度を示す収束速度Sの値を算出する。
【0024】
ここで、評価値Pの値が所定の閾値を超えて、収束速度が閾値以下となる状態は、誤差による誤りではなく、大偏差により発生する事象であると考えられる。このような場合には、学習器が学習対象とすべき隠れた素性を学習対象に追加することで、学習器の分類精度をさらに向上させることができると予測される。
【0025】
このように、評価値Pや収束速度Sの値は、学習器の分類精度を向上させることができるか否か、すなわち、学習器の分類精度を向上させる隠れた素性が存在するか否かの指標となりうる。そこで、学習装置10は、評価値Pの値と収束速度Sの値とに応じて、新たな素性を学習対象に追加するか否かを判定する。
【0026】
例えば、学習装置10は、評価値Pの値が所定の閾値以下となる場合、または、収束速度Sの値が所定の閾値を超える場合等、評価値Pや収束値Sの挙動が所定の挙動に当てはまらない場合は(ステップS5)、学習器による分類精度が十分であると判定し、処理を終了する(ステップS6)。一方、学習装置10は、評価値Pの値が所定の閾値を超え、かつ、収束速度Sの値が所定の閾値以下となる場合等、評価値Pや収束値Sの挙動が所定の挙動に当てはまる場合は(ステップS7)、新たな素性を学習対象に追加することで、学習器の分類性の向上を行うことができると判定し、新たな素性を学習対象に追加する(ステップS8)。
【0027】
具体的な例を挙げると、学習装置10は、分類結果が誤りであったユーザの判定対象データを抽出し、抽出した判定対象データに含まれる素性のうち、学習対象ではない素性であって、分類結果が誤りであったユーザ間で共通する素性を特定する。例えば、学習装置10は、
図1中(C)に示すように、ユーザCの素性#3「C3」と、ユーザDの素性#3「D3」とが共通若しくは類似する素性である場合、ユーザCおよびユーザDの素性#3を学習対象に追加する。そして、学習装置10は、ユーザa〜dの素性#1及び素性#2に加えて、ユーザCおよびユーザDの素性#3の特徴を学習器に学習させる。
【0028】
また、学習装置10は、学習器に新たな素性#3の特徴を学習させた場合は、学習器を用いて、判定対象データの分類を再度実行する。また、学習装置10は、再度の分類により得られた分類結果の正誤を特定し、大偏差原理を用いて、誤りが生じる確率の挙動を再度推定する。そして、学習装置10は、再度の推定結果に応じて、分類精度をさらに向上させるために、新たな素性を学習対象に追加するか否かを判定し、分類精度をさらに向上させることができる場合には、新たな素性を学習対象に追加する。
【0029】
このように、学習装置10は、実際の分類結果から、大偏差原理を用いて分類結果の数を増大させた際に、分類結果に誤りが生じる確率の挙動を推定する。すなわち、学習装置10は、確率分布関数の収束を評価する評価値Pや収束速度Sを算出し、算出した評価値Pや収束速度Sの値に基づいて、大偏差における挙動がを素性の不足によるものかどうかを判定する。
【0030】
そして、学習装置10は、推定した挙動に基づいて、新たな素性を学習対象に追加するか否かを判定する。このため、学習装置10は、学習対象となる素性の設計が精度良く行われなかった場合にも、ブートストラップ的に分類精度を向上させることができる。また、学習装置10は、収束値の値が所定の閾値へと近づく場合は、分類を行う学習器の学習を終了するので、所謂過学習を防ぐことができる。
【0031】
〔2.大偏差原理に基づく処理について〕
ここで、学習装置10が用いる大偏差原理の一例について説明する。大偏差原理は、ある確率変数列S
n/nが有する確率法則に関して、中心極限定理が1/n
(1/2)のオーダーでのずれを示すのに対し、1のオーダーでのずれを見たときの確率法則の漸近挙動を考えることができる。より具体的には、大偏差原理は、確率変数の確率法則の収束を指数的な収束として見たときの、指数的な収束の速さを定式化することができる。なお、大偏差原理の一例や証明等については、非特許文献1や、数理科学1995、No.02、5ページ目等を参照されたい。
【0032】
例えば、大偏差原理は、確率変数Aの確率分布をP
n(A)とした際に、以下の式(1)で示されるレート関数κを求める問題となる。
【0034】
より具体的には、学習装置10は、実際の分類結果に含まれる誤りの分布を示す関数を、指数関数の漸近形式に変換し、測度空間への双対変換を行う。そして、学習装置10は、双対関係にある2つの関数の距離を求める汎関数であるレート関数を導出することで、レート関数を算出する。そして、学習装置10は、レート関数の値に基づいて、分類結果に誤りが所定の確率以上で含まれる確率の確率分布関数の収束を評価し、評価結果に基づいて、新たな素性を学習対象に追加するか否かを判定する。
【0035】
以下、学習装置10が大偏差原理(クラメルの方法)を用いて、新たな素性を学習対象に追加するか否かを判定する処理の一例について説明する。例えば、以下の式(2)で示されるデータX
1〜X
nを考える。また、可測度関数としては、後述する式(14)を想定した事例としている。
【0037】
ここで、データX
1〜X
nの値は、分類結果の正誤に対応するものとする。例えば、データX
1〜X
nの値は、対応付けられた分類結果が正しい場合は「0」となり、誤りであれば「1」になるものとする。このような前提の元、ある学習器は、340分の1の確率で、誤った分類を行うものとする。すなわち、実際の分類結果において、誤りが340分の1の確率で生じたものとする。このような場合、分類結果の確率分布Pは、以下の式(3)で表すことができる。
【0039】
また、n個の分類結果に誤りが含まれる数は、以下式(4)に示すS
nとなる。
【0041】
このような場合、以下の式(5)で表される極限値c(λ)を考えると、極限値c(λ)のルジャンドル変換となるレート関数I(x)は、以下の式(6)で表すことができる。
【0044】
ここで、レート関数が凸関数であることを利用して、以下の式(7)を満たすλを算出すると、λの値は、以下の式(8)で示すことができる。
【0047】
ここで、式(8)に示すλの値を、式(6)に代入すると、レート関数I(x)は、以下の式(9)で表すことができる。
【0049】
この結果、レート関数I(x)は、以下の式(10)で表すことができる。
【0051】
ここで、1000個の分類結果のうち、誤りが出現する確率が100分の1以上となる確率分布関数の収束は、以下の式(11)で評価される。ここで、式(11)において、値xは、x∈[1/100,1]を満たすものとする。
【0053】
この結果、1000個の分類結果のうち、誤りが出現する確率が100分の1以上となる確率分布関数の収束は、以下の式(12)で表される評価値Pの値で評価される。
【0055】
また、確率分布関数が「0」に収束する速さは、以下の式(13)で表される収束速度Sの値で評価される。なお、素性の不足によらない、通常の判定誤差は大数の法則により平均値に収束する。
【0057】
なお、可測度関数としては、後述する式(14)で示される。
【0059】
〔3.学習装置が有する機能構成の一例〕
次に、
図2を用いて、実施形態にかかる学習装置10が有する機能構成の一例について説明する。
図2は、実施形態にかかる情報配信装置が有する機能構成の一例を示す図である。
図2に示すように、学習装置10は、インタフェース部20、記憶部30、および制御部40を有する。また、
図2に示す例では、学習装置10は、インタフェース部20を介して、入力装置50および出力装置60と接続されている。
【0060】
入力装置50は、学習装置10に対して各種の情報を入力するための装置であり、例えば、マウス、キーボード、タッチパネル、マイクといった入力デバイスや、フラッシュメモリやCD−ROM(Compact Disc Read Only Memory)等といった任意の記録媒体から情報を読み取る読取装置によって実現される。このような入力装置50は、例えば、学習データや判定対象データの登録や、閾値の設定、新たな素性の指定等に用いられる。
【0061】
出力装置60は、学習装置10の処理結果を出力するための装置であり、例えば、モニタやプリンタ等により実現される。このような出力装置60は、例えば、学習装置10による判定結果の出力や、新たな素性を学習対象とするか否か、新たな素性の指定画面等が出力される。
【0062】
インタフェース部20は、入力装置50からの入力を受付けるインタフェースである。また、インタフェース部20は、出力装置60に対して、各種の情報を出力するためのインタフェースである。
【0063】
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、学習情報データベース31、対象情報データベース32、分類結果データベース33、および学習モデル34が登録されている。
【0064】
以下、
図3〜
図5を用いて、記憶部30が記憶する各データベース31〜33に登録された情報の一例について説明する。
【0065】
まず、
図3を用いて、学習情報データベース31に登録された情報の一例について説明する。
図3は、実施形態に係る学習情報データベースに登録された情報の一例を示す図である。
図3に示すように、学習情報データベース31には、学習データとして、各ユーザa〜dの性別や年収を示す素性#1および素性#2が登録されている。なお、学習情報データベース31には、ユーザa〜d以外にも、所定の条件を満たすユーザの素性#1および素性#2が登録されているものとする。また、学習情報データベース31には、素性#1および素性#2以外にも、任意の素性が含まれていてもよい。
【0066】
ここで、学習情報データベース31には、学習器の学習時に正解データとして用いるデータが学習データとして登録されている。例えば、素性#1および素性#2に基づいて、ユーザを「ドライブが好き」なグループと「ドライブが好きではない」グループとに分類する学習器の学習を行う場合は、学習情報データベース31には、「ドライブが好き」なグループに分類されるユーザの性別や年収といった属性を示す素性#1および素性#2が登録されることとなる。
【0067】
例えば、
図3に示す例では、学習情報データベース31には、ユーザaの素性#1「a1」および素性#2「a2」が対応付けて登録されている。なお、
図3に示す例では、各ユーザa〜dの素性#1や素性#2として、「a1」〜「d1」、「a2」〜「d2」といった概念的な値を記載したが、実際には、素性#1や素性#2を示すフラグや情報が登録されることとなる。例えば、素性#1が性別を示す素性である場合、「a1」〜「d1」は、「男性」や「女性」といった値であってもよい。
【0068】
次に、
図4を用いて、対象情報データベース32に登録される情報の一例について説明する。
図4は、実施形態に係る対象情報データベースに登録される情報の一例を示す図である。
図4に示す例では、対象情報データベース32には、対象情報として、各ユーザA〜Dの素性#1〜素性#3が登録されている。なお、対象情報データベース32には、ユーザA〜D以外にも、所定の条件を満たすユーザの素性#1〜素性#3が登録されているものとする。また、対象情報データベース32には、素性#1〜素性#3以外にも、任意の素性が含まれていてもよい。
【0069】
例えば、
図4に示す例では、対象情報データベース32には、ユーザAの素性#1「A1」、素性#2「A2」、および素性#3「A3」が対応付けて登録されている。なお、
図4に示す例では、各ユーザA〜Dの素性#1〜素性#3として、「A1」〜「D1」、「A2」〜「D2」、「A3」〜「D3」といった概念的な値を記載したが、実際には、素性#1〜素性#3を示すフラグや情報が登録されることとなる。
【0070】
次に、
図5を用いて、分類結果データベース33に登録される情報の一例について説明する。
図5は、実施形態に係る分類結果データベースに登録される情報の一例を示す図である。
図5に示す例では、分類結果データベース33には、分類結果として、判定対象データに素性が含まれていたユーザA〜Dの分類結果と、分類結果の正誤を示す情報とが対応付けて登録されている。
【0071】
例えば、分類結果データベース33には、ユーザAおよびユーザBを学習器で分類した分類結果が「G1」であり、その分類結果が「正」である旨が登録されている。また、分類結果データベース33には、ユーザCを学習器で分類した分類結果が「G1」であり、ユーザDを学習器で分類した分類結果が「G2」であり、それらの分類結果が「誤」である旨が登録されている。
【0072】
なお、
図5に示す例では、各ユーザA〜Dの分類結果として「G1」や「G2」といった概念的な値を記載した。かかる値は、例えば、「ドライブが好き」なグループや「ドライブが好きではない」グループ等、学習器によって分類される各グループを示す情報である。
【0073】
図2に戻り、説明を続ける。学習モデル34は、学習情報データベース31に登録された学習データを用いて学習された学習器である。例えば、学習モデル34は、ユーザa〜dの素性#1および素性#2が有する特徴を学習した学習器である。このような学習モデル34は、例えば、対象情報データベース32に登録された判定対象データのうち、素性#1および素性#2が有する特徴に基づいて、各ユーザA〜Dを「G1」または「G2」といったグループに分類する。
【0074】
制御部40は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等によって、学習装置10内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。
【0075】
図2に示すように、制御部40は、受付部41、学習部42、分類部43、取得部44、推定部45、および判定部46を有する。
【0076】
受付部41は、学習データや判定対象データの受付を行う。例えば、受付部41は、入力装置50から、学習データや判定対象データを受付けた場合は、受付けた学習データや判定対象データを学習情報データベース31や対象情報データベース32に登録する。
【0077】
学習部42は、学習情報データベース31に登録された学習データを用いて、学習モデル34の学習を行う。例えば、学習部42は、正解データとして、学習情報データベース31に登録された学習データに含まれる素性#1および素性#2が有する特徴を学習した学習モデル34を生成する。このような学習モデル34は、例えば、判定対象データに含まれるユーザAの素性#1および素性#2に応じて、ユーザAがユーザa〜dと同じグループに属するか否かの分類を行う。
【0078】
分類部43は、所定の素性に基づいてデータの分類を行う学習モデル34を用いて、対象情報データベース32に登録された判定対象データの分類を行う。具体的には、分類部43は、学習部42によって学習が行われた学習モデル34を読み出し、読み出した学習モデル34を用いて、対象情報データベース32に登録された判定対象データの分類を行う。そして、分類部43は、分類結果を分類結果データベース33に登録する。
【0079】
例えば、分類部43は、対象情報データベース32から、ユーザAの素性#1および素性#2を読み出し、学習モデル34を用いて、ユーザAが「G1」と「G2」とのいずれに分類されるか判定する。そして、分類部43は、ユーザAが「G1」に分類されると判定した場合は、ユーザAの分類結果「G1」を分類結果データベース33に登録する。
【0080】
取得部44は、分類部43による分類結果の正誤を取得する。例えば、取得部44は、分類結果データベース33を参照し、各ユーザA〜Dの分類結果を取得する。また、取得部44は、取得した分類結果を各ユーザA〜Dに対して提示し、分類結果の正誤の入力を依頼する。そして、取得部44は、入力された分類結果の正誤を分類結果データベース33に登録する。
【0081】
推定部45は、大偏差原理に基づいて、分類部43による分類結果に誤りが生じる確率の挙動を、分類部43による分類結果から推定する。具体的には、推定部45は、大偏差原理に基づいて、分類結果に誤りが生じる確率が所定の確率以上となる確率分布関数の収束を評価する評価値Pを算出する。また、推定部45は、大偏差原理に基づいて、分類結果に誤りが生じる確率が所定の確率以上となる確率分布関数が収束する収束速度Sを算出する。
【0082】
例えば、推定部45は、分類結果データベース33に登録された各ユーザA〜Dの正誤から、式(3)で示した確率分布Pを算出し、算出した確率分布Pから式(6)に示すレート関数I(x)を算出する。そして、推定部45は、レート関数I(x)と、学習装置10の管理者等により設定される閾値とに基づいて、式(11)を計算し、式(12)に示す評価値P、および、式(13)に示す収束速度Sを算出する。
【0083】
ここで、
図6は、実施形態に係る学習装置が用いるレート関数の一例を説明するための図である。例えば、
図6中の実線で示す関数「y=f(x)」上において、「x=x
0」で関数「y=f(x)」に接する関数を考える。このような関数は、
図6中の点線で示す関数となるが、かかる関数が「x=0」の場合の切片を「−f
*」、「f(x)」を「x」で微分した関数を「g(x)」とすると、「y=g(x
0)x−f
*」で表すことができる。
【0084】
このような関数「y=f(x)」と関数「y=g(x
0)x−f
*」との間には、
図6中(A)で示すように、xの値に応じた差異である相対エントロピーが生じる。このような相対エントロピーは、2つの関数の差異図る尺度、すなわち、2つの確率分布の差異を図る尺度として利用可能である。そこで、学習装置10は、このような相対エントロピーをレート関数I(x)として利用する。
【0085】
図2に戻り、説明を続ける。判定部46は、推定部45により推定された挙動に基づいて、新たな素性を学習モデル34の学習対象に追加するか否かを判定する。具体的には、判定部46は、推定部45が算出した評価値Pおよび収束速度Sの値を取得する。そして、判定部46は、評価値Pの値が所定の閾値を超え、かつ、収束速度Sの値が所定の速さ以下となる場合は、新たな素性を学習対象に追加する。
【0086】
なお、判定部46は、評価値Pの値が所定の閾値を超えた場合は、収束速度Sの値によらず、新たな素性を学習対象に追加してもよい。また、判定部46は、収束速度Sの値が所定の速さ以下となる場合は、評価値Pの値によらず、新たな素性を学習対象に追加してもよい。また、判定部46は、評価値Pの値と収束速度Sの値との組合せに応じて、新たな素性を学習対象に追加するか否かを判定してもよい。
【0087】
ここで、判定部46は、新たな素性を学習対象に追加すると判定した場合には、以下の処理を実行する。まず、判定部46は、分類結果データベース33を参照し、分類結果が「誤」であるユーザを特定する。続いて、判定部46は、対象情報データベース32を参照し、特定したユーザの素性のうち、学習モデル34の学習対象になっていない素性を特定する。そして、判定部46は、特定した素性のうち、分類結果が「誤」であったユーザ間で共通する素性の値を抽出し、抽出した素性の値を、新たな学習対象として、学習情報データベース31に登録する。すなわち、判定部46は、対象情報データベース32に登録されたデータのうち、分類結果が誤りであると判定されたユーザ間で共通する値の素性を新たな学習対象として学習情報データベース31に登録する。
【0088】
このような場合、学習部42は、学習情報データベース31に登録された素性、すなわち、予め登録された素性と新たに登録された素性とを用いて、学習モデル34の学習を再度実行する。このような場合、学習部42は、指定された素性を正解データ又は不正解データとして学習情報データベース31に登録し、学習情報データベース31に登録された学習データ、すなわち、前回使用した学習データと、新たに追加されたデータとを用いて、学習モデル34の再学習を行う。
【0089】
このような学習モデル34の再学習が行われた場合、分類部43は、再学習が行われた学習モデル34を用いて、対象情報データベース32に登録された判定対象情報の分類を再度実行する。また、取得部44は、分類部43によって再度の分類が実行された場合は、再度の分類結果の正誤を再度取得する。そして、推定部45は、分類結果の正誤が再度取得された場合は、再分類の分類結果から、評価値Pおよび収束速度Sを再度算出する。そして、判定部46は、再度算出された評価値Pおよび収束速度Sの値に応じて、さらに新たな素性を学習結果に追加するか否かを再度判定する。
【0090】
なお、判定部46は、分類結果が「誤」であったユーザの素性の値を出力装置60に出力されることで管理者に提示し、管理者が選択した素性の値を、新たな学習対象として、学習情報データベース31に登録してもよい。また、判定部46は、新たな学習対象を追加しない場合は、学習モデル34の学習が終了した旨を、出力装置60から出力することとなる。
【0091】
〔4.学習装置が実行する処理の手順〕
次に、
図7を用いて、学習装置10が実行する処理の流れについて説明する。
図7は、実施形態に係る学習装置が実行する処理の流れの一例を説明するフローチャートである。例えば、学習装置10は、学習結果を用いて、判定対象データの分類を行う(ステップS101)。続いて、学習装置10は、分類結果の正誤を取得する(ステップS102)。そして、学習装置10は、全ての分類結果について正誤を取得したか否かを判定し(ステップS103)、取得していない場合は(ステップS103:No)、取得するまで待機する。
【0092】
一方、学習装置10は、全ての正誤を取得した場合は(ステップS103:Yes)、大偏差原理に基づいて、分類結果を増大させた際に誤りが生じる確率の挙動を推定する(ステップS104)。そして、学習装置10は、評価値Pの値が所定の閾値よりも大きいか否か、および収束速度Sの値が所定の閾値よりも小さいか否かに応じて、分類結果を増大させた際に誤りが生じる確率が閾値による所定の判定条件に当てはまるか否かを判定する(ステップS105)。具体的には、学習装置10は、大偏差における挙動が素性の不足によるものかどうかを判定する。
【0093】
そして、学習装置10は、誤りが生じる確率が閾値による判定条件に当てはまる判定した場合は(ステップS105:Yes)、分類結果が誤りであるデータが有する素性のうち、学習対象ではない素性であって、分類結果が誤りであるデータ間で共通する素性を学習対象に追加する(ステップS106)。そして、学習装置10は、学習モデル34の再学習を行い(ステップS107)、ステップS101から処理を再度実行する。
【0094】
一方、学習装置10は、誤りが生じる確率が閾値による判定条件に当てはまらないと判定した場合は(ステップS105:No)、すなわち、評価値Pの値が所定の閾値よりも小さい場合や、収束速度Sの値が所定の閾値よりも大きい場合等には、再学習を行わずに処理を終了する。
【0095】
〔5.変形例〕
上述した実施形態に係る学習装置10は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、上記の学習装置10の他の実施形態について説明する。
【0096】
〔5−1.誤りデータ出現確率について〕
上述した式(1)〜式(13)では、学習装置10は、1000個の分類結果が存在する場合の誤りデータ出現確率を100分の1として計算を行った。しかしながら、実施形態は、これに限定されるものではなく、学習装置10は、誤りデータ出現確率を任意の値に設定することができる。すなわち、誤りデータ出現確率は、学習器に対して許容される誤差の範囲内で任意の値に設定されてよい。
【0097】
〔5−2.新たな素性の追加について〕
上述した学習装置10は、評価値Pおよび収束速度Sの値に応じて、新たな素性を追加するか否かを判定した。しかしながら、実施形態は、これに限定されるものではない。例えば、学習装置10は、評価値Pの値が所定の閾値以上である場合は、収束速度Sの値によらず、新たな素性を学習対象に追加してもよい。なお、学習装置10は、評価値Pと比較する閾値、および収束速度Sと比較する閾値として、任意の値を採用可能である。
【0098】
また、上述した学習装置10は、学習データに含まれる素性や、新たに学習対象に追加された素性を正例を示す正解データとして用いる機械学習を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、学習装置10は、正解データ以外にも、負例を示す不正解データを用いた機械学習を行ってもよい。また、学習装置10は、ユーザを2つのグループに分類する学習器の学習を行ったが、実施形態は、これに限定されるものではない。すなわち、学習装置10は、ユーザを任意の数のグループに分類する学習器の学習を行ってもよい。
【0099】
ここで、正例および負例は、二値分類を学習する機械学習において、二値の一方、および他方を示す概念である。正例および負例は、二値に分けるために便宜上用いられている名称であるため、学習されるデータの内容とは関係しても良く、関係しなくても良い。なお、正例は、正解、Positive、またはTrue等と記載される。負例は、不正解、Negative、またはFalse等と記載される。正解データおよび不正解データの内容、または用語等は、学習の事例によって異なる。
【0100】
〔5−3.大偏差原理について〕
ここで、大偏差原理には、複数のバリエーションが存在する。例えば、上述した説明では、クラメールの大偏差原理を用いた処理の一例について記載した。しかしながら、実施形態は、これに限定されるものではない。例えば、大偏差原理には、ランダムポテンシャル中の電子の挙動を示すアンダーソンモデルを評価するDonsker−Varadhanの大偏差原理等が存在する。学習装置10は、このようなDonsker−Varadhanの大偏差原理等、任意のバリエーションの大偏差原理を上述した処理に適用し、分類結果の数を増大させた際において誤りが生じる確率の挙動を推定してよい。
【0101】
〔5−4.適用対象について〕
上述した学習装置10は、ユーザを「ドライブが好きである」グループと「ドライブが好きではない」グループとに分類する学習器の学習を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、学習装置10は、任意の測定データやログデータ等、任意のデータの分類を行う学習器の学習を行ってもよい。また、学習装置10は、広告に関連する分類等、任意の分類を行ってよい。例えば、学習装置10は、所定の広告について、ユーザが閲覧若しくはクリックするか否かの分類を行ってもよい。また、例えば、学習装置10は、所定の商品について、ユーザが購入するか否かの分類を行ってもよい。このように、学習装置10は、上述した処理の結果得られる学習器を用いた分類を、広告配信や商品のリコメンド等と組み合わせて実施可能にしてもよい。
【0102】
〔5−5.追加する素性の特定について〕
上述した学習装置10は、分類結果が誤りであるユーザの素性を新たな学習対象に追加した。ここで、学習装置10は、大偏差原理を用いて分類結果の数を増大させた際に誤りが生じる確率の挙動に応じて、新たに学習対象に追加すべき素性を特定してもよい。例えば、学習装置10は、新たな学習対象を追加した際に、大偏差原理を用いて分類結果の数を増大させた際に誤りが生じる確率の値と、新たな学習対象を追加する前に、大偏差原理を用いて分類結果の数を増大させた際に誤りが生じる確率の値とを比較する。そして、学習装置10は、比較の結果、誤りが生じる確率の値が所定の閾値以上低下していない場合には、前回学習対象に追加した素性を学習対象から除外し、他の素性を新たな学習対象として追加してもよい。
【0103】
また、学習装置10は、前回算出した評価値Pや収束速度Sの値と、新たに算出した評価値Pや収束速度Sの値とを比較し、評価値Pの値が減少していない場合や、収束速度Sの値が減少している場合等、評価値Pや収束速度Sの値が改善していない場合には、前回学習対象に追加した素性を学習対象から除外し、他の素性を新たな学習対象として追加してもよい。すなわち、学習装置10は、新たな素性を追加するか否かの判断だけではなく、追加対象となる素性の選択に大偏差原理を適用してもよい。
【0104】
〔5−6.ハードウェア構成〕
また、上述してきた実施形態に係る学習装置10は、例えば
図8に示すような構成のコンピュータ1000によって実現される。
図8は、学習装置の機能を実現するコンピュータのハードウェア構成の一例を示す図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
【0105】
CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0106】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス1500は、通信網500(ネットワークNに対応する)を介して他の機器からデータを受信してCPU1100へ送り、また、通信網500を介してCPU1100が生成したデータを他の機器へ送信する。CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、入出力インターフェイス1600を介して生成したデータを出力装置へ出力する。
【0107】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラム又はデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0108】
例えば、コンピュータ1000が学習装置10として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部40の機能を実現する。また、HDD1400には、記憶部30内の各データが格納される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網500を介してこれらのプログラムを取得してもよい。
【0109】
〔6.効果〕
上述したように、学習装置10は、判定対象データが有する素性のうち所定の素性に基づいて判定対象データの分類を行う学習器を用いて、判定対象データの分類を行う。また、学習装置10は、大偏差原理に基づいて、分類結果に誤りが生じる確率の挙動を、実際の分類結果から推定する。そして、学習装置10は、推定された挙動に基づいて、新たな素性を学習器の学習対象に追加するか否かを判定する。このため、学習装置10は、学習器による分類精度をブートストラップ的に向上させることができ、本手法を繰り返し実行させていくうちに不足している素性をすべて抽出、追加することができる。また、素性の不足による誤り発生の状況を大偏差に結びつけることにより、平均値に収束する通常の判定誤差とは区別した状況を作り出し、過学習を防ぐこともできる。
【0110】
また、学習装置10は、大偏差原理に基づいて、収束の挙動を評価する評価値Pを算出し、評価値Pが所定の閾値を超える場合は、新たな素性を学習器の学習対象に追加する。この結果、学習装置10は、分類結果を増大させた際に、分類結果に誤りが生じる確率が閾値による判定条件に当てはまる場合には、新たな素性を追加する。この結果、学習装置10は、過学習を防ぎつつ、分類精度を向上させることができる。
【0111】
また、学習装置10は、大偏差原理に基づいて、分類結果に誤りが生じる確率が所定の範囲内となるレート関数が収束する速さが所定の速さ以下となる場合は、新たな素性を学習対象に追加する。この結果、学習装置10は、過学習を防ぎつつ、分類精度を向上させることができる。
【0112】
また、学習装置10は、新たな素性を学習器の学習対象に追加すると判定した場合は、新たな素性と所定の素性とに基づいてデータの分類を行う学習器を再度学習する。より具体的には、学習装置10は、新たな素性として、分類結果が誤りであった判定対象データが有する素性のうち、共通する特徴を有する素性を用いて、学習器の学習を再度実行する。この結果、学習装置10は、学習器の分類精度を向上させることができる。
【0113】
また、学習装置10は、再度学習された学習器を用いて、判定対象データを再度分類し、再度の分類結果から、分類結果の数を増大させた際に誤りが生じる確率の挙動を再度推定し、再度推定された挙動に基づいて、さらに新たな素性を学習器の学習結果に追加するか否かを再度判定する。このため、学習装置10は、学習器による分類精度をブートストラップ的に向上させることができる。
【0114】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0115】
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、配信部は、配信手段や配信回路に読み替えることができる。