(57)【要約】      （修正有）【課題】ベクトルを複数のクラスのいずれかに適切に分類する分類装置等を提供する。【解決手段】分類装置１０１において、最小化部１０３は、サンプル受付部１０２が受け付けたサンプルベクトルx[i]とそのクラスy[i]を参照して、パラメータ行列Wを用いて分類した場合の標本誤差Rempと、行列Wの行列ノルムにより表現される複雑さL(W)との、線形和からなる評価関数J(W)=Remp+βL(W)を最小化するように、最急降下法や共役勾配法により行列Wを求め、識別値計算部１０５は、対象受付部１０４が受け付けた分類対象ベクトルzのi番目のクラスに対する識別値fi(z)を、行列Wのi列目の列ベクトルW[i]とzの内積により定め、分類部１０６は、その最大識別値fk(z)から、分類対象ベクトルzをクラスkに分類する。【選択図】図１
2009211123.tif 000002
【特許請求の範囲】
【請求項１】
D次元のベクトルをクラス1，2，…，Cのいずれか少なくとも１つに分類する分類装置であって、
整数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=1L 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に分類する旨を出力する分類部
を備えることを特徴とする分類装置。
【請求項２】
請求項１に記載の分類装置であって、
当該複雑さL(W)は、フロベニウス（Frobenius）のノルム
L(W) = |W|F2 = Σi=1C |W[i]|2
により定義される
ことを特徴とする分類装置。
【請求項３】
請求項１に記載の分類装置であって、
当該複雑さL(W)は、準正定値行列Pによるチーホノフ（Tikhonov）のノルム
L(W) = |WTPW|F2
により定義される
ことを特徴とする分類装置。
【請求項４】
請求項１から３のいずれか１項に記載の分類装置であって、
当該ステップ状関数u(x)は、
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)は、所定の正数aにより
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]は、１つのクラスy[i]に分類されるのにかえて、１つ以上のクラス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=1L 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=1L(1/n[i])Σk=1n[i] u(h(x[i],y[i,k],W))；
により定義され、
前記分類部は、整数i = 1，2，…，Cのそれぞれについて、当該識別値fi(z)を、当該分類対象ベクトルzがクラスiに属する程度を表す指標として出力する
ことを特徴とする分類装置。
【請求項１０】
請求項１から９のいずれか１項に記載の分類装置であって、
当該サンプルベクトルx[i]ならびに当該分類ベクトルzについて、経験カーネル写像（empirical kernel map）k(・)をあらかじめ適用して、カーネル法により分類する
ことを特徴とする分類装置。
【請求項１１】
コンピュータを請求項１から１０のいずれか１項に記載の分類装置の各部として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトルを複数のクラスのいずれかに適切に分類するのに好適な分類装置、ならびに、これをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、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, １９９７年
【０００４】
パターン識別問題は、いずれのクラスに属するかが判明しているサンプルを元に、未知のパターンすべてに対しての誤差（汎化誤差）を最小にする問題と考えることができるが、汎化誤差を直接評価することは不可能であるから、標本誤差を用いて識別器の学習を行うことになる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、標本誤差Rempと汎化誤差Rとは一致しないのが一般的であり、これらの差
η = R - Remp
は、通常、正の値となる。
【０００６】
一方で、ηは識別器の複雑さに対して単調増加することが経験的に知られている。ところが、標本誤差Rempは、識別器が複雑になればなるほど、単調減少する。
【０００７】
そこで、互いにトレードオフの関係にある両者をうまく調節して、汎化誤差Rを小さくする技術が求められている。
【０００８】
本発明は、以上のような課題を解決するためのもので、ベクトルを複数のクラスのいずれかに適切に分類するのに好適な分類装置、ならびに、これをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の観点に係る分類装置は、D次元のベクトルをクラス1，2，…，Cのいずれか少なくとも１つに分類し、サンプル受付部、最小化部、対象受付部、識別値計算部、分類部を備え、以下のように構成する。
【００１０】
すなわち、サンプル受付部は、整数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=1L 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に分類する旨を出力する。
【００１６】
また、本発明の分類装置において、当該複雑さL(W)は、フロベニウス（Frobenius）のノルム
L(W) = |W|F2 = Σi=1C |W[i]|2
により定義されるように構成することができる。
【００１７】
また、本発明の分類装置において、当該複雑さL(W)は、準正定値行列Pによるチーホノフ（Tikhonov）のノルム
L(W) = |WTPW|F2
により定義されるように構成することができる。
【００１８】
また、本発明の分類装置において、当該ステップ状関数u(x)は、
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)は、所定の正数aにより
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]は、１つのクラスy[i]に分類されるのにかえて、１つ以上のクラス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=1L 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=1L(1/n[i])Σk=1n[i] u(h(x[i],y[i,k],W))；
により定義され、分類部は、整数i = 1，2，…，Cのそれぞれについて、当該識別値fi(z)を、当該分類対象ベクトルzがクラスiに属する程度を表す指標として出力するように構成することができる。
【００２４】
また、本発明の分類装置において、当該サンプルベクトルx[i]ならびに当該分類ベクトルzについて、経験カーネル写像（empirical kernel map）k(・)をあらかじめ適用して、カーネル法により分類するように構成することができる。
【００２５】
本発明のその他の観点に係るプログラムは、コンピュータを上記の分類装置の各部として機能させるように構成する。
【００２６】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００２７】
上記プログラムは、プログラムが実行されるコンピュータやディジタル信号プロセッサとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータやディジタル信号プロセッサとは独立して配布・販売することができる。
【発明の効果】
【００２８】
本発明によれば、ベクトルを複数のクラスのいずれかに適切に分類するのに好適な分類装置、ならびに、これをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２９】
以下に本発明の実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００３０】
また、以下の説明では、一般的なコンピュータ（ＣＰＵ（Central Processing Unit）の制御下で、ＲＡＭ（Random Access Memory）を一時記憶とし、ハードディスクを不揮発記憶とし、入出力ポートで外部機器とのやりとりを行うのが典型的である。）等の情報処理装置にてプログラムを動作させることで分類装置を実現する典型例を説明するが、ＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）、その他の電子回路によって実現することも可能である。
【実施例１】
【００３１】
図１は、本発明の実施形態の一つに係る分類装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００３２】
本実施形態に係る分類装置１０１は、D次元のベクトルをクラス1，2，…，Cのいずれか少なくとも１つに分類するものであり、サンプル受付部１０２、最小化部１０３、対象受付部１０４、識別値計算部１０５、分類部１０６を有する。
【００３３】
これらの各要素は、ＣＰＵ（Central Processing Unit）の制御の下、ＲＡＭ（Random Access Memory）やハードディスク、各種のメモリカードや外部記憶装置を一時的な記憶領域ならびにデータの入力元および出力先として使用できるようなコンピュータにおいて、所定のプログラムを実行することによって実現することができる。
【００３４】
ここで、サンプル受付部１０２、最小化部１０３は、サンプルベクトルを用いて識別器を構成するための要素であり、対象受付部１０４、識別値計算部１０５、分類部１０６は、構成された識別器を分類対象ベクトルに対して利用するための要素である、と考えることができる。
【００３５】
すなわち、当該分類装置１０１を識別器として利用するにあたっては、あらかじめ、どのクラスに分類されるかが確定しているサンプルベクトルを用意しておき、これによって「学習」に相当する事前処理を実行する必要がある。
【００３６】
サンプルベクトルや分類対象ベクトルとしては、現実の物理対象を観測した結果、もしくは、その特徴量を抽出した結果を適用するのが典型的である。また、サンプルベクトルは、典型的には人手で、どのクラスに属するのかをあらかじめ分類しておく。
【００３７】
図２は、事前処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００３８】
まず、サンプル受付部１０２は、整数i = 1，2，…，Lのそれぞれについて、サンプルベクトルx[i]と、当該サンプルベクトルx[i]が分類されるクラスy[i]と、の入力を受け付ける（ステップＳ２０１）。
【００３９】
上記のように、本実施形態では、あるサンプルベクトルx[i]が属するクラスの個数は１つに限られるが、後述するように、１つ以上のクラスに属するマルチクラス問題に、本発明を適用することも可能である。
【００４０】
また、サンプルベクトルx[i]とそのクラスy[i]とは、事前に人間が対応付けをしておくのが一般的であるが、本技術では、この対応付けに少々の誤りがあった場合であっても、高い精度で分類ができることが実験により判明している。
【００４１】
サンプルベクトルx[i]とそのクラスy[i]とは、外部記憶装置などからＲＡＭに読み込まれるように構成するのが一般的である。
【００４２】
次に、一方、最小化部１０３は、D次元のベクトルW[1]，W[2]，…，W[C]を列として並べたD行C列のパラメータ行列W = [W[1]，W[2]，…，W[C]]に対する評価関数J(W)を最小化するようなパラメータ行列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=1L u(h(x[i],y[i],W))
と、
（ｈ）当該パラメータ行列Wの行列ノルムにより定義される当該パラメータ行列Wの複雑さL(W)と、
（ｉ）所定の正則化パラメータβと、
により、
J(W) = Remp(W) + βL(W)
と定義される。
【００４５】
評価関数J(W)を最小化するような行列Wを求めるにあたっては、最急降下法や共役勾配法など、各種の技術を適用することができる。すなわち、ＲＡＭなどに行列Wを記憶する領域を確保し、適当な値（たとえば所定範囲の値の乱数等）で行列Wの各要素を初期化した後、繰り返し計算を行って、行列Wを更新し、これが収束したら、最小化が完了したものとする。
【００４６】
ここで、上記（ｅ）における演算＼は、集合の引き算を意味する。具体的には、集合A，Bに対して、
A＼B = ｛a| (a∈A)かつ (a∈Bでない)｝
との演算を意味する。
【００４７】
また、上記（ｆ）ステップ状関数としては、たとえば、以下のような関数を採用することができる。
（１）以下のように定義されるステップ関数（step function）。
u(x) = 0   (x<0)；
u(x) = 1   (x≧0)
（２）所定の正数aにより以下のように定義されるシグモイド関数（sigmoid function）。
u(x) = 1/〔1 + exp(-ax)〕
（３）所定の正数aにより以下のように定義される強ヒンジ関数（robust hinge function）。
u(x) = 0   (x<0)；
u(x) = x/a   (0≦x≦a)；
u(x) = 1   (a<x)
【００４８】
さらに、上記（ｈ）における複雑さL(W)としては、たとえば、以下のような行列ノルムを採用することができる。
（１）以下のように定義されるフロベニウス（Frobenius）のノルム。
L(W) = |W|F2 = Σi=1C |W[i]|2
（２）準正定値行列Pにより以下のように定義されるチーホノフ（Tikhonov）のノルム。
L(W) = |WTPW|F2
ここでPを単位行列とすれば、チーホノフのノルムはフロベニウスのノルムに一致する。
【００４９】
以下、最小化の具体的な手法を説明する。第１の最小化手法は、最急降下法である。図３は、最急降下法による計算の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００５０】
本処理が開始されると、ＣＰＵは、ＲＡＭに確保された行列Wの各要素を適当な値で初期化する（ステップＳ３０１）。たとえば、乱数により初期化を行ったり、０と１とを交互に埋めることで初期化を行ったり、以前に利用した行列の値を初期値として採用したり、等、種々の手法が利用できる。
【００５１】
ついで、行列Wが収束するまで、以下の処理を繰り返す（ステップＳ３０２〜ステップＳ３０６）。
【００５２】
まず、勾配∂J(W)/∂Wを計算する（ステップＳ３０３）。行列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)
となる。
【００５４】
ここで、
k[i] = argmaxj∈｛1，2，…，C｝＼｛y[i]｝〈e[j],WTx[i]〉
とおけば、
∂Remp(W)/∂W = (1/L)Σi=1L 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)としてシグモイド関数や強ヒンジ関数を採用した場合には、いずれのxにおいても微分が可能であるから、その微分値を利用することになる。
【００５７】
一方、
(∂L(W)/∂W) = 2P1/2W
である。
【００５８】
したがって、現在の行列Wの値やサンプルベクトルx[i]およびそのクラスy[i]を参照することで、勾配∂J(W)/∂Wを計算することが可能である。
【００５９】
次に、勾配∂J(W)/∂Wを用いて、範囲α>0において、元の評価関数J(・)を用いて、評価値
J(W-α(∂J(W)/∂W))
を最小化するαを、線形探索により求める（ステップＳ３０４）。代入を←により表記すると、
α←argminα>0 J(W-α(∂J(W)/∂W))
という計算を行うことになる。
【００６０】
次に求められたαにより、行列Wを、
W - α(∂J(W)/∂W)
により更新する（ステップＳ３０５）。すなわち、
W←W - α(∂J(W)/∂W)
である。
【００６１】
この手法によれば、評価関数の値J(W)は単調に減少する。そして、ステップＳ３０２からの処理を繰り返す（ステップＳ３０６）。
【００６２】
行列Wが収束したら、評価関数J(W)を最小化する行列Wが得られたことになるので、本処理を終了する。
【００６３】
第２の最小化手法は、共役勾配法である。図４は、共役勾配法による計算の制御の流れを示すフローチャートである。以下、本図を参照して説明する。なお、以下の説明では、最急降下法と共通する処理については、適宜説明を省略する。
【００６４】
本処理が開始されると、まず、行列Wが初期化される（ステップＳ４０１）。
【００６５】
そして、行列Wが収束するまで、以下の処理を繰り返す（ステップＳ４０２〜ステップＳ４０９）。
【００６６】
まず、勾配∂J(W)/∂Wを計算する（ステップＳ４０３）。次に、現在までに完了した繰り返し計算の回数nが、行列Wに含まれる要素の個数C×Dの倍数であるか否かを判定する（ステップＳ４０４）。
【００６７】
この繰り返しを初めて行う際は、n = 0となるから、倍数である（ステップＳ４０４；Ｙｅｓ）と判定され、ステップＳ４０３にて計算された勾配∂J(W)/∂Wを行列Sに代入する（ステップＳ４０５）。すなわち、
S←∂J(W)/∂W
である。
【００６８】
ついで、線形探索により、
α←argminα>0 J(W-αS)
を計算し（ステップＳ４０６）、行列Wを、
W←W - αS
により更新する（ステップＳ４０７）。ステップＳ４０４〜ステップＳ４０７の処理は、上記の最急降下法と、事実上同一である。
【００６９】
一方、繰り返し回数nがC×Dの倍数でない場合には（ステップＳ４０３；Ｎｏ）、ステップＳ４０３にて計算された勾配∂J(W)/∂Wの値と過去に使ったSの値をそのまま用いて、以下のようにSの計算を行う（ステップＳ４０８）。すなわち
λ←|∂J(W)/∂W|F2/|S|F2；
S←∂J(W)/∂W - λS
である。そして、ステップＳ４０６に進む。
【００７０】
このようにして、Wが収束するまで計算を繰り返し（ステップＳ４０９）、その後に、本処理を終了する。
【００７１】
なお、上記２種類の手法においては、線形探索によりαを求めて行列Wを更新していたが、この手法を適応オンライン学習に拡張することも可能である。すなわち、ある程度小さな正の学習係数εをαのかわりに利用するものである。εは定数としても良いし、繰り返しが進むにつれて次第に減少する変数としても良い。
【００７２】
このほか、ローカルミニマムに陥いることを防止するためには、シグモイド関数や強ヒンジ関数のパラメータaを、当初は大きな値にしておき、繰り返しが進むにつれて、すなわち、学習が進むにつれて、次第に小さな値にする、等の手法を採用することも可能である。
【００７３】
また、最小化にあたっては、ニュートン法やこれに準ずる手法などの最適化技術を採用することもできる。
【００７４】
このようにして事前処理が完了すると、識別器を構成する行列Wが得られたこととなるから、任意の入力に対して分類が可能となる。以下では、分類処理について説明する。
【００７５】
図５は、分類処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００７６】
本処理が開始されると、対象受付部１０４は、D次元の分類対象ベクトルzの入力を受け付ける（ステップＳ５０１）。
【００７７】
上記と同様に、分類対象ベクトルzは、ＲＡＭやハードディスクなどに保存されたデータを読み込むこととするのが一般的であるが、文字認識の場合にはタッチパネル等に入力された画像データが分類対象ベクトルzに相当し、顔認識の場合にはディジタルカメラ等で撮影された画像データが分類対象ベクトルzに相当する。
【００７８】
そして、識別値計算部１０５は、整数i = 1，2，…，Cのそれぞれについて（ステップＳ５０２〜ステップＳ５０４）、当該i番目のクラスに対する当該分類対象ベクトルzの識別値
fi(z) = 〈e[i],WTz〉 = 〈W[i],z〉
を計算する（ステップＳ５０３）処理を繰り返す（ステップＳ５０４）。
【００７９】
識別値fi(z)は、分類対象ベクトルzがクラスiに属する程度を表す指標であり、これが大きければ大きいほど、分類対象ベクトルzがクラスiに属する可能性が高いことになる。
【００８０】
さらに、分類部１０６は、計算された識別値f1(z)，f2(z)，…，fC(z)の最大値fk(z)を求め（ステップＳ５０５）、当該分類対象ベクトルzをクラスkに分類する旨を出力して（ステップＳ５０５）、本処理を終了する。
【００８１】
出力先は、ＲＡＭやハードディスクなどの記憶媒体とするのが一般的であるが、判定結果を画面に表示するなどの処理に供することとしても良い。
【実施例２】
【００８２】
本実施形態は、サンプルベクトルや分類対象ベクトルが複数のクラスに属するようなマルチラベル問題に拡張することも可能である。
【００８３】
すなわち、整数i = 1，2，…，Lのそれぞれについて、当該サンプルベクトルx[i]は、１つのクラス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=1L 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=1L(1/n[i])Σk=1n[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)の０.９倍以上であるもの、等、fk(z)との比により下限を定めるのが典型的である。）を選択して、それらの添字群を、当該分類対象ベクトルzが属するクラスとして出力することとすれば良い。
【実施例３】
【００８８】
本実施形態の分類装置１０１は、当該サンプルベクトル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=1L 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)
と書くことができる。
【００９３】
ここで、
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|F2 = |K1/2A|F2
なる関係が成立する。
【００９５】
したがって、サンプルベクトルをそのまま事前処理で用いるのではなく、サンプルベクトルにk(・)を適用した結果を与えるとともに、チーホノフのノルムを用いて行列Wの複雑さL(W)を定め、P = Kとすれば、上記実施形態の行列Wを得る処理を、そのまま、カーネル法においてAを得る計算として利用することができる。
【００９６】
そして、分類処理においても、分類対象ベクトルをそのまま与えるのではなく、k(・)を適用した結果を与えることとすれば、カーネル法による分類を容易に実現することができる。
【００９７】
（実験結果）
本実施形態の性能を調べるため、ＵＣＩベンチマークデータセットおよびＵＳＰＳ手書き数字データセットに対して、実験を行った。実験は、
（１）まず、これらのデータセットに対する認識精度を調べ、
（２）次に、ＵＳＰＳデータセットのサンプルに誤り（ミスラベル）を入れて、頑健さ（robustness）を調べる
ことで行った。
【００９８】
以下では、
（ａ）本実施形態を実現するプログラムをＣ言語で作成し、Ｃｏｒｅ  ２  Ｑｕａｄ（商標）２.６６ＧＨｚ  ＣＰＵ、８ＧＢ  ＲＡＭからなる標準的なＰＣで動作させ、
（ｂ）最急降下法と強ヒンジ関数を用い、
（ｃ）公知技術である線形ＳＶＭ、線形ＭＳＶＭと比較する
実験の結果を説明する。
【００９９】
図６は、ＵＣＩベンチマークデータセットにおける認識精度の実験結果を示す表である。以下、本図を参照して説明する。
【０１００】
ＵＣＩベンチマークデータセットでは、複数の課題（Problem）が存在する。本図では、それぞれに対する本願手法（Proposed）、線形ＳＶＭ（SVM）、線形ＭＳＶＭ（MSVM）の認識精度とその標準偏差のほか、片側t-検定のp-値が示されている。
【０１０１】
認識精度とその標準偏差は、１００の独立した課題に対するもので、パラメータは、10-fold cross validationにより最適値を求めた。
【０１０２】
本図によれば、本願手法は、多くの場合、特に、文字認識（letter）、数字認識（optdigits，pendigits）において、線形ＳＶＭや線形ＭＳＶＭよりも性能が良くなっていることがわかる。
【０１０３】
図７は、学習における繰り返し回数と誤り率との関係を示すグラフである。以下、本図を参照して説明する。
【０１０４】
本グラフは、ＵＣＩデータセットのうちの課題irisに対するもので、本図に示すように、繰り返し回数（number of iteration）が増加すると、誤り率（error rate）は減少していく。すなわち、本願手法は、安定に収束することがわかる。
【０１０５】
図８は、ＵＳＰＳ手書きデータセットに対する認識精度の実験結果を示す表である。以下、本図を参照して説明する。
【０１０６】
ＵＳＰＳデータセットは、７２９１個の訓練用データと２００７個のテストデータとで構成され、各データは１６×１６ピクセルの画像データである。本実験では、画像の画素値をそのまま、２５６次元のサンプルベクトルおよび分類対象ベクトルとして採用した。ただし前処理として、各ベクトルは単位ベクトルとなるように正規化した。
【０１０７】
本図は、本願手法（Proposed）を線形ＳＶＭ（Linear SVM）、線形ＭＳＶＭ（Linear Multi-class SVM）、フィッシャー判別法（Fisher discriminant）、パーセプトロン法（Perceptrn）と比較するもので、パラメータ（Parameter）と誤り率（Error rate）が示されている。パラメータは、10-fold cross validationによるものである。
【０１０８】
本図によれば、本願手法の性能は、線形ＳＶＭや線形ＭＳＶＭと同程度であり、フィッシャー判別法やパーセプトロン法より優れていることがわかる。
【０１０９】
さらに、サンプルに誤りがある場合の頑健さを調べるため、全データから７２９１個の訓練データと２００７個のテストデータを分離し、サンプルの一部のクラス（ラベル）をランダムに入れ換える試行を１００回行い、平均誤り率とその標準偏差を調べた。
【０１１０】
図９は、頑健さを調べる実験の結果を示す表であり、図１０は、その結果を示すグラフである。以下、本図を参照して説明する。
【０１１１】
これらの図では、本願手法（Proposed）、線形ＳＶＭ（SVM/Linear SVM）、線形ＭＳＶＭ（MSVM/Linear MSVM）が比較されており、訓練データにおけるミスラベルの割合（rate of mislabeled training data/samples）がなし、１割、２割、３割の場合の誤り率（error rate）が示されている。
【０１１２】
これらの図からも明らかな通り、本願手法は、サンプルベクトルにおけるクラスの割り振りが誤っている場合にも頑健であり、認識精度が高いことがわかる。
【産業上の利用可能性】
【０１１３】
上記のように、本発明によれば、ベクトルを複数のクラスのいずれかに適切に分類するのに好適な分類装置、ならびに、これをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０１１４】
【図１】本実施形態に係る分類装置の概要構成を示す模式図である。
【図２】本実施形態に係る分類装置にて実行される事前処理の制御の流れを示すフローチャートである。
【図３】最急降下法における制御の流れを示すフローチャートである。
【図４】共役勾配法における制御の流れを示すフローチャートである。
【図５】分類処理の制御の流れを示すフローチャートである。
【図６】ＵＣＩベンチマークデータセットにおける認識精度の実験結果を示す表である。
【図７】学習における繰り返し回数と誤り率との関係を示すグラフである。
【図８】ＵＳＰＳ手書きデータセットに対する認識精度の実験結果を示す表である。
【図９】認識手法の頑健さを調べる実験の結果を示す表である。
【図１０】認識手法の頑健さを調べる実験の結果を示すグラフである。
【符号の説明】
【０１１５】
１０１  分類装置
１０２  サンプル受付部
１０３  最小化部
１０４  対象受付部
１０５  識別値計算部
１０６  分類部
【図１】
2009211123.tif 000003
【図２】
2009211123.tif 000004
【図３】
2009211123.tif 000005
【図４】
2009211123.tif 000006
【図５】
2009211123.tif 000007
【図６】
2009211123.tif 000008
【図７】
2009211123.tif 000009
【図８】
2009211123.tif 000010
【図９】
2009211123.tif 000011
【図１０】
2009211123.tif 000012