TOP > 国内特許検索 > 深層学習自動学習システム、クライアント装置およびサーバ装置 > 明細書

明細書 :深層学習自動学習システム、クライアント装置およびサーバ装置

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2018-190239 (P2018-190239A)
公開日 平成30年11月29日(2018.11.29)
発明の名称または考案の名称 深層学習自動学習システム、クライアント装置およびサーバ装置
国際特許分類 G06N  99/00        (2010.01)
G06F   9/48        (2006.01)
G06F  21/62        (2013.01)
FI G06N 99/00 150
G06F 9/46 457
G06F 21/62 318
請求項の数または発明の数 13
出願形態 OL
全頁数 20
出願番号 特願2017-093205 (P2017-093205)
出願日 平成29年5月9日(2017.5.9)
発明者または考案者 【氏名】市 村 匠
【氏名】鎌 田 真
出願人 【識別番号】507234438
【氏名又は名称】公立大学法人県立広島大学
個別代理人の代理人 【識別番号】100091982、【弁理士】、【氏名又は名称】永井 浩之
【識別番号】100091487、【弁理士】、【氏名又は名称】中村 行孝
【識別番号】100082991、【弁理士】、【氏名又は名称】佐藤 泰和
【識別番号】100105153、【弁理士】、【氏名又は名称】朝倉 悟
【識別番号】100152205、【弁理士】、【氏名又は名称】吉田 昌司
審査請求 未請求
要約 【課題】クライアント装置とサーバ装置間の通信を深層学習が完了するまで保持する必要がなく、最新の学習結果をサーバ装置からクライアント装置にインターネットを通じてセキュアに提供する。
【解決手段】実施形態による深層学習自動学習システム1は、インターネットを介して接続されたクライアント装置100とサーバ装置200を備え、サーバ装置200は、バージョン管理情報を暗号化した暗号化学習バージョンデータをクライアント装置100にプッシュ通知するプッシュ通知部214を有し、クライアント装置100は、暗号化学習バージョンデータを復号化してバージョン管理情報を取得するバージョン管理情報取得部113と、バージョン管理情報に対応する学習結果データを既に取得しているか否かを判定し、取得していない場合はサーバ装置200に対して学習結果データの送信を要求するデータ要求部114と、を有する。
【選択図】図1
特許請求の範囲 【請求項1】
インターネットを介して接続されたクライアント装置およびサーバ装置を備える深層学習自動学習システムであって、
前記クライアント装置は、
前記クライアント装置の識別情報に基づいて公開鍵および秘密鍵を生成する鍵生成部と、
前記サーバ装置に新規学習データを送信する新規学習データ送信部と、を有し、
前記サーバ装置は、
前記公開鍵を用いて、前記新規学習データに基づく学習結果データを暗号化して、暗号化学習結果データを生成する学習結果データ暗号化部と、
前記公開鍵を用いて、前記学習結果データを識別するためのバージョン管理情報を暗号化して、暗号化学習バージョンデータを生成するバージョン管理情報暗号化部と、
前記クライアント装置に前記暗号化学習バージョンデータをプッシュ通知するプッシュ通知部と、を有し、
前記クライアント装置は、
前記サーバ装置からプッシュ通知された前記暗号化学習バージョンデータを、前記秘密鍵を用いて復号化して、前記バージョン管理情報を取得するバージョン管理情報取得部と、
前記バージョン管理情報に対応する学習結果データを既に取得しているか否かを判定し、取得していない場合は前記サーバ装置に対して前記学習結果データの送信を要求するデータ要求部と、
前記データ要求部の要求に応じて前記サーバ装置から前記クライアント装置に送信された前記暗号化学習結果データを、前記秘密鍵を用いて復号化して、前記学習結果データを取得する学習結果データ取得部と、をさらに有することを特徴とする深層学習自動学習システム。
【請求項2】
前記サーバ装置は、前記クライアント装置の前記識別情報に基づいて登録IDを発行する登録ID発行部をさらに有し、
前記プッシュ通知部は、前記登録IDを用いて、前記クライアント装置に前記暗号化学習バージョンデータをプッシュ通知することを特徴とする請求項1に記載の深層学習自動学習システム。
【請求項3】
前記学習結果データ暗号化部は、前記学習結果データおよび前記登録IDを暗号化して前記暗号化学習結果データを生成し、
前記バージョン管理情報暗号化部は、前記バージョン管理情報および前記登録IDを暗号化して前記暗号化学習バージョンデータを生成することを特徴とする請求項2に記載の深層学習自動学習システム。
【請求項4】
前記クライアント装置は、前記暗号化学習バージョンデータを復号化して得られた登録IDと、前記暗号化学習結果データを復号化して得られた登録IDとが一致する場合に、前記学習結果データを用いて構造適応型深層学習法による推論を行う推論部をさらに有することを特徴とする請求項3に記載の深層学習自動学習システム。
【請求項5】
前記サーバ装置は、
前記クライアント装置から受信した前記新規学習データを学習データDBに保存する新規学習データ保存部と、
前記学習データDBの学習データが所定の基準を満たす場合に、前記学習データを学習用計算機に送信する学習データ送信部と、をさらに有することを特徴とする請求項1~4のいずれかに記載の深層学習自動学習システム。
【請求項6】
前記所定の基準は、一定量のデータが溜まった場合、または、前記新規学習データと既存学習データとの誤差が閾値を超えた場合であることを特徴とする請求項5に記載の深層学習自動学習システム。
【請求項7】
前記学習用計算機は、前記学習データを用いて構造適応型深層学習法により学習を行う深層学習実行部を有することを特徴とする請求項5または6に記載の深層学習自動学習システム。
【請求項8】
前記クライアント装置は、
前記学習結果データが取得された後、前記サーバ装置に対して前記暗号化学習結果データを消去するよう要求するデータ消去要求部をさらに備えることを特徴とする請求項1~7のいずれかに記載の深層学習自動学習システム。
【請求項9】
前記クライアント装置は、
前記学習結果データを用いて行われた推論の結果を出力する出力部と、
をさらに備えることを特徴とする請求項1~8のいずれかに記載の深層学習自動学習システム。
【請求項10】
前記サーバ装置は、
前記クライアント装置から前記学習結果データの送信要求を受信すると、前記暗号化学習結果データを前記クライアント装置に送信する学習結果データ送信部をさらに備えることを特徴とする請求項1~9のいずれかに記載の深層学習自動学習システム。
【請求項11】
前記サーバ装置は、
前記クライアント装置から前記暗号化学習結果データの消去リクエストを受信すると、前記暗号化学習結果データを消去するデータ消去部をさらに備えることを特徴とする請求項1~10のいずれかに記載の深層学習自動学習システム。
【請求項12】
インターネットを介してサーバ装置に接続されたクライアント装置であって、
前記クライアント装置の識別情報に基づいて公開鍵および秘密鍵を生成する鍵生成部と、
前記サーバ装置に新規学習データを送信する新規学習データ送信部と、
前記サーバ装置からプッシュ通知された暗号化学習バージョンデータを、前記秘密鍵を用いて復号化して、学習結果データを識別するためのバージョン管理情報を取得するバージョン管理情報取得部と、
前記バージョン管理情報に対応する学習結果データを既に取得しているか否かを判定し、取得していない場合は前記サーバ装置に対して前記学習結果データの送信を要求するデータ要求部と、
前記データ要求部の要求に応じて前記サーバ装置から前記クライアント装置に送信された暗号化学習結果データを、前記秘密鍵を用いて復号化して、前記学習結果データを取得する学習結果データ取得部と、
を備えることを特徴とするクライアント装置。
【請求項13】
インターネットを介してクライアント装置に接続されたサーバ装置であって、
前記クライアント装置から受信した公開鍵を用いて、学習結果データを暗号化して暗号化学習結果データを生成する学習結果データ暗号化部と、
前記公開鍵を用いて、前記学習結果データを識別するためのバージョン管理情報を暗号化して暗号化学習バージョンデータを生成するバージョン管理情報暗号化部と、
前記クライアント装置に前記暗号化学習バージョンデータをプッシュ通知するプッシュ通知部と、
を備えることを特徴とするサーバ装置。
発明の詳細な説明 【技術分野】
【0001】
本発明は、深層学習自動学習システム、クライアント装置およびサーバ装置に関し、より詳しくは、クライアント装置からサーバ装置に送信された学習データに基づいて深層学習を行い、最新の学習結果をサーバ装置からクライアント装置にインターネットを通じてセキュアに提供する深層学習自動学習システム、ならびに、当該深層学習自動学習システムが備えるクライアント装置およびサーバ装置に関する。
【背景技術】
【0002】
センサー等の外部装置から得られた学習データを用いて深層学習を行うシステムが活発に研究されている。深層学習は、多層構造のニューラルネットワークを用いた機械学習の一種である。深層学習の一手法として、構造適応型深層学習法が知られている(非特許文献1参照)。この構造適応型深層学習法は、DBN(Deep Brief Network)において、最適な隠れニューロン数および層の数を学習中に自動で求めるための手法である。
【0003】
なお、特許文献1には、クライアントコンピュータが生成した診断データをベンダーコンピュータシステムにより解析して推奨データを生成し、クライアントに対し推奨データを伝達する方法が記載されている。
【先行技術文献】
【0004】

