以下に本発明の一実施形態について図面を参照して説明する。図1には、本実施形態の予兆検知システム10の全体構成が示されている。図2および図3には、予兆特徴抽出器50および予兆検知器60の内部構成の詳細が示されている。また、図4および図5には、予兆検知器60の学習時および運用時の状況が示され、図6には、クラウドソーシング作業画面200の一例が示されている。さらに、図7には、予兆検知処理の全体的な流れがフローチャートで示され、図8~図13には、予兆検知結果の各種の出力形式が示されている。
<予兆検知システム10の全体構成>
図1において、予兆検知システム10は、予兆検知対象についての状態を示す状態データを取り込む状態データ取込機器20と、この状態データ取込機器20により取り込んだ状態データをネットワーク1上に送出する接続装置21と、それぞれネットワーク1に接続された装置やシステムである予兆検知処理装置30、データ収集装置80、学習装置90、およびクラウドソーシングシステム100とを備えて構成されている。
また、ネットワーク1には、ユーザ(予兆検知結果の利用者)が操作するユーザ端末120と、本システムの管理者が操作する管理者端末130とが接続されている。さらに、クラウドソーシングシステム100には、依頼された仕事(いわゆるクラウドソーシングマイクロタスク)を処理する多数の作業者(群衆)が操作する多数の作業者端末110が、ネットワーク(ネットワーク1またはその他のネットワーク)を介して接続されるようになっている。
ここで、ネットワーク1は、主としてインターネットのような外部ネットワークであるが、これとイントラネットやLAN等の内部ネットワークとの組合せ等でもよく、有線であるか、無線であるか、有線・無線の混在型であるかは問わない。また、ネットワーク1は、例えば、社内、工場内、事業所内、グループ企業内、学内、所定の地域内等に限定されたイントラネットやLAN等の内部ネットワークであってもよい。
また、クラウドソーシングでは、通常は、インターネットのような広範なネットワークに接続された多数の作業者(群衆)の作業者端末110に対し、依頼する仕事を送信するが、ある程度の人数の作業者を確保できることを前提とし、イントラネットやLAN等の内部ネットワークとすることにより作業者を限定(例えば、幾つかの大学の学生だけとする等)してもよい。なお、作業者の限定は、ネットワークによる限定ではなく、アクセス制限や作業資格制限等により行ってもよい。
さらに、本実施形態では、状態データ取込機器20により取り込んだ状態データを用いて予兆検知に関する各種処理を行うためのシステム構成として、それぞれ別々のコンピュータからなる接続装置21と、予兆検知処理装置30と、データ収集装置80と、学習装置90と、クラウドソーシングシステム100とをネットワーク1で接続した構成を採用しているが、このようなネットワーク接続によるシステム構成は一例に過ぎない。従って、予兆検知システム10は、必ずしもこのように複数台のコンピュータにより構成されている必要はなく、各装置21,30,80,90およびシステム100で実現される機能を1台のコンピュータにまとめた構成としてもよく、あるいは各機能を任意の台数のコンピュータに分散してもよい。例えば、予兆検知処理装置30で実現される各機能(状態データ取得手段40、予兆特徴抽出器50、予兆検知器60、出力手段70の各機能)を、複数台のコンピュータに分散してもよく、あるいは、予兆検知処理装置30で実現される各機能の一部(例えば、状態データ取得手段40の機能、またはそれに加えて予兆特徴抽出器50の全部または一部の機能)を、接続装置21で実現してもよい。
<予兆を検知する「イベント」、「予兆検知対象」、予兆に関連する「特定の状態」>
予兆を検知する「イベント」は、そのイベントの発生前に予兆を生じることが経験上または統計上、既に知られている特徴的な事象(特徴的とは、定常的に発生している事象ではないという意味)であり、その予兆が「予兆検知対象」についての「特定の状態」として捉えることができるものである。
「予兆検知対象」には、生物(例えば、牛等の動物、人間、植物、魚類、鳥類、微生物等)、物体(固体、液体、気体のいずれの状態でもよく、それらの混在状態でもよく、それらの状態を遷移するものでもよい。)、あるいは、空間を仕切って形成された一定の領域内に存在する物体や生物の集合体(例えば、山やその一部、池や沼や川またはそれらの一部、一部の海域、島やその一部、空や夜空の一部、大地の一部等)などが含まれる。なお、例えば微生物や気体等のように、可視化処理等を行って初めてその状態を人の知覚で認識できるものも含まれる。
「特定の状態」は、経験上または統計上、ターゲットのイベントの発生前に予兆として出現することが判明している状態であり、「予兆に関連し、かつ、常時出現する可能性のある特定の状態」と、「予兆に関連し、かつ、予兆時にしか出現しない(平常時には出現しない)特定の状態」とがある。
具体的には、例えば、予兆検知システム10が、牛の分娩の予兆を検知するシステムである場合には、「イベント」は、牛の分娩であり、「予兆検知対象」は、牛であり、「特定の状態」は、例えば、牛の起立状態、牛の尾の挙上状態(牛の尾の挙上角度のような連続値またはその連続値が属する範囲は、閾値や範囲で定められた牛の尾の挙上状態に対する類似の程度を示すデータである。)、牛の尿膜・羊膜の露出状態、牛の立ち座り状態(所定の短時間内に、立ったり、座ったりするという状態)、牛の片足を軸にした回転状態、牛の鳴き声についての特徴的な状態等である。
なお、上記のうち、牛の立ち座り状態や、牛の片足を軸にした回転状態は、短時間で検出可能な動作を示す状態であり、「特定の状態」には、このような短時間内の動作を示す状態が含まれる。ここでの短時間は、予兆特徴抽出器50に同時に入力される複数時刻の状態データ(複数枚の画像データ、動画を構成する複数フレーム)の範囲内で捉えることができる程度の短時間である。従って、予兆検知器60で設定されている予兆時区間(図4、図5参照)に比して短い時間であり、例えば、予兆時区間が数時間や数日であったとすれば、ここでの短時間の動作は、例えば、数秒や数分で捉えることができる動作である。また、牛の鳴き声についての特徴的な状態は、音データにより捉えることができる状態であるが、この場合は、1つの状態データが、ある程度の時間長を有する音データである。この音データの時間長も、予兆時区間(図4、図5参照)に比して短い時間である。さらに、時間的に連続している複数の音データ(複数の状態データ)を、予兆特徴抽出器50に同時に入力することにより、牛の鳴き声についての特徴的な状態を捉えてもよい。
また、予兆検知システム10が、独房内の囚人の自殺の予兆を検知するシステムである場合には、「イベント」は、独房内の囚人の自殺であり、「予兆検知対象」は、独房内の囚人であり、「特定の状態」は、例えば、独房内徘徊状態、壁に頭を打ち付ける状態等である。
さらに、予兆検知システム10が、鬱病の発症の予兆を検知するシステムである場合には、「イベント」は、鬱病の発症であり、「予兆検知対象」は、人または人の顔であり、「特定の状態」は、例えば、笑顔の喪失状態等のような人の顔の表情についての特徴的な状態等である。
そして、予兆検知システム10が、事故や危険行為の予兆を検知するシステムである場合には、「イベント」は、事故や危険行為であり、「予兆検知対象」は、例えば、独居老人、要介護老人、子供、病人等であり、「特定の状態」は、例えば、床にかがみ込む姿勢の状態、不自然な着座姿勢の状態、床や階段を這う状態、物に掴まる状態、壁にもたれかかる状態、危険場所への接近状態等である。
また、予兆検知システム10が、トンネルの崩落、河川の氾濫、火山の噴火等の災害の発生の予兆を検知するシステムである場合には、「イベント」は、トンネルの崩落、河川の氾濫、火山の噴火等の災害の発生であり、「予兆検知対象」は、トンネル、河川、火山等であり、「特定の状態」は、例えば、壁や天井が剥がれる状態、壁や天井にひびが入る状態、異常音の発生状態、堤防が崩れる状態、ガスが噴出する状態、煙が上がる状態等である。
さらに、予兆検知システム10が、窃盗等の犯罪やテロの発生の予兆を検知するシステムである場合には、「イベント」は、窃盗等の犯罪やテロの発生であり、「予兆検知対象」は、例えば、夜中に建物周囲を歩行する者や、ゴミ箱に近づく者等であり、「特定の状態」は、例えば、同一行動の繰り返し状態、通常の通行場所以外の場所への移動状態・侵入状態、ゴミ箱に不審物を入れる状態等である。
<状態データの取込、出力、ネットワーク送信を行うための構成>
状態データ取込機器20は、予兆検知対象(牛等)についての状態を示す状態データを取り込んで出力する機器であり、具体的には、例えば、カメラやマイクロフォン等である。この状態データ取込機器20は、カメラやマイクロフォン等のように、予兆検知対象(牛等)に対し、非接触タイプの機器であることが好ましいが、接触タイプの機器であってもよい。
また、状態データ取込機器20には、状態データとして、人の知覚で認識可能な知覚データを出力する機器が含まれている。すなわち、状態データ取込機器20が1種類である場合には、その状態データ取込機器20は、必ず人の知覚で認識可能な知覚データを出力する機器(例えば、カメラやマイクロフォン等)であり、複数種類の状態データ取込機器20がある場合には、そのうちの少なくとも1種類が、人の知覚で認識可能な知覚データを出力する機器である。この知覚データは、主として人の視覚で認識できる画像データ(静止画でも、動画でもよい。)または人の聴覚で認識できる音データであるが、その他に、例えば、臭いデータ等であってもよい。
なお、サーモグラフィカメラから出力されるサーモグラフィデータは、人の視覚で認識できる画像データに含まれる。顔や体のどの部分が高温なのか等を目で見て認識できるからであり、従って、クラウドソーシングの対象データにもなる。また、エッジ画像のような加工画像データ等も同様であり、人の視覚で認識できる画像データに含まれ、クラウドソーシングの対象データにもなる。
さらに、状態データ取込機器20には、例えば、温度センサや加速度センサ等のように、知覚データ以外のデータを出力する機器が含まれていてもよい。従って、予兆特徴抽出器50には、状態データとして、知覚データ(例えば、カメラやマイクロフォン等の出力データ)と合わせて、知覚データ以外のデータ(例えば、温度センサや加速度センサ等の出力データ)を同時に入力してもよい。
接続装置21は、ネットワーク1へのデータ送出を行うエッジデバイスとしての機能(例えば、通信プロトコルの変換等の機能)を有する装置であり、コンピュータにより構成され、状態データ取込機器20から出力される状態データを有線または無線で受信し、受信した状態データを、時刻情報(年月日・時分秒の日時情報、またはこれに代替するデータ発生順序を示す情報)および機器識別情報とともに、ネットワーク1を介して予兆検知処理装置30(状態データ取得手段40)へ送信する処理を実行するものである。時刻情報は、接続装置21が付与してもよく、状態データ取込機器20から出力されるようになっていてもよい。なお、予兆検知処理装置30に設けられている状態データ取得手段40を、接続装置21に設ける場合には、状態データ取得手段40が、状態データ取込機器20から出力される状態データを有線または無線で受信する処理を行うことになり、この際、時刻情報および機器識別情報を状態データに付加する。
この接続装置21は、1台でもよく、複数台でもよく、複数台の場合には、離れた場所にあってもよい。予兆検知対象が、例えば、トンネル、河川、火山等のように大きな対象であれば、複数の場所で状態データを取り込む場合があるからである。
また、1台の接続装置21が、1つの状態データ取込機器20により取り込んだ状態データを受信してもよく、複数の状態データ取込機器20により取り込んだ複数種類の状態データを受信してもよい。
<予兆検知処理装置30の全体構成>
予兆検知処理装置30は、1台または複数台のコンピュータ(サーバ)により構成され、状態データ取得手段40と、予兆特徴抽出器50と、予兆検知器60と、出力手段70と、事前情報記憶手段71とを含んで構成されている。また、予兆特徴抽出器50は、予兆特徴抽出用のパターン認識アルゴリズムを実行する予兆特徴抽出用パターン認識処理手段51と、このパターン認識処理に用いる予兆特徴抽出モデルを記憶する予兆特徴抽出モデル記憶手段52とを備えている。さらに、予兆検知器60は、時系列パターン認識処理等の予兆検知処理を実行する予兆検知処理手段61と、この予兆検知処理に用いる予兆検知モデルを記憶する予兆検知モデル記憶手段62とを備えている。
ここで、状態データ取得手段40、予兆特徴抽出用パターン認識処理手段51、予兆検知処理手段61、および出力手段70は、予兆検知処理装置30を構成するコンピュータ本体の内部に設けられた中央演算処理装置(CPU)、およびこのCPUの動作手順を規定する1つまたは複数のプログラムにより実現される。また、予兆特徴抽出モデル記憶手段52、予兆検知モデル記憶手段62、および事前情報記憶手段71としては、例えば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)等を採用することができる。
状態データ取得手段40は、接続装置21からネットワーク1を介して送信されてくる状態データ(付加された時刻情報および機器識別情報を含む。)を受信する処理を実行するものである。接続装置21からの状態データの送信は、接続装置21側で管理されるタイミングで行われてもよく、状態データ取得手段40からの取得要求に基づき行われてもよい。
また、状態データ取得手段40は、必要な場合には、取得した状態データについて、予兆特徴抽出器50に入力する前に、例えば、背景除去、正規化、エッジ画像作成等の各種の前処理を実行する。
なお、本実施形態では、状態データ取得手段40は、接続装置21からの状態データを受信する構成とされているが、状態データ取込機器20から出力される状態データを直接に取得する構成としてもよい。接続装置21に状態データ取得手段40を設ける構成とする場合もあり、また、ネットワーク構成にせずに、状態データ取込機器20の設置場所付近(牛等の予兆検知対象の所在位置周辺)で予兆検知処理を行う構成とする場合もあるからである。
<予兆特徴抽出器50の構成>
予兆特徴抽出器50は、状態データ取得手段40により取得した状態データを用いて、予兆検知対象(牛等)の状態が、予兆(牛の分娩予兆等)に関連する特定の状態に該当するか否かまたは当該特定の状態に対する類似の程度を示すデータを出力するパターン認識処理を実行し、このパターン認識処理で得られる特徴データを抽出する処理を繰り返し実行するものである。特定の状態が複数ある場合には、複数の特定の状態のそれぞれに該当するか否かまたは複数の特定の状態のそれぞれに対する類似の程度を示すデータを出力するパターン認識処理を実行する。抽出された時系列の特徴データは、特徴データ記憶手段(不図示)に一時的に記憶される。
この際、パターン認識処理の数は、1つでもよく、複数でもよく、複数の場合には、異なる種類のパターン認識処理としてもよい。また、パターン認識処理の数は、特定の状態の数と一致している必要はない。
予兆に関連する「特定の状態」は、予め定められた状態であり、予兆特徴抽出器50の学習段階から設定されている状態である。牛の分娩予兆の検知を行う場合には、前述したように、牛の起立状態、牛の尾の挙上状態、牛の尿膜・羊膜の露出状態等である。
具体的には、予兆特徴抽出器50は、本実施形態では、一例として、畳み込み・ニューラル・ネットワーク(CNN)によるパターン認識処理を実行する構成とする。但し、隠れマルコフモデル(HMM)等を採用してもよく、あるいは、CNN出力およびHMM出力を合わせて後段の予兆検知器60に入力する構成等のように、複数種類のパターン認識処理を併用してもよい。
図2および図3に示すように、CNNは、入力層、複数の中間層、出力層(最終層)を備え、予兆特徴抽出器50は、CNNの中間層(例えば、最終層から2つ前の中間層等)から出力される特徴量を、後段の予兆検知器60に入力するための特徴データとして抽出する処理を実行する。特定の状態の数は、任意であるが、ここでは、説明の便宜上、3つの特定の状態X,Y,Zがあるものとする。
図2では、予兆特徴抽出器50は、1つのパターン認識処理(CNN)により、複数の特定の状態X,Y,Zの各々の判別結果を出力する。すなわち、CNNの出力層(最終層)には、特定の状態X(例えば、牛の起立状態)に対応する2つの出力ノード(2ユニット)があり、状態Xであることの確からしさを示す尤度と、状態Xでないことの確からしさを示す尤度とが出力される。但し、特徴データとして中間層出力を抽出するので、これらの尤度は、後段の予兆検知器60では使用されない。なお、これらの尤度は、その後の学習用のデータとするか否かの判断処理に使用される。
同様に、CNNの出力層(最終層)には、特定の状態Y(例えば、牛の尾の挙上状態)に対応する2つの出力ノード(2ユニット)があり、状態Yであることの確からしさを示す尤度と、状態Yでないことの確からしさを示す尤度とが出力される。また、CNNの出力層(最終層)には、特定の状態Z(例えば、牛の尿膜・羊膜の露出状態)に対応する2つの出力ノード(2ユニット)があり、状態Zであることの確からしさを示す尤度と、状態Zでないことの確からしさを示す尤度とが出力される。
従って、図2では、入力層から、特徴データを抽出する中間層に至るまでのネットワーク部分は、3つの特定の状態X,Y,Zで共通化され、その部分のパラメータはシェアされていることになる。
一方、図3では、予兆特徴抽出器50は、複数の特定の状態X,Y,Zのそれぞれについて、別々のパターン認識処理(CNN)を実行し、複数の特定の状態X,Y,Zの各々の判別結果を出力する。この際、それぞれのパターン認識器(CNN)に入力する状態データは共通であり、それぞれのパターン認識器(CNN)の中間層から出力された複数の特徴量をまとめて、特徴データとして後段の予兆検知器60に入力する。
また、図3では、複数の特定の状態X,Y,Zの全てについて、中間層出力を抽出する構成とされているが、必ずしも全てについて中間層出力を抽出する必要はなく、一部について、出力層(最終層)出力を抽出する構成としてもよい。また、特定の状態X,Y,Zに対応する各パターン認識器は、別々のパターン認識器であるので、特徴データを抽出する中間層に至るネットワーク部分のパラメータは、それぞれ異なっており、それぞれのパターン認識器を構成する中間層の数も異なっていてもよい。さらには、特徴データを抽出する中間層の位置(何番目の層の出力を抽出するのか)も、それぞれのパターン認識器で異なっていてもよい。
このように予兆特徴抽出器50は、図2の構成でも、図3の構成でもよいが、システム構成の簡易化、処理量の削減等の観点からは、図2の構成とすることが好ましい。
予兆特徴抽出器50に同時に入力される状態データは、1時刻の状態データ(例えば、ある瞬間の静止画の画像データ)だけでもよく、複数時刻の状態データ(例えば、動画を構成する複数フレームの画像データ)としてもよい。特に、予兆に関連する「特定の状態」として短時間で検出可能な動作を示す状態(例えば、牛の立ち座り状態や、牛の片足を軸にした回転状態等)を捉える場合には、複数時刻の状態データを入力する。また、複数時刻の状態データを入力する場合には、状態データを発生順に、D1,D2,D3,D4,D5,…であるとすると、最初に、D1,D2,D3の組を入力し、次に、D2,D3,D4の組を入力し、続いて、D3,D4,D5の組を入力するといった具合に、状態データを1つずつずらしながら入力することが好ましいが、その他に、最初に、D1,D2,D3の組を入力し、次に、D4,D5,D6の組を入力し、続いて、D7,D8,D9の組を入力するといった具合に、重なりなく入力してもよく、あるいは、それらの折衷として、(D1,D2,D3,D4)の組、(D3,D4,D5,D6)の組、(D5,D6,D7,D8)の組といった具合に、重なりはあるが、1つずつずらすのではないという入力としてもよい。
予兆特徴抽出モデル記憶手段52に記憶させる予兆特徴抽出モデル(CNNのパラメータ等)は、事前の学習により用意される。この事前の学習方法は、後述する予兆特徴抽出器用学習手段91によるモデル更新の際の学習方法と同じであり、一般的な学習方法でよい。すなわち、ある程度の数の状態データと、それらの各状態データに対応するタグ情報とを用いて行われる。具体的には、1つの状態データ(例えば、画像データ)に対し、特定の状態X(例えば、牛の起立状態)に該当するか否か、特定の状態Y(例えば、牛の尾の挙上状態)に該当するか否か、および特定の状態Z(例えば、牛の尿膜・羊膜の露出状態)に該当するか否かを示すデータ(1または0)を、タグ情報として付与し、学習を行う。
<予兆検知器60の構成>
予兆検知器60は、本実施形態では、予兆特徴抽出器50により抽出した時系列の特徴データを用いて、時系列パターン認識処理を実行し、予兆の有無または存否の程度を示すスコアを出力する処理を実行するものである。
この際、時系列パターン認識処理としては、例えば、リカレント・ニューラル・ネットワーク(RNN)を採用することができ、特に、ロング・ショート・ターム・メモリ(LSTM)が好適である。但し、時系列パターン認識処理は、RNNに限定されるものではなく、例えば、隠れマルコフモデル(HMM)等を採用してもよい。
予兆検知器60は、図4および図5に示すように、イベントの発生前の時間帯を区切ることにより、予兆が出現する可能性のある区間として複数の予兆時区間を設定し、設定した複数の予兆時区間の各々に対応するスコアを出力する構成とされている。イベント発生時点をT0とし、それよりも前(過去)の時点を、T0に近い順で、(T-1),(T-2),(T-3),(T-4),…,(T-N)とすると、複数の予兆時区間の設定およびスコア出力についての形式には、次のような2つの形式A(図4の場合)および形式B(図5の場合)がある。時間帯を区切る間隔は、同じピッチで均等な時間間隔としてもよく、ピッチを変化させて不均等な時間間隔としてもよく、例えば、(T-4)~(T-3)の時間長と、(T-3)~(T-2)の時間長とは、同じでもよく、異なっていてもよい。
図4の形式Aは、複数の予兆時区間A1,A2,A3,A4,…,ANに重なりがない設定形式である。(T-N)以前が、非着目区間となり、予兆時区間AN=(T-N)~(T-(N-1))であり、予兆時区間A4=(T-4)~(T-3)であり、予兆時区間A3=(T-3)~(T-2)であり、予兆時区間A2=(T-2)~(T-1)であり、予兆時区間A1=(T-1)~T0である。
なお、(T-1),(T-2),(T-3),(T-4),…,(T-N)は、イベント発生時点T0よりも前(過去)の時点であるが、これらを時間軸上で反転させる(過去方向に向かって並べられていた各時点を、各時点どうしの時間間隔を保ちながら、将来方向に向かって並べ替える)ことにより、現在(スコア出力を行う時点)Tnowから将来方向に向かう各時点であるT1,T2,T3,T4,…,TNを定義する(図8参照)。例えば、(T-1)を、イベント発生時点T0から12時間前の時点であるとすると、T1は、現在Tnowから12時間後の時点となり、(T-2)を、T0から24時間前の時点であるとすると、T2は、Tnowから24時間後の時点となる。
そして、形式Aでは、現在(スコア出力を行う時点であり、日にち単位で見ると、今日)Tnowが予兆時区間A1=(T-1)~T0に属する時点である確率を示すスコアを出力する。換言すれば、現在Tnow~T1の期間内(期間の長さは、予兆時区間A1と同じ。)に、イベントが発生する確率を示すスコアを出力する。
同様に、形式Aでは、現在Tnowが予兆時区間A2=(T-2)~(T-1)に属する時点である確率を示すスコアを出力する。換言すれば、現在Tnowから見て、T1~T2の期間内(期間の長さは、予兆時区間A2と同じ。)に、イベントが発生する確率を示すスコアを出力する。
また、形式Aでは、現在Tnowが予兆時区間A3=(T-3)~(T-2)に属する時点である確率を示すスコアを出力する。換言すれば、現在Tnowから見て、T2~T3の期間内(期間の長さは、予兆時区間A3と同じ。)に、イベントが発生する確率を示すスコアを出力する。
さらに、形式Aでは、現在Tnowが予兆時区間A4=(T-4)~(T-3)に属する時点である確率を示すスコアを出力する。換言すれば、現在Tnowから見て、T3~T4の期間内(期間の長さは、予兆時区間A4と同じ。)に、イベントが発生する確率を示すスコアを出力する。
そして、形式Aでは、現在Tnowが予兆時区間A1~ANのそれぞれに属する時点である確率を示す各スコア、および現在Tnowが非着目区間(平常時)に属する時点である確率を示すスコアを合計すると1になる。
形式Aの学習時には、予兆検知器用学習手段92に対し、予兆時区間A1に属する特徴データについては、「予兆時区間A1=(T-1)~T0である」=1と入力し、それ以外の区間には属さないので、それ以外は0を入力する。予兆時区間A2に属する特徴データについては、「予兆時区間A2=(T-2)~(T-1)である」=1と入力し、それ以外の区間には属さないので、それ以外は0を入力する。予兆時区間A3に属する特徴データについては、「予兆時区間A3=(T-3)~(T-2)である」=1と入力し、それ以外の区間には属さないので、それ以外は0を入力する。予兆時区間A4に属する特徴データについては、「予兆時区間A4=(T-4)~(T-3)である」=1と入力し、それ以外の区間には属さないので、それ以外は0を入力する。予兆時区間ANに属する特徴データについては、「予兆時区間AN=(T-N)~(T-(N-1))である」=1と入力し、それ以外の区間には属さないので、それ以外は0を入力する。また、非着目区間に属する特徴データについては、「非着目区間=(T-N)以前である」=1と入力し、それ以外の区間には属さないので、それ以外は0を入力する。
一方、図5の形式Bは、複数の予兆時区間B1,B2,B3,B4,…,BNに重なりがある設定形式である。(T-N)以前が、非着目区間となり、予兆時区間BN=(T-N)~T0であり、予兆時区間B4=(T-4)~T0であり、予兆時区間B3=(T-3)~T0であり、予兆時区間B2=(T-2)~T0であり、予兆時区間B1=(T-1)~T0である。
そして、形式Bでは、現在Tnowが予兆時区間B1=(T-1)~T0に属する時点である確率を示すスコアを出力する。換言すれば、現在Tnow~T1の期間内(期間の長さは、予兆時区間B1と同じ。)に、イベントが発生する確率を示すスコアを出力する。なお、現在Tnowが予兆時区間B1=(T-1)~T0に属する時点でない確率を示すスコアも出力するが、図示を省略している。
同様に、形式Bでは、現在Tnowが予兆時区間B2=(T-2)~T0に属する時点である確率を示すスコアを出力する。換言すれば、現在Tnow~T2の期間内(期間の長さは、予兆時区間B2と同じ。)に、イベントが発生する確率を示すスコアを出力する。なお、現在Tnowが予兆時区間B2=(T-2)~T0に属する時点でない確率を示すスコアも出力するが、図示を省略している。
また、形式Bでは、現在Tnowが予兆時区間B3=(T-3)~T0に属する時点である確率を示すスコアを出力する。換言すれば、現在Tnow~T3の期間内(期間の長さは、予兆時区間B3と同じ。)に、イベントが発生する確率を示すスコアを出力する。なお、現在Tnowが予兆時区間B3=(T-3)~T0に属する時点でない確率を示すスコアも出力するが、図示を省略している。
さらに、形式Bでは、現在Tnowが予兆時区間B4=(T-4)~T0に属する時点である確率を示すスコアを出力する。換言すれば、現在Tnow~T4の期間内(期間の長さは、予兆時区間B4と同じ。)に、イベントが発生する確率を示すスコアを出力する。なお、現在Tnowが予兆時区間B4=(T-4)~T0に属する時点でない確率を示すスコアも出力するが、図示を省略している。
形式Bの学習時には、予兆検知器用学習手段92に対し、「(T-1)~T0」に属する特徴データについては、予兆時区間B1に属するので、「予兆時区間B1=(T-1)~T0である」=1と入力し、かつ、予兆時区間B2にも属するので、「予兆時区間B2=(T-2)~T0である」=1と入力し、かつ、予兆時区間B3にも属するので、「予兆時区間B3=(T-3)~T0である」=1と入力し、かつ、予兆時区間B4にも属するので、「予兆時区間B4=(T-4)~T0である」=1と入力する。
また、形式Bの学習時には、予兆検知器用学習手段92に対し、「(T-2)~(T-1)」に属する特徴データについては、予兆時区間B1には属さないので、「予兆時区間B1=(T-1)~T0である」=0と入力し、かつ、予兆時区間B2には属するので、「予兆時区間B2=(T-2)~T0である」=1と入力し、かつ、予兆時区間B3にも属するので、「予兆時区間B3=(T-3)~T0である」=1と入力し、かつ、予兆時区間B4にも属するので、「予兆時区間B4=(T-4)~T0である」=1と入力する。
さらに、形式Bの学習時には、予兆検知器用学習手段92に対し、「(T-3)~(T-2)」に属する特徴データについては、予兆時区間B1には属さないので、「予兆時区間B1=(T-1)~T0である」=0と入力し、かつ、予兆時区間B2にも属さないので、「予兆時区間B2=(T-2)~T0である」=0と入力し、かつ、予兆時区間B3には属するので、「予兆時区間B3=(T-3)~T0である」=1と入力し、かつ、予兆時区間B4にも属するので、「予兆時区間B4=(T-4)~T0である」=1と入力する。
さらに、形式Bの学習時には、予兆検知器用学習手段92に対し、「(T-4)~(T-3)」に属する特徴データについては、予兆時区間B1には属さないので、「予兆時区間B1=(T-1)~T0である」=0と入力し、かつ、予兆時区間B2にも属さないので、「予兆時区間B2=(T-2)~T0である」=0と入力し、かつ、予兆時区間B3にも属さないので、「予兆時区間B3=(T-3)~T0である」=0と入力し、かつ、予兆時区間B4には属するので、「予兆時区間B4=(T-4)~T0である」=1と入力する。
そして、形式Bの学習時には、予兆検知器用学習手段92に対し、非着目区間に属する特徴データについては、予兆時区間B1には属さないので、「予兆時区間B1=(T-1)~T0である」=0と入力し、かつ、予兆時区間B2にも属さないので、「予兆時区間B2=(T-2)~T0である」=0と入力し、かつ、予兆時区間B3にも属さないので、「予兆時区間B3=(T-3)~T0である」=0と入力し、かつ、予兆時区間B4にも属さないので、「予兆時区間B4=(T-4)~T0である」=0と入力する。
リカレント・ニューラル・ネットワーク(RNN)は、ある層の出力が、次回のその層に入力されて次回の処理に反映されるという構造を有するので、前回の処理結果を反映した出力を行うことができ、前回の処理結果は、更にその前の処理結果を反映していることから、前回以前の処理結果を反映する時系列パターン認識処理を実現している。
予兆検知器60は、このようなRNNの内部構造により前回以前の処理結果を反映する構成とすることができるが、さらに、次のような構成とし、時間的な要素を加味してもよい。すなわち、前段の予兆特徴抽出器50で繰り返し抽出した抽出時刻の異なる複数の時系列の特徴データ(予兆特徴抽出器50における連続する複数回のパターン認識処理で得られた複数時刻の特徴データ)を、まとめて後段の予兆検知器60に同時に入力してもよい。複数時刻の特徴データを入力する場合には、特徴データを発生順に、F1,F2,F3,F4,F5,…であるとすると、最初に、F1,F2,F3の組を入力し、次に、F2,F3,F4の組を入力し、続いて、F3,F4,F5の組を入力するといった具合に、特徴データを1つずつずらしながら入力することが好ましいが、その他に、最初に、F1,F2,F3の組を入力し、次に、F4,F5,F6の組を入力し、続いて、F7,F8,F9の組を入力するといった具合に、重なりなく入力してもよく、あるいは、それらの折衷として、(F1,F2,F3,F4)の組、(F3,F4,F5,F6)の組、(F5,F6,F7,F8)の組といった具合に、重なりはあるが、1つずつずらすのではないという入力としてもよい。
また、予兆検知器60には、事前情報記憶手段71に記憶された事前情報またはその事前情報から自動生成される情報を、特徴データと合わせて入力するようにしてもよい。事前情報とは、例えば、ユーザによりユーザ端末120から入力されるか若しくはシステムの管理者により管理者端末130から代行入力されたユーザ保有情報や、管理者により管理者端末130から入力された管理者保有情報等であり、具体的には、例えば、牛の分娩予兆を検知する場合には、ユーザ(農家等)が保有する牛の出産予定日等である。事前情報から自動生成される情報とは、本日(予兆検知の処理日)と牛の出産予定日との差分として算出された牛の出産予定日までの日数等である。
<出力手段70の構成>
出力手段70は、予兆検知器60から出力されたスコアを用いて、予兆検知結果を出力する処理を実行するものである。具体的には、出力手段70は、予兆検知結果の出力用データを、ネットワーク1を介してユーザ端末120(またはユーザが管理する連携システムでもよい。)へ送信する処理、あるいは、必要に応じて管理者端末130へ送信する処理を実行する。また、出力手段70は、ユーザまたは管理者が、予兆検知処理装置30(出力手段70が設けられた装置)の設置場所の周辺にいる場合等には、予兆検知結果を、予兆検知処理装置30に接続された表示装置(不図示)に画面表示するか、印刷装置(不図示)で印刷するか、スピーカ(不図示)で音声出力するか、または予兆検知結果に応じた報知音若しくは報知光をブザーやランプ等の報知用機器(不図示)で出力する処理を実行してもよい。
ユーザ端末120等への予兆検知結果の出力用データの送信処理を行う場合には、送信する予兆検知結果の出力用データは、主として画面表示用のデータとなるが、音声出力用のデータを加えてもよく、また、音声出力用のデータだけとしてもよい。また、送信タイミングは、出力手段70側のタイミングでもよく、あるいは、ユーザ端末120等からの要求に応じて送信してもよい。
具体的には、例えば、電子メール等により予兆検知結果の出力用データを自動送信してもよく、電子メールの自動送信や自動架電等により予兆検知処理装置30へのアクセスを促し(例えば、アクセス先のURLを通知する等)、ユーザ端末120等からの出力要求(主として画面表示要求)を受けてから、予兆検知結果の出力用データを送信してもよい。なお、ユーザ端末120等からの出力要求を受けてから送信する場合には、既に作成されている予兆検知結果の出力用データ(出力用データ記憶手段(不図示)に記憶されている出力用データ)を送信してもよく、あるいは、出力要求を受けてから、スコア記憶手段(不図示)に記憶されている予兆検知器60の出力スコアを用いて予兆検知結果の出力用データを作成し、送信してもよい。
また、出力手段70は、前段の予兆特徴抽出器50に入力された状態データ(付加された時刻情報および機器識別情報を含む。)、および予兆特徴抽出器50の最終層(出力層)の出力データ(尤度)、並びに、後段の予兆検知器60に入力された特徴データ、および予兆検知器60から出力されたスコアを、ネットワーク1を介してデータ収集装置80へ送信する処理も実行する。
<出力手段70による各種の出力形式>
出力手段70は、予兆検知器60から出力されたスコアを用いて、様々な予兆検知結果の出力用データを作成する。以下に述べる全ての出力形式(主として表示形式)は、ユーザまたは管理者による自在な切替が可能である。この際、システム側で、いずれかの出力形式をデフォルト設定としてもよく、ユーザまたは管理者が自身で標準の出力形式を設定してもよい。なお、出力手段70は、以下に述べる様々な出力形式のうちの1形式または一部の形式しか出力しない構成としてもよい。
<言語による出力形式>
先ず、言語による出力形式がある。予兆検知結果を、テキストで表現して画面表示により通知するか、または、それを音声で読み上げて通知するか、それらの双方を実行する。
通知する内容には、予兆が検知された予兆検知対象(生物、物体等)および複数の予兆検知対象が存在する場合の予兆検知対象識別情報、予兆されたイベントの内容、予兆されたイベントの発生時期、予兆されたイベントの発生確率等が含まれ、これらの内容のうち、ユーザが必要とする内容を出力(画面表示および/または音声出力)すればよい。
例えば、「12時間以内に牛1032が分娩する確率80%」、「2~4日後に牛Aか牛Bが分娩しそうです」、「いまのままだと囚人Xが鬱になるかもしれません」等である。また、複数の牛がいるときに「24時間以内に牛が分娩しそうです」と表現する等、複数の予兆検知対象が存在する場合に、予兆検知対象識別情報を付さずに表現してもよく、この場合、どの牛なのかは特定されているが、それを通知しないケースと、どの牛なのかが特定されていないケースが含まれる。
予兆検知器60のスコア出力が形式A(図4参照)の場合において、一例として、予兆時区間A1~A4が設定され、(T-1)=12時間前(T1=12時間後)、(T-2)=24時間前(T2=24時間後)、(T-3)=2日前=48時間前(T3=2日後=48時間後)、(T-4)=4日前=96時間前(T4=4日後=96時間後)であるものとする。このとき、各予兆時区間A1~A4のスコアをそのまま用いて、「今から12時間以内に牛が分娩する確率は10%、12時間後から24時間後までの間の確率は20%、24時間後から2日後までの間の確率は50%、2日後から4日後までの間の確率は10%」等のように出力してもよく、次のように、加工を行った出力としてもよい。
例えば、予兆時区間A1,A2のスコアを加算し(A1の10%+A2の20%=30%)、「今から24時間以内に牛が分娩する確率は30%である…」等と出力してもよい。このようにする場合、例えば、システムとして(つまり、全ユーザに共通)、比較的短い時間間隔で、予兆時区間A1~ANを設定しておき、個々のユーザへの通知段階で、個々のユーザが希望する時間間隔にカスタマイズして予兆検知結果を出力すること等ができる。このカスタマイズ設定は、システム納入時に、既にシステムに設定されていてもよく、システムの運用開始後に、ユーザが設定してもよい。後者の場合は、いつでもユーザが任意の時間間隔に設定変更することが可能な構成であり、予兆検知器60のスコア出力までは全ユーザ共通であり、出力手段70による出力処理の段階で、ユーザの設定に従った加工処理(加算処理)が行われる。
また、どちらかと言えば、予兆検知器60のスコア出力が形式B(図5参照)であるほうが、累積確率の出力に適したスコア出力であるが、形式A(図4参照)の場合であっても、累積的な確率を出力してよい。例えば、予兆時区間A1,A2のスコアを加算し(A1の10%+A2の20%=30%)、かつ、予兆時区間A1~A3のスコアを加算し(A1の10%+A2の20%+A3の50%=80%)、かつ、予兆時区間A1~A4のスコアを加算し(A1の10%+A2の20%+A3の50%+A4の10%=90%)、「今から12時間以内に牛が分娩する確率は10%、24時間以内の確率は30%、2日以内の確率は80%、4日以内の確率は90%」等と出力してもよい。
予兆検知器60のスコア出力が形式B(図5参照)の場合は、各予兆時区間B1~B4のスコアをそのまま用いて出力すると、累積的な確率を出力することになる。例えば、「今から12時間以内に牛が分娩する確率は10%、24時間以内の確率は30%、2日以内の確率は80%、4日以内の確率は90%」等と出力することができる。
ここで、前述したように、形式A(図4参照)の場合のスコアを用いて累積的な確率を出力しようとすると、各予兆時区間A1,A2,…の確率を加算することになるので、矛盾のある出力表現にはならない。加算していくので、累積値が減ることはないうえ、元々、全部を足して1になるように各スコアが出力されるため、加算していって1を超えてしまうこともないからである。これに対し、形式B(図5参照)の場合は、スコアをそのまま用いて出力すると、例えば、「…2日以内の確率は80%、4日以内の確率は78%」等のように、矛盾した表現になる可能性もあるため、このような矛盾するスコアが出力されたときには、出力手段70により、例えば、矛盾するスコア同士の平均をとり、「…2日以内の確率は79%、4日以内の確率は79%」等と出力するような矛盾除去の加工処理を実行してもよい。
<発生確率を視覚化する出力形式>
次に、発生確率を視覚化する出力形式がある。前述した<言語による出力形式>の内容に加え、発生確率を視覚化した表現を追加する形式であり、これは言語表現(画面表示および/または音声による伝達)に加え、発生確率という数値情報を、画面イメージでも伝達することになる。なお、伝達できる情報は、少なくなるが、言語表現をせずに、画面イメージだけとしてもよい。
例えば、顔マーク等のアイコンによる表示がある。具体的には、例えば、高い発生確率に対して「自信のある顔」、中間的な発生確率に対して「普通の顔」、低い発生確率に対して「疑わしい顔」を表示する等である。また、動物の大きさで示すとすれば、発生確率の高い順に、例えば、象、ライオン、猫、バッタ、蟻等である。価値の大きさで示すとすれば、発生確率の高い順に、金メダル、銀メダル、銅メダル等である。
また、ゲージで発生確率を表示してもよい。具体的には、例えば、予兆時区間A3の確率が50%であれば「…50%:(0%)□□□□□_____(100%)」等と出力するか、あるいは「…50%:(0%)_____△_____(100%)」等と出力する。後者は、回転メータ上の針の位置で発生確率を表示するのと同様である。
さらに、色(色相・明度・彩度)の変化で発生確率を表示してもよい。具体的には、例えば、信号機の色を利用して、低い発生確率が「緑」、高い発生確率が「赤」とし、0%から100%に至る順序で並べると、「緑」、「黄緑」、「黄」、「橙」、「赤」等のように表示することができる。このように必ずしも発生確率の数値の大小に対応させて厳格な意味で色相・明度・彩度を連続的に変化させていくのではなく、上述した顔マーク等のアイコンによる表示に近い状態で、段階的に人間のイメージに合う色を並べるようにしてもよい。なお、厳格な意味で、発生確率の数値から、予め定めた関数により、色相・明度・彩度を導いてもよい。
また、このような<発生確率を視覚化する出力形式>は、累積確率に適用してもよい。すなわち、例えば、顔マーク等のアイコン、ゲージ、回転メータ、色等により視覚化する対象となる数値は、重ならないように設定された各区間内の発生確率(図4参照)に限らず、重ねて設定された各区間内の発生確率(図5参照)のような累積的な確率であってもよい。この際、前記<言語による出力形式>で述べたように、累積確率の数値は、予兆検知器60のスコア出力が形式A(図4参照)の場合において、各予兆時区間A1,A2,…の確率の加算処理で求めてもよく、あるいは、形式B(図5参照)の場合の出力スコアをそのまま用いるか、または矛盾除去の加工処理を実行して得られた数値としてもよい。
<発生確率を時間軸上で表現する出力形式>
時間軸上で、発生確率を示す数値(テキストとしての数字)自体を表示するか、または、時間軸上で、前述した<発生確率を視覚化する出力形式>による表示を行うか、あるいは、時間軸上で、時間軸に交差する方向の線分の長さ(主として時間軸に直交する方向の線分の高さ)で発生確率の大きさを表示する出力形式がある。なお、時間軸は、カレンダである場合もある。また、時間軸上で表現する発生確率は、累積確率である場合もある(図10参照)。
例えば、図8に示すように、現在(スコア出力の時点であり、今の時点、日にち単位で捉える場合は、今日の時点)を起点としたイベント発生までの時間を、1次元(時間軸上における線分の長さ)で表現し、その時間軸上に、(1)のように、発生確率の数値(テキストとしての数字)自体を表示するか、または、数値の大きさに応じた顔マーク等のアイコンを表示するか、(2)のように、数値の大きさに応じた色を表示するか、(3)のように、(1)と(2)を組み合わせてもよい。また、(4)のように、時間軸に直交する棒グラフの高さで表示するか、(5)のように、それぞれの区間の全域に渡り、時間軸に直交する方向の高さで表現してもよい。(5)の場合の横幅は、それぞれの区間についての区間長を示すが、面積は意味を持たず、従って、後述する図11中の(1)のように一様分布を仮定しているものではない。さらに、(6)のように、時間軸をカレンダに当て嵌め、カレンダ上に、発生確率の数値(テキストとしての数字)自体を表示するか、または、数値の大きさに応じた顔マーク等のアイコンを表示するか、あるいは、数値の大きさに応じた色を表示してもよい。
上記の(6)のカレンダ表示では、予兆時区間A3,A4と、カレンダの単位区間とで時間長が異なるので、予兆時区間A3,A4の確率を一様分布とみなし、同時刻のカレンダの単位区間の長さに応じて按分し(この例の場合は、均等に2分割、4分割)、カレンダの単位区間への割当を行っている。この割当処理の詳細は、図9を用いて後述する。
また、上記の(6)のカレンダ表示では、図示のように、一般的なスケジュール情報(打合せ等)と併せて予兆検知結果を表示してもよい。この際、カレンダ上に、発生確率の数値の大きさに応じた色を表示する場合には、一般的なスケジュール情報と重畳的な表示(着色状態の区画に重ねて、一般的なスケジュール情報を表示する)を行ってもよい。なお、カレンダ上に予兆検知結果を表示する場合には、その予兆検知結果を表示する起点となる現在(スコア出力の時点)が、カレンダ上で将来方向に向かって移動していくことになるので、それに従って、予兆検知結果の表示部分も、将来方向に向かって移動していくことになる。従って、カレンダ上には、過ぎ去った時点が表示されていることになるが、その区間(現在よりも過去の区間)には、予兆検知結果の表示部分は、既に表示されていない状態となっていて、一般的なスケジュール情報だけが残されている状態となる。
図9に示すように、カレンダ上にイベントの発生確率を表示する際には、上述したように、予兆検知結果を表示する起点となる現在(スコア出力の時点)が、カレンダ上で将来方向に向かって移動していくので、通常は、カレンダの単位区間(スケジュール記載のために設定されている最小単位の時間長の区間)と、予兆時区間とは、ずれている。予兆時区間を設定する際に、複数の予兆時区間の全ての時間長を、カレンダの単位区間の時間長と一致させたとしても、現在(スコア出力の時点)が移動するので、双方の区間が一致している状態(双方の区間の両端の区切り位置が一致している状態)であることは殆どない。双方の区間を常に一致させるとなると、スコア出力の時点を、カレンダの単位区間の区切り位置に合わせなければならないので、カレンダの単位区間の長さが1日であるとすれば、例えば、1日に1回しか予兆検知(スコア出力)を行わないことになる。
図9に示すように、出力手段70は、予兆検知器60から出力される各スコアを用いてイベントの発生確率をカレンダ上に表示する処理を実行するが、この際に、各スコア(各スコアで示される確率)を、カレンダの単位区間に割り当てる処理を実行する。この割当処理は、複数の予兆時区間のうちの少なくとも1つの予兆時区間(各予兆時区間の長さが不均一の場合があることを考慮している。)と、カレンダの単位区間との間で、時間長が一致しないか、または双方の区間が時間的にずれている場合に実行される。図9の例では、予兆時区間とカレンダの単位区間とで時間長が異なり、かつ、区間の両端の区切り位置が時間的にずれている。時間的なずれは、不動であるカレンダの単位区間に対し、各予兆時区間が移動するので、必然的に発生する。予兆時区間A6に対応するスコア(確率14%)を、A6内で一様分布とみなし、(T5~C1)と(C1~T6)の時間長に応じて按分し、(T5~C1)の方の11%を、カレンダの4月10日の単位区間に割り当てるとともに、(C1~T6)の方の3%を、カレンダの4月11日の単位区間に割り当てている。また、予兆時区間A7は、その全体が、カレンダの4月11日の単位区間内に収まっているので、A7のスコア(確率20%)の全部を、カレンダの4月11日の単位区間に割り当てている。さらに、予兆時区間A8に対応するスコア(確率15%)を、A8内で一様分布とみなし、(T7~C2)と(C2~T8)の時間長に応じて按分し、(T7~C2)の方の5%を、カレンダの4月11日の単位区間に割り当てるとともに、(C2~T8)の方の10%を、カレンダの4月12日の単位区間に割り当てている。
図10に示すように、時間軸上で表現する発生確率を、累積確率としてもよい。すなわち、前述した図8中の(4)では、時間軸に直交する棒グラフの高さで発生確率を示していたが、図10のように、累積確率を、例えば、棒グラフの高さで示してもよい。この際、表示する累積確率は、スコア出力が形式Aの場合(図4参照)には、既に詳述しているように、各予兆時区間A1,A2,…に対応するスコアを加算して積み上げていけばよく、スコア出力が形式Bの場合(図5参照)には、各予兆時区間B1,B2,…に対応するスコアをそのまま用いてもよく、あるいは矛盾除去加工処理を行ったスコアを用いてもよい。そして、このような累積確率の表示を行った場合には、各棒グラフの頂点を結んだ線の勾配が大きい区画が、発生確率の高い区画であり、図10の例では、予兆時区間A3の確率(50%)が一番高い。なお、説明の便宜上、形式A(図4参照)と、形式B(図5参照)とで、数値を対応させているが、同じ状態データを使って予兆検知を行ったとしても、このように数値が対応することは殆どない。
<発生確率を分布で表現する出力形式>
前述した<発生確率を時間軸上で表現する出力形式>では、発生確率を、時間軸上の各点に分散配置されたデータ(離散的な分布データ)として表現していた。これに対し、発生確率を、確率密度関数による分布で表現する出力形式がある。なお、前述した図8中の(5)は、確率密度関数による分布のように見えるが、そうではないことは既に説明している。また、確率密度関数は、累積確率密度関数であってもよい(図13参照)。
この確率密度関数による分布の表現では、発生確率は面積で捉えられるので、各予兆時区画どうしの発生確率の大きさを比較する場合には、面積で考えて相対的な大小の度合いを認識することになるため、この点は、前述した<発生確率を時間軸上で表現する出力形式>において例えば棒グラフの高さ(線分の長さ)で考えて相対的な大小の度合いを認識する場合とは異なる。しかし、時間軸上のどのあたりの位置で、イベントの発生確率が高いのか(例えば、牛の分娩が起きそうな時期)は、前述した<発生確率を時間軸上で表現する出力形式>の場合と同様に、確率密度関数による分布で示される山の高さで認識することができる。
図11において、(1)の分布は、予兆時区間A1,A2,…のそれぞれを一様分布と仮定し、各予兆時区間A1,A2,…に対応するスコア(各スコアで示される確率)が、面積で示されるようにしている。換言すれば、このように表示された確率密度関数による分布を積分して面積を算出すると、確率になるようにしている。従って、前述した図8中の(5)と似ているように見えるが、異なる表現の出力形式である。
また、図11中の(2)の分布は、一様分布ではない分布(例えば、正規分布等)と仮定している。正規分布と仮定する場合には、例えば、T1(12時間後)~T2(24時間後)の区間(予兆時区間A2)については、T1とT2との中央の時点(18時間後)を頂点とし、T1(12時間後)~T2(24時間後)が、σ区間(σは標準偏差)となる正規分布であるものと仮定し、その他の区間も、同様な正規分布と仮定し、それらを加算して合成することにより、確率密度関数による全体的な分布を疑似的に作成する。この際、各予兆時区間A1,A2…の正規分布は、それらの面積の比が、各予兆時区間A1,A2…のスコア(確率)の比になるようにする。なお、ここでは、σ区間の外側の分布も含めて加算して合成するが、σ区間の外側の分布は採用せずに、各予兆時区間A1,A2…内だけの分布を連結してもよい。
また、出力手段70は、このように各区間の分布を仮定して確率密度関数による全体的な分布を疑似的に作成する場合には、予め複数種類の分布を用意しておき、複数の予兆時区間の確率分布を合成または連結した状態の確率分布曲線についての局所的な勾配変化が、最小となるか、または予め定められた閾値以下若しくは未満となる分布を選択する処理を実行するようにしてもよい。
ここで、「局所的な勾配変化」とは、予め定められた短時間(単位時間でもよい。)内の勾配の変化であり、確率分布曲線に極端な凹凸部分(尖った部分)が生じると、この勾配変化は大きくなるため、出力手段70は、極端な凹凸が無いか、または少なくなる分布を選択することになる。選択対象の分布は、例えば、正規分布、パレート分布等であり、予め用意された分布である。なお、ここでは、正規分布の1σ区間を各予兆時区間に当て嵌める分布と、正規分布の2σ区間を各予兆時区間に当て嵌める分布とは、異なる分布として捉えるので、例えば、0.8σ,1σ,1.5σ,2σ,…等の分布が用意されている。
さらに、出力手段70は、イベントの発生時期について事前に予測または予定した事前情報(例えば、牛の出産予定日等)を反映させた予兆検知結果の出力処理も実行する。この事前情報は、事前情報記憶手段71(図1参照)に記憶されている。
すなわち、出力手段70は、事前情報記憶手段71に記憶された事前情報を用いて作成されるイベント発生の確率分布と、予兆検知器60から出力される各スコアを用いて作成されるイベント発生の確率分布とを合成した合成分布を表示する処理を実行する。
また、出力手段70は、事前情報記憶手段71に記憶された事前情報(事前情報から自動生成される情報である場合を含む。)を、予兆特徴抽出器50からの特徴データとともに予兆検知器60に入力することにより予兆検知器60から出力される各スコアを用いて作成される合成分布を表示する処理を実行してもよい。ここで、事前情報から自動生成される情報とは、例えば、牛の出産予定日が事前情報である場合には、牛の出産予定日までの日数等である。なお、このようなスコア出力については、<予兆検知器60の構成>で詳述しているので、ここでは説明を省略する。
前者の場合は、事前情報に基づく確率分布と、予兆検知器60からの出力スコアに基づく確率分布とが別々に作成され、出力手段70により合成されるのに対し、後者の場合は、出力手段70が、予兆検知器60からの出力スコアを用いて各種の出力形式での出力処理を行うという観点では、事前情報を反映しない場合の出力処理と同じである。従って、以下では、前者の場合について説明する。
図12に示すように、事前情報に基づく確率分布は、動かないのに対し、予兆検知器60からの出力スコアに基づく確率分布は、時間の経過に伴って将来方向に移動する。イベントの発生時期(例えば、牛の出産予定日等)から遠い時期Tnow(1)では、出力スコア(発生確率)は、ゼロまたは略ゼロである。しかし、イベントの発生時期が近づいてくると、各スコアの数値が大きくなり、各スコアに基づく確率分布が作成されるようになる。現在(スコア出力の時点)の位置が、Tnow(2)からTnow(3)のように移動すると、状態データが変化するので、各スコアに基づく確率分布の形状は変化する。従って、事前情報に基づく確率分布と、各スコアに基づく確率分布との合成分布の形状も変化する。
事前情報に基づく確率分布は、例えば、正規分布等で仮定されている。経験上または統計上、得られている情報等から、適切な分布を選択し、予め用意しておく。この事前情報に基づく確率分布は、カレンダの単位区間に従って、予めデータを離散化しておけば、各スコアに基づく確率分布と容易に合成することができ、カレンダ上への合成分布の表示が可能となる。例えば、前述した図8の(6)の例では、事前情報に基づく確率分布を、12時間(各日の午前、午後)を単位区間とするカレンダに合うように離散化し、何月何日の午前の確率、何月何日の午後の確率等のように離散化されたデータを、予め算出して事前情報記憶手段71に記憶しておく。
事前情報に基づく確率分布と、各スコアに基づく確率分布との合成分布を作成する際には、例えば、重み付き相加平均や相乗平均を用いることができる。事前情報に基づく確率分布(時間軸上の各時点のデータ)をPdとし、各スコアに基づく確率分布(時間軸上の各時点のデータ)をPeとし、αを相乗平均の重み、βを相加平均の重み、γを相乗平均と相加平均との間の重みとすると、次の式により、合成分布(時間軸上の各時点のデータ)Pmを算出することができる。
Pm=γ×{Pdα×Pe(1-α)}+(1-γ){β×Pd+(1-β)×Pe}
ここで、α=1の場合は、事前情報に基づく確率分布しか考慮しない状態となり、α=0の場合は、各スコアに基づく確率分布しか考慮しない状態となる。
カレンダ上への合成分布の表示処理を行う際には、上記の式に従って、カレンダの単位区間毎に、合成後の確率のデータを算出する。この際、カレンダの単位区間と、各予兆時区間とが、一致していない場合(時間長の相違や、時間的なずれがある場合)には、前述した図9の処理を実行する。
図13に示すように、スコア出力が形式B(図5参照)である場合において、イベントの発生確率を、累積分布で表現する出力形式としてもよい。形式Bの場合は、各予兆時区間B1~BNに重なりがあるので、累積分布を作成する際には、重なっている区間の取り扱いの処理が必要となる。例えば、予兆時区間B1については、自分よりも短い予兆時区間は無いが、予兆時区間B2については、自分よりも短い予兆時区間B1があり、同様に、予兆時区間B3については、自分よりも短い予兆時区間B1,B2があり、予兆時区間B4については、自分よりも短い予兆時区間B1,B2,B3があるので、自分よりも短い予兆時区間と重なっている区間についての取り扱いの処理が必要となる。
スコア出力が形式A(図4参照)の場合には、区間に重なりがないので、全ての予兆時区間A1~ANを一様分布とみなしても矛盾が生じることはない。しかし、スコア出力が形式B(図5参照)の場合には、自分よりも短い予兆時区間に対応するスコアが存在するので、それを考慮することなく自分の分布を仮定すると、矛盾(累積分布であるにもかかわらず、途中で値が減少するという矛盾)を生じる可能性がある。自分よりも短い各予兆時区間も、それぞれ一様分布に近ければ、矛盾が生じない場合もあるが、例えば、自分よりも短い予兆時区間のいずれかに、明確な発生確率のピークがあるような場合において、そのことを考慮せずに、自分を一様分布と仮定してしまうと、矛盾を生じる可能性が高い。従って、このような矛盾を回避し、滑らかな累積分布を表示するために、出力手段70は、以下の処理を実行する。
先ず、スコア出力が形式B(図5参照)である場合において、出力手段70は、複数の予兆時区間の各々の確率分布またはその累積分布を、予め用意された複数種類の分布のうちのいずれかを用いて疑似的に作成するが、この際に、自分よりも短い時間長の予兆時区間に対応するスコアを用いて、自分の確率分布またはその累積分布を作成するために使用する分布を選択する処理を実行する。
例えば、正規分布またはその累積分布、パレート分布またはその累積分布等のように、複数種類の分布を予め用意しておく。そして、例えば、予兆時区間B4に用いる確率分布またはその累積分布を決定する際には、予兆時区間B4(自分)よりも時間長の短い予兆時区間B3に対応するスコア、または、予兆時区間B1,B2,B3に対応するスコアの全部を用いて、予め用意された複数種類の分布の中から、採用する分布を決定する。同様に、予兆時区間B3については、予兆時区間B3(自分)よりも時間長の短い予兆時区間B2に対応するスコア、または、予兆時区間B1,B2に対応するスコアの双方を用い、予兆時区間B2については、予兆時区間B2(自分)よりも時間長の短い予兆時区間B1に対応するスコアを用いて、採用する分布を決定する。なお、予兆時区間B1については、自分よりも短い予兆時区間が無いので、一様分布や正規分布またはそれらの累積分布とする等、採用する分布を予め定められたものとしてもよい。
矛盾が発生しないように分布を選択するので、例えば、予兆時区間B4の分布の選択のときには、T3時点での累積分布の値が、予兆時区間B3に対応するスコアの値(図13の例では、80%)を下回らないように選択する。同様に、予兆時区間B3の分布の選択のときには、T2時点での累積分布の値が、予兆時区間B2に対応するスコアの値(図13の例では、30%)を下回らないように選択する。予兆時区間B2の分布の選択のときには、T1時点での累積分布の値が、予兆時区間B1に対応するスコアの値(図13の例では、10%)を下回らないように選択する。
また、各予兆時区間B1~B4の累積分布を合成して全体的な累積分布(Tnow~T4の全区間に渡る累積分布)を作成する際には、重なっている区間(図13の例では、(Tnow~T1)、(T1~T2)、(T2~T3)の3つの区間である。)について、所定の比率でそれぞれの分布を合成する処理を実行する。所定の比率には、ゼロも含まれるので、大別すると、次の2通りの処理となる。
第1の処理は、重なっている区間については、最も短い予兆時区間に対応するスコアを用いて疑似的に作成されるイベント発生の確率分布またはその累積分布を採用し、それ以外の予兆時区間に対応するスコアを用いて疑似的に作成されるイベント発生の確率分布またはその累積分布は採用しない処理である。
この第1の処理は、図13の例では、(Tnow~T1)の区間については、4つの予兆時区間B1~B4のうち、最も短い予兆時区間B1の分布を採用し、(T1~T2)の区間については、3つの予兆時区間B2~B4のうち、最も短い予兆時区間B2の分布を採用し、(T2~T3)の区間については、2つの予兆時区間B3,B4のうち、短い方の予兆時区間B3の分布を採用する。従って、予兆時区間B4については、(Tnow~T3)の分布を捨て(採用せず)、(T3~T4)の分布だけを採用し、予兆時区間B3については、(Tnow~T2)の分布を捨て(採用せず)、(T2~T3)の分布だけを採用し、予兆時区間B2については、(Tnow~T1)の分布を捨て(採用せず)、(T1~T2)の分布だけを採用し、予兆時区間B1については、全部の分布を採用する。
第2の処理は、重なっている区間については、それぞれの予兆時区間に対応するスコアを用いて疑似的に作成されるイベント発生の確率分布またはその累積分布を、予め定められた割合で合成する処理を実行する。
この第2の処理は、図13の例では、(Tnow~T1)の区間については、4つの予兆時区間B1~B4の分布のデータH11,H12,H13,H14を、合成率M11,M12,M13,M14の割合で採用し(M11,M12,M13,M14の合計は、100%、すなわち1である。)、それらを合計する。また、(T1~T2)の区間については、3つの予兆時区間B2~B4の分布のデータH22,H23,H24を、合成率M22,M23,M24の割合で採用し(M22,M23,M24の合計は、100%、すなわち1である。)、それらを合計する。さらに、(T2~T3)の区間については、2つの予兆時区間B3,B4の分布のデータH33,H34を、合成率M33,M34の割合で採用し(M33,M34の合計は、100%、すなわち1である。)、それらを合計する。なお、合計した結果、矛盾(合計を行った当該区間からその右側の区間へ移ったときに、累積確率が減ってしまうという矛盾)が生じる場合には、その合計を行った当該区間において、分布を圧縮(当該区間の全体に渡り、同じ係数を乗じる。)してもよく、合成率を変更してもよい。
また、スコア出力が形式B(図5参照)である場合において、カレンダ上に発生確率を表示する際には、上記の合成により矛盾(累積確率が途中で減ってしまうという矛盾)のないように作成した累積分布を用いて、カレンダの単位区間に割り当てる確率を算出することができる。例えば、カレンダの4月22日の単位区間に対しては、累積分布のHC2の値(確率)からHC1の値(確率)を引いた差分値(HC2-HC1)%を割り当て、4月23日の単位区間に対しては、累積分布のHC3の値(確率)からHC2の値(確率)を引いた差分値(HC3-HC2)%を割り当てることができる。
なお、スコア出力が形式B(図5参照)である場合において、カレンダ上に発生確率を表示する際には、上記の合成により矛盾のない累積分布を作成する処理を行うことなく、つまり、矛盾の発生の有無を考慮することなく、全ての予兆時区間B1~B4がそれぞれ一様分布であるものとみなし、カレンダの単位区間に割り当てる確率を算出してもよい。例えば、(Tnow~T4)に対応する予兆時区間B4のスコア(確率)=90%であれば、区間の長さに応じ、この90%を割り振って、(Tnow~T1)の確率=11.25%、(T1~T2)の確率=11.25%、(T2~T3)の確率=22.5%、(T3~T4)の確率=45%とし、このうち、区間の重なりのない(T3~T4)の確率=45%を採用し、図9に示した処理により、カレンダの単位区間に割り当ててもよい。但し、(T3~T4)の確率=45%という数値は、明確な発生確率のピークが、それよりも前の他の区間(例えば(T2~T3)の区間)にあった場合には、矛盾を生じる可能性が高い。
また、(Tnow~T3)に対応する予兆時区間B3のスコア(確率)=80%であれば、区間の長さに応じ、この80%を割り振って、(Tnow~T1)の確率=20%、(T1~T2)の確率=20%、(T2~T3)の確率=40%とし、このうち、(T2~T3)の確率=40%を採用するか、あるいは、(T2~T3)の確率=40%に合成率M33を乗じた値と、上述した予兆時区間B4のスコア(確率)=90%から求めた(T2~T3)の確率=22.5%に合成率M34を乗じた値とを合計した値を採用してもよい。但し、このような処理は、矛盾を生じる可能性があることに加え、各区間の確率の合計値が100%を超えてしまうことがあるので、合計値を100%以内にするための更なる調整処理(例えば、採用した各区間の確率に、更に、一定の係数を乗じる処理等)が必要となる。従って、一様分布とみなす処理ではなく、図13に示すように、矛盾のない累積分布を作成し、作成した累積分布を用いて、カレンダの単位区間に割り当てる確率を算出することが好ましい。
なお、上述した合計値を100%以内にするための更なる調整処理とは、例えば、予兆時区間B4のスコア(確率)=90%のうちの(T3~T4)の確率=45%と、予兆時区間B3のスコア(確率)=80%のうちの(T2~T3)の確率=40%と、予兆時区間B2のスコア(確率)=30%のうちの(T1~T2)の確率=15%と、予兆時区間B1のスコア(確率)=10%とを合計し、110%になった場合には、それぞれの確率に、90%/110%を乗じて36.82%、32.73%、12.27%、8.18%とし、合計を90%にする処理等である。合計を90%に調整するのは、最も長い予兆時区間B4のスコアに合わせているものである。
<データ収集装置80の構成>
データ収集装置80は、1台または複数台のコンピュータ(サーバ)により構成され、データベースマネジメントシステム(DBMS)の機能を有するデータ収集手段81と、データベース82とを備えて構成されている。データベース82には、予兆特徴抽出器50の入出力データを記憶する予兆特徴抽出器入出力データ記憶手段83と、予兆検知器60の入出力データを記憶する予兆検知器入出力データ記憶手段84とを含んでいる。
ここで、データ収集手段81は、データ収集装置80を構成するコンピュータ本体の内部に設けられた中央演算処理装置(CPU)、およびこのCPUの動作手順を規定する1つまたは複数のプログラムにより実現される。また、データベース82は、例えば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)等により実現される。
予兆特徴抽出器入出力データ記憶手段83には、予兆検知処理装置30の出力手段70によりネットワーク1を介して送信されてくるデータ、すなわち、前段の予兆特徴抽出器50に入力された状態データ(付加された時刻情報および機器識別情報を含む。)、および予兆特徴抽出器50の最終層(出力層)の出力データ(尤度)が記憶される。これらの状態データのうち、特に判別結果が明確でない状態データ(特定の状態であることの確からしさを示す尤度と、特定の状態でないことの確からしさを示す尤度との差分が小さい状態データ)、または、全部の状態データについて、クラウドソーシングによるタグ付け作業(特定の状態であるか、ないかについての人による判断作業)が行われ、予兆特徴抽出器入出力データ記憶手段83には、そのクラウドソーシングによる作業結果であるタグ情報も、状態データに関連付けて記憶される。そして、クラウドソーシングが行われた状態データおよびそのタグ情報は、学習装置90の予兆特徴抽出器用学習手段91による学習処理に利用される。
予兆検知器入出力データ記憶手段84には、予兆検知処理装置30の出力手段70によりネットワーク1を介して送信されてくるデータ、すなわち、後段の予兆検知器60に入力された特徴データ、および予兆検知器60から出力されたスコアが記憶される。実際にイベントが発生すると、その発生時刻に関する情報が、ユーザによりユーザ端末120からフィードバックされて送信されてくるか、またはユーザからその旨の伝達を受けたシステムの管理者により管理者端末130から送信されてくるので、特徴データについて、実際の発生時刻に関する情報に基づいてタグ付け作業(特徴データが、非着目区間または複数の予兆時区間のいずれに属する時点で抽出されたものなのかの自動判定作業)が行われ、予兆検知器入出力データ記憶手段84には、そのフィードバックによるタグ情報も、特徴データに関連付けて記憶される。そして、フィードバックが行われた特徴データおよびそのタグ情報は、学習装置90の予兆検知器用学習手段92による学習処理に利用される。
<学習装置90の構成>
学習装置90は、1台または複数台のコンピュータ(サーバ)により構成され、予兆特徴抽出器用学習手段91と、予兆検知器用学習手段92とを備えて構成されている。ここで、各学習手段91,92は、学習装置90を構成するコンピュータ本体の内部に設けられた中央演算処理装置(CPU)、およびこのCPUの動作手順を規定する1つまたは複数のプログラムにより実現される。
予兆特徴抽出器用学習手段91は、データ収集装置80の予兆特徴抽出器入出力データ記憶手段83に記憶された状態データおよびそのタグ情報を用いて、予兆特徴抽出器50用の学習処理を実行することにより、新たに予兆特徴抽出モデル(CNNのパラメータ等)を作成し、作成したモデルで、予兆特徴抽出モデル記憶手段52に記憶された予兆特徴抽出モデルを更新する処理を実行するものである。この予兆特徴抽出器用学習手段91による学習処理は、クラウドソーシングにより、ある程度の量の学習用のデータが用意できた時点で実行するので、クラウドソーシングの実行タイミング(例えば、1週間置き、1ケ月置き等)と同じタイミングで実行すればよい。
予兆検知器用学習手段92は、データ収集装置80の予兆検知器入出力データ記憶手段84に記憶された特徴データおよびそのタグ情報を用いて、予兆検知器60用の学習処理を実行することにより、新たに予兆検知モデル(RNNのパラメータ等)を作成し、作成したモデルで、予兆検知モデル記憶手段62に記憶された予兆検知モデルを更新する処理を実行するものである。この予兆検知器用学習手段92による学習処理は、実際にイベントが1回または何回か発生し、ある程度の量の学習用のデータが用意できた時点で実行するので、実際のイベント発生後のタイミングで実行すればよい。
<クラウドソーシングシステム100の構成>
クラウドソーシングシステム100は、1台または複数台のコンピュータ(サーバ)により構成され、予兆特徴抽出器50用の学習用データを作成するためのクラウドソーシングを実行するシステムである。このクラウドソーシングシステム100は、外部で運営される1台または複数台のコンピュータ(サーバ)により構成された外部システムと連携する構成としてもよい。
具体的には、クラウドソーシングシステム100は、データ収集装置80から、予兆特徴抽出器入出力データ記憶手段83に記憶された状態データのうち、特に判別結果が明確でない状態データ(特定の状態であることの確からしさを示す尤度と、特定の状態でないことの確からしさを示す尤度との差分が小さい状態データ)、または、全部の状態データをネットワーク1を介して取得し、取得した状態データと、この状態データに付加された機器識別情報に対応する比較用データとを用いて、例えば、図6に示すようなクラウドソーシング作業画面200を作成するマイクロタスク化の処理を実行し、作成した画面200の表示用データ(HTMLデータ等)を、ネットワーク(ネットワーク1またはその他のネットワーク)を介して作業者端末110に送信することにより、簡単な判断を行う仕事(いわゆるクラウドソーシングマイクロタスク)を、作業者端末110を操作する多数の作業者(群衆)に行わせる。
なお、外部システムと連携する構成とする場合には、クラウドソーシングシステム100が、図6に示すようなクラウドソーシング作業画面200を作成するマイクロタスク化の処理を実行し、作成した画面200の表示用データ(HTMLデータ等)を、外部システムに送信してもよく、あるいは、状態データおよびこれに対応する比較用データを、外部システムに送信し、外部システムで、クラウドソーシング作業画面200を作成するマイクロタスク化の処理(画面表示用フォームは、予め外部システムに渡してある。)を実行してもよい。そして、外部システムから、クラウドソーシング作業画面200の表示用データ(HTMLデータ等)を、ネットワークを介して作業者端末110へ送信する。
ここで、比較用データは、予め用意されてクラウドソーシングシステム100に記憶されているデータ(例えば、画像データや音データ等)であり、機器識別情報に対応する状態データ取込機器20(カメラ等)により取り込んだ状態データを用いて捉えようとしている特定の状態を示すデータである。例えば、カメラによる画像データを用いて、特定の状態X(例えば、牛の起立状態)、特定の状態Y(例えば、牛の尾の挙上状態)、および特定の状態Z(例えば、牛の尿膜・羊膜の露出状態)を捉えようとしている場合には、機器識別情報は、そのカメラを識別する情報であり、比較用データは、それらの特定の状態X,Y,Zを実際に示す画像データである。
図6において、クラウドソーシング作業画面200には、比較用データにより表示された実際に特定の状態X,Y,Zを示す画像の各表示部201,202,203、および、データ収集装置80から取得した状態データにより表示された画像(作業者に状態を判断して欲しい画像)の表示部210が設けられている。作業者端末110を操作する作業者(群衆)が、画面200に記載されている質問文を読み、各表示部201,202,203の画像と、表示部210の画像とを見比べることにより、回答部220へのチェック入力を行い、「送信」ボタン230をクリックすると、回答部220に入力した回答データが、ネットワークを介してクラウドソーシングシステム100に送信されるので、クラウドソーシングシステム100は、その回答データを受信し、受信した回答データを用いて、状態データに関連付けるタグ情報を作成し、作成したタグ情報を、データ収集装置80の予兆特徴抽出器入出力データ記憶手段83に記憶されている状態データに関連付けて記憶させる処理を実行する。
なお、外部システムと連携する構成とする場合には、回答データは、外部システムへ送信されるようにしてもよく、その場合は、クラウドソーシングシステム100は、外部システムを介して回答データを取得する。
群衆(例えば、主婦や学生等のようなクラウドワーカ)は、クラウドソーシング作業画面200において対比表示されている画像データ(状態データおよび比較用データ)が、どのようなデータなのか(例えば、データの持つ意味、目的、性質、状況、価値等)を特に意識することなく、知識やスキルがなくても判断作業を行うことができる。なお、外部システムと連携する構成とする場合には、予兆検知システム10が依頼する仕事(マイクロタスク)は、予兆検知システム10とは別のシステムで生成された別系統の仕事(マイクロタスク)と並んで群衆に提示される。クラウドワーカは、様々な仕事の中から自由に仕事を選択するが、たまたま予兆検知システム10が依頼する仕事を選択した場合、そのクラウドワーカが、図1に示された作業者端末110を操作する作業者(群衆)となる。
また、クラウドソーシングシステム100またはこれと連携する外部システムから作業者端末110へのクラウドソーシング作業画面200のダウンロードは、例えば、次のような方法で実行される。第1の方法としては、LINE等のコミュニケーションツールである汎用のアプリケーションや電子メールなどの通信手段を用いて、作業者端末110を操作する作業者(群衆)に対し、依頼する仕事(いわゆるクラウドソーシングマイクロタスク)があることを伝達する。この伝達を受けた作業者は、予め定められているウェブサイト、またはコミュニケーションツールや電子メールなどによる伝達文(テキストまたは音声)の中で指定されたウェブサイトにアクセスする。このウェブサイトは、クラウドソーシングシステム100またはこれと連携する外部システムにより構成されている。そして、作業者端末110を操作する作業者(群衆)が、ウェブサイトに設けられた電子掲示板を汎用のブラウザで閲覧し、その電子掲示板において、自分の担当する仕事を選択すると(全く自由に任意の仕事を選択してもよく、システムで指定された仕事を選択してもよい。)、クラウドソーシングシステム100またはこれと連携する外部システムは、選択された仕事についてのクラウドソーシング作業画面200(図6参照)の表示用データを、ネットワークを介して作業者端末110へ送信する処理を実行する。
第2の方法としては、作業者端末110に搭載された専用のアプリケーションにより、作業者端末110の画面上に電子掲示板を表示し、作業者端末110を操作する作業者が、その電子掲示板において、自分の担当する仕事を選択するようにしてもよく、その他は、上記の第1の方法の場合と同様である。
<作業者端末110、ユーザ端末120、管理者端末130の構成>
作業者端末110、ユーザ端末120、管理者端末130は、コンピュータにより構成され、例えばマウスやキーボード等の入力手段と、例えば液晶ディスプレイ等の表示手段とを備えている。これらの端末110,120,130は、例えば、スマートフォンやタブレット端末等の携帯機器であってもよい。
<予兆検知処理の全体的な流れ>
このような本実施形態においては、以下のようにして予兆検知システム10により、イベント(例えば、牛の分娩等)の発生前に生じる予兆を検知する処理が行われる。
図7において、システムの運用を開始するあたり、事前に学習を行い、予兆特徴抽出モデル(CNNのパタメータ等)および予兆検知モデル(RNNのパタメータ等)を作成し、作成した各モデルを、予兆特徴抽出モデル記憶手段52および予兆検知モデル記憶手段62に記憶させる。これらの各モデルを作成する学習方法は、予兆特徴抽出器用学習手段91および予兆検知器用学習手段92による処理と同様である。
続いて、システムの運用開始後には、先ず、状態データ取込機器20(カメラやマイクロフォン等)により、予兆検知対象(例えば牛)の状態を示す状態データ(主として画像データや音データ等の知覚データ)を取り込み、この状態データ取込機器20から出力される状態データを、有線または無線により接続装置21で受信する。そして、接続装置21から、状態データを、時刻情報(年月日・時分秒の日時情報、またはこれに代替するデータ発生順序を示す情報)および機器識別情報とともに、ネットワーク1を介して予兆検知処理装置30へ送信し、予兆検知処理装置30で、状態データ取得手段40により、状態データを取得する(ステップS1)。
次に、状態データ取得手段40により取得した状態データを、予兆特徴抽出器50に入力し、予兆特徴抽出用パターン認識処理手段51により、予兆特徴抽出モデル記憶手段52に記憶された予兆特徴抽出モデルを用いてパターン認識処理(CNN等)を実行し(ステップS2)、得られた中間層等の出力データを、特徴データとして抽出する(ステップS3)。
さらに、予兆特徴抽出器50で抽出した時系列の特徴データを、予兆検知器60に入力し、予兆検知処理手段61により、予兆検知モデル記憶手段62に記憶された予兆検知モデルを用いて時系列パターン認識処理(RNN等)を実行し、予兆検知結果としてのスコアを出力する(ステップS4)。
その後、出力手段70により、予兆検知器60から出力されたスコアを用いて、予兆検知結果を出力する(ステップS5)。この予兆検知結果の出力は、ユーザ端末120への予兆検知結果の画面表示等である。なお、ユーザが運営する連携システムに、ネットワーク1を介して予兆検知結果の出力用データを送信してもよい。また、出力手段70により、予兆特徴抽出器50および予兆検知器60の各入出力データを、ネットワーク1を介してデータ収集装置80へ送信する。
また、以下に述べる学習用データの生成処理、学習処理、およびモデルの更新処理は、以上に述べた予兆検知およびその結果の出力処理(ステップS1~S5)と並行して実行される処理であるが、以下の処理によりモデルが更新されると、その更新後のモデルを用いて、ステップS1~S5の処理が行われることから、説明の簡略化のため、一連の処理であるものとして説明を行うものとする。
すなわち、先ず、予兆特徴抽出器50用の学習データの生成タイミングである場合には、クラウドソーシングシステム100により、データ収集装置80の予兆特徴抽出器入出力データ記憶手段83に記憶された状態データについて、作業者端末110を操作する多数の作業者(群衆)にタグ付け作業(アノテーション)を行わせる(ステップS6)。この学習データの生成タイミングは、例えば、1週間置き、1ケ月置き等、比較的短い間隔である。
続いて、予兆特徴抽出器50用の学習タイミングである場合(通常は、ステップS6の直後でよい。)には、予兆特徴抽出器用学習手段91により、データ収集装置80の予兆特徴抽出器入出力データ記憶手段83に記憶された状態データおよびそのタグ情報を用いて、予兆特徴抽出器50用の学習処理を実行することにより、新たに予兆特徴抽出モデル(CNNのパラメータ等)を作成し、作成したモデルで、予兆特徴抽出モデル記憶手段52に記憶された予兆特徴抽出モデルを更新する(ステップS7)。
次に、予兆検知器60用の学習データの生成タイミングである場合(通常は、イベントが実際に発生した直後でよい。)には、ユーザまたはその代行者であるシステムの管理者により、イベント発生時期に関する情報について、ユーザ端末120または管理者端末130からのシステムへのフィードバック処理が行われ、データ収集装置80の予兆検知器入出力データ記憶手段84に記憶された特徴データに対し、タグ情報が付与される(ステップS8)。この学習データの生成タイミングは、頻繁に発生するものではないイベントの実際の発生が必要となるので、比較的長い間隔である。
続いて、予兆検知器60用の学習タイミングである場合(通常は、ステップS8の直後でよい。)には、予兆検知器用学習手段92により、データ収集装置80の予兆検知器入出力データ記憶手段84に記憶された特徴データおよびそのタグ情報を用いて、予兆検知器60用の学習処理を実行することにより、新たに予兆検知モデル(RNNのパラメータ等)を作成し、作成したモデルで、予兆検知モデル記憶手段62に記憶された予兆検知モデルを更新する(ステップS9)。
そして、予兆検知を続行する場合には、ステップS1の処理に戻り、続行しない場合には、予兆検知システム10による予兆検知処理を終了する(ステップS10)。
<本実施形態の効果>
このような本実施形態によれば、次のような効果がある。すなわち、予兆検知システム10は、前段の予兆特徴抽出器50と、後段の予兆検知器60とによる2段の処理器により予兆検知を行う構成とされているので、各段の処理器に、異なる役割を担当させることができる。
具体的には、予兆特徴抽出器50には、パターン認識により予兆に関連する特定の状態を捉える処理を担当させるが、その特定の状態が、予兆として出現しているのか否かを判別することを目的としないパターン認識処理を担当させることができる。
一方、予兆検知器60は、予兆特徴抽出器50によるパターン認識処理の繰り返しで得られた時系列の特徴データを用いて予兆検知を行うので、時間的な要素を加味した処理を行うことにより、予兆特徴抽出器50で得られた特徴データが、予兆として出現している特定の状態に関する情報であるのか否かまたはその程度を判定することができる。
このため、予兆検知システム10は、予兆に関連する特定の状態の中に、常時出現する可能性のある特定の状態が含まれていても、効果的な予兆検知を行うことができる。すなわち、常時出現する可能性のある特定の状態については、1段のパターン認識処理だけでは、その状態を捉えることができたとしても、捉えた状態が予兆時に出現しているのか否かの明確な判別ができないため、予兆検知が困難であり、また、一歩進めて時間的な要素を加味すべく、複数の時刻に取得された状態データをパターン認識器に同時に入力することも考えられるが、予兆検知が可能となる程の時間長に渡る大量の状態データをパターン認識器に入力することは、膨大な処理量になり、現実的ではない。これに対し、予兆検知システム10では、予兆特徴抽出器50により、予兆として出現しているか否かにかかわらず、特定の状態を捉え、予兆検知器60により、予兆として出現しているのか否かまたはその程度を判定するので、予兆に関連する特定の状態の中に、常時出現する可能性のある特定の状態が含まれていても、予兆検知を行うことができる。
また、予兆検知システム10は、予兆検知の機能を、予兆特徴抽出器50と、予兆検知器60とに分けているので、学習を行う頻度を高めることができ、システムの性能向上のスピードアップを図ることができる。なぜなら、予兆を検知したいイベントは、頻繁に発生する事象ではない場合や、都合のよいときに強制的に発生させることができない事象である場合がある。このような場合は、学習のためのデータ収集が困難であり、仮に、1段階のパターン認識処理により予兆検知を行うと仮定すると、稀にしか発生しないイベントが何回か発生するまで、そのパターン認識処理で使用するモデルの更新を行うことができないことになり、システムの性能向上は、かなりスロースピードとなる。これに対し、予兆検知システム10では、予兆特徴抽出器50については、予兆として出現しているか否かとは関係なく、特定の状態を捉えるので、そのための学習用のデータは、イベントの発生とは関係なく、常時収集することができる。従って、予兆特徴抽出モデル記憶手段52に記憶された予兆特徴抽出モデルは、頻繁に更新することができるため、予兆検知システム10の全体としての性能向上も、その更新スピードで図ることができる。
さらに、予兆検知システム10では、予兆特徴抽出器50について、学習を行い、予兆特徴抽出モデルを更新する際に、その学習に用いる状態データには、人の知覚で認識可能な知覚データが含まれているので、この知覚データについてのタグ付け作業(アノテーション)を、クラウドソーシングにより実現することができる。この知覚データは、先ず、人の知覚で認識可能である(例えば、人が見れば、あるいは、人が聞けば、簡単に状態を識別することができる)という点で、クラウドソーシングに適しており、次に、予兆特徴抽出器50に入力される状態データであることから、イベント(例えば、牛の分娩)やその予兆とは関係なく、状態を識別することができるため、イベントやその予兆に関する専門知識がなくても、誰でも状態を識別することができるという点で、クラウドソーシングに適しているからである。このため、比較的安価に、かつ、迅速に、さらには手間をかけずに、大量の学習用のデータを収集することができる。
また、予兆特徴抽出器50は、状態データとして知覚データを用いるので、例えば、カメラやマイクロフォン等のような非接触型の状態データ取込機器20を使用することができる。このため、生体への装着の回避による非侵襲性や、設置時の危険の回避を実現することができるうえ、カメラやマイクロフォン等のような比較的安価な機器を用いてシステム構築を行うことができる。
さらに、予兆特徴抽出器50は、ニューラル・ネットワークの中間層出力を抽出するので、最終層(出力層)出力を抽出する場合に比べ、後段の予兆検知器60に対し、その処理に有効な情報を特徴データとして入力することができる。すなわち、最終層(出力層)の出力データは、特定の状態に該当するか否かまたはその程度を示すだけのデータであり、情報量が少なく、予兆検知器60の処理で利用可能な情報が欠落している場合があるので、入力層に入力される状態データ(非常に多くの情報量)から、最終層(出力層)の出力データ(かなり絞り込まれた情報量)に至るまでのネットワーク上に存在する中間的な情報量を抽出し、予兆検知器60の処理で利用することができる。また、最終層(出力層)の出力データは、情報量が少ないので、その判別結果が誤っていた場合には、予兆検知器60の処理に与える影響が大きいが、中間層出力を予兆検知器60の処理で利用すれば、影響を小さくすることができる。
また、予兆検知器60は、予兆が出現する可能性のある区間として複数の予兆時区間を設定し、それらに対応するスコアを出力する構成とされているので、より詳細な予兆検知を行うことができるうえ、予兆検知の結果出力も多様な方法を採用することができ、ユーザによるシステムの使い勝手の向上を図ることができる。
さらに、予兆検知システム10は、事前情報記憶手段71を備え、出力手段70は、事前情報を用いた合成分布を表示する構成とされているので、事前情報に基づくイベント発生の確率分布を徐々に修正していく表示等を行うことができ、ユーザによるシステムの使い勝手の向上を図ることができる。例えば、表示を行う時点(現在、今日)が、イベント発生の予想時期や予定時期と離れているときには、事前情報に基づく確率分布が、殆どそのまま表示され、イベント発生の予想時期や予定時期に近づいてくるにつれ、取得した状態データに基づく確率分布が徐々に反映されてくるような表示を行うことできる。
また、出力手段70は、予兆検知器60からの出力スコアを用いてイベントの発生確率をカレンダ上に表示するので、見やすい表示を実現できるとともに、カレンダ上で、一般的なスケジュール情報と併せて予兆検知に関する情報を表示することもできるため、この点でも、ユーザによるシステムの使い勝手の向上を図ることができる。
そして、出力手段70は、カレンダ上にイベントの発生確率を表示する際に、区間の時間長の相違や区間のずれに応じてスコアの按分や合計を行うので(図9参照)、ユーザによるカレンダの単位区間の切替表示に対応することができる。さらに、スコアの按分や合計を行うので、時間の経過とともに、カレンダ上で、予兆検知結果を表示する起点となる現在(スコア出力の時点)の位置が移動していくという状況に対し、柔軟に対応することができる。これにより、事前情報を用いた合成分布の表示も容易に行うことができる。
また、出力手段70は、様々な出力形式で予兆検知結果を出力することができるので(図8~図13参照)、ユーザの要望に沿う形式の出力を行うことができるうえ、複数の予兆時区間の各々の確率分布またはその累積分布を、滑らかに、または矛盾なく接続した表示を実現することができる。
[変形の形態]
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
例えば、前記実施形態では、予兆検知器60は、リカレント・ニューラル・ネットワーク(RNN)による時系列パターン認識処理を行う構成で説明されていたが、本発明の予兆検知システムに使用される予兆検知器は、これに限定されるものではない。なお、以下に述べる予兆検知器については、前記実施形態の内部構成(図2、図3参照)とは異なる内部構成を有するが、システムの全体構成としては、前記実施形態の図1の状態と同じであるので、説明や図示の簡略化のため、図1には、以下に述べる予兆検知器に関する内容も並記している。従って、RNNとは内部構成が異なるが、以下に述べる予兆検知器についても、前記実施形態と同様に、60という符号を付して説明や図示を行うものとする(図14~図17参照)。
先ず、本発明における予兆検知器の「時系列パターン認識処理」は、前記実施形態のRNNや、隠れマルコフモデル(HMM)のように、内部メモリ(前回または前回以前の内部的処理結果を記憶する内部メモリ)を有することにより、内部構造的に系列モデリングを実現しているパターン認識器による処理に限定されるものではなく、内部メモリによる系列モデリングを行わない静的なパターン認識器による処理も含まれる。換言すれば、内部メモリを有するパターン認識器では、その内部メモリの情報が反映されるので、同じ入力に対し、常に同じ出力になるわけではないが、静的なパターン認識器では、同じ入力に対し、常に同じ出力が得られる。従って、本発明でいう「時系列パターン認識処理」には、同じ入力に対し、常に同じ出力が得られる静的なパターン認識器による処理も含まれ、具体的には、例えば、混合ガウスモデル(GMM)、単純なニューラル・ネットワーク(内部メモリを持たないNN)、サポート・ベクター・マシン(SVM)等が含まれる。これらも含めて「時系列パターン認識処理」と呼ぶのは、静的なパターン認識器であっても、新しい時刻のデータが継続的に発生している状況下にある時系列データの中から一定期間(移動する一定期間)内の複数のデータを切り出し、入力することを繰り返す場合であれば、時間的な要素を加味した処理を実現できるからである。なお、RNNの場合は、内部メモリを有しているので、1時刻の特徴データだけを入力しても、時間的要素を加味した処理を内部構造的に実現できるが、このような場合において、更に複数の時刻の特徴データを同時に入力してもよいことは、前記実施形態の説明で詳述している。
次に、具体例を説明する。以下の図14~図17の例では、新しい時刻の特徴データが継続的に発生している状況下にある時系列の特徴データの中から一定期間(移動する一定期間)内の複数の特徴データを切り出し、静的なパターン認識器に入力している点は共通している。但し、以下に述べる処理を、内部メモリにより系列モデリングを実現しているパターン認識器に適用することができないという意味ではなく、適用してもよい。
<切出区間Cの特徴データの集合を1つずつ静的なパターン認識器に入力する場合>
図14において、予兆時区間は、前記実施形態の図4の場合と同様であり、ここでは、4つの予兆時区間A1,A2,A3,A4および非着目区間(平常時)AXが設定されているものとする。この例では、予兆検知器60は、運用時に、時系列の特徴データの中から、直近の一定期間である切出区間Cに含まれる複数の特徴データを切り出して入力する。切出区間C内の特徴データの数はK個とする。この切出区間Cの時間長は、予兆時区間A1,A2,A3,A4および非着目区間(平常時)AXに比べ、短い時間である。また、切出区間Cによる切出処理は、時系列の特徴データがF1,F2,F3,F4,…(K個=例えば100個)であるとすれば、(F1,F2,…,F100)、(F2,F3,…,F101)のように、1つずつずらしながら切り出してもよく、(F1,F2,…,F100)、(F101,F102,…,F200)のように、重なりなく切り出してもよく、あるいは、(F1,F2,…,F100)、(F11,F12,…,F110)のように、重なりはあるが、ずらし量が1つではなく、2以上である切り出しを行ってもよい。このような予兆時区間A1~A4および非着目区間AXの設定、並びに、切出区間Cの設定は、以下の図15~図17の例でも同様である。
図14の例では、切出区間C内のK個の特徴データは、まとめて同時に入力するのではなく、1つずつ入力する。この際、入力の順序は任意であり、時系列を考慮する必要はない。K個の特徴データを集合として捉えるからである。K個の特徴データをパターン認識器に1つずつ入力するので、パターン認識器からK個(K組)のサブスコアが得られる。この例では、1つ(1組)のサブスコアに、A1,A2,A3,A4,AXに対する各尤度が含まれている。従って、予兆検出器60は、5×K個の尤度を用いて、最終的なスコアを算出し、出力する。例えば、A1に対応する尤度が、K個あるので、それらのK個の尤度を合計し、Kで割ることにより、A1に対応するスコアを算出する。A2,A3,A4,AXも同様である。このようなサブスコアを用いて最終的なスコアを算出する処理も含めて予兆検知処理手段61による処理(アルゴリズム)、すなわち、内部メモリを有しないパターン認識器による処理である。勿論、予兆検知処理手段61による処理中に、K個の特徴データを記憶したり、K個(K組)のサブスコアを記憶するので、そのための作業用のメモリは有するが、系列モデリングを実現するための内部メモリ(前回または前回以前の内部的処理結果を記憶する内部メモリ)は持たないという意味である。
なお、図14の例では、学習処理は、前記実施形態の場合(図4参照)と同様である。また、予兆時区間の設定およびスコア出力についての形式は、前記実施形態で説明した形式B(図5参照)のほうを選択することもできる。
<切出区間Cの特徴データの集合を分布として捉えて分布間の類似度を求める場合>
図15の例では、学習時および運用時の双方で、特徴データの集合を分布として捉える。但し、分布の標本数は、学習時と運用時とで異なる。学習時は、予兆時区間A1~A4および非着目区間AXのそれぞれの区間に属する特徴データであるから、多数の特徴データがあり、特に、非着目区間AXは非常に多数の特徴データがある。予兆を検知するイベントの性質にもよるが、例えば、何千、何万、何十万という標本数である。これに対し、運用時は、移動する切出区間C内のK個の特徴データであるから、相対的に少ない標本数である。切出区間Cは、現在がイベントの予兆検知に関し、どのような状況下に相当する時期なのか(12時間前なのか、24時間前なのか等)を判断するための区間であるので、前段の予兆特徴抽出器50による特徴データの抽出の時間間隔にもよるが、学習時に対し、標本数の桁数は相対的に小さい。
図15の例では、学習時にも運用時にも、M次元ベクトルである特徴データの集合を分布として捉え、それぞれの分布の代表値(代表ベクトル)を求める。すなわち、学習時には、A1用、A2用、A3用、A4用、AX用の各分布があるので、それらの各分布についての代表値を、別々に求める。そして、運用時には、切出区間C内のK個の特徴データ(M次元ベクトル)による分布があるので、その分布についての代表値を求める。この代表値(代表ベクトル)の次元数は、特徴データの次元数(M次元)と一致していてもよく、一致していなくてもよい。
分布の代表値(代表ベクトル)としては、様々なものを選択することができ、1つの代表値ではなく、複数の代表値の組合せとしてもよく、例えば、平均値、最頻値、中央値(メジアン)、標準偏差、分散の各ベクトル、あるいは頻度ベクトル等を選択することができる。図15には、一例として、分布として正規分布を仮定し、平均ベクトルμおよび標準偏差ベクトルσの組合せが示され、いずれも次元数は、特徴データと同じであり、M次元ベクトルである。予兆時区間A1については、(μ1,σ1)が求められ、他の区間についても同様に、(μ2,σ2)、(μ3,σ3)、(μ4,σ4)、(μX,σX)が求められる。そして、学習時に求められた各区間A1~A4,AX用の分布の代表値(代表ベクトル)は、予兆検知モデル記憶手段62に記憶される。また、運用時も同様に、運用時の分布についての(μ,σ)が求められる。
なお、ここでは、分布の代表値は、代表ベクトルとしているが、スカラ値でもよく、あるいは、行列やテンソル量でもよい。
分布の代表値(代表ベクトル)を頻度ベクトルとする場合は、例えば、次のように求めることができる。M次元ベクトルである特徴データを構成する各要素の値(それぞれの次元の値)が、全て事後確率であった場合に、それぞれの次元毎に、各要素の値が閾値P以上となる頻度を、分布の標本数である特徴データの数(運用時は、K個)に基づき正規化し、この正規化で得られた各次元の値を、代表値(代表ベクトル)の構成要素とすることができる。
具体的には、特徴データの数が、K個=5個であり、特徴データの次元数が、M次元=4次元であり、閾値が、P=0.75(75%)であり、1~5番目の特徴データの内容が、下記の通りであるとする。
1番目の特徴データ=(0.12,0.31,0.81,0.97)
2番目の特徴データ=(0.11,0.33,0.45,0.66)
3番目の特徴データ=(0.30,0.38,0.96,0.82)
4番目の特徴データ=(0.13,0.62,0.68,0.51)
5番目の特徴データ=(0.88,0.62,0.68,0.78)
このとき、第1番目の次元の要素の値だけを見ると、0.12,0.11,0.30,0.13,0.88であるから、この次元における閾値P=0.75以上の要素の出現数は1要素であり、正規化すると、5要素のうちの1要素であるから、この次元の値には、1/5を採用することができる。他の次元も同様であり、結局、次のようになる。
頻度ベクトル=(1/5,0/5,2/5,3/5)
運用時におけるK個の特徴データで説明したが、学習時も、標本数が多くなるだけであり、同じ処理である。各区間A1,A2,A3,A4,AXのそれぞれについて、頻度ベクトルが作成される。この頻度ベクトルの次元数は、特徴データの次元数(M次元=4次元)と一致している。
また、頻度ベクトルは、次のように、内部メモリを持たない静的なパターン認識器による処理(アルゴリズム)により、求めてもよい。例えば、GMM、単純なNN、SVM等のように、一般的な識別問題に用いられる手法を全て採用することができる。この際、5つの区間A1,A2,A3,A4,AXを、頻度ベクトル算出用の区間として、幾つかの区間に分割し、それらの区間に対応する尤度を出力させる。この区間の分割形態は、任意であり、例えば、2分割であれば、「区間A1+A2+A3+A4=区間A1234」と、区間AXとに分割したり、区間A1と、「区間A2+A3+A4+AX=区間A234X」とに分割したり、あるいは、「区間A1+A2=区間A12」と、「区間A3+A4+AX=区間A34X」とに分割すること等ができる。また、3分割であれば、例えば、区間A1と、「区間A2+A3+A4=区間A234」と、区間AXとに分割したり、「区間A1+A2=区間A12」と、「区間A3+A4=区間A34」と、区間AXとに分割すること等ができる。同様に、4分割、5分割とすることもでき、5分割した場合には、結局、元の5つの区間A1,A2,A3,A4,AXに分割することになる。さらには、頻度ベクトル算出用の区間として、5つの区間A1,A2,A3,A4,AXの区切り位置とは全く異なる位置で区切って形成した2以上の区間を用意してもよい。
そして、例えば、頻度ベクトル算出用の区間として、元の5つの区間A1,A2,A3,A4,AXと同じ区切り方で、5つの区間A1,A2,A3,A4,AXを用意した場合には、これらの5つの区間に対応する尤度をまとめて出力(特徴データが、A1に属することの確からしさを示す数値、A2に属することの確からしさを示す数値、…、AXに属することの確からしさを示す数値をまとめて出力)するパターン認識器を構築してもよく、各区間A1,A2,A3,A4に対応する尤度を別々に出力(予兆時区間A1であれば、特徴データが、A1に属することの確からしさを示す数値、および、A1に属さないことの確からしさを示す数値を出力)する4つのパターン認識器を構築してもよい。なお、頻度ベクトル算出用の区間として、2つの区間(例えば、区間A1234、区間AX))を形成した場合には、パターン認識器は1つでよい。
具体的には、例えば、頻度ベクトル算出用の区間として、2つの区間A1234,AXを設けるとする。そして、混合ガウスモデル(GMM)の場合に、学習用データとして得られている2つの区間A1234,AXの全ての特徴データを用いた最尤学習により、区間A1234に対応する尤度を出力する区間A1234用のGMMを構築したとする。従って、区間A1234用のGMMが、A1234に対応する尤度(特徴データが、A1234に属することの確からしさを示す数値、および、A1234に属さないことの確からしさを示す数値)を確率として出力するものとする。そして、A1234に属することの確からしさを示す数値(確率)を5区画に分け、(0以上0.2未満、0.2以上0.4未満、0.4以上0.6未満、0.6以上0.8未満、0.8以上)という頻度ベクトルを求めるものとする。特徴データの内容には、上述した数値例を用いる。
1番目の特徴データ=(0.12,0.31,0.81,0.97)をA1234用のGMMに入力し、その出力が(A1234に属する尤度=0.80、A1234に属さない尤度=0.20)であったとすると、A1234に属する尤度=0.80を用いて、(0,0,0,0,1)という尤度帰属区画表示ベクトルが作成される。
2番目の特徴データ=(0.11,0.33,0.45,0.66)をA1234用のGMMに入力し、その出力が(A1234に属する尤度=0.91、A1234に属さない尤度=0.09)であったとすると、A1234に属する尤度=0.91を用いて、(0,0,0,0,1)という尤度帰属区画表示ベクトルが作成される。
3番目の特徴データ=(0.30,0.38,0.96,0.82)をA1234用のGMMに入力し、その出力が(A1234に属する尤度=0.63、A1234に属さない尤度=0.37)であったとすると、A1234に属する尤度=0.63を用いて、(0,0,0,1,0)という尤度帰属区画表示ベクトルが作成される。
4番目の特徴データ=(0.13,0.62,0.68,0.51)をA1234用のGMMに入力し、その出力が(A1234に属する尤度=0.55、A1234に属さない尤度=0.45)であったとすると、A1234に属する尤度=0.55を用いて、(0,0,1,0,0)という尤度帰属区画表示ベクトルが作成される。
5番目の特徴データ=(0.88,0.62,0.68,0.78)をA1234用のGMMに入力し、その出力が(A1234に属する尤度=0.38、A1234に属さない尤度=0.62)であったとすると、A1234に属する尤度=0.38を用いて、(0,1,0,0,0)という尤度帰属区画表示ベクトルが作成される。
そして、1~5番目の特徴データについて得られた5つの尤度帰属区画表示ベクトルを用いて、正規化を行うと、次のようになる。
頻度ベクトル=(0/5,1/5,1/5,1/5,2/5)
また、頻度ベクトル算出用の区間として、3つの区間(例えば、A1,A234,AX)を設けると、区間A1に対する尤度について、上記のような5次元の頻度ベクトルが得られ、区間A234に対する尤度についても、上記のような5次元の頻度ベクトルが得られる。これら2つのベクトルを合成(2つのベクトルの直積(テンソル積)を計算して得られた行列の各成分からなるベクトルを得る操作とする。例えばu=(u1, u2, …, um)がm次元のベクトル、v=(v1, v2, …, vn)がn次元のベクトルの場合、その直積はm×nの行列となる。この行列の各成分は((u1×v1, u1×v2, …, u1×vn), (u2×v1, u2×v2, …, u2×vn), …, (um×v1, um×v2, …, um×vn))として与えられる。その各成分を取り出してm×n次元のベクトルを得る。)することで、25次元の頻度ベクトル(u=(u1, u2, u3, u4, u5)が5次元の頻度ベクトル、v=(v1, v2, v3, v4, v5)が5次元の頻度ベクトルの場合、合成頻度ベクトルは(u1×v1, u1×v2, …, u1×v5, u2×v1, u2×v2, …, u2×v5, …, u5×v1, u5×v2, …, u5×v5)として与えられる。)が得られる。
また、各々の区間(但し、イベント発生時点から最も遠い区間を除く)に属することの確からしさを示す数値(確率)を分割する区画の数は、区間ごとに異なっても良い。例えば、頻度ベクトル算出用の区間として、3つの区間(例えば、A1,A234,AX)を設け、区間A1の区画の数を(0以上0.3未満、0.3以上0.7未満、0.7以上)の3区画、区間A234の区画の数を(0以上0.7未満、0.7以上)の2区画に分けると、3次元の頻度ベクトルが1つ、2次元の頻度ベクトルが1つ得られるので、それらを合成して2×3=6次元の頻度ベクトルが得られる。
同様に、頻度ベクトル算出用の区間として、5つの区間A1,A2,A3,A4,AXを設け、さらに全ての区間(イベント発生時点から最も遠い区間AXを除く4つの区間)の区画の数をそれぞれ2区画とすると、区間A1~A4の各々に対する尤度について、上記のような2次元の頻度ベクトルが得られ、合計4つの2次元の頻度ベクトルとなるので、これらを合成し、16次元の頻度ベクトルが得られる。なお、頻度ベクトル算出用の区間として、4つの区間を設け、各々の区間(イベント発生時点から最も遠い区間を除く3つの区間)の区画の数をそれぞれ5区画,3区画,2区画に分けると、5次元の頻度ベクトルが1つ、3次元の頻度ベクトルが1つ、2次元の頻度ベクトルが1つ得られるので、それらを合成して5×3×2=30次元の頻度ベクトルが得られる。
運用時におけるK個の特徴データで説明したが、学習時も、標本数が多くなるだけであり、同じ処理である。学習時には、例えば、区間A1234用のGMM(1つのGMM)を用意した場合には、このA1234用のGMMに対し、元の区間A1,A2,A3,A4,AXのそれぞれについて、頻度ベクトルを作成する。A1234用のGMMというパターン認識器は、あくまでも頻度ベクトル算出用の区間を形成したときの当該区間についての認識器であるから、元の各区間A1,A2,A3,A4,AXとは異なる概念で区切られた区間についての認識器である。詳述すれば、A1234用のGMMに対し、元の区間A1に属する全ての特徴データを入力すると、多数の尤度帰属区画表示ベクトルが作成され、それらの全てを用いて正規化を行うと、上記のような頻度ベクトルが作成されるが、その頻度ベクトルは、元の区間A1についての頻度ベクトルである。元の各区間A2,A3,A4,AXについても、A1234用のGMMを用いて同様な処理を行えば、元の区間A2,A3,A4,AXについてのそれぞれの頻度ベクトルが作成される。そして、作成された元の区間A1,A2,A3,A4,AXについての頻度ベクトルを、分布の代表値(代表ベクトル)として予兆検知モデル記憶手段62に記憶させてパラメータとして扱う。また、A1234用のGMMのパラメータも、運用時に使用するので、予兆検知モデル記憶手段62に記憶させる。
また、上述したように、頻度ベクトル算出用の区間を形成する場合は、元の区間A1,A2,A3,A4,AXとは独立させ、任意の区間とすることができるので、例えば、A12用のGMM、A34用のGMM、A123用のGMM、A234用のGMM等のように、様々な認識器が用意されることになる。従って、それらの認識器の各々に対し、元の区間A1,A2,A3,A4,AXのそれぞれに属する特徴データを入力すると、認識器の数の分だけ、元の区間A1,A2,A3,A4,AXのそれぞれについての頻度ベクトルが作成されることになるが、この際、用意される認識器の数によっては、すなわち、頻度ベクトル算出用の区間を形成する際の分割数によっては、作成された頻度ベクトルを合成して1つの頻度ベクトルにする処理が発生する。頻度ベクトル算出用の区間を、どのように設定したとしても、元の区間A1についての頻度ベクトルは1つにし、同様に、元の区間A2,A3,A4,AXについての頻度ベクトルも、1つずつにするためである。より具体的には、頻度ベクトル算出用の区間として、2分割した区間(例えば、2つの区間A1234,AX)を形成した場合は、認識器は1つなので、合成は必要ないが、例えば、5分割した区間を形成し、4つの認識器(または4つの認識器の出力をまとめて出力する1つの認識器)を用意し、さらに全ての区間(イベント発生時点から最も遠い区間を除く4つの区間)の区画の数をそれぞれ2区画とした場合は、前述したように、合計4つの2次元の頻度ベクトルを合成し、16次元の頻度ベクトルとする処理を行う。4つの認識器のそれぞれから、元の区間A1についての2次元の頻度ベクトルが作成されるので、それらの元の区間A1についての4つの2次元の頻度ベクトルを合成することにより、A1についての16次元の頻度ベクトルを作成し、同様にして、元の区間A2,A3,A4,AXについても、A2,A3,A4,AXのそれぞれについての16次元の頻度ベクトルを作成するという意味である。これにより、各区間A1,A2,A3,A4,AXのそれぞれについて、頻度ベクトルが作成される。また、上記の頻度ベクトルは、2次元(合成する場合は、4次元、8次元、16次元)であるから、特徴データの次元数(M次元=4次元)と一致していない。従って、複数の特徴データにより形成される分布の代表値(代表ベクトル)の次元数は、特徴データの次元数と一致していなくてもよい。
以上のように、運用時において、切出区間C内のK個の特徴データによる分布の代表値(代表ベクトル)が得られるとともに、各区間A1,A2,A3,A4,AXの分布の代表値(代表ベクトル)が予め求められて予兆検知モデル記憶手段63に記憶されている状況下では、代表値(代表ベクトル)間の類似度を算出することができる。すなわち、運用時の分布の代表値(代表ベクトル)と、各区間A1,A2,A3,A4,AXの分布の代表値(代表ベクトル)のそれぞれとの類似度L1,L2,L3,L4,LXを算出することができる。この際、類似度としては、例えば、正規分布を仮定し分布の代表値として平均ベクトルμおよび標準偏差ベクトルσが求められている場合はKLダイバージェンス(KL距離)を用いることができる。また、例えば、頻度ベクトルが求められている場合はユークリッド距離やコサイン類似度等を用いることができる。
そして、算出された類似度L1,L2,L3,L4,LXは、サブスコアであるから、これらのサブスコアを用いて、最終的なスコアを算出し、出力する。例えば、分布間の距離を示すKL距離の場合には、分布が完全に一致したときには0になり、離れているときには、数値が大きくなるので、この関係を逆転させ、分布が近いときに、高い確率であることをイメージできるように数値を大きくするような変換処理等を行う。このような変換処理は、関数で行ってもよく、テーブルで行ってもよい。また、このような変換処理の機能を、出力手段70に持たせてもよく、その場合には、サブスコアである類似度が、予兆検知器60の最終的な出力スコアとなる。
<切出区間Cの特徴データの集合をベクトル化してベクトル間の類似度を求める場合>
図16の例では、学習時に、最尤学習により、各区間A1,A2,A3,A4,AX用の混合ガウスモデル(GMM)、および全体のGMMを構築する。全体のGMMは、各区間A1~A4,AXに属する全ての特徴データ(A1の特徴データの集合+A2の特徴データの集合+…)を使った学習で得られるモデルであり、ユニバーサル・バックグランド・モデル(UBM)である。各区間A1~A4,AX用のGMMは、全体的・平均的な内容を示すUBMに対し、各区間A1~A4,AXのそれぞれに属する特徴データの集合から得られる部分的な情報(予兆時区間A1であれば、A1だけの情報)を適応させたモデルである。
続いて、各区間A1~A4,AXのGMM、および全体のGMMのそれぞれについて、スーパーベクトル(SV)を作成する。このSVは、GMMを構成するガウス分布の平均ベクトルμを全て連結して形成した高次元ベクトルである。これにより、A1のGMMのSV、A2のGMMのSV、A3のGMMのSV、A4のGMMのSV、AXのGMMのSV、および、全体のGMMのSVが作成される。
それから、これらのSVを用いて、次の式に基づき、確率的因子分析を行うことにより、射影行列、および各区間A1~A4,AX用のiベクタを算出する。iベクタは、SVよりも次元数の小さい低次元ベクトルであるが、このiベクタの次元数は、本システムを構築するシステム管理者が、適切な次元を選択して決める。なお、iベクタに関する技術自体は公知技術である(非特許文献1参照)。
各区間A1~A4,AXのGMMのSV=全体のGMMのSV+射影行列×各区間A1~A4,AXのiベクタ
これにより、A1のiベクタ、A2のiベクタ、A3のiベクタ、A4のiベクタ、AXのiベクタ、および、1つの射影行列が得られる。その後、各区間A1~A4,AXのiベクタ、射影行列、および、全体のGMMのSVを、予兆検知モデル記憶手段62に記憶させる。射影行列および全体のGMMのSVを記憶させるのは、運用時のiベクタを上記の式で算出する際に、これらを固定値として用いるからである。
なお、iベクタを算出せずに、学習時の処理をSVの算出までの処理とし、SVを類似度の判定に用いてもよい。SVを類似度の判定に用いる場合には、各区間A1~A4,AXのSVを、予兆検知モデル記憶手段62に記憶させる必要があるが、運用時にiベクタの算出は行わないので、全体のGMMのSVを記憶させる必要はない。
運用時には、切出区間C内のK個の特徴データを用いて、運用時のGMMを生成し、更に、この運用時のGMMのSVを生成する。それから、生成した運用時のSVを、射影行列および全体のGMMのSVの部分が固定値とされている状態(これらは、パラメータとして、予兆検知モデル記憶手段62から読み込まれる。)の前述した式に入力し、運用時のiベクタを算出する(実際の計算はEMアルゴリズム等により行う)。
以上のように、運用時において、切出区間C内のK個の特徴データによる運用時のiベクタが得られるとともに、各区間A1,A2,A3,A4,AXのiベクタが予め求められて予兆検知モデル記憶手段63に記憶されている状況下では、iベクタ間の類似度を算出することができる。すなわち、運用時のiベクタと、各区間A1,A2,A3,A4,AXのiベクタのそれぞれとの類似度R1,R2,R3,R4,RXを算出することができる。この際、類似度としては、例えば、コサイン類似度等を用いることができる。
そして、算出された類似度R1,R2,R3,R4,RXは、サブスコアであるから、これらのサブスコアを用いて、最終的なスコアを算出し、出力する。例えば、サブスコアから、確率の大きさを示すような数値への変換処理を行う。このような変換処理は、関数で行ってもよく、テーブルで行ってもよい。また、このような変換処理の機能を、出力手段70に持たせてもよく、その場合には、サブスコアである類似度が、予兆検知器60の最終的な出力スコアとなる。
<各区間A1~A4,AX内にセグメントを形成する場合>
図17の例では、各区間A1~A4,AX内に、小区間であるセグメントを形成している。予兆時区間A1においては、セグメントA1(S1),A1(S2),A1(S3),A1(S4),…が形成されている。従って、これらのセグメントの時間長は、予兆時区間A1の時間長よりも短い。また、それぞれのセグメントの区間は、重なっていてもよく、重なりなく形成されていてもよい。その他の区間A2~A4,AXについても同様である。
前述した図15の例では、学習で得られた各区間A1~A4,AXの分布の代表値(代表ベクトル)と、これよりも短い期間である運用時の切出区間Cの分布の代表値(代表ベクトル)との分布間の類似度L1~L4,LXを算出していた。また、前述した図16の例では、学習で得られた各区間A1~A4,AXのiベクタまたはスーパーベクトル(SV)と、これよりも短い期間である運用時の切出区間CのiベクタまたはSVとのベクトル間の類似度R1~R4,RXを算出していた。従って、前述した図15や図16の例では、例えば予兆時区間A1であれば、区間A1の全体を示す内容(区間A1内で平均化された内容)と、それよも短い期間である切出区間Cの内容とを比較していることになる。このため、区間A1内に、部分的に、切出区間Cの内容に類似する内容の部分があったとしても、必ずしもそれが直接に類似度に反映されない場合もある。そこで、小区間であるセグメントを形成し、部分的な類似を捉えようとしている。よって、各セグメントの時間長は、任意ではあるが、運用時の切出区間Cの時間長と同一または同程度であることが好ましい。
図17の例では、学習時に、各セグメントについて、各セグメントに属する特徴データを用いて、図16の場合と同様にして、スーパーベクトル(SV)やiベクタが作成され、あるいは、図15の場合と同様にして、分布やその代表値(代表ベクトル)が作成される。従って、予兆時区間A1については、各セグメントA1(S1),A1(S2),A1(S3),A1(S4),…のSV群、iベクタ群、あるいは、分布群またはそれらの代表値(代表ベクトル)群が作成される。その他の区間A2~A4,AXについても同様である。
また、運用時の切出区間CのSVやiベクタの算出も、図16の場合と同様であり、運用時の切出区間Cの分布またはその代表値(代表ベクトル)の算出も、図15の場合と同様である。
図17の例における類似度の算出は、予兆時区間A1については、運用時の切出区間CのSVやiベクタと、区間A1のSV群の各々やiベクタ群の各々とのベクトル間の類似度(例えばコサイン類似度等)を算出し、あるいは、運用時の切出区間Cの分布の代表値(代表ベクトル)と、区間A1の分布群の代表値(代表ベクトル)群の各々との分布間の類似度(例えばKL距離等)を算出する。その他の区間A2~A4,AXについても同様である。そして、K-NN法等により、運用時の切出区間CのSVやiベクタ、あるいは分布の代表値(代表ベクトル)が、各区間A1~A4,AXのうちのいずれに割り当てられるのか、またはその程度を算出する。または、内部メモリを持たない静的なパターン認識器による処理(アルゴリズム)により、求めてもよい。例えば、GMM、単純なNN、SVM等のように、一般的な識別問題に用いられる手法を全て採用することができる。簡単に言えば、運用時の切出区間CのSVやiベクタ、あるいは分布の代表値(代表ベクトル)に対し、予兆時区間A1内には、類似のセグメントが幾つあり、予兆時区間A2内には、類似のセグメントが幾つあり、…、予兆時区間AX内には、類似のセグメントが幾つあるというような情報を類似度(サブスコア)として出力する。そして、必要に応じ、サブスコアからの変換処理を行って最終的なスコアを出力するか、または、得られた類似度(サブスコア)をそのまま最終的なスコアとして出力する。