(57)【要約】【課題】欠損を含むデータ群を有効に活用するデータ処理装置を提供する。【解決手段】欠損を含む一連の学習用データを取得し、当該一連の学習用データから、あらかじめ定められた集計単位ごとに、データの代表値と、有効なデータが存在する割合を表す有効率とを算出し、前記代表値および前記有効率を推定モデルに入力して得られる出力と、前記代表値との差に基づく誤差を最小化するように、前記推定モデルを学習する。また、欠損を含む一連の推定用データを取得し、当該一連の推定用データから、あらかじめ定められた集計単位ごとに、データの代表値と、有効なデータが存在する割合を表す有効率とを算出し、前記代表値および前記有効率を学習済みの推定モデルに入力して、一連の推定用データについて特徴量の取得またはデータ推定を行う。【選択図】図１
2020052886.tif 000002
【特許請求の範囲】
【請求項１】
欠損を含む一連のデータを取得する、データ取得部と、
前記一連のデータから、あらかじめ定められた集計単位ごとに、データの代表値と、有効なデータが存在する割合を表す有効率とを算出する、統計量算出部と、
前記代表値および前記有効率を推定モデルに入力して得られる出力と、前記代表値との差に基づく誤差を最小化するように前記推定モデルを学習する、学習部と、
を具備するデータ処理装置。
【請求項２】
前記学習部は、前記推定モデルに対し、あらかじめ定められた個数の代表値と、当該代表値の各々に対応する有効率とを連結した要素からなる入力ベクトルを入力する、請求項１に記載のデータ処理装置。
【請求項３】
前記学習部は、
Ｘを、前記あらかじめ定められた個数の代表値を要素とするベクトル、Ｗを、Ｘの各要素に対応する有効率を要素とするベクトル、Ｙを、前記入力ベクトルを前記推定モデルに入力して得られる出力ベクトルと、それぞれ定義したときに、
次式で表される誤差Ｌを最小化するように前記推定モデルを学習する、
Ｌ＝｜Ｗ・（Ｙ−Ｘ）｜２
請求項２に記載のデータ処理装置。
【請求項４】
前記データ取得部により推定対象となる欠損を含む一連のデータが取得された場合に、当該一連のデータから前記集計単位ごとに前記統計量算出部により算出されるデータの代表値と有効なデータが存在する割合を表す有効率とを学習済みの前記推定モデルに入力し、当該入力に応じた前記推定モデルの中間層からの出力を、前記一連のデータの特徴量として出力する、第１の推定部をさらに具備する、請求項１に記載のデータ処理装置。
【請求項５】
前記データ取得部により推定対象となる欠損を含む一連のデータが取得された場合に、当該一連のデータから前記集計単位ごとに前記統計量算出部により算出されるデータの代表値と有効なデータが存在する割合を表す有効率とを学習済みの前記推定モデルに入力し、当該入力に応じた前記推定モデルからの出力を、前記欠損を補間した推定データとして出力する、第２の推定部をさらに具備する、請求項１に記載のデータ処理装置。
【請求項６】
データ処理装置が実行する、データ処理方法であって、
欠損を含む一連のデータを取得する過程と、
前記一連のデータから、あらかじめ定められた集計単位ごとに、データの代表値と、有効なデータが存在する割合を表す有効率とを算出する過程と、
前記代表値および前記有効率を推定モデルに入力して得られる出力と、前記代表値との差に基づく誤差を最小化するように前記推定モデルを学習する過程と、
を具備するデータ処理方法。
【請求項７】
前記学習する過程は、
Ｘを、あらかじめ定められた個数の代表値を要素とするベクトル、Ｗを、Ｘの各要素に対応する有効率を要素とするベクトル、Ｙを、Ｘの各要素とＷの各要素とを連結した要素からなる入力ベクトルを前記推定モデルに入力して得られる出力ベクトルと、それぞれ定義したときに、
次式で表される誤差Ｌを最小化するように前記推定モデルを学習する、
Ｌ＝｜Ｗ・（Ｙ−Ｘ）｜２
請求項６に記載のデータ処理方法。
【請求項８】
請求項１乃至５のいずれか一項に記載のデータ処理装置の各部による処理をプロセッサに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の一態様は、欠損を含むデータを有効に活用するための、データ処理装置、データ処理方法、およびプログラムに関する。
【背景技術】
【０００２】
ＩｏＴ（Internet of Things）技術の発展に伴い、例えば血圧計や体重計などの家電製品がネットワークに接続され、日常生活で計測した血圧や体重などの健康データがネットワークを通じて収集される環境が整いつつある。健康データは、定期的な計測が推奨されることが多く、また計測値とともに計測日時を表す情報を含むことが多い。ここで、健康データには、計測し忘れや計測機器の不具合などによってデータが欠損しやすいという課題がある。この欠損は、健康データを解析する上で精度の低下等をまねく原因になる。
【０００３】
欠損を考慮したデータ解析として、欠損を表す配列を用いて、欠損の無い部分のみで誤差を最小化することで、欠損の影響を考慮した学習方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１８／０４７６５５号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、欠損を含むデータの解析では、課題の１つとしてデータが削減されてしまうことが考えられる。特に、取得されたデータ全体のサイズが小さい場合や、データ全体のサイズに対して欠損の割合が大きい場合など、欠損を無視して解析すると、有効なデータが少量になってしまうことがある。
【０００６】
例えば、血圧のように１日に複数回計測される健康データでは、１日の計測値のうち一部が欠損する場合がある。図４は、そのようなデータの欠損を含む５日分の血圧計測データの例を示す。図４の例では、１日３回の血圧を計測するように設定されている場合に、６月２２日と２６日には欠損のないデータが得られているが、２３日は２回目と３回目のデータが、２４日は３回目のデータが、２５日はすべてのデータがそれぞれ欠損している。このようなケースで、例えば１回でも欠損した日のデータを無視すると決めると、５日間のデータのうち２日分のデータしか有効なデータとして解析に使用できなくなってしまう。
【０００７】
もう１つの課題が、欠損の度合いが考慮されないことである。例えば、図４の場合、欠損が１回だけの日から３回すべて欠損している日まで、欠損の程度に差がある。しかし、欠損の有無だけで判断すると、これらの日はすべて欠損ありとして判断されてしまう。集計単位が大きくなるほど、欠損の有無だけでなく欠損の度合いを適切に表現することが重要となり得る。
【０００８】
この発明は上記事情に着目してなされたもので、その目的とするところは、欠損を含むデータを有効に活用するための、データ処理装置、データ処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、この発明の第１の態様は、データ処理装置にあって、欠損を含む一連のデータを取得するデータ取得部と、上記一連のデータから、あらかじめ定められた集計単位ごとに、データの代表値と有効なデータが存在する割合を表す有効率とを算出する統計量算出部と、上記代表値および上記有効率を推定モデルに入力して得られる出力と、上記代表値との差に基づく誤差を最小化するように上記推定モデルを学習する学習部と、を具備するようにしたものである。
【００１０】
この発明の第２の態様は、上記第１の態様において上記学習部が、上記推定モデルに対し、あらかじめ定められた個数の代表値と、当該代表値の各々に対応する有効率とを連結した要素からなる入力ベクトルを入力するようにしたものである。
【００１１】
この発明の第３の態様は、上記第２の態様において上記学習部が、
Ｘを、上記あらかじめ定められた個数の代表値を要素とするベクトル、Ｗを、Ｘの各要素に対応する有効率を要素とするベクトル、Ｙを、上記入力ベクトルを上記推定モデルに入力して得られる出力ベクトルと、それぞれ定義したときに、次式：
Ｌ＝｜Ｗ・（Ｙ−Ｘ）｜２
で表される誤差Ｌを最小化するように上記推定モデルを学習するようにしたものである。
【００１２】
この発明の第４の態様は、上記第１の態様において、上記データ取得部により推定対象となる欠損を含む一連のデータが取得された場合に、当該一連のデータから上記集計単位ごとに上記統計量算出部により算出される、データの代表値と有効なデータが存在する割合を表す有効率とを学習済みの上記推定モデルに入力し、当該入力に応じた上記推定モデルの中間層からの出力を、上記一連のデータの特徴量として出力する、第１の推定部をさらに具備するようにしたものである。
【００１３】
この発明の第５の態様は、上記第１の態様において、上記データ取得部により推定対象となる欠損を含む一連のデータが取得された場合に、当該一連のデータから上記集計単位ごとに上記統計量算出部により算出される、データの代表値と有効なデータが存在する割合を表す有効率とを学習済みの上記推定モデルに入力し、当該入力に応じた上記推定モデルからの出力を、上記欠損を補間した推定データとして出力する、第２の推定部をさらに具備するようにしたものである。
【発明の効果】
【００１４】
この発明の第１の態様によれば、欠損を含む一連のデータから、あらかじめ定められた集計単位ごとに、データの代表値と、有効なデータが存在する割合を表す有効率とが算出され、代表値と有効率とに基づく入力値を推定モデルに入力して得られる出力値と、前記代表値との差に基づく誤差を最小化するように、推定モデルが学習される。
【００１５】
これにより、取得された一連のデータが欠損を含む場合でも、あらかじめ定められた集計単位ごとに統計量としての代表値および有効率を算出して学習に用いることにより、データを破棄することなく、集計単位ごとの情報としてすべてのデータを有効に活用することができる。また、単に欠損があるかないかだけでなく、集計単位ごとに有効なデータが存在する割合が算出されて学習に用いられるので、欠損の度合いまで考慮に入れた効果的な学習を行うことができる。
【００１６】
この発明の第２の態様によれば、あらかじめ定められた個数の代表値と、各代表値に対応する有効率とを連結した要素からなる入力ベクトルが、推定モデルに対して入力され、当該推定モデルの学習に用いられる。これにより、学習用のデータ群が規則性のない欠損を含む場合でも、複雑なデータ処理を要することなく、各集計単位の代表値と有効率とを確実に対応付けて学習を行うことができる。
【００１７】
この発明の第３の態様によれば、あらかじめ定められた個数の代表値を要素とするベクトルＸと、Ｘの各要素に対応する有効率を要素とするベクトルＷと、上記入力ベクトルを推定モデルに入力して得られるベクトルＹとから算出される誤差Ｌ＝｜Ｗ・（Ｙ−Ｘ）｜２を最小化するように、推定モデルの学習が行われる。これにより、入力側のベクトルＸおよび出力側のベクトルＹの両方に有効率が適用され、欠損の度合いを明確に考慮した誤差を用いて、推定モデルの学習を行うことができる。
【００１８】
この発明の第４の態様によれば、推定対象となる欠損を含む一連のデータが取得された場合に、当該一連のデータから算出される集計単位ごとのデータの代表値と有効なデータが存在する割合を表す有効率とが学習済みの推定モデルに入力され、当該入力に応じた推定モデルの中間層からの出力が上記一連のデータの特徴量として出力される。これにより、欠損を含む一連のデータについて、欠損の度合いまでも考慮に入れた特徴量を得ることができ、当該一連のデータの特徴をより的確に把握することができる。
【００１９】
この発明の第５の態様によれば、推定対象となる欠損を含む一連のデータが取得された場合に、当該一連のデータから算出される集計単位ごとのデータの代表値と有効なデータが存在する割合を表す有効率とが学習済みの推定モデルに入力され、当該入力に応じた推定モデルからの出力が、欠損を補間した推定データとして出力される。これにより、欠損を含む一連のデータについて、欠損の度合いまでも考慮に入れた推定結果を得ることができる。
【００２０】
すなわちこの発明の各態様によれば、欠損を含むデータを有効に活用する技術を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、この発明の一実施形態に係るデータ処理装置の機能構成を示すブロック図である。
【図２】図２は、図１に示したデータ処理装置による学習フェーズの処理手順とその処理内容の一例を示すフローチャートである。
【図３】図３は、図１に示したデータ処理装置による推定フェーズの処理手順とその処理内容の一例を示すフローチャートである。
【図４】図４は、欠損を含むデータの一例を示す図である。
【図５】図５は、欠損を含むデータから日ごとの集計単位で統計量を算出した結果の一例を示す図である。
【図６】図６は、推定モデルとそれに対する入力および出力の一例を示す図である。
【図７】図７は、欠損を含むデータから３日ごとの集計単位で統計量を算出した結果の一例を示す図である。
【図８】図８は、入力ベクトル生成の第１の例を示す図である。
【図９】図９は、入力ベクトル生成の第２の例を示す図である。
【図１０】図１０は、複数種類のデータに基づく入力ベクトル生成の第１の例を示す図である。
【図１１】図１１は、複数種類のデータに基づく入力ベクトル生成の第２の例を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照してこの発明に係わる実施形態を説明する。  
［一実施形態］
（構成）
図１は、この発明の一実施形態に係るデータ処理装置１の機能構成を示すブロック図である。
【００２３】
データ処理装置１は、例えば、医療機関や保健管理センター等によって管理されるもので、例えばサーバコンピュータまたはパーソナルコンピュータにより構成される。データ処理装置１は、ネットワークＮＷを介して、または図示しない入力デバイスを介して、健康データなど、欠損を含む一連のデータ（「データ群」とも言う）を取得することができる。データ処理装置１は、単独で設置されてもよいが、医師等の医療従事者の端末や、医療機関ごとに設置されている電子医療記録（Electronic Medical Records：ＥＭＲ）サーバ、複数の医療機関を含む地域ごとに設置される電子健康記録（Electronic Health Records：ＥＨＲ）サーバ、さらにはサービス事業者のクラウドサーバ等に、その拡張機能の１つとして設けられるものであってもよい。さらには、データ処理装置１は、ユーザが所持するユーザ端末等にその拡張機能の１つとして設けられてもよい。
【００２４】
一実施形態に係るデータ処理装置１は、入出力インタフェースユニット１０と、制御ユニット２０と、記憶ユニット３０とを備える。
【００２５】
入出力インタフェースユニット１０は、例えば１つ以上の有線または無線の通信インタフェースユニットを含んでおり、外部機器との間で情報の送受信を可能にする。有線インタフェースとしては、例えば有線ＬＡＮが使用され、また無線インタフェースとしては、例えば無線ＬＡＮやBluetooth（登録商標）などの小電力無線データ通信規格を採用したインタフェースが使用される。
【００２６】
例えば、入出力インタフェースユニット１０は、制御ユニット２０の制御の下、通信機能を備えた血圧計などの計測機器から送信されたデータを受信し、またはデータベースサーバにアクセスして蓄積されたデータを読み出し、そのデータを解析対象として制御ユニット２０に渡す処理を行う。入出力インタフェースユニット１０はまた、キーボードなどの入力デバイス（図示せず）によって入力された指示情報を制御ユニット２０に出力する処理を行うことができる。さらに、入出力インタフェースユニット１０は、制御ユニット２０から出力された学習結果や推定結果を、液晶ディスプレイなどの表示デバイス（図示せず）に出力したり、ネットワークＮＷを介して外部機器に送信する処理を行うことができる。
【００２７】
記憶ユニット３０は、記憶媒体として、例えばＨＤＤ（Hard Disk Drive）またはＳＳＤ（Solid State Drive）等の随時書込および読み出しが可能な不揮発性メモリを用いたものであり、この実施形態を実現するために必要な記憶領域として、プログラム記憶部の他に、データ記憶部３１と、統計量記憶部３２と、モデル記憶部３３とを備えている。
【００２８】
データ記憶部３１は、入出力インタフェースユニット１０を介して取得された、解析対象のデータ群を記憶するために用いられる。
【００２９】
統計量記憶部３２は、データ群から算出された統計量を記憶するために用いられる。
【００３０】
モデル記憶部３３は、欠損を含むデータ群から欠損を補間したデータ群を推定するための推定モデルを記憶するために用いられる。
【００３１】
ただし、上記記憶部３１〜３３は、必須の構成ではなく、データ処理装置１が計測機器やユーザ機器から必要なデータを随時取得するようにしてもよい。あるいは、上記記憶部３１〜３３は、データ処理装置１に内蔵されたものでなくてもよく、例えば、ＵＳＢメモリなどの外付け記憶媒体や、クラウドに配置されたデータベースサーバ等の記憶装置に設けられたものであってもよい。
【００３２】
制御ユニット２０は、図示しないＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）等のハードウェアプロセッサと、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等のメモリとを有し、この実施形態を実施するために必要な処理機能として、データ取得部２１と、統計量算出部２２と、ベクトル生成部２３と、学習部２４と、推定部２５と、出力制御部２６とを備えている。これらの処理機能は、いずれも上記記憶ユニット３０に格納されたプログラムを上記プロセッサに実行させることにより実現される。制御ユニット２０は、また、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（field-programmable gate array）などの集積回路を含む、他の多様な形式で実現されてもよい。
【００３３】
データ取得部２１は、入出力インタフェースユニット１０を介して、解析対象とするデータ群を取得し、データ記憶部３１に格納する処理を行う。
【００３４】
統計量算出部２２は、データ記憶部３１に格納されたデータを読み出し、あらかじめ定められた集計単位ごとに統計量を算出し、算出した結果を統計量記憶部３２に格納する処理を行う。一実施形態では、統計量は、各集計単位に含まれるデータの代表値と、各集計単位に含まれる有効なデータの割合を表す有効率とを含む。
【００３５】
ベクトル生成部２３は、統計量記憶部３２に格納された統計量を読み出し、あらかじめ定められた個数の要素からなるベクトルを生成する処理を行う。一実施形態では、ベクトル生成部２３は、あらかじめ定められた個数の代表値を要素とするベクトルＸと、ベクトルＸの各要素に対応する有効率を要素とするベクトルＷとを生成する。ベクトル生成部２３は、生成されたベクトルＸおよびベクトルＷを、学習フェーズにおいては学習部２４に出力し、推定フェーズにおいては推定部２５に出力する。
【００３６】
学習部２４は、学習フェーズにおいて、モデル記憶部３３に格納された推定モデルを読み出し、ベクトル生成部２３から受け取ったベクトルＸおよびベクトルＷを当該推定モデルに入力して、推定モデルの各パラメータを学習する処理を行う。一実施形態では、学習部２４は、ベクトルＸの要素とベクトルＷの要素を連結したベクトルを推定モデルに入力し、その入力に応じて当該推定モデルから出力されるベクトルＹを取得する。そして、学習部２４は、ベクトルＸとベクトルＹとの差に基づいて算出される誤差を最小化するように推定モデルの各パラメータを学習し、モデル記憶部３３に格納された推定モデルを随時更新する処理を行う。
【００３７】
推定部２５は、推定フェーズにおいて、モデル記憶部３３に格納された学習済みの推定モデルを読み出し、ベクトル生成部２３から受け取ったベクトルＸおよびベクトルＷを当該推定モデルに入力して、データの推定処理を行う。一実施形態では、推定部２５は、ベクトルＸの要素とベクトルＷの要素を連結したベクトルを学習済みの推定モデルに入力し、その入力に応じて当該推定モデルから出力されるベクトルＹまたは中間層の特徴量Ｚを、推定結果として出力制御部２６に出力する。
【００３８】
出力制御部２６は、推定部２５から出力されたベクトルＹまたは特徴量Ｚを出力する処理を行う。あるいは、出力制御部２６は、モデル記憶部３３に格納された学習済みの推定モデルに関するパラメータを出力することも可能である。
【００３９】
（動作）
次に、以上のように構成されたデータ処理装置１による情報処理動作を説明する。データ処理装置１は、例えば、入力デバイス等を通じて入力されたオペレータからの指示信号を受け付けて、学習フェーズまたは推定フェーズとして動作することができる。
【００４０】
（１）学習フェーズ
学習フェーズが設定されると、データ処理装置１は、以下のように推定モデルの学習処理を実行する。図２は、データ処理装置１による学習フェーズの処理手順と処理内容を示すフローチャートである。
【００４１】
（１−１）学習用データの取得
はじめに、データ処理装置１は、ステップＳ２０１において、データ取得部２１の制御の下、入出力インタフェースユニット１０を介して、欠損を含む一連のデータを学習用データとして取得し、取得したデータをデータ記憶部３１に格納する。
【００４２】
図４は、取得され格納されるデータの一例として、１日３回の計測頻度を設定された、特定のユーザの５日分の血圧計測結果を示す。１日３回とは、例えば、起床直後、昼食前、就寝前など、異なる時間帯に計測されるものであってもよいし、同じ時間帯に３回計測が繰り返されるものであってもよい。また、血圧計測値は、収縮期血圧、拡張期血圧、脈圧など、いずれの計測値であってもよい。なお、図４に示した数値は説明のために例示するものにすぎず、特定の健康状態を表すことを意図したものではない。また、取得されるデータは、血圧計測値を表す数値データとともに、ユーザＩＤ、装置ＩＤ、計測日時を表す情報等を含むこともできる。
【００４３】
なお、図４では、便宜上、１日分のレコードごとに連続番号を付し、欠損に関する説明を付記している。図４において、記号「−」は、有効なデータが存在しない、またはデータが欠損していることを意味する。図４に示すように、６月２２日（＃１）および２６日（＃５）には３回分のデータが計測されており欠損はないが、２３日（＃２）には１回のデータしか計測されておらず、２４日（＃３）には２回のデータしか計測されておらず、２５日（＃４）にはまったく計測されていない。
【００４４】
（１−２）統計量の算出
次いで、データ処理装置１は、ステップＳ２０２において、統計量算出部２２の制御の下、データ記憶部３１に格納されたデータを読み出し、あらかじめ設定された集計単位ごとに統計量を算出する処理を行う。集計単位は、データ処理装置１のオペレータ、設計者または管理者等によって、例えばデータの種類ごとに任意に設定され、記憶ユニット３０に記憶されているものとする。統計量算出部２２は、記憶ユニット３０に記憶された集計単位の設定を読み出し、データ記憶部３１から読み出したデータを集計単位ごとに分割して、統計量を算出する。
【００４５】
図５は、図４に示したデータを用いて算出された、統計量としての代表値および有効率を示す。ここでは、日ごとの集計単位が設定され、代表値として平均値が設定されている。ただし、代表値はこれだけに限られるものではなく、中央値、最大値、最小値、最頻値、分散や標準偏差など、任意の統計量を用いることができる。集計単位と同様に、どのような種類の統計量を算出すべきかについても、あらかじめ管理者等によって設定しておくことが可能である。
【００４６】
図５に示した例では、代表値として、集計単位内の有効なデータの平均値が算出される。例えば、６月２２日（＃１）には３回分の血圧計測データ（１１０，１１１，１１１）が得られたので、代表値（平均値）として「１１０．６６６７」（＝（１１０＋１１１＋１１１）／３）が算出されている。一方、６月２３日（＃２）には１回分の血圧計測データ（１２２）しか得られなかったので、有効なデータ間の平均値として代表値「１２２」（＝１２２／１）が算出されている。また、６月２５日（＃４）には計測データが全く取得されなかったので、算出不可を意味する「ＮＡ」が示されている。
【００４７】
有効率は、集計単位内に有効なデータが存在する割合を示す。図５に示したように、集計単位が１日で、１日３回の計測頻度が設定されている場合、３回分の計測データが得られれば「１（＝３／３）」、２回ならば「０．６６６（＝２／３）」、１回ならば「０．３３３（＝１／３）」、０回ならば「０（＝０／３）」として算出される。
【００４８】
以上のようにして統計量算出部２２によって算出された結果は、例えば集計単位を識別する識別番号や日付情報に紐づけて、統計量データとして統計量記憶部３２に記憶させることができる。
【００４９】
なお、集計単位は、１日単位に限定されるものではなく、任意の単位を採用することができる。例えば、数時間単位、３日単位、１週間単位など、任意の時間幅に設定されてもよいし、時間情報を用いず、欠損を含めたデータの個数によって定義される単位であってもよい。さらに、集計単位は、互いに重複するものであってもよい。例えば、特定の日付に関連付けて、その日付の前日と当日の２日分のデータから移動平均を算出するように設定されてもよい。
【００５０】
（１−３）ベクトルの生成
次に、データ処理装置１は、ステップＳ２０３において、ベクトル生成部２３の制御の下、統計量記憶部３２に格納された統計量データを読み出し、推定モデルの学習に用いるための２種のベクトル（ベクトルＸおよびベクトルＷ）を生成する処理を行う。
【００５１】
ベクトル生成部２３は、読み出した統計量データから、あらかじめ設定された数（ｎ）の集計単位を選択し、それらｎ個の集計単位の各々から代表値および有効率を抽出して、ｎ個の代表値を要素とするベクトルＸ（x1, x2,..., xn）と、ベクトルＸの各要素に対応するｎ個の有効率を要素とするベクトルＷ（w1, w2,..., wn）とを生成する。要素の数ｎは、後述するように、学習対象である推定モデルの入力次元数の１／２に対応し、推定モデルの入力次元数は、データ処理装置１の設計者や管理者等が任意に設定することができる。生成されるベクトル対（ベクトルＸとベクトルＷ）の数Ｎは、学習データのサンプル数に対応し、その数Ｎもまた任意に設定することができる。
【００５２】
例えば、要素の数ｎ＝３、ベクトル対の数Ｎ＝２と設定された場合、図５に示した例では、ベクトル生成部２３は、１つ目のベクトル対として、例えば＃１〜＃３の集計単位を選択し、代表値を抽出してベクトルＸ1（110.6667, 122, 121.5）を生成し、有効率を抽出してベクトルＷ1（1, 0.333, 0.666）を生成することができる。さらにベクトル生成部２３は、２つ目のベクトル対として、例えば＃２〜＃４の集計単位を選択し、ベクトルＸ2（122, 121.5, 0）およびベクトルＷ2（0.333, 0.666, 0）を生成することができる。このように、ベクトル生成の際には、代表値「ＮＡ」は０で置き換えることができる。またこのように、ベクトル生成の際に選択される集計単位は互いに重複していても重複していなくてもよい。生成すべきベクトル対の数Ｎを設定せず、読み出された統計量データから選択可能なすべての組合せに対応する個数のベクトル対を生成するように設定してもよい。
【００５３】
ベクトル生成部２３は、以上のように生成したベクトル対（ベクトルＸとベクトルＷ）を学習部２４に出力する。
【００５４】
（１−４）推定モデルの学習
次に、データ処理装置１は、ステップＳ２０４において、学習部２４の制御の下、あらかじめモデル記憶部３３に格納された学習対象の推定モデルを読み出し、ベクトル生成部２３から受け取ったベクトルＸおよびベクトルＷを当該推定モデルに入力してその学習を行う。学習対象とする推定モデルは、設計者や管理者等によって任意に設定されることができる。
【００５５】
一実施形態では、推定モデルとして階層型ニューラルネットワークが使用される。図６は、そのようなニューラルネットワークの一例と、それに対する入力および出力ベクトルのイメージを示す。図６に示した推定モデルは、入力層と、３層の中間層と、出力層とから構成され、ユニット数はそれぞれ順に１０、３、２、３、５と設定されている。ただし、これらのユニット数の詳細は、説明のために便宜的に設定したものにすぎず、解析対象とするデータの性質や解析の目的、作業環境等に応じて任意に設定することができる。また、中間層については３層に限定されるものではなく、３層以外の層数を任意に選択して中間層を構成することができる。
【００５６】
ニューラルネットワークでは、一般に、入力層の各ノードに入力ベクトルの各要素が入力され、それぞれ重みづけされて足し合わされ、バイアスを付加されて次の層のノードに入り、当該ノードで活性化関数を適用後に出力される。したがって、重み係数をＡ、バイアスをＢ、活性化関数をｆとすると、入力層にＰが入力されたときの中間層（第１層）の出力Ｑは、一般に、次式で表される。
Ｑ＝ｆ（ＡＰ＋Ｂ）                            （１）
【００５７】
この実施形態では、入力層には、ベクトルＸの要素とベクトルＷの要素とを連結したベクトルが入力される。図６に示した例では、図５のデータから要素数ｎ＝５としてベクトルＸ（110.6667, 122, 121.5, 0, 115.3333）、およびベクトルＷ（1, 0.333, 0.666, 0, 1）が生成され、これらの要素を連結した入力ベクトル（110.6667, 122, 121.5, 0, 115.3333, 1, 0.333, 0.666, 0, 1）が推定モデルに入力される。
【００５８】
図６において、Ｙは、推定モデルからの出力ベクトルを表し、ベクトルＸと同じ要素数を有する。したがって、この実施形態では、ベクトルＸとベクトルＷの要素数が同一であることから、推定モデルの出力次元数は、入力次元数の１／２となっている。図６の例ではまた、入力層および出力層に比べて中間層のユニット数が小さくなるように設計されている。
【００５９】
図６において、Ｚは、中間層の特徴量を表す。特徴量Ｚは、中間層のノードからの出力として得られ、上式（１）に基づいて表すことができる。例えば、図６の例で、中間層（第１層）の特徴量Ｚ1は、
Ｚ1＝ｆ1（Ａ1Ｐ＋Ｂ1）                            （２）
で表され、中間層（第２層）の特徴量Ｚ2は、
Ｚ2＝ｆ2（Ａ2（ｆ1（Ａ1Ｐ＋Ｂ1））＋Ｂ2）          （３）
で表される。なお、添え字１または２は、それぞれ第１層または第２層の出力に寄与するパラメータであることを意味する。
【００６０】
特徴量は、一般に、入力されたデータにどのような特徴があるかを表す。図６に示したように、入力層よりも中間層のユニット数の方が少ない学習済みモデルから得られる特徴量Ｚは、入力されたデータの本質的な特徴をより少ない次元で表した、有益な情報となり得ることが知られている。
【００６１】
学習部２４は、このような推定モデルに対して、上記のようにベクトルＸの要素とベクトルＷの要素を連結した入力ベクトルを入力し、その入力に対して推定モデルから出力される出力ベクトルＹを取得する。そして、学習部２４は、生成されたすべてのベクトル対（ベクトルＸとベクトルＷ）について、次式（４）を用いて算出される誤差Ｌを最小化するように、推定モデルのパラメータ（重み係数やバイアスなど）を学習する。
Ｌ＝｜Ｗ・（Ｙ−Ｘ）｜２                          （４）
【００６２】
式（４）において、入力側のベクトルＸおよび出力側のベクトルＹの両方に有効率のベクトルＷが適用されており、推定モデルを学習する際にデータ中の欠損の度合いが考慮されていることがわかる。
【００６３】
このように、学習部２４では、出力層からの出力ができるだけ入力を再現したものとなるように、推定モデルが自己符号化器（オートエンコーダ）として学習される。ここで、学習部２４は、例えばＡｄａｍやＡｄａＤｅｌｔａなどの確率的勾配降下法を用いて、上記誤差Ｌを最小化するように推定モデルを学習することができるが、これに限るものではなく、他の任意の手法を用いることができる。
【００６４】
（１−５）モデルの更新
誤差Ｌを最小化するように推定モデルのパラメータが決定されたら、学習部２４は、ステップＳ２０５において、モデル記憶部３３に格納された推定モデルを更新する処理を行う。データ処理装置１は、例えばオペレータからの指示信号の入力に応答して、モデル記憶部３３に格納された学習済みモデルの各パラメータを、制御ユニット２０の制御の下、出力制御部２６を通じて出力するように構成してもよい。
【００６５】
上記学習フェーズが終了すると、データ処理装置１は、モデル記憶部３３に格納された学習済みモデルを用いて、新たに取得された欠損を含むデータ群をもとに、データの推定を行うことが可能となる。
【００６６】
（２）推定フェーズ
推定フェーズが設定されると、データ処理装置１は、学習済みモデルを用いて以下のようにデータの推定処理を実行することができる。図３は、データ処理装置１による推定フェーズの処理手順と処理内容を示すフローチャートである。なお、図２と同様の処理については詳細な説明は省略する。
【００６７】
（２−１）推定用データの取得
はじめに、データ処理装置１は、ステップＳ３０１において、ステップＳ２０１と同様に、データ取得部２１の制御の下、入出力インタフェースユニット１０を介して、欠損を含む一連のデータを推定用データとして取得し、取得したデータをデータ記憶部３１に格納する。
【００６８】
（２−２）統計量の算出
次いで、データ処理装置１は、ステップＳ３０２において、ステップＳ２０２と同様に、統計量算出部２２の制御の下、データ記憶部３１に格納されたデータを読み出し、設定された集計単位ごとに統計量を算出する処理を行う。集計単位は、学習フェーズで用いたのと同じ設定を用いることが好ましいが、必ずしもそれに限定されるわけではない。同様に、代表値は、学習フェーズで用いたのと同じ代表値（例えば上記の例では有効なデータ間の平均値）を用いることが好ましいが、必ずしもそれに限定されるわけではない。集計単位ごとに統計量として代表値および有効率が算出されたら、統計量算出部２２は、その算出結果を、例えば集計単位を識別する識別番号や日付情報に紐づけて、統計量データとして統計量記憶部３２に記憶させることができる。
【００６９】
（２−３）ベクトルの生成
次に、データ処理装置１は、ステップＳ３０３において、ステップＳ２０３と同様に、ベクトル生成部２３の制御の下、統計量記憶部３２に格納された統計量データを読み出し、推定を行うための２種のベクトル（ベクトルＸおよびベクトルＷ）を生成する処理を行う。
【００７０】
ベクトル生成部２３は、読み出した統計量データから、設定された数（ｎ）の集計単位を選択し、それらｎ個の集計単位の各々から代表値および有効率を抽出して、ｎ個の代表値を要素とするベクトルＸ（x1, x2,..., xn）と、ベクトルＸの各要素に対応するｎ個の有効率を要素とするベクトルＷ（w1, w2,..., wn）とを生成する。要素の数ｎは、例えば、学習に用いたｎの値を記憶しておくか、またはモデル記憶部３３に格納された学習済みモデルの入力次元数に１／２を乗じた値として取得することができる。
【００７１】
ベクトル生成部２３は、生成したベクトル対（ベクトルＸとベクトルＷ）を推定部２５に出力する。
【００７２】
（２−４）データの推定
次に、データ処理装置１は、ステップＳ３０４において、推定部２５の制御の下、モデル記憶部３３に格納された学習済みの推定モデルを読み出し、ベクトル生成部２３から受け取ったベクトルＸおよびベクトルＷを当該学習済みの推定モデルに入力して、その入力に対して推定モデルから出力される出力ベクトルＹを取得する処理を行う。学習フェーズで説明したのと同様に、図６に示した出力ベクトルＹは、次式で表される。
Ｙ＝ｆ4（Ａ4（ｆ3（Ａ3（ｆ2（Ａ2（ｆ1（Ａ1Ｐ＋Ｂ1））＋Ｂ2））＋Ｂ3））＋Ｂ4）  （５）
【００７３】
図６に示した例では、推定モデルから出力ベクトルＹ（110.0, 122.2, 122.4, 0.1, 114.9）が出力される。入力されたベクトルＸの各要素が、ベクトルＹでは有効率を考慮した数値に置き換わっており、特に、ベクトルＸ中のｘ4＝０（欠損）がベクトルＹではｙ4＝０．１に置き換わっている。
【００７４】
（２−５）推定結果の出力
データ処理装置１は、ステップＳ３０５において、例えばオペレータからの指示信号の入力に応答して、出力制御部２６の制御の下、推定部２５による推定結果を、入出力インタフェースユニット１０を介して出力することができる。出力制御部２６は、例えば、推定モデルから出力された出力ベクトルＹを取得し、これを、入力データ群に対応する欠損を補間されたデータ群として、液晶ディスプレイなどの表示デバイスに出力したり、ネットワークＮＷを介して外部機器に送信することができる。
【００７５】
あるいは、出力制御部２６は、入力データ群に対応する中間層の特徴量Ｚを抽出し、これを出力することもできる。特徴量Ｚは、上述のように、入力データ群について、元の入力データ群よりも少ない次元で本質的な特徴を表したものと考えることができる。したがって、特徴量Ｚを任意の別の学習器の入力として用いることにより、元の入力データ群をそのまま用いる場合に比べて負荷を軽減した処理を行うことができる。そのような任意の別の学習器として、例えば、ロジスティック回帰やサポートベクターマシン、ランダムフォレストのような分類器や、重回帰分析や回帰木などを用いた回帰モデルへの活用が想定される。
【００７６】
（効果）
以上詳述したように、この発明の一実施形態では、データ取得部２１によって、欠損を含む一連のデータが取得され、統計量算出部２２によって、この一連のデータから所定の集計単位ごとに統計量としてデータの代表値と有効なデータが存在する割合を表す有効率とが算出される。この有効率の算出の際、上記実施形態では、欠損をあり／なしの２値で表現するのではなく、割合としての連続値で表現するようにしている。
【００７７】
そして、学習フェーズにおいては、ベクトル生成部２３によって、所定の個数ｎの集計単位から抽出される代表値を要素とするベクトルＸと、それに対応する有効率を要素とするベクトルＷとが生成される。次いで、学習部２４によって、ベクトルＸの要素とベクトルＷの要素を連結した入力ベクトルが推定モデルに対して入力され、その入力に対して推定モデルから出力されるベクトルＹに基づく誤差Ｌを最小化するように、オートエンコーダとして推定モデルの学習が行われる。
【００７８】
これにより、推定モデルの学習に際して、集計単位内の一部のデータまたはすべてのデータが欠損している場合でも、その集計単位を破棄することなく有効に活用して学習に用いることができ、データの削減を抑えることができる。これは、欠損の割合がデータ全体のサイズに対して大きい場合や、データ全体のサイズが小さい場合に特に有利である。
【００７９】
さらに、上記実施形態によれば、集計単位ごとの代表値に対し、集計単位ごとの欠損の度合いを考慮して学習を行うことができる。式（４）に示したように、誤差Ｌに含まれるＷによって、欠損の大きいデータの寄与が小さくなるように学習されるので、欠損の度合いまでも効果的に用いてデータを有効に活用することができる。
【００８０】
推定フェーズにおいても、学習フェーズと同様に、ベクトル生成部２３によって、所定の個数ｎの集計単位から抽出される代表値を要素とするベクトルＸと、それに対応する有効率を要素とするベクトルＷとが生成される。そして、推定部２５によって、ベクトルＸの要素とベクトルＷの要素を連結した入力ベクトルが、上記のように学習された学習済みの推定モデルに対して入力され、その入力に応じて推定モデルから出力されるベクトルＹまたは中間層から出力される特徴量Ｚが取得される。
【００８１】
したがって、欠損を含むデータ群をもとに、学習済みの推定モデルを用いてデータを推定するときにも、または学習済みの推定モデルの中間層から特徴量を取得するときにも、もとのデータを破棄することなく有効に活用して、またその欠損の度合いまでも考慮して、推定処理を行うことができる。
【００８２】
さらに、上記実施形態によれば、学習フェーズおよび推定フェーズのいずれについても、統計量の算出や入力ベクトル生成のために過度に複雑な操作を要求するものではないので、データの性質や分析の目的に応じて管理者等が任意の設定や修正を行って実施することが可能である。
【００８３】
［他の実施形態］
なお、この発明は上記実施形態に限定されるものではない。
【００８４】
例えば、図５および図６に関して、ベクトル生成部２３が、集計単位ごとに算出された代表値および有効率を所定の要素数だけ抽出してベクトルＸおよびベクトルＷを生成するものとして説明したが、統計量を算出する前の生データからベクトルＸを生成するようにしてもよい。
【００８５】
例えば図４の例では、＃１のレコードから計測値をそのまま抽出してベクトルＸ1（110, 111, 111）を生成することもできる。この場合、対応するベクトルＷ1として、例えば＃１のレコードには欠損がないので有効率として「１」を用いて、ベクトルＷ1（1, 1, 1）を生成することができる。また同様に、図４の＃２のレコードからベクトルＸ2（122, 0, 0）を生成することができる。この場合、対応するベクトルＷ2として、＃２のレコードでは１回目の計測値しか得られなかったので、有効率として「０．３３３」を用いて、ベクトルＷ2（0.333, 0.333, 0.333）を生成することができる。あるいは、１回目の計測値だけが有効であったとしてベクトルＷ2（1, 0, 0）を生成するようにしてもよい。
【００８６】
また、統計量算出部２２が用いる集計単位は、上記実施形態に限定されるものではなく、任意の集計単位を設定することができる。図７は、集計単位を３日としたときの統計量の算出方法の一例を示す。図７では、日ごとに計測された体重を表す計測データから、集計単位として前後３日間の平均値および有効率が算出されている。すなわち、図７において、６月２３日に紐づけられた＃２については、６月２２日〜２４日の３日間の平均値（代表値）「６０．５」と、同じ３日間の有効率（有効データが存在する割合）「０．６６６」とが統計量として算出されている。同様に、６月２７日に紐づけられた＃６については、６月２６日〜２８日の３日間に計測データが全く取得されなかったので、代表値として「ＮＡ（算出不可）」と、有効率「０」とが算出されている。なお、上述のように、「ＮＡ」はベクトル生成時に「０」に置き換えることができる。
【００８７】
さらに、ベクトル生成部２３によるベクトルの生成も、上記で説明した実施形態に限定されるものではない。図８および図９は、ベクトル生成のための時系列データからの５次元のデータ抽出の例を示す。図８の例では、元のデータを５日間ごとに分割して、図６に示したような推定モデルに入力するようにしている。図９の例では、５日間のデータを１日ずつずらしながら抽出して入力ベクトルとするようにしている。同様に、２日ずつ、３日ずつ、または４日ずつずらして抽出することも可能であり、他の抽出方法を採用して上記実施形態に適用することも可能である。
【００８８】
またさらに、複数の種類のデータが存在する場合にも、上記実施形態を適用することができる。図１０および図１１は、２種類のデータ（データＡおよびデータＢ）からの入力ベクトル生成の例を示す。ここでは、「データＡ」として、血圧値や体重などの健康に関するデータや、血糖値や尿検査値などの検査値、問診（アンケート）の回答などが想定され、「データＢ」として、歩数や睡眠時間などウェアラブルデバイスで計測されるようなセンサデータや、ＧＰＳなどで計測される位置情報、問診（アンケート）の回答などが想定される。例えば、「データＡ」として血圧計測値データ、「データＢ」として歩数計測値データを収集し、両者を同時に考慮して解析することにより、被検者の健康管理や病気の予防などに役立てようとする場合が考えられる。ただし、上記実施形態は、このような健康関連データに限るものではなく、製造業、運輸業、農業など、多種多様な分野において取得される多種多様なデータを用いることができる。
【００８９】
図１０に示すように、２種類のデータが存在する場合、それぞれから抽出したデータを連結して入力ベクトルを生成するように構成することができる。図１０の例では、６次元の入力に対して、前半の３次元をデータＡ、後半の３次元をデータＢに割り当てて、データＡおよびデータＢそれぞれから抽出した３日間分のデータを入力ベクトルとしている。図１０の例では、入力次元と同じ期間でずらしながら抽出した場合を記載したが、図９に関して上述したように１日ずつずらしながら入力してもよい。２種類を超える種類のデータが存在する場合にも、図１０の例を適用可能である。
【００９０】
あるいは、図１１に示すように、複数のデータをそれぞれ入力のチャネルに割り当てて入力してもよい。これは、ＲＧＢ画像のように１つのピクセルが３つの情報を持っているときに、画像データをニューラルネットワークに入力する際などに使用される一般的な手法で実現される。
【００９１】
以上の実施形態では、特に１日ごとに記録されるような時系列データを例に記載したが、データの記録頻度は１日である必要はなく、任意の頻度で記録されたデータを用いることができる。
【００９２】
さらに、上述したように時系列データ以外のデータに対して上記実施形態を適用することも可能である。例えば、観測地点ごとに記録された気温データのようなものでもよいし、画像データなどでもよい。画像データのように２次元の配列で表現されるデータの場合は、複数の種類のデータが存在する事例について述べたように、行ごとに抽出して連結して入力することで実現される。
【００９３】
また、アンケートや試験などの集計結果に対して上記実施形態を適用することも可能である。例えば、アンケートの場合、該当なしまたは回答したくないなどの理由により、一部の質問に対してデータが欠損したり、特定の被検者に関して完全に無回答のデータが得られることが予想される。このような場合にも、上記実施形態によれば、一部無回答と完全無回答とを区別して考慮しつつ、データを破棄することなく有効に活用して学習や推定を行うことができる。なお、アンケートの自由回答のようにデータが言語情報を含む場合、テキストマイニングを用いてキーワードの出現頻度を解析するなど、任意の方法でデータを数値化し、上記実施形態を適用することができる。
【００９４】
またさらに、データ処理装置１が備える各機能部の必ずしもすべてを単一の装置に設ける必要はない。例えば、データ処理装置１が備える機能部２１〜２６を、クラウドコンピュータやエッジルータ等に分散配置し、これらの装置が互いに連携することにより学習および推定を行うようにしてもよい。これにより、各装置の処理負荷を軽減し、処理効率を高めることができる。
【００９５】
その他、統計量の算出やデータの格納形式等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
【００９６】
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００９７】
１…データ処理装置、１０…入出力インタフェースユニット、２０…制御ユニット、２１…データ取得部、２２…統計量算出部、２３…ベクトル生成部、２４…学習部、２５…推定部、２６…出力制御部、３０…記憶ユニット、３１…データ記憶部、３２…統計量記憶部、３３…モデル記憶部。
【図１】
2020052886.tif 000003
【図２】
2020052886.tif 000004
【図３】
2020052886.tif 000005
【図４】
2020052886.tif 000006
【図５】
2020052886.tif 000007
【図６】
2020052886.tif 000008
【図７】
2020052886.tif 000009
【図８】
2020052886.tif 000010
【図９】
2020052886.tif 000011
【図１０】
2020052886.tif 000012
【図１１】
2020052886.tif 000013