【特許文献1】特開2004-348730号公報
【0005】

【非特許文献1】鎌田真、市村匠、原章、“ニューロン生成/消滅アルゴリズムによる構造適応型Restricted Boltzmann Machine”、計測自動制御学会第8回コンピューテーショナル・インテリジェンス研究会、pp.90-96(2015)
【発明の概要】
【発明が解決しようとする課題】
【0006】
深層学習を利用するための情報処理システムとして、インターネットを介して接続されたクライアント装置とサーバ装置を備えるシステムであって、クライアント装置が学習データをサーバ装置に送信し、当該学習データに基づく深層学習が行われた後、サーバ装置が学習結果をクライアント装置に送信するシステムが考えられる。深層学習を実行する学習用計算機の性能にもよるが、一般的に深層学習は比較的長い時間(例えば数時間程度)を要する。
【0007】
しかしながら、深層学習が終了するまでクライアント装置とサーバ装置間の通信(セッション)を保持することは、セッションがタイムアウトするため困難である。また、セッションのタイムアウト時間を深層学習に要する時間より長くすることは、セキュリティ維持の観点から望ましくない。
【0008】
そこで、本発明は、クライアント装置とサーバ装置間の通信を深層学習が完了するまで保持する必要がなく、最新の学習結果をサーバ装置からクライアント装置にインターネットを通じてセキュアに提供することができる深層学習自動学習システム、クライアント装置およびサーバ装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る深層学習自動学習システムは、
インターネットを介して接続されたクライアント装置およびサーバ装置を備える深層学習自動学習システムであって、
前記クライアント装置は、
前記クライアント装置の識別情報に基づいて公開鍵および秘密鍵を生成する鍵生成部と、
前記サーバ装置に新規学習データを送信する新規学習データ送信部と、を有し、
前記サーバ装置は、
前記公開鍵を用いて、前記新規学習データに基づく学習結果データを暗号化して、暗号化学習結果データを生成する学習結果データ暗号化部と、
前記公開鍵を用いて、前記学習結果データを識別するためのバージョン管理情報を暗号化して、暗号化学習バージョンデータを生成するバージョン管理情報暗号化部と、
前記クライアント装置に前記暗号化学習バージョンデータをプッシュ通知するプッシュ通知部と、を有し、
前記クライアント装置は、
前記サーバ装置からプッシュ通知された前記暗号化学習バージョンデータを、前記秘密鍵を用いて復号化して、前記バージョン管理情報を取得するバージョン管理情報取得部と、
前記バージョン管理情報に対応する学習結果データを既に取得しているか否かを判定し、取得していない場合は前記サーバ装置に対して前記学習結果データの送信を要求するデータ要求部と、
前記データ要求部の要求に応じて前記サーバ装置から前記クライアント装置に送信された前記暗号化学習結果データを、前記秘密鍵を用いて復号化して、前記学習結果データを取得する学習結果データ取得部と、をさらに有することを特徴とする。
【0010】
本発明に係るクライアント装置は、
インターネットを介してサーバ装置に接続されたクライアント装置であって、
前記クライアント装置の識別情報に基づいて公開鍵および秘密鍵を生成する鍵生成部と、
前記サーバ装置に新規学習データを送信する新規学習データ送信部と、
前記サーバ装置からプッシュ通知された暗号化学習バージョンデータを、前記秘密鍵を用いて復号化して、学習結果データを識別するためのバージョン管理情報を取得するバージョン管理情報取得部と、
前記バージョン管理情報に対応する学習結果データを既に取得しているか否かを判定し、取得していない場合は前記サーバ装置に対して前記学習結果データの送信を要求するデータ要求部と、
前記データ要求部の要求に応じて前記サーバ装置から前記クライアント装置に送信された暗号化学習結果データを、前記秘密鍵を用いて復号化して、前記学習結果データを取得する学習結果データ取得部と、
を備えることを特徴とする。
【0011】
本発明に係るサーバ装置は、
インターネットを介してクライアント装置に接続されたサーバ装置であって、
前記クライアント装置から受信した公開鍵を用いて、学習結果データを暗号化して暗号化学習結果データを生成する学習結果データ暗号化部と、
前記公開鍵を用いて、前記学習結果データを識別するためのバージョン管理情報を暗号化して暗号化学習バージョンデータを生成するバージョン管理情報暗号化部と、
前記クライアント装置に前記暗号化学習バージョンデータをプッシュ通知するプッシュ通知部と、
を備えることを特徴とする。
【発明の効果】
【0012】
本発明に係る深層学習自動学習システムでは、サーバ装置は、学習結果データを識別するためのバージョン管理情報を暗号化した暗号化学習バージョンデータをクライアント装置にプッシュ通知することにより深層学習が終了したことを通知し、クライアント装置に新しい学習結果データをダウンロードすることを促す。プッシュ通知を受信したクライアント装置は、バージョン管理情報に対応する学習結果データを既に取得しているか否かを判定し、取得していない場合、サーバ装置に対して学習結果データの送信を要求する。要求を受けたサーバ装置は、学習結果データを暗号化した暗号化学習結果データをクライアント装置に送信する。このようにすることで、クライアント装置は、サーバ装置との通信を深層学習が完了するまで保持することなく、最新の学習結果データを取得することができる。
【0013】
さらに、本発明に係る深層学習自動学習システムでは、バージョン管理情報および学習結果データは、公開鍵を用いて暗号化されてからクライアント装置に送信されるため、サーバ装置からクライアント装置にデータをセキュアに配信することができる。
【0014】
よって、本発明によれば、クライアント装置とサーバ装置間の通信を深層学習が完了するまで保持する必要がなく、最新の学習結果をサーバ装置からクライアント装置にインターネットを通じてセキュアに提供することができる。
【図面の簡単な説明】
【0015】
【図1】実施形態に係る深層学習自動学習システムの概略的な構成図である。
【図2】実施形態に係るクライアント装置の概略的な構成図である。
【図3】実施形態に係るサーバ装置の概略的な構成図である。
【図4】実施形態に係る端末管理用データベースの一例を示す図である。
【図5】実施形態に係る学習用計算機の概略的な構成図である。
【図6】実施形態に係るクライアント装置とサーバ装置間のフローチャートである。
【図7】実施形態に係るサーバ装置と学習用計算機間のフローチャートである。
【図8】実施形態に係るサーバ装置とクライアント装置間のフローチャートである。
【図9】図8に続く、実施形態に係るサーバ装置とクライアント装置間のフローチャートである。
【図10】図9に続く、実施形態に係るサーバ装置とクライアント装置間のフローチャートである。
【図11】実施形態に係るプッシュ通知の設定画面の一例である。
【図12】実施形態に係るプッシュ通知の画面例である。
【発明を実施するための形態】
【0016】
以下、本発明に係る実施形態について図面を参照しながら説明する。

