(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-06-26
(45)【発行日】2025-07-04
(54)【発明の名称】データ圧縮装置、データ圧縮方法、及びデータ圧縮プログラム
(51)【国際特許分類】
H03M 7/30 20060101AFI20250627BHJP
H03M 7/46 20060101ALI20250627BHJP
【FI】
H03M7/30 Z
H03M7/46
(21)【出願番号】P 2025517517
(86)(22)【出願日】2023-10-31
(86)【国際出願番号】 JP2023039338
【審査請求日】2025-03-21
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】森 郁海
【審査官】北村 智彦
(56)【参考文献】
【文献】特開2007-104271(JP,A)
【文献】特開平03-055919(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 3/00-9/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
時系列的に連続的な1つ以上の同一値を示すデータ点から成る連続値を複数含む離散的な時系列データを圧縮するデータ圧縮装置であって、
前記時系列データに含まれている各連続値を対象連続値としたとき、
前記対象連続値の継続期間が指定期間未満であり、かつ、前記対象連続値の値と、時系列的に前記対象連続値の開始点の直前のデータ点の値との差分が差分閾値以下である場合に前記対象連続値をノイズであると判定し、
前記対象連続値の継続期間が前記指定期間以上であり、かつ、前記対象連続値の値と、時系列的に前記対象連続値の開始点の直前のデータ点の値との差分が前記差分閾値以下である場合に前記対象連続値をノイズではないと判定し、
前記時系列データからノイズであると判定した各連続値を削除することによって圧縮済データを生成するノイズ判定部
を備えるデータ圧縮装置。
【請求項2】
前記ノイズ判定部は、前記対象連続値の値と、時系列的に前記対象連続値の開始点の直前のデータ点の値との差分が前記差分閾値よりも大きい場合に前記対象連続値をノイズではないと判定する請求項1に記載のデータ圧縮装置。
【請求項3】
前記ノイズ判定部は、差分符号化により前記圧縮済データを生成する請求項1又は2に記載のデータ圧縮装置。
【請求項4】
前記指定期間と前記差分閾値との各々は、ドメイン知識に基づいて算出された値である請求項1又は2に記載のデータ圧縮装置。
【請求項5】
前記データ圧縮装置は、さらに、
前記時系列データに含まれている各連続値の継続期間に基づいて前記指定期間を算出する指定期間算出部と、
前記時系列データに含まれている各連続値の値と、時系列的に各連続値の開始点の直前のデータ点の値との差分に基づいて前記差分閾値を算出する差分閾値算出部と
を備える請求項1又は2に記載のデータ圧縮装置。
【請求項6】
前記データ圧縮装置は、さらに、
前記指定期間を算出する際に使用される統計量と、前記差分閾値を算出する際に使用される統計量との各々を選択する統計量選択部
を備える請求項5に記載のデータ圧縮装置。
【請求項7】
前記データ圧縮装置は、さらに、
前記時系列データを用いて学習した機械学習モデルの精度に対する、前記圧縮済データを復元したデータを用いて学習した機械学習モデルの精度に基づいて、算出された指定期間と、算出された差分閾値との各々を採用するか否かを判定するパラメータ判定部
を備える請求項5に記載のデータ圧縮装置。
【請求項8】
時系列的に連続的な1つ以上の同一値を示すデータ点から成る連続値を複数含む離散的な時系列データを圧縮するコンピュータであるデータ圧縮装置が実行するデータ圧縮方法であって、
前記時系列データに含まれている各連続値を対象連続値としたとき、
前記データ圧縮装置は、
前記対象連続値の継続期間が指定期間未満であり、かつ、前記対象連続値の値と、時系列的に前記対象連続値の開始点の直前のデータ点の値との差分が差分閾値以下である場合に前記対象連続値をノイズであると判定し、
前記対象連続値の継続期間が前記指定期間以上であり、かつ、前記対象連続値の値と、時系列的に前記対象連続値の開始点の直前のデータ点の値との差分が前記差分閾値以下である場合に前記対象連続値をノイズではないと判定し、
前記時系列データからノイズであると判定した各連続値を削除することによって圧縮済データを生成するデータ圧縮方法。
【請求項9】
時系列的に連続的な1つ以上の同一値を示すデータ点から成る連続値を複数含む離散的な時系列データを圧縮するコンピュータであるデータ圧縮装置が実行するデータ圧縮プログラムであって、
前記時系列データに含まれている各連続値を対象連続値としたとき、
前記対象連続値の継続期間が指定期間未満であり、かつ、前記対象連続値の値と、時系列的に前記対象連続値の開始点の直前のデータ点の値との差分が差分閾値以下である場合に前記対象連続値をノイズであると判定し、
前記対象連続値の継続期間が前記指定期間以上であり、かつ、前記対象連続値の値と、時系列的に前記対象連続値の開始点の直前のデータ点の値との差分が前記差分閾値以下である場合に前記対象連続値をノイズではないと判定し、
前記時系列データからノイズであると判定した各連続値を削除することによって圧縮済データを生成するノイズ判定処理
を前記データ圧縮装置に実行させるデータ圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ圧縮装置、データ圧縮方法、及びデータ圧縮プログラムに関する。
【背景技術】
【0002】
連続値を多く含む離散的な時系列データを圧縮する技術がある。特許文献1は、当該技術の一例を開示している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1が開示している技術によれば、所定時間に応じて時系列データを圧縮する、即ち同一値が連続する期間の長さを考慮せずに時系列データを圧縮する。なお、当該技術においてデッドバンド幅よりも大きな値の変化が発生した場合に、値の変化に対応するデータを保存する。そのため、当該技術には、所定時間の範囲内においてデッドバンド幅以内の範囲で値が変化したとき、値の変化がノイズに起因するものとは考えられない場合であっても、圧縮後の時系列データには値の変化を示す情報が含まれないことがあるという課題がある。
ここで、機械学習の学習過程において膨大なデータが用いられるため、データの圧縮率をできるだけ高めることが好ましい。また、機械学習において変化点が重要視される。さらに、ノイズを排除したデータを用いて学習しても精度に対する影響は一般的に小さい。そのため、機械学習の学習過程において用いられるデータを生成することを目的として連続値を多く含む離散的な時系列データを圧縮する際、ノイズを排除しつつ、デッドバンド幅以内の範囲で値が変化した場合であっても同一値が連続する期間が一定以上長い場合に同一値が連続する期間におけるデータを示す情報を残すことが好ましい。
【0005】
本開示は、連続値を多く含む離散的な時系列データを圧縮する技術において、ノイズを排除しつつ、差分閾値以内の範囲で値が変化した場合であっても同一値が連続する期間が指定期間以上である場合に当該同一値が連続する期間におけるデータを示す情報を残すことを目的とする。
【課題を解決するための手段】
【0006】
本開示に係るデータ圧縮装置は、
時系列的に連続的な1つ以上の同一値を示すデータ点から成る連続値を複数含む離散的な時系列データを圧縮するデータ圧縮装置であって、
前記時系列データに含まれている各連続値を対象連続値としたとき、
前記対象連続値の継続期間が指定期間未満であり、かつ、前記対象連続値の値と、時系列的に前記対象連続値の開始点の直前のデータ点の値との差分が差分閾値以下である場合に前記対象連続値をノイズであると判定し、
前記対象連続値の継続期間が前記指定期間以上であり、かつ、前記対象連続値の値と、時系列的に前記対象連続値の開始点の直前のデータ点の値との差分が前記差分閾値以下である場合に前記対象連続値をノイズではないと判定し、
前記時系列データからノイズであると判定した各連続値を削除することによって圧縮済データを生成するノイズ判定部
を備える。
【発明の効果】
【0007】
本開示によれば、ノイズ判定部が、対象連続値の継続期間が指定期間未満であり、かつ、対象連続値の値と、時系列的に対象連続値の開始点の直前のデータ点の値との差分が差分閾値以下である場合に対象連続値をノイズであると判定する。また、ノイズ判定部が、対象連続値の継続期間が指定期間以上であり、かつ、対象連続値の値と、時系列的に対象連続値の開始点の直前のデータ点の値との差分が差分閾値以下である場合に対象連続値をノイズではないと判定する。さらに、ノイズ判定部は、ノイズであると判定した各連続値を示さないデータであって、ノイズではないと判定した各連続値を示すデータであって、時系列データを圧縮したデータである圧縮済データを生成する。ここで、時系列データは複数の連続値を含む離散的なデータである。
従って、本開示によれば、連続値を多く含む離散的な時系列データを圧縮する技術において、ノイズを排除しつつ、差分閾値以内の範囲で値が変化した場合であっても同一値が連続する期間が指定期間以上である場合に当該同一値が連続する期間におけるデータを示す情報を残すことができる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態1に係るデータ圧縮システム90の構成例を示す図。
【
図2】実施の形態1に係るデータ圧縮システム90の構成例を示す図。
【
図3】実施の形態1に係るノイズ判定部11の処理を説明する図。
【
図4】実施の形態1に係るノイズ判定部11の処理を説明する図であり、(a)は定常状態及び過渡状態を説明する図、(b)は空気調和機の性能に対応する関数を示す図。
【
図5】実施の形態1に係るノイズ判定部11の処理を説明する図。
【
図6】実施の形態1に係るデータ圧縮装置100のハードウェア構成例を示す図。
【
図7】実施の形態1に係るデータ圧縮システム90の処理を示すフローチャート。
【
図8】実施の形態1に係るノイズ判定部11の処理を示すフローチャート。
【
図9】実施の形態1に係るノイズ判定部11の処理を示すフローチャート。
【
図10】実施の形態1の変形例に係るデータ圧縮装置100のハードウェア構成例を示す図。
【
図11】実施の形態2に係るデータ圧縮システム90の構成例を示す図。
【
図12】実施の形態2に係る統計量選択部30の構成例を示す図。
【
図13】実施の形態2に係る指定期間12及び差分閾値13を説明する図。
【
図14】実施の形態2に係るデータ圧縮システム90の処理を示すフローチャート。
【
図15】実施の形態2に係る統計量選択部30の処理を示すフローチャート。
【
図16】実施の形態2に係る指定期間算出部32の処理を示すフローチャート。
【
図17】実施の形態2に係る差分閾値算出部34の処理を示すフローチャート。
【
図18】実施の形態3に係るデータ圧縮システム90の構成例を示す図。
【
図19】実施の形態3に係るパラメータ判定部40の構成例を示す図。
【
図20】実施の形態3に係る統計量選択部30の構成例を示す図。
【
図21】実施の形態3に係るデータ圧縮システム90の処理を説明する図。
【
図22】実施の形態3に係るデータ圧縮システム90の処理を示すフローチャート。
【
図23】実施の形態3に係るデータ圧縮システム90の処理を示すフローチャート。
【
図24】実施の形態3に係る統計量選択部30の処理を示すフローチャート。
【
図25】実施の形態3に係るパラメータ判定部40の処理を示すフローチャート。
【
図26】実施の形態3に係るパラメータ判定部40の処理を示すフローチャート。
【発明を実施するための形態】
【0009】
実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」又は「装置」を、「システム」、「回路」、「工程」、「手順」、「処理」又は「サーキットリー」に適宜読み替えてもよい。
【0010】
実施の形態1.
以下、本実施の形態について、図面を参照しながら詳細に説明する。
本実施の形態では、機械学習の学習過程において用いられるデータを生成することを目的として連続値を多く含む離散的な時系列データを圧縮する技術において、機械学習に対する影響がない又は小さいノイズを除去することによりデータ量を小さくすることと、ノイズを除去したデータに基づいて学習を実行した機械学習モデルの精度を、生データを用いて学習した機械学習モデルの精度と同等とすることとを両立させることを目的とする。また、本実施の形態では、時系列データの保管コストを低減するために時系列データから微弱ノイズを除去して圧縮することによりデータ量を削減することを目的とする。本実施の形態に係る時系列データは、離散値から成るデータであり、連続値を複数含むデータである。即ち、当該時系列データは離散的な時系列データである。連続値は、時系列的に連続的な1つ以上の同一値を示すデータ点から成る。
具体例として、IoT(Internet of Things)のユースケースでは連続値が多くなる。この要因として、センサーの感度(分解能)が低いこと、又は四捨五入等により値を意図的に丸めてデータ量を削減すること等が挙げられる。なお、孤立点を連続値と表現することもある。孤立点の値は、孤立点に隣接するいずれのデータ点の値とも異なる。
【0011】
***構成の説明***
図1及び
図2は、本実施の形態に係るデータ圧縮システム90の構成例を示している。
データ圧縮装置100は時系列データを圧縮する。データ圧縮装置100は、
図1に示すようにクラウドシステム1により実現されてもよく、
図2に示すようにエッジシステム19により実現されてもよい。データ圧縮装置100とデータ復元装置200とは一体的に構成されてもよい。
以下、データ圧縮装置100がクラウドシステム1により実現される具体例を説明する。
データ圧縮装置100がエッジシステム19により実現される場合については、データ圧縮装置100がクラウドシステム1により実現される場合と同様である。復元方法22は圧縮済データ14を復元する方法を示すデータである。
【0012】
各センサー2が取得した時系列データ5は、ネットワーク6を経由してクラウドシステム1に送信される。時系列データ5は、各センサー2が取得したセンサ値を時系列に記録したデータである。時系列データ5は生データに相当する。
クラウドシステム1は、データ受信部7と、データ圧縮装置100と、データベース15と、データ復元装置200とを備える。
データ受信部7は時系列データ5を受信する。
データ圧縮装置100は、符号化部9と、ノイズ判定部11とを備える。
【0013】
符号化部9は、データ受信部7から時系列データ5を受け取り、受け取った時系列データ5を符号化することにより符号化済データ10を生成する。
符号化部9は、具体例として、差分符号化により符号化済データ10を生成する。差分符号化は、隣接するデータ点間の差分に基づいて離散的な時系列データを圧縮する方式である。差分符号化において、各データ点は、時系列的に直前のデータ点との差分が0ではない場合に保持され、また、時系列的に直前のデータ点との差分が0である場合に削除される。
【0014】
ノイズ判定部11は、指定期間12と差分閾値13とに基づいて符号化済データ10に含まれている部分データ点列がノイズであるか否かを判定し、ノイズと判定した部分データ点列を符号化済データ10から削除して圧縮済データ14を生成する。ノイズ判定部11は、差分符号化により圧縮済データ14を生成してもよい。ノイズ判定部11は、生成した圧縮済データ14をデータベース15に保存する。圧縮済データ14は、ノイズ判定部11がノイズであると判定した各連続値を示さないデータであって、ノイズ判定部11がノイズではないと判定した各連続値を示すデータであって、時系列データ5を圧縮したデータである。圧縮済データ14は符号化済データ10をさらに圧縮したデータであってもよい。
本実施の形態では、各データ点がノイズであるか否かを判定するために指定期間12及び差分閾値13を導入する。指定期間12及び差分閾値13の各々は、ドメイン知識に基づいて算出された値であってもよい。なお、ノイズ判定部11は符号化済データ10の代わりに時系列データ5を用いてもよい。圧縮済データ14は、生データから抽出された特徴を示すデータに相当する。
ノイズ判定部11は、ある連続値の継続期間が指定期間12よりも短い場合に、当該ある連続値をノイズと判断する。しかしながら、ノイズ判定部11は、指定期間12に基づいてノイズと判断した連続値であっても、当該連続値の値と、時系列的に当該連続値の開始点の直前のデータ点の値との差分(変動)が差分閾値13よりも大きい場合に当該連続値をノイズと判断しない。
時系列データ5に含まれている各連続値を対象連続値としたとき、ノイズ判定部11は、対象連続値の継続期間が指定期間12未満であり、かつ、対象連続値の値と、時系列的に対象連続値の開始点の直前のデータ点の値との差分が差分閾値13以下である場合に対象連続値をノイズであると判定する。また、ノイズ判定部11は、対象連続値の継続期間が指定期間12以上であり、かつ、対象連続値の値と、時系列的に対象連続値の開始点の直前のデータ点の値との差分が差分閾値13以下である場合に対象連続値をノイズではないと判定する。なお、ノイズ判定部11は、対象連続値の値と、時系列的に対象連続値の開始点の直前のデータ点の値との差分が差分閾値13よりも大きい場合に対象連続値をノイズではないと判定する。
【0015】
図3は、ノイズ判定部11の処理の具体例を説明する図である。
図3において、指定期間12は3であり、差分閾値13は0.5である。
図3において、元データと保存データとが示されている。元データは、時系列データ5が示す各データ点である。保存データは、時系列データ5が示すデータ点のうち、圧縮済データ14において保存される各データ点であり、差分符号化に基づいて定められる各データ点である。
データD1の継続期間は0である、即ち指定期間12未満である。また、データD1の値と連続値S1の値との差分は0.5である、即ち差分閾値13以下である。ここで、連続値S1の値は時系列的にデータD1の直前のデータ点の値である。データD1は連続値でもある。そのため、ノイズ判定部11は、データD1をノイズと判定し、符号化済データ10からデータD1を削除する。なお、
図3に示す例において、時系列データ5及び符号化済データ10において時刻t1における値は1.5であるが、圧縮済データ14を復元したデータにおいて時刻t1における値は1である。即ち、圧縮済データ14においてデータD1は実質的にデータD1’として扱われる。
ここで、連続値S1及び連続値S2の各々の継続期間は2である。しかしながら、データD1がデータD1’として扱われるため、連続値S1とデータD1’と連続値S2とが一体的に連続値S1’として扱われる。連続値S1’の継続期間は6である、即ち指定期間12以上であるため、ノイズ判定部11は連続値S1’をノイズと判定しない。なお、ノイズ判定部11は連続値S1及び連続値S2全体を連続的なデータ点とみなしてもよい。
連続値S3の継続期間は3である、即ち指定期間12以上である。そのため、ノイズ判定部11は連続値S3をノイズと判定しない。
連続値S4の継続期間は2である。しかしながら、連続値S4の値と連続値S3の値との差分は差分閾値13よりも大きい。そのため、ノイズ判定部11は連続値S4をノイズと判定しない。同様に、ノイズ判定部11は連続値S5及び連続値S6の各々をノイズと判定しない。
【0016】
データベース15は、生成された圧縮済データ14を保管するデータベースである。
【0017】
データ復元装置200は復元部17を備える。
復元部17は、データベース15から圧縮済データ14を取得し、取得した圧縮済データ14を復元データ18として時系列データに復元する。この際、復元部17は圧縮済データ14を符号化したアルゴリズムに対応する復号アルゴリズムを用いる。
【0018】
図4を用いて時系列データ5が空気調和機の室温データ系列である場合における指定期間12及び差分閾値13の算出例を説明する。ここで、指定期間12及び差分閾値13の各々はドメイン知識に基づいて算出される。なお、
図4に示す例において、空気調和機の性能及び空気調和機が設置されている部屋の性質等から想定される正常状態ではない状態を検出することを目的としている。
【0019】
空気調和機が稼働すると、室温は過渡状態を経て定常状態となる。過渡状態は、設定温度に向けて室温が上がっている状態又は下がっている状態である。定常状態は、室温が設定温度において静止している状態である。
その後、
図4の(a)に示すように、定常状態となることにより空気調和が停止した後、z分かけて室温が徐々に下降又は上昇した結果、設定温度と室温とが閾値以上離れた場合に、空気調和機は再び過渡状態に移行する。ここで、時刻x
i+zと時刻x
iとの差分はz分である。また、指定期間12を10分とする。当該閾値をαとすると、室温が自然に、即ち何らかの環境要因がなく降下又は上昇する変動幅を「|(設定温度)-(室温)|<α」と定義することができる。
空気調和機の能力に基づいてαを指定期間12以内に室温を設定温度に戻すことができる室温とすると、「α≦(差分閾値13)」となる。
室温の値が指定期間12内に差分閾値13を超えて変化した場合、換気又は人の出入り等の何らかの環境要因が発生したものとみなされ、変化した室温の値が保存されるように圧縮済データ14が生成される。
【0020】
なお、差分閾値13の設定に当たり、空気調和機の能力(具体例として、冷房2.8kW、暖房3.6kW)と、空気調和機が設置されている部屋のサイズとから、「x分かけて空気調和機が室温をy度上げる又は下げる」ということが分かればよい。ここで、室温の変化yを空気調和機の性能fと時間xの関数y=f(x)により定義することができる場合、
図4の(b)に示すように単位時間あたりの最大変動幅を特定することができる。
図4の(b)において、(x
i+1-x
i)は単位時間に対応し、「|f(x
i)-f(x
i+1)|」は単位時間における空気調和機の性能のみで想定される室温の最大変動幅である。
ここで、温度センサーが計測する室温の粒度が0.5度単位である場合、時刻x
iから時刻x
i+1に対応する差分閾値13は[数1]に示すようになる。具体例として、ある時点における室温の変化が、f(x
1=1)=15.5であり、f(x
2=2)=18.5であった場合に、ドメイン知識に基づく差分閾値13は[数2]に示すようになる。
【0021】
【0022】
空気調和機以外のユースケースとして、
図5に示すように工場等に設置されている工作機の工具摩耗を検知するための振動センサーのデータが挙げられる。
ここで、振動波形自体は周期的に変化するために、
図5の左側に示すように連続値を含まない。しかしながら、フーリエ変換等により振動波形を変換すると、
図5の右側に示すようにある種の連続値を多く含むデータが現れることがある。このようなデータから指定期間12及び差分閾値13に基づいて微弱ノイズを削除して圧縮することにより、データ量を削減することができる。また、圧縮済データ14において正常波形及び異常波形の各々を示す情報が保持される。
【0023】
図6は、本実施の形態に係るデータ圧縮装置100のハードウェア構成例を示している。データ圧縮装置100はコンピュータから成る。データ圧縮装置100は複数のコンピュータから成ってもよい。
【0024】
データ圧縮装置100は、本図に示すように、プロセッサ51と、メモリ52と、補助記憶装置53と、入出力IF(Interface)54と、通信装置55等のハードウェアを備えるコンピュータである。これらのハードウェアは、信号線59を介して適宜接続されている。
【0025】
プロセッサ51は、演算処理を行うIC(Integrated Circuit)であり、かつ、コンピュータが備えるハードウェアを制御する。プロセッサ51は、具体例として、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、又はGPU(Graphics Processing Unit)である。
データ圧縮装置100は、プロセッサ51を代替する複数のプロセッサを備えてもよい。複数のプロセッサはプロセッサ51の役割を分担する。
【0026】
メモリ52は、典型的には揮発性の記憶装置であり、具体例としてRAM(Random Access Memory)である。メモリ52は、主記憶装置又はメインメモリとも呼ばれる。メモリ52に記憶されたデータは、必要に応じて補助記憶装置53に保存される。
【0027】
補助記憶装置53は、典型的には不揮発性の記憶装置であり、具体例として、ROM(Read Only Memory)、HDD(Hard Disk Drive)、又はフラッシュメモリである。補助記憶装置53に記憶されたデータは、必要に応じてメモリ52にロードされる。
メモリ52及び補助記憶装置53は一体的に構成されていてもよい。
【0028】
入出力IF54は、入力装置及び出力装置が接続されるポートである。入出力IF54は、具体例として、USB(Universal Serial Bus)端子である。入力装置は、具体例として、キーボード及びマウスである。出力装置は、具体例として、ディスプレイである。
【0029】
通信装置55は、レシーバ及びトランスミッタである。通信装置55は、具体例として、通信チップ又はNIC(Network Interface Card)である。
【0030】
データ圧縮装置100の各部は、他の装置等と通信する際に、入出力IF54及び通信装置55を適宜用いてもよい。
【0031】
補助記憶装置53はデータ圧縮プログラムを記憶している。データ圧縮プログラムは、データ圧縮装置100が備える各部の機能をコンピュータに実現させるプログラムである。データ圧縮プログラムは、メモリ52にロードされて、プロセッサ51によって実行される。データ圧縮装置100が備える各部の機能は、ソフトウェアにより実現される。
【0032】
データ圧縮プログラムを実行する際に用いられるデータと、データ圧縮プログラムを実行することによって得られるデータ等は、記憶装置に適宜記憶される。データ圧縮装置100の各部は記憶装置を適宜利用する。記憶装置は、具体例として、メモリ52と、補助記憶装置53と、プロセッサ51内のレジスタと、プロセッサ51内のキャッシュメモリとの少なくとも1つから成る。なお、データという用語と情報という用語とは同等の意味を有することもある。記憶装置は、コンピュータと独立したものであってもよい。
メモリ52及び補助記憶装置53の機能は、他の記憶装置によって実現されてもよい。
【0033】
データ圧縮プログラムは、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。データ圧縮プログラムは、プログラムプロダクトとして提供されてもよい。
【0034】
***動作の説明***
データ圧縮システム90の動作手順はデータ圧縮方法に相当する。また、データ圧縮システム90の動作を実現するプログラムはデータ圧縮プログラムに相当する。
【0035】
図7は、データ圧縮装置100の処理の一例を示すフローチャートである。
図7を用いてデータ圧縮装置100の処理を説明する。
【0036】
(ステップS101)
データ受信部7は、時系列データ5を受信し、受信した時系列データ5を符号化部9に送る。
【0037】
(ステップS102)
符号化部9は、データ受信部7から時系列データ5を受け取り、受け取った時系列データ5を符号化することにより符号化済データ10を生成し、生成した符号化済データ10をノイズ判定部11に送る。
【0038】
(ステップS103)
ノイズ判定部11に指定期間12が入力される。
【0039】
(ステップS104)
ノイズ判定部11に差分閾値13が入力される。
【0040】
(ステップS105)
ノイズ判定部11は、符号化済データ10を受け取り、受け取った符号化済データ10と、入力された指定期間12と差分閾値13とを用いて圧縮済データ14を生成する。この際、ノイズ判定部11は、継続期間が指定期間12よりも短い連続値を検出し、検出した連続値のうち、連続値の値と、時系列的に連続値の開始点の直前のデータ点の値との差分が差分閾値13以下である各連続値を符号化済データ10から削除する。
【0041】
(ステップS106)
ノイズ判定部11は、生成した圧縮済データ14を出力する。
【0042】
図8及び
図9は、ノイズ判定部11の処理の一例を示すフローチャートである。
図8及び
図9を用いてノイズ判定部11の処理を説明する。
【0043】
(ステップS121)
ノイズ判定部11に符号化済データ10が入力される。
【0044】
(ステップS122)
ノイズ判定部11に指定期間12が入力される。
【0045】
(ステップS123)
ノイズ判定部11に差分閾値13が入力される。
【0046】
(ステップS124)
ノイズ判定部11は、定数Pを指定期間12が示す値とし、定数Dを差分閾値13が示す値とし、符号化済データ10を(X,Y)とする。ここで、X[k](1≦k≦n)は時系列データ5の時系列的にk番目の時刻を示し、Y[k]は時系列データ5の時系列的にk番目の時刻における値を示す。nは時系列データ5の添字の最大値である。E[k](0≦E[k]≦n)は符号化済データ10の時系列的にk番目のデータ点に対応するXの添字を示す。
【0047】
(ステップS125)
ノイズ判定部11は、変数iに1を代入し、E’を空集合とする。E’には符号化済データ10のうちノイズと判定されたEが順次格納される。
【0048】
(ステップS126)
i<nが満たされている場合、ノイズ判定部11はステップS127に進む。それ以外の場合、ノイズ判定部11はステップS131に進む。
【0049】
(ステップS127)
X[E[i+1]-1]-X[E[i]]<Pが満たされている場合、ノイズ判定部11はステップS128に進む。それ以外の場合、ノイズ判定部11はステップS130に進む。
【0050】
(ステップS128)
|Y[E[i+1]-1]-Y[E[i]]|≦Dが満たされている場合、ノイズ判定部11はステップS129に進む。それ以外の場合、ノイズ判定部11はステップS130に進む。
【0051】
(ステップS129)
ノイズ判定部11は、E’にE[i]を追加する。
【0052】
(ステップS130)
ノイズ判定部11は、変数iの値を1増やす。
【0053】
(ステップS131)
ノイズ判定部11は、E’’をEとE’との差集合とする。ここで、A\Bは集合Aから集合Bを引いた差集合を示す。
【0054】
(ステップS132)
ノイズ判定部11は、圧縮済データ14を(X[E’’],Y[E’’])とする。
【0055】
(ステップS133)
ノイズ判定部11は、生成した圧縮済データ14を出力する。
【0056】
***実施の形態1の効果の説明***
以上のように、本実施の形態によれば、時系列データが連続値を多く含む場合に、特許文献1に示すように所定時間が経過した時点における各データ点を保存しないため、時系列データをより圧縮することができる。
また、本実施の形態によれば、差分閾値13以下の変動があった場合であっても変動直後の連続値が指定期間12以上続く場合に、圧縮済データ14において当該連続値を示す情報が保持される。そのため、機械学習における重要な変化点が破棄されない。ここで、機械学習では、変動が大きい値、即ち分散が大きい値ほど予測に大きな影響を及ぼすことが多い。本実施の形態は、変動の大きい点を積極的に残し、機械学習モデルの精度に対する影響がない又は小さいノイズだけを削除する。そのため、本実施の形態によれば、精度を維持しつつ、データ量が少なくなり、データの保管コストを低減することができる。
圧縮済データ14の復元において、具体例として通常の差分符号化の復元アルゴリズムが使用される。そのため、本実施の形態では特別なデータ復元装置を用意する必要がない。なお、指定期間12及び差分閾値13の設定値はデータの復元に影響しないので、指定期間12及び差分閾値13をメタデータとして残さなくてもよい。
さらに、圧縮済データ14を生成する処理には機械学習における前処理と同等の効果があることもある。そのため、機械学習モデル(学習アルゴリズム)によっては、精度向上が期待される。
【0057】
***他の構成***
<変形例1>
図10は、本変形例に係るデータ圧縮装置100のハードウェア構成例を示している。
データ圧縮装置100は、プロセッサ51、プロセッサ51とメモリ52、プロセッサ51と補助記憶装置53、あるいはプロセッサ51とメモリ52と補助記憶装置53とに代えて、処理回路58を備える。
処理回路58は、データ圧縮装置100が備える各部の少なくとも一部を実現するハードウェアである。
処理回路58は、専用のハードウェアであってもよく、また、メモリ52に格納されるプログラムを実行するプロセッサであってもよい。
【0058】
処理回路58が専用のハードウェアである場合、処理回路58は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
データ圧縮装置100は、処理回路58を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路58の役割を分担する。
【0059】
データ圧縮装置100において、一部の機能が専用のハードウェアによって実現されて、残りの機能がソフトウェア又はファームウェアによって実現されてもよい。
【0060】
処理回路58は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
プロセッサ51とメモリ52と補助記憶装置53と処理回路58とを、総称して「プロセッシングサーキットリー」という。つまり、データ圧縮装置100の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
他の実施の形態に係るデータ圧縮装置100についても、本変形例と同様の構成であってもよい。
【0061】
実施の形態2.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
【0062】
***構成の説明***
図11は、本実施の形態に係るデータ圧縮システム90の構成例を示している。
本実施の形態に係るデータ圧縮装置100は、統計量選択部30と、指定期間算出部32と、差分閾値算出部34とをさらに備える。なお、データ圧縮装置100はエッジシステム19により実現されてもよい。
【0063】
図12は、統計量選択部30の構成例を示している。統計量選択部30は、統計量リスト301の中から、統計量31と、統計量33とを適宜選択する。
統計量31は、指定期間12を算出する際に使用される統計量である。
統計量33は、差分閾値13を算出する際に使用される統計量である。
なお、統計量31と統計量33とが互いに異なる統計量であってもよい。
統計量リスト301は、各統計量を示すリストである。統計量リスト301は、具体例として「相加平均」と「中央値」と「最頻値」と「トリム平均」と「加重平均」との各々を示すデータから成る。
【0064】
指定期間算出部32は、各時系列データ5に含まれている各連続値の継続期間に基づいて指定期間12を算出する。具体的には、指定期間算出部32は、統計量31と、過去時系列データ35と、時系列データ5とを入力として指定期間12を算出する。過去時系列データ35は、過去に生成された圧縮済データ14を復元したデータである。過去時系列データ35は、過去に取得された時系列データ5であってもよい。
具体例として、相加平均により指定期間12を決定する場合、指定期間算出部32は[数3]により指定期間12を算出する。
図13に示す時系列データ5が入力である場合、指定期間算出部32は[数4]に示すように指定期間12を算出する。
【0065】
【0066】
差分閾値算出部34は、各時系列データ5に含まれている各連続値の値と、時系列的に各連続値の開始点の直前のデータ点の値との差分に基づいて差分閾値13を算出する。具体的には、差分閾値算出部34は、統計量33と、過去時系列データ35と、時系列データ5とを入力として差分閾値13を算出する。
具体例として、相加平均により差分閾値13を決定する場合、差分閾値算出部34は[数5]により差分閾値13を算出する。
図13に示す時系列データ5が入力である場合、指定期間算出部32は[数6]に示すように差分閾値13を算出する。
【0067】
【0068】
***動作の説明***
図14は、データ圧縮システム90の処理の一例を示すフローチャートである。
図14を用いてデータ圧縮システム90の処理を説明する。
【0069】
(ステップS201)
統計量選択部30は、統計量31及び統計量33を選択する。
【0070】
(ステップS202)
指定期間算出部32及び差分閾値算出部34の各々に、時系列データ5及び過去時系列データ35が入力される。
【0071】
(ステップS203)
指定期間算出部32は指定期間12を算出する。
【0072】
(ステップS204)
差分閾値算出部34は差分閾値13を算出する。
【0073】
図15は、統計量選択部30の処理の一例を示すフローチャートである。
図15を用いて統計量選択部30の処理を説明する。
【0074】
(ステップS221)
統計量選択部30に統計量リスト301が入力される。
【0075】
(ステップS222)
統計量選択部30は、統計量31として、統計量リスト301が示す統計量の中から指定期間12を算出する際に使用される統計量を選択する。
【0076】
(ステップS223)
統計量選択部30は、選択した統計量31を指定期間算出部32に出力する。
【0077】
(ステップS224)
統計量選択部30は、統計量33として、統計量リスト301が示す統計量の中から差分閾値13を算出する際に使用される統計量を選択する。
【0078】
(ステップS225)
統計量選択部30は、選択した統計量33を差分閾値算出部34に出力する。
【0079】
図16は、指定期間算出部32の処理の一例を示すフローチャートである。
図16を用いて指定期間算出部32の処理を説明する。
【0080】
(ステップS241)
指定期間算出部32に統計量31が入力される。
【0081】
(ステップS242)
指定期間算出部32に時系列データ5が入力される。
【0082】
(ステップS243)
指定期間算出部32に過去時系列データ35が入力される。
【0083】
(ステップS244)
指定期間算出部32は、変数Seqに時系列データ5を代入する。
【0084】
(ステップS245)
過去時系列データ35が存在する場合、指定期間算出部32はステップS246に進む。それ以外の場合、指定期間算出部32はステップS247に進む。
【0085】
(ステップS246)
指定期間算出部32は、変数Seqに過去時系列データ35を追加する。
【0086】
(ステップS247)
指定期間算出部32は、変数Seqが示す時系列データからn個の連続値をperiod[i](1≦i≦n)として抽出する。
【0087】
(ステップS248)
指定期間算出部32は、入力された統計量31に応じて指定期間12を算出する。
【0088】
(ステップS249)
指定期間算出部32は、算出した指定期間12をノイズ判定部11に出力する。
【0089】
図17は、差分閾値算出部34の処理の一例を示すフローチャートである。
図17を用いて差分閾値算出部34の処理を説明する。
【0090】
(ステップS261)
差分閾値算出部34に統計量33が入力される。
【0091】
(ステップS262)
差分閾値算出部34に時系列データ5が入力される。
【0092】
(ステップS263)
差分閾値算出部34に過去時系列データ35が入力される。
【0093】
(ステップS264)
差分閾値算出部34は、変数Seqに時系列データ5を代入する。
【0094】
(ステップS265)
過去時系列データ35が存在する場合、差分閾値算出部34はステップS266に進む。それ以外の場合、差分閾値算出部34はステップS267に進む。
【0095】
(ステップS266)
差分閾値算出部34は、変数Seqに過去時系列データ35を追加する。
【0096】
(ステップS267)
差分閾値算出部34は、変数Seqが示す時系列データからm個のデータの差分をdiff[i](1≦i≦m)として抽出する。
【0097】
(ステップS268)
差分閾値算出部34は、入力された統計量33に応じて差分閾値13を算出する。
【0098】
(ステップS269)
差分閾値算出部34は、算出した差分閾値13をノイズ判定部11に出力する。
【0099】
***実施の形態2の効果の説明***
以上のように、本実施の形態によれば、時系列データと選択された統計量とに基づいて指定期間12及び差分閾値13を算出する。そのため、データ系列ごとに指定期間12及び差分閾値13の各々を判断する必要がない、即ちドメイン知識が不要である。
また、本実施の形態によれば、ユーザパラメータが減るので使いやすさが向上する。
【0100】
実施の形態3.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
【0101】
***構成の説明***
図18は、本実施の形態に係るデータ圧縮システム90の構成例を示している。
データ圧縮装置100は、実施の形態2に係るデータ圧縮装置100と比較してパラメータ判定部40をさらに備える。なお、実施の形態1に係るデータ圧縮装置100がパラメータ判定部40をさらに備えてもよい。
【0102】
図19は、パラメータ判定部40の構成例を示している。パラメータ判定部40は、モデル生成部401と、推論部404と、精度判定部407とを備える。
パラメータ判定部40は、時系列データ5を用いて学習した機械学習モデルの精度に対する、圧縮済データ14を復元したデータを用いて学習した機械学習モデルの精度に基づいて、算出された指定期間12と、算出された差分閾値13との各々を採用するか否かを判定する。
【0103】
モデル生成部401は、時系列データ5を用いて比較モデル402を生成し、復元データ41を用いて判定対象モデル403を生成する。復元データ41は、復元部17が圧縮済データ14を復元したデータであり、判定対象の時系列データである。比較モデル402及び判定対象モデル403の各々は機械学習モデルである。
モデル生成部401は、比較モデル402を生成する際に過去時系列データ35を用いてもよい。過去時系列データ35は、復元部17がデータベース15から過去の圧縮済データ14を取り出し、取り出した圧縮済データ14を復元することによって生成された時系列データである。
【0104】
推論部404は、比較モデル402を用いて推論を実行することにより推論結果405を算出し、判定対象モデル403を用いて推論を実行することにより推論結果406を算出する。推論結果405及び推論結果406の各々は予測値である。推論結果406は判定対象に当たる。
【0105】
精度判定部407は、推論結果405と推論結果406とを用いて推論誤差を測定することにより、圧縮済データ14に対応する機械学習モデルの精度を許容することができるか否かを判定する。
【0106】
図20は、本実施の形態に係る統計量選択部30の構成例を示している。統計量選択部30は、使用済テーブル302をさらに備える。
使用済テーブル302は、パラメータ判定部40によって判定された各統計量を保持するテーブルデータであり、使用済みである各統計量を管理するテーブルデータである。使用済テーブル302は、
図20に示すように、指定期間12に対応する統計量と、差分閾値13に対応する統計量との組を保持してもよい。使用済テーブル302として、指定期間12に対応する使用済テーブルと、差分閾値13に対応する使用済テーブルとが存在してもよい。
統計量選択部30は、使用済テーブル302に含まれていない統計量を統計量リスト301から選択する。統計量選択部30は、使用済テーブル302に統計量の組が保持されている場合において、使用済テーブル302に含まれていない統計量の組合せを選択してもよい。
統計量選択部30は、使用した各統計量を使用済テーブル302に記録する。
【0107】
図21は、本実施の形態に係るデータ圧縮システム90の処理のイメージを示している。
パラメータ判定部40は、生データと、圧縮済データ14を復元した時系列データとのそれぞれを用いて機械学習モデルを作成し、作成した2つの機械学習モデルの推論精度の差に基づいて、圧縮済データ14を生成する際に用いられた指定期間12及び差分閾値13の採否を判定する。パラメータ判定部40が指定期間12及び差分閾値13を不採用とする場合、統計量選択部30は指定期間12及び差分閾値13の算出において用いられる統計量を再選択する。パラメータ判定部40は、指定期間12及び差分閾値13の一方のみについての採否の判定を実行してもよく、指定期間12及び差分閾値13の採否の判定を同時に実行してもよく順に実行してもよい。
なお、復元データ41に対応する機械学習モデルと比較する機械学習モデルは、これまでに収集したデータを用いて学習した機械学習モデルであってもよい。パラメータ判定部40は、生データに対応する機械学習モデルの精度に対する誤差が最も小さくなる指定期間12及び差分閾値13の組合せを採用してもよい。
【0108】
***動作の説明***
図22及び
図23は、データ圧縮システム90の処理の一例を示すフローチャートである。
図22及び
図23を用いてデータ圧縮システム90の処理を説明する。
【0109】
(ステップS301)
復元部17は、ノイズ判定部11によって生成された圧縮済データ14を復元することにより復元データ41を生成する。
【0110】
(ステップS302)
パラメータ判定部40に時系列データ5が入力される。
【0111】
(ステップS303)
復元部17は、データベース15から過去に生成された各圧縮済データ14を取り出し、取り出した各圧縮済データ14を過去時系列データ35として復元する。
【0112】
(ステップS304)
パラメータ判定部40は、復元データ41に対応する機械学習モデルの精度を測定し、測定結果に基づいて現在の指定期間12及び差分閾値13を採用するか否かを判定する。
【0113】
(ステップS305)
現在の指定期間12及び差分閾値13を採用する場合、データ圧縮システム90はステップS106に進む。これらを採用しない場合、データ圧縮システム90は本フローチャートの処理を繰り返し実行する。
【0114】
図24は、統計量選択部30の処理の一例を示すフローチャートである。
図24を用いて統計量選択部30の処理を説明する。
【0115】
(ステップS321)
統計量選択部30に使用済テーブル302が入力される。
【0116】
(ステップS322)
使用済テーブル302に選択した統計量31及び統計量33が存在する場合、統計量選択部30は各統計量を選択する処理に戻る。それ以外の場合、統計量選択部30はステップS323に進む。
【0117】
(ステップS323)
統計量選択部30は、選択した統計量31及び統計量33を使用済テーブル302に記録する。
【0118】
図25及び
図26は、パラメータ判定部40の処理の一例を示すフローチャートである。
図25及び
図26を用いてパラメータ判定部40の処理を説明する。
【0119】
(ステップS341)
パラメータ判定部40に時系列データ5が入力される。
【0120】
(ステップS342)
パラメータ判定部40に過去時系列データ35が入力される。
【0121】
(ステップS343)
パラメータ判定部40に判定対象である復元データ41が入力される。
【0122】
(ステップS344)
モデル生成部401は、変数BaseSeqに時系列データ5を代入する。
【0123】
(ステップS345)
過去時系列データ35が存在する場合、モデル生成部401はステップS346に進む。それ以外の場合、モデル生成部401はステップS346をスキップする。
【0124】
(ステップS346)
モデル生成部401は、変数BaseSeqに過去時系列データ35を追加する。
【0125】
(ステップS347)
モデル生成部401は、変数BaseSeqが示すデータを学習データ(TrainData)と評価データ(TestData)とに分割する。
【0126】
(ステップS348)
モデル生成部401は、TrainDataを入力として機械学習を実行することにより比較モデル402を生成する。
【0127】
(ステップS349)
推論部404は、モデル生成部401によって生成された比較モデル402に対してTestDataを入力して推論を実行することにより、推論結果405を生成する。
【0128】
(ステップS350)
モデル生成部401は、復元データ41が示すデータを学習データ(TrainData)と評価データ(TestData)とに分割する。
【0129】
(ステップS351)
モデル生成部401は、TrainDataを入力として機械学習を実行することにより判定対象モデル403を生成する。
【0130】
(ステップS352)
推論部404は、モデル生成部401によって生成された判定対象モデル403に対してTestDataを入力して推論を実行することにより、推論結果406を生成する。
【0131】
(ステップS353)
精度判定部407は、推論結果405に対する推論結果406の誤差を算出する。誤差の指標は、具体例として、RSME(Root Mean Squared Error)、MSE(Mean Squared Error)、MAE(Mean Absolute Error)、又はMAPE(Mean Absolute Percentage Error)である。
【0132】
(ステップS354)
算出した誤差が所定の閾値以上である場合、精度判定部407はステップS355に進む。それ以外の場合、精度判定部407はステップS356に進む。
【0133】
(ステップS355)
精度判定部407は採否43を不採用とする。
【0134】
(ステップS356)
精度判定部407は採否43を採用とする。
【0135】
(ステップS357)
パラメータ判定部40は採否43を出力する。
【0136】
***実施の形態3の効果の説明***
以上のように、本実施の形態によれば、生データに対応する機械学習モデルに対する、圧縮済データ14に対応する機械学習モデルの誤差に基づいて指定期間12及び差分閾値13の採否を決定する。そのため、本実施の形態によれば、機械学習モデルの推論精度の低下を最小限にとどめるような指定期間12及び差分閾値13を自動的に判断することができる。
【0137】
***他の実施の形態***
前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
また、実施の形態は、実施の形態1から3で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。フローチャート等を用いて説明した手順は適宜変更されてもよい。
【符号の説明】
【0138】
1 クラウドシステム、2 センサー、5 時系列データ、6 ネットワーク、7 データ受信部、9 符号化部、10 符号化済データ、11 ノイズ判定部、12 指定期間、13 差分閾値、14 圧縮済データ、15 データベース、17 復元部、18 復元データ、19 エッジシステム、22 復元方法、30 統計量選択部、301 統計量リスト、302 使用済テーブル、31 統計量、32 指定期間算出部、33 統計量、34 差分閾値算出部、35 過去時系列データ、40 パラメータ判定部、401 モデル生成部、402 比較モデル、403 判定対象モデル、404 推論部、405,406 推論結果、407 精度判定部、41 復元データ、43 採否、51 プロセッサ、52 メモリ、53 補助記憶装置、54 入出力IF、55 通信装置、58 処理回路、59 信号線、90 データ圧縮システム、100 データ圧縮装置、200 データ復元装置。
【要約】
時系列的に連続的な1つ以上の同一値を示すデータ点から成る連続値を複数含む離散的な時系列データを圧縮するデータ圧縮装置(100)はノイズ判定部(11)を備える。時系列データに含まれている各連続値を対象連続値としたとき、ノイズ判定部(11)は、対象連続値の継続期間が指定期間未満であり、かつ、対象連続値の値と、時系列的に対象連続値の開始点の直前のデータ点の値との差分が差分閾値以下である場合に対象連続値をノイズであると判定し、対象連続値の継続期間が指定期間以上であり、かつ、対象連続値の値と、時系列的に対象連続値の開始点の直前のデータ点の値との差分が差分閾値以下である場合に対象連続値をノイズではないと判定し、ノイズであると判定した各連続値を示さないデータであって、ノイズではないと判定した各連続値を示すデータであって、時系列データを圧縮したデータである圧縮済データを生成する。