図1に歩行者の歩行態様を分析するデータ分析システム110のハードウェア構成を示す。データ分析システム110は、被計測者の歩行を計測するためのセンサ111と、センサ111を用いて被計測者の歩行を計測し、その計測結果より歩行態様の分析を行うデータ分析装置100を有している。
データ分析装置100は、CPU(Central Processing Unit)101、入力I/F(Interface)102、出力I/F103、メモリ104、ストレージ105、I/Oポート106を備え、それらが内部バス107により結合された、汎用計算機として実現可能な情報処理装置である。入力I/F102は、キーボードやマウス等の入力装置に接続され、また出力I/F103は、ディスプレイやプリンタに接続され、操作者に対するGUI(Graphical User Interface)を実現する。ストレージ105は通常、HDD、SSDやROM、フラッシュメモリなどの不揮発性メモリで構成され、データ分析装置100が実行するプログラムやプログラムが処理対象とするデータ等を記憶する。メモリ104はRAM(Random Access Memory)で構成され、CPU101の命令により、プログラムやプログラムの実行に必要なデータ等を一時的に記憶する。CPU101は、ストレージ105からメモリ104にロードしたプログラムを実行する。
データ分析装置100は、センサ111に対してセンシングデータの収集命令を出し、センサ111はこれに応じて被計測者の歩行についてセンシングを行い、計測結果をデータ分析装置100に送信する。センサ111としてはTOF(Time of Flight)方式による距離センサを用いることができる。被計測者の歩行態様を捉えるには、被計測者の歩行中における身体の計測点(関節等)の3次元空間における動き(軌跡)を計測する必要があり、距離センサは、3次元空間における計測点の座標を直接的に求めることができる利点を有している。なお、距離センサに限らず、センサ111をビデオカメラとし、ビデオカメラにより歩行中の被計測者を撮影した映像から画像解析を行ってもよいし、加速度センサ、角度センサ、ジャイロセンサのようなセンサを用いてもよい。複数種類のセンサを用いることも可能である。
図2はデータ分析システム110のソフトウェア構成であり、データ分析装置100において実行されるプログラムとその関係を示している。データ分析プログラム200は、歩行を計測し、その計測結果より歩行態様を分析する機能を有する。ユーザ入出力処理部201は、操作者が、各モジュール202~207に指示や情報を入力するインタフェースプログラムである。モジュール202~207は、歩行を計測、あるいは歩行態様の分析に関する機能を実行するプログラムであり、その内容については後述する。データベースプログラム210は、データ分析システム110に必要な計測データや分析モデルを、ストレージ105に格納し、管理する機能を有する。
本実施例では、歩行態様の分析を、アンサンブルモデルを用いて行う。アンサンブルモデルは、複数のモデル(弱識別機)による推論を統合して1つの推論を行うモデルである。図3に、本実施例に適用されるアンサンブルモデルの概念図を示す。アンサンブルモデル300は、被計測者の歩行が健常歩行であるか否かを判定する健常歩行モデル、被計測者の歩行が異常歩行1であるか否かを判定する第1の異常歩行モデル、被計測者の歩行が異常歩行2であるか否かを判定する第2の異常歩行モデルの3つのモデル(弱識別機)の判定結果を統合して、被計測者の歩行が健常であるかどうかを判定する。異常歩行1,2は、それぞれ歩行障害とされる特定の歩行状態である。アンサンブルモデル300は、第1の異常歩行モデルの出力する異常度1(異常歩行1である確率)と第2の異常歩行モデルの出力する異常度2(異常歩行2である確率)とを比較して、大きな方を最大異常度(何らかの異常歩行である確率)とし、最大異常度と健常歩行モデルの出力する健常度(健常歩行である確率)とを統合することにより、健常者歩行度(健常歩行である確率)を出力する。図3に示す複数のモデル(弱識別機)、及びその統合方法は一例である。
ここで、アンサンブルモデル300を構成する健常度、異常度1、異常度2を出力するモデルはそれぞれのモデル群から選択され、モデル群の少なくとも一つは、複数のモデルを有するものとする。図3の例では、健常度を出力するモデルとして、健常歩行モデル群301として登録されたモデル1,2から選択可能とされ、異常度1を出力するモデルとして、第1の異常歩行モデル群302として登録されたモデル3,4から選択可能とされ、異常度2を出力するモデルとして、第2の異常歩行モデル群303として登録されたモデル5,6から選択可能とされている。本実施例のデータ分析システム110は、データ分析に求められる性能や制約に応じて、モデル群301~303に登録されたうちから1つのモデルを選択することにより、被計測者のニーズに応じた分析を実現可能にする。
このように、データ分析に求められる性能や、許容される制約が異なる被計測者層に対して、データ分析システム110を適合させるため、データ分析システム110の管理者は、分析設定処理部206を起動し、分析設定データ213とドメイン知識データ217とを登録する(図2参照)。
図4に分析設定データ213の例を示す。分析設定データ213は、被計測者層ごとに適用するアンサンブルモデルの性能と制約とを定義するものである。分析対象2132は被計測者層を示し、ここではシステム110が利用される場所によって被計測者層を定義している。なお、定義方法は本例に限定されることなく、任意である。それぞれの分析対象に対して、アンサンブルモデルの性能要件と制約要件とが定義されている。性能要件は、性能指標2133と性能閾値2134によって定義される。例えば、設定ID1として定義された被計測者層(介護施設)の場合、性能指標MCC(マシューズ相関係数)が0.2以上であることを性能要件としている。性能要件を定義するにあたり、複数の性能指標から選択した性能指標を用いることによって被計測者層ごとのニーズにより適合する結果を得ることが期待される。例えば、正確性をより重視する被計測者層か、再現性をより重視する被計測者層かによって、求められる性能を反映する指標と当該指標に対する閾値とを設定する。一方、制約要件は、データ分析に許容される時間の上限を示す時間制約2135により定義される。この例では、フィットネスジムの被計測者(設定ID2)は分析時間について厳しい制約が設けられ、医療施設の被計測者(設定ID3)は分析時間についての制約が設けられていない(時間制約2135を負の値とすることで、制約を設けていないことを表している)。
図5にドメイン知識データ217の例を示す。ドメイン知識データ217は、被計測者層ごとに重要な特徴量を定義するものである。ここでの特徴量とは、センサ111で計測した被計測者の歩行中における身体の計測点(関節等)の3次元空間における動き(軌跡)に基づき算出される特徴量であって、歩行中における被計測者の関節や軸の動き、相関などである。ドメイン知識データ217は、予測モデルにおける重み付けにかかわらず、分析に含ませる特徴量データであって、例えば、医師やトレーナが分析結果を被計測者に説明するにあたって参照したい特徴量データなどが該当する。ドメイン知識データ217も、分析設定データ213と同じ定義をされた被計測者層ごとに定義される。この例では、特徴量名2173に登録された特徴量に対して重要度2174が定義されている。例えば、分析対象「介護施設」では特徴量Bに対して特徴量Aの方が高い重要度とされており(知識ID1,2)、計測する特徴量を絞り込む場合に、重要度の値の小さいものから算出対象から外していくことができる。この例では、各特徴量の重要度を定義しているが、被計測者層ごとの各特徴量の重要度の順位付けを定義してもよい。
図6を用いて、データ分析装置100としてのPC600により、計測者610が被計測者620の歩行態様を分析する処理フローについて説明する。PC600は、分析対象として定義された特定の場所(介護施設、フィットネスジム、医療施設等)に設置され、上述した分析設定データ213に定義された設置場所に対して設定された性能要件と制約要件とを満たすよう、アンサンブルモデルが構築され、また、構築されたアンサンブルモデルに必要な特徴量データが選択された状態にある。
被計測者620が計測者610に計測依頼を行う(S600)と、計測者610は、ユーザ入出力処理部201に対し計測開始操作を行う(S601)。ユーザ入出力処理部201はまず、データ計測処理部202に計測開始要求を出す(S602)。データ計測処理部202は、センサ111を用いて被計測者620の歩行を計測し(S603)、得られた計測データをストレージ105に格納する(S604)。図7に、計測データ211のデータ構造を示す。
計測データ211は、被計測者の計測点の3次元空間の軌跡であり、タイムスタンプ2113に示される時間ごとの各計測点の(X,Y,Z)座標2114が格納されている。計測点としては、歩行態様に影響する関節等が設定される。データID2111は計測データ211に含まれるそれぞれのレコードに対応して付されるIDであり、計測ID2112は、被計測者620の計測依頼のそれぞれに対応して付されるIDである。
被計測者620の歩行の計測が終了すると、ユーザ入出力処理部201は、特徴量算出処理部203に特徴量算出要求を出す(S605)。特徴量算出処理部203は、アンサンブルモデルに使用する特徴量を指定する選択特徴量データ216、及び被計測者620の計測データ211の入力を受け(S606,607)、選択特徴量データ216により指定された特徴量データ212を算出し、得られた特徴量データをストレージ105に格納する(S608)。図8に、特徴量データ212のデータ構造を示す。特徴量データ212には、計測ID2112ごとに、選択特徴量データ216によって指定された特徴量2122が格納されている。
選択特徴量データ216により選択された特徴量の算出が終了すると、ユーザ入出力処理部201は、アンサンブル分析処理部205に分析要求を出す(S610)。アンサンブル分析処理部205は、アンサンブルモデルデータ218及び特徴量データ212の入力を受け(S611,S612)、アンサンブルモデルを用いた分析を行い、予測結果データ214(例えば、図3の例であれば、健常者歩行度、またはそれに基づく歩行が健常であるか否かの判定結果)をストレージ105に格納する(S613)とともに、ディスプレイなどに表示することによって被計測者620に結果を提示する(S614)。図9に、予測結果データ214のデータ構造を示す。予測結果データ214には、計測ID2112ごとの予測結果2143が蓄積される。
なお、図6はPC600が所定の性能要件及び制約要件下で歩行態様を分析する処理フローを示すものであり、例えば営業時間外のように制約を受けない時間帯をあらかじめ設定しておき、当該時間帯に選択特徴量データ216に指定されていない特徴量についても算出し、異なるモデル(弱識別機)を用いるアンサンブルモデルによる分析を行うようにしてもよい。あるいは、他のデータ分析装置100に計測データ211を転送し、制約のない状態で歩行態様の分析を行ってもよい。さらに、被計測者620の歩行態様を計測者610が診断可能な場合においては、計測者610が診断した被計測者620の歩行態様についての診断結果を教師データとして計測データ211あるいは計測データ211から算出した全特徴量データにタグ付けしておく。これにより、被計測者の計測データを学習データとしてモデルの再学習に用いることができる。
図6の処理フローの実行に先立って、分析設定データ213の定義を満たすよう、アンサンブルモデルの構築、算出する特徴量の選択が行われる。以下、その手順について説明する。
図10は、アンサンブルモデルを構成するモデル(弱識別機)の評価フローである。図3に示すアンサンブルモデル300の場合であれば、健常歩行モデル群301、第1の異常歩行モデル群302、第2の異常歩行モデル群303に含まれるモデル1~6のそれぞれに対して、図10に示す評価フローを実行する。この評価フローは、各モデルに対する学習を実施するごとに行う。例えば、データ分析装置100がモデルの学習を行う度に、図10の評価フローを実行して評価結果をモデルとともに格納することが望ましい。
分析者1000は、ユーザ入出力処理部201に対しモデル評価開始操作を行う(S1001)。ユーザ入出力処理部201はまず、特徴量算出処理部203に特徴量算出要求を出す(S1002)。特徴量算出処理部203は、ストレージ105に格納されている計測データ211の入力を受け(S1003)、全特徴量データ220を算出する(S1004)。計測データ211としては任意の計測データを用いればよく、例えばモデルの学習に用いた計測データを用いればよい。全特徴量データ220は、評価対象となるアンサンブルモデルの選択肢となるモデル(弱識別機)が使用する特徴量の全てを含む。全特徴量データ220が算出されると、ユーザ入出力処理部201はモデル評価部204にモデルの評価要求を出す(S1005)。モデル評価部204は、全特徴量データ220の入力を受け(S1006)、各モデルの評価を実行し、評価結果を含むモデルデータ215をストレージ105に格納する(S1007)。図11に、モデルデータ215のデータ構造を示す。
モデルID2151は、アンサンブルモデルを構成するモデル(弱識別機)を特定するIDである。アルゴリズム2152にはそれぞれのモデルで使用されているアルゴリズム、目的変数2153にはモデルの目的変数(例えば、図3の例であれば、健常歩行、異常歩行1、異常歩行2)、モデルデータ2154にはモデルのバイナリデータが格納されている。モデル評価部204が評価した結果は、処理速度2155、性能指標2156に格納される。処理速度2155は各モデルに特徴量が入力されてから、識別結果を出力するまでの時間を示す。また、性能指標2156には、アンサンブルモデルの性能要件を定義するために用いられている性能指標(分析設定データ213にあらわれる性能指標)ごとの評価結果が格納されている。
図12は、アンサンブルモデルに使用するモデル(弱識別機)の選択及び算出する特徴量の選択フローである。図12のフローは、実際の分析を行う情報処理装置、すなわち本実施例では図6の処理フローを実行するPC600で行うことが望ましい。情報処理装置の演算性能、状態によって特徴量の算出、モデルによる識別に要する時間は異なる。このため、実際の分析を行う情報処理装置でアンサンブルモデルの構築及び算出する特徴量の選択を行うことで、アンサンブルモデルの性能、制約の事前評価結果の信頼性を高めることができる。
分析者1000は、ユーザ入出力処理部201に対しアンサンブルモデル作成操作を行う(S1201)。ユーザ入出力処理部201はアンサンブルモデル作成処理部207にアンサンブルモデル作成要求を出す(S1202)。アンサンブルモデル作成処理部207は、ストレージ105に格納されている分析設定データ213、計測データ211、モデルデータ215、ドメイン知識データ217の入力を受け(S1203~S1206)、所定の性能要件及び制約要件を満たすアンサンブルモデルを構成するモデルを特定するアンサンブルモデルデータ218と、当該アンサンブルモデルのために算出が必要な特徴量を指定する選択特徴量データ216とを作成し、ストレージ105に格納する(S1207~S1208)。
図13に、アンサンブルモデル作成処理部207が実行するアンサンブルモデル決定フローを示す。まず、PC600が使用される分析対象(被計測者層)についての選択を受ける(S1301)。入力された分析対象(被計測者層)と分析設定データ213とを照合することにより、アンサンブルモデルに求められる性能要件と制約要件とを得ることができる。
続いて、アンサンブルモデルに用いるモデル(弱識別機)候補を選択する(S1302)。ここでは、モデルデータ215に格納されている処理速度2155及び性能指標2156に基づき、アンサンブルモデルに用いる候補となるモデルを選択する。選択にあたっては、性能要件として指定された性能指標が最も高くなるように選択する。このとき、複数の候補を選択してもよい。
続いて、選択したモデル(弱識別機)候補を適用したアンサンブルモデルについて、実機による性能と分析時間とを評価する(S1303)。性能評価には、性能要件として指定された性能指標を算出する。評価する分析時間には、計測データから特徴量データを算出するのに要する時間と特徴量データからアンサンブルモデルによって分析を行うのに要する時間とを含む。ここでの特徴量データの算出時間は、候補とするモデルにより構成されるアンサンブルモデルによる分析に必要な特徴量を算出するのに必要な時間である。モデルデータ215に格納されている処理速度2155は、PC600によって評価された処理速度とは限らないため、実際の計測データ211からPC600に分析を行わせることにより、より正確なアンサンブルモデルによって分析するのに要する時間を推定することができる。分析時間評価に用いる計測データは、モデルの学習に用いた計測データであってもよいし、PC600が過去に計測を行った計測データであってもよく、任意の計測データを用いることができる。
実機による分析時間評価(S1303)が分析対象の時間制約2135(図4を参照)を満たしていれば(S1304でyes)、選択したモデル(弱識別機)を使用したアンサンブルモデルの性能情報をディスプレイ等に表示する(S1307)。複数の候補があれば、それぞれについて性能情報とともに表示する。分析者1000は、性能情報を確認し、提示されたモデルの候補から、アンサンブルモデルに使用するモデル(弱識別機)を決定する(S1308)。
実機による分析時間評価(S1303)が分析対象の時間制約2135を満たしていない場合(S1304でno)、性能要件として指定された性能指標とS1303で評価した分析時間と制約要件である時間制約との乖離に基づき、性能要件として指定された性能指標がなるべく高くなるようにモデル候補を選択する(S1305)。
このとき、さらに特徴量の重要度とS1303で評価した分析時間と制約要件である時間制約との乖離に基づき、算出する特徴量を制限するように選択してもよい(S1306)。特徴量の重要度としては、分析アルゴリズム上の重要度と、分析結果の被計測者への説明における重要度の双方を考慮する。前者はモデルデータ2154のバイナリデータから判断することができ、後者はドメイン知識データ217から判断することができる。アンサンブルモデルを構成する少なくとも1つのモデルに対して、分析結果またはその説明への影響の小さな特徴量の算出を省く(この状態を「入力制限状態」と称する)ことにより、性能の低下を極力防止しながら、特徴量の算出に要する時間を削減することが期待できる。S1305,S1306においても複数の候補を選択することが可能である。
選択したモデル候補及び特徴量候補に基づき、再度実機による性能及び分析時間の評価を行い(S1303)、時間制約を満たすモデル候補及び特徴量候補が得られるまで、アンサンブルモデルを構成するモデル(弱識別機)の組み合わせや、特徴量の選択を変えながら、選択と実機によるアンサンブルモデル評価とを繰り返す。
図14は、アンサンブルモデル作成処理部207が出力するアンサンブルモデルデータ218のデータ構造である。モデルデータ215として登録されているモデル(弱識別機)のそれぞれについて、アンサンブルモデルへの採用/否採用が登録されている。
図15は、アンサンブルモデル作成処理部207が出力する選択特徴量データ216のデータ構造である。データ分析装置100が算出可能な特徴量のそれぞれについて、アンサンブルモデルへの採用/否採用が登録されている。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能なものである。本実施例では被計測者の歩行態様の分析を行う歩行態様分析装置を例に説明したが、広くアンサンブルモデルを用いてデータ分析を行う装置、システム、方法、プログラムに適用可能なものである。