【0017】
<深層学習自動学習システム>
まず、図1を参照して、本発明の実施形態に係る深層学習自動学習システム1の概略的な構成について説明する。なお、深層学習自動学習システム1の各構成の内部構成・処理等については、図2以降の図面を参照して説明する。

【0018】
深層学習自動学習システム1は、クライアント装置100、サーバ装置200および学習用計算機300を備える。クライアント装置100とサーバ装置200は、インターネットを介して接続されている。なお、図1では1台のクライアント装置100のみがサーバ装置200に接続されているが、複数のクライアント装置100がサーバ装置200に接続されてもよい。

【0019】
クライアント装置100は、各種センサー等を有するIOT機器等の外部装置から新規学習データを入力する。ここで、新規学習データとは、深層学習に用いるためのデータであり、深層学習にまだ用いられていないデータである。なお、クライアント装置100は、具体的には、パソコン、タブレット端末、組み込みボード等である。

【0020】
クライアント装置100は、当該クライアント装置100を識別するための識別情報を有する。この識別情報は、例えば、クライアント装置100のMACアドレスやシリアル番号等の端末固有番号である。

【0021】
サーバ装置200は、Webデータサーバまたはクラウドサーバとも呼ばれ、図1に示すように、PUSHサーバおよびデータサーバを有する。このサーバ装置200は、学習用計算機300に通信可能に接続されており、学習用計算機300に学習データを送信し、学習用計算機300から学習結果データを受信する。ここで、学習結果データとは、深層学習により得られたデータであって、クライアント装置でニューラルネットワークを再構成するために必要となるデータである。学習結果データは、具体的には、ニューラルネットワークの形状、重み、その他のパラメータ値である。なお、学習結果データは、深層学習により蓄積された知識(IF-THENルールなど)を含んでもよい。

