【国等の委託研究の成果に係る記載事項】(出願人による申告)平成23年度、独立行政法人情報通信研究機構「高度通信・放送研究開発委託研究/インターネット上の違法・有害情報の検出技術の研究」、産業技術力強化法第19条の適用を受ける特許出願
【文献】
丸山稔,外1名,階層型識別器による文字抽出,画像ラボ,日本,日本工業出版株式会社,2006年 1月 1日,第17巻,第1号,pp.6-10
(58)【調査した分野】(Int.Cl.,DB名)
前記サポートベクター削減部ごとの前記削減度決定部により決定された削減度のうちから、最もサポートベクター数を削減する度合いの低い削減度を、前記サポートベクター削減部の各々におけるサポートベクター簡約部に対して設定すべき削減度として決定する統合削減度決定部をさらに備える
請求項1に記載の学習装置。
【発明を実施するための形態】
【0012】
<第1の実施形態>
[学習装置の構成例]
図1は、本実施形態における学習装置1の構成例を示している。この学習装置1は、SVM(Support Vector Machine:サポートベクターマシン)を用いた識別器に学習させるためのものである。
【0013】
この図に示す学習装置1は、学習データ11、データ分割部20、特徴量生成部30、学習部40、SV削減ユニット50−1、SVM結合部60−1、SV削減ユニット50−2、SVM結合部60−2、SV削減ユニット50−3、SVM結合部60−3を備える。
【0014】
SVMによる識別器は教師有りの学習型である。学習データ11は、SVMによる識別器に学習させるための多数のデータから成る。
【0015】
データ分割部20は、学習データ11におけるデータを所定数ごとのサブセット(分割学習データ)に分割する。特徴量生成部30は、上記分割学習データごとに含まれるデータのそれぞれを特徴量に変換する。
【0016】
学習部40は、分割学習データをそれぞれ入力して初段(最下位)における学習を行う複数のSVMを備えて構成される。ここでは、一例として、学習部40が、8つのSVM41〜48を備えた例を示している。学習フェーズにおいて、これらのSVM41〜48は、それぞれ分割学習データD1〜D8を入力して学習処理を実行し、その学習結果として分離超平面に対応する複数のサポートベクターからなるサポートベクター群SG1〜SG8を出力する。
【0017】
なお、SVM41〜48の学習アルゴリズムについては特に限定されるものではないが、以下のような手法を採用できる。つまり、SVMを学習する主要タスクは、「−1」と「+1」のラベルyiを持つ学習用データx
i(i=1,2,・・・,I)が与えられた場合に、下記の式(1)として示す制約二次計画問題を解くことである。式(1)において、K(x
i,x
j)は、或る特徴空間上の2つのベクトルx
iとx
jとの間の内積を計算するカーネル関数であり、C
i(i=1,2,・・・,I)は、上記のように与えられた学習用データx
iにおいてノイズを含むデータにペナルティを課すパラメータである。
【0019】
SV削減ユニット50−1は、前段(下位)のSVMから出力されたサポートベクター群を形成するサポートベクターを削減する。第1の実施形態のSV削減ユニット50−1は、
図2(a)に示すように、複数のSV削減部51(51−1〜51−8)を備える。SV削減部51−1〜51−8は、それぞれ、前段のSVM41〜48から出力されたサポートベクター群SG1〜SG8におけるサポートベクター数を削減し、このサポートベクター数が削減されたサポートベクター群を、それぞれサポートベクター群SG11〜SG18として、次段(上位)のSVM結合部60−1に出力する。
【0020】
図2(b)は、第1の実施形態におけるSV削減部51として、SV削減部51−1を挙げてその内部構成例を示している。なお、SV削減ユニット50−1における他のSV削減部51、および、SV削減ユニット50−2、50−3における他のSV削減部51についても、その内部構成は
図2(b)と同様である。
【0021】
この図に示すように、SV削減部51−1は、SV削減度設定部110およびSV簡約部120を備える。SV削減度設定部110は、SV簡約部120に対してサポートベクターの削減度Srdを設定する。
【0022】
SV簡約部120は、サポートベクター群SG1を形成するN個のサポートベクターSV
1〜SV
Nを入力し、SV削減度設定部110により設定された削減度Srdにしたがって、これらN個のサポートベクターSV
1〜SV
Nについて簡約化を行い、M個にまで削減されたサポートベクターSV
1〜SV
Mにより形成されるサポートベクター群SG11〜SG18を出力する。
【0023】
第1の実施形態において、SV削減度設定部110は、予め設定されたサポートベクターの削減目標値を削減度SrdとしてSV簡約部120に対して設定する。ここでの削減目標値は、削減後のサポートベクターの個数「M」を示すものであるとする。SV簡約部120は、入力されたサポートベクター群ごとについて、削減度Srdとして設定された削減目標値であるM個にまでサポートベクターを削減するように簡約処理を実行する。
【0024】
また、SV簡約部120の簡約化アルゴリズムについては特に限定されるべきではなく、例えばこれまでに知られている簡約化アルゴリズムを適用することができる。簡約化アルゴリズムの、一例として、SV簡約化問題を以下のように定義する。つまり、サポートベクターの削減が行われない場合のSVMを以下の式(2)、(3)のように定義する。
【0026】
上記式(2)、(3)は、近い性質を保ちつつ、Nz<<Nsの関係となる。簡約化処理としては、上記の定義を満たす最適なz、βの組を求めるものとなる。
【0027】
説明を
図1に戻す。SVM結合部60−1は、前段のSVMから出力されたサポートベクター群(ただし、SV削減部50−1によりサポートベクター数は削減されている)を所定数ずつ結合し、この結合されたサポートベクター群がそれぞれ学習データとして入力されるSVMを構築する。具体的に、SVM結合部60−1の場合には、前段のSVM41〜48の各々から出力された後にSV削減部51−1〜51−8によりサポートベクターが削減されたサポートベクター群SG11〜SG18を2つずつ結合する。つまり、サポートベクター群SG11とSG12、サポートベクター群SG13とSG14、サポートベクター群SG15とSG16、サポートベクター群SG17とSG18をそれぞれ結合するものである。そして、結合されたサポートベクター群SG11とSG12の組、サポートベクター群SG13とSG14の組、サポートベクター群SG15とSG16の組、サポートベクター群SG17とSG18の組がそれぞれ学習データとして入力される4つのSVM61、62、63、64を構築する。SVM61、62、63、64は、学習を行った結果として、それぞれサポートベクター群SG21、SG22、SG23、SG24を出力する。このSVM結合部60−1は、SVMの多段構成において、2段目のSVMによる学習を行う部位としてみることができる。
【0028】
SV削減ユニット50−2は、前段のSVM61、62、63、64から出力されたサポートベクター群SG21、SG22、SG23、SG24を形成するサポートベクターを削減する。第1の実施形態において、SV削減ユニット50−2の内部構成は、
図2に準ずる。つまり、SV削減ユニット50−2は、前段において4つのSVM61、62、63、64が設けられているのに応じて、4つのSV削減部51を備える。これら4つのSV削減部51におけるSV簡約部120は、それぞれ、SVM61、62、63、64から出力されたサポートベクター群SG21、SG22、SG23、SG24を入力する。そして、SV簡約部120は、SV削減度設定部110により設定された削減度Srdにしたがって、サポートベクター群SG21、SG22、SG23、SG24のそれぞれにおけるサポートベクターを削減し、サポートベクター群SG31、SG32、SG33、SG34として次段のSVM結合部60−2に供給する。
【0029】
SVM結合部60−2は、3段目のSVMによる学習を行う部位となる。SVM結合部60−2は、SV削減ユニット50−2から出力されたサポートベクター群SG31、SG32、SG33、SG34を2つずつ結合する。つまり、サポートベクター群SG31とSG32を結合し、サポートベクター群SG33とSG34を結合する。そして、結合されたサポートベクター群SG31とSG32の組と、サポートベクター群SG33とSG34の組がそれぞれ学習データとして入力される2つのSVM71、72を構築する。SVM71、72は、学習を行った結果として、それぞれサポートベクター群SG41、SG42を出力する。
【0030】
SV削減ユニット50−3は、前段のSVM71、72から出力されたサポートベクター群SG41、SG42を形成するサポートベクターを削減する。第1の実施形態において、SV削減ユニット50−3の内部構成は、
図2に準ずる。つまり、SV削減ユニット50−3は、前段において2つのSVM71、72が設けられているのに応じて、2つのSV削減部51を備える。これら2つのSV削減部51におけるSV簡約部120は、それぞれ、SVM71、72、から出力されたサポートベクター群SG41、SG42を入力する。そして、SV削減度設定部110により設定された削減度Srdにしたがってサポートベクターを削減し、サポートベクター群SG51、SG52として次段のSVM結合部60−3に供給する。
【0031】
SVM結合部60−3は、4段目すなわち最終段(最上位)のSVMによる学習を行う部位となる。SVM結合部60−3は、前段のSVM71、72の各々から出力された後にサポートベクターが削減されたサポートベクター群SG51、SG52を結合し、この結合されたサポートベクター群SG51とSG52が学習データとして入力される1つのSVM81を構築する。この最終段におけるSVM81から出力されたサポートベクター群SG61が学習済みデータとなる。
【0032】
識別器として機能する評価フェーズにおいては、学習部40により識別処理を実行させる。この際、学習済みデータとして、サポートベクター群SG51が学習部40におけるSVM41〜48の各々に対して入力される。SVM41〜48は、サポートベクター群SG51としての学習済みデータを利用して識別処理を実行する。一具体例として、識別対象データx
i(i=1,2,・・・,I)が与えられた際に、以下の式(4)による演算を行う。
【0034】
[処理手順例]
図3のフローチャートは、学習装置1が実行する処理手順例を示している。まず、データ分割部20は、学習データ11を所定数(
図1では8個)の分割学習データに分割し(ステップS101)、特徴量生成部30は、上記分割学習データごとに含まれるデータそれぞれの特徴量を生成する(ステップS102)。
【0035】
次に、学習部40は、内部において並列に形成されているSVM41〜48のそれぞれに対して、特徴量としての分割学習データを入力して学習を実行させる(ステップS103)。
【0036】
次に、SV削減ユニット50−1におけるSV削減部51−1〜51−8は、それぞれ、SVM41〜48から出力されたサポートベクター群SG1〜SG8を入力してサポートベクターを削減し、サポートベクター群SG11〜SG18として出力する(ステップS104)。
【0037】
次に、SVM結合部60−1は、前述のようにサポートベクター群SG11〜SG18を2つずつ結合したものを、それぞれSVM61〜64に入力して学習を実行させる(ステップS105)。
【0038】
次に、SVM結合部60−1は、学習を実行する部位として自己が最終段であるか否かについて判定する(ステップS106)。SVM結合部60−1は、2段目において学習を実行する部位であるため、最終段ではないと判定する(ステップS106−NO)。この場合には、ステップS104に戻る。
【0039】
この2回目のステップS104としてのサポートベクター削減処理は、SV削減ユニット50−2における4つのSV削減部51が実行する。つまり、最後のステップS105によりSVM結合部60−1のSVM61〜64から出力されたサポートベクター群SG21〜SG24を対象とするサポートベクターの削減が行われる。
【0040】
そして、続くステップS105としてのSVM結合は、SVM結合部60−2が実行する。つまり、SV削減ユニット50−2から出力されたサポートベクター群SG31〜SG34を、サポートベクター群SG31とSG32、SG33とSG34とで2つずつ結合して、それぞれの組を、SVM71、72に入力して学習処理を実行させる。また、SVM結合部60−2は学習を行う部位として3段目であるため、次のステップS106において最終段ではないと判定し、ステップS104に戻る。
【0041】
この3回目のステップS104としてのサポートベクター削減処理は、SV削減ユニット50−3における2つのSV削減部51が実行する。つまり、最後のステップS105によりSVM結合部60−2のSVM71、72から出力されたサポートベクター群SG41、SG42におけるサポートベクターの削減が行われる。
【0042】
次のステップS105としてのSVM結合は、SVM結合部60−3が実行する。つまり、SV削減ユニット50−3からのサポートベクター群SG51、SG52を結合してSVM81に入力して学習処理を実行させる。そして、学習を行う部位として最終段のSVM結合部60−3は、次のステップS106において最終段であると判定し、これまでの学習フェーズとしての処理を終了する。
【0043】
[評価結果]
図4(a)は、
図1に示した構成による学習装置1が行った学習についての評価結果を示している。この評価のための学習を学習装置1に実行させるにあたり、学習データ11におけるデータ数(学習件数)は、「200,000」個とした。また、SV削減度設定部110がSV簡約部120に対して設定する削減度Srdとしての削減目標値は「10,000」個とする。つまり、各段に対応するSV削減ユニット50(50−1、50−2、50−3)におけるSV削減部51のSV簡約部120は、入力されるサポートベクター群におけるサポートベクターの数が「10,000」を超える場合、「10,000」個にまで削減する。また、比較として、
図1の構成からSV削減ユニット50(50−1、50−2、50−3)を省略してサポートベクター削減処理を行わない場合の評価結果を
図4(b)に示す。
【0044】
図4(a)および
図4(b)において、SVM段位置1〜4は、それぞれ、初段(1段目、最下位)の学習部40、2段目のSVM結合部60−1、3段目のSVM結合部60−2、最終段(4段目:最上位)のSVM結合部60−3が対応する。学習件数は、各段において1つのSMVが扱うこととなる学習データ(分割学習データ)の数を示している。サポートベクター数は、各段(学習部40、SVM結合部60−1、SVM結合部60−2、SVM結合部60−3)において学習結果として出力されるサポートベクターの数を示す。適合率と再現率は、それぞれ、各段において得られた学習結果を利用して或る特定の問題を想定した識別処理を実行させた場合の識別性能を示すものとなる。また、学習時間は、学習装置1に学習を開始させてから、対応の段における学習が終了するまでに経過した時間を示す。
【0045】
図4(a)と
図4(b)を比較して分かるように、最終段(SVM段位置「4」)における学習時間は、
図4(a)451768秒、
図4(b)が653080秒で、
図4(a)のほうが20000秒以上短縮されている。つまり、学習時間が著しく短縮されている。また、(SVM段位置「4」)における再現率を比較すると、再現率は
図4(a)が0.932で、
図4(b)が0.935となっており同等であるとみてよい。また、適合率についても、
図4(a)が0.905で
図4(b)が0.907であり、同等である。つまり、識別性能はほとんど低下していない。このように、本実施形態によっては、識別性能を低下させることなく、学習時間が大幅に短縮されている。
【0046】
なお、上記実施形態において、削減度Srdとしての削減目標値は、削減後のサポートベクター数を示すものとしているが、例えば削減前のサポートベクター数と削減後のサポートベクター数の比率としてもよい。
【0047】
<第2の実施形態>
[SV削減部の構成]
上記第1の実施形態において、SV削減部51がサポートベクター群のサポートベクターを削減するにあたり、そのための削減度Srdは削減目標値として固定的に設定されていた。これに対して、第2の実施形態は、各段のSV削減ユニット50−1〜50−3におけるSV削減部51がそれぞれ個別に削減度Srdを決定する。
【0048】
第2の実施形態において、学習装置1の全体構成は、
図1と同様でよい。また、SV削減ユニット50−1の構成は
図2(a)と同様であり、SV削減ユニット50−2、50−3の構成も
図2(a)に準じて、それぞれ、4つあるいは2つのSV削減部51を備える。
【0049】
図5は、第2の実施形態におけるSV削減部51の構成として、SV削減ユニット50−1のSV削減部51−1を例に挙げて示している。SV削減ユニット50−1における他のSV削減部51−2〜51−8、および、他のSV削減ユニット50−2、50−3の各々におけるSV削減部51も、それぞれ、同図に準じた構成を採る。なお、
図5において
図2(b)と同一部分には同一符号を付している。
【0050】
図5におけるSV削減度設定部110は、上段のSVM41から出力されるサポートベクター群SG1を形成するサポートベクターSV
1〜SV
Nを利用して削減度Srdを決定する。なお、ここで決定される削減度Srdは、「削減率」であることとする。ここでの削減率とは、SV削減部51−1が入力するサポートベクター群SG1を形成するサポートベクター数「N」に対する削減後のサポートベクター群SG11のサポートベクター数「M」の比率(M/N)をいう。例えば、削減率が「100%」であれば、サポートベクター群SG1とサポートベクター群SG11を形成するサポートベクター数は同じであり、全く削減を行っていない場合を示す。また、削減率が「10%」であれば、サポートベクター群SG11は、削減前のサポートベクター群SG1のサポートベクター数の1/10にまで削減されていることを意味する。
【0051】
SV削減度設定部110は、上記のように決定した削減率による削減度SrdをSV簡約部120に対して設定する。SV簡約部120は、設定された削減度Srdにしたがって、サポートベクター群SG1を形成するサポートベクターSV
1〜SV
Nを簡約化して削減することで、サポートベクターSV
1〜SV
Mから成るサポートベクター群SG11を出力する。具体的に、サポートベクター群SG1が「10,000個(N=10,000)」のサポートベクターにより形成されていたとして、設定された削減度Srdが「30%」であったとすれば、SV簡約部120は、「3,000個(M=3,000)」にまで削減したサポートベクターから成るサポートベクター群SG11を出力することになる。
【0052】
[SV削減度設定部の構成]
図6は、上記
図5に示したSV削減度設定部110の構成例を示している。この図に示すSV削減度設定部110は、SV削減試行部111、識別試行部112および削減度決定部113を備える。
【0053】
SV削減試行部111は、サポートベクター群SG1(SV
1〜SV
N)を入力し、予め決められた複数の削減率ごとにしたがってサポートベクター数を削減したサポートベクター群を出力する。具体例として、この場合には、100%〜10%の間で10%間隔による10個の削減率が決められているものとする。そして、SV削減試行部111は、この100%から10%までの10%間隔ごとの削減率によりサポートベクター群SG1のサポートベクターを削減し、それぞれ、サポートベクター群SGt1〜SGt10として出力する。
【0054】
識別試行部112は、上記SV削減後のサポートベクター群SGt1〜SGt10をそれぞれ学習済みデータとして利用し、サンプルデータ12を識別対象とするSVMによる識別処理を実行する。これにより、識別試行部112は、サポートベクター群SGt1〜SGt10ごとの識別結果を取得する。なお、サンプルデータ12は予め識別対象として用意されるデータである。サンプルデータ12の形式は、識別対象によって異なるが、画像中の特定の物体を識別するような場合には画像データとなり、例えば、或るまとまった文章が有害であるか否かを識別するような場合には、特定の文章が記述されたテキストデータなどとなる。
【0055】
そして、識別試行部112は、サポートベクター群SGt1〜SGt10ごとの識別結果について、例えばサンプルデータ12に含まれる正解データを利用して識別性能(例えば再現率と適合率)の評価を行い、その評価結果を出力する。このサポートベクター群SGt1〜SGt10ごとの評価結果は、すなわち、100%〜10%までの10%の削減率ごとに対応した評価結果となる。
【0056】
削減度決定部113は、上記のように識別試行部112から出力された、100%〜10%までの10%の削減率削減率ごとに対応する識別結果に基づいて最適とされる削減率を決定する。
【0057】
図7(a)と
図7(b)は、それぞれ異なる事例の識別問題(分割学習データに相当する)を与えた場合の、SV削減試行部111と識別試行部112の各処理の実行結果を評価したものである。識別問題(分割学習データ)が異なることにより、上段のSVM41から出力されるサポートベクター群SG1を形成するサポートベクターの数およびこれらの値も異なるものとなる。
【0058】
図7(a)と
図7(b)の各図においては、削減率ごとに、サポートベクター(SV)数、再現率、適合率が対応付けられている。ここでの削減率は、SV削減試行部111がサポートベクター削減処理を実行する際に設定される100%〜10%までにおける10%間隔の削減率を示している。サポートベクター(SV)数は、対応の削減率により削減された後のサポートベクターの数を示す。再現率および適合率は、各削減率により削減されたサポートベクターを利用して識別試行部112が実行した識別処理の結果を評価したものである。
【0059】
図7(a)の事例の場合の再現率および適合率を参照すると、再現率については削減率100%〜10%の範囲で「0.828〜0.826」の範囲に収まっている。つまり、再現率は削減率に対して変化が無いとみてよい。
【0060】
また、適合率については、100%〜20%の削減率の範囲で「0.963」または「0.964」となっており、変化は無いとみてよいが、10%の削減率のときに「0.956」にまで低下している。
【0061】
上記
図7(a)の事例の場合には、削減率を最小で20%にまで削減しても、サポートベクター削減処理を行わない場合と同等の識別性能を維持できるといえる。そこで、この
図7(a)の事例に対応しては、20%の削減率を削減度Srdとして決定することが妥当であることになる。
【0062】
また、
図7(b)の事例の場合、再現率については、100%〜30%の削減率の範囲で「0.881」または「0.881」となっており変化は無いとみてよいが、20%と10%の削減率のときに、それぞれ「0.876」、「0.871」となって低下傾向となっている。
【0063】
また、適合率については、100%〜30%の削減率の範囲で「0.964〜0.962」となっており、変化は無いとみてよいが、20%の削減率のときに「0.396」にまで低下し、さらに10%の削減率のときに「0.049」にまで低下している。
【0064】
この
図7(b)の事例の場合には、削減率を最小で30%にまで削減しても、SV削減を行わない場合と同等の識別性能を維持できるといえる。そこで、この
図7(a)の事例に対応しては、30%の削減率を削減度Srdとして決定することが妥当であることになる。
【0065】
識別試行部112は、削減率ごとに実行した識別処理の結果を評価して、その識別性能(再現率、適合率)を求める。そして、削減度決定部113は、概念的には、上記のように求められた識別性能に基づいて、識別性能の低下が許容される範囲においてできるだけ多数のサポートベクターを削減できる(できるだけ値が小さい)削減率を削減度Srdとして決定するものである。
【0066】
削減度決定部113が上記の概念にしたがって削減率を決定するための具体的なアルゴリズムについては特に限定されるものではない。一例として、例えば、適合率と再現率の調和平均であるF値を求め、このF値の許容範囲において最小値が対応する削減率を削減度Srdとして決定することが考えられる。または、例えば再現率または適合率のみを利用し、この再現率または適合率の許容範囲において最小値が対応する削減率を削減度Srdとして決定することも考えられる。
【0067】
SV削減部51は、いずれの段においても、それぞれが異なるサポートベクターから成るサポートベクター群を入力して削減を行う。
図7からも理解されるように、学習データ11の内容、すなわち、入力されるサポートベクター群の内容に応じて削減率と識別性能の関係は異なってくる。そこで、第2の実施形態のように、SV削減部51ごとにおいて、入力されるサポートベクター群の内容に適合した削減率による削減度Srdを決定することで、識別性能を低下させることなく、サポートベクターを有効に削減することが可能になる。
【0068】
[処理手順例]
図8のフローチャートは、
図6に示したSV削減度設定部110が実行する処理手順例を示している。まず、SV削減試行部111は、100%〜10%までにおける10%間隔の削減率のうちの1つを設定し(ステップS201)、この設定した削減率により、入力されるサポートベクター群におけるサポートベクターを削減する(ステップS202)。
【0069】
次に、識別試行部112は、上記ステップS202によりサポートベクターが削減された後のサポートベクター群を学習済みデータとして利用し、サンプルデータ12を識別対象としたSVMによる識別を実行する(ステップS203)。そして、この識別結果を対象とした識別性能(再現率、適合率)の評価を実行する(ステップS204)。
【0070】
次に、識別試行部112は、すべての削減率ごとに対応して識別性能の評価を終了したか否かについて判定する(ステップS205)。ここで、未だ識別性能の評価をしていない削減率が残っている場合には(ステップS205−NO)、ステップS201に戻る。これにより、次の削減率における識別性能が評価される。
【0071】
そして、すべての削減率ごとに対応した識別性能の評価を終了すると(ステップS205−YES)、削減度決定部113は、前述のように所定のアルゴリズムにしたがって、最適であるとして求めた削減率を削減度Srdとして決定する(ステップS206)。
【0072】
<第3の実施形態>
上記第2の実施形態においては、各段のSV削減ユニット50(50−1〜50−3)におけるSV削減部51の各々が独立して削減度Srdを決定していた。しかし、1つのSV削減ユニット50におけるSV削減部51に入力されるサポートベクター群の内容は類似しているといえる。第3の実施形態においては、このことに着目し、SV削減ユニット50(50−1〜50−3)ごとにおいて、1つのメインのSV削減部51が決定した削減度Srdを、他のサブとしてのSV削減部51に設定するという構成を採る。
【0073】
図9は、第3の実施形態に対応するSV削減ユニット50の構成として、初段に対応するSV削減ユニット50−1を例に挙げて示している。この図に示すように、SV削減ユニット50−1におけるSV削減部51−1〜51−8のうち、SV削減部51−1は削減度設定に関してメインとして機能し、残るSV削減部51−2〜51−8は、サブとして機能する。なお、2段目以降に対応するSV削減ユニット50−2、50−3についても、同様に、1つのSV削減部51がメインとなり、残るSV削減部51がサブとなるように構築される。
【0074】
メインのSV削減部51−1は、先の第2の実施形態として
図5および
図6に示したのと同様の構成を採ることで、削減率としての削減度Srdを決定する。そして、SV削減部51−1におけるSV簡約部120は、上記のように決定された削減度Srdの設定に応じて、SVを削減する処理を実行する。
【0075】
そのうえで、さらにメインのSV削減部51−1は、上記のように決定した削減度Srdを示す削減度指示情報Srdiを、他のサブのSV削減部51−2〜51−8に対して出力する。
【0076】
サブのSV削減部51−2〜51−8は、自己により削減度Srdを決定することはしない。これに代えて、サブのSV削減部51−2〜51−8は、上記のように出力された削減度指示情報Srdiの入力に応じて、この削減度指示情報Srdiが示す値を削減度Srdとして設定し、サポートベクターの削減を行う。
【0077】
図10(a)は、メインとしてのSV削減部51−1の構成例を示している。この図に示すSV削減部51−1は、
図5と同様の構成を採っている。また、この図におけるSV削減度設定部110は、
図6と同様の構成を採る。これにより、SV削減度設定部110は、入力されるサポートベクター群SG1に応じて削減率としての削減度Srdを決定し、この削減度SrdをSV簡約部120に対して設定する。
【0078】
そのうえで、SV削減度設定部110は、上記のように決定した削減度Srdの値を示す削減度指示情報Srdiをサブとしての他のSV削減部51−2〜51−8に対して出力するようにされている。
【0079】
図10(b)は、サブのSV削減部51−2〜51−8のうち、SV削減部51−2を例に挙げてその構成を示している。SV削減部51−2において、SV削減度設定部110は、メインのSV削減部51−1入力される削減度指示情報Srdiを入力するのに応じて、この削減度指示情報Srdiが示す値を削減度Srdとして簡約部120に対して設定する。
【0080】
このような構成によって、第3の実施形態においては、SV削減ユニット50−1が備えるSV削減部51−1〜51−8において、メインのSV削減部51−1により決定され削減度Srdが一律に設定される。また、SV削減ユニット50−2、50−3においても、それぞれ、1つのメインのSV削減部51が決定した削減度Srdが各SV削減部51に対して一律に設定される。
【0081】
前述のように、同じ段のSV削減部51に入力されるサポートベクター群は類似していることを前提とすれば、上記のように削減度Srdが一律に設定されたとしても、SV削減部51のそれぞれにおいて識別性能を低下させることなく有効にサポートベクターが削減されることになる。そして、削減度Srdを決定する処理を実行するSV削減部51は、各段におけるSV削減ユニット50−1〜50−3において1つのみとなるために処理負荷が軽減されることになる。
【0082】
図11は、第3の実施形態に対応してメインのSV削減部51とサブのSV削減部51におけるSV削減度設定部110がそれぞれ実行する処理手順例を示している。この図において、メインのSV削減部51のSV削減度設定部110が実行するステップS301〜S306の処理は、
図8のステップS201〜S206と同様となる。そして、メインのSV削減部51におけるSV削減度設定部110は、上記ステップS306により決定した削減度Srdを示す削減度指示情報Sdriを、他のサブのSV削減部51に対して出力する(ステップS307)。
【0083】
一方、サブのSV削減部51におけるSV削減度設定部110は、上記ステップS306により出力された削減度指示情報Sdriが入力されるのを待機している(ステップS401)。そして、削減度指示情報Sdriが入力されるのに応じて(ステップS401−YES)、SV削減度設定部110は、この削減度指示情報Sdriが示す削減度SrdをSV簡約部120に対して設定する(ステップS402)。
【0084】
<第4の実施形態>
図12は、第4の実施形態に対応するSV削減ユニット50の構成として、SV削減ユニット50−1を挙げて示している。なお、残るSV削減ユニット50−2、50−3も、上記
図12および
図13に準じた構成を有する。
【0085】
図12に示すように、SV削減ユニット50−1は、SV削減部51−1〜51−8に加えて、統合SV削減度決定部52をさらに備える。SV削減部51−1〜51−8は、先の第2の実施形態における
図5と同様にそれぞれが独立して削減度を決定可能に構成されている。そのうえで、SV削減部51−1〜51−8は、上記のように決定した削減度を削減度候補情報Srdcとして統合SV削減度決定部52に対して出力する。
【0086】
図13は、第4の実施形態に対応するSV削減部51の構成として、SV削減ユニット51−1を例に挙げて示している。なお、同じSV削減ユニット50−1における他のSV削減部51−2〜51−8、および、他のSV削減ユニット50−2、50−3におけるSV削減部51も同様の構成を採る。この図に示されるSV削減部51の基本構成としては、先の第2の実施形態における
図5および
図6と同様とされ、SV削減度設定部110は、削減度を独立して決定することができる。ただし、このSV削減度設定部110は、上記のように決定した削減度を削減度候補情報Srdcとして、統合SV削減度決定部52に対して出力するようにされている。
【0087】
統合SV削減度決定部52は、上記のようにSV削減部51−1〜51−8から入力された削減度候補情報Srdcのうちから1つを選択し、この選択した削減度をSV削減部51−1〜51−8に対して一律に設定すべき削減度として決定する。統合SV削減度決定部52は、上記のように決定した削減度を示す削減度指示情報SrdiをSV削減部51−1〜51−8に対して出力する。
【0088】
図13によると、SV削減度設定部110は、上記のように統合SV削減度決定部52から出力された削減度指示情報Srdiを入力するようにされている。SV削減度設定部110は、入力した削減度指示情報Srdiが示す値をSV簡約部120に対して設定する。これと同じ動作が、SV削減部51−2〜51−8においても実行される。これにより、SV削減ユニット50−1におけるSV削減部51−1〜51−8は、いずれも統合SV削減度決定部52により決定された同じ削減度にしたがってSV削減を行う。
【0089】
ここで、統合SV削減度決定部52が削減度を決定するアルゴリズムとしては、以下の例を想定することができる。つまり、統合SV削減度決定部52は、入力された削減度候補情報Srdcが示す削減度のうち、最もサポートベクター数を削減する度合いの低い削減度を選択する。具体的に、削減度が削減率であることを前提とした場合、削減率のうち、その値が最も大きいものを選択する。このように削減度を選択した場合には、いずれのSV削減部51−1〜51−8においてもサポートベクターの過剰な削減が行われないことになる。つまり、SV削減部51−1〜51−8のいずれについても識別性能の低下を生じさせないようにしたうえで有効にサポートベクター数を削減できる。
【0090】
[処理手順例]
図14は、第4の実施形態に対応して、1つのSV削減ユニット50におけるSV削減部51と統合SV削減度決定部52が実行する処理手順例を示している。まず、SV削減部51が実行するステップS501〜S506までの処理は、
図8のステップS201〜S206と同様となる。
【0091】
ただし、ステップS506において決定した削減度は、削減度候補として扱われる。そして、SV削減部51におけるSV削減度設定部110は、ステップS506により決定された削減度候補を示す削減度候補情報Srdcを、統合SV削減度決定部52に対して出力する(ステップS507)。
【0092】
SV削減度設定部110は、上記削減度候補情報Srdcの出力後において、統合SV削減度決定部52から出力された削減度指示情報Srdiを入力する。この削減度指示情報Srdiの入力に応じて、SV削減度設定部110は、削減度指示情報Srdiが示す値を削減度SrdとしてSV簡約部120に対して設定する(ステップS508)。
【0093】
また、統合SV削減度決定部52は、すべてのSV削減部51から出力された削減度候補情報Srdcが入力されるのを待機している(ステップS601−NO)。そして、統合SV削減度決定部52は、すべての削減度候補情報Srdcが入力されると(ステップS601−YES)、これら削減度候補情報Srdcのうちから1つの削減度を選択し、この選択した削減度を各SV削減部51に対して一律に設定すべき削減度として決定する(ステップS602)。次に、統合SV削減度決定部52は、決定された削減度を示す削減度指示情報SdriをSV削減部51の各々に対して出力する(ステップS603)。
【0094】
<学習装置が具現化されるコンピュータの構成例>
図15は、本実施形態の学習装置1を具現化するハードウェアの一例であるコンピュータ200の構成例を示している。この図に示すコンピュータ200は、CPU201、RAM202、記憶部203、入力インターフェース204、出力インターフェース205およびデータインターフェース206を備える。また、これらの部位はデータバス207により接続される。
【0095】
CPU201は、記憶部203に記憶される学習装置プログラム230を実行することにより、学習装置1としての動作を実現する部位である。
【0096】
RAM202は、主記憶装置として機能するもので、CPU201が実行すべきプログラムが記憶部203から読み出されて展開される。また、RAM202は、CPU201が演算処理を実行する際の作業領域として使用される。
【0097】
記憶部203は、補助記憶装置として機能するもので、CPU201により実行されるプログラムや各種データを格納する。同図においては、学習装置1に対応して記憶部203に記憶されているデータとして、学習データ11、サンプルデータ12、学習装置プログラム230が示されている。学習装置プログラム230は、学習装置1としての各種機能を実現するための記述が為されたプログラムである。なお、この記憶部203には、例えばハードディスクやフラッシュメモリなどの半導体記憶装置を採用することができる。
【0098】
入力インターフェース204は、例えばキーボードやマウスなどの操作デバイスをはじめとする入力デバイスを一括して示したものである。出力インターフェース205は、例えばディスプレイデバイス(表示部)やスピーカ(音声出力部)などの出力デバイスを一括して示したものである。
【0099】
データインターフェース206は、CPU201の制御に応じて、所定の1以上のデータインターフェース規格に対応して通信を実行する。例えば、学習データ11やサンプルデータ12などは、データインターフェース206を介して外部からコンピュータ200に転送させ、記憶部203に記憶させることができる。
【0100】
なお、本実施形態の学習装置1は、内部にコンピュータシステムを有している。そして、上述した学習の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0101】
また、各図における機能部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより学習を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0102】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。