(57)【要約】【課題】各エッジに適応した学習モデルを効率的に学習することを課題とする。【解決手段】クラウドサーバは、複数の電子機器から収集された複数のログに基づいて学習された、電子機器に対する操作内容を出力する第一の学習モデルを複数の電子機器のそれぞれに配信する。クラウドサーバは、複数の電子機器うちの第一の電子機器において、第一の学習モデルの出力結果とは異なる操作がユーザにより実行された場合に、複数のログの中から、異なる操作が発生した第一の学習モデルの状態と類似する類似ログを推定する。クラウドサーバは、複数のログの中から、類似ログに対応付けられた第二の電子機器のログを除外した除外済みのログに基づき第二の学習モデルを生成し、第二の学習モデルを第一の電子機器に配信する。【選択図】図２
2020177344.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
複数の電子機器から収集された複数のログに基づいて学習された、電子機器に対する操作内容を出力する第一の学習モデルを前記複数の電子機器のそれぞれに配信し、
前記複数の電子機器うちの第一の電子機器において、前記第一の学習モデルの出力結果とは異なる操作がユーザにより実行された場合に、前記複数のログの中から、前記異なる操作が発生した前記第一の学習モデルの状態と類似する類似ログを推定し、
前記複数のログの中から、前記類似ログに対応付けられた第二の電子機器のログを除外した除外済みのログに基づき第二の学習モデルを生成し、
前記第二の学習モデルを前記第一の電子機器に配信する
処理を実行することを特徴とする学習方法。
【請求項２】
前記第一の学習モデルの配信後、前記複数の電子機器から複数のログを定期的に取得する処理を、前記コンピュータがさらに実行し、
前記推定する処理は、前記第一の学習モデルの配信後に取得された前記複数のログに基づいて、前記異なる操作が発生した前記第一の学習モデルの状態を特定し、特定した状態と類似する前記類似ログを、前記第一の学習モデルの学習に使用された前記複数のログから推定する、ことを特徴とする請求項１に記載の学習方法。
【請求項３】
前記配信する処理は、前記電子機器に対する操作内容と、前記操作内容が実行されたときの前記電子機器の状態を特定するセンサ値と、を含む前記複数のログを学習データに利用して学習された前記第一の学習モデルを配信し、
前記推定する処理は、前記第一の学習モデルの配信後の前記複数のログに含まれるセンサ値の中から、前記異なる操作が発生したときのセンサ値を特定し、特定されたセンサ値を測定した前記第二の電子機器を特定し、
前記生成する処理は、前記学習データの中から、前記第二の電子機器のログを除外した除外済みの学習データに基づき、前記第二の学習モデルを生成する、ことを特徴とする請求項２に記載の学習方法。
【請求項４】
前記推定する処理は、前記学習データに含まれる前記センサ値を次元とする空間であって、前記学習データに含まれる前記操作内容を対応付けた特徴空間上に、前記異なる操作をプロットし、プロットされた前記異なる操作に近接する前記学習データ内の操作内容と対応付けられるセンサ値を測定した電子機器を、前記第二の電子機器と特定する、ことを特徴とする請求項３に記載の学習方法。
【請求項５】
前記第一の学習モデルおよび前記第二の学習モデルは、前記複数のログに基づいて、２以上のクラスに分類する分類モデルであることを特徴とする請求項１から４のいずれか一つに記載の学習方法。
【請求項６】
コンピュータに、
複数の電子機器から収集された複数のログに基づいて学習された、電子機器に対する操作内容を出力する第一の学習モデルを前記複数の電子機器のそれぞれに配信し、
前記複数の電子機器うちの第一の電子機器において、前記第一の学習モデルの出力結果とは異なる操作がユーザにより実行された場合に、前記複数のログの中から、前記異なる操作が発生した前記第一の学習モデルの状態と類似する類似ログを推定し、
前記複数のログの中から、前記類似ログに対応付けられた第二の電子機器のログを除外した除外済みのログに基づき第二の学習モデルを生成し、
前記第二の学習モデルを前記第一の電子機器に配信する
処理を実行させることを特徴とする学習プログラム。
【請求項７】
複数の電子機器から収集された複数のログに基づいて学習された、電子機器に対する操作内容を出力する第一の学習モデルを前記複数の電子機器のそれぞれに配信する配信部と、
前記複数の電子機器うちの第一の電子機器において、前記第一の学習モデルの出力結果とは異なる操作がユーザにより実行された場合に、前記複数のログの中から、前記異なる操作が発生した前記第一の学習モデルの状態と類似する類似ログを推定する推定部と、
前記複数のログの中から、前記類似ログに対応付けられた第二の電子機器のログを除外した除外済みのログに基づき第二の学習モデルを生成する生成部と、
前記第二の学習モデルを前記第一の電子機器に配信する配信部と
を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習方法、学習プログラムおよび学習装置に関する。
【背景技術】
【０００２】
ユーザにとって快適な室温となるように、エアコンなどを制御する空調制御を行うクラウドとエッジとを連携させた連携システムが利用されている。例えば、クラウドサーバが、各部屋の空調機などである各エッジから、室温や外気温のセンサ値および空調機の操作ログなどを取得する。そして、クラウドサーバは、センサ値と操作ログとを用いて学習モデルを学習して、各エッジに配信する。各エッジでは、学習済みの学習モデルを用いて、ユーザ操作を推定し、ユーザ操作が行われる前に先だって、空調機の温度設定を変更することで、ユーザにとって快適な空調制御を実行する。
【０００３】
近年では、クラウドサーバが、各エッジから収集した情報を用いて、類似するエッジを抽出してグループを生成し、各グループに属するエッジの収集データを用いて、グループごとに学習モデルを生成する技術が知られている。また、配信された学習モデルがエッジに適応しない場合に、適応しなかったデータが適合するように再学習する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１８／１６２４８号
【特許文献２】特開２０１８−２６１２９号公報
【特許文献３】特開２０１８−２７７７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記技術では、再学習の効率が悪く、各エッジに適した精度の学習モデルを生成するまでに時間がかかり、ユーザが不快な時間も長くなる。
【０００６】
一般的に、エッジを表現するすべての特徴量を取得することが難しく、特徴量の一部を用いて学習モデルを学習することから、定義上は類似でも、あるエッジには適さないモデルが生成されることがある。例えば、設定温度、外気温、湿度が類似なエアコン１０台でも、木造、軽量鉄骨、鉄筋コンクリートなどにより、設置されている家の断熱性が異なるが、その情報を特徴量として取得できないので、上記１０台から収集されたデータにより学習モデルを生成しても、適応するエッジや適応しないエッジが発生する。
【０００７】
また、配信された学習モデルに対し、あるデータに対する推論結果が適切でない場合にそのデータを用いて再学習しても、違うデータが発生したときには、また推論結果が適切ではない状況が発生するので、再学習の繰返しが頻繁に発生する。この場合、学習モデルの精度を向上させるまでに時間がかかり、ユーザが不快な時間も長くなる。
【０００８】
一つの側面では、各エッジに適応した学習モデルを効率的に学習することができる学習方法、学習プログラムおよび学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、学習方法は、コンピュータが、複数の電子機器から収集された複数のログに基づいて学習された、電子機器に対する操作内容を出力する第一の学習モデルを前記複数の電子機器のそれぞれに配信する処理を実行する。学習方法は、コンピュータが、前記複数の電子機器うちの第一の電子機器において、前記第一の学習モデルの出力結果とは異なる操作がユーザにより実行された場合に、前記複数のログの中から、前記異なる操作が発生した前記第一の学習モデルの状態と類似する類似ログを推定する処理を実行する。学習方法は、コンピュータが、前記複数のログの中から、前記類似ログに対応付けられた第二の電子機器のログを除外した除外済みのログに基づき第二の学習モデルを生成する処理を実行する。学習方法は、コンピュータが、前記第二の学習モデルを前記第一の電子機器に配信する処理を実行する。
【発明の効果】
【００１０】
一つの側面では、各エッジに適応した学習モデルを効率的に学習することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１にかかるシステムの全体構成例を示す図である。
【図２】図２は、実施例１にかかるクラウドサーバの機能構成を示す機能ブロック図である。
【図３】図３は、センサ値ＤＢに記憶される情報の例を示す図である。
【図４】図４は、操作ログＤＢに記憶される情報の例を示す図である。
【図５】図５は、学習モデルのイメージを説明する図である。
【図６】図６は、打ち消し操作の特定を説明する図である。
【図７】図７は、打ち消し操作に紐づく操作ログの特定手法を説明する図である。
【図８】図８は、学習対象から除外するデータの特定を説明する図である。
【図９】図９は、再学習を説明する図である。
【図１０】図１０は、処理の流れを示すシーケンス図である。
【図１１】図１１は、一般的な再学習との違いを説明する図である。
【図１２】図１２は、実施例１を適用した具体例１を説明する図である。
【図１３】図１３は、実施例１を適用した具体例２を説明する図である。
【図１４】図１４は、実施例１を適用した具体例３を説明する図である。
【図１５】図１５は、除外判定を説明する図である。
【図１６】図１６は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する学習方法、学習プログラムおよび学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１３】
［全体構成例］
図１は、実施例１にかかるシステムの全体構成例を示す図である。図１に示すように、このシステムは、クラウドサーバ１０と、エッジに該当する各部屋の通信装置とがネットワークＮを介して相互に通信可能に接続される、クラウドサーバとエッジとを連携させた空調制御システムである。なお、ネットワークＮには、有線や無線を問わず、インターネットなどの各種通信網を採用することができる。
【００１４】
各部屋は、クラウドサーバ１０による制御対象であるエッジの一例である。例えば、部屋１は、室内に設置されて室内の空調制御を実行する空調機１ａを有する。部屋２は、室内に設置されて室内の空調制御を実行する空調機２ａ、無線ネットワークやＵＰｎＰ（Universal  Plug  and  Play）などを用いて空調機２ａへの空調制御指示を送信する情報端末２ｂを有する。また、部屋３は、室内に設置されて室内の空調制御を実行する空調機３ａと、空調機３ａへの空調制御指示を送信するリモコン３ｂを有する。
【００１５】
なお、ここでは、各部屋内において、クラウドサーバ１０から配信された学習モデルを受信し、学習モデルを用いてユーザ操作の予測を行い、予測結果に応じて空調制御を実行する装置を、エッジ端末として説明する。例えば、部屋１の場合は、空調機１ａがエッジ端末に該当し、部屋２の場合は、情報端末２ｂがエッジ端末に該当し、部屋３の場合は、リモコン３ｂがエッジ端末に該当する。
【００１６】
また、図示しないが、各部屋には、外気温を測定するセンサ、室内の温度や湿度を測定するセンサなどが設置される。また、各種センサがセンシングしたセンサ値（観測値やログと記載する場合がある）は、各センサ等により、クラウドサーバ１０に送信される。また、各空調機や各エッジ端末は、空調制御のオン／オフとその時刻とを対応付けた操作ログなどを収集して、クラウドサーバ１０に送信する。なお、ここでは、部屋が３つの場合を示したが、あくまで例示であり、部屋数等を限定するものではない。
【００１７】
クラウドサーバ１０は、エッジに該当する各部屋のユーザにクラウドサービスを提供するサーバ装置であり、各部屋からセンサ値や操作ログなどを受信し、これらを学習データに用いて学習モデルを学習する。例えば、クラウドサーバ１０は、室温や外気温などの温度情報を説明変数、温度を上げる（Ｕｐ）・温度を下げる（Ｄｏｗｎ）・温度を維持する（Ｋｅｅｐ）などを示すユーザ操作を目的変数として、クラス分類を行う学習モデル（分類モデル）を学習する。そして、クラウドサーバ１０は、学習済みの学習モデルを各エッジ端末に配信する。
【００１８】
そして、各部屋の各エッジ端末は、クラウドサーバ１０から配信された学習モデルを用いて、各部屋の現在の温度情報からユーザ操作を予測し、予測結果に応じた空調制御を実行する。このようして、エッジ側での空調制御を実現する。
【００１９】
ところで、このようなクラウド−エッジ連携システムでは、各エッジのセンサ値などのログを用いて、エッジごとの学習モデルを生成することが好ましい。しかし、エッジ単体から取集したデータのみでは、学習データとしては足りないことが多いので、例えば１００台などの複数のエッジから取得したデータを学習データに用いて、学習モデルを学習することが行われる。
【００２０】
このような学習モデルは、複数のエッジのデータを用いて学習されたことから、各エッジの空調制御の環境が混在した状態で学習されたことになるので、各エッジにおいて適する学習データと、適さない学習データとが含まれる。つまり、断熱性の高いエッジＡでは、断熱性の低いエッジＢのデータを学習データに用いることは、好ましくない。しかし、空調制御の環境が類似するエッジをグループ化したり、空調制御の異なるエッジを抽出したりすることは、個人情報を収集することに制約が多いクラウドサービスでは、難しい。
【００２１】
そこで、例えば、実施例１にかかるクラウドサーバ１０は、複数のエッジＡからエッジＺから収集したデータを学習データに活用し、学習データを用いて生成した学習モデルを各エッジに配信する。そして、クラウドサーバ１０は、例えばエッジＡにおいて推論（予測）された推論結果（予測結果）がエッジＡでは適切でなかった場合に、当該推論結果に紐づくデータを特定し、そのデータの元となるエッジＢのデータを学習データから排除する。そして、クラウドサーバ１０は、エッジＢのデータが削除された学習データを用いて、エッジＡ向けに学習モデルを再学習して、再学習済みの学習モデルをエッジＡに配信する。このようにすることで、クラウドサーバ１０は、各エッジに適応した学習モデルを効率的に学習することができる。
【００２２】
［機能構成］
次に、図１に示したクラウドサーバ１０の機能構成について説明する。図２は、実施例１にかかるクラウドサーバ１０の機能構成を示す機能ブロック図である。図２に示すように、クラウドサーバ１０は、通信部１１、記憶部１２、制御部２０を有する。
【００２３】
通信部１１は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、各部屋に設置される空調機、エッジ端末、センサなどのデバイスから運転結果、空調制御情報、操作ログなどの各種データを受信し、エッジ端末に学習モデルを送信する。
【００２４】
記憶部１２は、データや制御部２０が実行するプログラムを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、センサ値ＤＢ１３、操作ログＤＢ１４、学習結果ＤＢ１５を記憶する。
【００２５】
センサ値ＤＢ１３は、各部屋のセンサにより取得された外気温、室温、室内の湿度などに関するセンサ値を記憶するデータベースである。例えば、ここで記憶されるセンサ値は、クラウドサーバ１０が各センサから取得する観測値であり、温度の時間変化などセンサが測定できる他の観測値を含んでいてもよい。また、センサ値ＤＢ１３は、ユーザごと、すなわち各部屋（空間）のセンサごとにセンサ値を記憶する。
【００２６】
図３は、センサ値ＤＢ１３に記憶される情報の例を示す図である。図３に示すように、センサ値ＤＢ１３は、「エアコン、日時、室温、外気温」などを対応付けて記憶する。ここで記憶される「エアコン」は、空調機を識別する識別子であり、「日時」は、データが測定された日時である。「室温」は、各室内の各センサにより測定された室内の温度であり、「外気温」は、各室の各センサにより測定された室外の温度である。図３の例では、一時間ごとのセンサ値を示し、エアコン（a001）について、「2019年11月1日の0：00では、室温が20度、外気温が10度」であったことを示す。
【００２７】
操作ログＤＢ１４は、各部屋の空調機の操作に関するログ情報を記憶するデータベースである。ここで記憶されるログ情報は、クラウドサーバ１０が各空調機や各空調機のリモコンなどから取得する情報であり、設定温度など空調機などが測定できる他の情報を含んでいてもよい。また、操作ログＤＢ１４は、ユーザごと、すなわち各空間の空調機ごとに操作ログを記憶する。
【００２８】
図４は、操作ログＤＢ１４に記憶される情報の例を示す図である。図４に示すように、操作ログＤＢ１４は、「エアコン、日時、操作、ＡＩ−Ｆｌａｇ」を対応付けて記憶する。ここで記憶される「エアコン」は、空調機を識別する識別子であり、「日時」は、測定された日時である。「操作」は、各空調機の操作ログである。「ＡＩ−Ｆｌａｇ」は、学習モデルによる予測か否かを示す情報であってエッジ端末が生成する情報であり、学習モデルの予測にしたがって操作が実行された場合は「１」が設定され、ユーザ操作によって変更された場合は「０」が設定される。
【００２９】
図４の例では、2019年11月1日の0：00では、エアコン（a001）の設定温度の変更がなかったこと（Ｋｅｅｐ）を示す。また、2019年11月1日の1：00に、学習モデルの予測にしたがって、エアコン（a001）の設定温度が下げられたこと（Ｄｏｗｎ）を示す。また、2019年11月1日の0：00に、ユーザ操作によって、エアコン（a002）の設定温度が下げられたこと（Ｄｏｗｎ）を示す。
【００３０】
学習結果ＤＢ１５は、学習結果を記憶するデータベースである。例えば、学習結果ＤＢ１５は、制御部２０による学習データの判別結果（分類結果）、ニューラルネットワークやロジスティック回帰などを用いた学習モデルを構築するための各種パラメータなどを記憶する。
【００３１】
なお、これらのＤＢ以外にも様々な情報を記憶することができる。例えば、図示しない外部の気象サーバなどから取得した気象情報を記憶する気象情報ＤＢを記憶することもできる。例えば、気象情報ＤＢは、クラウドサーバ１００が任意のタイミングで気象サーバから取得した、外気温や湿度の観測値、外気温や湿度の予報値、天候などを記憶する。
【００３２】
制御部２０は、クラウドサーバ１０全体を司る処理部であり、例えばプロセッサなどである。この制御部２０は、取得部３０、学習処理部４０、再学習処理部５０を有する。なお、取得部３０、学習処理部４０、再学習処理部５０は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００３３】
取得部３０は、各部屋の各センサ等から各種観測値を収集する処理部である。具体的には、取得部３０は、各センサからセンサ値を取得してセンサ値ＤＢ１３に格納し、各空調機から操作ログを取得して操作ログＤＢ１４に格納し、気象サーバなどから気象情報などを取得して記憶部１２等に格納する。すなわち、取得部３０は、学習データの対象となる各種データをクラウド上に収集する。なお、取得部３０は、学習モデル配信後も、定期的に、各エッジからセンサ値などを収集する。
【００３４】
学習処理部４０は、学習部４１と配信部４２を有し、取得部３０により収集されたセンサ値や操作ログなどの情報を用いて学習データを生成して、学習データを用いて学習モデルを学習し、学習済みの学習モデルを各エッジに配信する処理部である。
【００３５】
学習部４１は、学習データの生成および学習モデルの生成を実行する処理部である。具体的には、学習部４１は、取得部３０により収集されたセンサ値や操作ログなどの各情報を用いて学習データを生成して、記憶部１２等に格納する。そして、学習部４１は、学習データを用いて、ニューラルネットワークやロジスティック回帰などを用いた学習モデルを学習する。そして、学習部４１は、学習が終了すると、学習結果として、学習モデルを構築するための各種パラメータを学習結果ＤＢ１５に格納する。
【００３６】
例えば、学習部４１は、ある時刻におけるユーザ操作を「目的変数」、ある時刻の５分前の取得されたセンサ値を「説明変数」とする学習データを生成する。詳細には、学習部４１は、収集された各データを用いて、「エアコン、時刻、ユーザ操作（ラベル）、特徴量」を生成する。ここで記憶される「エアコン」は、空調機を識別する識別子である。「時刻」は、ユーザ操作が行われた時刻である。「ユーザ操作」は、ユーザが空調制御を行った操作内容であり、例えば設定温度を上げる「Ｕｐ」・設定温度を下げる「Ｄｏｗｎ」・設定温度を維持する（何もしない）「Ｋｅｅｐ」などが設定される。この「ユーザ操作」には、上記「時刻」から所定時間（例えば３０分）以内に実際に行われたユーザ操作が設定される。「特徴量」は、ユーザ操作が行われた時刻の５分前に取得されたセンサ値などであり、例えば室温、湿度、外気温の組み合わせである。
【００３７】
このようにして、学習部４１は、時刻ｔの５分前の取得されたセンサ値を「説明変数」、時刻ｔにおけるユーザ操作として設定された、時刻ｔから３０分以内に行われたユーザ操作を「目的変数」とする学習データを用いて、学習モデルを学習する。すなわち、学習部４１は、時刻ｔの５分前のセンサ値から、５分後である時刻ｔに発生するユーザ操作を予測する学習モデルを生成する。
【００３８】
別例としては、学習部４１は、５分前の特徴量に限らず、「５分前の特徴量、１０分前の特徴量、１５分前の特徴量」の組み合わせを説明変数として用いることもできる。つまり、説明変数として用いるセンサ値（特徴量）を任意に選択することができる。また、目的変数として設定する「時刻ｔのユーザ操作」として、時刻ｔから３０分以内に実際に発生したユーザ操作を設定する例を説明したが、時刻ｔのユーザ操作や時刻ｔから１０分以内のユーザ操作など、任意に設定変更することができる。
【００３９】
配信部４２は、学習済みの学習モデルを各エッジ端末に配信する処理部である。例えば、配信部４２は、学習結果ＤＢ１５から、学習済みの学習モデルを構築するための各種パラメータを読み出し、各エッジ端末に送信する。各エッジ端末では、配信された各種パラメータを用いることで、学習済みの学習モデルを構築することができる。
【００４０】
図５は、学習モデルのイメージを説明する図である。ここでは、説明をわかりやすくするために、室温と湿度の２次元の特徴空間で、ユーザ操作を「Ｋｅｅｐ」と「Ｄｏｗｎ」の２値に分類する例で説明する。なお、図５における太線は、学習済みの学習モデルによる予測境界を示す。
【００４１】
図５に示すように、学習部４１で学習された学習モデルは、時刻ｔにおける室温と湿度に基づいて、時刻ｔから３０分以内に発生するユーザ操作が「Ｋｅｅｐ」か「Ｄｏｗｎ」かを予測する。ここで、「Ｋｅｅｐ」が予測された場合、時刻ｔから３０分以内に温度を上げる操作や温度を下げる操作が発生しないと予測し、設定温度を維持する。一方、「Ｄｏｗｎ」が予測された場合、時刻ｔから３０分以内に温度を下げる操作が発生すると予測し、設定温度を所定温度（例えば１度）下げる。
【００４２】
再学習処理部５０は、特定部５１と再学習部５２を有し、エッジ端末ごとに、エッジ端末に適した学習モデルになるように、学習モデルの再学習を実行する処理部である。つまり、再学習処理部５０は、エッジごとに、学習処理部４０で利用された学習データから当該エッジには適さない学習データを除外して再学習を実行する。
【００４３】
特定部５１は、各エッジ端末について、配信された学習モデルによる予測精度に基づき、学習モデルの再学習の際に、学習対象外とする学習データを特定する処理部である。具体的には、特定部５１は、（１）打ち消し操作の特定、（２）打ち消し操作に紐づく操作ログの特定、（３）学習対象外データの特定を実行する。なお、ここでは、エッジＡについて再学習を行う例で説明するが、他のエッジについても同様の処理が実行される。
【００４４】
（１）打ち消し操作の特定
特定部５１は、各エッジ端末から、配信された学習モデルによる予測結果と実際のユーザ操作とを取得する。続いて、特定部５１は、予測結果とは異なるユーザ操作の発生、すなわち打ち消し操作の発生を特定する。
【００４５】
図６は、打ち消し操作の特定を説明する図である。特定部５１は、学習モデルの配信後にエッジＡのエッジ端末で収集された図６に示すデータを、エッジＡのエッジ端末から取得する。ここで、図６に示すデータは、「時刻、設定温度（室温）、湿度、ＡＩ−Ｆｌａｇ」が対応付けられた予測結果の正否を示す情報である。「時刻」は、予測対象の時刻であり、「設定温度」は、空調機に設定された温度である。「湿度」は、センサにより測定された室内の湿度である。「ＡＩ−Ｆｌａｇ」は、学習モデルによる予測か否かを示す情報である。
【００４６】
図６の場合、特定部５１は、時刻ｔ＋１で、設定温度が「２７度」から「２８度」に変更されていることを特定し、そのときの「ＡＩ−Ｆｌａｇ」に「１」が設定されていることから、学習モデルによる予測によって設定温度が変更されたことを特定する（予測操作）。そして、特定部５１は、時刻ｔ＋１から３０分以内である時刻ｔ＋３０のときに、設定温度が「２８度」から「２７度」に変更されていることを特定する。このとき、特定部５１は、「ＡＩ−Ｆｌａｇ」に「０」が設定されていることから、学習モデルによる予測ではなく、ユーザ操作によって設定温度が変更されたことを特定する。この結果、特定部５１は、時刻ｔ＋１で実行された学習モデルによる予測操作に対して、時刻ｔ＋３０に、当該予測操作とは逆のユーザ操作によって予測操作による温度設定が取り消されたことから、時刻ｔ＋３０のユーザ操作を「打ち消し操作」と特定する。
【００４７】
すなわち、特定部５１は、エッジＡにおいて、学習モデルの配信後に、設定温度「２８度」かつ湿度「５０％」を入力する予測結果（操作）に対して、打ち消し操作が発生したと特定する。なお、打ち消し操作は、１つに限らず、複数であってもよい。
【００４８】
（２）打ち消し操作に紐づく操作ログの特定
特定部５１は、打ち消し操作を特定した後、打ち消し操作対象である「設定温度（２８度）かつ湿度（５０％）」に紐づく操作ログ（特定操作）を、学習モデルに利用された学習データ内から特定する。言い換えると、特定部５１は、打ち消された操作のエッジＡの状態と類似する状態の学習データを特定する。すなわち、特定部５１は、エッジＡのセンサ値「設定温度（２８度）かつ湿度（５０％）」に対して悪影響を与える学習データを特定する。なお、複数の打ち消し操作が特定されている場合には、各打ち消し操作に対して実行される。
【００４９】
図７は、打ち消し操作に紐づく操作ログの特定手法を説明する図である。図７では、操作ログとセンサ値とを時刻およびエアコンＩＤで紐付けたデータ（学習データ）を、室温と湿度の２次元空間とする特徴空間にプロットする例で説明する。なお、図７における太線は、学習済みの学習モデルによる予測境界を示す。
【００５０】
図７に示すように、特定部５１は、特徴空間内に打ち消し操作された状態（室温、湿度）とプロットし、その状態から最も近い操作ログを特定する。例えば、打ち消しされた状態を「ベクトルｔ（図７のバツに該当）」とし、打ち消しされた状態が属するユーザ操作「Ｄｏｗｎ」の操作ログの集合をＸｄｏｗｎとし、Ｘｄｏｗｎには操作ログ「ベクトルｘｉ」（ｉは自然数）が含まれているとする。この場合、特定部５１は、「ベクトルｔ」と「ベクトルｘｉ」との差の絶対値が最も小さい操作ログを特定する。
【００５１】
別例として、特定部５１は、打ち消しされた操作と特徴空間内での距離が閾値未満の操作ログを特定する。上記例で説明すると、特定部５１は、「（ベクトルｔ）−（ベクトルｘｉ）」の絶対値が閾値ｃ未満である操作ログを特定する。なお、閾値は、任意に設定変更することができる。
【００５２】
（３）学習対象外データの特定
特定部５１は、打ち消し操作に紐づく操作ログを特定した後、当該操作ログに対応するエッジのデータを学習対象外に決定して、再学習部５２に通知する。図８は、学習対象から除外するデータの特定を説明する図である。ここでは、図７に示した特徴空間と、センサ値ＤＢ１３に記憶される情報と操作ログＤＢ１４に記憶される情報とを統合したデータ（学習データ）を用いた例で説明する。
【００５３】
図８に示すように、特定部５１は、特徴空間内で、打ち消し操作に紐づく操作である「特定操作」を特定する。続いて、特定部５１は、各種ＤＢを参照して、学習データの中から特定操作に該当するデータを特定する。ここでは、特定部５１は、データ「操作（Ｄｏｗｎ）、エアコンＩＤ（a027）、室温（２８）、湿度（４５）、外気温（３０）・・・」を特定したとする。
【００５４】
この場合、特定部５１は、エアコンＩＤ（a027）に対応するエッジが、エッジＡの学習データとしては適していないと特定する。この結果、特定部５１は、学習モデルに利用された学習データのうち、エアコンＩＤ（a027）に対応するデータ群を学習対象外と決定し、再学習部５２に通知する。
【００５５】
図２に戻り、再学習部５２は、特定部５１により通知されたデータを除いた学習データを用いて、学習モデルの再学習を実行して、再学習後の学習モデルを該当するエッジに配信する処理部である。
【００５６】
図９を用いて、上述したエッジＡ向けの再学習の例で説明する。図９は、再学習を説明する図である。図９に示すように、再学習部５２は、前回の学習時に利用された学習データ（操作ログ＋センサ値）から、エアコンＩＤ（a027）に対応付けられるデータを除外した学習データを生成する。つまり、前回学習された学習モデルに対して、エッジＡとは環境等が異なることから、好ましくない影響を与えていたと推定されるエアコンＩＤ（a027）のエッジのデータを除外する。
【００５７】
そして、再学習部５２は、エッジＡ向けの学習データとして適さないデータを除いた学習データを用いて、学習モデルを再学習する。その後、再学習部５２は、再学習結果を学習結果ＤＢ１５に格納するとともに、エッジＡに対して配信する。この結果、図９に示すように、打ち消し操作があったデータだけではなく、当該データと関連する関連データも除外して再学習を実行できるので、特徴空間内の打ち消し操作周辺だけではなく、特徴空間全体で再学習を行うことができ、学習モデルによる境界線を全体的に更新することができる。
【００５８】
なお、再学習部５２は、学習済みの学習モデルに対して、除外済みの学習データを用いた再学習することにより、学習済みの学習モデルを更新することで、再学習済みの学習済みモデルを生成することもできる。また、再学習部５２は、学習済みの学習モデルを破棄し、除外済みの学習データを用いた学習により学習した学習済みの学習モデルを、再学習済みの学習済みモデルとして生成することもできる。
【００５９】
［処理の流れ］
次に、学習モデルの配信から再学習前の一連の流れを説明する。図１０は、処理の流れを示すシーケンス図である。図１０に示すように、クラウドサーバ１０の取得部３０は、各エッジから、操作ログおよびセンサ値を含むデータを取得する（Ｓ１０１からＳ１０３）。
【００６０】
続いて、クラウドサーバ１０の学習処理部４０は、取得されたデータから学習データを生成し、学習データを用いて学習モデルを学習する（Ｓ１０４）。そして、クラウドサーバ１０の学習処理部４０は、学習された学習済みの学習モデルを、各エッジに配信する（Ｓ１０５からＳ１０７）。
【００６１】
その後、各エッジは、配信された学習済みの学習モデルを用いた予測制御を実行する（Ｓ１０８とＳ１０９）。例えば、各エッジのエッジ端末は、配信された学習済みの学習モデルに、センサにより測定されたセンサ値を入力して、ユーザ操作の予測結果を取得する。そして、各エッジ端末は、予測結果が「Ｕｐ」である場合は、空調機の設定温度を１度上げ、予測結果が「Ｄｏｗｎ」である場合は、空調機の設定温度を１度下げ、予測結果が「Ｋｅｅｐ」である場合は、空調機の設定温度を変更せずに維持する。
【００６２】
その後、クラウドサーバ１０の再学習処理部５０は、エッジＡからデータを収集する（Ｓ１１０とＳ１１１）。例えば、再学習処理部５０は、学習モデル配信後にエッジＡで収集された、操作ログとセンサ値とを含むデータを受信する。
【００６３】
続いて、クラウドサーバ１０の再学習処理部５０は、収集したデータに基づき、打ち消し操作を特定し（Ｓ１１２）、打ち消し操作に紐づく操作ログに該当するエッジのデータを学習データから除外する（Ｓ１１３）。
【００６４】
その後、クラウドサーバ１０の再学習処理部５０は、該当データを除外した除外済みの学習データを用いて学習モデルを再学習し（Ｓ１１４）、再学習済みの学習モデルをエッジＡに対してのみ配信する（Ｓ１１５とＳ１１６）。そして、エッジＡのエッジ端末は、配信された再学習済みの学習モデルを用いて、予測制御を実行する（Ｓ１１７）。このように、学習モデルの再学習が、各エッジ端末について実行される。
【００６５】
［効果］
上述したように、クラウドサーバ１０は、各エッジに学習モデルを配信後、各エッジから取得したデータによって、エッジごとに、学習データとして適さないデータを特定することができる。そして、クラウドサーバ１０は、エッジごとに、適さないデータを除いた学習データを用いて学習モデルを再学習することができる。したがって、クラウドサーバ１０は、適さないデータだけではなく、適さないデータに関連するデータも学習対象から除外することができるので、再学習の頻度を削減することができ、各エッジに適応した学習モデルを効率的に学習することができる。
【００６６】
図１１は、一般的な再学習との違いを説明する図である。図１１の（ａ）に示すように、一般的な再学習は、打ち消し操作が発生すると、打ち消し操作に該当するデータのみを除外して再学習を行うので、打ち消し操作があった近辺だけがエッジに適応する学習モデルを生成する。このため、再学習済みの学習モデルでは、打ち消し操作近辺以外については、新たな打ち消し操作が発生するまで再学習されない。したがって、一般的な再学習では、内在する不適切な学習データについては、それらが顕在化するまで、学習することができない。また、一般的な再学習では、内在する不適切な学習データが顕在化するたびに、繰り返し再学習を実行することになり、再学習の頻度も多い。
【００６７】
一方、図１１の（ｂ）に示すように、実施例１による再学習では、打ち消し操作が発生すると、打ち消し操作に該当するデータおよび当該データに関連するデータの両方を除外して再学習を行う。このため、実施例１による再学習では、打ち消し操作があった近辺だけではなく、学習モデルに内在する不適切な学習データを除外して、再学習を実行することができる。このため、実施例１による再学習では、一般的な再学習と比較すると、１つの打ち消し操作に対して学習モデル全体を再学習することができるので、内在する不適切な学習データに対応する再学習の繰返しを抑制でき、再学習の頻度を削減しつつ、エッジに適応した学習モデルを迅速に生成することができる。
【００６８】
［具体例］
次に、図１２から図１４を用いて、実施例１による学習モデルの適用例について説明する。図１２は、実施例１を適用した具体例１を説明する図であり、図１３は、実施例１を適用した具体例２を説明する図であり、図１４は、実施例１を適用した具体例３を説明する図である。
【００６９】
図１２に示すように、実施例１による学習モデルは、室温、外気温、湿度などの各種センサ値を入力して、設定温度の操作「Ｕｐ／Ｄｏｗｎ／Ｋｅｅｐ」を予測する３値分類や空調機の電源操作「Ｏｎ／Ｏｆｆ」を予測する２値分類のモデルに適用することができる。この場合、センサ値を説明変数、設定温度の操作または空調機の電源操作を目的変数として、学習モデルが学習される。
【００７０】
また、図１３に示すように、実施例１による学習モデルは、人感センサなどのセンサ値を入力して、証明の明るさ操作「Ｕｐ／Ｄｏｗｎ／Ｋｅｅｐ」を予測する３値分類のモデルに適用することができる。この場合、センサ値を説明変数、証明の明るさ操作を目的変数として、学習モデルが学習される。
【００７１】
また、図１４に示すように、実施例１による学習モデルは、カメラ画像やロボットアームの位置座標などを入力して、ピッキングする際のロボットのアームの角度を予測するモデルに適用することができる。この場合、カメラ画像やロボットアームの位置座標を説明変数、アームの角度を目的変数として、学習モデルが学習される。
【実施例２】
【００７２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００７３】
［除外判定］
実施例１では、打ち消し操作に紐づく操作ログを特定し、当該操作ログの送信元であるエッジから取得されたデータを学習対象外とする例を説明したが、これに限定されるものではない。例えば、再学習対象のエッジのデータと、除外対象のエッジのデータとの間で、統計的な解析を行って、除外するか否かを判定することもできる。
【００７４】
図１５は、除外判定を説明する図である。図１５に示すように、クラウドサーバ１０は、再学習対象のエッジＡのデータ分布と、除外対象のエッジＢのデータ分布とを比較し、データ分布が異なる場合にのみ、エッジＢのデータ分布を除外対象と決定することもできる。なお、データ分布が異なるとは、データの全てが一致しない場合や所定数のデータが一致しない場合に限らず、統計学の一般的な判断基準を採用することができる。また、図１５では、室温と外気温との関係を例示したが、これに限定されずに、室温と操作ログなど、エッジが測定する各種データを採用することができる。
【００７５】
［対象空間］
上記実施例では、会社などの部屋を一例として説明したが、これに限定されるものではない。例えば、電車や車などの車内、マシンルーム、飛行機の機内など様々な空間を対象とすることができる。
【００７６】
［学習データ］
上記実施例では、学習データとして、室温、外気温、湿度を用いる例を説明したが、これに限定されるものではない。例えば、室温と外気温を学習データとしてユーザ操作を予測する学習モデル、５分間などの所定時間内の室温の変化と外気温の変化を学習データとしてユーザ操作を予測する学習モデルなどを学習することもできる。また、再学習時は、再学習までに収集されたログ（操作ログ＋センサ値）を学習データとして利用することもできる。また、はじめの学習モデルを生成する装置と、再学習を行う装置とを別々の装置で実行することもできる。
【００７７】
［数値］
上記実施例で説明したセンサ値の項目、数値、装置の台数、エッジ数などは、図示したものに限定されず、一般的なセンサなどで収集可能な情報を用いることができる。また、予測間隔も、３０分後や２時間後など任意に変更することができる。その場合、センサ値などの収集単位も任意の時間に変更する。また、学習データとして、センサ値と操作ログを使用する例を説明したが、これに限定されるものではなく、センサ値のみを使用することもできる。
【００７８】
［予測］
上記実施例では、ユーザ操作を予測する学習モデルを構築する例を説明したが、これに限定されるものではなく、室温を予測する学習モデルを構築することもできる。この場合、３０分後の室温などを目的変数とする。
【００７９】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、学習処理部４０と再学習処理部５０とを統合することもできる。
【００８１】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８２】
［ハードウェア］
上述したクラウドサーバ１０のハードウェア構成を有するので、ここでは、コンピュータ３００として説明する。図１６は、ハードウェア構成例を示す図である。図１６に示すように、クラウドサーバ１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図１６に示した各部は、バス等で相互に接続される。
【００８３】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図２に示した機能を動作させるプログラムやＤＢを記憶する。
【００８４】
プロセッサ１０ｄは、図２に示した各処理部と同様の処理を実行するプログラムをＨＤＤ３００ｂ等から読み出してメモリ１０ｃに展開することで、図２等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、クラウドサーバ１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、取得部３０、学習処理部４０、再学習処理部５０等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、取得部３０、学習処理部４０、再学習処理部５０等と同様の処理を実行するプロセスを実行する。
【００８５】
このように、クラウドサーバ１０は、プログラムを読み出して実行することで空調制御方法を実行する情報処理装置として動作する。また、クラウドサーバ１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、クラウドサーバ１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００８６】
１０  クラウドサーバ
１１  通信部
１２  記憶部
１３  センサ値ＤＢ
１４  操作ログＤＢ
１５  学習結果ＤＢ
２０  制御部
３０  取得部
４０  学習処理部
４１  学習部
４２  配信部
５０  再学習処理部
５１  特定部
５２  再学習部
【図１】
2020177344.tif 000003
【図２】
2020177344.tif 000004
【図３】
2020177344.tif 000005
【図４】
2020177344.tif 000006
【図５】
2020177344.tif 000007
【図６】
2020177344.tif 000008
【図７】
2020177344.tif 000009
【図８】
2020177344.tif 000010
【図９】
2020177344.tif 000011
【図１０】
2020177344.tif 000012
【図１１】
2020177344.tif 000013
【図１２】
2020177344.tif 000014
【図１３】
2020177344.tif 000015
【図１４】
2020177344.tif 000016
【図１５】
2020177344.tif 000017
【図１６】
2020177344.tif 000018