【0022】
学習用計算機300は、サーバ装置200から受信した学習データを用いて学習を行う。この学習用計算機300は、例えば、既述の構造適応型深層学習法により深層学習を行う。なお、学習用計算機300は、GPU(Graphics Processing Units)計算機と呼ばれることもある。

【0023】
深層学習自動学習システム1では、後ほど詳しく説明するように、クライアント装置100からサーバ装置200に新規学習データがアップロードされ、サーバ装置200からクライアント装置100に学習結果データがダウンロードされる。

【0024】
なお、本発明に係る深層学習自動学習システムは、図1に示す構成に限られない。例えば、サーバ装置200のPUSHサーバとデータサーバは、通信装置を介して接続された別個のサーバ装置として構成されてもよい。また、サーバ装置200は、学習用計算機300を含むように構成されてもよい。すなわち、サーバ装置200と学習用計算機300は一つの情報処理装置として構成されてもよい。

【0025】
次に、クライアント装置100、サーバ装置200および学習用計算機300の各々について、さらに詳しく説明する。まず、クライアント装置100の詳細について説明する。

【0026】
<クライアント装置>
図2に示すように、クライアント装置100は、制御部110と、記憶部120と、通信部130とを有している。

【0027】
制御部110は、クライアント装置100内のプロセッサが所定のプログラムを実行することにより実現される。この制御部110は、鍵生成部111と、新規学習データ送信部112と、バージョン管理情報取得部113と、データ要求部114と、学習結果データ取得部115と、データ消去要求部116と、推論部117と、出力部118とを有している。各部の詳細については後ほど説明する。

【0028】
記憶部120は、新規学習データDB121を有する。新規学習データDB121は、IOT機器等の外部装置から入力された新規学習データを記憶する。なお、記憶部120は、例えばハードディスク、半導体メモリ(SSD等)から構成される。

【0029】
通信部130は、クライアント装置100がインターネットを介してサーバ装置200との間で情報を送受信するためのインターフェースである。

【0030】
ここで、制御部110の各部の詳細について説明する。

【0031】
鍵生成部111は、クライアント装置100の識別情報に基づいて公開鍵および秘密鍵を生成する。公開鍵はデータを暗号化する際に用いるキーであり、秘密鍵はデータを復号化する際に用いるキーである。なお、鍵の生成方法は特に限定されず、公知の鍵生成手法を用いることが可能である。

【0032】
新規学習データ送信部112は、新規学習データDB121に保存された新規学習データをサーバ装置200に送信する。なお、本実施形態では、新規学習データは、httpsを用いてサーバ装置200にセキュアに送信される。

【0033】
バージョン管理情報取得部113は、サーバ装置200からプッシュ通知された暗号化学習バージョンデータを、鍵生成部111により生成された秘密鍵を用いて復号化して、バージョン管理情報を取得する。ここで、バージョン管理情報は、学習結果データを識別するための情報である。また、暗号化学習バージョンデータは、少なくともバージョン管理情報を公開鍵で暗号化して得られるデータのことである。なお、本実施形態では、暗号化学習バージョンデータは、バージョン管理情報と登録ID(Registration ID)を公開鍵で暗号化して得られるデータである。

