【文献】
田添 康平ほか,敵対的生成ネットワークを用いた機械音の生成,第35回 知識・技術・技能の伝承支援研究会(SIG−KST),人工知能学会,2018年11月22日,pp.1-6
【文献】
倉片 謙太郎ほか,センサプログラミングにおける機械学習支援システム,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2016年 3月17日,第115巻/第519号,pp.223-228
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下に、本発明を実施するための形態(実施形態)における学習データ生成装置について説明する。本実施形態に係る学習データ生成装置は、時系列の数値データのグラフ化、利用者の指示によるグラフの編集、敵対的生成ネットワーク(GAN(Generative Adversarial Networks))による類似したグラフ画像の生成、および生成されたグラフ画像の数値データ化の処理を実行して、数値データのデータ拡張を行う。グラフの編集として、縦軸(データの数値)方向の拡大縮小、横軸(時間)方向の拡大縮小、ある時刻付近での数値の増減、ある時刻付近での時間の延長短縮などがあり、これらを組み合わせて編集することも可能である。
【0012】
≪学習データ生成装置の全体構成≫
図1は、本実施形態に係る学習データ生成装置100の全体構成図である。学習データ生成装置100は、制御部110、記憶部120および入出力部150を備えるコンピュータである。入出力部150は、ディスプレイ、キーボード、マウス、通信デバイスなどから構成される。記憶部120は、ROM(Read Only Memory)、RAM(Random Access Memory)、SSD(Solid State Drive)などから構成され、後記する
図2に示す数値データリポジトリ130、グラフ生成ネットワーク121、学習データ生成の処理を実行するためのプログラム、プログラム実行に必要な一時的データなどを記憶する。
【0013】
グラフ生成ネットワーク121は、後記するグラフ生成部113の構成要素であって、敵対的生成ネットワークの生成器のニューラルネットワークである。敵対的生成ネットワークとは、教師なし機械学習の一種であって、生成器と判別器とから構成される。生成器は偽データを生成し、判別器は偽データと学習データである本物のデータとを判別する。生成器と判別器とがゼロサムゲームを行うことで、生成器は本物のデータである学習データに類似する新たなデータを生成できるようになる。
【0014】
≪数値データリポジトリのデータ構成≫
図2は、本実施形態に係る数値データリポジトリ130のデータ構成図である。数値データリポジトリ130は、例えば表形式のデータであって、1つの行(レコード)は、1つの数値データを示す。数値データリポジトリ130のレコードは、データ識別情報(
図2ではデータID(Identifier)と記載)131、取得日時132、種別133、ソース134、およびデータ135の列(属性)を含む。
【0015】
データ識別情報131は、レコードが示す数値データの識別情報である。取得日時132は、数値データが取得された、編集された、または生成された日付および時刻である。
種別133は、数値データの種別であって、例えば、実データ、編集データ、生成データがある。実データは、現実世界で取得されたデータであって、例えば製造現場に設置してあるセンサから取得したデータである。編集データは、後記するグラフ編集部111が生成したデータであって、実データまたは編集データが編集加工されて作成されたデータである。生成データは、後記する数値データ生成部114が生成したデータである。
【0016】
種別133が実データである場合にソース134は、数値データのソースの識別情報であり、例えば数値データを取得したセンサの識別情報である。種別133が編集データである場合にソース134は、編集前のデータ識別情報131である。種別133が生成データである場合にソース134は、「N/A」である(
図2の3番目のレコードを参照)。
【0017】
データ135は、数値データそのものであって、例えば後記する
図3に示すような時系列のデータである。
図3は、本実施形態に係る数値データ140の例を示す図である。数値データ140は、10分おきに取得された温度であって、時刻141と温度142からなる時系列データである。なお、数値データは、時刻が含まれているとは限らず、順々に取得された数値の列であってもよい。
【0018】
≪制御部(機能部)の構成≫
図1に戻って、制御部110は、CPU(Central Processing Unit)から構成され、グラフ編集部111、モデル生成部112、グラフ生成部113、および数値データ生成部114を含む。
グラフ編集部111は、利用者の指示に従って数値データを編集加工する。詳しくは、グラフ編集部111は、数値データをグラフ化して利用者に提示し、利用者の指示に従ってグラフを編集加工して、編集データとして数値データリポジトリ130に格納する。
【0019】
モデル生成部112は、数値データリポジトリ130にある実データおよび編集データのデータ135をグラフ化した画像データを学習データとして、生成器としてのグラフ生成ネットワーク121を含む敵対的生成ネットワークを生成する。
グラフ生成部113は、グラフ生成ネットワーク121を用いて、実データや編集データのグラフに類似するグラフを生成する。
【0020】
数値データ生成部114は、グラフ生成部113が生成したグラフやグラフ編集部111が編集加工したグラフを数値データに変換して数値データリポジトリ130に格納する。なお、グラフと数値データは相互に変換可能であり、特に区別する必要がない場合には、両者を同一視する。例えば、数値データリポジトリ130には、数値データが格納されるが、「グラフが格納される」と記す場合もある。
【0021】
図4は、本実施形態に係るグラフ編集部111、モデル生成部112、グラフ生成部113、および数値データ生成部114の動作を説明するための図である。
グラフ編集部111の入力データは、数値データ140である。グラフ編集部111は、数値データ140をグラフ310に加工して、利用者に提示し、利用者の指示によりグラフを編集加工して、編集データ(
図2参照)として1つ以上のグラフ320を出力して、数値データリポジトリ130に格納する。
モデル生成部112は、実データ(数値データ140)や編集データを入力として学習し、敵対的生成ネットワークのグラフ生成ネットワーク121を出力する。
【0022】
グラフ生成部113は、グラフ生成ネットワーク121を用いて、実データや編集データのグラフに類似する1つ以上のグラフ330を出力する。
数値データ生成部114は、グラフ330またはグラフ編集部111が生成したグラフ320を数値データ340に変換して数値データリポジトリ130に格納する。数値データ生成部114は、数値データ140をグラフ化したグラフ310を数値データ340に変換してもよい(数値データに戻す)。
【0023】
≪学習データ生成処理≫
図5は、本実施形態に係る学習データ生成装置100が実行する学習データ生成処理のフローチャートである。学習データ生成処理の実行以前に、実データが収集されて数値データリポジトリ130(
図2参照)に記憶されている。例えば、センサが取得したデータが、入出力部150の通信デバイス経由で取得されて、種別133が実データであるレコードとして数値データリポジトリ130に格納されている。
【0024】
ステップS11において、グラフ編集部111が、グラフ編集加工処理として、数値データリポジトリ130に記憶される数値データをグラフ化して入出力部150のディスプレイに表示し、利用者の指示に従ってグラフを編集加工し、結果を編集データとして数値データリポジトリ130に格納する。編集加工の手法については、
図6〜
図13を用いて後記する。
ステップS12において、モデル生成部112が、数値データリポジトリ130に記憶される実データや編集データを入力として学習して、敵対的生成ネットワークを生成し、敵対的生成ネットワークの生成器であるグラフ生成ネットワーク121を生成する。
【0025】
ステップS13において、グラフ生成部113が、グラフ生成ネットワーク121を用いて、実データや編集データのグラフに類似するグラフを生成する。
ステップS14において、数値データ生成部114は、グラフ生成部113が生成したグラフあるいはグラフ編集部111が生成したグラフを数値データに変換して数値データリポジトリ130に格納する。数値データに変換するには、所定の時間タイミングごとにグラフから数値を読みとって、時系列の数値データに変換する。または、グラフの特徴点、例えば折れ線グラフの頂点の時刻と数値を読み取って、数値データに変換する。
【0026】
学習データ生成装置100が生成したデータは、数値データリポジトリ130から取り出され、学習データとして利用される。
以上の説明では、一種類の学習データの生成を説明した。一種類に限らず、複数の種類(学習データのラベル)、例えば正常データと異常データのそれぞれを元データとし、種類ごとに
図5の学習データ生成処理を実行して、種類ごとの数値データを生成して、その種類(ラベル)の学習データとしてもよい。
【0027】
≪グラフ編集加工処理≫
以下、グラフ編集部111がステップS11(
図5参照)において実行するグラフの編集加工処理を説明する。グラフ編集部111は、数値データリポジトリ130に記憶される、利用者が選択した数値データをグラフ化して利用者に提示し、利用者の指示に従って、グラフを編集加工する。利用者が編集加工の終了を指示すると、グラフ編集部111は、編集加工されたグラフを数値データに変換して数値データリポジトリ130に格納する。以下では、グラフの移動処理や時間延長短縮などの処理を説明するが、これらの処理を組み合わせることで、グラフが編集加工される。
【0028】
図6は、本実施形態に係る編集加工処理前の実データを示すグラフ410である。以下では、グラフ410を元データとする編集手法について説明する。なお、編集加工処理の対象は実データに限らず編集データであってもよい。また、グラフ410は温度変化を示したグラフであるが、温度/湿度、加速度、回転数、音、振動、電圧/電流など他の数値データであってもよい。
【0029】
≪グラフ編集加工処理:上下移動≫
図7は、本実施形態に係るグラフ編集加工処理の移動処理を説明するためのグラフ420である。グラフ420の点線のグラフは、移動処理前の元のグラフ410である。移動処理は、グラフ(グラフの折れ線)全体を上下に移動する処理である。グラフ編集部111は、利用者の指示に従って、グラフ全体を上または下に移動する。
図7では、点線の元のグラフを上に移動して、実線のグラフに編集加工している。
【0030】
≪グラフ編集加工処理:時間延長短縮≫
図8〜
図10は、本実施形態に係るグラフ編集加工処理の時間延長短縮処理を説明するためのグラフ430,440,450である。グラフ430,440,450の点線のグラフは、時間延長短縮処理前の元のグラフ410である。時間延長短縮処理は、ある区間で時間を短縮(グラフを左右方向で縮小)または時間を延長(グラフを左右方向で拡大)する処理である。利用者が、時間延長短縮する区間および延長率/短縮率を指示すると、グラフ編集部111は、指示された区間のグラフを左右方向に拡大または縮小する。利用者が、区間と時間延長後または時間短縮後の区間の長さ(区間幅)とを指示して、グラフ編集部111が、指示された区間のグラフを指示された区間の長さに合うように左右方向に拡大または縮小してもよい。
【0031】
グラフ430(
図8参照)では、全体の区間に亘って時間を短縮している。グラフ440(
図9参照)では、時刻T1〜時刻T2の区間に亘って時間を短縮している。また、グラフ450(
図10参照)では、時刻Tを中心に前後の区間(時刻T−Δt1〜時刻T+Δt1)において時間を短縮(グラフを左右方向で縮小)し、さらに外側の区間(時刻T−Δt2〜時刻T−Δt1および時刻T+Δt1〜時刻T+Δt2)において時間を延長(グラフを左右方向で拡大)している。
【0032】
≪グラフ編集加工処理:データ値増減≫
図11は、本実施形態に係るグラフ編集加工処理の時刻におけるデータ値増減処理を説明するためのグラフ460である。
図12は、本実施形態に係るグラフ編集加工処理の区間におけるデータ値増減処理を説明するためのグラフ470である。グラフ460,470の点線のグラフは、データ値増減処理前の元のグラフ410である。データ値増減処理は、ある時刻または区間でのデータ値を増減(加算または減算)する処理である。利用者が、データ値を増減する時刻/区間および増減値を指示すると、グラフ編集部111は、指示された時刻または区間のグラフを上下に移動する。このとき、グラフ編集部111は、グラフが不連続にならないように、指示された時刻または区間の前後のグラフも上下に移動する。
【0033】
グラフ460(
図11参照)では、時刻Tのデータ値増加が指示されて、グラフ編集部111は、グラフが不連続にならないように前後の区間(時刻T−Δt〜時刻T+Δt)で時刻Tまでの時間間隔に応じてグラフを上に移動している。詳しくは、指示されたデータ値の増分がDとして、グラフ編集部111は、時刻TではグラフをD上に移動して、時刻T±(1/4)Δtではグラフを(3/4)D上に移動して、時刻T±(2/4)Δtではグラフを(2/4)D上に移動して、時刻T±(3/4)Δtではグラフを(1/4)D上に移動し、時刻T±Δtではグラフを移動しないようにして、時刻T−Δt〜時刻T+Δtの区間のグラフを上に移動している(データ値を増やしている)。
【0034】
時刻ではなく区間を指定してのデータ値増加においても、区間の外側の区間において値を増減した区間までの時間間隔に応じてグラフを上に移動する。グラフ470(
図12参照)では、区間T1〜T2において増分Dのデータ値増加が指示されて、グラフ編集部111は、時刻T1および時刻T2ではグラフをD上に移動して、時刻T1−(1/4)Δtおよび時刻T2+(1/4)Δtではグラフを(3/4)D上に移動し、時刻T1−(2/4)Δtおよび時刻T2+(2/4)Δtではグラフを(2/4)D上に移動し、時刻T1−(3/4)Δtおよび時刻T2+(3/4)Δtではグラフを(1/4)D上に移動し、時刻T1−Δtおよび時刻T2+Δtではグラフを移動しないようにして、時刻T1−Δt〜時刻T1、および、時刻T2〜T2+Δtの区間のグラフを上に移動している(データ値を増やしている)。
図11〜
図12では、データ値増加処理を説明したが、データ値削減でも同様である。
【0035】
図8では、左右方向のグラフの拡大縮小による時間延長短縮処理を説明した。上下方向に拡大縮小することで区間全体に亘ってデータ値を増減するようにしてもよい。
図13は、本実施形態に係るグラフ編集加工処理の区間全体に亘るデータ値増減処理を説明するためのグラフ480である。グラフ480の点線のグラフは、移動処理前の元のグラフ410である。
【0036】
利用者が、データ値増減する区間および増減率を指示すると、グラフ編集部111は、指示された増減率に従ってグラフを上下方向に拡大または縮小する。グラフ480は、上方向に拡大され、区間全体に亘ってデータ値が増加している。
【0037】
≪グラフ編集加工処理:グラフ表示≫
図7〜
図13で説明したグラフの編集加工処理では、編集加工前後のグラフを表示している。グラフ編集部111は、関連する他のグラフを表示して、利用者が編集加工しやすいようにしてもよい。
【0038】
図14は、本実施形態に係るグラフ編集加工処理において、関連するグラフも含めたグラフ510である。グラフ510では、温度データの変化に関連する電流のデータも含まれている。利用者は、電流のグラフを参照しながら、温度のグラフを編集加工できるようになっている。また、温度と電流の双方のデータを編集加工できるようにしてもよい。
【0039】
図15は、本実施形態に係るグラフ編集加工処理において、関連するグラフも含めたグラフ520である。グラフ510と比較して、グラフ520では、温度データ値と電流データ値に係る散布図が右下にある。利用者は、電流のグラフと散布図を参照しながら、温度のグラフを編集加工できるようになっている。また、温度と電流の双方のデータを編集加工できるようにしてもよい。
【0040】
≪学習データ生成処理の特徴≫
学習データ生成装置100は、時系列数値データをグラフ化し、グラフを画像データと見なして敵対的生成ネットワークの生成器を用いて類似グラフを生成し、時系列数値データに変換することで、時系列数値データの学習データ生成を行っている。数値データをグラフ化して画像データとすることで、敵対的生成ネットワークを用いた学習データ生成が可能となっている。
【0041】
敵対的生成ネットワークへの入力は、実データのグラフに限らず、実データのグラフを編集加工したグラフも含んでいる。これにより、敵対的生成ネットワークの生成に必要な入力データ(学習データ)を増やすことができ、敵対的生成ネットワークの生成器であるグラフ生成ネットワーク121を用いるグラフ生成部113は、より類似度の高いグラフを生成できるようになる。
【0042】
また、少量しか収集できず、偏りのある実データについても、データの特性を理解している利用者が、あり得るデータを想定してデータを編集加工し、偏りの少ないデータにしてから敵対的生成ネットワークへの入力データとすることができる。このため、学習データ生成した結果の数値データは、偏りの少ないデータにすることができる。
【0043】
グラフの編集手法としては、上下方向の移動や拡大縮小(データ値の増減)、左右方向の拡大縮小(時間の延長短縮)、時刻や区間を指定してのデータ値の増減などがある。グラフ編集部111は、利用者の指示に従い、かつグラフの連続性が保てるように、グラフを変形しており、利用者の意図に沿ったグラフの編集加工処理が可能となっている。
【0044】
≪変型例:グラフの編集加工≫
上記した実施形態でのグラフ編集加工処理は、折れ線グラフを対象にしている。折れ線グラフに限定せず、数値データを曲線のグラフにして、同様の編集加工処理を行ってもよい。曲線のグラフは、数値データが示す点を制御点とし、これらの制御点を通る曲線を、例えばスプライン補間を用いて生成するようにしてもよい。他に、ベジェ曲線やB−スプライン曲線などを用いてもよい。
【0045】
また、描画ツールの曲線や折れ線の編集にある手法を用いて、グラフを編集加工するようにしてもよい。例えば、曲線の制御点や折れ線の頂点(折れ線の制御点)を移動したり、追加したり、削減したりするようにして、編集加工してもよい。さらに、グラフとしての整合性を保つためにグラフ編集部111は、整合性を保てない(不整合が生じる)編集の指示を受け付けた場合には、不整合を警告して指示を受け付けないようにしてもよい。グラフとしての整合性としては、グラフが連続している、同じ時刻に複数の値はなく1つの値であるなどがあり、グラフとしての不整合性としては、グラフが不連続である、同じ時刻に複数の値があるなどがある。
【0046】
図11では、時刻Tにおけるデータ値増加の指示を受けて、グラフ編集部111が、T−Δt〜T+Δtの区間の値を上に移動している。利用者による、時刻がT、T±(1/4)Δt、T±(2/4)Δt、およびT±(3/4)Δtの頂点の移動の指示を受け付けて、グラフ編集部111が、移動後の頂点を通るようにグラフを移動(変形)させてもよい。
図16は、本実施形態の変型例に係る、不整合のある頂点の移動を説明するためのグラフ610である。頂点611から頂点612への移動は、複数の値をとる時刻が生じる不整合な移動である。このような、利用者による不整合な移動の指示を受け付けないようにすることで、不整合なグラフが生成されることを防ぐことができる。
【0047】
≪変型例:数値データの加工≫
上記した実施形態では、グラフを編集加工することで、敵対的生成ネットワークへの入力データを増やしている。グラフ化する前の数値データを編集加工するようにしてもよい。例えば、数値データについて、最大値と最小値の差の所定比率より小さい増減値となるように、各数値データをランダムに増減するようにしてもよい。また、時刻について、データの取得間隔の所定比率より小さい増減値となるように、各時刻データをランダムに前後するようにしてもよい。数値データや時刻の増減について、ランダムではなく、正規分布など所定の分布に従うように増減するようにしてもよい。
さらに、これらの編集加工手法を、グラフ編集部111によるグラフ編集加工処理後の数値データに施したり、数値データ生成部114が生成した数値データに施したりしてもよい。
【0048】
≪その他変型例≫
なお、本発明は、上記した実施形態や変型例に限定されることなく、その趣旨を逸脱しない範囲で変更することができる。また、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。例えば、区間におけるデータ値増減処理(
図12参照)において、グラフ編集部111は、利用者に指示された区間T1〜T2の前後の幅Δtの区間のデータ値を増減させている。前と後で区間の幅が異なってもよい。
本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【解決手段】学習データ生成装置100は、数値データのグラフを編集するグラフ編集部111、数値データのグラフと編集済みグラフとを画像化した画像データを学習データとして機械学習技術を用いたグラフ生成モデル(グラフ生成ネットワーク121)を生成するモデル生成部112、生成されたグラフ生成モデルを用いて生成画像データを生成するグラフ生成部113、およびグラフ編集部111が編集した編集画像データあるいはグラフ生成部113で生成した生成画像データから数値データを生成する数値データ生成部114を備える。