JP2009211123A - 分類装置、ならびに、プログラム - Google Patents
分類装置、ならびに、プログラム Download PDFInfo
- Publication number
- JP2009211123A JP2009211123A JP2008050429A JP2008050429A JP2009211123A JP 2009211123 A JP2009211123 A JP 2009211123A JP 2008050429 A JP2008050429 A JP 2008050429A JP 2008050429 A JP2008050429 A JP 2008050429A JP 2009211123 A JP2009211123 A JP 2009211123A
- Authority
- JP
- Japan
- Prior art keywords
- classification
- vector
- classification device
- class
- function
- 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.)
- Pending
Links
Images
Landscapes
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
【課題】ベクトルを複数のクラスのいずれかに適切に分類する分類装置等を提供する。
【解決手段】分類装置101において、最小化部103は、サンプル受付部102が受け付けたサンプルベクトルx[i]とそのクラスy[i]を参照して、パラメータ行列Wを用いて分類した場合の標本誤差Rempと、行列Wの行列ノルムにより表現される複雑さL(W)との、線形和からなる評価関数J(W)=Remp+βL(W)を最小化するように、最急降下法や共役勾配法により行列Wを求め、識別値計算部105は、対象受付部104が受け付けた分類対象ベクトルzのi番目のクラスに対する識別値fi(z)を、行列Wのi列目の列ベクトルW[i]とzの内積により定め、分類部106は、その最大識別値fk(z)から、分類対象ベクトルzをクラスkに分類する。
【選択図】図1
【解決手段】分類装置101において、最小化部103は、サンプル受付部102が受け付けたサンプルベクトルx[i]とそのクラスy[i]を参照して、パラメータ行列Wを用いて分類した場合の標本誤差Rempと、行列Wの行列ノルムにより表現される複雑さL(W)との、線形和からなる評価関数J(W)=Remp+βL(W)を最小化するように、最急降下法や共役勾配法により行列Wを求め、識別値計算部105は、対象受付部104が受け付けた分類対象ベクトルzのi番目のクラスに対する識別値fi(z)を、行列Wのi列目の列ベクトルW[i]とzの内積により定め、分類部106は、その最大識別値fk(z)から、分類対象ベクトルzをクラスkに分類する。
【選択図】図1
Description
本発明は、ベクトルを複数のクラスのいずれかに適切に分類するのに好適な分類装置、ならびに、これをコンピュータにて実現するプログラムに関する。
従来から、D次元のベクトルzの入力を受け付けて、当該ベクトルzが複数のクラス(グループ)1,2,…,Cのいずれに属するかを分類する識別器の技術が提案されている。すなわち、これらは、ベクトルzに対して、クラスj (j = 1,2,…,C)のそれぞれについて、識別値関数fj(z)の値を計算し、これが最大値fk(z)となるクラスkに、当該ベクトルzを分類する技術である。
たとえば文字認識等のパターン認識の分野では、処理の対象となる画像をベクトルzとして識別器に与えることにより、当該画像がいずれの文字等のパターンを表すものであるか、を推定して、認識を行うものとしている。このような技術については、たとえば以下の文献に開示されている。
M. Anthony, "Probabilistic analysis of learning in artifical neural networks: The PAC model and its variants," Neural computing surveys, vol.1, pp.1-47, 1997年
M. Anthony, "Probabilistic analysis of learning in artifical neural networks: The PAC model and its variants," Neural computing surveys, vol.1, pp.1-47, 1997年
パターン識別問題は、いずれのクラスに属するかが判明しているサンプルを元に、未知のパターンすべてに対しての誤差(汎化誤差)を最小にする問題と考えることができるが、汎化誤差を直接評価することは不可能であるから、標本誤差を用いて識別器の学習を行うことになる。
しかし、標本誤差Rempと汎化誤差Rとは一致しないのが一般的であり、これらの差
η = R - Remp
は、通常、正の値となる。
η = R - Remp
は、通常、正の値となる。
一方で、ηは識別器の複雑さに対して単調増加することが経験的に知られている。ところが、標本誤差Rempは、識別器が複雑になればなるほど、単調減少する。
そこで、互いにトレードオフの関係にある両者をうまく調節して、汎化誤差Rを小さくする技術が求められている。
本発明は、以上のような課題を解決するためのもので、ベクトルを複数のクラスのいずれかに適切に分類するのに好適な分類装置、ならびに、これをコンピュータにて実現するプログラムを提供することを目的とする。
本発明の第1の観点に係る分類装置は、D次元のベクトルをクラス1,2,…,Cのいずれか少なくとも1つに分類し、サンプル受付部、最小化部、対象受付部、識別値計算部、分類部を備え、以下のように構成する。
すなわち、サンプル受付部は、整数i = 1,2,…,Lのそれぞれについて、サンプルベクトルx[i]と、当該サンプルベクトルx[i]が分類されるクラスy[i]と、の入力を受け付ける。
一方、最小化部は、D次元のベクトルW[1],W[2],…,W[C]を列として並べたD行C列のパラメータ行列W = [W[1],W[2],…,W[C]]に対する評価関数J(W)を最小化するようなパラメータ行列Wを計算する。
ここで、当該評価関数J(W)は、整数j = 1,2,…,Dのそれぞれについて、j番目の要素が1であり、それ以外の要素が0であるD次元の単位ベクトルe[j]と、所定の微小正数δと、ベクトル同士の内積を求める演算〈・,・〉と、行列の転置演算(・)Tと、整数i = 1,2,…,Cのそれぞれについての分類関数
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
と、条件
limx→-∞ u(x) = 0;
limx→+∞ u(x) = 1
を満たすステップ状関数u(x)と、標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
と、当該パラメータ行列Wの行列ノルムにより定義される当該パラメータ行列Wの複雑さL(W)と、所定の正則化パラメータβと、により、
J(W) = Remp(W) + βL(W)
と定義される。
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
と、条件
limx→-∞ u(x) = 0;
limx→+∞ u(x) = 1
を満たすステップ状関数u(x)と、標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
と、当該パラメータ行列Wの行列ノルムにより定義される当該パラメータ行列Wの複雑さL(W)と、所定の正則化パラメータβと、により、
J(W) = Remp(W) + βL(W)
と定義される。
さらに、対象受付部は、D次元の分類対象ベクトルzの入力を受け付ける。
そして、識別値計算部は、整数i = 1,2,…,Cのそれぞれについて、当該i番目のクラスに対する当該分類対象ベクトルzの識別値
fi(z) = 〈e[i],WTz〉 = 〈W[i],z〉
を計算する。
fi(z) = 〈e[i],WTz〉 = 〈W[i],z〉
を計算する。
一方、分類部は、計算された識別値f1(z),f2(z),…,fC(z)の最大値fk(z)を求め、当該分類対象ベクトルzをクラスkに分類する旨を出力する。
また、本発明の分類装置において、当該複雑さL(W)は、フロベニウス(Frobenius)のノルム
L(W) = |W|F 2 = Σi=1 C |W[i]|2
により定義されるように構成することができる。
L(W) = |W|F 2 = Σi=1 C |W[i]|2
により定義されるように構成することができる。
また、本発明の分類装置において、当該複雑さL(W)は、準正定値行列Pによるチーホノフ(Tikhonov)のノルム
L(W) = |WTPW|F 2
により定義されるように構成することができる。
L(W) = |WTPW|F 2
により定義されるように構成することができる。
また、本発明の分類装置において、当該ステップ状関数u(x)は、
u(x) = 0 (x<0);
u(x) = 1 (x≧0)
と定義されるステップ関数(step function)であるように構成することができる。
u(x) = 0 (x<0);
u(x) = 1 (x≧0)
と定義されるステップ関数(step function)であるように構成することができる。
また、本発明の分類装置において、当該ステップ状関数u(x)は、所定の正数aにより
u(x) = 1/〔1 + exp(-ax)〕
と定義されるシグモイド関数(sigmoid function)であるように構成することができる。
u(x) = 1/〔1 + exp(-ax)〕
と定義されるシグモイド関数(sigmoid function)であるように構成することができる。
また、本発明の分類装置において、当該ステップ状関数u(x)は、所定の正数aにより
u(x) = 0 (x<0);
u(x) = x/a (0≦x≦a);
u(x) = 1 (a<x)
と定義される強ヒンジ関数(robust hinge function)であるように構成することができる。
u(x) = 0 (x<0);
u(x) = x/a (0≦x≦a);
u(x) = 1 (a<x)
と定義される強ヒンジ関数(robust hinge function)であるように構成することができる。
また、本発明の分類装置において、最小化部は、最急降下法により、当該パラメータ行列Wを計算するように構成することができる。
また、本発明の分類装置において、最小化部は、共役勾配法により、当該パラメータ行列Wを計算するように構成することができる。
また、本発明の分類装置において、整数i = 1,2,…,Lのそれぞれについて、当該サンプルベクトルx[i]は、1つのクラスy[i]に分類されるのにかえて、1つ以上のクラスy[i,1],y[i,2],…,y[i,n[i]]に分類され、当該評価関数J(W)は、当該分類関数
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
ならびに当該標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
により定義されるのにかえて、整数k = 1,2,…,n[i]のそれぞれについての分類関数
h(x[i],y[i,k],W) = maxj∈{1,2,…,C}\{y[i,1],y[i,2],…,y[i,n[i]]}〈e[y[i,k]]-e[j],WTx[i]〉+δ
ならびに標本誤差
Remp = (1/L)Σi=1 L(1/n[i])Σk=1 n[i] u(h(x[i],y[i,k],W));
により定義され、分類部は、整数i = 1,2,…,Cのそれぞれについて、当該識別値fi(z)を、当該分類対象ベクトルzがクラスiに属する程度を表す指標として出力するように構成することができる。
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
ならびに当該標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
により定義されるのにかえて、整数k = 1,2,…,n[i]のそれぞれについての分類関数
h(x[i],y[i,k],W) = maxj∈{1,2,…,C}\{y[i,1],y[i,2],…,y[i,n[i]]}〈e[y[i,k]]-e[j],WTx[i]〉+δ
ならびに標本誤差
Remp = (1/L)Σi=1 L(1/n[i])Σk=1 n[i] u(h(x[i],y[i,k],W));
により定義され、分類部は、整数i = 1,2,…,Cのそれぞれについて、当該識別値fi(z)を、当該分類対象ベクトルzがクラスiに属する程度を表す指標として出力するように構成することができる。
また、本発明の分類装置において、当該サンプルベクトルx[i]ならびに当該分類ベクトルzについて、経験カーネル写像(empirical kernel map)k(・)をあらかじめ適用して、カーネル法により分類するように構成することができる。
本発明のその他の観点に係るプログラムは、コンピュータを上記の分類装置の各部として機能させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータやディジタル信号プロセッサとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータやディジタル信号プロセッサとは独立して配布・販売することができる。
本発明によれば、ベクトルを複数のクラスのいずれかに適切に分類するのに好適な分類装置、ならびに、これをコンピュータにて実現するプログラムを提供することができる。
以下に本発明の実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
また、以下の説明では、一般的なコンピュータ(CPU(Central Processing Unit)の制御下で、RAM(Random Access Memory)を一時記憶とし、ハードディスクを不揮発記憶とし、入出力ポートで外部機器とのやりとりを行うのが典型的である。)等の情報処理装置にてプログラムを動作させることで分類装置を実現する典型例を説明するが、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、その他の電子回路によって実現することも可能である。
図1は、本発明の実施形態の一つに係る分類装置の概要構成を示す模式図である。以下、本図を参照して説明する。
本実施形態に係る分類装置101は、D次元のベクトルをクラス1,2,…,Cのいずれか少なくとも1つに分類するものであり、サンプル受付部102、最小化部103、対象受付部104、識別値計算部105、分類部106を有する。
これらの各要素は、CPU(Central Processing Unit)の制御の下、RAM(Random Access Memory)やハードディスク、各種のメモリカードや外部記憶装置を一時的な記憶領域ならびにデータの入力元および出力先として使用できるようなコンピュータにおいて、所定のプログラムを実行することによって実現することができる。
ここで、サンプル受付部102、最小化部103は、サンプルベクトルを用いて識別器を構成するための要素であり、対象受付部104、識別値計算部105、分類部106は、構成された識別器を分類対象ベクトルに対して利用するための要素である、と考えることができる。
すなわち、当該分類装置101を識別器として利用するにあたっては、あらかじめ、どのクラスに分類されるかが確定しているサンプルベクトルを用意しておき、これによって「学習」に相当する事前処理を実行する必要がある。
サンプルベクトルや分類対象ベクトルとしては、現実の物理対象を観測した結果、もしくは、その特徴量を抽出した結果を適用するのが典型的である。また、サンプルベクトルは、典型的には人手で、どのクラスに属するのかをあらかじめ分類しておく。
図2は、事前処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
まず、サンプル受付部102は、整数i = 1,2,…,Lのそれぞれについて、サンプルベクトルx[i]と、当該サンプルベクトルx[i]が分類されるクラスy[i]と、の入力を受け付ける(ステップS201)。
上記のように、本実施形態では、あるサンプルベクトルx[i]が属するクラスの個数は1つに限られるが、後述するように、1つ以上のクラスに属するマルチクラス問題に、本発明を適用することも可能である。
また、サンプルベクトルx[i]とそのクラスy[i]とは、事前に人間が対応付けをしておくのが一般的であるが、本技術では、この対応付けに少々の誤りがあった場合であっても、高い精度で分類ができることが実験により判明している。
サンプルベクトルx[i]とそのクラスy[i]とは、外部記憶装置などからRAMに読み込まれるように構成するのが一般的である。
次に、一方、最小化部103は、D次元のベクトルW[1],W[2],…,W[C]を列として並べたD行C列のパラメータ行列W = [W[1],W[2],…,W[C]]に対する評価関数J(W)を最小化するようなパラメータ行列Wを計算して(ステップS202)、本処理を終了する。
計算されたパラメータ行列Wは、RAMなどに一時的に記憶しておくこととしても良いし、ハードディスクなどに不揮発に保存しておけば、再利用が可能となる。
ここで、当該評価関数J(W)は、
(a)整数j = 1,2,…,Dのそれぞれについて、j番目の要素が1であり、それ以外の要素が0であるD次元の単位ベクトルe[j]と、
(b)所定の微小正数δと、
(c)ベクトル同士の内積を求める演算〈・,・〉と、
(d)行列の転置演算(・)Tと、
(e)整数i = 1,2,…,Cのそれぞれについての分類関数
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
と、
(f)条件
limx→-∞ u(x) = 0;
limx→+∞ u(x) = 1
を満たすステップ状関数u(x)と、
(g)標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
と、
(h)当該パラメータ行列Wの行列ノルムにより定義される当該パラメータ行列Wの複雑さL(W)と、
(i)所定の正則化パラメータβと、
により、
J(W) = Remp(W) + βL(W)
と定義される。
(a)整数j = 1,2,…,Dのそれぞれについて、j番目の要素が1であり、それ以外の要素が0であるD次元の単位ベクトルe[j]と、
(b)所定の微小正数δと、
(c)ベクトル同士の内積を求める演算〈・,・〉と、
(d)行列の転置演算(・)Tと、
(e)整数i = 1,2,…,Cのそれぞれについての分類関数
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
と、
(f)条件
limx→-∞ u(x) = 0;
limx→+∞ u(x) = 1
を満たすステップ状関数u(x)と、
(g)標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
と、
(h)当該パラメータ行列Wの行列ノルムにより定義される当該パラメータ行列Wの複雑さL(W)と、
(i)所定の正則化パラメータβと、
により、
J(W) = Remp(W) + βL(W)
と定義される。
評価関数J(W)を最小化するような行列Wを求めるにあたっては、最急降下法や共役勾配法など、各種の技術を適用することができる。すなわち、RAMなどに行列Wを記憶する領域を確保し、適当な値(たとえば所定範囲の値の乱数等)で行列Wの各要素を初期化した後、繰り返し計算を行って、行列Wを更新し、これが収束したら、最小化が完了したものとする。
ここで、上記(e)における演算\は、集合の引き算を意味する。具体的には、集合A,Bに対して、
A\B = {a| (a∈A)かつ (a∈Bでない)}
との演算を意味する。
A\B = {a| (a∈A)かつ (a∈Bでない)}
との演算を意味する。
また、上記(f)ステップ状関数としては、たとえば、以下のような関数を採用することができる。
(1)以下のように定義されるステップ関数(step function)。
u(x) = 0 (x<0);
u(x) = 1 (x≧0)
(2)所定の正数aにより以下のように定義されるシグモイド関数(sigmoid function)。
u(x) = 1/〔1 + exp(-ax)〕
(3)所定の正数aにより以下のように定義される強ヒンジ関数(robust hinge function)。
u(x) = 0 (x<0);
u(x) = x/a (0≦x≦a);
u(x) = 1 (a<x)
(1)以下のように定義されるステップ関数(step function)。
u(x) = 0 (x<0);
u(x) = 1 (x≧0)
(2)所定の正数aにより以下のように定義されるシグモイド関数(sigmoid function)。
u(x) = 1/〔1 + exp(-ax)〕
(3)所定の正数aにより以下のように定義される強ヒンジ関数(robust hinge function)。
u(x) = 0 (x<0);
u(x) = x/a (0≦x≦a);
u(x) = 1 (a<x)
さらに、上記(h)における複雑さL(W)としては、たとえば、以下のような行列ノルムを採用することができる。
(1)以下のように定義されるフロベニウス(Frobenius)のノルム。
L(W) = |W|F 2 = Σi=1 C |W[i]|2
(2)準正定値行列Pにより以下のように定義されるチーホノフ(Tikhonov)のノルム。
L(W) = |WTPW|F 2
ここでPを単位行列とすれば、チーホノフのノルムはフロベニウスのノルムに一致する。
(1)以下のように定義されるフロベニウス(Frobenius)のノルム。
L(W) = |W|F 2 = Σi=1 C |W[i]|2
(2)準正定値行列Pにより以下のように定義されるチーホノフ(Tikhonov)のノルム。
L(W) = |WTPW|F 2
ここでPを単位行列とすれば、チーホノフのノルムはフロベニウスのノルムに一致する。
以下、最小化の具体的な手法を説明する。第1の最小化手法は、最急降下法である。図3は、最急降下法による計算の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本処理が開始されると、CPUは、RAMに確保された行列Wの各要素を適当な値で初期化する(ステップS301)。たとえば、乱数により初期化を行ったり、0と1とを交互に埋めることで初期化を行ったり、以前に利用した行列の値を初期値として採用したり、等、種々の手法が利用できる。
ついで、行列Wが収束するまで、以下の処理を繰り返す(ステップS302〜ステップS306)。
まず、勾配∂J(W)/∂Wを計算する(ステップS303)。行列Wのi行j列の要素をW[i,j]と表記するとき、勾配∂J(W)/∂Wは、i行j列の行列であり、そのi行j列の要素は、∂J(W)/∂W[i,j]である。
評価関数J(W)の定義により、
∂J(W)/∂W = ∂Remp(W)/∂W + β(∂L(W)/∂W)
となる。
∂J(W)/∂W = ∂Remp(W)/∂W + β(∂L(W)/∂W)
となる。
ここで、
k[i] = argmaxj∈{1,2,…,C}\{y[i]}〈e[j],WTx[i]〉
とおけば、
∂Remp(W)/∂W = (1/L)Σi=1 L u'(h(x[i],y[i],W))x[i](e[k[i]] - e[y[i]])T
と計算することができる。
k[i] = argmaxj∈{1,2,…,C}\{y[i]}〈e[j],WTx[i]〉
とおけば、
∂Remp(W)/∂W = (1/L)Σi=1 L u'(h(x[i],y[i],W))x[i](e[k[i]] - e[y[i]])T
と計算することができる。
ここで、u(x)をステップ関数としたときには、
u'(x) = 0 (x≠0);
u'(x) = +∞ (x=0)
となるが、計算可能にするために、適当な正定数a,bを用いて、
u'(x) = 0 (|x|>a);
u'(x) = b (|x|≦a)
として計算する近似法を採用することができる。
u'(x) = 0 (x≠0);
u'(x) = +∞ (x=0)
となるが、計算可能にするために、適当な正定数a,bを用いて、
u'(x) = 0 (|x|>a);
u'(x) = b (|x|≦a)
として計算する近似法を採用することができる。
また、u(x)としてシグモイド関数や強ヒンジ関数を採用した場合には、いずれのxにおいても微分が可能であるから、その微分値を利用することになる。
一方、
(∂L(W)/∂W) = 2P1/2W
である。
(∂L(W)/∂W) = 2P1/2W
である。
したがって、現在の行列Wの値やサンプルベクトルx[i]およびそのクラスy[i]を参照することで、勾配∂J(W)/∂Wを計算することが可能である。
次に、勾配∂J(W)/∂Wを用いて、範囲α>0において、元の評価関数J(・)を用いて、評価値
J(W-α(∂J(W)/∂W))
を最小化するαを、線形探索により求める(ステップS304)。代入を←により表記すると、
α←argminα>0 J(W-α(∂J(W)/∂W))
という計算を行うことになる。
J(W-α(∂J(W)/∂W))
を最小化するαを、線形探索により求める(ステップS304)。代入を←により表記すると、
α←argminα>0 J(W-α(∂J(W)/∂W))
という計算を行うことになる。
次に求められたαにより、行列Wを、
W - α(∂J(W)/∂W)
により更新する(ステップS305)。すなわち、
W←W - α(∂J(W)/∂W)
である。
W - α(∂J(W)/∂W)
により更新する(ステップS305)。すなわち、
W←W - α(∂J(W)/∂W)
である。
この手法によれば、評価関数の値J(W)は単調に減少する。そして、ステップS302からの処理を繰り返す(ステップS306)。
行列Wが収束したら、評価関数J(W)を最小化する行列Wが得られたことになるので、本処理を終了する。
第2の最小化手法は、共役勾配法である。図4は、共役勾配法による計算の制御の流れを示すフローチャートである。以下、本図を参照して説明する。なお、以下の説明では、最急降下法と共通する処理については、適宜説明を省略する。
本処理が開始されると、まず、行列Wが初期化される(ステップS401)。
そして、行列Wが収束するまで、以下の処理を繰り返す(ステップS402〜ステップS409)。
まず、勾配∂J(W)/∂Wを計算する(ステップS403)。次に、現在までに完了した繰り返し計算の回数nが、行列Wに含まれる要素の個数C×Dの倍数であるか否かを判定する(ステップS404)。
この繰り返しを初めて行う際は、n = 0となるから、倍数である(ステップS404;Yes)と判定され、ステップS403にて計算された勾配∂J(W)/∂Wを行列Sに代入する(ステップS405)。すなわち、
S←∂J(W)/∂W
である。
S←∂J(W)/∂W
である。
ついで、線形探索により、
α←argminα>0 J(W-αS)
を計算し(ステップS406)、行列Wを、
W←W - αS
により更新する(ステップS407)。ステップS404〜ステップS407の処理は、上記の最急降下法と、事実上同一である。
α←argminα>0 J(W-αS)
を計算し(ステップS406)、行列Wを、
W←W - αS
により更新する(ステップS407)。ステップS404〜ステップS407の処理は、上記の最急降下法と、事実上同一である。
一方、繰り返し回数nがC×Dの倍数でない場合には(ステップS403;No)、ステップS403にて計算された勾配∂J(W)/∂Wの値と過去に使ったSの値をそのまま用いて、以下のようにSの計算を行う(ステップS408)。すなわち
λ←|∂J(W)/∂W|F 2/|S|F 2;
S←∂J(W)/∂W - λS
である。そして、ステップS406に進む。
λ←|∂J(W)/∂W|F 2/|S|F 2;
S←∂J(W)/∂W - λS
である。そして、ステップS406に進む。
このようにして、Wが収束するまで計算を繰り返し(ステップS409)、その後に、本処理を終了する。
なお、上記2種類の手法においては、線形探索によりαを求めて行列Wを更新していたが、この手法を適応オンライン学習に拡張することも可能である。すなわち、ある程度小さな正の学習係数εをαのかわりに利用するものである。εは定数としても良いし、繰り返しが進むにつれて次第に減少する変数としても良い。
このほか、ローカルミニマムに陥いることを防止するためには、シグモイド関数や強ヒンジ関数のパラメータaを、当初は大きな値にしておき、繰り返しが進むにつれて、すなわち、学習が進むにつれて、次第に小さな値にする、等の手法を採用することも可能である。
また、最小化にあたっては、ニュートン法やこれに準ずる手法などの最適化技術を採用することもできる。
このようにして事前処理が完了すると、識別器を構成する行列Wが得られたこととなるから、任意の入力に対して分類が可能となる。以下では、分類処理について説明する。
図5は、分類処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本処理が開始されると、対象受付部104は、D次元の分類対象ベクトルzの入力を受け付ける(ステップS501)。
上記と同様に、分類対象ベクトルzは、RAMやハードディスクなどに保存されたデータを読み込むこととするのが一般的であるが、文字認識の場合にはタッチパネル等に入力された画像データが分類対象ベクトルzに相当し、顔認識の場合にはディジタルカメラ等で撮影された画像データが分類対象ベクトルzに相当する。
そして、識別値計算部105は、整数i = 1,2,…,Cのそれぞれについて(ステップS502〜ステップS504)、当該i番目のクラスに対する当該分類対象ベクトルzの識別値
fi(z) = 〈e[i],WTz〉 = 〈W[i],z〉
を計算する(ステップS503)処理を繰り返す(ステップS504)。
fi(z) = 〈e[i],WTz〉 = 〈W[i],z〉
を計算する(ステップS503)処理を繰り返す(ステップS504)。
識別値fi(z)は、分類対象ベクトルzがクラスiに属する程度を表す指標であり、これが大きければ大きいほど、分類対象ベクトルzがクラスiに属する可能性が高いことになる。
さらに、分類部106は、計算された識別値f1(z),f2(z),…,fC(z)の最大値fk(z)を求め(ステップS505)、当該分類対象ベクトルzをクラスkに分類する旨を出力して(ステップS505)、本処理を終了する。
出力先は、RAMやハードディスクなどの記憶媒体とするのが一般的であるが、判定結果を画面に表示するなどの処理に供することとしても良い。
本実施形態は、サンプルベクトルや分類対象ベクトルが複数のクラスに属するようなマルチラベル問題に拡張することも可能である。
すなわち、整数i = 1,2,…,Lのそれぞれについて、当該サンプルベクトルx[i]は、1つのクラスy[i]に分類されるのではなく、n[i]個のクラスy[i,1],y[i,2],…,y[i,n[i]]に分類されるものとするのである。
この場合、事前処理においては、当該分類関数
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
ならびに当該標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
のかわりに、以下の分類関数および標本誤差を用いる。
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
ならびに当該標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
のかわりに、以下の分類関数および標本誤差を用いる。
すなわち、整数k = 1,2,…,n[i]のそれぞれについて、分類関数は、
h(x[i],y[i,k],W) = maxj∈{1,2,…,C}\{y[i,1],y[i,2],…,y[i,n[i]]}〈e[y[i,k]]-e[j],WTx[i]〉+δ
であり、標本誤差は、
Remp = (1/L)Σi=1 L(1/n[i])Σk=1 n[i] u(h(x[i],y[i,k],W));
である。
h(x[i],y[i,k],W) = maxj∈{1,2,…,C}\{y[i,1],y[i,2],…,y[i,n[i]]}〈e[y[i,k]]-e[j],WTx[i]〉+δ
であり、標本誤差は、
Remp = (1/L)Σi=1 L(1/n[i])Σk=1 n[i] u(h(x[i],y[i,k],W));
である。
一方、分類処理においては、分類対象ベクトルzが属するクラスの個数が事前に判明している場合には、識別値f1(z),f2(z),…,fC(z)の値が上位となるものの添字を当該個数分選び、その添字群を、当該分類対象ベクトルzが属するクラスとして出力する。
また、分類対象ベクトルzが属するクラスの個数が事前に判明していない場合には、識別値f1(z),f2(z),…,fC(z)の値が最大となるfk(z)を求め、fk(z)との差が所定範囲内となるもの(たとえば、値がfk(z)の0.9倍以上であるもの、等、fk(z)との比により下限を定めるのが典型的である。)を選択して、それらの添字群を、当該分類対象ベクトルzが属するクラスとして出力することとすれば良い。
本実施形態の分類装置101は、当該サンプルベクトルx[i]ならびに当該分類ベクトルzについて、経験カーネル写像(empirical kernel map)k(・)をあらかじめ適用して、カーネル法により分類するように構成することもできる。
カーネル法では、非線型写像Φ(・)およびカーネル関数k(・,・)を用いるが、本実施形態において、以下のように対応付けを行う。
すなわち、j = 1,2,…,Lについて、サンプルベクトルx[j]により、パラメータ行列W、および、i = 1,2,…,Cについて、行列Wを構成する列ベクトルW[i]を、以下のように表現する。
W[i] = Σj=1 L A[j,i]Φ(x[j]);
W = [Φ(x[1]),Φ(x[2]),…,Φ(x[L])]A
W[i] = Σj=1 L A[j,i]Φ(x[j]);
W = [Φ(x[1]),Φ(x[2]),…,Φ(x[L])]A
ここで、行列AはL行C列の行列であり、そのj行i列要素をA[j,i]と表記している。
すると、
WTΦ(z) = AT[Φ(x[1]),Φ(x[2]),…,Φ(x[L])]TΦ(z)
= ATk(z)
と書くことができる。
WTΦ(z) = AT[Φ(x[1]),Φ(x[2]),…,Φ(x[L])]TΦ(z)
= ATk(z)
と書くことができる。
ここで、
k(z) = [k(x[1],z),k(x[2],z),…,k(x[L],z)]T
は経験カーネル写像と呼ばれるものであり、k(x[i],x[j])をi行j列の要素とするL行L列の行列Kは、カーネルグラム行列と呼ばれるものである。
k(z) = [k(x[1],z),k(x[2],z),…,k(x[L],z)]T
は経験カーネル写像と呼ばれるものであり、k(x[i],x[j])をi行j列の要素とするL行L列の行列Kは、カーネルグラム行列と呼ばれるものである。
すると、
|W|F 2 = |K1/2A|F 2
なる関係が成立する。
|W|F 2 = |K1/2A|F 2
なる関係が成立する。
したがって、サンプルベクトルをそのまま事前処理で用いるのではなく、サンプルベクトルにk(・)を適用した結果を与えるとともに、チーホノフのノルムを用いて行列Wの複雑さL(W)を定め、P = Kとすれば、上記実施形態の行列Wを得る処理を、そのまま、カーネル法においてAを得る計算として利用することができる。
そして、分類処理においても、分類対象ベクトルをそのまま与えるのではなく、k(・)を適用した結果を与えることとすれば、カーネル法による分類を容易に実現することができる。
(実験結果)
本実施形態の性能を調べるため、UCIベンチマークデータセットおよびUSPS手書き数字データセットに対して、実験を行った。実験は、
(1)まず、これらのデータセットに対する認識精度を調べ、
(2)次に、USPSデータセットのサンプルに誤り(ミスラベル)を入れて、頑健さ(robustness)を調べる
ことで行った。
本実施形態の性能を調べるため、UCIベンチマークデータセットおよびUSPS手書き数字データセットに対して、実験を行った。実験は、
(1)まず、これらのデータセットに対する認識精度を調べ、
(2)次に、USPSデータセットのサンプルに誤り(ミスラベル)を入れて、頑健さ(robustness)を調べる
ことで行った。
以下では、
(a)本実施形態を実現するプログラムをC言語で作成し、Core 2 Quad(商標)2.66GHz CPU、8GB RAMからなる標準的なPCで動作させ、
(b)最急降下法と強ヒンジ関数を用い、
(c)公知技術である線形SVM、線形MSVMと比較する
実験の結果を説明する。
(a)本実施形態を実現するプログラムをC言語で作成し、Core 2 Quad(商標)2.66GHz CPU、8GB RAMからなる標準的なPCで動作させ、
(b)最急降下法と強ヒンジ関数を用い、
(c)公知技術である線形SVM、線形MSVMと比較する
実験の結果を説明する。
図6は、UCIベンチマークデータセットにおける認識精度の実験結果を示す表である。以下、本図を参照して説明する。
UCIベンチマークデータセットでは、複数の課題(Problem)が存在する。本図では、それぞれに対する本願手法(Proposed)、線形SVM(SVM)、線形MSVM(MSVM)の認識精度とその標準偏差のほか、片側t-検定のp-値が示されている。
認識精度とその標準偏差は、100の独立した課題に対するもので、パラメータは、10-fold cross validationにより最適値を求めた。
本図によれば、本願手法は、多くの場合、特に、文字認識(letter)、数字認識(optdigits,pendigits)において、線形SVMや線形MSVMよりも性能が良くなっていることがわかる。
図7は、学習における繰り返し回数と誤り率との関係を示すグラフである。以下、本図を参照して説明する。
本グラフは、UCIデータセットのうちの課題irisに対するもので、本図に示すように、繰り返し回数(number of iteration)が増加すると、誤り率(error rate)は減少していく。すなわち、本願手法は、安定に収束することがわかる。
図8は、USPS手書きデータセットに対する認識精度の実験結果を示す表である。以下、本図を参照して説明する。
USPSデータセットは、7291個の訓練用データと2007個のテストデータとで構成され、各データは16×16ピクセルの画像データである。本実験では、画像の画素値をそのまま、256次元のサンプルベクトルおよび分類対象ベクトルとして採用した。ただし前処理として、各ベクトルは単位ベクトルとなるように正規化した。
本図は、本願手法(Proposed)を線形SVM(Linear SVM)、線形MSVM(Linear Multi-class SVM)、フィッシャー判別法(Fisher discriminant)、パーセプトロン法(Perceptrn)と比較するもので、パラメータ(Parameter)と誤り率(Error rate)が示されている。パラメータは、10-fold cross validationによるものである。
本図によれば、本願手法の性能は、線形SVMや線形MSVMと同程度であり、フィッシャー判別法やパーセプトロン法より優れていることがわかる。
さらに、サンプルに誤りがある場合の頑健さを調べるため、全データから7291個の訓練データと2007個のテストデータを分離し、サンプルの一部のクラス(ラベル)をランダムに入れ換える試行を100回行い、平均誤り率とその標準偏差を調べた。
図9は、頑健さを調べる実験の結果を示す表であり、図10は、その結果を示すグラフである。以下、本図を参照して説明する。
これらの図では、本願手法(Proposed)、線形SVM(SVM/Linear SVM)、線形MSVM(MSVM/Linear MSVM)が比較されており、訓練データにおけるミスラベルの割合(rate of mislabeled training data/samples)がなし、1割、2割、3割の場合の誤り率(error rate)が示されている。
これらの図からも明らかな通り、本願手法は、サンプルベクトルにおけるクラスの割り振りが誤っている場合にも頑健であり、認識精度が高いことがわかる。
上記のように、本発明によれば、ベクトルを複数のクラスのいずれかに適切に分類するのに好適な分類装置、ならびに、これをコンピュータにて実現するプログラムを提供することができる。
101 分類装置
102 サンプル受付部
103 最小化部
104 対象受付部
105 識別値計算部
106 分類部
102 サンプル受付部
103 最小化部
104 対象受付部
105 識別値計算部
106 分類部
Claims (11)
- D次元のベクトルをクラス1,2,…,Cのいずれか少なくとも1つに分類する分類装置であって、
整数i = 1,2,…,Lのそれぞれについて、サンプルベクトルx[i]と、当該サンプルベクトルx[i]が分類されるクラスy[i]と、の入力を受け付けるサンプル受付部、
D次元のベクトルW[1],W[2],…,W[C]を列として並べたD行C列のパラメータ行列W = [W[1],W[2],…,W[C]]に対する評価関数J(W)を最小化するようなパラメータ行列Wを計算する最小化部であって、当該評価関数J(W)は、整数j = 1,2,…,Dのそれぞれについて、j番目の要素が1であり、それ以外の要素が0であるD次元の単位ベクトルe[j]と、所定の微小正数δと、ベクトル同士の内積を求める演算〈・,・〉と、行列の転置演算(・)Tと、整数i = 1,2,…,Cのそれぞれについての分類関数
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
と、条件
limx→-∞ u(x) = 0;
limx→+∞ u(x) = 1
を満たすステップ状関数u(x)と、標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
と、当該パラメータ行列Wの行列ノルムにより定義される当該パラメータ行列Wの複雑さL(W)と、所定の正則化パラメータβと、により、
J(W) = Remp(W) + βL(W)
と定義される最小化部、
D次元の分類対象ベクトルzの入力を受け付ける対象受付部、
整数i = 1,2,…,Cのそれぞれについて、当該i番目のクラスに対する当該分類対象ベクトルzの識別値
fi(z) = 〈e[i],WTz〉 = 〈W[i],z〉
を計算する識別値計算部、
前記計算された識別値f1(z),f2(z),…,fC(z)の最大値fk(z)を求め、当該分類対象ベクトルzをクラスkに分類する旨を出力する分類部
を備えることを特徴とする分類装置。 - 請求項1に記載の分類装置であって、
当該複雑さL(W)は、フロベニウス(Frobenius)のノルム
L(W) = |W|F 2 = Σi=1 C |W[i]|2
により定義される
ことを特徴とする分類装置。 - 請求項1に記載の分類装置であって、
当該複雑さL(W)は、準正定値行列Pによるチーホノフ(Tikhonov)のノルム
L(W) = |WTPW|F 2
により定義される
ことを特徴とする分類装置。 - 請求項1から3のいずれか1項に記載の分類装置であって、
当該ステップ状関数u(x)は、
u(x) = 0 (x<0);
u(x) = 1 (x≧0)
と定義されるステップ関数(step function)である
ことを特徴とする分類装置。 - 請求項1から3のいずれか1項に記載の分類装置であって、
当該ステップ状関数u(x)は、所定の正数aにより
u(x) = 1/〔1 + exp(-ax)〕
と定義されるシグモイド関数(sigmoid function)である
ことを特徴とする分類装置。 - 請求項1から3のいずれか1項に記載の分類装置であって、
当該ステップ状関数u(x)は、所定の正数aにより
u(x) = 0 (x<0);
u(x) = x/a (0≦x≦a);
u(x) = 1 (a<x)
と定義される強ヒンジ関数(robust hinge function)である
ことを特徴とする分類装置。 - 請求項1から6のいずれか1項に記載の分類装置であって、
前記最小化部は、最急降下法により、当該パラメータ行列Wを計算する
ことを特徴とする分類装置。 - 請求項1から6のいずれか1項に記載の分類装置であって、
前記最小化部は、共役勾配法により、当該パラメータ行列Wを計算する
ことを特徴とする分類装置。 - 請求項1から8のいずれか1項に記載の分類装置であって、
整数i = 1,2,…,Lのそれぞれについて、当該サンプルベクトルx[i]は、1つのクラスy[i]に分類されるのにかえて、1つ以上のクラスy[i,1],y[i,2],…,y[i,n[i]]に分類され、
当該評価関数J(W)は、当該分類関数
h(x[i],y[i],W) = maxj∈{1,2,…,C}\{y[i]}〈e[y[i]]-e[j],WTx[i]〉+δ
ならびに当該標本誤差
Remp = (1/L)Σi=1 L u(h(x[i],y[i],W))
により定義されるのにかえて、整数k = 1,2,…,n[i]のそれぞれについての分類関数
h(x[i],y[i,k],W) = maxj∈{1,2,…,C}\{y[i,1],y[i,2],…,y[i,n[i]]}〈e[y[i,k]]-e[j],WTx[i]〉+δ
ならびに標本誤差
Remp = (1/L)Σi=1 L(1/n[i])Σk=1 n[i] u(h(x[i],y[i,k],W));
により定義され、
前記分類部は、整数i = 1,2,…,Cのそれぞれについて、当該識別値fi(z)を、当該分類対象ベクトルzがクラスiに属する程度を表す指標として出力する
ことを特徴とする分類装置。 - 請求項1から9のいずれか1項に記載の分類装置であって、
当該サンプルベクトルx[i]ならびに当該分類ベクトルzについて、経験カーネル写像(empirical kernel map)k(・)をあらかじめ適用して、カーネル法により分類する
ことを特徴とする分類装置。 - コンピュータを請求項1から10のいずれか1項に記載の分類装置の各部として機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008050429A JP2009211123A (ja) | 2008-02-29 | 2008-02-29 | 分類装置、ならびに、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008050429A JP2009211123A (ja) | 2008-02-29 | 2008-02-29 | 分類装置、ならびに、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009211123A true JP2009211123A (ja) | 2009-09-17 |
Family
ID=41184258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008050429A Pending JP2009211123A (ja) | 2008-02-29 | 2008-02-29 | 分類装置、ならびに、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009211123A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011058605A1 (ja) * | 2009-11-12 | 2011-05-19 | 株式会社 東芝 | 計量空間学習装置 |
JP2014038081A (ja) * | 2013-03-27 | 2014-02-27 | Seiko Epson Corp | 分光計測方法、分光計測器、および変換行列の生成方法 |
JP2014203245A (ja) * | 2013-04-04 | 2014-10-27 | 独立行政法人産業技術総合研究所 | 多チャンネルデータ識別装置および多チャンネルデータ識別方法 |
CN105630742A (zh) * | 2015-12-28 | 2016-06-01 | 广州酷狗计算机科技有限公司 | 特征向量计算方法及装置 |
CN106203378A (zh) * | 2016-07-20 | 2016-12-07 | 武汉大学 | 基于领域与l2,1范数的光谱图像分类方法及系统 |
WO2023119969A1 (ja) * | 2021-12-20 | 2023-06-29 | コニカミノルタ株式会社 | 物体追跡方法及び物体追跡装置 |
-
2008
- 2008-02-29 JP JP2008050429A patent/JP2009211123A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011058605A1 (ja) * | 2009-11-12 | 2011-05-19 | 株式会社 東芝 | 計量空間学習装置 |
JP5355708B2 (ja) * | 2009-11-12 | 2013-11-27 | 株式会社東芝 | 計量空間学習装置及びパターン認識装置 |
US8943005B2 (en) | 2009-11-12 | 2015-01-27 | Kabushiki Kaisha Toshiba | Metric learning apparatus |
JP2014038081A (ja) * | 2013-03-27 | 2014-02-27 | Seiko Epson Corp | 分光計測方法、分光計測器、および変換行列の生成方法 |
JP2014203245A (ja) * | 2013-04-04 | 2014-10-27 | 独立行政法人産業技術総合研究所 | 多チャンネルデータ識別装置および多チャンネルデータ識別方法 |
CN105630742A (zh) * | 2015-12-28 | 2016-06-01 | 广州酷狗计算机科技有限公司 | 特征向量计算方法及装置 |
CN106203378A (zh) * | 2016-07-20 | 2016-12-07 | 武汉大学 | 基于领域与l2,1范数的光谱图像分类方法及系统 |
WO2023119969A1 (ja) * | 2021-12-20 | 2023-06-29 | コニカミノルタ株式会社 | 物体追跡方法及び物体追跡装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Makantasis et al. | Tensor-based classification models for hyperspectral data analysis | |
US11049011B2 (en) | Neural network classifier | |
CN108681746B (zh) | 一种图像识别方法、装置、电子设备和计算机可读介质 | |
US10909455B2 (en) | Information processing apparatus using multi-layer neural network and method therefor | |
Baştanlar et al. | Introduction to machine learning | |
Chapelle et al. | Choosing multiple parameters for support vector machines | |
Dehuri et al. | An improved swarm optimized functional link artificial neural network (ISO-FLANN) for classification | |
EP2973241B1 (en) | Signal processing systems | |
US20110202322A1 (en) | Computer Implemented Method for Discovery of Markov Boundaries from Datasets with Hidden Variables | |
JP4490876B2 (ja) | コンテンツ分類方法、コンテンツ分類装置、コンテンツ分類プログラムおよびコンテンツ分類プログラムを記録した記録媒体 | |
US20220067588A1 (en) | Transforming a trained artificial intelligence model into a trustworthy artificial intelligence model | |
JP2009211123A (ja) | 分類装置、ならびに、プログラム | |
Domeniconi et al. | Composite kernels for semi-supervised clustering | |
CN110705489B (zh) | 目标识别网络的训练方法、装置、计算机设备和存储介质 | |
US11593651B2 (en) | Method and system for training a neural network for time series data classification | |
Crabbé et al. | Label-free explainability for unsupervised models | |
WO2021238279A1 (zh) | 数据分类方法、分类器训练方法及系统 | |
Bonaccorso | Hands-On Unsupervised Learning with Python: Implement machine learning and deep learning models using Scikit-Learn, TensorFlow, and more | |
US10891559B2 (en) | Classifying test data based on a maximum margin classifier | |
Shen et al. | StructBoost: Boosting methods for predicting structured output variables | |
CN111783088B (zh) | 一种恶意代码家族聚类方法、装置和计算机设备 | |
Ghoshal et al. | Estimating uncertainty in deep learning for reporting confidence: An application on cell type prediction in testes based on proteomics | |
Oliva et al. | Advances and applications of optimised algorithms in image processing | |
Liu et al. | Reliable semi-supervised learning when labels are missing at random | |
Montesinos López et al. | Reproducing Kernel Hilbert spaces regression and classification methods |