【0034】
データ要求部114は、バージョン管理情報に対応する学習結果データを既に取得しているか否かを判定し、取得していない場合はサーバ装置200に対して学習結果データの送信を要求する。なお、データ要求部114は、学習結果データの送信を要求する際、バージョン管理情報のバージョンをサーバ装置200に送信してもよい。これにより、サーバ装置200は、クライアント装置100に送信すべき学習結果データを把握することができる。

【0035】
学習結果データ取得部115は、データ要求部114の要求に応じてサーバ装置200からクライアント装置100に送信された暗号化学習結果データを、鍵生成部111により生成された秘密鍵を用いて復号化して学習結果データを取得する。なお、学習結果データは、深層学習に用いた学習データを含んでいてもよい。すなわち、学習結果データ取得部115は、学習結果データとして、学習データセットを取得してもよい。ここで、「学習データセット」とは、深層学習に用いた学習データと、学習結果データとの組合せ(データセット)のことである。

【0036】
暗号化学習結果データは、少なくとも学習結果データを公開鍵で暗号化して得られるデータである。なお、本実施形態では、暗号化学習結果データは、学習結果データと登録IDを公開鍵で暗号化して得られるデータである。

【0037】
データ消去要求部116は、学習結果データ取得部115により学習結果データが取得された後、サーバ装置200に対して、サーバ装置200が有する暗号化学習結果データを消去するよう要求する。これにより、クライアント装置100にダウンロード済みの暗号化学習結果データがサーバ装置200から消去され、サーバ装置200のメモリを節約することができる。

【0038】
推論部117は、学習結果データ取得部115により取得された学習結果データを用いて推論を行う。本実施形態では、構造適応型深層学習法による推論を行う。

【0039】
なお、推論部117は、暗号化学習バージョンデータを復号化して得られた登録IDと、暗号化学習結果データを復号化して得られた登録IDとが一致する場合に、学習結果データを用いて構造適応型深層学習法による推論を行うことが好ましい。これにより、意図しない別バージョンの学習結果データを用いて推論を行うという事態を防止できる。

【0040】
出力部118は、推論部117により行われた推論の結果を出力する。推論結果の出力先は、クライアント装置100のディスプレイ、プリンタ(図示せず)、記憶部120、あるいはクライアント装置100に接続された他の装置等である。

【0041】
<サーバ装置>
次に、サーバ装置200の詳細について説明する。

【0042】
図3に示すように、サーバ装置200は、制御部210と、記憶部220と、通信部230とを有している。

【0043】
制御部210は、サーバ装置200内のプロセッサが所定のプログラムを実行することにより実現される。この制御部210は、登録ID発行部211と、学習結果データ暗号化部212と、バージョン管理情報暗号化部213と、プッシュ通知部214と、新規学習データ保存部215と、学習データ送信部216と、学習結果データ送信部217と、データ消去部218とを有している。各部の詳細については後ほど説明する。

【0044】
なお、本実施形態では、登録ID発行部211、バージョン管理情報暗号化部213およびプッシュ通知部214はPUSHサーバに設けられており、学習結果データ暗号化部212、新規学習データ保存部215、学習データ送信部216、学習結果データ送信部217およびデータ消去部218はデータサーバに設けられている。

【0045】
記憶部220は、端末管理用DB221と、学習データDB222と、学習結果DB223とを有する。この記憶部220は、例えばハードディスク、半導体メモリ(SSD等)から構成される。

【0046】
端末管理用DB221は、図4に示すように、クライアント装置100から受信した端末固有番号(より一般的には識別情報)と公開鍵を関連付けて記憶するデータベースである。なお、端末管理用DB221は、図4に示すように、端末固有番号および公開鍵と関連付けて登録IDを記憶してもよい。

【0047】
学習データDB222は、クライアント装置100から受信した新規学習データが蓄積されるデータベースである。この学習データDB222には、既存学習データおよび新規学習データの両方が保存される。ここで、既存学習データは、学習用計算機300で既に深層学習に用いられたデータである。

【0048】
学習結果DB223は、学習用計算機300から受信した学習結果データが蓄積されるデータベースである。

【0049】
通信部230は、サーバ装置200がインターネットを介してクライアント装置100との間で情報を送受信し、また、学習用計算機300との間で情報を送受信するためのインターフェースである。

【0050】
ここで、制御部210の各部の詳細について説明する。

【0051】
登録ID発行部211は、クライアント装置100の識別情報に基づいて登録ID(Registration ID)を発行する。登録IDは、プッシュ通知部214がクライアント装置100に対してプッシュ通知を行うために必要な情報であり、クライアント装置100に固有のIDである。登録IDには、クライアント装置100とサーバ装置200間の通信経路に関する情報等が含まれる。

【0052】
なお、クライアント装置100とサーバ装置200間の通信のセキュリティを確保する観点から、登録ID発行部211は、必要なときにのみ登録IDを発行し、不要になれば登録IDを削除することが好ましい。また、登録ID発行部211は、一定の期間ごとに登録IDを再発行(リフレッシュ)するようにしてもよい。

【0053】
学習結果データ暗号化部212は、クライアント装置100から受信した公開鍵を用いて、新規学習データに基づく学習結果データを暗号化して、暗号化学習結果データを生成する。本実施形態では、学習結果データ暗号化部212は、学習用計算機300から受信した学習結果データと、登録ID発行部211により発行された登録IDとを暗号化することにより、暗号化学習結果データを生成する。

【0054】
なお、学習結果データ暗号化部212は、学習データセットを暗号化することにより暗号化学習結果データを生成してもよい。

【0055】
バージョン管理情報暗号化部213は、クライアント装置100から受信した公開鍵を用いて、学習用計算機300から受信した学習結果データのバージョン管理情報を暗号化して、暗号化学習バージョンデータを生成する。本実施形態では、バージョン管理情報暗号化部213は、バージョン管理情報および登録IDを暗号化して暗号化学習バージョンデータを生成する。

【0056】
プッシュ通知部214は、クライアント装置100に暗号化学習バージョンデータをプッシュ通知する。本実施形態では、プッシュ通知部214によるプッシュ通知は登録IDを用いて行われる。なお、登録ID以外のデバイストークンを用いてプッシュ通知を行ってもよい。

【0057】
新規学習データ保存部215は、クライアント装置100から受信した新規学習データを学習データDB222に保存する。

【0058】
学習データ送信部216は、学習データDB222の学習データが所定の基準を満たす場合に、学習データを学習用計算機300に送信する。本実施形態では、学習データDB222に蓄積された学習データのうち新規増加分のみが学習用計算機300に送信される。すなわち、学習用計算機300の学習データDB321に保存されている学習データと、学習データDB222に保存されている学習データとの差分が学習用計算機300に送信される。なお、これに限らず、学習データ送信部216は、学習データDB222に保存された新規学習データおよび既存学習データの両方を学習用計算機300に送信するようにしてもよい。

【0059】
「所定の基準が満たす場合」とは、例えば、学習データDB222に所定量の新規学習データが蓄積された場合、および/または、新規学習データと既存学習データとの誤差が閾値を超えた場合である。「誤差が閾値を超えた場合」とは、例えば、既存学習データの統計量と新規学習データの統計量との差が所定値よりも大きくなった場合、あるいは、既存学習データの統計量と全データ(既存学習データと新規学習データ)の統計量との差が所定値よりも大きくなった場合である。統計量としては例えば平均値が用いられるが、それ以外の統計量であってもよい。

【0060】
学習結果データ送信部217は、クライアント装置100から学習結果データの送信要求(送信リクエスト)を受信すると、学習結果データ暗号化部212により生成された暗号化学習結果データをクライアント装置100に送信する。

【0061】
データ消去部218は、サーバ装置200が有する暗号化学習結果データを消去するようクライアント装置100から要求されると(すなわち、消去リクエストを受信すると)、暗号化学習結果データを消去する。

【0062】
<学習用計算機>
次に、学習用計算機300の詳細について説明する。

【0063】
学習用計算機300は、図5に示すように、制御部310と、記憶部320と、通信部330とを有している。

【0064】
制御部310は、学習用計算機300内のプロセッサが所定のプログラムを実行することにより実現される。この制御部310は、深層学習実行部311を有する。

【0065】
深層学習実行部311は、学習データDB321に蓄積された学習データを用いて深層学習を行う。この深層学習実行部311は、例えば構造適応型深層学習法により深層学習を行う。

【0066】
記憶部320は、学習データDB321と、学習結果DB322とを有する。学習データDB321は、サーバ装置200から受信した学習データ(既存学習データおよび新規学習データ)が蓄積されるデータベースである。学習結果DB322は、深層学習実行部311の出力(学習結果データ)が蓄積されるデータベースである。すなわち、学習結果DB322には、学習により得られたニューラルネットワークの形状、重み、その他のパラメータ値の他、深層学習により蓄積された知識(IF-THENルールなど)が蓄積される。

【0067】
なお、記憶部320は、例えばハードディスク、半導体メモリ(SSD等)から構成される。

【0068】
通信部330は、学習用計算機300がサーバ装置200との間で情報を送受信するためのインターフェースである。

【0069】
<深層学習自動学習システムの動作>
次に、図6~図12を参照して、上記の構成を有する深層学習自動学習システム1の処理動作の一例について説明する。

【0070】
まず、図6を参照して、公開鍵のサーバ装置への登録、および新規学習データのサーバ装置へのアップロード等の工程について説明する。

【0071】
クライアント装置100の鍵生成部111は、自身の(すなわち、クライアント装置100の)端末固有番号に基づいて、公開鍵および秘密鍵を生成する(ステップS11)。本ステップは、例えば、図11に示す画面でトグルボタンを操作し、「プッシュ通知有効化」をオンにすると実行される。なお、プッシュ通知の有効化処理が完了すると、登録IDの情報が登録情報ウィンドウWに表示される。

【0072】
公開鍵および秘密鍵が生成された後、クライアント装置100は、プッシュ通知に必要な登録IDをサーバ装置200に発行してもらうために、通信部130を介して、端末固有番号および公開鍵をサーバ装置200(PUSHサーバ)に送信する(ステップS12)。

【0073】
サーバ装置200は、クライアント装置100から端末固有番号および公開鍵を受信すると、端末管理用DB221に端末固有番号および公開鍵を関連付けて保存する(ステップS21)。その後、登録ID発行部211は、端末固有番号に基づいて登録IDを発行し、発行された登録IDを端末管理用DB221に端末固有番号と関連付けて保存する(ステップS22)。

