JP6700843B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP6700843B2 JP6700843B2 JP2016031375A JP2016031375A JP6700843B2 JP 6700843 B2 JP6700843 B2 JP 6700843B2 JP 2016031375 A JP2016031375 A JP 2016031375A JP 2016031375 A JP2016031375 A JP 2016031375A JP 6700843 B2 JP6700843 B2 JP 6700843B2
- Authority
- JP
- Japan
- Prior art keywords
- input vector
- coefficient
- cluster
- calculation
- information processing
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、精度の低下を抑えつつ、演算処理の負担を軽減しつつ、分類関数を演算することを目的とする。
SVMの分類関数の演算量を削減するための技術には、例えば、以下のようなものがある。
分類対象の入力ベクトルをx、サポートベクトルをxi(i=1、2、・・・、N)、ベクトルx、yに対するカーネル関数をK(x、y)とすると、SVMの分類関数f(x)は式1で表される。
カーネル関数K(x、y)としては、様々な種類の関数が利用されている。例えば、カーネル関数K(x、y)として、式2に示す多項式カーネルが利用されている。
多項式カーネルSVMの分類関数f(x)を、式1、式2、式3を用いて式通りに計算すると、ベクトルの次元数やサポートベクトル数Nの増加に伴い、演算回数が非常に増加するという問題がある。そこで、演算量を減らすための計算上の工夫を開示する技術がある。なお、以下の説明では、数式の複雑化を避けるため、2次多項式カーネル(p=2)を例に説明する。
多項式カーネルSVMの演算量を減らすための第1の技術は、特許文献1、特許文献2に開示されているように、式2の多項式を展開して、式1のサポートベクトルに関する和を予め計算しておく方法である。具体的には、式2を以下の式4のように展開した後に、式1に代入し、式変形を行うことで式5を得る方法である。
第1の技術を用いた上で、更に演算量を減らすための第2の技術は、展開後の係数の対称性を利用するものである。係数Anmは、式9に示すような対称性をもつため、対称な項の演算をまとめることで、式10のようにxnxmの項に関する和をとる範囲を減らすことができる。
第2の技術を用いた上で、さらに演算量を減らすための第3の技術は、式10の演算順序を変更して乗算回数を減らすものである。式10を式12のように変形して計算することにより、図1に示すように、乗算・加算回数を10300回まで減らすことができる。
例えば、入力ベクトル次元数D=100ならば、分類関数の計算には10300回の乗算・加算が必要となるが、演算回数を更に削減し、演算処理の負担を軽減したいという要望がある。演算回数は、特にDが大きくなってくると、D2に比例して増加することになる。
一方、第4の技術により、入力ベクトルの次元削減を行った場合、第1〜第3までの技術を用いた場合よりも、演算回数を更に減らすことができる。しかし、精度を向上させるために重要なベクトル要素を削ってしまう場合があり、分類処理、回帰処理等の精度が低下するという問題がある。
本実施形態では、精度を向上させるために重要なベクトル要素の削減量を抑えることで、分類処理、第4の技術と比べて回帰処理等の精度の低下を抑えつつ、分類関数の演算量を削減する方法について説明する。
情報処理装置301は、CPU601、ROM602、RAM603、二次記憶装置604、を含む。CPU601、ROM602、RAM603、二次記憶装置604、は、システムバス605を介して、相互に接続されており、相互に情報のやり取りを行う。
CPU601は、図5、図7に示すフローチャートに対応する処理手順を含む各種プログラムを実行し、情報処理装置301の各部の制御を行う中央演算装置である。ROM602は、不揮発性のメモリであり、情報処理装置を初期動作させる際に必要なプログラム等を記憶する。RAM603は、CPU601に対してワークエリアを提供し、二次記憶装置604から読み出されたプログラム等を一時記憶する。二次記憶装置604は、CPU601が実行するプログラムや各種設定データ等を記憶する記憶装置である。
また、情報処理装置301は、システムバス605を介して、ディスプレイ606、キーボード607、マウス608、I/Oデバイス609と接続されている。ディスプレイ606は、処理結果や処理の途中経過等の情報を表示し、これらの情報をユーザに提示する表示装置である。キーボード607とマウス608とは、ユーザが指示を情報処理装置301に入力するのに用いられる入力装置である。I/Oデバイス609は、ネットワークを通じて外部と通信する通信装置との接続や、カメラ・スキャナ等の入力装置との接続、又はプリンタ等の出力装置との接続等に利用されるデバイスである。
CPU601が、ROM602又は二次記憶装置604に記憶されたプログラムに基づき処理を実行することによって、図3で後述する機能及び図5、図7で後述するフローチャートの処理が実現される。
並べ替え部302は、入力された入力ベクトルの各要素や分類関数の係数を、後述する図4(b)に示すように、同一のクラスタに属する要素が連続するように並べ替えて、入力ベクトル格納部303や係数格納部309等に格納する。
入力ベクトル格納部303は、並べ替え部302により、要素を並べ替えられた入力ベクトルを格納する。入力ベクトル格納部303は、二次記憶装置604等により構成される。入力ベクトル格納部303に格納された入力ベクトルは、入力ベクトル読み出し部304により複数回読みだされる。入力ベクトル格納部303は、入力ベクトルを格納する第1の格納部の一例である。
入力ベクトル読み出し部304は、クラスタ制御部307の指示に従って、演算部305による分類関数の演算に必要な入力ベクトルの要素を入力ベクトル格納部303から複数回、読み出し、演算部305に渡す。
係数格納部309は、分類関数の演算に必要な係数を格納している。係数格納部309は、二次記憶装置604等により構成される。係数格納部309は、多項式カーネルを展開して得られる係数を格納する第2の格納部の一例である。係数格納部309は、後述する式15、16の演算に必要な係数Anm、A'nm、Bn、C等の情報を格納する。
演算部305は、クラスタ制御部307の指示に従って、入力ベクトル読み出し部304から渡されたデータと係数読み出し部308から渡された係数とに基づいて、分類関数の演算の中間データを演算し、中間データ格納部310に格納する。また、演算部305は、入力ベクトル読み出し部304から渡されたデータと、係数読み出し部308から渡された係数と、中間データ格納部310に格納される中間データ値と、に基づいて、分類関数の演算を実行する。
中間データ格納部310は、演算部305により演算された中間データを格納する。中間データ格納部310は、二次記憶装置604等により構成される。中間データ格納部310は、中間データを格納する第3の格納部の一例である。中間データ格納部310は、後述する式16を用いて、演算部305により演算されるgn(x)の値を中間データとして格納する。
判定部306は、演算部305により演算された分類関数の値に基づいて、分類判定を行い、分類結果を出力する。
クラスタ制御部307は、入力ベクトル読み出し部304、係数読み出し部308、演算部305に対して、分類関数の中間データを演算するよう指示を出す。そして、クラスタ制御部307は、入力ベクトル読み出し部304、係数読み出し部308、演算部305に対して、分類関数の値を演算するよう指示を出す。
また、Anmは、式9を満たす。そのため、対称軸111に対して、太枠内の下三角形の領域の値と太枠外の上三角形の領域の値とは、対称である。係数Anmの絶対値について、n、mの組み合わせ全体を見渡すと、相対的に他の領域よりも大きな値をとる領域が偏っている場合がある。例えば、図4(a)の例では、n、mの組み合わせに対して他の領域よりも係数Anmの絶対値が大きな値を取る第1の領域は、Cluster1として、クロスハッチされた領域102、103、104、105で示されている。入力ベクトルの要素のうち、Cluster1の領域に対応する要素(図4(a)の例では、Cluster1の両矢印で示されている要素)は、Cluster1に属する要素であるとする。
また、他の領域よりも係数Anmの絶対値が大きな値を取る第2の領域は、Cluster2として網点で示された領域106、107、108、109で示されている。入力ベクトルの要素のうち、Cluster2の領域に対応する要素(図4(a)の例では、Cluster2の両矢印で示されている要素)は、Cluster2に属する要素であるとする。
また、Anmの絶対値が相対的に他の領域よりも小さな値しか取らない領域は、白い領域で示されている。特に、十字型領域110については、特定のnと任意のmとの組み合わせ、特定のmと任意のnとの組み合わせについて、Anmの絶対値は、他の領域よりも小さな値しか取らない領域であり、この領域をCluster3とする。入力ベクトルの要素のうち、Cluster3の領域に対応する要素(図4(a)の例では、Cluster3の両矢印で示されている要素)は、Cluster3に属する要素であるとする。領域のクラスタリングの方法については、図5で後述する。
本実施形態では、情報処理装置301は、入力ベクトルxのベクトル要素xn(1≦n≦D)を、オーバーラップせずに全ベクトル要素をカバーするK個のクラスタに分割するものとする。クラスタには、同じクラスタに属するベクトル要素n、mの組み合わせに対して、係数Anmの絶対値が他の領域よりも大きな値を取る領域(図4(a)におけるCluster1、Cluster2等)がある。一方、係数Anmの絶対値が他の領域よりも小さな値を取る領域(図4(a)ではCluster3等)が存在することもある。各クラスタについて、クラスタ番号kが割り当てられる。クラスタkに属するベクトル要素の番号の集合は、式13のClusterkで表される。
情報処理装置301は、式12を用いて、Vclusterに属する各クラスタkに対しては、同一のクラスタkに属するn、mの組み合わせに対してのみ、式11のA'nmを用いた2次項の演算を実行することにする。また、情報処理装置301は、Vclusterに属さないクラスタに関してはA'nmを用いた2次項の演算を実行しないようにする。それにより、本実施形態の分類関数は、式15、16で表される。
S201において、CPU601は、式2の2次多項式カーネルを用いてSVMの機械学習を実行し、サポートベクトルxiとパラメータαi、bを算出する。
S202において、CPU601は、2次多項式カーネルの展開で得られる式6を用いて、係数Anm(又はA'nm)、Bn、Cを算出し、算出したAnm(又はA'nm)、Bn、Cの情報を二次記憶装置604等に記憶する。
S203において、CPU601は、分類関数の2次項の係数Anm、及び入力ベクトルの各要素のクラスタリングを行うために、係数行列Anmから各要素間の距離を示す距離行列を算出する。ここで、CPU601は、距離の計算方法として、Anmの値が大きくなる程、対応するn、mの組み合わせに対して値が小さくなるような距離を用いればよい。例えば、CPU601は、Anmの各要素の絶対値の逆数を要素に持つ行列を距離行列とすればよい。
CPU601は、Anmの要素についてクラスタリングした結果を示す情報を、二次記憶装置604等に記憶する。また、クラスタリング処理後のAnmに対応するA'nmの情報を生成し、生成した情報を二次記憶装置604等に記憶することとしてもよい。また、CPU601は、Anm内のあるクラスタに属する領域に対応する入力ベクトルの要素を、そのクラスタに属するものとして、入力ベクトルの各要素をクラスタリングする。そして、CPU601は、入力ベクトルの各要素がどのクラスタに属するかを示す情報であるクラスタ情報を生成し、生成したクラスタ情報を二次記憶装置604等に記憶する。このように、情報処理装置301は、クラスタ情報を生成する機能を有する。クラスタ情報を生成する情報処理装置301の機能は、クラスタ情報を生成する第2の生成手段の一例である。
S206において、CPU601は、S205で機械学習したサポートベクトルとパラメータとを用いて係数Anm(又はA'nm)、Bn、Cを再度算出し、算出した値でこれらの係数の値を更新する。なお、本実施形態では、再学習を行った上で係数を再計算する場合を示したが、CPU601は、S204のクラスタリングまでの処理を行い、S202で計算した係数をそのまま使用して、式15、16を計算してもよい。
また、並べ替え部302は、要素を並べ替えた入力ベクトルに対応して、分類関数の2次項の係数も同一のクラスタに属する要素を1つの領域に固めるように並べ替える。図4(b)の例は、並べ替えの結果の一例を示す。図4(b)において、クロスハッチされた領域112は、Cluster1、網点で示された領域113は、Cluster2、L字型の領域114は、Cluster3を示している。この並べ替えにより、入力ベクトル読み出し部304によるクラスタ単位のデータ読み出しを連続して効率的に行うことができるようになる。
図6の係数101は、入力ベクトル要素の並べ替えに対応して、図4(b)のように並べ替えられた係数Anmを示し、Cluster1から順に同じクラスタに属する要素が連続するようになっている。中間データ403は、中間データ格納部310に格納された式16を用いて算出されたgn(x)の値である。クラスタ制御部307は、まず、Cluster1に属するg1(x)を計算するために、矢印群401の中の一番上の矢印に相当する入力ベクトル要素を読み出すように入力ベクトル読み出し部304に指示する。また、クラスタ制御部307は、対応する係数A'nm、Bnを読み出すように係数読み出し部308に指示する。
更に、クラスタ制御部307は、読出しを指示したデータと係数とを使用してg1(x)を演算し、中間データ403の最初の要素として格納するように演算部305に指示する。クラスタ制御部307は、演算部305によるg1(x)の演算が終わると、次に、矢印群401の中の上から2番目の矢印に相当する入力ベクトル要素の読み出しを、入力ベクトル読み出し部304に指示する。また、クラスタ制御部307は、対応する係数の読み出しを計数読み出し部308に指示する。そして、クラスタ制御部307は、読み出しを指示した係数及び要素からg2(x)を計算、格納するよう、演算部305に指示する。
クラスタ制御部307は、Cluster1に属するgn(x)の計算、格納が終わると、次に、矢印群402を順にたどってCluster2に属するgn(x)の演算に必要な入力ベクトルの要素の読み出しを入力ベクトル読み出し部304に指示する。また、クラスタ制御部307は、Cluster2に属するgn(x)の演算に必要な係数の読み出しを計数読み出し部308に指示する。そして、クラスタ制御部307は、Cluster2に属するgn(x)の演算・格納を演算部305に指示する。
クラスタ制御部307は、Cluster3に属するgn(x)の格納が終わると、入力ベクトル要素を順に全て読み出すように入力ベクトル読み出し部304に指示し、係数Cを読み出すように係数読み出し部308に指示する。そして、クラスタ制御部307は、式15の分類関数の値を演算して結果を判定部306に出力するように演算部305に指示する。演算部305は、順に読み出された入力ベクトルの要素xnと、対応する中間データgn(x)と、を積和して、積和結果と係数Cとを足し合わせることで、式15の分類関数の値を演算して、演算結果を判定部306に出力する。
S501において、並べ替え部302は、例えば、予め二次記憶装置604等に記憶されている入力ベクトルの情報を、二次記憶装置604等から取得することで、入力ベクトルを取得する。そして、並べ替え部302は、S204で二次記憶装置604等に記憶された入力ベクトルの各要素がどのクラスタに属するかを示すクラスタ情報に基づいて、取得した入力ベクトルの各要素を、同一のクラスタに属する要素が連続するように並べ替える。また、並べ替え部302は、要素を並べ替えた入力ベクトルに対応して、分類関数の2次項の演算に用いられる係数行列の要素を、同一のクラスタの要素が固まるように並べ替える。
S502において、演算部305は、図6の行方向の入力ベクトルの要素に関するインデックスnを1とする。
S503において、クラスタ制御部307は、S204で二次記憶装置604等に記憶されたクラスタ情報に基づいて、インデックスnの属するクラスタkの範囲を取得する。
S505において、演算部305は、演算中のgn(x)の値に、入力ベクトルのm番目の要素xmと、係数A'nmと、をかけ合わせた値を加える。また、演算部305は、現在のnについて、初めてS505の処理を行う場合、演算中のgn(x)の値に、分類関数の1次項の係数Bnを加える。
S506において、演算部305は、mを1だけ増やす。
S507において、演算部305は、m>nか否かを判定する。演算部305は、m>nではないと判定した場合、S505の処理に進み、m>nであると判定した場合、S508の処理に進む。
以上のように、S501で同じクラスタの要素が連続するよう入力ベクトルの要素が並べ替えられたために、演算部305は、S504〜S507で、入力ベクトルの要素nについての分類関数の中間データを演算するために次のような処理を行うこととなる。即ち、演算部305は、mの値をnの属するクラスタの最初の要素からnまで順番に1ずつ増やしながら、A'nm×xmの値を足し合わせていく処理を行う。これにより、演算部305は、要素mがnと同じクラスタか否かを判定する処理を行う手間をかけずに、同じクラスタ同士で分類関数の2次項の演算を行うことができる。
S508において、演算部305は、現在のnに対するgn(x)の計算が完了したとして、nを1だけ増やす。
S509において、演算部305は、n>Dか否かを判定する。演算部305は、n>Dではないと判定した場合、S503の処理に進む。また、演算部305は、n>Dであると判定した場合、全てのnに対するgn(x)の計算が完了したとして、S510の処理に進む。gn(x)を演算する演算部305は、分類関数の値の中間データを演算する第1の演算手段の一例である。
S511において、演算部305は、現在のnに対応するgn(x)と、現在のnに対応する入力ベクトルの要素xnと、をかけ合わせた値を演算中の分類関数f(x)の値に加える。また、演算部305は、現在のnについて、初めてS511の処理を行う場合、演算中の分類関数f(x)の値に、分類関数の定数項の係数Cを加える。
S512において、演算部305は、nを1だけ増やす。
S513において、演算部305は、n>Dか否かを判定する。演算部305は、n>Dではないと判定した場合、S511の処理に進む。また、演算部305は、n>Dであると判定した場合、f(x)の演算が完了したとして、演算結果を判定部306に送信し、S514の処理に進む。また、演算部305は、分類関数の演算結果の情報を二次記憶装置604等にファイル形式で記憶することで出力してもよい。また、演算部305は、演算結果の情報を外部の情報処理装置等に送信することで出力してもよい。f(x)を演算する演算部305は、分類関数の値を演算する第2の演算手段の一例である。
S514において、判定部306は、S513で送信された分類関数f(x)の値に基づいて、分類結果を判定する。判定部306は、判定結果の情報を、二次記憶装置604等にファイル形式で記憶することで出力することとしてもよいし、外部の情報処理装置に送信することで出力することとしてもよい。
なお、本実施形態では、情報処理装置301は、図6において、式9の対称性によりAnmの下三角部分だけの計算を行っているが、逆に上三角部分だけの計算を行ってもよい。また、情報処理装置301は、式9の対称性を利用せずに、各クラスタの矩形領域全てに対して演算を行ってもよい。
また、本実施形態では、情報処理装置301は、判定部306を介して、分類関数の判定を行い、分類結果を出力しているが、判定処理を行わずに、分類関数の値を出力することで回帰装置としての機能を実現することもできる。
本実施形態では、実施形態1のように入力ベクトルの要素の並べ替えを行わない処理について説明する。なお、本実施形態における分類関数の係数の決定処理と、入力ベクトルの要素及び分類関数の2次項の係数のクラスタリング処理と、実施形態1と同様である。
本実施形態の情報処理装置801のハードウェア構成は、実施形態1の情報処理装置301と同様である。
CPU601は、Anmのうち、他の領域よりも大きい値となる領域を有効領域であるとして決定する。CPU601は、例えば、入力ベクトルの要素nに対応する2次項の係数を、S201〜S204の処理と同様の処理でクラスタリングすることで、他の領域よりも大きい値となる領域を有効領域として決定することとする。また、CPU601は、Anmのうち、設定された閾値よりも大きい値をとる領域を有効領域として決定してもよい。CPU601は、有効領域に対応する入力ベクトルの要素の組み合わせの情報を、有効領域情報として生成し、生成した有効領域情報を二次記憶装置604等に記憶する。このように、情報処理装置301は、有効領域情報を生成する機能を有する。有効領域情報を生成する情報処理装置301の機能は、有効領域情報を生成する第1の生成手段の一例である。
情報処理装置801は、実施形態1の情報処理装置301と同様に、式15、16で表される分類関数f(x)を演算し、演算結果に基づいて、分類判定を行い、分類結果を出力する情報処理装置である。
入力ベクトル読み出し部802は、演算部803による演算処理に必要な入力ベクトルの要素を、入力ベクトル格納部303から複数回、読み出し、演算部803に渡す。
中間データ格納部310は、演算部803により演算された中間データを格納する。中間データ格納部310は、演算部803により、式16を用いて演算されたgn(x)の値を中間データとして格納する。
クラスタ制御部804は、入力ベクトル読み出し部802、係数読み出し部308、演算部803に指示を出して、まず、演算部803に式16を用いて、各gn(x)(n=1、2、・・・、D)を演算させる。次に、クラスタ制御部804は、演算部803に式15の分類関数の演算を実行させる。
演算部803は、渡された有効領域情報に示される入力ベクトルの要素の組み合わせについて、分類関数の中間データの演算を実行してg1(x)を算出し、中間データ903の最初の要素としてRAM603等に格納する。演算部803は、g1(x)の計算が終わると、クラスタ制御部804は、矢印群901の中の上から2番目の矢印に相当する入力ベクトル要素の読み出しと対応する係数の読み出しと、g2(x)の演算、格納を指示する。クラスタ制御部804は、矢印群901を上から順にたどってCluster1又はCluster2に属するgn(x)の演算、格納を指示する。
クラスタ制御部804は、Cluster3に属するgn(x)に関しては、入力ベクトル要素がVelementに属していないため、係数Bnのみを読み出すように係数読み出し部308に指示する。更に、クラスタ制御部804は、Bnをそのままgn(x)として中間データ903に格納するように演算部803にも指示する。次に、クラスタ制御部804は、矢印群902に対しても矢印群901と同様にgn(x)の計算、格納を指示する。最後のgn(x)の格納が終わると、クラスタ制御部804は、入力ベクトル要素を順に全て読み出すように入力ベクトル読み出し部802に指示し、係数Cを読み出すように係数読み出し部308に指示する。そして、クラスタ制御部804は、式15の分類関数の値を演算して結果を判定部306に出力するように演算部803に指示する。演算部803は、順に読み出された入力ベクトルの要素xnと、対応する中間データgn(x)と、を積和して、積和結果と係数Cとを足し合わせることで、式15の分類関数の値を演算して、演算結果を判定部306に出力する。
S1001において、演算部803は、図9の行方向の入力ベクトルの要素のインデックスnを1とする。
S1002において、演算部803は、クラスタ制御部804からnに対応する有効領域情報を取得する。クラスタ制御部804は、予め計算され、二次記憶装置604等に記憶されている有効領域情報を、演算部803に渡すことになる。
S1003において、演算部803は、図9の列方向の入力ベクトルの要素のインデックスmを1とする。
S1005において、演算部803は、mを1だけ増やす。
S1006において、演算部803は、m>nか否かを判定する。演算部803は、m>nでないと判定した場合、S1004の処理に進む。また、演算部803は、m>nであると判定した場合、現在のnに対するgn(x)の計算が完了したとして、S1007の処理に進む。
S1007において、演算部803は、nを1だけ増やす。
S1008において、演算部803は、n>Dか否かを判定する。演算部803は、n>Dではないと判定した場合、S1002の処理に進む。また、演算部803は、n>Dであると判定した場合、全てのnに対するgn(x)の計算が完了したとして、S1009の処理に進む。
S1010において、演算部803は、現在のnに対応するgn(x)と、現在のnに対応する入力ベクトルの要素xnと、をかけ合わせた値を演算中の分類関数f(x)の値に加える。また、演算部803は、現在のnについて、初めてS1010の処理を行う場合、演算中の分類関数f(x)の値に、分類関数の定数項の係数Cを加える。
S1011において、演算部803は、nを1だけ増やす。
S1012において、演算部803は、n>Dか否かを判定する。演算部803は、n>Dではないと判定した場合、S1010の処理に進む。また、演算部803は、n>Dであると判定した場合、f(x)の演算が完了したとして、演算結果を判定部306に送信し、S1013の処理に進む。また、演算部803は、分類関数の演算結果の情報を二次記憶装置604等にファイル形式で記憶することで出力してもよい。また、演算部803は、演算結果の情報を外部の情報処理装置等に送信することで出力してもよい。
S1013において、判定部306は、S1012で送信された分類関数f(x)の値に基づいて、分類結果を判定する。判定部306は、判定結果の情報を、二次記憶装置604等にファイル形式で記憶することで出力することとしてもよいし、外部の情報処理装置に送信することで出力することとしてもよい。
なお、本実施形態では、情報処理装置301は、図10において、式9の対称性によりAnmの下三角部分だけの計算を行っているが、逆に上三角部分だけの計算を行ってもよい。また、情報処理装置301は、式9の対称性を利用せずに、各クラスタの矩形領域全てに対して演算を行ってもよい。
また、本実施形態では、情報処理装置301は、判定部306を介して、分類関数の判定を行い、分類結果を出力しているが、判定処理を行わずに、分類関数の値を出力することで回帰装置としての機能を実現することもできる。
実施形態1、2では、2次多項式カーネルの例を説明したが、本実施形態では、3次以上の高次多項式カーネルについても、分類関数の高次項の演算量を削減できる点について説明する。高次項とは2次以上の項のことを意味する。本実施形態では、3次多項式カーネルの例を説明する。本実施形態では、実施形態1と同様に情報処理装置301が分類関数の演算を行う。
3次多項式カーネルに関して、式12に相当する分類関数f(x)の計算式を式変形で導出すると、式18〜22のようになる。なお、本実施形態では、情報処理装置301は、表記の複雑化を避けるために、係数の対称性は利用しないこととするが、対称性を利用してもよい。
図12は、並べ替え部302により並べ替えられた入力ベクトルの要素、及び係数Anmlを示す図である。図12において、領域1101は、係数Anml全体を示す領域である。クロスハッチされた領域1102は、最初のクラスタに属する入力ベクトルの要素の組み合わせn、m、lに対応する係数を示す領域である。網点で示された領域1103は、2番目のクラスタに属する入力ベクトルの要素の組み合わせn、m、lに対応する係数を示す領域である。
図12からわかるように、情報処理装置301は、係数Anmlに関する演算を、クラスタ内に属するベクトル要素の組み合わせに限定することで、3次多項式カーネルの演算量を大幅に減らすことができる。例えば、情報処理装置301は、図12の領域1101内の無地の領域に対応する係数については、3次項の演算を行わない。3次項の係数Anml、2次項の係数Bnmに関する計算を、クラスタ内に属するベクトル要素の組み合わせに限定した場合の分類関数f(x)の計算式を式23〜25に示す。
なお、情報処理装置301は、3次係数Anmlをクラスタリングする際のベクトル要素間の距離計算に関しては、例えば、次の方法で行う。情報処理装置301は、ベクトル要素の番号i、jの各組み合わせ(i≠j)に対する距離Lijを、式26を用いて、算出する。即ち、情報処理装置301は、n、m、lの各値がi、jだけからなる場合の係数Anmlの絶対値の和を算出し、算出した和の逆数をとることで、距離Lijを算出する。
なお、情報処理装置301は、本実施形態で説明した3次多項式カーネルの例と同様の拡張を行えば、4次以上の多項式に関しても同様に、分類関数の演算量を削減することができる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、上述した情報処理装置301の機能構成の一部又は全てをハードウェアとして情報処理装置301に実装してもよい。
Claims (12)
- 入力ベクトルの各要素のクラスタ情報に基づいて、前記入力ベクトルの要素の順序を並べ替える並べ替え手段と、
前記並べ替え手段により並べ替えられた前記入力ベクトルの要素ごとに、前記入力ベクトルの要素と、多項式カーネルを展開して得られる係数と、前記クラスタ情報と、に基づいて、分類関数の値の中間データを演算する第1の演算手段と、
前記第1の演算手段により演算された前記中間データと、前記入力ベクトルと、前記係数と、に基づいて、前記分類関数の値を演算する第2の演算手段と、
を有する情報処理装置。 - 前記並べ替え手段は、前記クラスタ情報に従って、前記入力ベクトルの各要素を、同一クラスタに属する要素が連続するように並べ替える請求項1記載の情報処理装置。
- 前記並べ替え手段は、要素の順序を並べ替えた前記入力ベクトルを第1の格納部に格納し、
前記第1の演算手段は、前記第1の格納部から要素の順序を並べ替えられた前記入力ベクトルを取得し、第2の格納部から前記係数を取得し、前記中間データを第3の格納部に格納し、
前記第2の演算手段は、前記第3の格納部から前記中間データを取得し、取得した前記中間データと、前記入力ベクトルと、前記係数と、に基づいて、前記分類関数の値を演算する請求項1又は2記載の情報処理装置。 - 前記第1の演算手段は、前記第1の格納部から前記並べ替え手段により要素の順序を並べ替えられた前記入力ベクトルであるxを取得し、前記第2の格納部から前記係数を取得し、前記クラスタ情報に基づいて、クラスタkに属するベクトル要素の番号の集合を式1のClusterkとして、2次項の演算に利用されるクラスタkの番号kの集合を式2のVclusterとして、ベクトル要素番号nに対応するクラスタ番号をk(n)として、k(n)に対応するクラスタ番号k(n)がVclusterに属するベクトル要素番号の集合を式2のVelementとして、前記係数に含まれる前記分類関数の2次項の演算に利用される係数Anm及び前記分類関数の1次項の演算に利用される係数Bnと、xと、に基づいて、式3を利用して、xの要素ごとに前記中間データであるgn(x)を演算し、
前記第2の演算手段は、前記第1の演算手段により演算されたgn(x)と、xと、前記係数に含まれる前記分類関数の定数項である係数Cに基づいて、式4を利用して前記分類関数の値を演算する請求項3記載の情報処理装置。
- 入力ベクトルの各要素のクラスタ情報に基づいて、多項式カーネルを展開して得られる係数のそれぞれの要素が、クラスタごとの演算に用いられるか否かを示す有効領域情報を生成する第1の生成手段と、
前記入力ベクトルの要素ごとに、前記入力ベクトルの要素と、前記係数と、前記第1の生成手段により生成された有効領域情報と、に基づいて、分類関数の値の中間データを演算する第1の演算手段と、
前記中間データと、前記入力ベクトルと、前記係数と、に基づいて、前記分類関数の値を演算する第2の演算手段と、
を有する情報処理装置。 - 前記第2の演算手段により演算された前記分類関数の値の情報を出力する出力手段を更に有する請求項1乃至5何れか1項記載の情報処理装置。
- 前記第2の演算手段により演算された前記分類関数の値に基づいて、前記入力ベクトルの分類結果を判定する判定手段と、
前記判定手段による判定結果を示す情報を出力する出力手段と、
を更に有する請求項1乃至5何れか1項記載の情報処理装置。 - 多項式カーネル関数を用いて機械学習を行う学習手段と、
前記学習手段による学習の結果により多項式カーネルを展開して得られる係数を取得する取得手段と、
前記取得手段により取得される前記係数の値に基づいて、前記入力ベクトルの各要素をクラスタリングし、クラスタリングの結果を示す前記クラスタ情報を生成する第2の生成手段と、
を更に有する請求項1乃至7何れか1項記載の情報処理装置。 - 前記第2の生成手段は、前記係数に基づいて、前記入力ベクトルの要素間の距離を取得し、取得した前記距離に基づいて、前記入力ベクトルの各要素をクラスタリングし、クラスタリングの結果に基づいて、前記入力ベクトルの各要素がどのクラスタに属するかを示す前記クラスタ情報を生成する請求項8記載の情報処理装置。
- 前記第2の生成手段による前記入力ベクトルの要素のクラスタリング処理の結果により定まるカーネル関数に基づいて、機械学習を行い、学習の結果に基づいて、前記係数を更新する更新手段を更に有する請求項8又は9記載の情報処理装置。
- 情報処理装置が実行する情報処理方法であって、
入力ベクトルの各要素のクラスタ情報に基づいて、前記入力ベクトルの要素の順序を並べ替える並べ替えステップと、
前記並べ替えステップで要素の順序を並べ替えられた前記入力ベクトルの要素ごとに、前記入力ベクトルの要素と、多項式カーネルを展開して得られる係数と、前記クラスタ情報と、に基づいて、分類関数の値の中間データを演算する第1の演算ステップと、
前記中間データと、前記入力ベクトルと、前記係数と、に基づいて、前記分類関数の値を演算する第2の演算ステップと、
を含む情報処理方法。 - コンピュータを、請求項1乃至10何れか1項記載の情報処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016031375A JP6700843B2 (ja) | 2016-02-22 | 2016-02-22 | 情報処理装置、情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016031375A JP6700843B2 (ja) | 2016-02-22 | 2016-02-22 | 情報処理装置、情報処理方法及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017151557A JP2017151557A (ja) | 2017-08-31 |
JP2017151557A5 JP2017151557A5 (ja) | 2019-04-04 |
JP6700843B2 true JP6700843B2 (ja) | 2020-05-27 |
Family
ID=59739664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016031375A Active JP6700843B2 (ja) | 2016-02-22 | 2016-02-22 | 情報処理装置、情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6700843B2 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3889663B2 (ja) * | 2002-05-13 | 2007-03-07 | 日本電信電話株式会社 | 分類装置、分類方法、分類プログラム及びそのプログラムを記録した記録媒体 |
-
2016
- 2016-02-22 JP JP2016031375A patent/JP6700843B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017151557A (ja) | 2017-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chesi | Estimating the domain of attraction for uncertain polynomial systems | |
JP6777574B2 (ja) | 区分線形近似関数生成装置および方法 | |
Charina et al. | Multiple multivariate subdivision schemes: matrix and operator approaches | |
JP2021125136A (ja) | 最適化装置及び最適化方法 | |
JP6700843B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
Manthe | Optimized unoccupied single-particle functions in the (multi-layer) multi-configurational time-dependent Hartree approach | |
Strand | Weighted distances based on neighbourhood sequences | |
JP6104469B2 (ja) | 行列生成装置及び行列生成方法及び行列生成プログラム | |
Gonçalves et al. | Algorithm 860: SimpleS—an extension of Freudenthal's simplex subdivision | |
EP4116856A1 (en) | Program, inference method, and information processing apparatus | |
JP6651254B2 (ja) | シミュレーション方法、シミュレーションプログラム、及びシミュレーション装置 | |
Abramson et al. | A subclass of generating set search with convergence to second-order stationary points | |
JP7468655B2 (ja) | 不整合判定装置、方法、および、プログラム | |
Sukhorukova et al. | Chebyshev multivariate polynomial approximation: alternance interpretation | |
JP7158175B2 (ja) | 情報処理装置、システム、情報処理方法及びプログラム | |
Gago-Vargas | Bases for projective modules in An (k) | |
Vandehey | Lagrange's theorem for continued fractions on the Heisenberg group | |
CN114897188A (zh) | 大规模数据处理方法 | |
Bajaj et al. | Solving a continuous multifacility location problem by DC algorithms | |
Nikolova et al. | Unconditional well-posedness in the energy space for the Ginzburg-Landau equation | |
Lu et al. | Multi-degree reduction of triangular Bézier surfaces with boundary constraints | |
JP2007079972A (ja) | 逆変換回路 | |
WO2018198273A1 (ja) | シミュレーション方法、シミュレーションプログラム、及びシミュレーション装置 | |
Asheim | A combined Filon/asymptotic quadrature method for highly oscillatory problems | |
Faragó et al. | Qualitatively adequate numerical modeling of some biological processes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190219 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190219 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200305 |
|
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: 20200317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200501 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6700843 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |