(57)【要約】【課題】ノイズが含まれる時間変化の波形データに対して、適切に異常判別を行うことを課題とする。【解決手段】学習装置は、対象物の固有の運動から得られる時間変化の波形データを用いて、自己符号化器による学習を実施する。学習装置は、波形データについて、値方向での閾値の変化に応じた連結成分の数の変化を算出するパーシステントホモロジ変換を実行する。学習装置は、波形データによる自己符号化器の出力と、パーシステントホモロジ変換の出力とを入力し、波形データと異常についての機械学習が行われた学習器の判別結果に基づき、異常を判別する。【選択図】図１
2020036633.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
対象物の固有の運動から得られる時間変化の波形データを用いて、自己符号化器による学習を実施し、
前記波形データについて、値方向での閾値の変化に応じた連結成分の数の変化を算出するパーシステントホモロジ変換を実行し、
前記波形データによる前記自己符号化器の出力と、前記パーシステントホモロジ変換の出力とを入力し、波形データと異常についての機械学習が行われた学習器の判別結果に基づき、異常を判別する、
処理を実行させる異常判別プログラム。
【請求項２】
前記判別する処理は、前記波形データ、または、前記波形データに対して高速フーリエ変換を実行した算出結果を前記学習器にさらに入力し、前記学習器が出力する判別結果に基づき異常を判別する、請求項１に記載の異常判別プログラム。
【請求項３】
前記判別する処理は、前記パーシステントホモロジ変換の結果をベッチ系列に変換して学習器に入力し、前記学習器が出力する判別結果に基づき異常を判別する、請求項１または２に記載の異常判別プログラム。
【請求項４】
前記学習器は、畳み込みニューラルネットワークである、請求項１から３のいずれか一つに記載の異常判別プログラム。
【請求項５】
前記実施する処理は、正常な前記波形データを用いた教師なし学習によって、前記自己符号化器による学習を実行する、請求項１から４のいずれか一つに記載の異常判別プログラム。
【請求項６】
正常または異常のラベルが付加された学習データである波形データを用いた教師あり学習によって、前記学習器の機械学習を実行する処理を、前記コンピュータにさらに実行させる、請求項１から５のいずれか一つに記載の異常判別プログラム。
【請求項７】
コンピュータが、
対象物の固有の運動から得られる時間変化の波形データを用いて、自己符号化器による学習を実施し、
前記波形データについて、値方向での閾値の変化に応じた連結成分の数の変化を算出するパーシステントホモロジ変換を実行し、
前記波形データによる前記自己符号化器の出力と、前記パーシステントホモロジ変換の出力とを入力し、波形データと異常についての機械学習が行われた学習器の判別結果に基づき、異常を判別する、
処理を実行する異常判別方法。
【請求項８】
対象物の固有の運動から得られる時間変化の波形データを用いて、自己符号化器による学習を実施する学習部と、
前記波形データについて、値方向での閾値の変化に応じた連結成分の数の変化を算出するパーシステントホモロジ変換を実行する変換部と、
前記波形データによる前記自己符号化器の出力と、前記パーシステントホモロジ変換の出力とを入力し、波形データと異常についての機械学習が行われた学習器の判別結果に基づき、異常を判別する判別部と
を有する異常判別装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常判別プログラム、異常判別方法および異常判別装置に関する。
【背景技術】
【０００２】
心電波形のように、対象物が起こす固有の運動もしくは対象物の特性に応じて固有の運動を起こさせた際の時系列変動を取得した時間変化のある波形データから、対象物の運動の異常を検知することが行われている。なお、固有の運動とは、例えば心電波形が微小な振動の中に定期的な心拍運動として観測されるように、一定値もしくは微小なサイン波や微小なノイズなどのある一定の振動の中に固有の大きな変動が加わるものをいう。また、特性に応じて固有の運動とは、例えば、一定状態の途中に刺激を加え、その刺激に対する反応を取得するものをいう。
【０００３】
図１０は、心電波形の一例を示す図である。例えば、心電波形の場合、図１０に示すように、基本的な形状としては、Ｐ（大きな山）、Ｑ（小さい谷）、Ｒ（大きな山）、Ｓ（谷）、Ｔ（小さな山）を含むＰＱＲＳＴ形状がある。不整脈の場合は、ＱＲＳ幅が異常に大きくなったり、Ｐ波が短時間に頻発したりするなど、形状が大きく崩れるので、この形状を判別することで、正常な心電波形と異常な心電波形とを判別できる。このような判別手法として、従来は目視による判別などが行われていたが、近年では畳み込みニューラルネットワーク（ＣＮＮ：Convolutional  Neural  Network：）を利用した判別手法が利用されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Pranav  Rajpurkar，Awni  Y.Hannun、Masoumeh  Haghpanahi、Codie  Bourn、Andrew  Y.Ng、“Cardiologist-Level  Arrhythmia  Detection  With  Convolutional  Neural  Networks”、arXiv、2017年7月6日
【非特許文献２】Mohammad  Kachuee、Shayan  Fazeli、Majid  Sarrafzadeh、  University  of  California、Los  Angeles（UCLA）、“ECG  Heartbeat  Classification:A  Deep  Transferable  Representation”、arXiv、2018年7月12日
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、例えば心電波形においては、測定電極の設置状況や測定状況、測定対象者の個人差などに起因するノイズが、対象の心臓の拍動の正常や異常とは別に、心電波形のデータに含まれる。ＣＮＮは、ノイズにも反応するので、正確に分類するためには特定の場所の要素が分類に効果が薄いことを学習することになる。しかし、実際はノイズの個人差は、異常のある人ほど独特なことが多く、独特なノイズを含むデータと通常のノイズを含むデータとが学習データに混在することで、独特のデータにオーバーフィットしてしまい、判別性能に悪影響を与える。このようなことから、ＣＮＮを用いたとしても、教師データに含まれない対象者の心電波形に対する判別精度が、教師データに含まれる対象者の心電波形に対する判別精度よりも大幅に低下してしまう。
【０００６】
また、心電波形は、頻脈や徐脈の影響を受け、不整脈の患者では、心電波形の周期は同じ測定サイクルの中でも変化する。このため、心電波形のデータを正規化しようとしても、心電波形のＰＱＲＳＴのピークの形は個人差が大きいことから、異常判別に影響を与えない形の正規化を行うことができるとは限らない。
【０００７】
一つの側面では、ノイズが含まれる時間変化の波形データに対して、適切に異常判別を行うことができる異常判別プログラム、異常判別方法および異常判別装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、異常判別プログラムは、コンピュータに、対象物の固有の運動から得られる時間変化の波形データを用いて、自己符号化器による学習を実施する処理を実行させる。異常判別プログラムは、コンピュータに、前記波形データについて、値方向での閾値の変化に応じた連結成分の数の変化を算出するパーシステントホモロジ変換を実行する処理を実行させる。異常判別プログラムは、コンピュータに、前記波形データによる前記自己符号化器の出力と、前記パーシステントホモロジ変換の出力とを入力し、波形データと異常についての機械学習が行われた学習器の判別結果に基づき、異常を判別する処理を実行させる。
【発明の効果】
【０００９】
一つの側面によれば、ノイズが含まれる時間変化の波形データに対して、適切に異常判別を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１にかかる学習装置を説明する図である。
【図２】図２は、一般技術では判別が難しいデータ例を示す図である。
【図３】図３は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。
【図４】図４は、オートエンコーダ処理を説明する図である。
【図５】図５は、ＴＤＡ処理を説明する図である。
【図６】図６は、心電波形からベッチ系列の生成までの処理を説明する図である。
【図７】図７は、処理の流れを示すフローチャートである。
【図８】図８は、一般技術との比較結果を説明する図である。
【図９】図９は、ハードウェア構成例を説明する図である。
【図１０】図１０は、心電波形の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する異常判別プログラム、異常判別方法および異常判別装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１２】
［全体構成］
図１は、実施例１にかかる学習装置を説明する図である。本実施例では、時間変化のある波形データの一例として、応用の進んでいる分野の一つである心拍を例にして説明する。図１に示すように、学習装置は、時間変化のある波形データの一例として心電波形データを学習データとして、心電波形データを分類する学習器を学習し、学習後の学習器を用いて、判別対象の心電波形のデータ（心電図）の判別を実行し、判別結果に基づき異常を判別する異常判別装置の一例である。
【００１３】
近年、心電図を用いた不整脈の診断は、疾病管理の上で要求が高まっている。一方で、患者数の増加や、心電波形の診断時にすでに手遅れとなるケースも多く、ポータブル心電計などを用いて、ソフトウェア上で診断することで簡易的に診断を行い、効率的な医療体制の構築が期待されている。そのために、心電波形をデータとした機械学習による不整脈の高性能な分類器の構築が望まれている。
【００１４】
このような心電波形は、基本形に細かいノイズが含まれており、ノイズの含まれ方にも個人差が大きい。また、頻脈や除脈といった個人差により、心電波形としては横幅を伸ばしたり縮めたりした形となるが、これら自体は同じものであるから、別々と判断されないように学習する必要がある。ところが、一般技術では、ノイズや個人差により学習精度が劣化し、誤判別が懸念される。
【００１５】
図２は、一般技術では判別が難しいデータ例を示す図である。図２に示す心電波形は、基本形状が崩れた異常な心電波形の例である。図２の（ａ）の場合、ａ１やａ２などの平らな波形部分にノイズが含まれていることから、一般技術では、Ｐ波の部分を特定することができない。また、図２の（ｂ）の場合、ｂ１やｂ２のようにＴ波と次のＰ波の間隔が極端なばらつきがあり、このような学習データがない限り、一般技術では、学習することができない。すなわち、一般技術では、学習データと判別対象データが同じ患者で構成されている条件では、高い判別性能となるが、実際の用途である学習データと判別対象データが別の患者の場合は、判別精度が十分ではない。
【００１６】
そこで、実施例１にかかる学習装置は、学習器の学習に対して、自己符号化器（オートエンコーダ）を用いた学習チャネルであるオートエンコーダチャネルと、value−filtrationをベースにしたＴＤＡ（Topological  Data  Analysis）チャネルとを構成に加えることで、判別精度の向上を実現する。
【００１７】
具体的には、学習装置は、心電波形データを用いて、オートエンコーダによる学習を実施する。学習装置は、心電波形データについて、値方向での閾値の変化に応じた連結成分の数の変化を算出するパーシステントホモロジ変換を実行する。学習装置は、心電波形データをオートエンコーダに入力したときの出力と、パーシステントホモロジ変換の出力とを入力し、心電波形データと異常についての機械学習が行われた学習器の判別結果に基づき、異常を判別する。
【００１８】
例えば、図１に示すように、学習装置は、ＣＮＮを用いた学習器に学習データを入力する際に、前処理を行ってデータ入力を実行する。例えば、オートエンコーダチャネルは、全体の学習の前に、学習データを用いて、ラベルなしの教師なし学習により学習したエンコーダとデコーダとを組み込む形式である。データチャネルは、高速フーリエ変換の実行や時間幅（Ｒ−Ｒ幅）などを抽出する形式である。ＴＤＡチャネルは、オートエンコーダでは横軸（時間軸）方向の伸縮に対応できないことから、心電波形データについて、値方向での閾値の変化に応じた連結成分の数の変化を算出するパーシステントホモロジ変換を実行する形式である。
【００１９】
このように、学習装置は、オートエンコーダチャネルによって、学習データである心電波形データを学習済みのオートエンコーダに入力して特徴量を抽出する。また、学習装置は、データチャネルによって、心電波形データに高速フーリエ変換などを行って特徴量を抽出する。また、学習装置は、ＴＤＡチャネルによって、心電波形データにパーシステントホモロジ変換を行ってベッチ系列などの特徴量を抽出する。そして、学習装置は、これらの特徴量と元の学習データ（心電波形データ）とを学習器（ＣＮＮ）に入力して学習を実行する。
【００２０】
学習器の学習完了後、学習装置は、判別対象の心電波形データに対して、学習時と同様、各チャネルを用いて各特徴量を抽出する。そして、学習装置は、各特徴量と判別対象の心電波形データとを学習済みの学習器に入力し、学習器の出力結果に基づいて、判別対象の心電波形データが異常か否かを判定する。この結果、学習装置は、時間方向、値方向のいずれにノイズが含まれる時間変化のある心電波形データに対して、適切に異常判別を行うことができる。
【００２１】
［機能構成］
図３は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。図３に示すように、学習装置１０は、通信部１１、記憶部１２、制御部２０を有する。
【００２２】
通信部１１は、他の装置の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、管理端末から学習データを受信したり、管理端末に学習結果や判別結果などを出力したりする。
【００２３】
記憶部１２は、データや制御部２０が実行するプログラムなどを記憶する記憶装置の一例であり、例えばハードディスクやメモリなどである。記憶部１２は、学習データＤＢ１３、判別対象データＤＢ１４、学習結果ＤＢ１５を記憶する。
【００２４】
学習データＤＢ１３は、学習対象の心電波形データを記憶するデータベースである。具体的には、学習データＤＢ１３は、正常な心電波形データおよび異常な心電波形データを記憶する。学習データである各心電波形データには、正常か異常かを示すラベルが付加されていてもよい。例えば、学習データＤＢ１３は、「ラベル、学習データ」を対応付けて「正常、心電波形データＡ」や「異常、心電波形データＢ」などを記憶する。なお、ここで記憶される学習データは、心電波形データを数値化した１次元の数値データである。
【００２５】
判別対象データＤＢ１４は、判別対象の心電波形データを記憶するデータベースである。例えば、判別対象データＤＢ１４は、学習データと同じ患者に限らず、正常か異常かを判別する対象の心電波形データを記憶する。なお、ここで記憶される判別対象データも、学習データと同様、心電波形データを数値化した１次元の数値データである。
【００２６】
学習結果ＤＢ１５は、学習結果を記憶するデータベースである。例えば、学習結果ＤＢ１５は、制御部２０による学習データの判別結果（分類結果）、機械学習等によって学習された各種パラメータを記憶する。
【００２７】
制御部２０は、学習装置１０全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部２０は、事前学習部２１、学習実行部２２、判別部２３を有する。なお、事前学習部２１、学習実行部２２、判別部２３は、プロセッサなどが有する電子回路やプロセッサなどが実行するプロセスの一例である。
【００２８】
事前学習部２１は、学習器を学習する前に、オートエンコーダ（自己符号化器）を学習する処理部である。具体的には、事前学習部２１は、学習データＤＢ１３に記憶される正常な心電波形データを用いた教師なし学習によって、オートエンコーダを学習し、学習結果を学習結果ＤＢ１５に格納する。
【００２９】
図４は、オートエンコーダ処理を説明する図である。図４に示すように、オートエンコーダは、ニューラルネットワークの一種で、情報量を小さくした特徴表現を獲得するためのものである。エンコーダで圧縮した特徴をデコーダで復元できれば、入力データの不要な次元を削減した潜在変数（特徴表現や特徴量など）を得ることができる。
【００３０】
そこで、事前学習部２１は、次元圧縮し復元したデータができるだけ元に戻るように、オートエンコーダを学習する。例えば、事前学習部２１は、入力データと出力データとが一致するように、両者を比較して復元誤差（Reconstraction  Error）を算出し、誤差逆伝搬法（バックプロパゲーション）によりエンコーダとデコーダの２つのニューラルネットワークの重みを調節する。
【００３１】
なお、学習を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点や復元誤差が閾値未満となった時点など、任意に設定することができる。このようにして学習されたオートエンコーダは、少ない情報で元データの重要な情報を保持するように構成されるので、時系列に対しては高性能なノイズ除去機能となる。
【００３２】
学習実行部２２は、ＡＥ処理部２２ａ、通常処理部２２ｂ、ＴＤＡ処理部２２ｃ、学習部２２ｄを有し、ＣＮＮを用いた学習器を学習する処理部である。なお、ＡＥ処理部２２ａは、図１に示したオートエンコーダチャネルに対応し、通常処理部２２ｂは、データチャネルに対応し、ＴＤＡ処理部２２ｃは、ＴＤＡチャネルに対応する。
【００３３】
ＡＥ処理部２２ａは、事前学習部２１により学習された学習済みのオートエンコーダを用いて特徴量を抽出する処理部である。例えば、ＡＥ処理部２２ａは、学習結果ＤＢ１５に記憶される学習済みパラメータを設定したオートエンコーダを構築する。そして、ＡＥ処理部２２ａは、ラベル「正常」が付加された学習データ「心電波形データＡ」を学習データＤＢ１３から取得し、オートエンコーダに入力する。その後、ＡＥ処理部２２ａは、オートエンコーダから出力値を取得し、取得した出力値を学習部２２ｄに入力する。
【００３４】
通常処理部２２ｂは、一般的なＣＮＮの学習と同様の処理を実行し、高速フーリエ変換などを実行する処理部である。上記例で説明すると、通常処理部２２ｂは、ラベル「正常」が付加された学習データ「心電波形データＡ」を学習データＤＢ１３から取得する。
【００３５】
そして、通常処理部２２ｂは、読み出したデータそのものを学習部２２ｃに入力する。また、通常処理部２２ｂは、取得した学習データ「心電波形データＡ」に対して高速フーリエ変換を実行した算出結果を学習部２２ｃに入力する。また、通常処理部２２ｂは、取得した学習データ「心電波形データＡ」から時間幅などを抽出して、学習部２２ｄに入力する。このように、通常処理部２２ｂは、高速フーリエ変換の算出結果、時間幅、データそのものを学習部２２ｄに入力する。
【００３６】
ＴＤＡ処理部２２ｃは、学習データについて、値方向での閾値の変化に応じた連結成分の数の変化を算出するパーシステントホモロジ変換を実行する処理部である。上記例で説明すると、ＴＤＡ処理部２２ｃは、ラベル「正常」が付加された学習データ「心電波形データＡ」を学習データＤＢ１３から取得する。そして、ＴＤＡ処理部２２ｃは、学習データ「心電波形データＡ」に対して、Value−based  filtrationを用いたパーシステントホモロジ変換を実行し、ベッチ系列を生成する。その後、ＴＤＡ処理部２２ｃは、ベッチ系列を学習部２２ｄに入力する。
【００３７】
ここで、パーシステントホモロジをより具体的に説明する。まず、「ホモロジ」とは、対象の特徴をｍ（ｍ≧０）次元の穴の数によって表現する手法である。ここで言う「穴」とはホモロジ群の元のことであり、０次元の穴は連結成分であり、１次元の穴は穴（トンネル）であり、２次元の穴は空洞である。各次元の穴の数はベッチ数と呼ばれる。そして、「パーシステントホモロジ」とは、対象（ここでは、点の集合（Point  Cloud））におけるｍ次元の穴の遷移を特徴付けるための手法であり、パーシステントホモロジによって点の配置に関する特徴を調べることができる。この手法においては、対象における各点が球状に徐々に膨らまされ、その過程において各穴が発生した時刻（発生時の球の半径で表される）と消滅した時刻（消滅時の球の半径で表される）とが特定される。
【００３８】
パーシステントホモロジの計算過程において、ホモロジ群の元（すなわち穴）の発生半径と消滅半径とが計算される。穴の発生半径と消滅半径とを使用することで、バーコードデータを生成することができる。バーコードデータは穴次元毎に生成されるので、複数の穴次元のバーコードデータを統合することで１塊のバーコードデータが生成できる。連続データは、パーシステントホモロジにおける球の半径（すなわち時間）とベッチ数との関係を示すデータである。
【００３９】
なお、上記一般的なパーシステントホモロジは、０次元、１次元、２次元を処理対象とするが、本実施例では、０次元の穴である連結成分のみを対象とする。
【００４０】
次に、ＴＤＡ処理部２２ｃによる処理を具体的に説明する。図５は、ＴＤＡ処理を説明する図である。図５の（α）に示すように、ＴＤＡ処理部２２ｃは、数値の小さい側から均等に閾値を上げていき、０次元の穴である連結成分の数を計数する。例えば、ＴＤＡ処理部２２ｃは、ｘ１の時点で連携成分が発生し、次にｘ５の時点で連結成分が発生し、ｘ３の自連で連携成分が発生する。そして、ＴＤＡ処理部２２ｃは、ｘ２の時点で連結成分が結合するので、後からできた連結が消滅したと判断し、ｘ４の時点でも連結成分が結合するので、後からできた連結が消滅したと判断する。
【００４１】
このようにして、ＴＤＡ処理部２２ｃは、新しい連結成分ができたら発生（birth）、連結成分が結合した時は一方が消滅した（death）と考えて、発生と消滅のタイミングを図示した図５の（β）を生成する。同様に、ＴＤＡ処理部２２ｃは、数値の大きい側から均等に閾値を下げていき、連携成分の数を計数し、連結成分の発生と消滅とを計数する。
【００４２】
その後、ＴＤＡ処理部２２ｃは、バーコードデータの生成およびベッチ系列の生成を実行する。図６は、心電波形からベッチ系列の生成までの処理を説明する図である。図６に示すように、ＴＤＡ処理部２２ｃは、図６の（ａ）に示すＰＱＲＳＴ形状を有する心電波形データに対して、数値の小さい側から均等に閾値を上げていき、０次元の穴である連結成分の数を計数する（図６の（ｂ））。
【００４３】
続いて、ＴＤＡ処理部２２ｃは、上述した手法により、連結成分の計数結果を用いてバーコードデータを生成する（図６の（ｃ））。その後、ＴＤＡ処理部２２ｃは、バーコードデータに基づいて連続データを生成する（図６の（ｄ））。なお、図６の（ｄ）では、数値の小さい側から処理したときの連続データＰと、数値の大きい側から処理したときの連続データＱとが示されている。
【００４４】
なお、図６の（ｃ）のグラフは、バーコードデータから生成されるグラフであり、横軸が半径を表す。図６の（ｄ）のグラフは、連続データ（ベッチ系列と記載する場合がある）から生成されるグラフであり、縦軸はベッチ数を表す。上で述べたように、ベッチ数は穴の数を表しており、例えば図６の（ｃ）のグラフにおいてある時の半径の時には存在している穴の数が１０である場合、図６の（ｄ）のグラフにおけるある時に対応するベッチ数も１０となる。ベッチ数は、ブロック毎に計数される。なお、図６の（ｄ）のグラフは、疑似的な時系列データのグラフであるので、横軸の値自体が意味を持つわけではない。
【００４５】
図３に戻り、学習部２２ｄは、学習器であるＣＮＮの学習を実行する処理部である。具体的には、学習部２２ｄは、学習データＤＢ１３に記憶されるラベル付きの学習データを用いた教師あり学習によって、ＣＮＮの学習を実行する。
【００４６】
上記例で用いたラベル「正常」が付加された学習データ「心電波形データＡ」を用いて学習する例を説明する。学習部２２ｄは、各処理部２２ａ〜２２ｃから、オートエンコーダの出力値、高速フーリエ変換の算出結果、時間幅、ベッチ系列、心電波形データＡそのものを取得し、ＣＮＮに入力する。そして、学習部２２ｄは、ＣＮＮの出力結果とラベル「正常」とを比較し、誤差が小さくなるように、誤差逆伝搬法などによってＣＮＮを学習する。
【００４７】
そして、学習部２２ｄは、ＣＮＮの学習が完了すると、ＣＮＮにおける各種パラメータを学習結果として学習結果ＤＢ１５に格納する。なお、学習を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点や復元誤差が閾値未満となった時点など、任意に設定することができる。
【００４８】
判別部２３は、学習された学習モデルを用いて、判別対象の心電波形データの異常判別を実行する処理部である。また、判別部２３は、判別結果を記憶部１２に格納したり、ディスプレイなどの表示部に表示したり、管理端末に送信したりする。
【００４９】
例えば、判別部２３は、学習結果ＤＢ１５に記憶される各種パラメータを読み出し、各種パラメータを設定したＣＮＮによる学習モデルを構築する。そして、判別部２３は、判別対象データＤＢ１４から判別対象の心電波形データを読み出す。
【００５０】
続いて、判別部２３は、判別対象の心電波形データに対して、ＡＥ処理部２２ａと通常処理部２２ｂとＴＤＡ処理部２２ｃのそれぞれと同様の処理を実行し、特徴量として、オートエンコーダの出力値、高速フーリエ変換の算出結果、時間幅、ベッチ系列を取得する。そして、判別部２３は、各特徴量と判別対象の心電波形データそのものを学習モデル（ＣＮＮ）に入力し、判別結果を取得する。その後、判別部２３は、判別結果に基づき、判別対象の心電波形データが正常か否かを判別する。例えば、判別部２３は、判別結果で示される正常である確率と異常である確率のうち、正常である確率の方が高い場合は、判別対象の心電波形データを正常波形と判別し、異常である確率の方が高い場合は、判別対象の心電波形データを異常波形と判別する。
【００５１】
［処理の流れ］
次に、上述した判別処理の流れを説明する。図７は、処理の流れを示すフローチャートである。図７に示すように、処理が開始されると（Ｓ１０１：Ｙｅｓ）、学習装置１０の事前学習部２１は、正常な学習データを用いた教師なし学習により、オートエンコーダ（自己符号器）を学習する（Ｓ１０２）。
【００５２】
続いて、事前学習部２１は、オートエンコーダの学習が終了するまで学習を繰り返しと（Ｓ１０３：Ｎｏ）、事前学習部２１によるオートエンコーダの学習が完了すると（Ｓ１０３：Ｙｅｓ）、学習実行部２２は、ラベル付きの学習データを学習データＤＢ１３から読み込む（Ｓ１０４）。
【００５３】
そして、ＡＥ処理部２２ａは、学習済みのオートエンコーダに学習データを入力し、特徴量として、オートエンコーダの出力結果を取得する（Ｓ１０５）。続いて、ＴＤＡ処理部２２ｃは、学習データについてパーシステントホモロジ変換を実行し、特徴量として、ベッチ系列を取得する（Ｓ１０６）。また、通常処理部２２ｂは、学習データに対して高速フーリエ変換などを実行し、特徴量として、高速フーリエ変換の算出結果や時間幅などを取得する（Ｓ１０７）。なお、Ｓ１０５からＳ１０７は、順不同である。
【００５４】
そして、学習部２２ｄは、Ｓ１０５からＳ１０７で取得された各特徴量と学習データとをＣＮＮに入力して、ＣＮＮに対して、学習データに付加されるラベルに基づく教師あり学習を実行する（Ｓ１０８）。その後、学習部２２ｄは、学習を継続する場合（Ｓ１０９：Ｎｏ）、Ｓ１０４以降を繰り返し、学習を終了する場合（Ｓ１０９：Ｙｅｓ）、学習結果を学習結果ＤＢ１５に出力する（Ｓ１１０）。
【００５５】
その後、判別処理の開始指示を受信すると（Ｓ１１１：Ｙｅｓ）、判別部２３は、判別対象データを判別対象データＤＢ１４から読み込む（Ｓ１１２）。続いて、判別部２３は、学習済みのオートエンコーダに判別対象データを入力し、特徴量として、オートエンコーダの出力結果を取得し（Ｓ１１３）、学習データについてパーシステントホモロジ変換を実行し、特徴量として、ベッチ系列を取得し（Ｓ１１４）、学習データに対して高速フーリエ変換などを実行し、特徴量として、高速フーリエ変換の算出結果や時間幅などを取得する（Ｓ１１５）。なお、Ｓ１１３からＳ１１５は、順不同である。
【００５６】
そして、判別部２３は、Ｓ１１３からＳ１１５で取得された各特徴量と判別対象データとを学習済みの学習モデル（ＣＮＮ）に入力して（Ｓ１１６）、出力結果を取得する（Ｓ１１７）。その後、判別部２３は、出力結果に基づき異常判別を実行する（Ｓ１１８）。その後、判別部２３は、判別を継続する場合（Ｓ１１９：Ｎｏ）、Ｓ１１２以降を繰り返し、判別を終了する場合（Ｓ１１９：Ｙｅｓ）、判別処理を終了する。
【００５７】
［効果］
上述したように、ノイズ除去に関し、オートエンコーダチャネルを組み込むことで、移動平均のように、データごとに設定を行うこともなく、細かく汎用的なノイズ除去が可能である。また、同じ範囲内で上下動を繰り返すような時系列データに比べて、心電波形データに適用した場合、ＰＱＲＳＴというノイズより大きな変動をする形状があるので、ノイズ除去として大きな効果がある。
【００５８】
また、頻脈や除脈などの心電波形の個人差に関し、ＴＤＡチャネルを設けることで、複雑な設定などを行うことなく、正確に判別（分類）できる学習モデルを構築できる。一般的に、頻脈や徐脈の患者の場合、例えばＲの位置を揃えたとして、Ｐ、Ｑ、Ｓ、Ｔの位置が大きく異なることになるので、通常のＣＮＮではあまりに大きな位置のズレとなり別のものとして認識される。特に異常のある患者に極端な頻脈や徐脈が多く、学習データに無いような極端な頻脈や徐脈の患者は適切に分類できない。また、学習データに無いレベルの頻脈・徐脈度合いの患者は、頻脈や徐脈具合で分類をしてしまうので、不整脈とは関係ない判断となり性能が劣化する。これに対して、適切にスケールングするか、全ての種類に対し全ての頻脈や徐脈具合のデータを十分に集める必要があるが、これらは現実的ではない。
【００５９】
そこで、ＴＤＡチャネルによるValue−based  filtrationは、観測値方向の変化のみに依存した結果となっているので、時間軸方向に伸縮しただけの結果に関しては同じ出力となる。また、Value−based  filtrationは、細かいノイズ等の影響は対角線上に集まり、わずかな形状のズレをdiagram上の点のわずかなズレと認識する。この結果、スケーリングの自動化を行い、大雑把な波形の形状によって分類が決まる不整脈の特徴に干渉しない学習を実行することができる。
【００６０】
図８は、一般技術との比較結果を説明する図である。図８の縦軸は正確率であり、正常な心電波形データを正常と判定し、異常な心電波形データを異常と判定した割合である。図８に示すように、ＴＤＡチャネルもオートエンコーダ（ＥＮＤ）チャネルもない一般的なＣＮＮ学習は７０％程度の正確率であったが、ＥＮＤチャネルを加えることで正解率が向上し、さらにＴＤＡチャネルも加えることでさらに正解率が向上する。
【００６１】
以上より、学習装置１０は、一般的なＣＮＮの処理（データチャネル）に、オートエンコーダチャネルとＴＤＡチャネルとを組み込むことで、ノイズが含まれる時間変化の波形データに対して、適切に異常判別を行うことができる。
【実施例２】
【００６２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００６３】
［時系列データ］
上記実施例では、時間変化のある連続データの一例として、心電波形を例示したが、このような時系列データに限られるわけではない。例えば、心拍数以外の生体データ（脳波、脈拍或いは体温などの時系列データ）、ウェアラブルセンサのデータ（ジャイロセンサ、加速度センサ或いは地磁気センサなどの時系列データ）、金融データ（金利、物価、国際収支或いは株価などの時系列データ）、自然環境のデータ（気温、湿度或いは二酸化炭素濃度などの時系列データ）、又は社会データ（労働統計或いは人口統計などのデータ）等であってもよい。
【００６４】
［チャネル構成］
上記実施例では、データチャネルに、オートエンコーダチャネルとＴＤＡチャネルとを組み込む例を説明したが、これに限定されず、オートエンコーダチャネルまたはＴＤＡチャネルのいずれかのみを組み込むこともできる。
【００６５】
［学習モデル］
上記実施例では、ＣＮＮを用いる例を説明したが、これに限定されず、ＲＮＮ（Recurrent  Neural  Networks）など様々なニューラルネットワークを用いることができ、他の機械学習を採用することもできる。また、学習の手法も、誤差逆伝播以外にも公知の様々な手法を採用することができる。また、ニューラルネットワークは、例えば入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値（重み係数）、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。
【００６６】
また、ニューラルネットワークにおける学習とは、出力層が正しい値となるように、パラメータ、すなわち、重みとバイアスを修正していくことである。誤差逆伝播法においては、ニューラルネットワークに対して、出力層の値がどれだけ正しい状態（望まれている状態）から離れているかを示す「損失関数（loss  function）」を定め、最急降下法等を用いて、損失関数が最小化するように、重みやバイアスの更新が行われる。
【００６７】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、事前学習部２１と学習実行部２２とを有する学習装置と、判別部２３を有する判別装置とのように、学習と判別とを別々の装置で構成することもできる。
【００６９】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７０】
［ハードウェア］
図９は、ハードウェア構成例を説明する図である。図９に示すように、学習装置１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図９に示した各部は、バス等で相互に接続される。
【００７１】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図３に示した機能を動作させるプログラムやＤＢを記憶する。
【００７２】
プロセッサ１０ｄは、図３に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図３等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、学習装置１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、事前学習部２１、学習実行部２２、判別部２３等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、事前学習部２１、学習実行部２２、判別部２３等と同様の処理を実行するプロセスを実行する。
【００７３】
このように学習装置１０は、プログラムを読み出して実行することで異常判定方法を実行する情報処理装置として動作する。また、学習装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、学習装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００７４】
１０  学習装置
１１  通信部
１２  記憶部
１３  学習データＤＢ
１４  判別対象データＤＢ
１５  学習結果ＤＢ
２０  制御部
２１  事前学習部
２２  学習実行部
２２ａ  ＡＥ処理部
２２ｂ  通常処理部
２２ｃ  ＴＤＡ処理部
２３  判別部
【図１】
2020036633.tif 000003
【図２】
2020036633.tif 000004
【図３】
2020036633.tif 000005
【図４】
2020036633.tif 000006
【図５】
2020036633.tif 000007
【図６】
2020036633.tif 000008
【図７】
2020036633.tif 000009
【図８】
2020036633.tif 000010
【図９】
2020036633.tif 000011
【図１０】
2020036633.tif 000012