【0074】
クライアント装置100の新規学習データ送信部112は、外部装置から入力し、新規学習データDB121に保存された新規学習データをサーバ装置200(データサーバ)にアップロードする(ステップS13)。本ステップは、例えば、サーバ装置200から登録IDが発行されたこと(すなわち、プッシュ通知の有効化処理が完了したこと)が通知された後に行われる。

【0075】
サーバ装置200の新規学習データ保存部215は、クライアント装置100から新規学習データを受信すると、受信した新規学習データを学習データDB222に保存する(ステップS23)。

【0076】
次に、図7を参照して、学習データの蓄積および自動学習等の工程について説明する。

【0077】
サーバ装置200の学習データ送信部216は、学習データDB222に蓄積された学習データが所定の基準を満たすか否かを判定する(ステップS31)。そして、学習データが所定の基準を満たす場合に(S31:Yes)、学習データ送信部216は、新規増加分の学習データを学習用計算機300に送信する(ステップS32)。学習用計算機300は、サーバ装置200から学習データを受信すると、受信した学習データを学習データDB321に保存する。

【0078】
学習用計算機300は、学習データDB321に蓄積された学習データが所定の基準を満たすか否かを判定する(ステップS41)。本ステップで用いる基準は、例えば、学習データDB321に蓄積された学習データの数が予め定められた数に達した場合である。なお、本ステップにおける基準は、ステップS31における基準と同じ基準であってもよいし、異なる基準であってもよい。

【0079】
学習データDB321の学習データが所定の基準を満たす場合(S41:Yes)、深層学習実行部311は、学習データDB321に蓄積された学習データを用いて深層学習を行う(ステップS42)。本ステップでは、例えば構造適応型深層学習法による深層学習が行われる。

【0080】
深層学習実行部311は、学習終了後、学習結果DB322に学習結果データを保存する(ステップS43)。その後、学習用計算機300は、ステップS42で得られた学習結果データをサーバ装置200に送信する(ステップS44)。

【0081】
サーバ装置200は、学習用計算機300から学習結果データを受信すると、学習用計算機300から受信した学習結果データを学習結果DB223にバージョン管理情報とともに保存する(ステップS33)。なお、学習結果データは学習データを含んでもよい。本実施形態では、サーバ装置200は、学習データセットをバージョン管理情報とともに学習結果DB223に保存する。

【0082】
次に、図8を参照して、暗号化データの生成およびプッシュ通知等の工程について説明する。

【0083】
学習結果データが学習結果DB223に保存されると、サーバ装置200の学習結果データ暗号化部212は、クライアント装置100から受信した公開鍵を用いて、登録IDと学習データセットを暗号化して、暗号化学習結果データを生成する(ステップS51)。

【0084】
サーバ装置200のバージョン管理情報暗号化部213は、クライアント装置100から受信した公開鍵を用いて、登録IDおよびバージョン管理情報を暗号化して、暗号化学習バージョンデータを生成する(ステップS52)。

【0085】
サーバ装置200のプッシュ通知部214は、ステップS52で生成された暗号化学習バージョンデータをクライアント装置100にプッシュ通知する(ステップS53)。プッシュ通知は、ステップS22で発行された登録IDを用いて行われる。より詳しくは、ステップS22で発行された登録IDに対応するクライアント装置100に対してプッシュ通知が行われる。

【0086】
クライアント装置100のバージョン管理情報取得部113は、ステップS11で生成された秘密鍵を用いて、サーバ装置200からプッシュ通知された暗号化学習バージョンデータを復号化して、登録IDおよびバージョン管理情報を取得する(ステップS61)。このようにして取得されたバージョン管理情報は、学習データセットのバージョンを示す。図12は、プッシュ通知されたクライアント装置100の画面例を示している。この例では、学習データセットがサーバ装置200において更新されたことを示すとともに、更新された学習データセットのバージョンも示している。

【0087】
続いて、図9を参照して、学習結果データの送信リクエストおよびダウンロード等の工程について説明する。

【0088】
クライアント装置100のデータ要求部114は、ステップS61で取得されたバージョン管理情報に対応する学習データセットが取得済みであるか否かを判定する(ステップS62)。そして、バージョン管理情報に対応する学習データセットをまだ取得していない場合(S62:Yes)、データ要求部114は、サーバ装置200に対して学習データセットの送信を要求する(ステップS63)。なお、本ステップでは、バージョン管理情報がサーバ装置200に送信される。

【0089】
サーバ装置200の学習結果データ送信部217は、クライアント装置100から送信リクエストを受信すると、クライアント装置100から受信したバージョン管理情報のバージョンに対応する暗号化学習結果データをクライアント装置100に送信する(ステップS54)。クライアント装置100は、サーバ装置200から暗号化学習結果データをダウンロードする。

【0090】
暗号化学習結果データのダウンロードが完了すると、クライアント装置100の学習結果データ取得部115は、ステップS11で生成された秘密鍵を用いて暗号化学習結果データを復号化して、登録IDと学習データセットを取得する(ステップS64)。なお、本ステップの完了後、クライアント装置100のディスプレイに新しい学習データセットを取得した旨を表示してもよい。例えば、「新しい学習データセットが利用可能になりました。」というメッセージがプッシュ通知されるようにしてもよい。

【0091】
続いて、図10を参照して、暗号化データの消去および推論実行等の工程について説明する。

【0092】
クライアント装置100により学習データセットが取得されると、データ消去要求部116は、サーバ装置200に対して暗号化学習結果データの消去を要求する(ステップS65)。

