(57)【要約】【課題】ネットワーク内のセンサ機器の組み合わせから、所定の機械学習のためのデータを取得し、ユーザが意図することなく、このセンサ機器から可能な学習を行い、結果を出力するコンピュータシステム、エッジデバイス制御方法及びプログラムを提供することを目的とする。【解決手段】ゲートウェイ２００に接続されたエッジデバイス１００を使用して機械学習を行うコンピュータシステムは、前記ゲートウェイ２００に接続されたエッジデバイス１００を検出し、検出した前記エッジデバイス１００の組み合わせを決定し、決定した前記組み合わせに基づいて、エッジデバイス１００用のプログラムと機械学習用のプログラムとを決定し、前記エッジデバイス１００に、前記エッジデバイス１００用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる。【選択図】図１
2018100678.tif 000002
【特許請求の範囲】
【請求項１】
ゲートウェイに接続されたエッジデバイスを使用して機械学習を行うコンピュータシステムであって、
前記ゲートウェイに接続されたエッジデバイスを検出する検出手段と、
検出した前記エッジデバイスの組み合わせを決定する組み合わせ決定手段と、
決定した前記組み合わせに基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するプログラム決定手段と、
前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる実行手段と、
を備えることを特徴とするコンピュータシステム。
【請求項２】
検出した前記エッジデバイスの処理性能を取得する取得手段と、
取得した前記処理性能に応じて、前記エッジデバイスに、データ及び当該データに対応する教師データを送信する送信手段と、
前記エッジデバイスに、前記教師データを用いて前記データを機械学習させるように制御する制御手段と、
を備えることを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記エッジデバイスに、前記データに対応する教師データをダウンロードさせるように制御するダウンロード手段と、
を備えることを特徴とする請求項２に記載のコンピュータシステム。
【請求項４】
ゲートウェイに接続されたエッジデバイスを使用して機械学習を行うエッジデバイス制御方法であって、
前記ゲートウェイに接続されたエッジデバイスを検出するステップと、
検出した前記エッジデバイスの組み合わせを決定するステップと、
決定した前記組み合わせに基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するステップと、
前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させるステップと、
を備えることを特徴とするエッジデバイス制御方法。
【請求項５】
ゲートウェイに接続されたエッジデバイスを使用して機械学習を行うコンピュータシステムに、
前記ゲートウェイに接続されたエッジデバイスを検出するステップ、
検出した前記エッジデバイスの組み合わせを決定するステップ、
決定した前記組み合わせに基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するステップ、
前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させるステップ、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲートウェイに接続されたエッジデバイスを使用して機械学習を行うコンピュータシステム、エッジデバイス制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、エッジＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）コンピューティングと呼ばれる手法が知られている。このような手法において、ゲートウェイに接続されたエッジデバイスを使用することにより、機械学習を行う。【０００３】
このような機械学習を行うシステムとして、例えば、従来の公衆回線網内のエッジ（各種センサ機器）に近い位置に、エッジコンピュータを配置し、処理速度を速める必要な処理をこのエッジコンピュータで行い、画像解析や機械学習等の時間がかかる処理を、公衆回線網に接続された他のコンピュータにより処理する構成が開示されている（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｍｅｔｉ．ｇｏ．ｊｐ／ｃｏｍｍｉｔｔｅｅ／ｓａｎｋｏｕｓｈｉｎ／ｓｈｏｊｏ／ｊｏｈｏｋｅｉｚａｉ／ｂｕｎｓａｎ＿ｓｅｎｒｙａｋｕ＿ｗｇ／ｐｄｆ／００１＿０４＿００．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１の構成では、機械学習において、システムの構築者やユーザが学習させるデータを指定する必要があった。【０００６】
本発明の目的は、ネットワーク内のセンサ機器の組み合わせから、所定の機械学習のためのデータ（例えば、教師データ）を取得し、ユーザが意図することなく、このセンサ機器から可能な学習を行い、結果を出力するコンピュータシステム、エッジデバイス制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明では、以下のような解決手段を提供する。【０００８】
本発明は、ゲートウェイに接続されたエッジデバイスを使用して機械学習を行うコンピュータシステムであって、
前記ゲートウェイに接続されたエッジデバイスを検出する検出手段と、
検出した前記エッジデバイスの組み合わせを決定する組み合わせ決定手段と、
決定した前記組み合わせに基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するプログラム決定手段と、
前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる実行手段と、
を備えることを特徴とするコンピュータシステムを提供する。【０００９】
本発明によれば、ゲートウェイに接続されたエッジデバイスを使用して機械学習を行うコンピュータシステムは、前記ゲートウェイに接続されたエッジデバイスを検出し、検出した前記エッジデバイスの組み合わせを決定し、決定した前記組み合わせに基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定し、前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる。【００１０】
本発明は、コンピュータシステムのカテゴリであるが、エッジデバイス制御方法及びプログラム等の他のカテゴリにおいても、そのカテゴリに応じた同様の作用・効果を発揮する。
【発明の効果】
【００１１】
本発明によれば、ネットワーク内のセンサ機器の組み合わせから、所定の機械学習のためのデータを取得し、ユーザが意図することなく、このセンサ機器から可能な学習を行い、結果を出力するコンピュータシステム、エッジデバイス制御方法及びプログラムを提供することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】図１は、エッジデバイス制御システム１の概要を示す図である。
【図２】図２は、エッジデバイス制御システム１の全体構成図である。
【図３】図３は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００の機能ブロック図である。
【図４】図４は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００が実行するデバイス検出処理を示すフローチャートである。
【図５】図５は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００が実行するデバイス検出処理を示すフローチャートである。
【図６】図６は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００が実行するデバイス検出処理を示すフローチャートである。
【図７】図７は、エッジデバイス１００、計算機３００が実行する第１の機械学習処理を示すフローチャートである。
【図８】図８は、提案コンピュータ１０、エッジデバイス１００が実行する第２の機械学習処理を示すフローチャートである。
【図９】図９は、組み合わせデータベースの一例を示す図である。
【図１０】図１０は、プログラムデータベースの一例を示す図である。
【図１１】図１１は、選択画面４００の一例を示す図である。
【図１２】図１２は、設定完了通知画面５００の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【００１４】
［エッジデバイス制御システム１の概要］
本発明の好適な実施形態の概要について、図１に基づいて説明する。図１は、本発明の好適な実施形態であるエッジデバイス制御システム１の概要を説明するための図である。エッジデバイス制御システム１は、提案コンピュータ１０、エッジデバイス（ネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、コンピュータ装置１００ｄ、ドローン１００ｅ）１００、ゲートウェイ２００、計算機３００から構成され、ゲートウェイ２００に接続されたエッジデバイス１００を使用して機械学習を行うコンピュータシステムである。
【００１５】
なお、図１において、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００の数は、適宜変更可能である。また、エッジデバイス１００の種類は、適宜変更可能である。また、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００は、実在する装置に限らず、仮想的な装置であってもよい。また、後述する各処理は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００のいずれか又は複数の組み合わせにより実現されてもよい。
【００１６】
提案コンピュータ１０は、ゲートウェイ２００及び計算機３００とデータ通信可能に接続されたコンピュータ装置である。
【００１７】
エッジデバイス１００は、ゲートウェイ２００とデータ通信可能に接続された端末装置である。エッジデバイス１００は、例えば、動画や静止画等の画像を撮像するネットワークカメラ１００ａや、日照、温度、風力等の空間データや時間データ等の環境データを取得するセンサ装置１００ｂや、携帯電話、携帯情報端末、タブレット端末、パーソナルコンピュータに加え、ネットブック端末、スレート端末、電子書籍端末、携帯型音楽プレーヤ等の電化製品である携帯端末１００ｃ及びパーソナルコンピュータ１００ｄや、無人航空機や無人移動体等のドローン１００ｅや、その他の物品である。
【００１８】
ゲートウェイ２００は、提案コンピュータ１０、エッジデバイス１００、計算機３００とデータ通信可能なネットワーク機器である。ゲートウェイ２００は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続可能なルータやコンピュータ装置等である。
【００１９】
計算機３００は、提案コンピュータ１０及びゲートウェイ２００とデータ通信可能な計算装置である。
【００２０】
はじめに、ゲートウェイ２００は、自身に接続されたエッジデバイス１００を検出する（ステップＳ０１）。ゲートウェイ２００は、ＬＡＮにより接続されたネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、コンピュータ装置１００ｄ、ドローン１００ｅを検出する。
【００２１】
ゲートウェイ２００は、検出したエッジデバイス１００に関するデータを、提案コンピュータ１０に送信する（ステップＳ０２）。
【００２２】
提案コンピュータ１０は、エッジデバイス１００に関するデータを受信する。提案コンピュータ１０は、受信したこのデータに基づいて、エッジデバイス１００の組み合わせを決定する（ステップＳ０３）。提案コンピュータ１０は、このデータに基づいて、予め組み合わせタイプとして記憶したエッジデバイス１００の組み合わせに基づいて、ゲートウェイ２００に接続されたエッジデバイス１００の組み合わせを決定する。
【００２３】
提案コンピュータ１０は、この決定した組み合わせに基づいて、エッジデバイス１００用のプログラムと、機械学習用のプログラムとを決定する（ステップＳ０４）。
【００２４】
提案コンピュータ１０は、エッジデバイス１００用のプログラムを示すデバイス用プログラムデータを、ゲートウェイ２００に送信し、ゲートウェイ２００が、このデバイス用プログラムデータを対応するエッジデバイス１００に送信するとともに、提案コンピュータ１０は、機械学習用のプログラムを示す学習用プログラムデータを、計算機３００に送信する（ステップＳ０５）。
【００２５】
計算機３００は、学習用プログラムデータを受信し、エッジデバイス１００は、デバイス用プログラムデータを受信する。
【００２６】
計算機３００は、学習用プログラムデータを記憶する（ステップＳ０６）。
【００２７】
エッジデバイス１００は、デバイス用プログラムデータに基づいて、エッジデバイス１００用のプログラムを実行する（ステップＳ０７）。エッジデバイス１００は、デバイス用プログラムデータに基づいて、画像の撮像、環境データの取得等を実行する。
【００２８】
エッジデバイス１００は、エッジデバイス１００用のプログラムデータを実行した結果を示すデバイス結果データを、ゲートウェイ２００に送信し、ゲートウェイ２００は、このデバイス結果データを、計算機３００に送信する（ステップＳ０８）。
【００２９】
計算機３００は、デバイス結果データを受信する。計算機３００は、このデバイス結果データに基づいて、学習用プログラムデータを実行し、機械学習用のプログラムを実行する（ステップＳ０９）。
【００３０】
計算機３００は、機械学習用のプログラムを実行した結果を示す計算結果データを、ゲートウェイ２００に送信し、ゲートウェイ２００は、この計算結果データを、携帯端末１００ｃやパーソナルコンピュータ１００ｄといった端末装置であるエッジデバイス１００に送信する（ステップＳ１０）。
【００３１】
エッジデバイス１００は、計算結果データを受信する。エッジデバイス１００は、計算結果データに基づいて、計算結果を表示する（ステップＳ１１）。
【００３２】
以上が、エッジデバイス制御システム１の概要である。
【００３３】
［エッジデバイス制御システム１のシステム構成］
図２に基づいて、本発明の好適な実施形態であるエッジデバイス制御システム１のシステム構成について説明する。図２は、本発明の公的な実施形態であるエッジデバイス制御システム１のシステム構成を示す図である。エッジデバイス制御システム１は、提案コンピュータ１０、エッジデバイス（ネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、パーソナルコンピュータ１００ｄ、ドローン１００ｅ）１００、ゲートウェイ２００、計算機３００、公衆回線網（インターネット網や、第３、第４世代通信網等）５から構成され、ゲートウェイ２００に接続されたエッジデバイス１００を使用して機械学習を行うコンピュータシステムである。
【００３４】
なお、エッジデバイス制御システム１を構成する各装置類の数及びその種類は、適宜変更可能である。また、エッジデバイス制御システム１は、実在する装置に限らず、仮想的な装置類により実現されてもよい。また、後述する各処理は、エッジデバイス制御システム１を構成する各装置類のいずれか又は複数の組み合わせにより実現されてもよい。
【００３５】
提案コンピュータ１０は、後述の機能を備えた上述したコンピュータ装置である。
【００３６】
エッジデバイス１００は、後述の機能を備えた上述した端末装置である。
【００３７】
ゲートウェイ２００は、後述の機能を備えた上述したネットワーク機器である。
【００３８】
計算機３００は、後述の機能を備えた上述した計算装置である。
【００３９】
［各機能の説明］
図３に基づいて、本発明の好適な実施形態であるエッジデバイス制御システム１の機能について説明する。図３は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００の機能ブロック図を示す図である。
【００４０】
提案コンピュータ１０は、制御部１１として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等を備え、通信部１２として、他の機器と通信可能にするためのデバイス、例えば、ＩＥＥＥ８０２．１１に準拠したＷｉＦｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）対応デバイス等を備える。また、提案コンピュータ１０は、記憶部１３として、ハードディスクや半導体メモリ、記録媒体、メモリカード等によるデータのストレージ部を備える。
【００４１】
提案コンピュータ１０において、制御部１１が所定のプログラムを読み込むことにより、通信部１２と協働して、機器データ受信モジュール２０、組み合わせ決定モジュール２１、プログラム決定モジュール２２、選択通知送信モジュール２３、選択アプリケーションデータ受信モジュール２４、プログラムデータ送信モジュール２５、性能判断モジュール２６、デバイス結果データ受信モジュール２７、デバイス結果データ送信モジュール２８を実現する。また、提案コンピュータ１０において、制御部１１が所定のプログラムを読み込むことにより、記憶部１３と協働して、記憶モジュール３０を実現する。
【００４２】
エッジデバイス１００は、提案コンピュータ１０と同様に、制御部１１０として、ＣＰＵ、ＲＡＭ、ＲＯＭ等を備え、通信部１２０として、他の機器と通信可能にするためのデバイスを備える。また、エッジデバイス１００は、処理部１４０として、環境データや画像データ等を取得するための各種デバイス等を備える。
【００４３】
エッジデバイス１００において、制御部１１０が所定のプログラムを読み込むことにより、通信部１２０と協働して、選択通知受信モジュール１５０、選択アプリケーションデータ送信モジュール１５１、プログラムデータ受信モジュール１５２、デバイス結果データ送信モジュール１５３、デバイス結果データ受信モジュール１５４を実現する。また、エッジデバイス１００において、制御部１１０が所定のプログラムを読み込むことにより、処理部１４０と協働して、表示モジュール１６０、プログラム設定モジュール１６１、データ取得モジュール１６２、計算モジュール１６３を実現する。
【００４４】
ゲートウェイ２００は、提案コンピュータ１０と同様に、制御部２１０として、ＣＰＵ、ＲＡＭ、ＲＯＭ等を備え、通信部２２０として、他の機器と通信可能にするためのデバイスを備える。
【００４５】
ゲートウェイ２００において、制御部２１０が所定のプログラムを読み込むことにより、通信部２２０と協働して、デバイス検出モジュール２５０、機器データ送信モジュール２５１を実現する。
【００４６】
計算機３００は、提案コンピュータ１０と同様に、制御部３１０として、ＣＰＵ、ＲＡＭ、ＲＯＭ等を備え、通信部３２０として、他の機器と通信可能にするためのデバイスを備え、記憶部３３０として、データのストレージ部を備える。また、計算機３００は、処理部３４０として、各種プログラムを実行する各種デバイス等を備える。
【００４７】
計算機３００において、制御部３１０が所定のプログラムを読み込むことにより、通信部３２０と協働して、プログラムデータ受信モジュール３５０、デバイス結果データ受信モジュール３５１、計算結果データ送信モジュール３５２を実現する。また、計算機３００において、制御部３１０が所定のプログラムを読み込むことにより、記憶部３３０と協働して、記憶モジュール３６０を実現する。また、計算機３００において、制御部３１０が所定のプログラムを読み込むことにより、処理部３４０と協働して、計算モジュール３７０を実現する。
【００４８】
［デバイス検出処理］
図４、図５及び図６に基づいて、エッジデバイス制御システム１が実行するデバイス検出処理について説明する。図４、図５及び図６は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００が実行するデバイス検出処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
【００４９】
デバイス検出モジュール２５０は、自身に接続されたエッジデバイス１００を検出する（ステップＳ２０）。ステップＳ２０において、デバイス検出モジュール２５０は、ＬＡＮ接続されたエッジデバイス１００を検出する。デバイス検出モジュール２５０は、エッジデバイス１００として、ネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、コンピュータ装置１００ｄ、ドローン１００ｅを検出する。
【００５０】
デバイス検出モジュール２５０は、検出したエッジデバイス１００の機器データを取得する（ステップＳ２１）。ステップＳ２１において、デバイス検出モジュール２５０は、エッジデバイス１００の固有な識別子と、処理性能とを機器データとして取得する。エッジデバイス１００の固有な識別子とは、機器名称、製造番号、機器番号、ＩＰアドレス、ＭＡＣアドレス等である。また、処理性能とは、単位時間当たりに処理できる命令数や様々な処理を実行する速度等である。デバイス検出モジュール２５０は、検出したエッジデバイス１００から、機器データを取得してもよいし、エッジデバイス１００から取得した機器名称や製造番号や機器番号に基づいて、このエッジデバイス１００の製造元や販売元等のコンピュータやデータベース等から必要なデータを取得してもよい。
【００５１】
機器データ送信モジュール２５１は、取得した機器データを、提案コンピュータ１０に送信する（ステップＳ２２）。
【００５２】
機器データ受信モジュール２０は、機器データを受信する。組み合わせ決定モジュール２１は、予め記憶モジュール３０が記憶する組み合わせデータベースに基づいて、エッジデバイス１００の組み合わせを決定する（ステップＳ２３）。ステップＳ２３において、組み合わせ決定モジュール２１は、組み合わせデータベースを参照することにより、受信した機器データに含まれるエッジデバイス１００の組み合わせタイプを決定する。
【００５３】
［組み合わせデータベース］
図９に基づいて、記憶モジュール３０が記憶する組み合わせデータベースについて説明する。図９は、組み合わせデータベースの一例を示す図である。記憶モジュール３０は、組み合わせタイプと、複数のエッジデバイス１００とを対応付けて記憶する。タイプ名とは、組み合わせタイプの名称である。また、デバイス名とは、エッジデバイス１００の識別子である。記憶モジュール３０は、タイプ名として、「タイプ１」、「タイプ２」等を記憶する。記憶モジュール３０は、デバイス名として、「ＴＯＴ−ＳＥ０１（トマト用温度センサ）、ＣＡＭ０１（カメラ）、ＰＨ０６（スマホ）」、「ＢＢ−０１（ビニルハウス用センサキット）、ＷＥＢＣＡＭ２５（カメラ）、ＧＡＬ（タブレット）」等を記憶する。提案コンピュータ１０は、予めエッジデバイス１００やその他の端末装置や外部コンピュータ等からこの組み合わせデータベースを取得し、記憶する。
【００５４】
なお、デバイス名に含まれるエッジデバイス１００の数は、１又は複数であればよく、適宜変更可能である。また、タイプ名は、図９で示した名称に限らず、適宜変更可能である。また、一のデータベースにより、全ての組み合わせタイプを分類するのではなく、組み合わせタイプ毎に、一のデータベースが存在していてもよい。すなわち、組み合わせタイプの数と同数のデータベースが存在していてもよい。
【００５５】
ステップＳ２３において、組み合わせ決定モジュール２１は、今回受信した機器データに含まれるエッジデバイス１００に該当するタイプ名を特定することにより、組み合わせタイプを決定し、エッジデバイス１００の組み合わせを決定する。例えば、エッジデバイス１００は、ネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、コンピュータ装置１００ｄ、ドローン１００ｅであることから、このエッジデバイス１００に対応する組み合わせタイプとして、タイプ１とタイプ２とを決定する。
【００５６】
プログラム決定モジュール２２は、この決定した組み合わせに基づいて、エッジデバイス１００用のプログラムと、機械学習用のプログラムとを決定する（ステップＳ２４）。ステップＳ２４において、プログラム決定モジュール２２は、プログラムデータベースを参照することにより、エッジデバイス１００用のプログラムと、機械学習用のプログラムとを決定する。
【００５７】
［プログラムデータベース］
図１０に基づいて、記憶モジュール３０が記憶するプログラムデータベースについて説明する。図１０は、プログラムデータベースの一例を示す図である。記憶モジュール３０は、タイプ名と、機械学習データセットとを対応付けて記憶する。タイプ名とは、上述した組み合わせタイプの名称である。機械学習データセットとは、対象とするアプリケーションの名称、エッジデバイス１００用のプログラムの名称及び機械学習用のプログラムの名称である。記憶モジュール３０は、タイプ名として、「タイプ１」、「タイプ２」等を記憶する。記憶モジュール３０は、機械学習データセットとして、「トマト栽培用アプリケーション、エッジデバイス用プログラムセットＦ、コンピュータ用機械学習プログラムＢ」、「キュウリ栽培用アプリケーション、エッジデバイス用プログラムセットＶ、コンピュータ用機械学習プログラムＤ」等を記憶する。各プログラムの名称には、各処理を実行するために必要なプログラムが紐付けられている。提案コンピュータ１０は、予めエッジデバイス１００やその他の端末装置や外部コンピュータ等からこのプログラムデータベースを取得し、記憶する。
【００５８】
なお、タイプ名は、図１０で示した名称に限らず、適宜変更可能である。また、アプリケーションの名称、エッジデバイス１００用のプログラムの名称、機械学習用のプログラムの名称は、図１０で示した名称に限らず、適宜変更可能である。また、一のデータベースにより、全ての機械学習データセットを分類するのではなく、機械学習データセット毎に、一のデータベースが存在していてもよい。すなわち、機械学習データセットの数と同数のデータベースが存在していてもよい。
【００５９】
ステップＳ２４において、プログラム決定モジュール２２は、今回決定した組み合わせタイプに対応付けられた機械学習データセットを抽出することにより、機械学習データセットを決定し、この機械学習データセットに含まれる対象とするアプリケーションの名称、エッジデバイス１００用のプログラムの名称及び機械学習用のプログラムの名称を決定する。
【００６０】
プログラム決定モジュール２２は、決定した組み合わせタイプが複数存在するか否かを判断する（ステップＳ２５）。ステップＳ２５において、プログラム決定モジュール２２は、複数存在すると判断した場合（ステップＳ２５  ＹＥＳ）、選択通知送信モジュール２３は、携帯端末１００ｃ、コンピュータ装置１００ｄ等の表示部や入力部等のユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス１００に、選択通知を送信する（ステップＳ２６）。ステップＳ２６において、提案コンピュータ１０は、選択通知を、ゲートウェイ２００に送信し、ゲートウェイ２００は、この選択通知をさらにエッジデバイス１００に送信する。
【００６１】
選択通知受信モジュール１５０は、選択通知を受信する。表示モジュール１６０は、受信した選択通知に基づいて、選択画面を表示する（ステップＳ２７）。
【００６２】
図１１に基づいて、表示モジュール１６０が表示する選択画面について説明する。図１１は、選択画面の一例を示す図である。表示モジュール１６０は、選択画面４００として、説明文表示領域４１０、アプリケーション選択領域４２０、送信アイコン４３０を表示する。説明文表示領域４１０は、アプリケーションを選択する画面であることを通知する領域である。表示モジュール１６０は、「このローカルネットワークにつながれているデバイスの組み合わせは、以下の学習を行うことができます。どれを選択しますか？」を表示する。アプリケーション選択領域４２０は、上述した組み合わせタイプをすべて表示する領域である。表示モジュール１６０は、「１：トマト栽培用アプリケーション」、「２：キュウリ栽培用アプリケーション」、「３：鶏監視用アプリケーション」を表示する。アプリケーション選択領域４２０は、ユーザからの入力を受け付け、一のアプリケーションの選択を受け付ける。表示モジュール１６０は、入力を受け付けた一のアプリケーションに対して、選択アイコン４４０を表示する。表示モジュール１６０は、選択アイコン４４０として、チェックマークを表示する。送信アイコン４３０は、ユーザからの入力を受け付け、入力を受け付けることにより、選択アプリケーションデータ送信モジュール１５１は、選択されたアプリケーションを、選択アプリケーションデータとして、提案コンピュータ１０に送信する。
【００６３】
なお、上述した各領域及びアイコンの表示内容、表示態様、表示位置、表示順序等は適宜変更可能である。また、アプリケーション選択領域４２０は、複数のアプリケーションに対する選択を受け付けてもよい。
【００６４】
表示モジュール１６０は、選択入力を受け付けたか否かを判断する（ステップＳ２８）。ステップＳ２８において、表示モジュール１６０は、アプリケーションの選択入力を受け付け、送信アイコン４３０の入力を受け付けたか否かを判断する。表示モジュール１６０は、選択入力を受け付けていないと判断した場合（ステップＳ２８  ＮＯ）、すなわち、アプリケーションの選択入力を受け付けていない場合や、アプリケーションの選択入力を受け付けたものの、送信アイコン４３０の入力を受け付けていない場合、アプリケーションの選択入力及び送信アイコン４３０の入力を受け付けるまで、本処理を繰り返す。
【００６５】
一方、ステップＳ２８において、表示モジュール１６０は、選択入力を受け付けた場合（ステップＳ２８  ＹＥＳ）、すなわち、アプリケーションの選択入力を受け付けるとともに送信アイコン４３０の入力を受け付けた場合、選択アプリケーションデータ送信モジュール１５１は、選択入力を受け付けたアプリケーションを示す選択アプリケーションデータを、提案コンピュータ１０に送信する（ステップＳ２９）。ステップＳ２９において、エッジデバイス１００は、選択アプリケーションデータを、ゲートウェイ２００に送信し、ゲートウェイ２００は、この選択アプリケーションデータを、提案コンピュータ１０に送信する。
【００６６】
選択アプリケーションデータ受信モジュール２４は、選択アプリケーションデータを受信する。
【００６７】
一方、ステップＳ２５において、プログラム決定モジュール２２は、複数存在しないと判断した場合（ステップＳ２５  ＮＯ）又は選択アプリケーションデータ受信モジュール２４は、選択アプリケーションデータを受信した場合、プログラム決定モジュール２２は、この決定された一の組み合わせタイプ又はエッジデバイス１００による選択入力を受け付けた選択アプリケーションデータに対応付けられた一の組み合わせタイプに対応付けられた機械学習データセットに含まれるエッジデバイス１００用のプログラムと、機械学習用プログラムとを抽出する（ステップＳ３０）。ステップＳ３０において、プログラム決定モジュール２２は、エッジデバイス１００用のプログラムの名称に紐付けられたプログラムデータを抽出するとともに、機械学習用プログラムの名称に紐付けられたプログラムデータを抽出する。
【００６８】
プログラムデータ送信モジュール２５は、機械学習用プログラムを示す学習用プログラムデータを、計算機３００に送信する（ステップＳ３１）。
【００６９】
プログラムデータ受信モジュール３５０は、学習用プログラムデータを受信する。記憶モジュール３６０は、受信した学習用プログラムデータを記憶する（ステップＳ３２）。
【００７０】
プログラムデータ送信モジュール２５は、エッジデバイス１００用のプログラムを示すデバイス用プログラムデータを、エッジデバイス１００に送信する（ステップＳ３３）。ステップＳ３３において、提案コンピュータ１０は、デバイス用プログラムデータを、ゲートウェイ２００に送信し、ゲートウェイ２００は、デバイス用プログラムデータに対応するエッジデバイス１００の各々に、デバイス用プログラムデータを送信する。
【００７１】
プログラムデータ受信モジュール１５２は、デバイス用プログラムデータを受信する。プログラム設定モジュール１６１は、受信したデバイス用プログラムデータに基づいて、エッジデバイス１００用のプログラムを設定する（ステップＳ３４）。ステップＳ３４において、エッジデバイス１００毎に、プログラムが設定される。すなわち、本実施形態において、ネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃのそれぞれが、自身に対応するプログラムを設定する。
【００７２】
表示モジュール１６０は、プログラムが設定されたことを示す設定完了通知を表示する（ステップＳ３５）。ステップＳ３５において、上述したユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス１００にプログラムが設定された場合、このエッジデバイス１００に上述した設定完了通知を表示する。また、このようなエッジデバイス１００にプログラムが設定されなかった場合、提案コンピュータ１０は、ゲートウェイ２００に接続されたこのようなエッジデバイス１００に、この設定完了通知を表示させる。
【００７３】
図１２に基づいて、表示モジュール１６０が表示する設定完了通知について説明する。図１２は、設定完了通知の一例を示す図である。表示モジュール１６０は、設定完了通知画面５００として、設定内容通知領域５１０、学習内容通知領域５２０、終了アイコン５３０を表示する。設定内容通知領域５１０は、今回設定が完了したプログラムに関する内容を通知する領域である。表示モジュール１６０は、「トマト栽培用アプリケーションの設定が完了しました。」と表示する。学習内容通知領域５２０は、学習内容及びプログラムの実行に関する内容を通知する領域である。表示モジュール１６０は、「１週間、データ取得と学習を行いますので、１１月３０日から収穫時期予測を行います。」と表示する。終了アイコン５３０は、ユーザからの入力を受け付けることにより、設定完了通知画面の表示を終了する。
【００７４】
なお、設定完了通知画面５００における各領域及びアイコンの表示内容、表示態様、表示位置、表示順序等は適宜変更可能である。
【００７５】
以上が、デバイス検出処理である。
【００７６】
［第１の機械学習処理］
図７に基づいて、エッジデバイス制御システム１が実行する第１の機械学習処理について説明する。図７は、エッジデバイス１００、計算機３００が実行する第１の機械学習処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
【００７７】
データ取得モジュール１６２は、各種データを取得する（ステップＳ４０）。ステップＳ４０において、データ取得モジュール１６２は、エッジデバイス１００用のプログラムに基づいて、各種データを取得する。データ取得モジュール１６２は、例えば、ネットワークカメラ１００ａである場合、画像を撮像することにより、画像データを取得し、センサ装置１００ｂである場合、環境データを取得する。
【００７８】
デバイス結果データ送信モジュール１５３は、取得した各種データを、デバイス結果データとして、計算機３００に送信する（ステップＳ４１）。ステップＳ４１において、エッジデバイス１００は、ゲートウェイ２００にデバイス結果データを送信し、ゲートウェイ２００は、計算機３００にデバイス結果データを送信する。
【００７９】
デバイス結果データ受信モジュール３５１は、デバイス結果データを受信する。計算モジュール３７０は、受信したデバイス結果データに基づいて、記憶した機械学習用のプログラムを実行することにより、機械学習を実行する（ステップＳ４２）。
【００８０】
計算結果データ送信モジュール３５２は、機械学習を実行した結果である計算結果データを、エッジデバイス１００に送信する（ステップＳ４３）。ステップＳ４３において、計算結果データ送信モジュール３５２は、上述したユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス１００に計算結果データを送信する。具体的には、携帯端末１００ｃやパーソナルコンピュータ１００ｄに計算結果データを送信する。計算機３００は、ゲートウェイ２００に計算結果データを送信し、ゲートウェイ２００は、エッジデバイス１００に計算結果データを送信する。
【００８１】
表示モジュール１６０は、計算結果データに基づいて、計算結果を表示する（ステップＳ４４）。
【００８２】
以上が、第１の機械学習処理である。
【００８３】
［第２の機械学習処理］
図８に基づいて、エッジデバイス制御システム１が実行する第２の機械学習処理について説明する。図８は、提案コンピュータ１０、エッジデバイス１００が実行する第２の機械学習処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
【００８４】
データ取得モジュール１６２は、各種データを取得する（ステップＳ５０）。ステップＳ５０の処理は、上述したステップＳ４０の処理と同様である。
【００８５】
デバイス結果データ送信モジュール１５３は、デバイス結果データを、提案コンピュータ１０に送信する（ステップＳ５１）。
【００８６】
デバイス結果データ受信モジュール２７は、デバイス結果データを受信する。性能判断モジュール２６は、ゲートウェイ２００に接続されたエッジデバイス１００の処理性能が、所定の性能以上であるか否かを判断する（ステップＳ５２）。ステップＳ５２において、性能判断モジュール２６は、上述した機器データに基づいて、処理性能を判断する。所定の性能とは、機械学習を行うに足る性能である。なお、処理性能を複数の段階に分けて判断し、段階毎に、後述する処理を実行してもよい。例えば、第１の段階の処理性能を有するエッジデバイス１００では、後述の処理を実行させ、第２の段階の処理性能を有するエッジデバイス１００では、後述の処理の一部を実行させ、第３の段階の処理性能を有するエッジデバイス１００では、後述の処理の一部のさらにその一部を実行させるといった具合である。
【００８７】
ステップＳ５２において、性能判断モジュール２６は、所定の性能以上ではないと判断した場合（ステップＳ５２  ＮＯ）、デバイス結果データ送信モジュール２８は、デバイス結果データを、計算機３００に送信し（ステップＳ５３）、本処理を終了する。エッジデバイス制御システム１は、上述した第１の機械学習処理をこのデバイス結果データに対して実行すればよい。
【００８８】
一方、ステップＳ５２において、性能判断モジュール２６は、所定の性能以上であると判断した場合（ステップＳ５２  ＹＥＳ）、デバイス結果データ送信モジュール２８は、デバイス結果データ及びこのデバイス結果データに対応する教師データを、このエッジデバイス１００に送信する（ステップＳ５４）。ステップＳ５４において、デバイス結果データ送信モジュール２８は、計算機３００や他のコンピュータ等から取得した教師データを送信してもよいし、予め記憶した教師データを送信してもよい。また、デバイス結果データ送信モジュール２８は、学習用プログラムデータを、教師データとともに送信する。
【００８９】
デバイス結果データ受信モジュール１５４は、デバイス結果データ及び教師データを受信する。なお、デバイス結果データ受信モジュール１５４は、教師データを、提案コンピュータ１０以外の他のコンピュータ等から直接ダウンロードしてもよい。このようにすることにより、エッジデバイス制御システム１は、エッジデバイス１００に、デバイス結果データに対応する教師データをダウンロードさせるように制御する。
【００９０】
計算モジュール１６３は、デバイス結果データ及び教師データに基づいて、機械学習を実行する（ステップＳ５５）。ステップＳ５５において、計算モジュール１６３は、デバイス結果データ及び教師データと、学習用プログラムデータとに基づいて、機械学習用のプログラムを実行することにより、機械学習を実行する。
【００９１】
表示モジュール１６０は、機械学習を実行した結果である計算結果データに基づいて、計算結果を表示する（ステップＳ５６）。ステップＳ５６において、エッジデバイス１００は、他のエッジデバイス１００に、計算結果データを送信し、この他のエッジデバイス１００が計算結果データに基づいて、計算結果を表示してもよい。
【００９２】
以上が、第２の機械学習処理である。
【００９３】
上述した手段、機能は、コンピュータ（ＣＰＵ、情報処理装置、各種端末を含む）が、所定のプログラムを読み込んで、実行することによって実現される。プログラムは、例えば、コンピュータからネットワーク経由で提供される（ＳａａＳ：ソフトウェア・アズ・ア・サービス）形態で提供される。また、プログラムは、例えば、フレキシブルディスク、ＣＤ（ＣＤ−ＲＯＭなど）、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭなど）等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し記憶して実行する。また、そのプログラムを、例えば、磁気ディスク、光ディスク、光磁気ディスク等の記憶装置（記録媒体）に予め記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【００９４】
以上、本発明の実施形態について説明したが、本発明は上述したこれらの実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００９５】
１  エッジデバイス制御システム、１０  提案コンピュータ、１００  エッジデバイス、２００  ゲートウェイ、３００  計算機
【図１】
2018100678.tif 000003
【図２】
2018100678.tif 000004
【図３】
2018100678.tif 000005
【図４】
2018100678.tif 000006
【図５】
2018100678.tif 000007
【図６】
2018100678.tif 000008
【図７】
2018100678.tif 000009
【図８】
2018100678.tif 000010
【図９】
2018100678.tif 000011
【図１０】
2018100678.tif 000012
【図１１】
2018100678.tif 000013
【図１２】
2018100678.tif 000014
【手続補正書】
【提出日】平成29年8月25日(2017.8.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ゲートウェイに接続されたエッジデバイスを使用して機械学習を行うコンピュータシステムであって、
前記ゲートウェイに接続されたエッジデバイスを検出する検出手段と、
検出した前記エッジデバイスの組み合わせを決定する組み合わせ決定手段と、
決定した前記組み合わせに基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するプログラム決定手段と、
前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる実行手段と、
検出した前記エッジデバイスの処理性能を取得する取得手段と、
取得した前記処理性能に応じて、前記エッジデバイスに、データ及び当該データに対応する教師データを送信する送信手段と、
前記エッジデバイスに、前記教師データを用いて前記データを機械学習させるように制御する制御手段と、
を備えることを特徴とするコンピュータシステム。
【請求項２】
前記エッジデバイスに、前記データに対応する教師データをダウンロードさせるように制御するダウンロード手段と、
を備えることを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
ゲートウェイに接続されたエッジデバイスを使用して機械学習を行うコンピュータシステムが実行するエッジデバイス制御方法であって、
前記ゲートウェイに接続されたエッジデバイスを検出するステップと、
検出した前記エッジデバイスの組み合わせを決定するステップと、
決定した前記組み合わせに基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するステップと、
前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させるステップと、
検出した前記エッジデバイスの処理性能を取得するステップと、
取得した前記処理性能に応じて、前記エッジデバイスに、データ及び当該データに対応する教師データを送信するステップと、
前記エッジデバイスに、前記教師データを用いて前記データを機械学習させるように制御するステップと、
を備えることを特徴とするエッジデバイス制御方法。
【請求項４】
ゲートウェイに接続されたエッジデバイスを使用して機械学習を行うコンピュータシステムに、
前記ゲートウェイに接続されたエッジデバイスを検出するステップ、
検出した前記エッジデバイスの組み合わせを決定するステップ、
決定した前記組み合わせに基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するステップ、
前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させるステップ、
検出した前記エッジデバイスの処理性能を取得するステップ、
取得した前記処理性能に応じて、前記エッジデバイスに、データ及び当該データに対応する教師データを送信するステップ、
前記エッジデバイスに、前記教師データを用いて前記データを機械学習させるように制御するステップ、
を実行させるためのコンピュータ読み取り可能なプログラム。
【国際調査報告】
2018100678.tif 000015
2018100678.tif 000016
2018100678.tif 000017
2018100678.tif 000018