IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

<>
  • 特開-サーバ装置 図1
  • 特開-サーバ装置 図2
  • 特開-サーバ装置 図3
  • 特開-サーバ装置 図4
  • 特開-サーバ装置 図5
  • 特開-サーバ装置 図6
  • 特開-サーバ装置 図7
  • 特開-サーバ装置 図8
  • 特開-サーバ装置 図9
  • 特開-サーバ装置 図10
  • 特開-サーバ装置 図11
  • 特開-サーバ装置 図12
  • 特開-サーバ装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023179168
(43)【公開日】2023-12-19
(54)【発明の名称】サーバ装置
(51)【国際特許分類】
   G06N 20/20 20190101AFI20231212BHJP
【FI】
G06N20/20
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022092301
(22)【出願日】2022-06-07
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100124811
【弁理士】
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【弁理士】
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【弁理士】
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【弁理士】
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】森 隼基
(57)【要約】
【課題】各クライアントに適したモデルを得ることが難しい場合がある。
【解決手段】サーバ装置400は、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信する受信部421と、受信部421が受信したローカルモデルパラメータと、重みと、に基づいて、グローバルモデルのパラメータを算出する算出部422と、算出部422が算出したパラメータをクライアント装置に対して送信する送信部と423と、を有する。
【選択図】図12
【特許請求の範囲】
【請求項1】
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信する受信部と、
前記受信部が受信した前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出する算出部と、
前記算出部が算出したパラメータを前記クライアント装置に対して送信する送信部と、
を有する
サーバ装置。
【請求項2】
請求項1に記載のサーバ装置であって、
前記算出部は、予め記憶する前記クライアント装置が有するデータ数と、前記ローカルモデルパラメータと、前記重みと、に基づいて、前記グローバルモデルのパラメータを算出する
サーバ装置。
【請求項3】
請求項2に記載のサーバ装置であって、
前記算出部は、前記重みを用いて重みづけを行ったうえで前記ローカルモデルパラメータの平均を取ることで、前記グローバルモデルのパラメータを算出する
サーバ装置。
【請求項4】
請求項2に記載のサーバ装置であって、
前記算出部は、数1で示す式を解くことで、前記データ数と、前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出する
サーバ装置。
【数1】
なお、n:データ数
k:クライアント
Wi,j:i番目の層のj番目の分岐のパラメータ
α:重み
【請求項5】
請求項1に記載のサーバ装置であって、
前記重みは、前記クライアント装置が有する訓練データに基づいて前記クライアント装置ごとに学習される値である
サーバ装置。
【請求項6】
情報処理装置が、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信し、
受信した前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出し、
算出したパラメータを前記クライアント装置に対して送信する
算出方法。
【請求項7】
情報処理装置に、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信し、
受信した前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出し、
算出したパラメータを前記クライアント装置に対して送信する
処理を実現するためのプログラム。
【請求項8】
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルに含まれる各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を自装置が有する訓練データを用いて学習する学習部と、
前記ローカルモデルパラメータに基づくグローバルモデルを生成するサーバ装置に対して、前記学習部が学習した前記ローカルモデルパラメータと、前記重みと、を送信する送信部と、
を有する
クライアント装置。
【請求項9】
請求項8に記載のクライアント装置であって、
前記サーバ装置からグローバルモデルのパラメータを受信する受信部を有し、
前記学習部は、前記グローバルモデルのパラメータを固定した状態で前記重みを学習した後、前記重みを固定した状態で前記ローカルモデルパラメータを学習する
クライアント装置。
【請求項10】
情報処理装置が、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルに含まれる各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を自装置が有する訓練データを用いて学習し、
前記ローカルモデルパラメータに基づくグローバルモデルを生成するサーバ装置に対して、学習した前記ローカルモデルパラメータと、前記重みと、を送信する
学習方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ装置、算出方法、プログラム、クライアント装置、学習方法に関する。
【背景技術】
【0002】
プライバシー保護などの観点から、学習データの直接なやり取りは行わずに複数のクライアントが協力して機械学習を行う連合学習という技術が知られている。
【0003】
連合学習について記載された文献としては、例えば、特許文献1がある。特許文献1には、複数のクライアント端末と、統合サーバと、を含む機械学習システムが記載されている。特許文献1によると、クライアント端末は、受信した分配情報の指示に従い、クライアント端末が属するシステム内に存在するデータを学習データに用いて学習対象のローカルモデルの機械学習を実行する。そして、クライアント端末は、ローカルモデルの学習結果を統合サーバに送信する。また、統合サーバは、分配情報をそれぞれのクライアント端末に送信したり、複数のクライアント端末からそれぞれの学習結果を受信したり、受信した学習結果を統合してマスターモデルを更新したりする。
【0004】
また、一般的な連合学習モデルでは平均化したモデルを得ることになるが、平均化したモデルではなく、各クライアントに最適化したモデルを得る連合学習手法として、パーソナライズド連合学習という技術が知られている。
【0005】
パーソナライズド連合学習について記載された文献としては、例えば、非特許文献1がある。例えば、非特許文献1には、各クライアントが他のクライアントからローカルモデルを受け取り、自身のデータに適合するローカルモデルに対しては大きな重みづけを行って自身のローカルモデルに加えることで、ローカルモデルを更新する方法が記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】国際公開第2021/193815号
【非特許文献】
【0007】
【非特許文献1】Zhang, Michael, et al. "Personalized Federated Learning with First Order Model Optimization.“, ICLR2021
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献1に記載の技術の場合、各クライアントが他のクライアントのローカルモデルを入手する必要があり、全クライアント間でローカルモデルが共有される。そのため、情報流出のリスクが大きかった。このように、情報流出のリスクを抑えつつ、各クライアントに適したモデルを得ることが難しい、という課題が生じていた。
【0009】
そこで、本発明の目的は、上述した課題を解決するサーバ装置、算出方法、プログラム、クライアント装置、学習方法を提供することにある。
【課題を解決するための手段】
【0010】
かかる目的を達成するため本開示の一形態であるサーバ装置は、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信する受信部と、
前記受信部が受信した前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出する算出部と、
前記算出部が算出したパラメータを前記クライアント装置に対して送信する送信部と、
を有する
という構成をとる。
【0011】
また、本開示の他の形態である算出方法は、
情報処理装置が、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信し、
受信した前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出し、
算出したパラメータを前記クライアント装置に対して送信する
という構成をとる。
【0012】
また、本開示の他の形態であるプログラムは、
情報処理装置に、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信し、
受信した前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出し、
算出したパラメータを前記クライアント装置に対して送信する
処理を実現するためのプログラムである。
【0013】
また、本開示の他の形態であるクライアント装置は、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルに含まれる各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を自装置が有する訓練データを用いて学習する学習部と、
前記ローカルモデルパラメータに基づくグローバルモデルを生成するサーバ装置に対して、前記学習部が学習した前記ローカルモデルパラメータと、前記重みと、を送信する送信部と、
を有する
という構成をとる。
【0014】
また、本開示の他の形態である学習方法は、
情報処理装置が、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルに含まれる各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を自装置が有する訓練データを用いて学習し、
前記ローカルモデルパラメータに基づくグローバルモデルを生成するサーバ装置に対して、学習した前記ローカルモデルパラメータと、前記重みと、を送信する
という構成をとる。
【発明の効果】
【0015】
上述したような各構成によると、上述した課題を解決することができる。
【図面の簡単な説明】
【0016】
図1】一般的なニューラルネットワークの一例を示す図である。
図2】ニューラルネットワークの線形変換を多重化した際の構成の一例を示す図である。
図3】本開示の第1の実施形態における学習システムの構成例を示す図である。
図4】クライアント装置の構成例を示すブロック図である。
図5】学習部の処理例を説明するための図である。
図6】サーバ装置の構成例を示すブロック図である。
図7】算出部の処理例を説明するための図である。
図8】クライアント装置の動作例を示すフローチャートである。
図9】サーバ装置の動作例を示すフローチャートである。
図10】サーバ装置が有する効果の一例を説明するための図である。
図11】本開示の第2の実施形態におけるサーバ装置の構成例を示すハードウェア図である。
図12】サーバ装置の構成例を示すブロック図である。
図13】クライアント装置の構成例を示すブロック図である。
【発明を実施するための形態】
【0017】
[第1の実施形態]
本開示の第1の実施形態について、図1から図10までを参照して説明する。図1は、一般的なニューラルネットワークの一例を示す図である。図2は、ニューラルネットワークの線形変換を多重化した際の構成の一例を示す図である。図3は、学習システム100の構成例を示す図である。図4は、クライアント装置200の構成例を示すブロック図である。図5は、学習部252の処理例を説明するための図である。図6は、サーバ装置300の構成例を示すブロック図である。図7は、算出部352の処理例を説明するための図である。図8は、クライアント装置200の動作例を示すフローチャートである。図9は、サーバ装置300の動作例を示すフローチャートである。図10は、サーバ装置が有する効果の一例を説明するための図である。
【0018】
本開示の第1の実施形態においては、複数のクライアント装置200とサーバ装置300とが協力して学習する連合学習を行う学習システム100について説明する。図1で例示するように、本実施形態において学習システム100が学習する機械学習モデルは、線形変換と非線形変換とからなる複数の層で構成されたニューラルネットワークである。ここで、ニューラルネットワークは、畳み込み操作を行う畳み込み層、スケール変換などの正規化処理を行う正規化層、ReLU(Rectified Linear Unit)などの活性化関数を適用する活性化層などを含む層や、全結合層や活性化層などを含む層などから構成される。例えば、図1で例示した場合、畳み込み層や全結合層などで線形変換が行われ、活性化層などで非線形変換が行われる。なお、ニューラルネットワークは、すべての層が畳み込み層、正規化層、活性化層を含むなど同一の構造を有していてもよいし、畳み込み層、正規化層、活性化層を含む層と全結合層、活性化層を含む層とをともに有するなど、複数の構造を有していてもよい。また、ニューラルネットワークの構造は図1で例示する場合に限定されず、例えば、第4層以上を有していてもよい。
【0019】
また、本実施形態の場合、学習システム100が学習する機械学習モデルでは、線形変換を多重化することができる。例えば、図2で例示するように、本実施形態で説明するニューラルネットワークは、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有する。例えば、図2では、ニューラルネットワークを構成するある層が3つの分岐を有し、各分岐において畳み込み操作を行う場合について例示している。換言すると、図2で例示する場合、ニューラルネットワークのある層は、畳み込み操作1を行う分岐と、畳み込み操作2を行う分岐と、畳み込み操作3を行う分岐と、を有し、各分岐には共通の入力が行われる。なお、1つの層が有する分岐の数は、2つまたは4つ以上など上記例示した以外であってもよい。また、分岐では、全結合操作など畳み込み操作以外の線形変換が行われてもよい。また、共通の入力が行われる多重化された各分岐では、畳み込み操作など全ての分岐で同一の操作が行われてもよいし、一部の分岐で全結合が行われるなど分岐ごとに異なる操作が行われてもよい。また、一部の分岐で線形変換以外の任意の操作が行われてもよい。
【0020】
また、本実施形態の場合、学習システム100が学習する機械学習モデルでは、多重化された各分岐からの出力を分岐ごとの重みを用いて重ね合わせる。例えば、機械学習モデルでは、分岐からの出力と分岐に対応する重みとを掛け合わせた結果を足し合わせる重み付け和を計算することで、各分岐からの出力を分岐ごとの重みを用いて重ね合わせる。例えば、図2で例示する場合では、畳み込み操作1を行う分岐からの出力と当該分岐に対応する重みα1とを掛け合わせた結果と、畳み込み操作2を行う分岐からの出力と当該分岐に対応する重みα2とを掛け合わせた結果と、畳み込み操作3を行う分岐からの出力と当該分岐に対応する重みα3とを掛け合わせた結果と、を足し合わせる。ここで、重みは、例えば、0以上1以下の値となる。また、同一の層内に存在する各分岐の重みは、足し合わせると1になるという関係を有する。
【0021】
なお、各分岐では、各クライアント装置200で共通となるパラメータを用いた共通の操作が行われる。換言すると、各分岐のパラメータは、各クライアント装置200とサーバ装置300とによって連合学習で学習される。一方で、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みや、正規化層で用いられる正規化用パラメータなどは、クライアント装置200ごとに学習される。そのため、重みや正規化用パラメータなどはクライアント装置200ごとに異なっていてよい。クライアント装置200ごとに重みなどを学習することで、各クライアント装置200が各自のデータに適したローカルモデルを学習することができる。
【0022】
図3は、学習システム100の構成例を示している。図3を参照すると、例えば、学習システム100は、複数のクライアント装置200とサーバ装置300とを有している。図3で示すように、クライアント装置200とサーバ装置300とは、例えば、ネットワークなどを介して互いに通信可能なよう接続されている。なお、学習システム100は2以上の任意の数のクライアント装置200を有してよい。
【0023】
クライアント装置200は、サーバ装置300から受信したパラメータなどを自装置が有する訓練データを用いて更新する情報処理装置である。図4は、クライアント装置200の構成例を示している。図4を参照すると、クライアント装置200は、主な構成要素として、例えば、操作入力部210と、画面表示部220と、通信I/F(interface)部230と、記憶部240と、演算処理部250と、を有している。
【0024】
なお、図4では、1台の情報処理装置を用いてクライアント装置200としての機能を実現する場合について例示している。しかしながら、クライアント装置200は、例えば、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。また、クライアント装置200は、操作入力部210や画面表示部220を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
【0025】
操作入力部210は、キーボード、マウスなどの操作入力装置からなる。操作入力部210は、クライアント装置200を操作する操作者の操作を検出して演算処理部250に出力する。
【0026】
画面表示部220は、LCD(Liquid Crystal Display、液晶ディスプレイ)などの画面表示装置からなる。画面表示部220は、演算処理部250からの指示に応じて、記憶部240に格納されている各種情報などを画面表示することが出来る。
【0027】
通信I/F部230は、データ通信回路などからなる。通信I/F部230は、通信回線を介して接続されたサーバ装置300などの外部装置との間でデータ通信を行う。
【0028】
記憶部240は、HDD(hard disk drive)やSSD(Solid State Drive)、メモリなどの記憶装置である。記憶部240は、演算処理部250における各種処理に必要な処理情報やプログラム243を記憶する。プログラム243は、演算処理部250に読み込まれて実行されることにより各種処理部を実現する。プログラム243は、通信I/F部230などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部240に保存されている。記憶部240で記憶される主な情報としては、例えば、訓練データ情報241、ローカルモデル情報242などがある。
【0029】
訓練データ情報241は、後述する学習部252による学習時に用いる訓練データを含んでいる。例えば、訓練データ情報241は、通信I/F部230を介して外部装置から取得することや操作入力部210などを用いて入力することなどの方法を用いて予め取得されており、記憶部240に格納されている。例えば、訓練データ情報241に含まれる訓練データは、クライアント装置200ごとに異なっていてよい。なお、本実施形態においては、訓練データの具体的な内容については特に限定しない。訓練データ情報241には、任意の訓練データが含まれてよい。
【0030】
ローカルモデル情報242は、各分岐に対応する操作時に用いるパラメータ(例えば、ローカルモデルパラメータ)や各分岐からの出力を重ね合わせる際に用いる分岐ごとの重み、正規化用パラメータなど、ローカルモデルを構成する各種パラメータ、値を示す情報を含んでいる。例えば、ローカルモデル情報242は、サーバ装置300から各分岐のパラメータを受信することや後述する学習部252が訓練データ情報241を用いた学習を行うことなどの各種処理に応じて更新される。
【0031】
演算処理部250は、CPU(Central Processing Unit)などの演算装置とその周辺回路を有する。演算処理部250は、記憶部240からプログラム243を読み込んで実行することにより、上記ハードウェアとプログラム243とを協働させて各種処理部を実現する。演算処理部250で実現される主な処理部としては、例えば、パラメータ受信部251、学習部252、送信部253などがある。
【0032】
なお、演算処理部250は、上述したCPUの代わりに、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、TPU(Tensor Processing Unit)、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを有してもよい。
【0033】
パラメータ受信部251は、学習対象となるニューラルネットワークを構成する各層内における各分岐に対応するパラメータをサーバ装置300から受信する。例えば、パラメータ受信部251は、畳み込み操作などの操作を行う際に用いる重み値群などをパラメータとして受信する。また、パラメータ受信部251は、受信したパラメータをローカルモデル情報242として記憶部240に格納する。
【0034】
学習部252は、パラメータ受信部251が受信したパラメータを有するモデルに対して、訓練データ情報241に含まれる訓練データを用いた機械学習を行うことで、各分岐のパラメータや各分岐の重みなどを更新する。換言すると、学習部252は、訓練データ情報241に含まれる訓練データを用いた機械学習を行って各分岐のパラメータや重みなどを更新することで、新たなローカルモデルパラメータを有するローカルモデルを作成する。例えば、学習部252は、ニューラルネットワークを構成する各層について、各分岐のパラメータや各分岐の重みなどを更新することができる。換言すると、各分岐のパラメータや各分岐の重みは、層ごとに異なっていてよい。なお、学習部252は、各分岐のパラメータや各分岐の重みなどの他、正規化用パラメータなどを学習してもよい。例えば、学習部252は、勾配降下法などの既知の手段を用いて上記機械学習を行ってよい。
【0035】
例えば、学習部252は、訓練データを用いた機械学習を行うことで、パラメータ受信部251が受信したパラメータを更新して新たなローカルモデルパラメータを算出する。つまり、学習部252による更新の対象となるパラメータは、パラメータ受信部251が受信した値であり、各クライアント装置200で共通のものとなる。一方、学習部252は、訓練データを用いた機械学習を行うことで、前回のローカルモデルパラメータ算出時に算出した重みを更新して新たな重みを算出する。つまり、学習部252による更新の対象となる重みは、各クライアント装置200で以前に算出された値であり、クライアント装置200ごとに異なることができる。
【0036】
なお、学習部252は、図5で例示するように、各分岐のパラメータを学習するフェーズと、各分岐に対応する重みを学習するフェーズと、を分けることができる。例えば、学習部252は、各分岐のパラメータを固定した状態で重みαを更新した後、更新した重みαを用いて重みαを固定した状態で各分岐のパラメータを更新することができる。先に最適な重みαを決定した上でパラメータを更新することで、各クライアント装置200におけるパラメータの更新度合いを適切に評価することができる。
【0037】
送信部253は、学習部252が更新したパラメータであるローカルモデルパラメータや、各分岐の重みをサーバ装置300に対して送信する。換言すると、本実施形態における送信部253は、ローカルモデルパラメータだけでなく各分岐に対応する重みをサーバ装置300に対して送信する。
【0038】
以上が、クライアント装置200の構成例である。なお、クライアント装置200の構成は、上記例示した場合に限定されない。例えば、クライアント装置200の演算処理部250は、プログラム243を実行することで、各分岐のパラメータと各分岐に対応する重みとを用いて複数の分岐を1つの分岐に変換する変換部を実現してもよい。また、クライアント装置200の演算処理部250は、プログラム243を実行することで、ローカルモデル情報242が示すパラメータ(ローカルモデルパラメータ)や重みなどに応じて定まるローカルモデルを用いた推論を行う推論部を実現してもよい。例えば、以上のように、クライアント装置200は、上記例示した以外の構成を有してもよい。
【0039】
サーバ装置300は、各クライアント装置200から受信したローカルモデルパラメータと重みとを用いてグローバルモデルのパラメータを算出する情報処理装置である。図6は、サーバ装置300の構成例を示している。図6を参照すると、サーバ装置300は、主な構成要素として、例えば、操作入力部310と、画面表示部320と、通信I/F部330と、記憶部340と、演算処理部350と、を有している。
【0040】
なお、図6では、1台の情報処理装置を用いてサーバ装置300としての機能を実現する場合について例示している。しかしながら、サーバ装置300は、例えば、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。また、サーバ装置300は、操作入力部310や画面表示部320を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
【0041】
操作入力部310は、キーボード、マウスなどの操作入力装置からなる。操作入力部310は、サーバ装置300を操作する操作者の操作を検出して演算処理部350に出力する。
【0042】
画面表示部320は、LCDなどの画面表示装置からなる。画面表示部320は、演算処理部350からの指示に応じて、記憶部340に格納されている各種情報などを画面表示することが出来る。
【0043】
通信I/F部330は、データ通信回路などからなる。通信I/F部330は、通信回線を介して接続されたクライアント装置200などの外部装置との間でデータ通信を行う。
【0044】
記憶部340は、HDDやSSD、メモリなどの記憶装置である。記憶部340は、演算処理部350における各種処理に必要な処理情報やプログラム343を記憶する。プログラム343は、演算処理部350に読み込まれて実行されることにより各種処理部を実現する。プログラム343は、通信I/F部330などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部340に保存されている。記憶部340で記憶される主な情報としては、例えば、受信情報341、グローバルモデル情報342などがある。
【0045】
受信情報341は、各クライアント装置200から受信したローカルモデルパラメータや重みを示す情報を含んでいる。例えば、受信情報341は、通信I/F部230を介して受信部351がローカルモデルパラメータや重みを示す情報をクライアント装置200から受信することなどに応じて更新される。
【0046】
グローバルモデル情報342は、受信情報341に基づいて算出される、グローバルモデルのモデルパラメータなどを示す情報を含んでいる。例えば、グローバルモデル情報342は、後述する算出部352が受信情報341に基づいてパラメータを算出することなどに応じて更新される。
【0047】
なお、記憶部340には、上記例示した以外の情報が格納されてもよい。例えば、記憶部340には、学習システム100に含まれる各クライアント装置200が有する訓練データのデータ数を示す情報などを格納することができる。
【0048】
演算処理部350は、CPUなどの演算装置とその周辺回路を有する。演算処理部350は、記憶部340からプログラム343を読み込んで実行することにより、上記ハードウェアとプログラム343とを協働させて各種処理部を実現する。演算処理部350で実現される主な処理部としては、例えば、受信部351、算出部352、パラメータ送信部353などがある。なお、演算処理部350は、クライアント装置200が有する演算処理部250の場合と同様に、CPUの代わりにGPUなどを有してもよい。
【0049】
受信部351は、各分岐のローカルモデルパラメータと各分岐に対応する重みとを各クライアント装置200から受信する。また、受信部351は、受信したローカルモデルパラメータや重みを受信情報341として記憶部340に格納する。
【0050】
算出部352は、受信部351が受信したローカルモデルパラメータと重みとを用いて、ニューラルネットワークを構成する層ごと、分岐ごとにグローバルモデルのパラメータを算出、更新する。例えば、算出部352は、重みを用いた重みづけを行ったうえでローカルモデルパラメータの平均を取ることで、グローバルモデルのパラメータを算出する。算出部352は、ローカルモデルパラメータと、重みと、クライアント装置200が有する訓練データのデータ数などを用いて、グローバルモデルのパラメータを算出してもよい。
【0051】
例えば、算出部352は、図7で示すように、数1で示す式を解くことで、データ数と、ローカルモデルパラメータと、重みと、に基づいて、グローバルモデルのパラメータを算出する。
【数1】
なお、nは、対応するクライアント装置200が有するデータ数を示し、kはクライアント装置200を識別する識別子である。Kは、学習システム100に含まれるクライアント装置200の総数である。また、Wi,jは、i番目の層のj番目の分岐のパラメータであることを示す。αは重みである。
【0052】
パラメータ送信部353は、算出部352が算出したグローバルモデルのパラメータをクライアント装置200へと送信する。
【0053】
以上が、サーバ装置300の構成例である。続いて、図8図9を参照して、学習システム100の動作例について説明する。まず、図8を参照して、クライアント装置200の動作例について説明する。
【0054】
図8は、クライアント装置200の動作例を示すフローチャートである。図8を参照すると、パラメータ受信部251は、学習対象となるニューラルネットワークを構成する各層内における各分岐に対応するパラメータをサーバ装置300から受信する(ステップS101)。
【0055】
学習部252は、パラメータ受信部251が受信したパラメータを有するモデルに対して、訓練データ情報241に含まれる訓練データを用いた機械学習を行うことで、各分岐のパラメータや各分岐の重みなどを更新する。例えば、学習部252は、各分岐のパラメータを固定した状態した状態で重みαを更新する(ステップS102)。また、学習部252は、更新した重みαを用いて重みαを固定した状態で各分岐のパラメータを更新することで、新たなローカルモデルパラメータを算出する(ステップS103)。なお、学習部252は、重みとパラメータとを同時に更新してもよい。
【0056】
送信部253は、学習部252が更新したパラメータであるローカルモデルパラメータや、各分岐の重みをサーバ装置300に対して送信する(ステップS104)。
【0057】
以上が、クライアント装置200の動作例である。続いて、図9を参照して、サーバ装置300の動作例について説明する。
【0058】
図9は、サーバ装置300の動作例を示すフローチャートである。図9を参照すると、受信部351は、各分岐のローカルモデルパラメータと各分岐に対応する重みとを各クライアント装置200から受信する(ステップS201)。
【0059】
算出部352は、受信部351が受信したローカルモデルパラメータと重みとを用いて、ニューラルネットワークを構成する層ごと、分岐ごとにグローバルモデルのパラメータを算出、更新する(ステップS202)。例えば、算出部352は、重みを用いた重みづけを行ったうえでローカルモデルパラメータの平均を取ることで、グローバルモデルのパラメータを算出する。算出部352は、ローカルモデルパラメータと、重みと、クライアント装置200が有する訓練データのデータ数などを用いて、グローバルモデルのパラメータを算出してもよい。
【0060】
パラメータ送信部353は、算出部352が算出したグローバルモデルのパラメータをクライアント装置200へと送信する(ステップS203)。
【0061】
以上が、サーバ装置300の動作例である。学習システム100では、図8図9を参照して例示したような一連のステップが、例えば所定の終了条件を満たすまで繰り返される。なお、終了条件は、例えば、一連のステップを予め定められた所定回数繰り返すなど、任意に定めてよい。
【0062】
このように、サーバ装置300は、受信部351と算出部352とパラメータ送信部353とを有している。このような構成によると、算出部352は、受信部351が受信したローカルモデルパラメータなど重みを用いて、グローバルモデルのパラメータを算出、更新することができる。また、パラメータ送信部353は、算出部352が算出したパラメータをクライアント装置200に対して送信することができる。その結果、各クライアント装置200は、サーバ装置300から受信したパラメータを用いて、ローカルモデルパラメータや重みを更新することができる。これにより、クライアント装置200間でローカルモデルを共有することなく、例えば、クライアント装置200ごとに重みを学習することなどにより、各自のデータに適したローカルモデルを学習することができるようになる。その結果、情報流出の可能性を低減させることができる。
【0063】
さらに、本実施形態で説明したサーバ装置300の場合、算出部352は、受信部351が受信したローカルモデルパラメータと重みとを用いて、グローバルモデルのパラメータを算出、更新することができる。その結果、各クライアント装置200の各分岐に対する重みに応じて、グローバルモデル更新に寄与する重みづけを行うことができ、グローバルモデル更新の際に、各クライアント装置における寄与率を考慮することができる。これにより、グローバルモデルのパラメータを算出する際に重みを用いない場合などと比較して、学習を安定させることができるとともに、精度を向上させることができる。また、学習時間を短縮することなども可能となる。
【0064】
例えば、図10は、グローバルモデル更新の際に重みを用いる場合と用いない場合とにおける、テスト精度の一例を示している。図10では、x軸が学習ステップ数を示しており、y軸がテスト精度を示している。また、点線がグローバルモデル更新の際に重みを用いない場合を示しており、実線がグローバルモデル更新の際に重みを用いる場合を示している。図10を参照すると、グローバルモデル更新の際に重みを用いることで、学習精度を向上させ、学習時間を短縮することが可能となることが分かる。なお、グローバルモデル更新の際に重みを用いない方法では、例えば、数2で示すような式を解くことでグローバルモデルのパラメータを算出することができる。
【数2】
なお、数1と同様に、nは、対応するクライアント装置200が有するデータ数を示し、kはクライアント装置200を識別する識別子である。Kは、学習システム100に含まれるクライアント装置200の総数である。また、Wi,jは、i番目の層のj番目の分岐のパラメータであることを示す。
【0065】
また、クライアント装置200は、学習部252と送信部253とを有している。このような構成によると、送信部253は、学習部252が更新したパラメータであるローカルモデルパラメータや、各分岐の重みをサーバ装置300に対して送信することができる。その結果、サーバ装置300において、重みを用いたグローバルモデルの更新を行うことができる。
【0066】
また、クライアント装置200は、パラメータを固定した状態で重みを更新した後に、重みを固定してパラメータの更新を行うよう構成することができる。このように、先に最適な重みを決定した上でパラメータを更新することで、各クライアント装置200におけるパラメータの更新度合いを適切に評価することができる。
【0067】
[第2の実施形態]
次に、本開示の第2の実施形態について、図11から図13までを参照して説明する。図11は、サーバ装置400のハードウェア構成例を示す図である。図12は、サーバ装置400の構成例を示すブロック図である。図13は、クライアント装置500の構成例を示すブロック図である。
【0068】
本開示の第2の実施形態においては、クライアント装置500と協力して学習を行うサーバ装置400と、クライアント装置500の構成例について説明する。図11は、サーバ装置400のハードウェア構成例を示している。図11を参照すると、サーバ装置400は、一例として、以下のようなハードウェア構成を有している。
・CPU(Central Processing Unit)401(演算装置)
・ROM(Read Only Memory)402(記憶装置)
・RAM(Random Access Memory)403(記憶装置)
・RAM403にロードされるプログラム群404
・プログラム群404を格納する記憶装置405
・情報処理装置外部の記録媒体410の読み書きを行うドライブ装置406
・情報処理装置外部の通信ネットワーク411と接続する通信インタフェース407
・データの入出力を行う入出力インタフェース408
・各構成要素を接続するバス409
【0069】
なお、サーバ装置400は、上述したCPUの代わりに、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、TPU(Tensor Processing Unit)、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを用いてもよい。
【0070】
また、サーバ装置400は、プログラム群404をCPU401が取得して当該CPU401が実行することで、図12に示す受信部421、算出部422、送信部423としての機能を実現することが出来る。なお、プログラム群404は、例えば、予め記憶装置405やROM402に格納されており、必要に応じてCPU401がRAM403などにロードして実行する。また、プログラム群404は、通信ネットワーク411を介してCPU401に供給されてもよいし、予め記録媒体410に格納されており、ドライブ装置406が該プログラムを読み出してCPU401に供給してもよい。
【0071】
なお、図11は、サーバ装置400のハードウェア構成例を示している。サーバ装置400のハードウェア構成は上述した場合に限定されない。例えば、サーバ装置400は、ドライブ装置406を有さないなど、上述した構成の一部から構成されてもよい。
【0072】
受信部421は、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置500から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信する。
【0073】
算出部422は、受信部421が受信したローカルモデルパラメータと、重みと、に基づいて、グローバルモデルのパラメータを算出する。
【0074】
送信部423は、算出部422が算出したパラメータをクライアント装置500に対して送信する。
【0075】
このように、サーバ装置400は、受信部421と算出部422と送信部423を有している。このような構成によると、算出部422は、受信部421が受信したローカルモデルパラメータなどに基づいて、グローバルモデルのパラメータを算出することができる。また、送信部423は、算出部422が算出したパラメータをクライアント装置500に対して送信することができる。その結果、クライアント装置500において、受信したパラメータを用いたローカルモデルパラメータや重みの更新などを行うことができる。これにより、クライアント装置500間でローカルモデルを共有することなく、例えば、クライアント装置500ごとに重みを学習することなどにより、各自のデータに適したローカルモデルを学習することができるようになる。その結果、情報流出の可能性を低減させることができる。
【0076】
さらに、本実施形態で説明したサーバ装置400の場合、ローカルモデルパラメータと重みとに基づいてグローバルモデルのパラメータを算出する。その結果、各クライアント装置200の各分岐に対する重みに応じて、グローバルモデル更新に寄与する重みづけを行うことができ、グローバルモデル更新の際に、各クライアント装置における寄与率を考慮することができる。これにより、重みを用いない場合などと比較して学習を安定させることができるとともに、精度を向上させることができる。
【0077】
なお、上述したサーバ装置400は、当該サーバ装置400などの情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、サーバ装置400などの情報処理装置に、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信し、受信したローカルモデルパラメータと、重みと、に基づいて、グローバルモデルのパラメータを算出し、算出したパラメータをクライアント装置に対して送信する、処理を実現するためのプログラムである。
【0078】
また、上述したサーバ装置400などの情報処理装置により実行される算出方法は、サーバ装置400などの情報処理装置が、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信し、受信したローカルモデルパラメータと、重みと、に基づいて、グローバルモデルのパラメータを算出し、算出したパラメータをクライアント装置に対して送信する、という方法である。
【0079】
上述した構成を有する、プログラム、又は、プログラムを記録したコンピュータが読み取り可能な記録媒体、又は、算出方法、の発明であっても、上述したサーバ装置400と同様の作用・効果を奏するために、上述した本発明の目的を達成することが出来る。
【0080】
また、サーバ装置400に対してローカルモデルパラメータなどを送信するクライアント装置500は、プログラム群をCPUなどが取得して当該CPUなどが実行することで、図13に示す学習部521、送信部522としての機能を実現することが出来る。なお、クライアント装置500のハードウェア構成は、図11を参照して説明したサーバ装置400が有する構成と同様であってよい。
【0081】
学習部521は、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルに含まれる各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を自装置が有する訓練データを用いて学習する。
【0082】
送信部522は、ローカルモデルパラメータに基づくグローバルモデルを生成するサーバ装置に対して、学習部521が学習したローカルモデルパラメータと、重みと、を送信する。
【0083】
このように、クライアント装置500は、学習部521と送信部522とを有している。このような構成によると、送信部522は、学習部521が学習したローカルモデルパラメータと、重みと、をサーバ装置400に対して送信することができる。その結果、サーバ装置400において、重みを用いたグローバルモデルのパラメータ算出を行うことができる。これにより、精度を向上させることなどができる。
【0084】
なお、上述したクライアント装置500は、当該クライアント装置500などの情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、クライアント装置500などの情報処理装置に、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルに含まれる各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を自装置が有する訓練データを用いて学習し、ローカルモデルパラメータに基づくグローバルモデルを生成するサーバ装置に対して、学習したローカルモデルパラメータと、重みと、を送信する、処理を実現するためのプログラムである。
【0085】
また、上述したクライアント装置500などの情報処理装置により実行される学習方法は、クライアント装置500などの情報処理装置が、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルに含まれる各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を自装置が有する訓練データを用いて学習し、ローカルモデルパラメータに基づくグローバルモデルを生成するサーバ装置に対して、学習したローカルモデルパラメータと、重みと、を送信する、という方法である。
【0086】
上述した構成を有する、プログラム、又は、プログラムを記録したコンピュータが読み取り可能な記録媒体、又は、学習方法、の発明であっても、上述したクライアント装置500と同様の作用・効果を奏するために、上述した本発明の目的を達成することが出来る。
【0087】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるサーバ装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【0088】
(付記1)
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信する受信部と、
前記受信部が受信した前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出する算出部と、
前記算出部が算出したパラメータを前記クライアント装置に対して送信する送信部と、
を有する
サーバ装置。
(付記2)
付記1に記載のサーバ装置であって、
前記算出部は、予め記憶する前記クライアント装置が有するデータ数と、前記ローカルモデルパラメータと、前記重みと、に基づいて、前記グローバルモデルのパラメータを算出する
サーバ装置。
(付記3)
付記2に記載のサーバ装置であって、
前記算出部は、前記重みを用いて重みづけを行ったうえで前記ローカルモデルパラメータの平均を取ることで、前記グローバルモデルのパラメータを算出する
サーバ装置。
(付記4)
付記2に記載のサーバ装置であって、
前記算出部は、数3で示す式を解くことで、前記データ数と、前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出する
サーバ装置。
【数3】
なお、n:データ数
k:クライアント
Wi,j:i番目の層のj番目の分岐のパラメータ
α:重み
(付記5)
付記1に記載のサーバ装置であって、
前記重みは、前記クライアント装置が有する訓練データに基づいて前記クライアント装置ごとに学習される値である
サーバ装置。
(付記6)
情報処理装置が、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信し、
受信した前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出し、
算出したパラメータを前記クライアント装置に対して送信する
算出方法。
(付記7)
情報処理装置に、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行う複数のクライアント装置から、多重化された各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を受信し、
受信した前記ローカルモデルパラメータと、前記重みと、に基づいて、グローバルモデルのパラメータを算出し、
算出したパラメータを前記クライアント装置に対して送信する
処理を実現するためのプログラム。
(付記8)
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルに含まれる各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を自装置が有する訓練データを用いて学習する学習部と、
前記ローカルモデルパラメータに基づくグローバルモデルを生成するサーバ装置に対して、前記学習部が学習した前記ローカルモデルパラメータと、前記重みと、を送信する送信部と、
を有する
クライアント装置。
(付記9)
付記8に記載のクライアント装置であって、
前記サーバ装置からグローバルモデルのモデルパラメータを受信する受信部を有し、
前記学習部は、前記グローバルモデルのモデルパラメータを固定した状態で前記重みを学習した後、前記重みを固定した状態で前記ローカルモデルパラメータを学習する
クライアント装置。
(付記10)
情報処理装置が、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルに含まれる各分岐のローカルモデルパラメータと、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みと、を自装置が有する訓練データを用いて学習し、
前記ローカルモデルパラメータに基づくグローバルモデルを生成するサーバ装置に対して、学習した前記ローカルモデルパラメータと、前記重みと、を送信する
学習方法。
【0089】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【0090】
100 学習システム
200 クライアント装置
210 操作入力部
220 画面表示部
230 通信I/F部
240 記憶部
241 訓練データ情報
242 ローカルモデル情報
243 プログラム
250 演算処理部
251 パラメータ受信部
252 学習部
253 送信部
300 サーバ装置
310 操作入力部
320 画面表示部
330 通信I/F部
340 記憶部
341 受信情報
342 グローバルモデル情報
343 プログラム
350 演算処理部
351 受信部
352 算出部
353 パラメータ送信部
400 サーバ装置
401 CPU
402 ROM
403 RAM
404 プログラム群
405 記憶装置
406 ドライブ装置
407 通信インタフェース
408 入出力インタフェース
409 バス
410 記録媒体
411 通信ネットワーク
421 受信部
422 算出部
423 送信部
500 クライアント装置
521 学習部
522 送信部

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13