【実施例1】
【0013】
まず、本発明の識別方法について説明する。複数の計測装置から得られる複数チャネルの時系列信号である多チャンネル信号は、縦軸をチャネル番号、横軸を時間(時刻)として電圧などの各測定値を2次元に並べた特徴行列で表すことができる。このような特徴行列に対する双線形モデルによる識別(判定、推定値を求める)は以下の数式1によって行われる。なお、特徴行列の行数は列数よりも大きいものとする。(なお、列数が行数よりも大きい場合には特徴行列を転置すればよい。)
【0014】
【数1】
【0015】
なお、trはトレース(行列の対角和)である。識別値(判定値、推定値)yハットは特徴行列Xと識別行列Wから算出される。識別行列Wは、数式2に示す学習用の特徴行列(学習サンプル)Xおよびその教示信号(評価値、学習サンプルのラベル)y(例えば正常が+1、異常が−1)から後述する学習処理によって求める。
【0016】
【数2】
【0017】
ここで、識別行列Wとしては以下のような条件が必要とされる。即ち、(1)識別対象を高精度で識別する。(2)計算量が少なく高速な識別を可能とするためにランク数は出来る限り小さい。なお、ランク数(行列の階数、rank)とは、行列の列ベクトルの一次独立なものの最大個数であり、ランク数が増えると計算量がランク数に線形に増加する。これらの条件を満足させるために、以下の数式3に示す目的関数を最小化するような識別行列Wを求める必要がある。
【0018】
【数3】
【0019】
なお、数式3の第1項はWのランク数を表す項であり、第2項は各学習データの識別誤差の和を表す項である。しかし、ランク数を直接最小化させる数式3の最適化問題は効率的に解くことが困難である。そこで、本発明においては識別行列Wの特異値の和であるトレースノルム|W|
Σに着目し、トレースノルム|W|
Σが小さければランク数も小さいことを利用して、以下の数式4に示すように目的関数のランク数をトレースノルムに置き換える。
【0020】
【数4】
【0021】
以下、この数式4の目的関数の式の変形を行う。まず、トレースノルム|W|
Σは以下の数式5の不等式を満足するので、数式4は以下に示す数式6に変形できる。
【0022】
【数5】
【0023】
【数6】
【0024】
更に、数式6の第2項および第3項は、数式7に示すような式の置き換え(双対問題)が可能であるので、最適化対象であるW
cをΣ
c=W
c*W
cTに置き換えることで数式6は数式8に変形できる。
【0025】
【数7】
なお、数式7の最後の行の不等号に似た記号および0は非負定値を表す。
【0026】
【数8】
【0027】
本発明においては、この数式8を目的関数として、後述する最急降下法によって新たな最適化対象であるΣ
cを求め、Σ
cから以下の数式9によって識別行列Wを求める。
【0028】
【数9】
【0029】
そして、識別処理においては特徴行列Xから特徴行列Wを用いて識別値yを求める。
【0030】
次に、実施例の装置について説明する。
図1は本発明の多チャンネルデータ識別装置のハードウェア構成を示すブロック図である。
図1はセンサー信号を入力するための構成であり、複数のセンサー10、11、12は例えば農業用ビニールハウスの内部の温度、湿度、CO
2濃度をデジタル信号に変換し、コンピューター15に出力する。
【0031】
コンピューター15は例えばアナログ電気信号を取り込むための複数のインターフェイス回路(アナログ信号入力回路:サンプリング、A/D変換回路)あるいはデジタル信号を取り込むための複数のインターフェイス回路を備えた周知のパソコン(PC)であってもよい。本発明は、パソコンなどの周知の任意のコンピューター15に後述する処理を実行するプログラムを作成、インストールすることにより実現される。
【0032】
モニタ装置12はコンピューター11の周知の出力装置であり、例えばハウス内の環境や病気予兆の有無について適/不適、正常/異常などの識別結果等をオペレータに表示するために使用される。キーボード13およびマウス14は、オペレータが入力に使用する周知の入力装置である。
【0033】
図2は本発明を使用した学習処理の内容を示すフローチャートである。学習処理においては最急降下法と言われる最適化手法を採用している。前記した数式8に示す目的関数の1次微分を数式10に示す。
【0034】
【数10】
【0035】
学習処理においては上記した数式10の一次微分の大きさが所定の値ε未満になるまで処理を繰り返す。学習処理においては、まず、数式2に示す学習用の特徴行列Xおよびその評価値y(例えば正常が+1、異常が−1)のセットを多数コンピューター15の外部記憶装置などに用意しておく。
【0036】
S10においては、行列Σ
cをランダムな値で初期化し、j=0の時の初期値とする。S11においては、jに1を代入する。S12においては、λに1を代入する。
【0037】
S13においては、Σ
c[j]=Σ
c[j-1]−λ∇J(Σ
c[j-1])を計算する。S14においては、S13で求めたΣ
c[j]を、Σ
c[j]=VΩV
T=Σ
idω
iv
iv
iTと固有分解する。なお、V=[v
1,…,v
d]:固有ベクトル、Ω=diag(ω
1,…,ω
d):固有値を対角に並べた対角行列である。
【0038】
S15においては、負の固有値を除外して、Σ
cを更新する。Σ
c[j]=Σ
i|ωi>0ω
iv
iv
iT、S16においては、J(Σ
c[j])<J(Σ
c[j-1])?か否かが判定され、判定結果が否定の場合にはS17に移行するが、肯定の場合にはS18に移行する。S17においては、λに0.5λを代入してS13に移行する。
【0039】
S18においては、||∇J(Σ
c[j]) ||
2<εか否かが判定され、判定結果が否定の場合にはS19に移行するが、肯定の場合には学習処理を終了する。なお、「||…||」はノルムを表す記号であり、εは非常に小さな定数(例えばε=10
-4)である。S19においては、jに1を加算して、S12に移行する。以上の装置および学習処理によって、高精度かつ少ない計算量で識別行列Wが得られる。