(57)【要約】【課題】元の分布と大きく異ならず、訓練データとは異なる疑似データ集合を生成する。【解決手段】データ集合を生成するデータ生成装置であって、訓練データ集合の各元の入力及び前記訓練データ集合に関する情報の少なくとも一方に基づいて、前記元を変形するための摂動集合を生成する摂動生成部と、前記訓練データ集合及び前記摂動集合から、前記訓練データ集合と異なる新たな疑似データ集合を生成する疑似データ合成部と、前記訓練データ集合と前記疑似データ集合との分布間距離又はそれに関する推定量と、前記摂動集合から得られる訓練データに対する疑似データの摂動の大きさとを算出する評価部と、前記訓練データ集合と前記疑似データ集合との分布間距離を近づけ、摂動の大きさ又は期待値が予め定めた目標値となるように、前記摂動生成部が前記摂動集合の生成に使用するパラメータを更新するパラメータ更新部とを備える。【選択図】図２
2020112967.tif 000002
【特許請求の範囲】
【請求項１】
データ集合を生成するデータ生成装置であって、
訓練データ集合の各元の入力及び前記訓練データ集合に関する情報の少なくとも一方に基づいて、前記元を変形するための摂動集合を生成する摂動生成部と、
前記訓練データ集合及び前記摂動集合から、前記訓練データ集合と異なる新たな疑似データ集合を生成する疑似データ合成部と、
前記訓練データ集合と前記疑似データ集合との分布間距離又はそれに関する推定量と、前記摂動集合から得られる訓練データに対する疑似データの摂動の大きさとを算出する評価部と、
前記訓練データ集合と前記疑似データ集合との分布間距離を近づけ、摂動の大きさ又は期待値が予め定めた目標値となるように、前記摂動生成部が前記摂動集合の生成に使用するパラメータを更新するパラメータ更新部とを備えることを特徴とするデータ生成装置。
【請求項２】
請求項１に記載のデータ生成装置であって、
前記摂動生成部は、前記訓練データ集合の各元の入力又は前記訓練データ集合に関する情報に加えて、前記訓練データ集合の各元の出力又はそれに関する情報に基づいて前記摂動集合を生成することを特徴とするデータ生成装置。
【請求項３】
請求項１に記載のデータ生成装置であって、
前記摂動生成部は、前記訓練データ集合の各元の入力又は前記訓練データ集合に関する情報に加えて、前記訓練データ集合の入力に関する確率密度関数の推定量に基づいて前記摂動集合を生成することを特徴とするデータ生成装置。
【請求項４】
請求項１に記載のデータ生成装置であって、
前記摂動生成部は、前記摂動集合の事後分布を表すパラメトリックな分布の母数を生成することによって、前記摂動集合を生成することを特徴とするデータ生成装置。
【請求項５】
請求項１に記載のデータ生成装置であって、
前記摂動生成部が使用するパラメータ値又はその範囲を入力可能なインターフェース画面の表示データを生成することを特徴とするデータ生成装置。
【請求項６】
請求項１に記載のデータ生成装置であって、
前記訓練データ集合の各元と前記疑似データ集合の各元とが表された散布図の表示データを生成することを特徴とするデータ生成装置。
【請求項７】
予測器学習装置であって、
前記訓練データ集合に含まれないデータの入力から出力を予測する予測部と、
前記パラメータ更新部とを備え、
前記予測部は、請求項１から６のいずれか一つに記載のデータ生成装置が生成した疑似データ及び前記訓練データを使用して学習をすることを特徴とする予測器学習装置。
【請求項８】
請求項７に記載の予測器学習装置であって、
前記予測部は、
ニューラルネットワークで構成され、
前記訓練データを入力したときと前記疑似データを入力したときの内部状態の差、又は、前記訓練データから生成した二つの疑似データの内部状態の差、が小さくなることを良しとする目的関数を追加することを特徴とする学習方法。
【請求項９】
計算機がデータ集合を生成するデータ生成方法であって、
前記計算機は、所定の演算処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置とを有し、
前記データ生成方法は、
前記演算装置が、訓練データ集合の各元の入力及び前記訓練データ集合に関する情報の少なくとも一方に基づいて、前記元を変形するための摂動集合を生成する摂動生成手順と、
前記演算装置が、前記訓練データ集合及び前記摂動集合から、前記訓練データ集合と異なる新たな疑似データ集合を生成する疑似データ合成手順と、
前記演算装置が、前記訓練データ集合と前記疑似データ集合との分布間距離又はそれに関する推定量と、前記摂動集合から得られる訓練データに対する疑似データの摂動の大きさとを算出する評価手順と、
前記訓練データ集合と前記疑似データ集合との分布間距離を近づけ、摂動の大きさ又は期待値が予め定めた目標値となるように、前記摂動生成手順において前記摂動集合の生成に使用するパラメータを更新するパラメータ更新手順とを含むことを特徴とするデータ生成方法。
【請求項１０】
請求項９に記載のデータ生成方法であって、
前記摂動生成手順では、前記演算装置が、前記訓練データ集合の各元の入力又は前記訓練データ集合に関する情報に加えて、前記訓練データ集合の各元の出力又はそれに関する情報に基づいて前記摂動集合を生成することを特徴とするデータ生成方法。
【請求項１１】
請求項９に記載のデータ生成方法であって、
前記摂動生成手順では、前記演算装置が、前記摂動集合の事後分布を表すパラメトリックな分布の母数を生成することによって、前記摂動集合を生成することを特徴とするデータ生成方法。
【請求項１２】
請求項９に記載のデータ生成方法であって、
前記演算装置が、前記摂動生成手順で使用されるパラメータ値又はその範囲を入力可能なインターフェース画面の表示データを生成する手順を含むことを特徴とするデータ生成方法。
【請求項１３】
請求項９に記載のデータ生成方法であって、
前記演算装置が、前記訓練データ集合の各元と前記疑似データ集合の各元とが表された散布図の表示データを生成する手順を含むことを特徴とするデータ生成方法。
【請求項１４】
計算機がデータ集合を学習する学習方法であって、
前記計算機は、所定の演算処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置とを有し、
前記演算装置は、請求項９から１３のいずれか一つに記載のデータ生成方法によって生成された疑似データ及び前記訓練データを使用して、前記訓練データ集合に含まれないデータの入力から出力を予測する予測部における学習を実行することを特徴とする学習方法。
【請求項１５】
請求項１４に記載の学習方法であって、
前記訓練データを入力したときと前記疑似データを入力したときの内部状態の差、又は、前記訓練データから生成した二つの疑似データの内部状態の差、が小さくなることを良しとする目的関数を追加することを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習に用いるデータを生成するデータ生成装置に関する。
【背景技術】
【０００２】
昨今、機械学習を応用したシステムやサービスが普及しつつある。例えば、多くの企業は、装置、設備、車両など多種多様な物理的なアセットを運用することによって経済活動を行っている。これらのアセットは電気的又は機械的な理由で不調や故障となることがある。そのため、適宜、予測的又は対処的な処置、すなわち部品や消耗品の交換、ユニットの交換や修繕などによって運用に大きな支障が生じないようすることが重要である。しかし、アセットの複雑化や、熟練した保守員や修理員の不足などから適切な処置が成されない場合がある。そこで、過去の稼働実績や修理履歴などの情報に基づいて適切な処置を推薦することで、保守員や作業員の作業を補い、アセットの安定的な運用を可能とするシステムが検討されている。
【０００３】
前述したような機械学習を応用したシステム・サービスにおいて、予測器は、入力及び出力に関わる訓練データ集合から、その入出力の関係性を学習する教師あり学習又は半教師有り学習と称される枠組みに基づいて構築される。この予測器には、訓練データ集合に含まれないデータに対する高い予測性能（汎化性能）が求められる。そこで、昨今ニューラルネットワークをはじめとする予測器の様々なモデルが提案されている。
【０００４】
一方、別のアプローチとして、訓練データ集合を適切に変形や変換をして得られる疑似データ集合をもとの訓練データ集合と合わせて学習に用いることで汎化性能向上を目指す方法がある。このような疑似データ生成をデータ拡張と称する。例えば、一般的には、画像であれば、訓練データ集合に対して回転、拡大、縮小、移動などの変形によりデータを拡張するとよい。ところが、前述した稼働実績や修理履歴など産業上で取り扱われる多くのデータは、画像のような有効に機能するヒューリスティックなデータ拡張方法が不明な場合も多い。そこで、パラメトリックな分布に従う標本ともとの訓練データ集合とを混合することによってデータを拡張する方法が採用される。例えば、小さな標準偏差の正規分布に従う標本の元をもとのデータの元に加えることでデータ拡張できる。ところが、データ拡張された訓練データ集合の分布がもとの訓練データ集合の分布と大きく異なる場合、性能は低下する場合がある。
【０００５】
本技術分野の背景技術として、以下の先行技術がある。特許文献１（特開２００６−３４３１２４号）には、センサ応答から化学物質濃度を推定する技術として、「化学データの補間誤差を確率変数として捉え、補間誤差の確率密度関数を推定する。補間誤差の推定確率密度関数に従う擬似乱数ベクトルを生成し、補間曲面上のベクトルからランダムに選び出したベクトルに、擬似補間誤差ベクトルを足し合わせて新たなデータベクトルを生成することを多数繰り返すことで、補間曲面・補間誤差の特徴を反映した多数のデータベクトルである擬似データを生成する。擬似データをニューラルネットワークに学習させる。未知の被検試料についてセンサを適用し、センサ応答を測定する。学習済みとなったニューラルネットワークに、センサ応答を入力し、ニューラルネットワークの出力より複数の化学物質の未知濃度を推定する。」技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３４３１２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された技術では、出力データ集合に対する入力データ集合の回帰モデルに対して、誤差に関する分布をカーネル密度推定法で推定し、推定された誤差分布に従う標本の元を推定量に加える操作を行うので、単純に入力データ集合の元に正規分布から得られる集合の元を加える方法に比べ複雑なデータ拡張が達成されるものの、もとの入力データ集合の分布と大きく異なる疑似データ集合が生成されることがある。特に、出力データに対して入力データが１対１となる箇所（単峰的な箇所）と１対多となる箇所（多峰的な箇所）が存在する場合、前述した技術では同一の分布に基づいて変形するため、１対１の箇所では小さな変形を加えるべき箇所で比較的大きな変形がなされ、１対多の箇所では大きな変形を加えるべき箇所で比較的小さな変形がなされ、もとの分布と大きく異なる疑似データ集合となる可能性がある。また、カーネル密度推定法は、訓練データに対して種々のカーネルとカーネルパラメータ（ガウシアンカーネルであればバンド幅）を選択する必要があるなど選択すべき要素が多いという問題がある。
【０００８】
本発明は、上記を鑑みてなされたものであって、もとの分布と大きく異ならず、訓練データとは異なる疑似データ集合を生成する手段を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、データ集合を生成するデータ生成装置であって、訓練データ集合の各元の入力及び前記訓練データ集合に関する情報の少なくとも一方に基づいて、前記元を変形するための摂動集合を生成する摂動生成部と、前記訓練データ集合及び前記摂動集合から、前記訓練データ集合と異なる新たな疑似データ集合を生成する疑似データ合成部と、前記訓練データ集合と前記疑似データ集合との分布間距離又はそれに関する推定量と、前記摂動集合から得られる訓練データに対する疑似データの摂動の大きさとを算出する評価部と、前記訓練データ集合と前記疑似データ集合との分布間距離を近づけ、摂動の大きさ又は期待値が予め定めた目標値となるように、前記摂動生成部が前記摂動集合の生成に使用するパラメータを更新するパラメータ更新部とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明の一態様によれば、分布間距離と摂動の大きさとのバランスが取れた、目標摂動量以上に訓練データの分布と異ならない疑似データを生成できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】本実施例のリコメンドシステムの構成を示す図である。
【図２】本実施例のデータ生成・予測器学習部の操作を示す図である。
【図３】本実施例のリコメンドシステムを構成する計算機のハードウェア構成を示す図である。
【図４】本実施例の実績データの一例を示す図である。
【図５】本実施例の修理作業データの一例を示す図である。
【図６】本実施例の訓練データ集合の一例を示す図である。
【図７】本実施例におけるモデリングフェーズの処理のフローチャートである。
【図８】本実施例におけるモデリングフェーズの学習処理のフローチャートである。
【図９】本実施例におけるリコメンド処理のフローチャートである。
【図１０】本実施例の訓練データ選択画面を示す図である。
【図１１】本実施例の疑似データ確認画面を示す図である。
【発明を実施するための形態】
【００１２】
以下、適宜図面を参照しながら本発明を実施するための代表的な形態を説明する。
【００１３】
＜概略＞
本発明は、データに基づく機械学習装置に関し、特に、与えられたデータに基づいて別の疑似データを生成し、それを活用して高い汎化性能を持つ予測器を学習する装置に関するものである。本実施例では、前述したアセットが不調又は故障となった場合、アセットの稼働実績、修理履歴などの情報に基づいて適切な処置を推薦するリコメンドシステムで用いる予測器の学習に関するデータ生成・予測器学習装置の概略を説明する。
【００１４】
まず、図１を参照してリコメンドシステム全体の処理の流れを説明する。はじめに、稼働実績、修理履歴の収集から予測器学習までの流れ（モデリングフェーズと称する）を説明する。リコメンドシステム１１は、アセット１３から、アセット１３を介してオペレータ１６から、及び修理員端末１４を介して修理員１７から、稼働実績と不具合状況と修理履歴などを収集し、収集した情報を結合した実績データを収集する。ここで、実績データとは、例えばアセット１３の稼働時間、アセット１３に取り付けられたセンサからの情報、オペレータ１６が入力した不具合状況（例えば、異音の発生）、アセット１３に実施された修理作業の情報などである。次に、管理者１５は、管理端末１２を介して、リコメンドシステム１１が収集した実績データのうち、データ生成及び予測器の学習に用いるデータを選択する。リコメンドシステム１１は、その選択に従ってデータを抽出し、抽出したデータを訓練データとしてデータ生成・予測器学習装置１０に送る。データ生成・予測器学習装置１０は受信した訓練データを用いてデータを生成し、学習済みモデルを作成する。そして、データ生成・予測器学習装置１０は、学習したモデル（学習済みモデル）をリコメンドシステムに返す。
【００１５】
次に、修理内容のリコメンドの流れ（リコメンドフェーズと称する）を説明する。リコメンドシステム１１は、アセット１３から、アセット１３を介してオペレータ１６から、及び修理員端末１４を介して修理員１７から、修理作業の情報を除く実績データを収集する。次に、リコメンドシステム１１は、前記の学習済みモデルと、前記修理作業の情報を除く実績データから、推奨される１又は複数の修理作業を算出する。そして、その結果を修理員端末１４を介して修理員１７に提示する。
【００１６】
次に、データ生成・予測器学習装置１０の処理の概略について説明する。データ生成・予測器学習装置１０は、訓練データを受信し、学習済みモデルを作成する。その過程で、高い汎化性能を持った予測器を構築するために、データ生成、データ評価、予測器の三つの構成要素を深層学習（Deep Learning）の一種であるＧＡＮ（GenerativeAdversarial Networks）の枠組みに基づいて学習させる。その際、一般的なＧＡＮでは直接疑似データを生成するが、本実施例では、いったん摂動を生成して、生成された摂動を元の訓練データに加えることによって疑似データを生成する。
【００１７】
この結果、摂動に対する目的関数を追加して学習し、学習済みモデルを作成できる。特に、本実施例では、ミニバッチ学習を前提として、そのミニバッチ内での摂動の総和が一定となるようにデータ生成に関する制約を与える。これによって、疑似データが訓練データに分布間距離の観点で近づくことと、疑似データを訓練データから変形させることのトレードオフができる。この結果、疑似データは正規分布等で摂動させた場合と異なり、例えば少しでも動かすと訓練データとしてはあり得ない変数にならず、また訓練データの元をほとんど変形させず、このためデータ拡張による性能劣化を抑制できる。その際、データ拡張の度合いは前述の定数を変えることによって制御できる。
【００１８】
一方、予測器の素朴な学習方法は、訓練データに疑似データを混ぜたデータを新たな訓練データセットとして学習させることである。これに加え、訓練データのある元に対して摂動を与えた疑似データが得られるので、それらをラベル無しデータと見做せば半教師有り学習の各種手法が適用できる．例えば，ニューラルネットワークに入力したときの中間層の出力を一致させる処理（本稿ではＩｍｐｒｏｖｅｄ  Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｔｒａｉｎｉｎｇ  ＧＡＮｓでの表現を参考にしてフィーチャーマッチングと称する）を加えることで、より汎化性能が高い予測器を得ることができる。
【００１９】
また、前述のフィーチャーマッチングを用いる、データ評価と予測器の一部もしくは全部のニューラルネットワークを共用する、Ｔｉｐｌｅ  ＧＡＮなどの方法で予測器をＧＡＮの敵対的学習に参加させる、などの方法によって、ラベル無しの訓練データを有効利用できる。なお、本実施例では一貫してＧＡＮを用いたデータ生成を前提に説明するが、他の方法を用いてもよい。
【００２０】
＜システム構成＞
図１を参照して本実施例のシステム構成を説明する。本実施例のシステムは、データ生成・予測器学習装置１０と、リコメンドシステム１１と、管理者１５が操作する管理端末１２と、オペレータ１６が操作するアセット１３と、修理員１７が操作する修理員端末１４とを有する。これらのシステムの構成要素は、ネットワーク１８で相互に接続される。ネットワーク１８自体はＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などで構成できる。なお、前述したシステム構成は一例であって、構成要素は図示したものに限らない。例えば、データ生成・予測器学習装置１０とリコメンドシステム１１が一つの装置として構成されてもよいし、分散処理のため予測器学習装置１０を複数に分けて構成してもよい。
【００２１】
次に、図２を参照してデータ生成・予測器学習部１０１の詳細について説明する。データ生成・予測器学習部１０１は、摂動生成部１０１１と、疑似データ合成部１０１２と、評価部１０１３と、予測部１０１４と、パラメータ更新部１０１５を備える。
【００２２】
なお、データ生成・予測器学習部１０１のうち、摂動生成部１０１１と、疑似データ合成部１０１２と、評価部１０１３と、パラメータ更新部１０１５とでデータ生成装置が構成され、予測部１０１４と、パラメータ更新部１０１５とで予測器学習装置が構成される。
【００２３】
＜機能とハードウェア＞
次に図１と図３を参照して、機能とハードウェアの対応を説明する。
【００２４】
データ生成・予測器学習装置１０が有するデータ生成・予測器学習部１０１と、前処理部１０２と、学習用データ管理部１０３は、ＣＰＵ（Central Processing Unit）１Ｈ１０１が、ＲＯＭ（Read Only Memory）１Ｈ１０２又は外部記憶装置１Ｈ１０４に格納されたプログラムをＲＡＭ（Read Access Memory）１Ｈ１０３に読み込み、通信Ｉ／Ｆ（Interface）１Ｈ１０５、マウスやキーボードなどの入力装置１Ｈ１０６、ディスプレイなどの出力装置１Ｈ１０７を制御することによって実現される。
【００２５】
リコメンドシステム１１が有するリコメンド部１１１と、データ管理部１１２と、集配部１１３は、ＣＰＵ（Central Processing Unit）１Ｈ１０１が、ＲＯＭ（Read Only Memory）１Ｈ１０２又は外部記憶装置１Ｈ１０４に格納されたプログラムをＲＡＭ（Read Access Memory）１Ｈ１０３に読み込み、通信Ｉ／Ｆ（Interface）１Ｈ１０５、マウスやキーボードなどの入力装置１Ｈ１０６、ディスプレイなどの出力装置１Ｈ１０７を制御することによって実現される。
【００２６】
管理端末１２が有する操作部１２１は、ＣＰＵ（Central Processing Unit）１Ｈ１０１が、ＲＯＭ（Read Only Memory）１Ｈ１０２もしくは外部記憶装置１Ｈ１０４に格納されたプログラムをＲＡＭ（Read Access Memory）１Ｈ１０３に読み込み、通信Ｉ／Ｆ（Interface）１Ｈ１０５、マウスやキーボードなどの入力装置１Ｈ１０６、ディスプレイなどの出力装置１Ｈ１０７を制御することで実現される。
【００２７】
ＣＰＵ１Ｈ１０１が実行する処理の一部又は全部をハードウェアで構成される演算装置（ＡＳＩＣ、ＦＰＧＡ等）で実行してもよい。
【００２８】
ＣＰＵ１Ｈ１０１が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介してデータ生成・予測器学習装置１０、リコメンドシステム１１及び管理端末１２に提供され、非一時的記憶媒体である不揮発性の記憶装置に格納される。このため、計算機システムは、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００２９】
データ生成・予測器学習装置１０、リコメンドシステム１１及び管理端末１２の各々は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【００３０】
＜データ構造＞
次に、図４を参照して、リコメンドシステム１１のデータ管理部１１２が管理する実績データ１Ｄ１を説明する。実績データ１Ｄ１は、アセット１３や、アセット１３を介してオペレータ１６や、修理員端末１４を介して修理員１７から稼働実績・不具合状況・修理履歴などを収集し、収集したデータを結合して、アセットの修理毎に纏めたデータである。実績データ１Ｄ１は、修理単位を特定するための修理ＩＤ  １Ｄ１０１と、修理を実施した日時１Ｄ１０２と、アセットの設置やオーバーホールからの稼働時間１Ｄ１０３と、稼働時の平均温度１Ｄ１０４と、稼働時の振動レベル１Ｄ１０５と、不具合状況１Ｄ１０６と、実施した修理作業を特定するための修理作業ＩＤ  １Ｄ１０７とを含む。修理作業ＩＤは、後述するが、実施した作業内容や交換部品などと関連付けられる。
【００３１】
なお、本実施例では実績データ１Ｄ１は、前述した項目を含むが、アセットに関する他のデータを含んでもよいし、前述した項目のうち一部の項目を含むものでもよい。
【００３２】
次に、図５を参照して、リコメンドシステム１１のデータ管理部１１２が管理する修理作業データ１Ｄ２を説明する。修理作業データ１Ｄ２は、修理作業を特定する修理作業ＩＤ  １Ｄ２０１と、作業内容１Ｄ２０２と、交換部品１Ｄ２０３〜１Ｄ２０５を含む。なお、図５に示す例では、交換部品は最大三つまで記録しているが、交換部品の記録数は３より大きくても小さくてもよい。また、修理作業データ１Ｄ２は、作業内容及び交換部品以外に、修理作業に関する情報、例えば、使用する工具や消耗品などの情報を含んでもよい。
【００３３】
次に、図６を参照して、データ生成・予測器学習装置１０の学習用データ管理部１０３が管理する訓練データ集合１Ｄ３を説明する。訓練データ集合１Ｄ３は、管理者１５の指定に基づいて選定された実績データ１Ｄ１の日時１Ｄ１０２や稼働時間１Ｄ１０３などに前処理部１０２が前処理を施したデータであって、データを識別するための番号１Ｄ３０１と、実績データが数値化された予測器の入力となる入力１から入力１０００（１Ｄ３０２−１〜１Ｄ３０２−１０００）と、修理作業ＩＤに対応し、予測器の出力となる出力ｙ１Ｄ３０３を含む。なお、本実施例では入力は１０００個としたが、入力データの数は１０００よりも多くても少なくてもよい。
【００３４】
＜処理フロー＞
次に、図７、図８を参照して、本実施例におけるモデリングフェーズの処理を説明する。
【００３５】
図７を参照して、全体の流れを説明する。まず、リコメンドシステム１１の集配部１１３が、アセット１３及び修理員端末１４から実績データ１Ｄ１を収集し、データ管理部１１２に蓄積する（ステップ１Ｆ１０１）。
【００３６】
次に、管理端末１２の操作部１２１が、実績データ１Ｄ１からデータ生成及び予測器学習に用いるデータの条件（期間）と摂動パラメータ探索範囲を管理者１５から受け付ける。そして、集配部１１３が、受け付けた探索条件に従って、データ管理部１１２から条件に合う実績データ１Ｄ１を選択し、摂動パラメータ探索範囲と合わせてデータ生成・予測器学習装置１０の学習用データ管理部１０３に格納する（ステップ１Ｆ１０２）。なお、摂動パラメータ探索範囲とは、後述する式（５）のγの範囲である。
【００３７】
次に、データ生成・予測器学習装置１０の前処理部１０２が、学習用データ管理部１０３に格納された選択済みの実績データ１Ｄ１に文字列やカテゴリカル変数の数値化、量的変数の標準化や正規化等の前処理を施し、訓練データ集合１Ｄ３を生成、学習用データ管理部１０３に格納する（ステップ１Ｆ１０３）。
【００３８】
次に、データ生成・予測器学習装置１０のデータ生成・予測器学習部１０１が、訓練データ集合１Ｄ３に基づいて、データ生成及び予測に関する学習処理を実行し、作成されたモデル（学習済みモデルと称する）を学習用データ管理部１０３に格納する（ステップ１Ｆ１０４）。なお、学習処理は図８を参照して詳述する。
【００３９】
次に、データ生成・予測器学習装置１０の学習用データ管理部１０３が、作成されたモデルをリコメンドシステム１１のデータ管理部１１２に配信（複製を格納）する（ステップ１Ｆ１０５）。
【００４０】
最後に、管理端末１２の操作部１２１が、学習済みモデルによって生成される疑似データ集合や、訓練データ集合と疑似データ集合の分布間距離などを管理者１５に提示し、処理を終了する。管理者１５は、このような提示情報によって、後述する学習パラメータを変更したり、新しく学習した学習済みモデルを採用するか、従来のモデルを継続利用するかを判断できる。
【００４１】
次に、図８を参照して、本実施例における学習処理について詳しく説明する。なお、本実施例ではＧＡＮの一つであるＷａｓｓｅｒｓｔｅｉｎ  ＧＡＮ（Generative Adversarial Networks）を用いた形態を示す。まず、記号とそれに関する条件を説明する。なお、Ｗａｓｓｅｒｓｔｅｉｎ  ＧＡＮではなく、Ｔｒｉｐｌｅ  ＧＡＮなどのほかのＧＡＮの方法を用いてもよいし、分布間距離やそれに関する量にＭＭＤ（Maximum Mean Discrepancy）などの他の方法を用いてもよい。また、実際には指定された摂動パラメータ探索範囲についてγの指定範囲を１０分割してリニアサーチする等で網羅的に探索し、最も汎化性能が高い学習済みモデルを最終的な学習済みモデルとして選択するとよいが、以下では簡単のため、γが０．２であるときの処理の流れを説明する。なお、後述する他のパラメータも、γと同様に探索してもよい。
【００４２】
訓練データ集合１Ｄ３の入力に関する集合をＸと記し、その集合の元ｘが倣う分布をＰｒと記す。また、疑似データ集合をＸｇと記し、その集合の元ｘｇが倣う分布をＰｇと記す。ＰｒとＰｇのＷａｓｓｅｒｓｔｅｉｎ距離をＷ（Ｐｒ、Ｐｇ）と記す。このとき、Ｗ（Ｐｒ、Ｐｇ）は、式（１）で表される。
【００４３】
【数１】
2020112967.tif 000003
【００４４】
式（１）において、｜｜ｆｗ｜｜≦１は、関数ｆｗがリプシッツ連続であることを表す。また、Ｅ［・］は、期待値を表す。また、関数ｆｗはニューラルネットワークで構成され、ｗはそのニューラルネットワークのパラメータである。
【００４５】
ｘｇはｘに摂動Δｘを加えたものであって、以下を満たす。
【００４６】
【数２】
2020112967.tif 000004
【００４７】
この摂動Δｘは、ｘとノイズｚの条件付き確率分布Ｐｐ（Δｘ｜ｘ、ｚ）に従う。ここで、ノイズｚは、正規分布や一様分布に従うものとする。また、ｇθはあるｘとｚからＰｐに従う摂動Δｘを生成する関数である。なお、関数ｇθはニューラルネットワークで構成され、θはそのニューラルネットワークのパラメータである。
【００４８】
次に、入力ｘに対して出力の推定値ｙpを算出する関数をｈφ（ｘ）と記す。なお、関数ｈφはニューラルネットワークで構成され、φはそのニューラルネットワークのパラメータである。前述した記号を使用して処理を説明する。
【００４９】
まず、データ生成・予測器学習部１０１の摂動生成部１０１１は、訓練データ集合からサンプリングした部分集合Ｘ＝｛ｘｍ：ｍ＝１、２、３、…Ｍ｝（ミニバッチ集合、本実施例ではＭ＝１００とするがほかの値でもかまわない）を抽出し、正規分布からサイズＭの集合Ｚのサンプリングし、それらに関数ｇθを適用し、摂動集合ΔＸを生成する（ステップ１Ｆ２０１）。
【００５０】
次に、疑似データ合成部１０１２は、前記ＸとΔＸの各元の和を取ることで、疑似データ集合Ｘｇ＝｛ｘｇｍ：ｍ＝１、２、３、…Ｍ｝を生成する（ステップ１Ｆ２０２）。
【００５１】
次に、評価部１０１３は、前記Ｘｇに関数ｆｗを適用し、次式によって、分布間距離の一種であるＷａｓｓｅｒｓｔｅｉｎ距離の推定量Ｗａｓｓｅｒｓｔｅｉｎ〜を評価データの一つとして得る（ステップ１Ｆ２０３）。
【００５２】
【数３】
2020112967.tif 000005
【００５３】
次に、データ生成・予測器学習部１０１の予測部１０１４は、前記ＸとＸｇに関数ｈφを適用し、Ｘに関する予測データ集合Ｙ’＝｛ｙ'm、c：ｍ＝１、２、３、…Ｍ｝と、Ｘｇに関する予測出力Ｙ’ｇ＝｛ｙｇ'm、c：ｍ＝１、２、３、…Ｍ｝を生成する（ステップ１Ｆ２０４）。ここで、ｃはクラスのインデックスを表し、本実施例では、修理作業ＩＤに対応する。
【００５４】
次に、データ生成・予測器学習部１０１のパラメータ更新部１０１５は、数式（３）で表される推定量Ｗａｓｓｅｒｓｔｅｉｎ〜を最大化する方向にパラメータｗを逆誤差伝搬法で更新する。同様に、数式（４）で表される関数ＣｒｏｓｓＥｎｔｏｒｐｙＬｏｓｓを最小化する方向にパラメータφを逆誤差伝搬法で更新する（ステップ１Ｆ２０５）。数式（４）の第一項及び第二項は交差エントロピーを示す。ここで、ｙm、cは、前述と同様に、Ｘに対応する訓練データの出力データ集合Ｙ＝｛ｙm、c：ｍ＝１、２、３、…Ｍ｝の元であり、インデックスはｙ'm、c、ｙｇ'm、cと同じである。また、αは訓練データ集合由来のパラメータ更新と疑似データ集合由来のパラメータ更新とのバランスを調整するパラメータであり、本実施例では０．５とするが他の値でもよい。なお、数式（４）の第三項は摂動を与えたネットワークの内部状態（中間層の出力）を近づけるような制約を与える。ここで、ｕpm、c及びｕｇpm、cは、それぞれ訓練データ集合と疑似データ集合の入力に対する最終層（出力層）の直前の中間層の出力である。βは、その制約の影響を調整するパラメータであって、本実施例では０．５とするが、他の値でもよい。第三項によって、単にデータ拡張したデータを使って学習することに比べて高い汎化性能を持ったモデルを獲得できる。なお、このステップにおける逆誤差伝搬法を実行する際、摂動生成部１０１１のパラメータθが更新されないようにするとよい。
【００５５】
【数４】
2020112967.tif 000006
【００５６】
次に、データ生成・予測器学習部１０１の摂動生成部１０１１は、ステップ１Ｆ２０１と同じ手順で摂動集合を生成する（ステップ１Ｆ２０６）。
【００５７】
次に、データ生成・予測器学習部１０１の疑似データ合成部１０１２は、ステップ１Ｆ２０２と同じ手順で疑似データ集合を生成する（ステップ１Ｆ２０７）。
【００５８】
次に、データ生成・予測器学習部１０１の評価部１０１３は、前記Ｘｇに関数ｆｗを適用し、数式（５）によって関数ｇθに関するロスＡｄｖｅｒｓａｒｉａｌを評価データの別の一つとして得る（ステップ１Ｆ２０８）。ここで、ｇθ（ｘｍ、ｚ）＝Δｘｍ＝ｘｇｍ−ｘｍである。また、数式（５）の第一項は、通常のＷａｓｓｅｒｓｔｅｉｎ  ＧＡＮのジェネレータのロス関数が有する項であり、疑似データ集合と訓練データ集合との分布間距離を近づけようとする。一方、第二項は、本発明で採用された項であり、ミニバッチ内の摂動の大きさ（絶対値の総和）が一定値γ・Ｍとなるように制約を与える。すなわち、摂動の大きさの期待値を制約している。この結果、訓練データと疑似データとに差異が生じる。これら二つの項の作用によって、本発明の目的である、元の分布と大きく異ならないが入力データとは異なる疑似データ集合を生成できる。このような疑似データ集合が、元の分布と全く異なることはなく、データ拡張による汎化性能の低下を抑制でき、元となったデータのラベルを利用できる等、使い勝手がよい疑似データを生成できる。なお、λによって、最終的にどのくらい元の訓練データと大きく異なる疑似データを生成するのかを制御できる。本実施例では、λは１．０とするが、他の値でもよい。なお、前述のとおり、γは０．２としている。また、摂動の大きさとして絶対値の総和を用いたが，Ｌ２ノルムなどほかの大きさの指標を用いてもよい。
【００５９】
【数５】
2020112967.tif 000007
【００６０】
次に、データ生成・予測器学習部１０１のパラメータ更新部１０１５は、数式（５）で表されるＧｅｎｅｒａｔｏｒＬｏｓｓを最小化する方向にパラメータθを逆誤差伝搬法で更新する（ステップ１Ｆ２０９）。
【００６１】
次に、データ生成・予測器学習部１０１のパラメータ更新部１０１５は、終了条件を満たしているかを確認する。本実施例では、パラメータを所定回数（例えば１００００回）更新したとき終了条件を満たすとする。終了条件を満たさない場合、ステップ１Ｆ２０１に戻り、処理を続ける。一方、終了条件を満たす場合、モデルの学習の処理を終了する（ステップ１Ｆ２１０）。なお、終了条件としては、数式（４）で表される、いわゆるロス関数の大きさが減少しなくなったタイミングで終了と判定してもよい。
【００６２】
また、摂動生成部１０１１は、訓練データ集合の入力に関する部分集合Ｘと、正規分布からサンプリングした集合Ｚとを用いて、摂動集合ΔＸを生成するが、訓練データ集合の出力に関する部分集合を入力に加えてもよい。これによって、出力の分布を考慮するため、入力と出力の結合分布として、より妥当な疑似データを生成できる。
【００６３】
また、訓練データ集合の入力に関するｋ近傍密度推定などの確率密度関数の推定量を入力に加えてもよい。これによって、摂動生成部１０１１の学習を高速化かつ安定化できる。
【００６４】
また、前述では、特定の分布構造を仮定せずに摂動を生成する方法を説明したが、摂動に特定の分布構造（例えば、摂動集合の事後分布を表す正規分布構造などのパラメトリックな分布の母数）を仮定してもよい。その場合、その分布のパラメータ、例えば平均が０の正規分布であれば分散を、データ生成の対象とできる。低密度の部分における摂動によって、予測性能を向上でき、摂動生成部１０１１の学習を高速化かつ安定化できる。
【００６５】
また、目標摂動量を小さい値から大きい値に変えた場合、目標摂動量の変化に応じて汎化性能が落ち始める直前で止めるような線形探索によって良好な摂動量を得ることができる。
【００６６】
また、本実施例では、疑似データと摂動前のデータとでラベルを共用できるので、二つのデータを予測器に入力したときの中間層の出力を近づけることができ、前記フィーチャーマッチングを活用した学習が可能となる。
【００６７】
また、本実施例の訓練データ集合はラベル付きであるが、一部にラベルがないデータが含まれている場合、ラベルがないデータに関してもパラメータθ（摂動生成部１０１１）、パラメータｗ（評価部１０１３）を、ラベルがあるデータと同じで手順で学習に利用するとともに、数式（４）の第三項についてラベルがあるデータと同じ手順の学習により、パラメータθ（予測部１０１４）を利用することで、半教師有り学習ができる。なお、前述したＴｒｉｐｅ  ＧＡＮのように、予測器を敵対的学習に参加させるように目的関数を定義して半教師有り学習をしてもよい。
【００６８】
次に、図９を参照して、リコメンド処理の流れを説明する。
【００６９】
まず、リコメンドシステム１１の集配部１１３が、修理前（将来的に修理対象となる）のアセット１３に関し、アセット１３及び修理員端末１４から修理作業ＩＤが未記載（Ｎｏｎｅ）の実績データ１Ｄ１を収集する（ステップ１Ｆ３０１）。
【００７０】
次に、リコメンドシステム１１のリコメンド部１１１が、データ生成・予測器学習装置１０の前処理部１０２と同様の前処理を施したうえで、学習済みモデルを使って、修理作業ＩＤの予測値（リコメンドと称する）を生成する（ステップ１Ｆ３０２）。
【００７１】
次に、リコメンドシステム１１のリコメンド部１１１及び集配部１１３がアセット１３及び修理員端末１４にリコメンドを送信する（ステップ１Ｆ２０３）。
【００７２】
最後に、アセット１３がオペレータ１６にリコメンドを提示し、修理員端末１４が修理員１７にリコメンドを提示して、処理を終了する（ステップ１Ｆ２０４）。
【００７３】
以上に説明したように、リコメンドシステム１１は、アセット１３及び修理員端末１４から適宜情報を集め、修理のリコメンドを提示することによって、迅速に不調や故障に対応できる。なお、本実施例ではリコメンドシステム１１が能動的にリコメンドを生成し提示する形態を示したが、オペレータ１６や修理員１７の要求に応じてリコメンドを生成し提示する処理を実行してもよい。
【００７４】
＜ユーザインターフェース＞
次に、図１０を参照して、管理者１５がデータ生成及び予測器学習に用いる実績データ１Ｄ１を選択するために使用する訓練データ選択画面１Ｇ１を説明する。訓練データ選択画面１Ｇ１は、管理端末１２の操作部１２１に表示される。
【００７５】
訓練データ選択画面１Ｇ１は、期間開始日設定ボックス１Ｇ１０１と、期間終了日設定ボックス１Ｇ１０２と、摂動パラメータ探索範囲下限設定ボックス１Ｇ１０３と、摂動パラメータ探索範囲上限設定ボックス１Ｇ１０４と、設定ボタン１Ｇ１０５を含む。
【００７６】
期間開始日設定ボックス１Ｇ１０１で開始日を指定し、期間終了日設定ボックス１Ｇ１０２で終了日を指定することによって、開始日から終了日までの期間の実績データ１Ｄ１が訓練データとして選択される。
【００７７】
摂動パラメータ探索範囲下限設定ボックス１Ｇ１０３で摂動パラメータ探索範囲の下限を設定し、摂動パラメータ探索範囲上限設定ボックス１Ｇ１０４で摂動パラメータ探索範囲の上限を設定することによって、摂動の総量を変えて最良なモデルを学習できる。なお、図示したように摂動パラメータ探索範囲の下限及び上限を設定するのではなく、摂動パラメータを設定するための設定ボックスを設けてもよい。
【００７８】
設定ボタン１Ｇ１０５が操作（例えば、クリック）されると、前述した学習に用いる実績データ１Ｄ１の期間と摂動パラメータ探索範囲が、データ生成・予測器学習装置１０の学習用データ管理部１０３に格納される。
【００７９】
次に、図１１を参照して、管理者１５が学習済みモデルによって生成される疑似データを目視確認するために使用する疑似データ確認画面１Ｇ２を説明する。疑似データ確認画面１Ｇ２は、管理端末１２の操作部１２１に表示される。
【００８０】
疑似データ確認画面１Ｇ２は、Ｘ軸成分指定リストボックス１Ｇ２０１と、Ｙ軸成分指定リストボックス１Ｇ２０２と、比較ビュー１Ｇ２０３と、分布間距離ボックス１Ｇ２０４を含む。
【００８１】
Ｘ軸成分指定リストボックス１Ｇ２０１には、比較ビュー１Ｇ２０３のＸ軸に割り当てられる前処理済み訓練データ１Ｄ３の入力（例えば入力１）が設定される。同様に、Ｙ軸成分指定リストボックス１Ｇ２０２には、比較ビュー１Ｇ２０３のＹ軸に割り当てられる前処理済み訓練データ１Ｄ３の入力（例えば入力３）が設定される。この結果、設定された二つの入力に関する前処理済み訓練データ１Ｄ３（図中のもとデータ）と、生成された疑似データとが散布図として比較ビュー１Ｇ２０３に表示される。管理者１５が比較ビュー１Ｇ２０３を見ることによって、入力されるデータがどのように拡張されたかを目視で確認できる。これは、例えば、少数のデータがよくばらついている箇所では、データを追加収集すべきという判断ができる。
【００８２】
一方、分布間距離ボックス１Ｇ２０４には、ＭＭＤで算出された全入力に関する分布間距離が表示される。これは疑似データがもとの前処理済み訓練データ１Ｄ３と異なる程度を確認するために使うことができる。ここで、評価部１０１３の評価結果を用いてもよいが、学習条件によって学習されるＷａｓｓｅｒｓｔｅｉｎ距離の推定量が異なるため、本実施例ではＭＭＤを用いる。
【００８３】
以上に説明したように、本発明の実施例によれば、パラメータ更新部１０１５は、訓練データ集合と疑似データ集合との分布間距離を近づけ、摂動の大きさ又は期待値が予め定めた目標値となるように、摂動生成部１０１１が摂動集合の生成に使用するパラメータを更新するので、与えられた訓練データ集合の各元の特徴を考慮の上、疑似データ全体として訓練データ集合に対して分布間距離もしくはそれに関する推定量が小さくなるような摂動を加えることができ、目標摂動量以上に訓練データの分布と異ならない疑似データを生成できる。
【００８４】
また、摂動生成部１０１１は、訓練データ集合の各元の入力又は訓練データ集合に関する情報、及び訓練データ集合の各元の出力又はそれに関する情報に基づいて摂動集合を生成するので、分布間距離と摂動の大きさのトレードオフの観点で、出力の分布が考慮された入力と出力の結合分布として、より妥当な疑似データを生成できる。
【００８５】
また、摂動生成部１０１１は、前記訓練データ集合の各元の入力又は前記訓練データ集合に関する情報に加えて、前記訓練データ集合の入力に関する確率密度関数（例えばｋ近傍密度推定）の推定量に基づいて摂動集合を生成するので、摂動生成部１０１１の学習を高速化かつ安定化できる。
【００８６】
また、摂動生成部１０１１は、摂動集合の事後分布を表すパラメトリックな分布（例えば正規分布）の母数を生成することによって、摂動集合を生成するので、低密度の部分における摂動によって、予測性能を向上でき、学習を高速化かつ安定化できる。
【００８７】
また、摂動生成部１０１１が使用するパラメータ値又はその範囲を入力可能なインターフェース画面の表示データ（訓練データ選択画面１Ｇ１）を生成するので、摂動量を変えて最良なモデルを学習するための条件を付与できる。
【００８８】
また、訓練データ集合の各元と疑似データ集合の各元とが表された散布図の表示データを生成するので、入力されるデータがどのように拡張されたかを確認できる。
【００８９】
また、予測部１０１４は、前述したデータ生成装置が生成した疑似データ及び訓練データを使用して学習をするので、予測性能を向上でき、学習を高速化かつ安定化できる。
【００９０】
また、予測部１０１４は、ニューラルネットワークで構成され、訓練データを入力したときと疑似データを入力したときの内部状態の差が小さくなることを良しとする目的関数（例えば数式（４）の第三項）を追加するので、より高い汎化性能を持ったモデルを獲得できる。なお、ある訓練データから生成した二つの疑似データの内部状態の差が小さくなることを良しとする目的関数でもよい。
【００９１】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【００９２】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【００９３】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【００９４】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【００９５】
１０  データ生成・予測器学習装置
１０１  データ生成・予測器学習部
１０２  前処理部
１０１１  摂動生成部
１０１２  疑似データ合成部
１０１３  評価部
１０１４  予測部
１０１５  パラメータ更新部
【図１】
2020112967.tif 000008
【図２】
2020112967.tif 000009
【図３】
2020112967.tif 000010
【図４】
2020112967.tif 000011
【図５】
2020112967.tif 000012
【図６】
2020112967.tif 000013
【図７】
2020112967.tif 000014
【図８】
2020112967.tif 000015
【図９】
2020112967.tif 000016
【図１０】
2020112967.tif 000017
【図１１】
2020112967.tif 000018