JP6143521B2 - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP6143521B2
JP6143521B2 JP2013076455A JP2013076455A JP6143521B2 JP 6143521 B2 JP6143521 B2 JP 6143521B2 JP 2013076455 A JP2013076455 A JP 2013076455A JP 2013076455 A JP2013076455 A JP 2013076455A JP 6143521 B2 JP6143521 B2 JP 6143521B2
Authority
JP
Japan
Prior art keywords
value
function
information processing
classification
dimension
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013076455A
Other languages
English (en)
Other versions
JP2014203136A (ja
JP2014203136A5 (ja
Inventor
欣也 大佐
欣也 大佐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013076455A priority Critical patent/JP6143521B2/ja
Priority to US14/224,555 priority patent/US9547806B2/en
Publication of JP2014203136A publication Critical patent/JP2014203136A/ja
Publication of JP2014203136A5 publication Critical patent/JP2014203136A5/ja
Application granted granted Critical
Publication of JP6143521B2 publication Critical patent/JP6143521B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/245Classification techniques relating to the decision surface
    • G06F18/2453Classification techniques relating to the decision surface non-linear, e.g. polynomial classifier

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Nonlinear Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Description

本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
画像認識を始めとする様々な応用分野において、SVM(Support Vector Machine、サポートベクトルマシン)を用いた分類が用いられている。また、同様の分野において、SVR(Support Vector Regression、サポートベクトル回帰)を用いた回帰計算が用いられている。分類対象である入力ベクトルをx、サポートベクトルをxi (i=1, 2, ..., n)、ベクトルx及びyに対するカーネル関数をK(x, y)とするとき、SVMの分類関数f(x)は式(1)で表される。
Figure 0006143521
ここで、yiはxiに対応する教師ラベルであり、αi及びbは学習により決定されるパラメータである。
カーネル関数K(x, y)としては、線形カーネル、多項式カーネル、RBFカーネルなど様々な種類の関数が使われている。よく使われるカーネル関数として、非特許文献1に記載のintersection kernelのような、additive kernelと呼ばれるカーネル関数群がある。additive kernelは、式(2)で表される。
Figure 0006143521
ここで、xd及びydはそれぞれD次元ベクトルであるx及びyのd次元目の要素を表す。また、k(x, y)は2個のスカラ入力変数x及びyから出力値を計算する関数である。
非特許文献2には、additive kernelの具体的な例が記載されている。例えば、式(3)はintersection kernelについてのk(x, y)を、式(4)はχ2 kernelに対するk(x, y)を、それぞれ表す。
Figure 0006143521
Figure 0006143521
式(1)の通りに分類関数f(x)を計算すると、サポートベクトル毎にカーネル関数K(x,xi)が計算される。このため、サポートベクトルが多い場合には、何度もカーネル関数の計算及び得られた値とパラメータの積和演算を行う必要があり、演算時間が非常に長くなってしまう。
非特許文献1には、intersection kernelの演算式を変形し、さらに式変形で得られた非線形関数hi(s)を区分線形近似することで、演算量を減らし、演算時間を短くする技術が開示されている。
Subhransu Maji, Alexander C. Berg, Jitendra Malik, "Classification using Intersection Kernel Support Vector Machine is Efficient", In IEEE Conference on Computer Vision and Pattern Recognition, 2008. Andrea Vedaldi, Andrew Zisserman, "Efficient Additive Kernels via Explicit Feature Maps", In IEEE Conference on Computer Vision and Pattern Recognition, 2010.
非特許文献1で開示された技術によれば、入力ベクトルの各次元の要素に対して、次元毎に異なる非線形関数hi(s)が適用される。そして、非線形関数の出力値の総和を求めることで、分類関数が計算される。このように、非特許文献1の技術によれば、次元毎に異なる非線形関数hi(s)を用意しておく必要があり、より大きな記憶容量が必要となる。特に非線形関数hi(s)を区分線形近似で計算する場合には、次元の数に等しいルックアップテーブル(LUT、Lookup Table)が必要となるために、ルックアップテーブルを格納するためにより大きな記憶容量が必要であるという課題があった。また、非特許文献1で開示された技術は、intersection kernelを用いる場合を対象としたものであった。
本発明は、分類関数の計算において、演算量及び演算に用いるルックアップテーブルのサイズを削減することを目的とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。すなわち、
複数次元の入力ベクトルを取得する取得手段と、
複数変数の所定の関数を1変数の関数の積で近似するための当該1変数の関数の変数値と関数値との対応関係を示すルックアップテーブルを参照して、前記入力ベクトルの各次元要素値に対応する前記1変数の関数の関数値を導出する導出手段と、
前記入力ベクトルの各次元について、前記導出手段によって導出された関数値と、該次元に対応する、予め定められた係数との積を求める積算手段と、
前記入力ベクトルの各次元について前記積算手段が求めた積の合計を用いて算出した値を、前記ベクトルの分類を示す分類値として出力する出力手段と、
を備えることを特徴とする。
本発明によれば、分類関数の計算において、演算量及び演算に用いるルックアップテーブルのサイズを削減することを目的とする。
χ2 kernelについてのk(x, y)の理論値と近似値とのグラフ。 s(x)及びLUT値の計算手順を示すフローチャート。 s(x)の区分線形近似関数であるsapp(x)のグラフ。 実施例1に係る分類装置の例示的な構成図。 実施例2に係る回帰装置の例示的な構成図。 実施例1に係る分類装置が行う例示的な処理のフローチャート。 実施例4に係る分類装置の例示的な構成図。 実施例3に係る情報処理装置の例示的な構成図。 ルックアップテーブルを生成する情報処理装置の例示的な構成図。
実施例1に係る情報処理装置は、additive kernel SVM(サポートベクトルマシン)を用いた分類装置である。まず、分類関数f(x)の計算方法について説明する。
図1は、χ2 kernelに対するk(x, y)のグラフである。上述のように、k(x, y)は2個のスカラ入力変数x及びyから出力値を計算する関数である。図1において、実線は式(4)で示されるk(x, y)の値を示す。以下の説明では、入力ベクトルxの各要素の値は、0〜1の範囲に収まるよう正規化されているものとする。しかしながら、入力ベクトルの各要素の値が0〜1の範囲に収まるように正規化されていることは必須ではない。例えば、入力ベクトルの各要素の値は-1〜1に正規化されていてもよい。
図1に示すように、χ2 kernelをはじめとするカーネル関数についてのk(x, y)の形状は、通常x, yに関して対称である。ある程度の誤差を許容する場合には、k(x, y)は、入力変数毎の関数(変数分離可能な関数)の積として近似することができる。より具体的にはk(x, y)は、x及びyに共通の一変数関数s(x)を用いて、式(5)に示すように近似することができる。
Figure 0006143521
図1において、破線は、式(5)においてs(x) = x0.5644とした場合の、k(x, y)の近似値である。このように、関数s(x)を用いて、式(4)のk(x, y)の形状をある程度の誤差で近似できていることがわかる。
k(x, y)を用いたadditive kernelに対する分類関数f(x)は、式(5)の近似を用いて、式(6)のように表すことができる。式(6)は、式(1)に式(2)及び式(5)を代入し、式変形することで得られる。この際、式(2)のベクトルy及びベクトルyのd次元目の要素ydとして、ベクトルxi及びベクトルxiのd次元目の要素xidが用いられる。
Figure 0006143521
ここで、wdは式(7)に従って計算可能な係数である。
Figure 0006143521
式(5)の近似を用いる場合、分類関数f(x)の値は、式(6)に示すように、入力ベクトルxの各次元の要素に対して関数s(x)を適用した後、係数wdとの積和演算を行うことにより得られる。このため、式(5)の近似を用いずに式(1)に従って分類関数f(x)を計算する場合と比べ、演算量を大幅に減らすことができる。演算量を減少させる効果は、サポートベクトル数nが大きな場合に特に顕著である。s(x)は通常非線形な関数であるが、ルックアップテーブル(LUT、lookup table)を用いた区分線形近似により、s(x)を求める際の演算量を抑えることができる。このルックアップテーブルは、変数xと関数値s(x)との対応関係を示し、この対応関係に従って入力値を変換値へと変換する。例えば、関数s(x)が式(8)のべき乗関数である場合には、ルックアップテーブルは入力値のべき乗値を変換値として記録している。
次に、additive kernelの関数k(x, y)が与えられた場合にs(x)を決定する方法、及びs(x)を区分線形近似により計算するために用いられるルックアップテーブルの生成方法について、図2を参照して説明する。図2に示す算出方法は、例えば、図9に示す情報処理装置900によって行われうる。
ステップS201において取得部910は、additive kernelを構成する関数k(x, y)を取得する。例えば取得部910は、ユーザが入力した、関数k(x, y)を示すデータを取得することができる。k(x, y)は、式(3)及び(4)に示すように数式として与えられてもよいし、関数値をサンプリングして得られた数値列として与えられてもよい。
ステップS202において選択部920は、式(5)の近似に用いる関数s(x)を選択する。例えば選択部920は、ユーザが入力した、関数s(x)を指定するデータを取得することにより、この選択を行うことができる。関数s(x)の例としては、パラメータβを含む式(8)のべき乗関数や、パラメータγを含む式(9)の2次関数が挙げられる。しかしながら、近似精度が十分であれば、他の関数を用いることもできる。
Figure 0006143521
Figure 0006143521
ステップS203において最適化部930は、s(x)・s(y)がk(x, y)を最もよく近似するように、関数s(x)のパラメータを最適化する。最適化方法としては、一般的なカーブフィッティングの技術を用いることができる。例えば最適化部930は、s(x)・s(y)とk(x, y)との2乗誤差を最小化するように、最小2乗法を用いてs(x)のパラメータ値を決定することができる。具体的な一例としては、式(8)のs(x)を用いて式(4)で与えられるk(x, y)を近似する場合、最小2乗法による最適なパラメータとしてβ=0.5644が得られうる。こうして、ステップS203において最適化部930は関数s(x)を決定する。
ステップS204において演算部940は、ステップS203において決定された関数s(x)を区分線形近似により計算するために用いられるルックアップテーブルを生成する。以下で図3を参照して、ルックアップテーブルを構成するLUT値の算出方法について説明する。図3には、関数s(x)と、s(x)を近似する関数sapp(x)との例が示されている。本実施例では、入力ベクトルの要素の値域がN分割され、それぞれの分割域について関数s(x)が直線近似される。図3の例においては、関数sapp(x)は複数の線分により構成されており、それぞれの線分は、N分割された値域のそれぞれにおいて関数s(x)を近似している。図3において、それぞれの線分の端点は黒丸で表されており、その座標は(i/N, s(i/N))及び((i+1)/N, s((i+1)/N))で表される。
sapp(x)の値は、対応する分割域、すなわちxを含む分割域、においてs(x)を近似する線分の端点を参照して求めることができる。本実施例において演算部940は、図3において黒丸で示される各線分の端点におけるs(x)の値を、LUT値として算出する。
より具体的には、i番目(0≦i≦N)のLUT値であるLUT[i]は、式(10)により計算できる。
Figure 0006143521
LUT値が式(10)で表される場合、式(11)の範囲にある入力値x0に対応するsapp(x0)の値は、i番目及びi+1番目のLUT値であるLUT[i]及びLUT[i+1]を用いて、式(12)により計算できる。
Figure 0006143521
Figure 0006143521
演算部940はそして、得られたLUT値を格納部(不図示)に格納する。こうして生成された一次元のルックアップテーブルには、N+1個のLUT値が格納される。このN+1個のLUT値を用いることにより、関数s(x)をN区間に分けて区分線形近似することができる。区間数Nは必要な近似精度、又は使用可能なルックアップテーブルのサイズにより決めればよい。例えば、Nの値は8、16、32、64、又は128でありうる。
本実施例においては、ステップS203で関数s(x)のパラメータを最適化した後に、ステップS204でLUT値を算出し、ルックアップテーブルを生成した。しかしながら、LUT値が関数s(x)のパラメータを表していてもよい。例えば、各分割域に対応するLUT値が、分割域における線分の傾き及び切片を表していてもよい。この場合、ステップS203におけるパラメータの最適化によりLUT値が決定されるため、ステップS204は不要である。
また、ステップS203においては、s(x)・s(y)がk(x, y)を最もよく近似するようにパラメータの最適化を行った。しかしながら、関数の近似精度を最適化する代わりに、SVM全体の分類性能が最適となるように、学習によりパラメータの最適化を行ってもよい。この場合、学習によりカーネルのパラメータを決定する技術が適用できる。
本実施例において演算部940は図3の方法でLUT値を算出したが、LUT値の算出方法はこの方法に限られない。例えば、入力ベクトルの要素の値域は均等にN分割されなくてもよく、異なった大きさに分割されてもよい。さらに、各分割域においてs(x)を近似する線分を上述の方法で求める必要はなく、例えば最小2乗法によりs(x)を近似する線分を求めてもよい。さらには、区分近似を区分線形関数(1次関数)により行う必要はなく、区分定数関数による近似(区分定数近似)や、区分2次関数による近似などの、他の近似方法を用いてもよい。この場合、各分割域についての近似値の計算に必要なパラメータがルックアップテーブル上に保持される。この場合であっても、例えば後述する補間演算部402は、ルックアップテーブル上に保持されているパラメータを参照することにより、s(x)の近似値を算出することができる。
次に、実施例1に係る情報処理装置である、分類装置の構成及びその処理について説明する。本実施例に係る分類装置の構成を図4に示し、本実施例に係る分類装置が行う処理のフローチャートを図6に示す。分類装置401は、以上の手順で得られたルックアップテーブルと、式(7)に従って予め計算されたwdとを用いて入力ベクトルを分類する。より具体的には、分類装置401は入力ベクトルxを取得し、ルックアップテーブルを参照して、分類関数f(x)の値に相当する分類値を算出する。この分類値は、入力ベクトルの分類を示すものであり、分類装置401はこの分類値に従って入力ベクトルを分類し、分類結果を出力する。
分類装置401は、補間演算部402、LUT403、積和演算部404、係数保持部405、及び分類判定部406を備える。
ステップS601において補間演算部402は、複数次元の入力ベクトルxを取得する(取得手段)。本実施例において入力ベクトルはD次元のベクトルであり、(x1, x2, ..., xD)で表される。補間演算部402は、入力ベクトルxをユーザ入力として取得してもよいし、他の装置から取得してもよい。
ステップS602において補間演算部402は、入力ベクトルの各次元の要素値に対応する変換値を、LUT403を参照して、補間演算により算出する。より具体的には補間演算部402は、LUT403を参照して、入力ベクトルの各次元の要素xd(1≦d≦D)に対応する近似関数値sapp(xd)を算出する。LUT403は、s(x)を補間演算、例えば区分線形近似により計算するために用いられるルックアップテーブルであり、例えば式(10)に示す値を保持するルックアップテーブルである。このLUT403は、この要素値と変換値(近似関数値sapp(xd))との対応関係を示している。一例としてのLUT403は、例えば図2に示す方法に従って算出されたLUT値を保持している。補間演算部402は、LUT403を参照して、式(12)に従ってsapp(xd)を算出する。LUT403は、分類装置401が有する格納部(第1の格納手段、不図示)に格納されている。
ステップS603において積和演算部404は、次元毎に、補間演算部402が出力した近似関数値sapp(xd)(変換値)と係数保持部405から読み出した係数wdとの積を算出する(積算手段)。また積和演算部404は、各次元について算出した積を累積することにより、各次元について算出した積の合計を求める。
ステップS604において積和演算部404は、ステップS603で得られた累積値にオフセットを示すパラメータ値bを加算する。ステップS603及びステップS604で行われる演算により、以下の式(13)に示す分類関数f(x)の値に相当する分類値が得られ、積和演算部404はこの分類値を分類判定部406へと出力する(出力手段)。
Figure 0006143521
係数保持部405は、入力ベクトルの各次元に対応する係数wdとオフセットを示すパラメータbとを保持している。係数wdは、式(7)に従って予め計算され、係数保持部405のような格納部(第2の格納手段)に格納されている。もっとも、LUT403と、係数wd及びパラメータbとが、同じ格納部に格納されていてもよい。
上述のように係数wdは、学習により決定されるパラメータαi(学習結果)、次元dについてのサポートベクトルxiの要素値、及び教師ラベルyiから算出される。また、パラメータbも学習により決定された学習結果である。これらの値は、従来技術に従って算出することができる。積和演算部404は、これらの係数及びパラメータを係数保持部405から読み出して使用する。
ステップS605において分類判定部406は、ステップS604において積和演算部404が算出した分類値を所定の閾値と比較する。閾値としては、通常は0が用いられるが、これに限定されるわけではない。そしてステップS606において分類判定部406は、ステップS406における比較結果、すなわち閾値と分類関数f(x)の値との大小関係を、入力ベクトルxについての分類結果として出力する(分類手段)。
このように、本実施例に係る分類装置401によれば、近似を行わずに式(1)及び(2)をそのまま用いる場合と比べ、additive kernel SVMの分類関数f(x)の値を得る際の演算量を大幅に減らすことができる。また、非特許文献1の方法では次元毎に異なるルックアップテーブルが必要であったのに対し、本実施例に係る分類装置401は、次元毎に共通である1種類のルックアップテーブルを用いて分類関数f(x)の値を得ることができる。したがって、分類装置401が保持するルックアップテーブルの総サイズを大幅に減らすことができる。また、非特許文献1の方法はintersection kernelに対して適用される技術である。一方で本実施例に係る分類装置401は、式(5)の近似が許容できるのであれば、intersection kernelに限られない様々なadditive kernelを用いた分類において汎用的に用いることができる。
以下に、実施例2に係る情報処理装置である、additive kernel SVR(サポートベクトル回帰)を用いて回帰値を算出する回帰装置について説明する。分類関数f(x)及びその近似方法は実施例1と同様であるため、説明を省略する。
実施例2に係る回帰装置501の構成を図5に示す。回帰装置501は、入力ベクトルxを取得し、分類関数f(x)の値を取得して、得られた値を回帰値として出力する。回帰装置501の構成は、実施例1の分類装置401から分類判定部406を取り除いたものに相当し、回帰装置501は、積和演算部404が算出した分類値を回帰値として出力する。補間演算部402、LUT403、積和演算部404、及び係数保持部405の構成及び動作は実施例1と同じであるため、説明を省略する。
実施例2によれば、実施例1と同様の原理により、SVRを計算する回帰装置についても、演算量及びルックアップテーブルのサイズを削減することができる。
上述のように、実施例1に係る分類装置と実施例2に係る回帰装置との構成上の差異は、分類判定部406の有無だけである。したがって、実施例1に係る分類装置を、入力ベクトルxに対する回帰値を算出する回帰装置として用いることもできる。この場合、分類判定部406を用いるか否かを制御する切り替え部(不図示)を、実施例1に係る分類装置が有していてもよい。このような切り替え部を設けることにより、分類装置が分類結果又は回帰値を出力するように、実施例1に係る分類装置の動作を切り替えることができる。
実施例3では、汎用の情報処理装置を用いて、実施例1に係る分類装置を実現する方法について説明する。分類関数f(x)及びその近似方法は実施例1と同様であるため、説明を省略する。
実施例3に係る情報処理装置のハードウェア構成の一例を図8に示す。なお、図8には、最も典型的な情報処理装置である、パーソナルコンピュータの構成を示している。しかしながら本実施例に係る情報処理装置は、例えば、組み込みデバイス、デジタルカメラ、又はハンドヘルドデバイスなどであってもよい。
CPU801は、図6に示すフローチャートに対応する処理手順を含む各種プログラムを実行し、情報処理装置が有する各部の制御を行う。ROM802は、不揮発性のメモリであり、情報処理装置の初期動作において必要なプログラムなどを記憶する。RAM803は、CPU801のワークエリアを提供し、2次記憶装置804から読み出されたプログラムなどを一時記憶する、揮発性のメモリである。2次記憶装置804は、CPU801が使用するプログラムを記録する。より具体的には、2次記憶装置804のような記憶媒体からプログラムをRAM803へと読み出し、RAM803へと読み出されたコンピュータプログラムに従ってCPU801が動作することにより、図4に示す各部の機能及び図6に示す各処理が実現される。
各デバイス801〜804は、システムバス805を通じて情報をやり取りする。また、情報処理装置は、システムバス805を介して、ディスプレイ806、キーボード807、マウス808、及びI/Oデバイス809と接続されている。ディスプレイ806は、ユーザに処理結果や処理の途中経過などの情報を表示するために使用できる。キーボード807及びマウス808は、ユーザからの指示を情報処理装置へと入力するために用いられる。I/Oデバイス809としては、外部との通信のインタフェースとなる通信装置、カメラ・スキャナなどの入力装置、又はプリンタなどの出力装置などが挙げられる。
実施例3によれば、ソフトウェアプログラムを用いて入力ベクトルxの分類を行う場合であっても、演算量及びルックアップテーブルのサイズを削減することができる。ルックアップテーブルのサイズが小さくなると、ソフトウェアプログラムの実行時にCPUキャッシュのヒット率が高まるため、ルックアップテーブルのサイズが大きな場合と比較して実行速度が向上する。
実施例3では、汎用の情報処理装置を用いて実施例1に係る分類装置を実現する方法について説明した。しかしながら、図6のステップS605の処理を行わず、積和演算部404が算出した分類値を回帰値として出力することにより、SVRの計算を行うこと、すなわち実施例2に係る回帰装置を実現することも可能である。
以下に、実施例4に係る情報処理装置である、additive kernel SVMを用いた分類装置について説明する。実施例1では、入力ベクトルの各次元に対して共通の関数k(x, y)及びsapp(x)を用いた。一方で実施例4では、複数の関数kj(x, y)及びsj app(x)を使い分ける。
ここで、D次元の入力ベクトルの各次元を示すD個の次元インデックスd (d=1, 2, ..., D)を、M個の重ならない集合Sj (j=1, 2, ..., M)に分割する。ここで、後述するルックアップテーブルの数を削減する観点から、通常は1≦M<Dである。次元インデックスdが集合Sjに属する場合は、additive kernelを構成する関数k(x, y)として、kj(x, y)を用いる。ここでそれぞれのjについてのkj(x, y)としては、異なる関数を用いることができる。
それぞれの集合Sjに属する次元ごとに、カーネル関数Kj(x, y)(j=1, 2, ..., M)が定義されているものと考える。この場合、Kj(x, y)は式(14)で表すことができる。
Figure 0006143521
Kj(x, y)の線形和を新たなカーネル関数とすると、K(x, y)は式(15)で表すことができる。
Figure 0006143521
ただし、重み係数βjは、次の条件を満たす。
Figure 0006143521
Figure 0006143521
式(15)〜(17)の形で表されるカーネル関数については、Multiple Kernel Learning技術による学習が可能である。以下では、学習により分類関数f(x)の計算に必要な係数が求まっているものとする。
それぞれの関数kj(x, y)については、関数kj(x, y)を近似するために用いる近似関数sj(xd)を、実施例1と同様に求めることができる。また、関数sj(xd)を近似する近似関数sj app(x)も、実施例1と同様に求めることができる。さらに、近似関数sj app(x)を計算するために用いられるルックアップテーブルLUTj(j=1 ,2 , ..., M)も、実施例1と同様に生成することができる。
この場合の分類関数f(x)は、式(20)の近似を用いて、式(18)及び(19)のように表すことができる。式(18)及び(19)は、実施例1の式(6)と同様に、式(1)に式(14)、(15)、及び式(5)を代入し、式変形することで得られる。
Figure 0006143521
Figure 0006143521
Figure 0006143521
LUTjは、それぞれのjについて、sj app(xd)を計算するために必要な値を保持するルックアップテーブルである。こうして生成されたそれぞれのルックアップテーブルLUTjには、N+1個のLUT値が格納される。このN+1個のLUT値を用いることにより、関数sj(x)をN区間に分けて区分線形近似することができる。ルックアップテーブルの総数はM個(図7では4個)である。もっとも、全てのLUTjについて区間数Nが同一である必要はない。
以上のように、D個の次元のそれぞれには、M個のルックアップテーブルのうち何れかが対応付けられる。より具体的には、次元インデックスdが集合Sjに属する場合には、d番目の次元にはLUTjが対応付けられる。
以下に、実施例4に係る情報処理装置である、分類装置の構成及びその処理について説明する。本実施例に係る分類装置の構成を図7に示す。分類装置701は、補間演算部702、M個のルックアップテーブル703-1、703-2、703-3、703-4、積和演算部404、係数保持部405、及び分類判定部406を備える。
分類装置701は、上述のように得られたルックアップテーブルと、予め計算されたwdとを用いて入力ベクトルを分類する。実施例4で行われる処理は、図6に示される実施例1の処理と類似しており、以下では異なる点について説明する。本実施例においては、使用する関数kj(x, y)関数の種類は4種類(M=4)であるものとする。しかしながら本実施例の方法はM=4の場合に限定されるわけではない。
ステップS601において補間演算部702は、実施例1の補間演算部402と同様に、入力ベクトルxを取得する。
ステップS602において補間演算部702は、入力ベクトルxの各次元の要素xdについて、どのkj(x, y)関数を用いるかを判定する。言い換えれば、補間演算部702は、入力ベクトルxの各次元の要素xdについての次元インデックスdが、どの集合Sjに属するのかを判定する。この判定は、例えば、次元インデックスdがどの集合Sjに属するのかを示すデータを記憶している記憶部(不図示)を参照して行うことができる。
次に補間演算部702は、入力ベクトルxの各次元の要素xdについて、対応するルックアップテーブル703-jを参照して、近似関数値sapp(xd)を算出する。ルックアップテーブル703-jは、それぞれLUTjに対応し、LUTjのLUT値を格納している。また、M個のルックアップテーブル703-jは、分類装置701が有する格納部(不図示)に格納されている。ルックアップテーブル703-jを用いた近似関数値sapp(xd)の算出は、実施例1と同様に補間演算により行うことができる。
ステップS603において積和演算部404は、次元毎に、補間演算部702が出力した近似関数値sj app(xd)と係数保持部405から読み出した係数wdとの積を算出し、各次元について得られた積を累積する。ステップS604において積和演算部404は、ステップS603で得られた累積値にオフセットを示すパラメータ値bを加算する。ステップS603及びS304で行われる演算により、式(18)に示す分類関数f(x)の値に相当する分類値が得られる。
係数保持部405は、入力ベクトルの各次元に対応する係数wdとオフセットを示すパラメータbとを保持している。これらの係数及びパラメータは、上述のように、従来技術に従って学習により算出することができる。
ステップS605及びステップS606において分類判定部406は、実施例1と同様に、ステップS604で得られた分類値を閾値と比較し、入力ベクトルxについての分類結果を出力する。
このように実施例4に係る分類装置701によれば、M個のルックアップテーブル703-jを用いることで、次元毎に複数のkj(x, y)関数を使い分けることができる。このため、実施例1と比べて、より分類精度を向上させることができる。実施例4では複数個(M個)のルックアップテーブルが使用されるが、Mの値を入力ベクトルの次元数Dよりも小さくすることにより、非特許文献1の方法を用いる場合よりもルックアップテーブルの総サイズを小さくすることができる。
実施例4においては分類装置について説明したが、実施例4と同様の構成を用いて、実施例2と同様にSVRを計算する回帰装置を実現することもできる。

Claims (13)

  1. 複数次元の入力ベクトルを取得する取得手段と、
    複数変数の所定の関数を1変数の関数の積で近似するための当該1変数の関数の変数値と関数値との対応関係を示すルックアップテーブルを参照して、前記入力ベクトルの各次元要素値に対応する前記1変数の関数の関数値を導出する導出手段と、
    前記入力ベクトルの各次元について、前記導出手段によって導出された関数値と、該次元に対応する、予め定められた係数との積を求める積算手段と、
    前記入力ベクトルの各次元について前記積算手段が求めた積の合計を用いて算出した値を、前記ベクトルの分類を示す分類値として出力する出力手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記導出手段は、前記入力ベクトルの各次元について共通の前記ルックアップテーブルを参照することを特徴とする、請求項1に記載の情報処理装置。
  3. 前記入力ベクトルはD次元のベクトルであり、
    前記導出手段はM個(1≦M<D)の前記ルックアップテーブルを有しており、前記D個の次元のそれぞれは、前記M個のルックアップテーブルの何れかに対応しており、
    前記導出手段は、前記入力ベクトルの各次元について、該次元に対応する前記ルックアップテーブルを参照して前記関数値を導出する
    ことを特徴とする、請求項1に記載の情報処理装置。
  4. 前記ルックアップテーブルは、入力値のべき乗値を該入力値に対応する関数値として記録していることを特徴とする、請求項1乃至3の何れか1項に記載の情報処理装置。
  5. 前記ルックアップテーブルは、式(2)で表されるカーネル関数に含まれている、2個のスカラ入力変数x及びyに対する値を与える関数k(x, y)を、一変数関数s(x)とs(y)との積で近似した場合における変数xと関数値s(x)との対応関係を示し、
    式(2)において、xdはベクトルxのd次元目の要素であり、ydはベクトルyのd次元目の要素である
    ことを特徴とする、請求項1乃至4の何れか1項に記載の情報処理装置。
    Figure 0006143521
  6. 各次元についての前記係数は、該次元についてのサポートベクトルの要素値と、学習結果と、教師ラベルとによって算出されることを特徴とする、請求項1乃至5の何れか1項に記載の情報処理装置。
  7. 前記導出手段は、前記ルックアップテーブルに格納された値を用いた区分線形近似により前記関数値を導出することを特徴とする、請求項1乃至6の何れか1項に記載の情報処理装置。
  8. 前記導出手段は、前記ルックアップテーブルに格納された値を用いた区分定数近似により前記関数値を導出することを特徴とする、請求項1乃至6の何れか1項に記載の情報処理装置。
  9. 前記情報処理装置は、サポートベクトルマシンにより前記入力ベクトルを分類する分類装置であることを特徴とする、請求項1乃至8の何れか1項に記載の情報処理装置。
  10. 前記出力手段が出力した値を所定の閾値と比較し、該比較結果を前記入力ベクトルの分類結果として出力する分類手段をさらに備えることを特徴とする、請求項1乃至9の何れか1項に記載の情報処理装置。
  11. 前記情報処理装置は、サポートベクトル回帰による回帰値として前記分類値を算出することを特徴とする、請求項1乃至8の何れか1項に記載の情報処理装置。
  12. 複数次元の入力ベクトルを取得する取得工程と、
    複数変数の所定の関数を1変数の関数の積で近似するための当該1変数の関数の変数値と関数値との対応関係を示すルックアップテーブルを参照して、前記入力ベクトルの各次元要素値に対応する前記1変数の関数の関数値を導出する導出工程と、
    前記入力ベクトルの各次元について、前記導出工程で導出された関数値と、該次元に対応する、予め定められた係数との積を求める積算工程と、
    前記入力ベクトルの各次元について前記積算工程で求めた積の合計を用いて算出した値を、前記ベクトルの分類を示す分類値として出力する出力工程と、
    を備えることを特徴とする情報処理方法。
  13. コンピュータを、請求項1乃至11の何れか1項に記載の情報処理装置の各手段として機能させるための、コンピュータプログラム。
JP2013076455A 2013-04-01 2013-04-01 情報処理装置、情報処理方法、及びプログラム Active JP6143521B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013076455A JP6143521B2 (ja) 2013-04-01 2013-04-01 情報処理装置、情報処理方法、及びプログラム
US14/224,555 US9547806B2 (en) 2013-04-01 2014-03-25 Information processing apparatus, information processing method and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013076455A JP6143521B2 (ja) 2013-04-01 2013-04-01 情報処理装置、情報処理方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2014203136A JP2014203136A (ja) 2014-10-27
JP2014203136A5 JP2014203136A5 (ja) 2016-05-26
JP6143521B2 true JP6143521B2 (ja) 2017-06-07

Family

ID=51621898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013076455A Active JP6143521B2 (ja) 2013-04-01 2013-04-01 情報処理装置、情報処理方法、及びプログラム

Country Status (2)

Country Link
US (1) US9547806B2 (ja)
JP (1) JP6143521B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6143521B2 (ja) * 2013-04-01 2017-06-07 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US10832159B2 (en) 2014-12-30 2020-11-10 Battelle Memorial Institute Fast efficient evaluation of messages on automotive networks using look-up tables
WO2016108961A1 (en) * 2014-12-30 2016-07-07 Battelle Memorial Institute Anomaly detection for vehicular networks for intrusion and malfunction detection
KR101704736B1 (ko) * 2015-04-13 2017-02-08 연세대학교 산학협력단 다단계의 부분 분류기를 이용한 서포트 벡터 머신 기반 데이터 분류 장치 및 그 방법
CN108197396A (zh) * 2018-01-09 2018-06-22 国网福建省电力有限公司 一种基于pso-svm的高压隔离开关过热状态预测方法
US20210200539A1 (en) * 2019-12-28 2021-07-01 Intel Corporation Generic linear unit hardware accelerator
WO2024009371A1 (ja) * 2022-07-04 2024-01-11 日本電信電話株式会社 データ処理装置、データ処理方法、及びデータ処理プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2195110A1 (en) * 1994-07-14 1996-02-01 Stephen G. Johnson Method and apparatus for compressing images
GB2453263A (en) * 2006-05-16 2009-04-01 Douglas S Greer System and method for modeling the neocortex and uses therefor
US8005862B2 (en) * 2008-03-20 2011-08-23 Yahoo! Inc. Classifying content resources using structured patterns
JP2010086466A (ja) * 2008-10-02 2010-04-15 Toyota Central R&D Labs Inc データ分類装置及びプログラム
WO2011156001A1 (en) * 2010-06-07 2011-12-15 Sti Medical Systems, Llc Versatile video interpretation,visualization, and management system
JP6143521B2 (ja) * 2013-04-01 2017-06-07 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
JP2014203136A (ja) 2014-10-27
US20140297707A1 (en) 2014-10-02
US9547806B2 (en) 2017-01-17

Similar Documents

Publication Publication Date Title
JP6143521B2 (ja) 情報処理装置、情報処理方法、及びプログラム
Lee et al. Proximal Newton-type methods for convex optimization
KR20210129031A (ko) 모델 압축 방법, 이미지 처리 방법 및 장치
Lampe et al. Large-scale Tikhonov regularization via reduction by orthogonal projection
US9552408B2 (en) Nearest neighbor clustering determination and estimation algorithm that hashes centroids into buckets and redistributes vectors between clusters
Lin et al. Online learning algorithms can converge comparably fast as batch learning
US11615515B2 (en) Superpixel merging
WO2014010263A1 (ja) 画像処理装置及び画像処理方法
JP6937508B2 (ja) 画像処理システム、評価モデル構築方法、画像処理方法及びプログラム
JP5820236B2 (ja) 画像処理装置及びその制御方法
KR101556603B1 (ko) 랭크 정보를 이용한 영상 분리 장치 및 그 방법
Bajaj et al. Reduction of memory footprint and computation time for embedded Support Vector Machine (SVM) by kernel expansion and consolidation
JP2010086466A (ja) データ分類装置及びプログラム
US20220222042A1 (en) Computer-readable recording medium storing information processing program, information processing method, and information processing device
JP6213665B2 (ja) 情報処理装置、及び、クラスタリング方法
US11288534B2 (en) Apparatus and method for image processing for machine learning
Du et al. A selective linearization method for multiblock convex optimization
JP5083162B2 (ja) 画像データ判定装置、画像データ判定システム、及びプログラム
US10783218B2 (en) Variable group calculation apparatus, variable group calculation method, variable group calculation program, and data structure
Wipf et al. Sparse estimation using general likelihoods and non-factorial priors
JP2016001387A (ja) 画像分類前処理装置、画像分類装置、画像分類前処理方法、画像分類方法及びプログラム
US8760327B2 (en) Coordinate compression using polynomials
JP6361195B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
KR102222256B1 (ko) 데이터를 분류하는 장치, 방법 및 컴퓨터 프로그램
US20240135750A1 (en) Initializer for circle distribution for image and video compression and posture detection

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160401

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170509

R151 Written notification of patent or utility model registration

Ref document number: 6143521

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151