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

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

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

<>
  • 特開-サーバ装置 図1
  • 特開-サーバ装置 図2
  • 特開-サーバ装置 図3
  • 特開-サーバ装置 図4
  • 特開-サーバ装置 図5
  • 特開-サーバ装置 図6
  • 特開-サーバ装置 図7
  • 特開-サーバ装置 図8
  • 特開-サーバ装置 図9
  • 特開-サーバ装置 図10
  • 特開-サーバ装置 図11
  • 特開-サーバ装置 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023179169
(43)【公開日】2023-12-19
(54)【発明の名称】サーバ装置
(51)【国際特許分類】
   G06N 20/20 20190101AFI20231212BHJP
【FI】
G06N20/20
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022092302
(22)【出願日】2022-06-07
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100124811
【弁理士】
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【弁理士】
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【弁理士】
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【弁理士】
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】森 隼基
(57)【要約】
【課題】各クライアントに適したモデルを得ることが難しい。
【解決手段】サーバ装置400は、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行うことで、多重化された各分岐のローカルモデルパラメータと多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みとを学習する複数のクライアント装置から、各分岐に対応するローカルモデルパラメータを受信する受信部421と、異なるクライアント装置から受信した、各分岐に対応するローカルモデルパラメータ間の類似度を算出する類似度算出部422と、類似度算出部422による算出結果に基づいて選択されるローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出するパラメータ算出部423と、パラメータ算出部423が算出したパラメータをクライアント装置に対して送信するパラメータ送信部424と、を有する。
【選択図】図12
【特許請求の範囲】
【請求項1】
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行うことで、多重化された各分岐のローカルモデルパラメータと多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みとを学習する複数のクライアント装置から、各分岐に対応する前記ローカルモデルパラメータを受信する受信部と、
異なるクライアント装置から受信した、各分岐に対応する前記ローカルモデルパラメータ間の類似度を算出する類似度算出部と、
前記類似度算出部による算出結果に基づいて選択される前記ローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出するパラメータ算出部と、
前記パラメータ算出部が算出したパラメータを前記クライアント装置に対して送信するパラメータ送信部と、
を有する
サーバ装置。
【請求項2】
請求項1に記載のサーバ装置であって、
前記類似度算出部は、2つのクライアント装置から受信した前記ローカルモデルパラメータ間の類似度を算出する処理を繰り返すことで、複数のクライアント装置から受信した前記ローカルモデルパラメータ間の類似度を算出する
サーバ装置。
【請求項3】
請求項1に記載のサーバ装置であって、
前記類似度算出部は、複数のクライアント装置のうち第1のクライアント装置から受信した各分岐に対応する前記ローカルモデルパラメータと、第1のクライアント装置とは異なる第2のクライアント装置から受信した各分岐に対応する前記ローカルモデルパラメータと、の間の類似度を算出した後、第2のクライアント装置から受信した各分岐に対応する前記ローカルモデルパラメータと、第2のクライアント装置とは異なる第3のクライアント装置から受信した各分岐に対応する前記ローカルモデルパラメータと、の間の類似度を算出する
サーバ装置。
【請求項4】
請求項1に記載のサーバ装置であって、
前記パラメータ算出部は、前記類似度算出部による算出結果に基づいて、類似度が最も高くなる組み合わせとなるように、各クライアント装置に対応する分岐を選択する
サーバ装置。
【請求項5】
請求項1に記載のサーバ装置であって、
前記類似度算出部による算出結果に基づいて、分岐の順番を入れ替える置換部を有し、
前記パラメータ算出部は、前記置換部による入れ替えの結果に基づいて、パラメータの算出対象になる分岐を選択する
サーバ装置。
【請求項6】
請求項5に記載のサーバ装置であって、
前記置換部は、類似度が最も高くなる組み合わせとなるように分岐の順番を入れ替える
サーバ装置。
【請求項7】
請求項5に記載のサーバ装置であって、
前記パラメータ算出部は、前記置換部が順番を入れ替えた状態において同一の順番となる分岐の平均値を算出することで、グローバルモデルのパラメータを算出する
サーバ装置。
【請求項8】
情報処理装置が、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行うことで、多重化された各分岐のローカルモデルパラメータと多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みとを学習する複数のクライアント装置から、各分岐に対応する前記ローカルモデルパラメータを受信し、
異なるクライアント装置から受信した、各分岐に対応する前記ローカルモデルパラメータ間の類似度を算出し、
算出結果に基づいて選択される前記ローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出し、
算出したパラメータを前記クライアント装置に対して送信する
算出方法。
【請求項9】
請求項8に記載の算出方法であって、
2つのクライアント装置から受信した前記ローカルモデルパラメータ間の類似度を算出する処理を繰り返すことで、複数のクライアント装置から受信した前記ローカルモデルパラメータ間の類似度を算出する
算出方法。
【請求項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】
図1】一般的なニューラルネットワークの一例を示す図である。
図2】ニューラルネットワークの線形変換を多重化した際の構成の一例を示す図である。
図3】本開示の第1の実施形態における学習システムの構成例を示す図である。
図4】クライアント装置の構成例を示すブロック図である。
図5】サーバ装置の構成例を示すブロック図である。
図6】類似度算出部の処理例を説明するための図である。
図7】置換部の処理例を説明するための図である。
図8】置換部の処理例を説明するための図である。
図9】クライアント装置の動作例を示すフローチャートである。
図10】サーバ装置の動作例を示すフローチャートである。
図11】本開示の第2の実施形態におけるサーバ装置の構成例を示すハードウェア図である。
図12】サーバ装置の構成例を示すブロック図である。
【発明を実施するための形態】
【0015】
[第1の実施形態]
本開示の第1の実施形態について、図1から図10までを参照して説明する。図1は、一般的なニューラルネットワークの一例を示す図である。図2は、ニューラルネットワークの線形変換を多重化した際の構成の一例を示す図である。図3は、学習システム100の構成例を示す図である。図4は、クライアント装置200の構成例を示すブロック図である。図5は、サーバ装置300の構成例を示すブロック図である。図6は、類似度算出部352の処理例を説明するための図である。図7図8は、置換部353の処理例を説明するための図である。図9は、クライアント装置200の動作例を示すフローチャートである。図10は、サーバ装置300の動作例を示すフローチャートである。
【0016】
本開示の第1の実施形態においては、複数のクライアント装置200とサーバ装置300とが協力して学習する連合学習を行う学習システム100について説明する。図1で例示するように、本実施形態において学習システム100が学習する機械学習モデルは、線形変換と非線形変換とからなる複数の層で構成されたニューラルネットワークである。ここで、ニューラルネットワークは、畳み込み操作を行う畳み込み層、スケール変換などの正規化処理を行う正規化層、ReLU(Rectified Linear Unit)などの活性化関数を適用する活性化層などを含む層や、全結合層や活性化層などを含む層などから構成される。例えば、図1で例示した場合、畳み込み層や全結合層などで線形変換が行われ、活性化層などで非線形変換が行われる。なお、ニューラルネットワークは、すべての層が畳み込み層、正規化層、活性化層を含むなど同一の構造を有していてもよいし、畳み込み層、正規化層、活性化層を含む層と全結合層、活性化層を含む層とをともに有するなど、複数の構造を有していてもよい。また、ニューラルネットワークの構造は図1で例示する場合に限定されず、例えば、第4層以上を有していてもよい。
【0017】
また、本実施形態の場合、学習システム100が学習する機械学習モデルでは、線形変換を多重化することができる。例えば、図2で例示するように、本実施形態で説明するニューラルネットワークは、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有する。例えば、図2では、ニューラルネットワークを構成するある層が3つの分岐を有し、各分岐において畳み込み操作を行う場合について例示している。換言すると、図2で例示する場合、ニューラルネットワークのある層は、畳み込み操作1を行う分岐と、畳み込み操作2を行う分岐と、畳み込み操作3を行う分岐と、を有し、各分岐には共通の入力が行われる。なお、1つの層が有する分岐の数は、2つまたは4つ以上など上記例示した以外であってもよい。また、分岐では、全結合操作など畳み込み操作以外の線形変換が行われてもよい。また、共通の入力が行われる多重化された各分岐では、畳み込み操作など全ての分岐で同一の操作が行われてもよいし、一部の分岐で全結合が行われるなど分岐ごとに異なる操作が行われてもよい。また、一部の分岐で線形変換以外の任意の操作が行われてもよい。
【0018】
また、本実施形態の場合、学習システム100が学習する機械学習モデルでは、多重化された各分岐からの出力を分岐ごとの重みを用いて重ね合わせる。例えば、機械学習モデルでは、分岐からの出力と分岐に対応する重みとを掛け合わせた結果を足し合わせる重み付け和を計算することで、各分岐からの出力を分岐ごとの重みを用いて重ね合わせる。例えば、図2で例示する場合では、畳み込み操作1を行う分岐からの出力と当該分岐に対応する重みα1とを掛け合わせた結果と、畳み込み操作2を行う分岐からの出力と当該分岐に対応する重みα2とを掛け合わせた結果と、畳み込み操作3を行う分岐からの出力と当該分岐に対応する重みα3とを掛け合わせた結果と、を足し合わせる。ここで、重みは、例えば、0以上1以下の値となる。また、同一の層内に存在する各分岐の重みは、足し合わせると1になるという関係を有する。
【0019】
なお、各分岐では、各クライアント装置200で共通となるパラメータを用いた共通の操作が行われる。換言すると、各分岐のパラメータは、各クライアント装置200とサーバ装置300とによって連合学習で学習される。一方で、多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みや、正規化層で用いられる正規化用パラメータなどは、クライアント装置200ごとに学習される。そのため、重みや正規化用パラメータなどはクライアント装置200ごとに異なっていてよい。クライアント装置200ごとに重みなどを学習することで、各クライアント装置200が各自のデータに適したローカルモデルを学習することができる。
【0020】
図3は、学習システム100の構成例を示している。図3を参照すると、例えば、学習システム100は、複数のクライアント装置200とサーバ装置300とを有している。図3で示すように、クライアント装置200とサーバ装置300とは、例えば、ネットワークなどを介して互いに通信可能なよう接続されている。なお、学習システム100は2以上の任意の数のクライアント装置200を有してよい。
【0021】
クライアント装置200は、サーバ装置300から受信したパラメータなどを自装置が有する訓練データを用いて更新する情報処理装置である。図4は、クライアント装置200の構成例を示している。図4を参照すると、クライアント装置200は、主な構成要素として、例えば、操作入力部210と、画面表示部220と、通信I/F(interface)部230と、記憶部240と、演算処理部250と、を有している。
【0022】
なお、図4では、1台の情報処理装置を用いてクライアント装置200としての機能を実現する場合について例示している。しかしながら、クライアント装置200は、例えば、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。また、クライアント装置200は、操作入力部210や画面表示部220を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
【0023】
操作入力部210は、キーボード、マウスなどの操作入力装置からなる。操作入力部210は、クライアント装置200を操作する操作者の操作を検出して演算処理部250に出力する。
【0024】
画面表示部220は、LCD(Liquid Crystal Display、液晶ディスプレイ)などの画面表示装置からなる。画面表示部220は、演算処理部250からの指示に応じて、記憶部240に格納されている各種情報などを画面表示することが出来る。
【0025】
通信I/F部230は、データ通信回路などからなる。通信I/F部230は、通信回線を介して接続されたサーバ装置300などの外部装置との間でデータ通信を行う。
【0026】
記憶部240は、HDD(hard disk drive)やSSD(Solid State Drive)、メモリなどの記憶装置である。記憶部240は、演算処理部250における各種処理に必要な処理情報やプログラム243を記憶する。プログラム243は、演算処理部250に読み込まれて実行されることにより各種処理部を実現する。プログラム243は、通信I/F部230などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部240に保存されている。記憶部240で記憶される主な情報としては、例えば、訓練データ情報241、ローカルモデル情報242などがある。
【0027】
訓練データ情報241は、後述する学習部252による学習時に用いる訓練データを含んでいる。例えば、訓練データ情報241は、通信I/F部230を介して外部装置から取得することや操作入力部210などを用いて入力することなどの方法を用いて予め取得されており、記憶部240に格納されている。例えば、訓練データ情報241に含まれる訓練データは、クライアント装置200ごとに異なっていてよい。なお、本実施形態においては、訓練データの具体的な内容については特に限定しない。訓練データ情報241には、任意の訓練データが含まれてよい。
【0028】
ローカルモデル情報242は、各分岐に対応する操作時に用いるパラメータ(例えば、ローカルモデルパラメータ)や各分岐からの出力を重ね合わせる際に用いる分岐ごとの重み、正規化用パラメータなど、ローカルモデルを構成する各種パラメータ、値を示す情報を含んでいる。例えば、ローカルモデル情報242は、サーバ装置300から各分岐のパラメータを受信することや後述する学習部252が訓練データ情報241を用いた学習を行うことなどの各種処理に応じて更新される。
【0029】
演算処理部250は、CPU(Central Processing Unit)などの演算装置とその周辺回路を有する。演算処理部250は、記憶部240からプログラム243を読み込んで実行することにより、上記ハードウェアとプログラム243とを協働させて各種処理部を実現する。演算処理部250で実現される主な処理部としては、例えば、パラメータ受信部251、学習部252、パラメータ送信部253などがある。
【0030】
なお、演算処理部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)、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを有してもよい。
【0031】
パラメータ受信部251は、学習対象となるニューラルネットワークを構成する各層内における各分岐に対応するパラメータをサーバ装置300から受信する。例えば、パラメータ受信部251は、畳み込み操作などの操作を行う際に用いる重み値群などをパラメータとして受信する。また、パラメータ受信部251は、受信したパラメータをローカルモデル情報242として記憶部240に格納する。
【0032】
学習部252は、パラメータ受信部251が受信したパラメータを有するモデルに対して、訓練データ情報241に含まれる訓練データを用いた機械学習を行うことで、各分岐のパラメータや各分岐の重みなどを更新する。換言すると、学習部252は、訓練データ情報241に含まれる訓練データを用いた機械学習を行って各分岐のパラメータや重みなどを更新することで、新たなローカルモデルパラメータを有するローカルモデルを作成する。学習部252は、各分岐のパラメータや各分岐の重みなどの他、正規化用パラメータなどを学習してもよい。例えば、学習部252は、勾配降下法などの既知の手段を用いて上記機械学習を行ってよい。
【0033】
例えば、学習部252は、訓練データを用いた機械学習を行うことで、パラメータ受信部251が受信したパラメータを更新して新たなローカルモデルパラメータを算出する。つまり、学習部252による更新の対象となるパラメータは、パラメータ受信部251が受信した値であり、各クライアント装置200で共通のものとなる。一方、学習部252は、訓練データを用いた機械学習を行うことで、前回のローカルモデルパラメータ算出時に算出した重みを更新して新たな重みを算出する。つまり、学習部252による更新の対象となる重みは、各クライアント装置200で以前に算出された値であり、クライアント装置200ごとに異なることができる。
【0034】
パラメータ送信部253は、学習部252が更新したパラメータであるローカルモデルパラメータをサーバ装置300に対して送信する。換言すると、本実施形態におけるパラメータ送信部253は、各分岐に対応する重みをサーバ装置300に対して送信しない一方で、ローカルモデルパラメータをサーバ装置300に対して送信する。
【0035】
以上が、クライアント装置200の構成例である。なお、クライアント装置200の構成は、上記例示した場合に限定されない。例えば、クライアント装置200の演算処理部250は、プログラム243を実行することで、各分岐のパラメータと各分岐に対応する重みとを用いて複数の分岐を1つの分岐に変換する変換部を実現してもよい。また、クライアント装置200の演算処理部250は、プログラム243を実行することで、ローカルモデル情報242が示すパラメータ(ローカルモデルパラメータ)や重みなどに応じて定まるローカルモデルを用いた推論を行う推論部を実現してもよい。例えば、以上のように、クライアント装置200は、上記例示した以外の構成を有してもよい。
【0036】
サーバ装置300は、各クライアント装置200から受信したローカルモデルパラメータを用いてグローバルモデルのパラメータを算出する情報処理装置である。図5は、サーバ装置300の構成例を示している。図5を参照すると、サーバ装置300は、主な構成要素として、例えば、操作入力部310と、画面表示部320と、通信I/F部330と、記憶部340と、演算処理部350と、を有している。
【0037】
なお、図5では、1台の情報処理装置を用いてサーバ装置300としての機能を実現する場合について例示している。しかしながら、サーバ装置300は、例えば、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。また、サーバ装置300は、操作入力部310や画面表示部320を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
【0038】
操作入力部310は、キーボード、マウスなどの操作入力装置からなる。操作入力部310は、サーバ装置300を操作する操作者の操作を検出して演算処理部350に出力する。
【0039】
画面表示部320は、LCDなどの画面表示装置からなる。画面表示部320は、演算処理部350からの指示に応じて、記憶部340に格納されている各種情報などを画面表示することが出来る。
【0040】
通信I/F部330は、データ通信回路などからなる。通信I/F部330は、通信回線を介して接続されたクライアント装置200などの外部装置との間でデータ通信を行う。
【0041】
記憶部340は、HDDやSSD、メモリなどの記憶装置である。記憶部340は、演算処理部350における各種処理に必要な処理情報やプログラム343を記憶する。プログラム343は、演算処理部350に読み込まれて実行されることにより各種処理部を実現する。プログラム343は、通信I/F部330などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部340に保存されている。記憶部340で記憶される主な情報としては、例えば、受信情報341、グローバルモデル情報342などがある。
【0042】
受信情報341は、各クライアント装置200から受信したローカルモデルパラメータを示す情報を含んでいる。例えば、受信情報341は、通信I/F部230を介してパラメータ受信部351がローカルモデルパラメータを示す情報をクライアント装置200から受信することなどに応じて更新される。
【0043】
グローバルモデル情報342は、受信情報341に基づいて算出される、グローバルモデルのモデルパラメータなどを示す情報を含んでいる。例えば、グローバルモデル情報342は、後述する類似度算出部352が受信情報341に基づいてパラメータを算出することなどに応じて更新される。
【0044】
なお、記憶部340には、上記例示した以外の情報が格納されてもよい。例えば、記憶部340には、学習システム100に含まれる各クライアント装置200が有する訓練データのデータ数を示す情報などを格納することができる。
【0045】
演算処理部350は、CPUなどの演算装置とその周辺回路を有する。演算処理部350は、記憶部340からプログラム343を読み込んで実行することにより、上記ハードウェアとプログラム343とを協働させて各種処理部を実現する。演算処理部350で実現される主な処理部としては、例えば、パラメータ受信部351、類似度算出部352、置換部353、パラメータ算出部354、パラメータ送信部355などがある。なお、演算処理部350は、クライアント装置200が有する演算処理部250の場合と同様に、CPUの代わりにGPUなどを有してもよい。
【0046】
パラメータ受信部351は、各層、各分岐のローカルモデルパラメータを各クライアント装置200から受信する。また、パラメータ受信部351は、受信したローカルモデルパラメータを受信情報341として記憶部340に格納する。
【0047】
類似度算出部352は、異なるクライアント装置200から受信した、各分岐に対応するローカルモデルパラメータ間の類似度を算出する。例えば、類似度算出部352は、ニューラルネットワークを構成する各層について、上記類似度を算出する処理を行う。
【0048】
例えば、類似度算出部352は、2つのクライアント装置から受信したローカルモデルパラメータ間の類似度を算出する処理を繰り返すことで、各クライアント装置200から受信したローカルモデルパラメータ間の類似度を算出することができる。換言すると、類似度算出部352は、順々に二部マッチングを解くことで、各ローカルモデルパラメータ間の類似度を算出する。
【0049】
図6は、ニューラルネットワークを構成するある層に着目した場合における、類似度算出部352の処理例を説明するための図である。類似度算出部352は、ニューラルネットワークを構成する各層について、図6で例示したような処理を行うことができる。
【0050】
図6を参照すると、例えば、類似度算出部352は、まず、クライアント装置200-1から受信したローカルモデルパラメータと、クライアント装置200-2から受信したローカルモデルパラメータと、の間の類似度をそれぞれ算出する。つまり、類似度算出部352は、クライアント装置200-1の分岐1に対応するローカルモデルパラメータとクライアント装置200-2の分岐1に対応するローカルモデルパラメータとの間の類似度を算出する。また、類似度算出部352は、クライアント装置200-1の分岐1に対応するローカルモデルパラメータとクライアント装置200-2の分岐2に対応するローカルモデルパラメータとの間の類似度を算出する。また、類似度算出部352は、クライアント装置200-1の分岐1に対応するローカルモデルパラメータとクライアント装置200-2の分岐3に対応するローカルモデルパラメータとの間の類似度を算出する。同様に、類似度算出部352は、クライアント装置200-1の分岐2や分岐3に対応するローカルモデルパラメータについても、クライアント装置200-2の各分岐に対応するローカルモデルパラメータとの間の類似度を算出する。例えば、以上のように、類似度算出部352は、まずクライアント装置200-1とクライアント装置200-2とに着目して、各ローカルモデルパラメータ間の類似度を算出する。なお、類似度算出部352は、着目するクライアント装置200を任意の方法で決定してよい。
【0051】
続いて、類似度算出部352は、クライアント装置200-2の各分岐に対応するローカルモデルパラメータとクライアント装置200-3の各分岐に対応するローカルモデルパラメータとの間の類似度を算出する。以降、類似度算出部352は、学習システム100に含まれる各クライアント装置200について、1回または2回他のクライアント装置200との間で類似度の算出処理が行われるように、順々に同様の2部マッチングを繰り返す。例えば、図6で例示するように、学習システム100に4つのクライアント装置200が含まれる場合、類似度算出部352は、クライアント装置200-2とクライアント装置200-3とに着目して類似度を算出した後、クライアント装置200-3とクライアント装置200-4とに着目して類似度を算出する。
【0052】
なお、類似度算出部352は、任意の方法で類似度を算出してよい。例えば、類似度算出部352は、数1で示すように、類似度としてノルムを算出することができる。例えば、数1では、ローカルモデルパラメータであるベクトルuとローカルモデルパラメータであるベクトルvの間の類似度を算出する場合におけるノルムの算出例を示している。なお、数1で示す場合、値が小さい方が類似度は高くなる。
【数1】
なお、pは、1や2など任意の値であってよい。
【0053】
また、類似度算出部352は、ノルムの代わりに、数2で示すように、コサイン類似度を算出してもよい。数2で示すように、類似度算出部352は、ベクトルuとベクトルvの内積をuとvのベクトルの大きさで割ることで、コサイン類似度を算出することができる。なお、数2で示す場合、値が大きい方が類似度は高くなる。
【数2】
【0054】
なお、類似度算出部352は、上述した例以外の方法を用いて、ローカルモデルパラメータ間の類似度を算出してもよい。また、類似度算出部352は、2部マッチング以外の方法を用いて類似度を算出してもよい。例えば、類似度算出部352は、類似度算出対象になる全てのクライアント装置200の組み合わせや全ての分岐の組み合わせなどについて類似度を算出してもよい。
【0055】
置換部353は、類似度算出部352が算出した類似度に基づいて、分岐の順番を入れ替える置換処理を行う。例えば、後述するパラメータ算出部354が、同じ順番の分岐に対応するローカルモデルパラメータに基づいて、グローバルモデルのパラメータを算出するとする。この場合、置換部353は、類似度が最も高くなる分岐の組み合わせでパラメータ算出部354によるグローバルモデルのパラメータ算出処理が行われるように、類似度に基づいて分岐の順番を入れ替える。
【0056】
例えば、置換部353は、クライアント装置200-1について、分岐の順番をそのままとする。つまり、置換部353は、恒等置換を行う。続いて、置換部353は、クライアント装置200-1とクライアント装置200-2とに着目して、類似度の高い分岐が同じ順番となるように、クライアント装置200-2に対応する分岐の順番を入れ替える。その後、置換部353は、クライアント装置200-2とクライアント装置200-3とに着目して、クライアント装置200-3に対応する分岐の順番を入れ替える。以降、置換部353は、同様の入れ替え処理を、類似度算出部352が類似度を算出したクライアント装置200の各組合せについて行う。
【0057】
例えば、図7で例示するように、クライアント装置200-1とクライアント装置200-2とに着目した場合に、類似度が最も高くなる組み合わせが、クライアント装置200-1の分岐1とクライアント装置200-2の分岐2、クライアント装置200-1の分岐2とクライアント装置200-2の分岐3、クライアント装置200-1の分岐3とクライアント装置200-2の分岐1であったとする。この場合、置換部353は、類似度の高い分岐が同じ順番となるように、つまり、クライアント装置200-2に対応する分岐の順番が分岐2、分岐3、分岐1の順番となるように、クライアント装置200-2に対応する分岐の順番を入れ替える。以降、置換部353は、類似度算出部352が算出した類似度に基づいて、クライアント装置200-3、クライアント装置200-4に対応する分岐の順番を入れ替える処理を行う。
【0058】
パラメータ算出部354は、類似度算出部352による類似度の算出結果に基づいて選択されるローカルモデルパラメータに基づいて、グローバルモデルのパラメータを算出する。例えば、パラメータ算出部354は、置換部353による置換処理の結果に基づいて、同じ順番の分岐を算出対象として選択して、グローバルモデルのパラメータを算出する。また、パラメータ算出部354は、算出したグローバルモデルのパラメータをグローバルモデル情報342として記憶部340に格納する。
【0059】
例えば、図8を参照すると、置換部353による置換処理により、クライアント装置200-1の分岐1とクライアント装置200-2の分岐2とクライアント装置200-3の分岐2とクライアント装置200-4の分岐3とが同じ順番となる。そこで、パラメータ算出部354は、クライアント装置200-1の分岐1に対応するローカルモデルパラメータとクライアント装置200-2の分岐2に対応するローカルモデルパラメータとクライアント装置200-3の分岐2に対応するローカルモデルパラメータとクライアント装置200-4の分岐3に対応するローカルモデルパラメータとに基づいて、グローバルモデルにおける分岐1のパラメータを算出する。同様に、図8で例示する場合、パラメータ算出部354は、クライアント装置200-1の分岐2に対応するローカルモデルパラメータとクライアント装置200-2の分岐3に対応するローカルモデルパラメータとクライアント装置200-3の分岐3に対応するローカルモデルパラメータとクライアント装置200-4の分岐2に対応するローカルモデルパラメータとに基づいて、グローバルモデルにおける分岐2のパラメータを算出する。また、パラメータ算出部354は、クライアント装置200-1の分岐3に対応するローカルモデルパラメータとクライアント装置200-2の分岐1に対応するローカルモデルパラメータとクライアント装置200-3の分岐1に対応するローカルモデルパラメータとクライアント装置200-4の分岐1に対応するローカルモデルパラメータとに基づいて、グローバルモデルにおける分岐3のパラメータを算出する。
【0060】
具体的には、例えば、パラメータ算出部354は、クライアント装置200が有する訓練データのデータ数を用いた重みづけを行ったうえで、ローカルモデルパラメータの平均を算出することで、複数のローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出する。例えば、パラメータ算出部354は、数3で示す式を解くことで、複数のローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出することができる。
【数3】
なお、nは各クライアント装置が有するデータ数の合計を示し、nkはクライアント装置kが有するデータ数を示す。Kは、学習システム100に含まれるクライアント装置200の総数である。また、Wi,jは、i番目の層のj番目の分岐のパラメータであることを示す。また、σ-1(j)は、置換後に分岐jとなる置換前の分岐を示す。
【0061】
なお、パラメータ算出部354は、上記例示した以外の方法でグローバルモデルのパラメータを算出してもよい。例えば、パラメータ算出部354は、訓練データのデータ数を用いた重みづけを行わずに、各ローカルモデルパラメータの平均値を算出するよう構成してもよい。また、パラメータ算出部354は、類似度算出部352による類似度の算出結果に基づいて類似度が高くなる分岐の組み合わせを選択して、選択した組み合わせでグローバルモデルのパラメータを算出するよう構成してもよい。
【0062】
パラメータ送信部355は、パラメータ算出部354が算出したグローバルモデルのパラメータをクライアント装置200へと送信する。なお、パラメータ送信部355は、グローバルモデルの分岐を、置換前の分岐に戻してからクライアント装置へ送信しても良い。
【0063】
以上が、サーバ装置300の構成例である。続いて、図9図10を参照して、学習システム100の動作例について説明する。まず、図9を参照して、クライアント装置200の動作例について説明する。
【0064】
図9は、クライアント装置200の動作例を示すフローチャートである。図9を参照すると、パラメータ受信部251は、学習対象となるニューラルネットワークを構成する各層内における各分岐に対応するパラメータをサーバ装置300から受信する(ステップS101)。
【0065】
学習部252は、パラメータ受信部251が受信したパラメータを有するモデルに対して、訓練データ情報241に含まれる訓練データを用いた機械学習を行うことで、各分岐のパラメータや各分岐の重みなどを更新する(ステップS102)。例えば、学習部252は、勾配降下法などの既知の手段を用いて上記機械学習を行ってよい。
【0066】
パラメータ送信部253は、学習部252が更新したパラメータであるローカルモデルパラメータをサーバ装置300に対して送信する(ステップS103)。
【0067】
以上が、クライアント装置200の動作例である。続いて、図10を参照して、サーバ装置300の動作例について説明する。
【0068】
図10は、サーバ装置300の動作例を示すフローチャートである。図10を参照すると、パラメータ受信部351は、各分岐のローカルモデルパラメータを各クライアント装置200から受信する(ステップS201)。
【0069】
類似度算出部352は、異なるクライアント装置200から受信した、各分岐に対応するローカルモデルパラメータ間の類似度を算出する(ステップS202)。例えば、類似度算出部352は、2つのクライアント装置から受信したローカルモデルパラメータ間の類似度を算出する処理を繰り返すことで、各クライアント装置200から受信したローカルモデルパラメータ間の類似度を算出することができる。換言すると、類似度算出部352は、順々に二部マッチングを解くことで、各ローカルモデルパラメータ間の類似度を算出する。
【0070】
置換部353は、類似度算出部352が算出した類似度に基づいて、分岐の順番を入れ替える置換処理を行う(ステップS203)。例えば、置換部353は、類似度の高い分岐の組み合わせでパラメータ算出部354によるグローバルモデルのパラメータ算出処理が行われるように、類似度に基づいて分岐の順番を入れ替える。
【0071】
パラメータ算出部354は、類似度算出部352による類似度の算出結果に基づいて選択されるローカルモデルパラメータに基づいて、グローバルモデルのパラメータを算出する(ステップS204)。例えば、パラメータ算出部354は、置換部353による置換処理の結果に基づいて、同じ順番の分岐を算出対象として選択して、グローバルモデルのパラメータを算出する。
【0072】
パラメータ送信部355は、パラメータ算出部354が算出したグローバルモデルのパラメータをクライアント装置200へと送信する(ステップS205)。なお、パラメータ送信部355は、グローバルモデルの分岐を、置換前の分岐に戻してからクライアント装置へ送信しても良い
【0073】
以上が、サーバ装置300の動作例である。学習システム100では、図9図10を参照して例示したような一連のステップが、例えば所定の終了条件を満たすまで繰り返される。なお、終了条件は、例えば、一連のステップを予め定められた所定回数繰り返すなど、任意に定めてよい。
【0074】
このように、サーバ装置300は、パラメータ算出部354とパラメータ送信部355とを有している。このような構成によると、パラメータ送信部355は、パラメータ算出部354が算出したパラメータをクライアント装置200に対して送信することができる。その結果、クライアント装置200において、受信したパラメータを用いたローカルモデルパラメータや重みの更新などを行うことができる。これにより、クライアント装置200間でローカルモデルを共有することなく、例えば、クライアント装置200ごとに重みを学習することなどにより、各自のデータに適したローカルモデルを学習することができるようになる。その結果、情報流出の可能性を低減させることができる。
【0075】
さらに、本実施形態において説明したサーバ装置300の場合、類似度算出部352とパラメータ算出部354とを有している。このような構成によると、パラメータ算出部354は、類似度算出部352による類似度の算出結果に基づいて選択されるローカルモデルパラメータに基づいて、グローバルモデルのパラメータを算出することができる。従来は、類似度を算出することなく、常に同じ分岐同士で平均をとっていた。その結果、大きく離れたパラメータが同じ順番である場合などにおいて、学習が安定しなくなることがあった。本実施形態において説明したサーバ装置300の場合、上述したように、パラメータが近いもの同士で平均をとってグローバルモデルのパラメータを算出している。その結果、従来の場合と比較してより安定した学習を行うことができるようになり、より精度の高い学習を行うことができる。
【0076】
[第2の実施形態]
次に、本開示の第2の実施形態について、図11図12を参照して説明する。図11は、サーバ装置400のハードウェア構成例を示す図である。図12は、サーバ装置400の構成例を示すブロック図である。
【0077】
本開示の第2の実施形態においては、クライアント装置などの外部装置と協力して学習を行う情報処理装置であるサーバ装置400の構成例について説明する。図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
【0078】
なお、サーバ装置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)、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを用いてもよい。
【0079】
また、サーバ装置400は、プログラム群404をCPU401が取得して当該CPU401が実行することで、図12に示す受信部421、類似度算出部422、パラメータ算出部423、パラメータ送信部424としての機能を実現することが出来る。なお、プログラム群404は、例えば、予め記憶装置405やROM402に格納されており、必要に応じてCPU401がRAM403などにロードして実行する。また、プログラム群404は、通信ネットワーク411を介してCPU401に供給されてもよいし、予め記録媒体410に格納されており、ドライブ装置406が該プログラムを読み出してCPU401に供給してもよい。
【0080】
なお、図11は、サーバ装置400のハードウェア構成例を示している。サーバ装置400のハードウェア構成は上述した場合に限定されない。例えば、サーバ装置400は、ドライブ装置406を有さないなど、上述した構成の一部から構成されてもよい。
【0081】
受信部421は、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行うことで、多重化された各分岐のローカルモデルパラメータと多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みとを学習する複数のクライアント装置から、各分岐に対応する前記ローカルモデルパラメータを受信する。
【0082】
類似度算出部422は、異なるクライアント装置から受信した、各分岐に対応する前記ローカルモデルパラメータ間の類似度を算出する。
【0083】
パラメータ算出部423は、類似度算出部422による算出結果に基づいて選択されるローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出する。
【0084】
パラメータ送信部424は、パラメータ算出部423が算出したパラメータをクライアント装置へと送信する。
【0085】
このように、サーバ装置400は、パラメータ算出部423とパラメータ送信部424とを有している。このような構成によると、パラメータ送信部424は、パラメータ算出部423が算出したパラメータをクライアント装置に対して送信することができる。その結果、クライアント装置において、受信したパラメータを用いたローカルモデルパラメータや重みの更新などを行うことができる。これにより、クライアント装置間でローカルモデルを共有することなく、例えば、クライアント装置ごとに重みを学習することなどにより、各自のデータに適したローカルモデルを学習することができるようになる。その結果、情報流出の可能性を低減させることができる。
【0086】
さらに、本実施形態において説明したサーバ装置400の場合、類似度算出部422とパラメータ算出部423とを有している。このような構成によると、パラメータ算出部423は、類似度算出部422による類似度の算出結果に基づいて選択されるローカルモデルパラメータに基づいて、グローバルモデルのパラメータを算出することができる。その結果、類似度に基づく選択を行わない場合などと比較してより安定的な学習を行うことができ、より精度の高い学習を行うことができる。
【0087】
なお、上述したサーバ装置400は、当該サーバ装置400などの情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、サーバ装置400などの情報処理装置に、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行うことで、多重化された各分岐のローカルモデルパラメータと多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みとを学習する複数のクライアント装置から、各分岐に対応するローカルモデルパラメータを受信し、異なるクライアント装置から受信した、各分岐に対応するローカルモデルパラメータ間の類似度を算出し、算出結果に基づいて選択されるローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出する、処理を実現するためのプログラムである。
【0088】
また、上述したサーバ装置400などの情報処理装置により実行される算出方法は、サーバ装置400などの情報処理装置が、共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行うことで、多重化された各分岐のローカルモデルパラメータと多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みとを学習する複数のクライアント装置から、各分岐に対応するローカルモデルパラメータを受信し、異なるクライアント装置から受信した、各分岐に対応するローカルモデルパラメータ間の類似度を算出し、算出結果に基づいて選択されるローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出する、という方法である。
【0089】
上述した構成を有する、プログラム、又は、プログラムを記録したコンピュータが読み取り可能な記録媒体、又は、算出方法、の発明であっても、上述したサーバ装置400と同様の作用・効果を奏するために、上述した本発明の目的を達成することが出来る。
【0090】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるサーバ装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【0091】
(付記1)
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行うことで、多重化された各分岐のローカルモデルパラメータと多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みとを学習する複数のクライアント装置から、各分岐に対応する前記ローカルモデルパラメータを受信する受信部と、
異なるクライアント装置から受信した、各分岐に対応する前記ローカルモデルパラメータ間の類似度を算出する類似度算出部と、
前記類似度算出部による算出結果に基づいて選択される前記ローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出するパラメータ算出部と、
前記パラメータ算出部が算出したパラメータを前記クライアント装置に対して送信するパラメータ送信部と、
を有する
サーバ装置。
(付記2)
付記1に記載のサーバ装置であって、
前記類似度算出部は、2つのクライアント装置から受信した前記ローカルモデルパラメータ間の類似度を算出する処理を繰り返すことで、複数のクライアント装置から受信した前記ローカルモデルパラメータ間の類似度を算出する
サーバ装置。
(付記3)
付記1に記載のサーバ装置であって、
前記類似度算出部は、複数のクライアント装置のうち第1のクライアント装置から受信した各分岐に対応する前記ローカルモデルパラメータと、第1のクライアント装置とは異なる第2のクライアント装置から受信した各分岐に対応する前記ローカルモデルパラメータと、の間の類似度を算出した後、第2のクライアント装置から受信した各分岐に対応する前記ローカルモデルパラメータと、第2のクライアント装置とは異なる第3のクライアント装置から受信した各分岐に対応する前記ローカルモデルパラメータと、の間の類似度を算出する
サーバ装置。
(付記4)
付記1に記載のサーバ装置であって、
前記パラメータ算出部は、前記類似度算出部による算出結果に基づいて、類似度が最も高くなる組み合わせとなるように、各クライアント装置に対応する分岐を選択する
サーバ装置。
(付記5)
付記1に記載のサーバ装置であって、
前記類似度算出部による算出結果に基づいて、分岐の順番を入れ替える置換部を有し、
前記パラメータ算出部は、前記置換部による入れ替えの結果に基づいて、パラメータの算出対象になる分岐を選択する
サーバ装置。
(付記6)
付記5に記載のサーバ装置であって、
前記置換部は、類似度が最も高くなる組み合わせとなるように分岐の順番を入れ替える
サーバ装置。
(付記7)
付記5に記載のサーバ装置であって、
前記パラメータ算出部は、前記置換部が順番を入れ替えた状態において同一の順番となる分岐の平均値を算出することで、グローバルモデルのパラメータを算出する
サーバ装置。
(付記8)
情報処理装置が、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行うことで、多重化された各分岐のローカルモデルパラメータと多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みとを学習する複数のクライアント装置から、各分岐に対応する前記ローカルモデルパラメータを受信し、
異なるクライアント装置から受信した、各分岐に対応する前記ローカルモデルパラメータ間の類似度を算出し、
算出結果に基づいて選択される前記ローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出し、
算出したパラメータを前記クライアント装置に対して送信する
算出方法。
(付記9)
付記8に記載の算出方法であって、
2つのクライアント装置から受信した前記ローカルモデルパラメータ間の類似度を算出する処理を繰り返すことで、複数のクライアント装置から受信した前記ローカルモデルパラメータ間の類似度を算出する
算出方法。
(付記10)
情報処理装置に、
共通の入力に対して異なる操作を行うことが可能な多重化された分岐を有するニューラルネットワークモデルの連合学習を行うことで、多重化された各分岐のローカルモデルパラメータと多重化された各分岐からの出力を重ね合わせる際に用いられる分岐ごとの重みとを学習する複数のクライアント装置から、各分岐に対応する前記ローカルモデルパラメータを受信し、
異なるクライアント装置から受信した、各分岐に対応する前記ローカルモデルパラメータ間の類似度を算出し、
算出結果に基づいて選択される前記ローカルモデルパラメータに基づいてグローバルモデルのパラメータを算出し、
算出したパラメータを前記クライアント装置に対して送信する
処理を実現するためのプログラム。
【0092】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【0093】
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 置換部
354 パラメータ算出部
355 パラメータ送信部
400 サーバ装置
401 CPU
402 ROM
403 RAM
404 プログラム群
405 記憶装置
406 ドライブ装置
407 通信インタフェース
408 入出力インタフェース
409 バス
410 記録媒体
411 通信ネットワーク
421 受信部
422 類似度算出部
423 パラメータ算出部
424 パラメータ送信部

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