【0093】
クライアント装置100から消去リクエストを受信すると、サーバ装置200のデータ消去部218は、暗号化学習結果データを消去する(ステップS55)。

【0094】
その後、クライアント装置100の推論部117は、ステップS61で暗号化学習バージョンデータを復号化して得られた登録IDと、ステップS64で暗号化学習結果データを復号化して得られた登録IDとが一致するか否かを判定する(ステップS66)。

【0095】
推論部117は、2つの登録IDが一致する場合(S66:Yes)、ステップS64で取得された学習データセットを用いて推論を行う(ステップS67)。このように登録IDが一致する場合にのみ推論を行うようにすることで、確実に最新バージョンの学習データセットを用いた推論を行うことができる。

【0096】
推論が完了すると、クライアント装置100の出力部118は、推論部117により行われた推論の結果を出力する(ステップS68)。

【0097】
なお、上記処理フローは一例に過ぎず、他にも様々な処理フローが想定される。例えば、上記処理フローではステップS51において暗号化学習結果データを生成したが、これに限らず、クライアント装置100から送信リクエストを受信した後に暗号化学習結果データを生成するようにしてもよい。また、上記処理フローでは送信リクエストが自動的に送信されたが、これに限らず、クライアント装置100のユーザの承認を経た後に送信リクエストがサーバ装置200に送信されるようにしてもよい。

【0098】
なお、上記処理フローによる学習結果データのクライアント装置への配信と同様の手法によって、クライアント装置の動作アルゴリズムやセキュリティソフト等のソフトウェア(以下、「ソフトウェア等」という。)が最新のバージョンに自動でアップデートされるようにしてもよい。具体的には、前述の処理フローと同様に、サーバ装置(データサーバ)は、ソフトウェア等が更新された旨をクライアント装置にプッシュ通知し、クライアント装置からの送信リクエストに応じてソフトウェア等のアップデートに必要なデータを暗号化してクライアント装置に送信する。クライアント装置は、サーバ装置から受信した暗号化データをダウンロードし、秘密鍵を用いて復号化することで、ソフトウェア等のアップデートに必要なデータを入手する。このようにすることで、クライアント装置は、ソフトウェア等の自動アップデートをセキュアに行うことができる。

【0099】
以上説明したように、深層学習自動学習システム1では、サーバ装置200は、クライアント装置100に暗号化学習バージョンデータをプッシュ通知することにより、新たな学習結果データ(学習データセット)が得られたことを通知する。プッシュ通知を受信したクライアント装置100は、バージョン管理情報に対応する学習結果データを既に取得しているか否かを判定し、取得していない場合、サーバ装置200に送信リクエストを送信する。送信リクエストを受信したサーバ装置200は、クライアント装置100に暗号化学習結果データを送信する。このようにすることで、クライアント装置100は、サーバ装置200との通信を深層学習が完了するまで保持することなく、最新の学習結果データを取得することができる。

【0100】
また、深層学習自動学習システム1では、バージョン管理情報および学習結果データは、公開鍵を用いて暗号化されてからクライアント装置100に送信されるため、サーバ装置からクライアント装置にデータをセキュアに配信することができる。

【0101】
さらに、深層学習自動学習システム1では、サーバ装置200が暗号化学習バージョンデータおよび暗号化学習結果データを、登録IDが発行されたクライアント装置100(すなわち、認証されたクライアント装置)にのみ送信することから、最新の学習結果をサーバ装置からクライアント装置にインターネットを通じてさらにセキュアに提供することができる。

【0102】
よって、本実施形態によれば、クライアント装置とサーバ装置間の通信を深層学習が完了するまで保持する必要がなく、最新の学習結果をサーバ装置からクライアント装置にインターネットを通じてセキュアに提供することができる。

【0103】
また、深層学習自動学習システム1では、サーバ装置は、自身の学習データDB222の学習データが所定の基準を満たす場合に学習データを学習用計算機に送信するように構成され、学習用計算機は、自身の学習データDB321の学習データが所定の基準を満たす場合に当該学習データに基づいて深層学習を行うように構成されている。このため、本実施形態によれば、新規学習データの蓄積に応じて自動的に深層学習を行うことができる。

【0104】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更及び部分的削除が可能である。

【0105】
上述した実施形態で説明した深層学習自動学習システムの少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、深層学習自動学習システムの少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD-ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。

【0106】
また、深層学習自動学習システムの少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【符号の説明】
【0107】
1 深層学習自動学習システム
100 クライアント装置
110 制御部
111 鍵生成部
112 新規学習データ送信部
113 バージョン管理情報取得部
114 データ要求部
115 学習結果データ取得部
116 データ消去要求部
117 推論部
118 出力部
120 記憶部
121 新規学習データDB
130,230,330 通信部
200 サーバ装置
210 制御部
211 登録ID発行部
212 学習結果データ暗号化部
213 バージョン管理情報暗号化部
214 プッシュ通知部
215 新規学習データ保存部
216 学習データ送信部
217 学習結果データ送信部
218 データ消去部
220 記憶部
221 端末管理用DB
222 学習データDB
223 学習結果DB
300 学習用計算機
310 制御部
311 深層学習実行部
320 記憶部
321 学習データDB
322 学習結果DB
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10
【図12】
11