(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-05
(45)【発行日】2022-12-13
(54)【発明の名称】学習方法、学習プログラムおよび学習装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20221206BHJP
【FI】
G06N20/00
(21)【出願番号】P 2019077839
(22)【出願日】2019-04-16
【審査請求日】2022-01-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】石田 勉
【審査官】武田 広太郎
(56)【参考文献】
【文献】特開2015-87973(JP,A)
【文献】特開2015-184823(JP,A)
【文献】特開2011-70408(JP,A)
【文献】特開2015-99467(JP,A)
【文献】米国特許出願公開第2019/0005408(US,A1)
【文献】国際公開第2018/179750(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
複数の電子機器から収集された複数のログに基づいて学習された、電子機器に対する操作内容を出力する第一の学習モデルを前記複数の電子機器のそれぞれに配信し、
前記複数の電子機器うちの第一の電子機器において、前記第一の学習モデルの出力結果とは異なる操作がユーザにより実行された場合に、前記複数のログの中から、前記異なる操作が発生した前記第一の学習モデルの状態と類似する類似ログを推定し、
前記複数のログの中から、前記類似ログに対応付けられた第二の電子機器のログを除外した除外済みのログに基づき第二の学習モデルを生成し、
前記第二の学習モデルを前記第一の電子機器に配信する
処理を実行することを特徴とする学習方法。
【請求項2】
前記第一の学習モデルの配信後、前記複数の電子機器から複数のログを定期的に取得する処理を、前記コンピュータがさらに実行し、
前記推定する処理は、前記第一の学習モデルの配信後に取得された前記複数のログに基づいて、前記異なる操作が発生した前記第一の学習モデルの状態を特定し、特定した状態と類似する前記類似ログを、前記第一の学習モデルの学習に使用された前記複数のログから推定する、ことを特徴とする請求項1に記載の学習方法。
【請求項3】
前記配信する処理は、前記電子機器に対する操作内容と、前記操作内容が実行されたときの前記電子機器の状態を特定するセンサ値と、を含む前記複数のログを学習データに利用して学習された前記第一の学習モデルを配信し、
前記推定する処理は、前記第一の学習モデルの配信後の前記複数のログに含まれるセンサ値の中から、前記異なる操作が発生したときのセンサ値を特定し、特定されたセンサ値を測定した前記第二の電子機器を特定し、
前記生成する処理は、前記学習データの中から、前記第二の電子機器のログを除外した除外済みの学習データに基づき、前記第二の学習モデルを生成する、ことを特徴とする請求項2に記載の学習方法。
【請求項4】
前記推定する処理は、前記学習データに含まれる前記センサ値を次元とする空間であって、前記学習データに含まれる前記操作内容を対応付けた特徴空間上に、前記異なる操作をプロットし、プロットされた前記異なる操作に近接する前記学習データ内の操作内容と対応付けられるセンサ値を測定した電子機器を、前記第二の電子機器と特定する、ことを特徴とする請求項3に記載の学習方法。
【請求項5】
前記第一の学習モデルおよび前記第二の学習モデルは、前記複数のログに基づいて、2以上のクラスに分類する分類モデルであることを特徴とする請求項1から4のいずれか一つに記載の学習方法。
【請求項6】
コンピュータに、
複数の電子機器から収集された複数のログに基づいて学習された、電子機器に対する操作内容を出力する第一の学習モデルを前記複数の電子機器のそれぞれに配信し、
前記複数の電子機器うちの第一の電子機器において、前記第一の学習モデルの出力結果とは異なる操作がユーザにより実行された場合に、前記複数のログの中から、前記異なる操作が発生した前記第一の学習モデルの状態と類似する類似ログを推定し、
前記複数のログの中から、前記類似ログに対応付けられた第二の電子機器のログを除外した除外済みのログに基づき第二の学習モデルを生成し、
前記第二の学習モデルを前記第一の電子機器に配信する
処理を実行させることを特徴とする学習プログラム。
【請求項7】
複数の電子機器から収集された複数のログに基づいて学習された、電子機器に対する操作内容を出力する第一の学習モデルを前記複数の電子機器のそれぞれに配信する配信部と、
前記複数の電子機器うちの第一の電子機器において、前記第一の学習モデルの出力結果とは異なる操作がユーザにより実行された場合に、前記複数のログの中から、前記異なる操作が発生した前記第一の学習モデルの状態と類似する類似ログを推定する推定部と、
前記複数のログの中から、前記類似ログに対応付けられた第二の電子機器のログを除外した除外済みのログに基づき第二の学習モデルを生成する生成部と、
前記第二の学習モデルを前記第一の電子機器に配信する配信部と
を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習方法、学習プログラムおよび学習装置に関する。
【背景技術】
【0002】
ユーザにとって快適な室温となるように、エアコンなどを制御する空調制御を行うクラウドとエッジとを連携させた連携システムが利用されている。例えば、クラウドサーバが、各部屋の空調機などである各エッジから、室温や外気温のセンサ値および空調機の操作ログなどを取得する。そして、クラウドサーバは、センサ値と操作ログとを用いて学習モデルを学習して、各エッジに配信する。各エッジでは、学習済みの学習モデルを用いて、ユーザ操作を推定し、ユーザ操作が行われる前に先だって、空調機の温度設定を変更することで、ユーザにとって快適な空調制御を実行する。
【0003】
近年では、クラウドサーバが、各エッジから収集した情報を用いて、類似するエッジを抽出してグループを生成し、各グループに属するエッジの収集データを用いて、グループごとに学習モデルを生成する技術が知られている。また、配信された学習モデルがエッジに適応しない場合に、適応しなかったデータが適合するように再学習する技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2018/16248号
【文献】特開2018-26129号公報
【文献】特開2018-27776号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記技術では、再学習の効率が悪く、各エッジに適した精度の学習モデルを生成するまでに時間がかかり、ユーザが不快な時間も長くなる。
【0006】
一般的に、エッジを表現するすべての特徴量を取得することが難しく、特徴量の一部を用いて学習モデルを学習することから、定義上は類似でも、あるエッジには適さないモデルが生成されることがある。例えば、設定温度、外気温、湿度が類似なエアコン10台でも、木造、軽量鉄骨、鉄筋コンクリートなどにより、設置されている家の断熱性が異なるが、その情報を特徴量として取得できないので、上記10台から収集されたデータにより学習モデルを生成しても、適応するエッジや適応しないエッジが発生する。
【0007】
また、配信された学習モデルに対し、あるデータに対する推論結果が適切でない場合にそのデータを用いて再学習しても、違うデータが発生したときには、また推論結果が適切ではない状況が発生するので、再学習の繰返しが頻繁に発生する。この場合、学習モデルの精度を向上させるまでに時間がかかり、ユーザが不快な時間も長くなる。
【0008】
一つの側面では、各エッジに適応した学習モデルを効率的に学習することができる学習方法、学習プログラムおよび学習装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
第1の案では、学習方法は、コンピュータが、複数の電子機器から収集された複数のログに基づいて学習された、電子機器に対する操作内容を出力する第一の学習モデルを前記複数の電子機器のそれぞれに配信する処理を実行する。学習方法は、コンピュータが、前記複数の電子機器うちの第一の電子機器において、前記第一の学習モデルの出力結果とは異なる操作がユーザにより実行された場合に、前記複数のログの中から、前記異なる操作が発生した前記第一の学習モデルの状態と類似する類似ログを推定する処理を実行する。学習方法は、コンピュータが、前記複数のログの中から、前記類似ログに対応付けられた第二の電子機器のログを除外した除外済みのログに基づき第二の学習モデルを生成する処理を実行する。学習方法は、コンピュータが、前記第二の学習モデルを前記第一の電子機器に配信する処理を実行する。
【発明の効果】
【0010】
一つの側面では、各エッジに適応した学習モデルを効率的に学習することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施例1にかかるシステムの全体構成例を示す図である。
【
図2】
図2は、実施例1にかかるクラウドサーバの機能構成を示す機能ブロック図である。
【
図3】
図3は、センサ値DBに記憶される情報の例を示す図である。
【
図4】
図4は、操作ログDBに記憶される情報の例を示す図である。
【
図5】
図5は、学習モデルのイメージを説明する図である。
【
図6】
図6は、打ち消し操作の特定を説明する図である。
【
図7】
図7は、打ち消し操作に紐づく操作ログの特定手法を説明する図である。
【
図8】
図8は、学習対象から除外するデータの特定を説明する図である。
【
図11】
図11は、一般的な再学習との違いを説明する図である。
【
図12】
図12は、実施例1を適用した具体例1を説明する図である。
【
図13】
図13は、実施例1を適用した具体例2を説明する図である。
【
図14】
図14は、実施例1を適用した具体例3を説明する図である。
【発明を実施するための形態】
【0012】
以下に、本願の開示する学習方法、学習プログラムおよび学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0013】
[全体構成例]
図1は、実施例1にかかるシステムの全体構成例を示す図である。
図1に示すように、このシステムは、クラウドサーバ10と、エッジに該当する各部屋の通信装置とがネットワークNを介して相互に通信可能に接続される、クラウドサーバとエッジとを連携させた空調制御システムである。なお、ネットワークNには、有線や無線を問わず、インターネットなどの各種通信網を採用することができる。
【0014】
各部屋は、クラウドサーバ10による制御対象であるエッジの一例である。例えば、部屋1は、室内に設置されて室内の空調制御を実行する空調機1aを有する。部屋2は、室内に設置されて室内の空調制御を実行する空調機2a、無線ネットワークやUPnP(Universal Plug and Play)などを用いて空調機2aへの空調制御指示を送信する情報端末2bを有する。また、部屋3は、室内に設置されて室内の空調制御を実行する空調機3aと、空調機3aへの空調制御指示を送信するリモコン3bを有する。
【0015】
なお、ここでは、各部屋内において、クラウドサーバ10から配信された学習モデルを受信し、学習モデルを用いてユーザ操作の予測を行い、予測結果に応じて空調制御を実行する装置を、エッジ端末として説明する。例えば、部屋1の場合は、空調機1aがエッジ端末に該当し、部屋2の場合は、情報端末2bがエッジ端末に該当し、部屋3の場合は、リモコン3bがエッジ端末に該当する。
【0016】
また、図示しないが、各部屋には、外気温を測定するセンサ、室内の温度や湿度を測定するセンサなどが設置される。また、各種センサがセンシングしたセンサ値(観測値やログと記載する場合がある)は、各センサ等により、クラウドサーバ10に送信される。また、各空調機や各エッジ端末は、空調制御のオン/オフとその時刻とを対応付けた操作ログなどを収集して、クラウドサーバ10に送信する。なお、ここでは、部屋が3つの場合を示したが、あくまで例示であり、部屋数等を限定するものではない。
【0017】
クラウドサーバ10は、エッジに該当する各部屋のユーザにクラウドサービスを提供するサーバ装置であり、各部屋からセンサ値や操作ログなどを受信し、これらを学習データに用いて学習モデルを学習する。例えば、クラウドサーバ10は、室温や外気温などの温度情報を説明変数、温度を上げる(Up)・温度を下げる(Down)・温度を維持する(Keep)などを示すユーザ操作を目的変数として、クラス分類を行う学習モデル(分類モデル)を学習する。そして、クラウドサーバ10は、学習済みの学習モデルを各エッジ端末に配信する。
【0018】
そして、各部屋の各エッジ端末は、クラウドサーバ10から配信された学習モデルを用いて、各部屋の現在の温度情報からユーザ操作を予測し、予測結果に応じた空調制御を実行する。このようして、エッジ側での空調制御を実現する。
【0019】
ところで、このようなクラウド-エッジ連携システムでは、各エッジのセンサ値などのログを用いて、エッジごとの学習モデルを生成することが好ましい。しかし、エッジ単体から取集したデータのみでは、学習データとしては足りないことが多いので、例えば100台などの複数のエッジから取得したデータを学習データに用いて、学習モデルを学習することが行われる。
【0020】
このような学習モデルは、複数のエッジのデータを用いて学習されたことから、各エッジの空調制御の環境が混在した状態で学習されたことになるので、各エッジにおいて適する学習データと、適さない学習データとが含まれる。つまり、断熱性の高いエッジAでは、断熱性の低いエッジBのデータを学習データに用いることは、好ましくない。しかし、空調制御の環境が類似するエッジをグループ化したり、空調制御の異なるエッジを抽出したりすることは、個人情報を収集することに制約が多いクラウドサービスでは、難しい。
【0021】
そこで、例えば、実施例1にかかるクラウドサーバ10は、複数のエッジAからエッジZから収集したデータを学習データに活用し、学習データを用いて生成した学習モデルを各エッジに配信する。そして、クラウドサーバ10は、例えばエッジAにおいて推論(予測)された推論結果(予測結果)がエッジAでは適切でなかった場合に、当該推論結果に紐づくデータを特定し、そのデータの元となるエッジBのデータを学習データから排除する。そして、クラウドサーバ10は、エッジBのデータが削除された学習データを用いて、エッジA向けに学習モデルを再学習して、再学習済みの学習モデルをエッジAに配信する。このようにすることで、クラウドサーバ10は、各エッジに適応した学習モデルを効率的に学習することができる。
【0022】
[機能構成]
次に、
図1に示したクラウドサーバ10の機能構成について説明する。
図2は、実施例1にかかるクラウドサーバ10の機能構成を示す機能ブロック図である。
図2に示すように、クラウドサーバ10は、通信部11、記憶部12、制御部20を有する。
【0023】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、各部屋に設置される空調機、エッジ端末、センサなどのデバイスから運転結果、空調制御情報、操作ログなどの各種データを受信し、エッジ端末に学習モデルを送信する。
【0024】
記憶部12は、データや制御部20が実行するプログラムを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、センサ値DB13、操作ログDB14、学習結果DB15を記憶する。
【0025】
センサ値DB13は、各部屋のセンサにより取得された外気温、室温、室内の湿度などに関するセンサ値を記憶するデータベースである。例えば、ここで記憶されるセンサ値は、クラウドサーバ10が各センサから取得する観測値であり、温度の時間変化などセンサが測定できる他の観測値を含んでいてもよい。また、センサ値DB13は、ユーザごと、すなわち各部屋(空間)のセンサごとにセンサ値を記憶する。
【0026】
図3は、センサ値DB13に記憶される情報の例を示す図である。
図3に示すように、センサ値DB13は、「エアコン、日時、室温、外気温」などを対応付けて記憶する。ここで記憶される「エアコン」は、空調機を識別する識別子であり、「日時」は、データが測定された日時である。「室温」は、各室内の各センサにより測定された室内の温度であり、「外気温」は、各室の各センサにより測定された室外の温度である。
図3の例では、一時間ごとのセンサ値を示し、エアコン(a001)について、「2019年11月1日の0:00では、室温が20度、外気温が10度」であったことを示す。
【0027】
操作ログDB14は、各部屋の空調機の操作に関するログ情報を記憶するデータベースである。ここで記憶されるログ情報は、クラウドサーバ10が各空調機や各空調機のリモコンなどから取得する情報であり、設定温度など空調機などが測定できる他の情報を含んでいてもよい。また、操作ログDB14は、ユーザごと、すなわち各空間の空調機ごとに操作ログを記憶する。
【0028】
図4は、操作ログDB14に記憶される情報の例を示す図である。
図4に示すように、操作ログDB14は、「エアコン、日時、操作、AI-Flag」を対応付けて記憶する。ここで記憶される「エアコン」は、空調機を識別する識別子であり、「日時」は、測定された日時である。「操作」は、各空調機の操作ログである。「AI-Flag」は、学習モデルによる予測か否かを示す情報であってエッジ端末が生成する情報であり、学習モデルの予測にしたがって操作が実行された場合は「1」が設定され、ユーザ操作によって変更された場合は「0」が設定される。
【0029】
図4の例では、2019年11月1日の0:00では、エアコン(a001)の設定温度の変更がなかったこと(Keep)を示す。また、2019年11月1日の1:00に、学習モデルの予測にしたがって、エアコン(a001)の設定温度が下げられたこと(Down)を示す。また、2019年11月1日の0:00に、ユーザ操作によって、エアコン(a002)の設定温度が下げられたこと(Down)を示す。
【0030】
学習結果DB15は、学習結果を記憶するデータベースである。例えば、学習結果DB15は、制御部20による学習データの判別結果(分類結果)、ニューラルネットワークやロジスティック回帰などを用いた学習モデルを構築するための各種パラメータなどを記憶する。
【0031】
なお、これらのDB以外にも様々な情報を記憶することができる。例えば、図示しない外部の気象サーバなどから取得した気象情報を記憶する気象情報DBを記憶することもできる。例えば、気象情報DBは、クラウドサーバ100が任意のタイミングで気象サーバから取得した、外気温や湿度の観測値、外気温や湿度の予報値、天候などを記憶する。
【0032】
制御部20は、クラウドサーバ10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、取得部30、学習処理部40、再学習処理部50を有する。なお、取得部30、学習処理部40、再学習処理部50は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0033】
取得部30は、各部屋の各センサ等から各種観測値を収集する処理部である。具体的には、取得部30は、各センサからセンサ値を取得してセンサ値DB13に格納し、各空調機から操作ログを取得して操作ログDB14に格納し、気象サーバなどから気象情報などを取得して記憶部12等に格納する。すなわち、取得部30は、学習データの対象となる各種データをクラウド上に収集する。なお、取得部30は、学習モデル配信後も、定期的に、各エッジからセンサ値などを収集する。
【0034】
学習処理部40は、学習部41と配信部42を有し、取得部30により収集されたセンサ値や操作ログなどの情報を用いて学習データを生成して、学習データを用いて学習モデルを学習し、学習済みの学習モデルを各エッジに配信する処理部である。
【0035】
学習部41は、学習データの生成および学習モデルの生成を実行する処理部である。具体的には、学習部41は、取得部30により収集されたセンサ値や操作ログなどの各情報を用いて学習データを生成して、記憶部12等に格納する。そして、学習部41は、学習データを用いて、ニューラルネットワークやロジスティック回帰などを用いた学習モデルを学習する。そして、学習部41は、学習が終了すると、学習結果として、学習モデルを構築するための各種パラメータを学習結果DB15に格納する。
【0036】
例えば、学習部41は、ある時刻におけるユーザ操作を「目的変数」、ある時刻の5分前の取得されたセンサ値を「説明変数」とする学習データを生成する。詳細には、学習部41は、収集された各データを用いて、「エアコン、時刻、ユーザ操作(ラベル)、特徴量」を生成する。ここで記憶される「エアコン」は、空調機を識別する識別子である。「時刻」は、ユーザ操作が行われた時刻である。「ユーザ操作」は、ユーザが空調制御を行った操作内容であり、例えば設定温度を上げる「Up」・設定温度を下げる「Down」・設定温度を維持する(何もしない)「Keep」などが設定される。この「ユーザ操作」には、上記「時刻」から所定時間(例えば30分)以内に実際に行われたユーザ操作が設定される。「特徴量」は、ユーザ操作が行われた時刻の5分前に取得されたセンサ値などであり、例えば室温、湿度、外気温の組み合わせである。
【0037】
このようにして、学習部41は、時刻tの5分前の取得されたセンサ値を「説明変数」、時刻tにおけるユーザ操作として設定された、時刻tから30分以内に行われたユーザ操作を「目的変数」とする学習データを用いて、学習モデルを学習する。すなわち、学習部41は、時刻tの5分前のセンサ値から、5分後である時刻tに発生するユーザ操作を予測する学習モデルを生成する。
【0038】
別例としては、学習部41は、5分前の特徴量に限らず、「5分前の特徴量、10分前の特徴量、15分前の特徴量」の組み合わせを説明変数として用いることもできる。つまり、説明変数として用いるセンサ値(特徴量)を任意に選択することができる。また、目的変数として設定する「時刻tのユーザ操作」として、時刻tから30分以内に実際に発生したユーザ操作を設定する例を説明したが、時刻tのユーザ操作や時刻tから10分以内のユーザ操作など、任意に設定変更することができる。
【0039】
配信部42は、学習済みの学習モデルを各エッジ端末に配信する処理部である。例えば、配信部42は、学習結果DB15から、学習済みの学習モデルを構築するための各種パラメータを読み出し、各エッジ端末に送信する。各エッジ端末では、配信された各種パラメータを用いることで、学習済みの学習モデルを構築することができる。
【0040】
図5は、学習モデルのイメージを説明する図である。ここでは、説明をわかりやすくするために、室温と湿度の2次元の特徴空間で、ユーザ操作を「Keep」と「Down」の2値に分類する例で説明する。なお、
図5における太線は、学習済みの学習モデルによる予測境界を示す。
【0041】
図5に示すように、学習部41で学習された学習モデルは、時刻tにおける室温と湿度に基づいて、時刻tから30分以内に発生するユーザ操作が「Keep」か「Down」かを予測する。ここで、「Keep」が予測された場合、時刻tから30分以内に温度を上げる操作や温度を下げる操作が発生しないと予測し、設定温度を維持する。一方、「Down」が予測された場合、時刻tから30分以内に温度を下げる操作が発生すると予測し、設定温度を所定温度(例えば1度)下げる。
【0042】
再学習処理部50は、特定部51と再学習部52を有し、エッジ端末ごとに、エッジ端末に適した学習モデルになるように、学習モデルの再学習を実行する処理部である。つまり、再学習処理部50は、エッジごとに、学習処理部40で利用された学習データから当該エッジには適さない学習データを除外して再学習を実行する。
【0043】
特定部51は、各エッジ端末について、配信された学習モデルによる予測精度に基づき、学習モデルの再学習の際に、学習対象外とする学習データを特定する処理部である。具体的には、特定部51は、(1)打ち消し操作の特定、(2)打ち消し操作に紐づく操作ログの特定、(3)学習対象外データの特定を実行する。なお、ここでは、エッジAについて再学習を行う例で説明するが、他のエッジについても同様の処理が実行される。
【0044】
(1)打ち消し操作の特定
特定部51は、各エッジ端末から、配信された学習モデルによる予測結果と実際のユーザ操作とを取得する。続いて、特定部51は、予測結果とは異なるユーザ操作の発生、すなわち打ち消し操作の発生を特定する。
【0045】
図6は、打ち消し操作の特定を説明する図である。特定部51は、学習モデルの配信後にエッジAのエッジ端末で収集された
図6に示すデータを、エッジAのエッジ端末から取得する。ここで、
図6に示すデータは、「時刻、設定温度(室温)、湿度、AI-Flag」が対応付けられた予測結果の正否を示す情報である。「時刻」は、予測対象の時刻であり、「設定温度」は、空調機に設定された温度である。「湿度」は、センサにより測定された室内の湿度である。「AI-Flag」は、学習モデルによる予測か否かを示す情報である。
【0046】
図6の場合、特定部51は、時刻t+1で、設定温度が「27度」から「28度」に変更されていることを特定し、そのときの「AI-Flag」に「1」が設定されていることから、学習モデルによる予測によって設定温度が変更されたことを特定する(予測操作)。そして、特定部51は、時刻t+1から30分以内である時刻t+30のときに、設定温度が「28度」から「27度」に変更されていることを特定する。このとき、特定部51は、「AI-Flag」に「0」が設定されていることから、学習モデルによる予測ではなく、ユーザ操作によって設定温度が変更されたことを特定する。この結果、特定部51は、時刻t+1で実行された学習モデルによる予測操作に対して、時刻t+30に、当該予測操作とは逆のユーザ操作によって予測操作による温度設定が取り消されたことから、時刻t+30のユーザ操作を「打ち消し操作」と特定する。
【0047】
すなわち、特定部51は、エッジAにおいて、学習モデルの配信後に、設定温度「28度」かつ湿度「50%」を入力する予測結果(操作)に対して、打ち消し操作が発生したと特定する。なお、打ち消し操作は、1つに限らず、複数であってもよい。
【0048】
(2)打ち消し操作に紐づく操作ログの特定
特定部51は、打ち消し操作を特定した後、打ち消し操作対象である「設定温度(28度)かつ湿度(50%)」に紐づく操作ログ(特定操作)を、学習モデルに利用された学習データ内から特定する。言い換えると、特定部51は、打ち消された操作のエッジAの状態と類似する状態の学習データを特定する。すなわち、特定部51は、エッジAのセンサ値「設定温度(28度)かつ湿度(50%)」に対して悪影響を与える学習データを特定する。なお、複数の打ち消し操作が特定されている場合には、各打ち消し操作に対して実行される。
【0049】
図7は、打ち消し操作に紐づく操作ログの特定手法を説明する図である。
図7では、操作ログとセンサ値とを時刻およびエアコンIDで紐付けたデータ(学習データ)を、室温と湿度の2次元空間とする特徴空間にプロットする例で説明する。なお、
図7における太線は、学習済みの学習モデルによる予測境界を示す。
【0050】
図7に示すように、特定部51は、特徴空間内に打ち消し操作された状態(室温、湿度)とプロットし、その状態から最も近い操作ログを特定する。例えば、打ち消しされた状態を「ベクトルt(
図7のバツに該当)」とし、打ち消しされた状態が属するユーザ操作「Down」の操作ログの集合をX
downとし、X
downには操作ログ「ベクトルx
i」(iは自然数)が含まれているとする。この場合、特定部51は、「ベクトルt」と「ベクトルx
i」との差の絶対値が最も小さい操作ログを特定する。
【0051】
別例として、特定部51は、打ち消しされた操作と特徴空間内での距離が閾値未満の操作ログを特定する。上記例で説明すると、特定部51は、「(ベクトルt)-(ベクトルxi)」の絶対値が閾値c未満である操作ログを特定する。なお、閾値は、任意に設定変更することができる。
【0052】
(3)学習対象外データの特定
特定部51は、打ち消し操作に紐づく操作ログを特定した後、当該操作ログに対応するエッジのデータを学習対象外に決定して、再学習部52に通知する。
図8は、学習対象から除外するデータの特定を説明する図である。ここでは、
図7に示した特徴空間と、センサ値DB13に記憶される情報と操作ログDB14に記憶される情報とを統合したデータ(学習データ)を用いた例で説明する。
【0053】
図8に示すように、特定部51は、特徴空間内で、打ち消し操作に紐づく操作である「特定操作」を特定する。続いて、特定部51は、各種DBを参照して、学習データの中から特定操作に該当するデータを特定する。ここでは、特定部51は、データ「操作(Down)、エアコンID(a027)、室温(28)、湿度(45)、外気温(30)・・・」を特定したとする。
【0054】
この場合、特定部51は、エアコンID(a027)に対応するエッジが、エッジAの学習データとしては適していないと特定する。この結果、特定部51は、学習モデルに利用された学習データのうち、エアコンID(a027)に対応するデータ群を学習対象外と決定し、再学習部52に通知する。
【0055】
図2に戻り、再学習部52は、特定部51により通知されたデータを除いた学習データを用いて、学習モデルの再学習を実行して、再学習後の学習モデルを該当するエッジに配信する処理部である。
【0056】
図9を用いて、上述したエッジA向けの再学習の例で説明する。
図9は、再学習を説明する図である。
図9に示すように、再学習部52は、前回の学習時に利用された学習データ(操作ログ+センサ値)から、エアコンID(a027)に対応付けられるデータを除外した学習データを生成する。つまり、前回学習された学習モデルに対して、エッジAとは環境等が異なることから、好ましくない影響を与えていたと推定されるエアコンID(a027)のエッジのデータを除外する。
【0057】
そして、再学習部52は、エッジA向けの学習データとして適さないデータを除いた学習データを用いて、学習モデルを再学習する。その後、再学習部52は、再学習結果を学習結果DB15に格納するとともに、エッジAに対して配信する。この結果、
図9に示すように、打ち消し操作があったデータだけではなく、当該データと関連する関連データも除外して再学習を実行できるので、特徴空間内の打ち消し操作周辺だけではなく、特徴空間全体で再学習を行うことができ、学習モデルによる境界線を全体的に更新することができる。
【0058】
なお、再学習部52は、学習済みの学習モデルに対して、除外済みの学習データを用いた再学習することにより、学習済みの学習モデルを更新することで、再学習済みの学習済みモデルを生成することもできる。また、再学習部52は、学習済みの学習モデルを破棄し、除外済みの学習データを用いた学習により学習した学習済みの学習モデルを、再学習済みの学習済みモデルとして生成することもできる。
【0059】
[処理の流れ]
次に、学習モデルの配信から再学習前の一連の流れを説明する。
図10は、処理の流れを示すシーケンス図である。
図10に示すように、クラウドサーバ10の取得部30は、各エッジから、操作ログおよびセンサ値を含むデータを取得する(S101からS103)。
【0060】
続いて、クラウドサーバ10の学習処理部40は、取得されたデータから学習データを生成し、学習データを用いて学習モデルを学習する(S104)。そして、クラウドサーバ10の学習処理部40は、学習された学習済みの学習モデルを、各エッジに配信する(S105からS107)。
【0061】
その後、各エッジは、配信された学習済みの学習モデルを用いた予測制御を実行する(S108とS109)。例えば、各エッジのエッジ端末は、配信された学習済みの学習モデルに、センサにより測定されたセンサ値を入力して、ユーザ操作の予測結果を取得する。そして、各エッジ端末は、予測結果が「Up」である場合は、空調機の設定温度を1度上げ、予測結果が「Down」である場合は、空調機の設定温度を1度下げ、予測結果が「Keep」である場合は、空調機の設定温度を変更せずに維持する。
【0062】
その後、クラウドサーバ10の再学習処理部50は、エッジAからデータを収集する(S110とS111)。例えば、再学習処理部50は、学習モデル配信後にエッジAで収集された、操作ログとセンサ値とを含むデータを受信する。
【0063】
続いて、クラウドサーバ10の再学習処理部50は、収集したデータに基づき、打ち消し操作を特定し(S112)、打ち消し操作に紐づく操作ログに該当するエッジのデータを学習データから除外する(S113)。
【0064】
その後、クラウドサーバ10の再学習処理部50は、該当データを除外した除外済みの学習データを用いて学習モデルを再学習し(S114)、再学習済みの学習モデルをエッジAに対してのみ配信する(S115とS116)。そして、エッジAのエッジ端末は、配信された再学習済みの学習モデルを用いて、予測制御を実行する(S117)。このように、学習モデルの再学習が、各エッジ端末について実行される。
【0065】
[効果]
上述したように、クラウドサーバ10は、各エッジに学習モデルを配信後、各エッジから取得したデータによって、エッジごとに、学習データとして適さないデータを特定することができる。そして、クラウドサーバ10は、エッジごとに、適さないデータを除いた学習データを用いて学習モデルを再学習することができる。したがって、クラウドサーバ10は、適さないデータだけではなく、適さないデータに関連するデータも学習対象から除外することができるので、再学習の頻度を削減することができ、各エッジに適応した学習モデルを効率的に学習することができる。
【0066】
図11は、一般的な再学習との違いを説明する図である。
図11の(a)に示すように、一般的な再学習は、打ち消し操作が発生すると、打ち消し操作に該当するデータのみを除外して再学習を行うので、打ち消し操作があった近辺だけがエッジに適応する学習モデルを生成する。このため、再学習済みの学習モデルでは、打ち消し操作近辺以外については、新たな打ち消し操作が発生するまで再学習されない。したがって、一般的な再学習では、内在する不適切な学習データについては、それらが顕在化するまで、学習することができない。また、一般的な再学習では、内在する不適切な学習データが顕在化するたびに、繰り返し再学習を実行することになり、再学習の頻度も多い。
【0067】
一方、
図11の(b)に示すように、実施例1による再学習では、打ち消し操作が発生すると、打ち消し操作に該当するデータおよび当該データに関連するデータの両方を除外して再学習を行う。このため、実施例1による再学習では、打ち消し操作があった近辺だけではなく、学習モデルに内在する不適切な学習データを除外して、再学習を実行することができる。このため、実施例1による再学習では、一般的な再学習と比較すると、1つの打ち消し操作に対して学習モデル全体を再学習することができるので、内在する不適切な学習データに対応する再学習の繰返しを抑制でき、再学習の頻度を削減しつつ、エッジに適応した学習モデルを迅速に生成することができる。
【0068】
[具体例]
次に、
図12から
図14を用いて、実施例1による学習モデルの適用例について説明する。
図12は、実施例1を適用した具体例1を説明する図であり、
図13は、実施例1を適用した具体例2を説明する図であり、
図14は、実施例1を適用した具体例3を説明する図である。
【0069】
図12に示すように、実施例1による学習モデルは、室温、外気温、湿度などの各種センサ値を入力して、設定温度の操作「Up/Down/Keep」を予測する3値分類や空調機の電源操作「On/Off」を予測する2値分類のモデルに適用することができる。この場合、センサ値を説明変数、設定温度の操作または空調機の電源操作を目的変数として、学習モデルが学習される。
【0070】
また、
図13に示すように、実施例1による学習モデルは、人感センサなどのセンサ値を入力して、証明の明るさ操作「Up/Down/Keep」を予測する3値分類のモデルに適用することができる。この場合、センサ値を説明変数、証明の明るさ操作を目的変数として、学習モデルが学習される。
【0071】
また、
図14に示すように、実施例1による学習モデルは、カメラ画像やロボットアームの位置座標などを入力して、ピッキングする際のロボットのアームの角度を予測するモデルに適用することができる。この場合、カメラ画像やロボットアームの位置座標を説明変数、アームの角度を目的変数として、学習モデルが学習される。
【実施例2】
【0072】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0073】
[除外判定]
実施例1では、打ち消し操作に紐づく操作ログを特定し、当該操作ログの送信元であるエッジから取得されたデータを学習対象外とする例を説明したが、これに限定されるものではない。例えば、再学習対象のエッジのデータと、除外対象のエッジのデータとの間で、統計的な解析を行って、除外するか否かを判定することもできる。
【0074】
図15は、除外判定を説明する図である。
図15に示すように、クラウドサーバ10は、再学習対象のエッジAのデータ分布と、除外対象のエッジBのデータ分布とを比較し、データ分布が異なる場合にのみ、エッジBのデータ分布を除外対象と決定することもできる。なお、データ分布が異なるとは、データの全てが一致しない場合や所定数のデータが一致しない場合に限らず、統計学の一般的な判断基準を採用することができる。また、
図15では、室温と外気温との関係を例示したが、これに限定されずに、室温と操作ログなど、エッジが測定する各種データを採用することができる。
【0075】
[対象空間]
上記実施例では、会社などの部屋を一例として説明したが、これに限定されるものではない。例えば、電車や車などの車内、マシンルーム、飛行機の機内など様々な空間を対象とすることができる。
【0076】
[学習データ]
上記実施例では、学習データとして、室温、外気温、湿度を用いる例を説明したが、これに限定されるものではない。例えば、室温と外気温を学習データとしてユーザ操作を予測する学習モデル、5分間などの所定時間内の室温の変化と外気温の変化を学習データとしてユーザ操作を予測する学習モデルなどを学習することもできる。また、再学習時は、再学習までに収集されたログ(操作ログ+センサ値)を学習データとして利用することもできる。また、はじめの学習モデルを生成する装置と、再学習を行う装置とを別々の装置で実行することもできる。
【0077】
[数値]
上記実施例で説明したセンサ値の項目、数値、装置の台数、エッジ数などは、図示したものに限定されず、一般的なセンサなどで収集可能な情報を用いることができる。また、予測間隔も、30分後や2時間後など任意に変更することができる。その場合、センサ値などの収集単位も任意の時間に変更する。また、学習データとして、センサ値と操作ログを使用する例を説明したが、これに限定されるものではなく、センサ値のみを使用することもできる。
【0078】
[予測]
上記実施例では、ユーザ操作を予測する学習モデルを構築する例を説明したが、これに限定されるものではなく、室温を予測する学習モデルを構築することもできる。この場合、30分後の室温などを目的変数とする。
【0079】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0080】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、学習処理部40と再学習処理部50とを統合することもできる。
【0081】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0082】
[ハードウェア]
上述したクラウドサーバ10のハードウェア構成を有するので、ここでは、コンピュータ300として説明する。
図16は、ハードウェア構成例を示す図である。
図16に示すように、クラウドサーバ10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図16に示した各部は、バス等で相互に接続される。
【0083】
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、
図2に示した機能を動作させるプログラムやDBを記憶する。
【0084】
プロセッサ10dは、
図2に示した各処理部と同様の処理を実行するプログラムをHDD300b等から読み出してメモリ10cに展開することで、
図2等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、クラウドサーバ10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、取得部30、学習処理部40、再学習処理部50等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、取得部30、学習処理部40、再学習処理部50等と同様の処理を実行するプロセスを実行する。
【0085】
このように、クラウドサーバ10は、プログラムを読み出して実行することで空調制御方法を実行する情報処理装置として動作する。また、クラウドサーバ10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、クラウドサーバ10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0086】
10 クラウドサーバ
11 通信部
12 記憶部
13 センサ値DB
14 操作ログDB
15 学習結果DB
20 制御部
30 取得部
40 学習処理部
41 学習部
42 配信部
50 再学習処理部
51 特定部
52 再学習部