(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024077950
(43)【公開日】2024-06-10
(54)【発明の名称】情報処理装置、ノード、情報処理方法、プログラムおよび情報処理システム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240603BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2022190207
(22)【出願日】2022-11-29
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】相崎 友保
(57)【要約】
【課題】学習モデルの実用化を促進すること
【解決手段】サーバ5は、複数の通信装置3に対して、グローバルモデルを示す情報を送信するとともに、通信装置3が処理するローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報またはローカルモデルに対して共有データを入力して得られた出力データを、複数の通信装置3のそれぞれから受信する送受信部51と、複数の通信装置3から受信した複数のローカルモデルを示す情報または複数の出力データに基づいて、グローバルモデルを更新する更新部52と、更新後のグローバルモデルに対する、複数のローカルモデルまたは複数の出力データのそれぞれの貢献度を算出する算出部57と、を備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ノードが処理するローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報または前記ローカルモデルに対して共有データを入力して得られた出力データを、複数のノードのそれぞれから受信する受信手段と、
前記複数のノードから受信した複数の前記ローカルモデルを示す情報または複数の前記出力データに基づいて、前記グローバルモデルを更新する更新手段と、
前記更新されたグローバルモデルに対する、前記複数のローカルモデルまたは前記複数の出力データのそれぞれの貢献度を算出する算出手段と、を備えた情報処理装置。
【請求項2】
前記複数のローカルモデルまたは前記複数の出力データのそれぞれの前記貢献度に基づき、前記複数のノードのそれぞれに対するインセンティブを決定する決定手段をさらに備えた請求項1記載の情報処理装置。
【請求項3】
前記複数のノードに対して、前記グローバルモデルを示す情報を送信する送信手段をさらに備えた請求項1記載の情報処理装置。
【請求項4】
前記受信手段は、さらに、前記ローカルモデルを学習するときに用いられた前記ローカルデータのデータ量を受信し、
前記算出手段は、前記複数のノードのそれぞれの前記データ量に基づき、前記貢献度を算出する請求項1記載の情報処理装置。
【請求項5】
前記更新手段は、
特定のノードを含む前記複数のノードのそれぞれから受信した複数の前記ローカルモデルを示す情報または前記出力データに基づいて、前記グローバルモデルを第1のグローバルモデルに更新するとともに、
前記複数のノードから前記特定のノードを除いたノードまたは前記特定のノードから受信した前記ローカルモデルまたは前記出力データに基づいて、前記グローバルモデルを第2のグローバルモデルに更新し、
前記算出手段は、
前記第1のグローバルモデルの評価と、前記第2のグローバルモデルの評価に基づき、前記特定のノードの前記ローカルモデルまたは前記出力データの前記貢献度を算出する請求項1記載の情報処理装置。
【請求項6】
評価データに基づき前記第1のグローバルモデルおよび前記第2のグローバルモデルをそれぞれ評価する評価手段をさらに備えた請求項5記載の情報処理装置。
【請求項7】
前記受信手段は、さらに、前記ローカルデータに基づく前記第1のグローバルモデルの評価と、前記ローカルデータに基づく前記第2のグローバルモデルの評価を受信する請求項5記載の情報処理装置。
【請求項8】
ノードが処理するローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報または前記ローカルモデルに対して共有データを入力して得られた出力データを、複数のノードのそれぞれから受信する受信手段と、
前記複数のノードから受信した複数の前記ローカルモデルを示す情報または複数の前記出力データに基づいて、前記グローバルモデルを更新する更新手段と、
評価データに基づき、前記更新されたグローバルモデルを評価する評価手段と、を備えた情報処理装置。
【請求項9】
ローカルデータによってグローバルモデルを基に学習したローカルモデルを得る学習処理手段と、
複数のノードの前記ローカルモデルまたは前記ローカルモデルに対して共有データを入力して得られた前記複数のノードの出力データに基づき更新された前記グローバルモデルを、前記ローカルデータに基づき評価する評価手段と、
を備えたノード。
【請求項10】
複数のノードに対して、グローバルモデルを示す情報を送信する送信ステップと、
前記ノードが処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルを示す情報または前記ローカルモデルに対して共有データを入力して得られた出力データを、前記複数のノードのそれぞれから受信する受信ステップと、
前記複数のノードから受信した複数の前記ローカルモデルを示す情報または複数の前記出力データに基づいて、前記グローバルモデルを更新する更新ステップと、
前記更新されたグローバルモデルに対する、前記複数のローカルモデルまたは前記複数の出力データのそれぞれの貢献度を算出する算出ステップと、を実行する情報処理方法。
【請求項11】
ノードが処理するローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報または前記ローカルモデルに対して共有データを入力して得られた出力データを、複数のノードのそれぞれから受信する受信ステップと、
前記複数のノードから受信した複数の前記ローカルモデルを示す情報または複数の前記出力データに基づいて、前記グローバルモデルを更新する更新ステップと、
評価データに基づき、前記更新されたグローバルモデルを評価する評価ステップと、を備えた情報処理方法。
【請求項12】
ローカルデータによってグローバルモデルを基に学習したローカルモデルを得る学習処理ステップと、
複数のノードの前記ローカルモデルまたは前記ローカルモデルに対して共有データを入力して得られた前記複数のノードの出力データに基づき更新された前記グローバルモデルを、前記ローカルデータに基づき評価する評価ステップと、
を実行する情報処理方法。
【請求項13】
コンピュータに、請求項9または10記載の情報処理方法を実行させるプログラム。
【請求項14】
情報処理装置と、前記情報処理装置と通信可能な複数のノードを備える情報処理システムであって、
前記複数のノードのそれぞれは、
前記情報処理装置に対して、ローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報または前記ローカルモデルに対して共有データを入力して得られた出力データを送信する送信手段を備え、
前記情報処理装置は、
前記ローカルモデルを示す情報または前記出力データを、前記複数のノードのそれぞれから受信する受信手段と、
前記複数のノードから受信した複数の前記ローカルモデルを示す情報または複数の前記出力データに基づいて、前記グローバルモデルを更新する更新手段と、
前記更新されたグローバルモデルに対する、前記複数のローカルモデルまたは前記複数の出力データのそれぞれの貢献度を算出する算出手段と、
を備えた情報処理システム。
【請求項15】
情報処理装置と、前記情報処理装置と通信可能な複数のノードを備える情報処理システムであって、
前記複数のノードのそれぞれは、
前記情報処理装置に対して、ローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報または前記ローカルモデルに対して共有データを入力して得られた出力データを送信する送信手段を備え、
前記情報処理装置は、
前記ローカルモデルを示す情報または前記出力データを、前記複数のノードのそれぞれから受信する受信手段と、
前記複数のノードから受信した複数の前記ローカルモデルを示す情報または複数の前記出力データに基づいて、前記グローバルモデルを更新する更新手段と、
評価データに基づき、前記更新されたグローバルモデルを評価する評価手段と、を備えた情報処理システム。
【請求項16】
情報処理装置と、前記情報処理装置と通信可能な複数のノードを備える情報処理システムであって、
前記複数のノードのそれぞれは、
ローカルデータによってグローバルモデルを基に学習したローカルモデルを得る学習処理手段と、
前記情報処理装置に対して、前記ローカルモデルを示す情報または前記ローカルモデルに対して共有データを入力して得られた出力データを送信する送信手段と、を備え、
前記情報処理装置は、
前記ローカルモデルを示す情報または前記出力データを、前記複数のノードのそれぞれから受信する受信手段と、
前記複数のノードから受信した複数の前記ローカルモデルを示す情報または複数の前記出力データに基づいて、前記グローバルモデルを更新する更新手段と、
前記複数のノードに対して、前記更新された前記グローバルモデルを送信する送信手段と、を備え、
前記複数のノードのそれぞれは、さらに、
前記更新された前記グローバルモデルを、前記情報処理手段から受信する受信手段と、
前記更新された前記グローバルモデルを、前記ローカルデータに基づき評価する評価手段と、
を備えた情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、ノード、情報処理方法、プログラムおよび情報処理システムに関する。
【背景技術】
【0002】
特許文献1には、第1の学習用データの入力をユーザから受け付ける受付部と、前記第1の学習用データと判別器を作成するために用いられた第2の学習用データとの比較結果と、前記第1の学習用データを前記判別器に入力して得られる出力と前記第1の学習用データに対応する正解データとの比較結果の少なくとも一方に基づいて、前記第1の学習用データの前記判別器の学習に対する貢献度を、前記ユーザごとに算出する算出部と、前記ユーザごとに算出された貢献度に基づいて、前記ユーザへのサービスを設定するサービス設定部を備える学習システムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、学習モデルの実用化を促進することを課題とする。
【課題を解決するための手段】
【0005】
本発明に係る情報処理装置は、ノードが処理するローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報またはローカルモデルに対して共有データを入力して得られた出力データを、複数のノードのそれぞれから受信する受信手段と、複数のノードから受信した複数のローカルモデルを示す情報または複数の出力データに基づいて、グローバルモデルを更新する更新手段と、更新されたグローバルモデルに対する、複数のローカルモデルまたは複数の出力データのそれぞれの貢献度を算出する算出手段と、を備える。
【発明の効果】
【0006】
本発明によれば、学習モデルの実用化を促進することができる。
【図面の簡単な説明】
【0007】
【
図1】本発明の実施形態に係る情報処理システムの全体構成図である。
【
図2】本実施形態に係る通信装置、サーバのハードウエア構成図である。
【
図3】本実施形態に係る情報処理システムの機能ブロック図である。
【
図4】本実施形態に係る処理の第1実施例を示すシーケンス図である。
【
図5】第1実施例に係るサーバの処理を示すフローチャートである。
【
図6】第1実施例に係る通信装置の処理を示すフローチャートである。
【
図7】本実施形態に係る処理の第2実施例を示す第1のシーケンス図である。
【
図8】本実施形態に係る処理の第2実施例を示す第2のシーケンス図である。
【
図9】第2実施例に係るサーバの全体的な処理を示すフローチャートである。
【
図10】第2実施例に係るサーバの詳細な処理を示すフローチャートである。
【
図11】本実施形態に係る処理の第3実施例を示す第1のシーケンス図である。
【
図12】本実施形態に係る処理の第3実施例を示す第2のシーケンス図である。
【
図13】第3実施例に係るサーバの処理を示すフローチャートである。
【
図14】第3実施例に係る通信装置の処理を示すフローチャートである。
【
図15】本実施形態に係る処理の第4実施例を示すシーケンス図である。
【
図16】
図15に示した第4実施例に係るサーバの処理を示すフローチャートである。
【
図17】第4実施例に係る通信装置の処理を示すフローチャートである。
【
図18】本実施形態に係る処理の第5実施例を示す第1のシーケンス図である。
【
図19】本実施形態に係る処理の第5実施例を示す第2のシーケンス図である。
【
図20】本実施形態に係る処理の第6実施例を示す第1のシーケンス図である。
【
図21】本実施形態に係る処理の第6実施例を示す第2のシーケンス図である。
【発明を実施するための形態】
【0008】
連合学習(Federated learning)は、データを集約せず分散した状態のまま、学習を行う機械学習の手法であり、プライバシーやセキュリティを担保しながらあたかもデータ連携をしたかのように、複数クライアント間のデータを活かしたモデルの構築を可能にする技術である。
【0009】
今までの連合学習では、連合学習に参加するクライアントのメリットは、連合学習によって構築した高精度なモデルが使用できる点であるが、連合学習モデルの高精度化に大きく貢献した場合でも、まったく貢献していない場合でも、クライアントが得られるメリットは同じであるという点が課題であった。
【0010】
本実施形態は、プライバシーやセキュリティを担保しながら、連合学習モデルへの貢献度に応じて、クライアントへインセンティブを付与することを目的とする。
【0011】
図1は、本発明の実施形態に係る情報処理システムの全体構成図である。本実施形態の情報処理システム1は、複数の通信装置3A、3B~3N、3a、外部ストレージ4、及びサーバ5によって構築されている。
【0012】
サーバ5は、連合学習に用いられるグローバルモデル等を管理する情報処理装置の一例である。ここで、グローバルモデルは、サーバ5側、つまりはセントラル側で管理される学習モデルでもあるため、セントラルモデルとして言い換えてもよい。
【0013】
複数の通信装置3A、3B~3Nは、連合学習に参加するクライアントが使用するノードの一例であり、通信装置3aは、連合学習には参加しないが、サーバ5から学習済みのグローバルモデルの配布を受けるクライアントが使用するノードの一例である。なお、複数の通信装置3A、3B~3Nは、それぞれを区別する必要がない場合は、単に通信装置3として説明する。
【0014】
外部ストレージ4は、サーバ5や、複数の通信装置3A、3B…3Nで用いられる共有データを記憶して管理する。
【0015】
複数の通信装置3A、3B~3N、3a、外部ストレージ4及びサーバ5は、通信ネットワーク100を介して通信することができる。通信ネットワーク100は、インターネット、移動体通信網、LAN(LocalAreaNetwork)等によって構築されている。通信ネットワーク100には、有線通信だけでなく、3G(3rdGeneration)、WiMAX(WorldwideInteroperabilityforMicrowaveAccess)、LTE(LongTermEvolution)等の無線通信によるネットワークが含まれてもよい。
【0016】
また、情報処理システム1は、複数の通信装置3A、3B…3N、3a、外部ストレージ4、及びサーバ5の全てまたは一部をクラウドコンピューティングにより構成しても良い。その場合、複数の通信装置3A、3B…3N、3a、外部ストレージ4、及びサーバ5は、通信ネットワーク100を介することなく、高速に相互に通信することができる。
【0017】
<ハードウエア構成>
図2は、本実施形態に係る通信装置、サーバのハードウエア構成図である。通信装置3の各ハードウエア構成は、300番台の符号で示されている。サーバ5の各ハードウエア構成は、括弧内の500番台の符号で示されている。
【0018】
通信装置3は、CPU(CentralProcessingUnit)301、ROM(ReadOnlyMemory)302、RAM(RandomAccessMemory)303、HD(HardDisk)304、HDD(HardDiskDrive)305、記録メディア306、メディアI/F307、ディスプレイ308、ネットワークI/F309、キーボード311、マウス312、CD-RW(CompactDisc-ReWritable)ドライブ314、及び、バスライン310を備えている。
【0019】
これらのうち、CPU301は、通信装置3全体の動作を制御する。ROM302は、CPU301の駆動に用いられるプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される。HD304は、プログラム等の各種データを記憶する。HDD305は、CPU301の制御にしたがってHD304に対する各種データの読み出し又は書き込みを制御する。メディアI/F307は、フラッシュメモリ等の記録メディア306に対するデータの読み出し又は書き込み(記憶)を制御する。ディスプレイ308は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。ネットワークI/F309は、通信ネットワーク100を利用してデータ通信をするためのインターフェースである。キーボード311は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。マウス312は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。CD-RWドライブ314は、着脱可能な記録媒体の一例としてのCD-RW513に対する各種データの読み出し又は書き込みを制御する。通信装置3は、さらに、有線やWifi等の無線により接続される外部PCや外部デバイスに対するデータの読み出し又は書き込み(記憶)を制御する構成を備えていても良い。
【0020】
また、サーバ5は、CPU501、ROM502、RAM503、HD504、HDD505、記録メディア506、メディアI/F507、ディスプレイ508、ネットワークI/F509、キーボード511、マウス512、CD-RWドライブ514、及び、バスライン510を備えている。これらは、それぞれ上述の構成(CPU301、ROM302、RAM303、HD304、HDD305、記録メディア306、メディアI/F307、ディスプレイ308、ネットワークI/F309、キーボード311、マウス312、CD-RWドライブ314、及び、バスライン310)と同様の構成であるため、これらの説明を省略する。
【0021】
なお、CD-RWドライブ314(514)ではなく、CD-Rドライブ等であってもよい。また、通信装置3、及びサーバ5は、それぞれ単一のコンピュータによって構築されてもよいし、各部(機能、手段、又は記憶部)を分割して任意に割り当てられた複数のコンピュータによって構築されていてもよい。
【0022】
図3は、本実施形態に係る情報処理システムの機能ブロック図である。
【0023】
<通信装置の機能構成>
図3に示されているように、通信装置3は、送受信部31、受付部32、表示制御部33、選定部34、判断部35、評価部36、算出部37、学習処理部38、および記憶・読出部39を有している。これら各部は、
図2に示されている各構成要素のいずれかが、HD304からRAM303上に展開されたプログラムに従ったCPU301からの命令によって動作することで実現される機能、又は機能する手段である。また、通信装置3は、
図2に示されているRAM303及びHD304によって構築される記憶部3000を有している。記憶部3000は、記憶手段の一例である。
【0024】
(通信装置の各機能構成)
次に、通信装置3の各構成要素について説明する。
【0025】
送受信部31は、受信手段の一例であり、
図2に示されているCPU301からの命令、並びにネットワークI/F309によって実現され、通信ネットワーク100を介して他の端末、装置又はシステムと各種データ(または情報)の送受信を行う。
【0026】
受付部32は、受付手段の一例であり、主に、
図2に示されているCPU301からの命令、並びにキーボード311及びマウス312によって実現され、利用者による各種入力を受け付ける。
【0027】
表示制御部33は、表示制御手段の一例であり、
図2に示されているCPU301からの命令によって実現され、表示部の一例であるディスプレイ308に、各種画像や画面を表示させる。
【0028】
選定部34は、
図2に示されているCPU301からの命令によって実現され、データを選定する処理等を実行する。選定部34は、選定手段の一例である。
【0029】
判断部35は、
図2に示されているCPU301からの命令によって実現され、各種判断処理を実行する。判断部35は、判断手段の一例である。
【0030】
評価部36は、
図2に示されているCPU301からの命令によって実現され、後述するグローバルモデルを評価する処理等を実行する。評価部36は、評価手段の一例である。
【0031】
算出部37は、
図2に示されているCPU301からの命令によって実現され、データ数を算出する処理等を実行する。算出部37は、算出手段の一例である。
【0032】
学習処理部38は、
図2に示されているCPU301からの命令によって実現され、学習処理を実行する。学習処理部38は、学習処理手段の一例である。
【0033】
記憶・読出部39は、記憶制御手段の一例であり、
図2に示されているCPU301からの命令、並びに、HDD305、メディアI/F307、CD-RWドライブ314および外部PCや外部デバイスによって実行され、記憶部3000、記録メディア306、CD-RW313および外部PCや外部デバイスに各種データを記憶したり、記憶部3000、記録メディア306、CD-RW313、および外部PCや外部デバイスから各種データを読み出したりする処理を行う。
【0034】
記憶部3000には、ローカルデータ管理DB3001、ローカルモデル管理DB3002が構築されている。
【0035】
ローカルデータ管理DB3001は、学習処理部38が学習処理を実行するときに入力されるローカルデータを記憶、管理し、ローカルモデル管理DB3002は、学習処理部38が学習処理を実行して得られたローカルモデルを記憶、管理する。
【0036】
<サーバの機能構成>
サーバ5は、送受信部51、更新部52、決定部53、選定部54、判断部55、評価部56、算出部57、及び記憶・読出部59を有している。これら各部は、
図2に示されている各構成要素のいずれかが、HD504からRAM503上に展開されたプログラムに従ったCPU501からの命令によって動作することで実現される機能又は機能する手段である。また、サーバ5は、
図2に示されているHD504により構築される記憶部5000を有している。記憶部5000は、記憶手段の一例である。
【0037】
(サーバの各機能構成)
次に、サーバ5の各構成要素について説明する。サーバ5は、複数のコンピュータに各機能を分散させて実現させる構成であってもよい。さらに、サーバ5は、クラウド環境に存在するサーバコンピュータであるものとして説明するが、オンプレミス環境に存在するサーバであってもよい。
【0038】
送受信部51は、送信手段の一例であり、
図2に示されているCPU501からの命令、並びにネットワークI/F509によって実現され、通信ネットワーク100を介して他の端末、装置又はシステムと各種データ(または情報)の送受信を行う。
【0039】
更新部52は、
図2に示されているCPU501からの命令によって実現され、後述するグローバルモデルを更新する処理等を実行する。更新部52は、選定手段の一例である。
【0040】
決定部53は、
図2に示されているCPU501からの命令によって実現され、後述するインセンティブを決定する処理等を行なう。決定部53は、決定手段の一例である。
【0041】
選定部54は、
図2に示されているCPU501からの命令によって実現され、モデル、データおよび連合学習に参加する通信端末3を選定する処理等を実行する。選定部54は、選定手段の一例である。
【0042】
判断部55は、
図2に示されているCPU501からの命令によって実現され、各種判断処理を行なう。
【0043】
評価部56は、
図2に示されているCPU501からの命令によって実現され、グローバルモデルを評価する処理等を実行する。評価部56は、評価手段の一例である。
【0044】
算出部57は、
図2に示されているCPU501からの命令によって実現され、貢献度を算出する処理等を実行する。算出部57は、算出手段の一例である。
【0045】
記憶・読出部59は、記憶制御手段の一例であり、
図2に示されているCPU501からの命令、並びに、HDD505、メディアI/F507、CD-RWドライブ514および外部PCや外部デバイスによって実行され、記憶部5000、記録メディア506、CD-RW513および外部PCや外部デバイスに各種データを記憶したり、記憶部5000、記録メディア506、CD-RW513および外部PCや外部デバイスから各種データを読み出したりする処理を行う。記憶部5000、記録メディア506、CD-RW513、および外部PCや外部デバイスは、記憶手段の例である。
【0046】
記憶部5000には、グローバルモデル管理DB5001、およびセントラルデータ管理DB5002が構築されている。
【0047】
グローバルモデル管理DB5001は、通信装置3に配布するグローバルモデルを記憶、管理し、セントラルデータ管理DB5002は、グローバルモデルを評価するための評価データを含むセントラルデータを記憶、管理する。
【0048】
以上説明した通信装置3の機能構成、およびサーバ5の機能構成の全てまたは一部は、クラウドコンピューティングにより構成されても良い。その場合、通信装置3の送受信部31、およびサーバ5の送受信部51は、通信ネットワーク100を介することなく、高速に通信することができる。
【0049】
図4は、本実施形態に係る処理の第1実施例を示すシーケンス図である。
【0050】
サーバ5の選定部54は、連合学習に参加するクライアントの通信装置3を選定し(ステップS1)、記憶・読出部59がグローバルモデル管理DB5001から読み出したグローバルモデルから、各通信装置3に配布するグローバルモデルを選定する(ステップS2)。
図4に示す第1実施例では、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定する。
【0051】
送受信部51は、各通信装置3に対して、ステップS2で選定したグローバルモデルを送信して、各通信装置3の送受信部31は、サーバ5から送信されたグローバルモデルを受信する(ステップS3)。
【0052】
選定部34は、記憶・読出部39がローカルデータ管理DB3001から読み出したローカルデータから、学習処理に用いる学習データを選定し(ステップS4)、算出部37は、ステップS4で選定した学習データのデータ数を算出する(ステップS5)。
【0053】
学習処理部38は、ステップS3で受信したグローバルモデルに対して、ステップS4で選定した学習データを用いて学習処理を実行し、学習処理が終了すると、記憶・読出部59は、学習データを用いて学習処理を実行したグローバルモデルをローカルモデルとしてローカルモデル管理DB3002に記憶させる(ステップS6)。
【0054】
送受信部31は、サーバ5に対して、ステップS5で算出したデータ数と、ステップS6で得られたローカルモデルを送信し、サーバ5の送受信部51は、各通信装置3から送信されたデータ数とローカルモデルを受信する(ステップS7)。
【0055】
更新部52は、ステップS7で受信した各通信装置3におけるデータ数とローカルモデルに基づき、ステップS2で選定したグローバルモデルを更新する(ステップS8)。
【0056】
算出部57は、ステップS7で受信した各通信装置3におけるデータ数に基づき、ステップS8で更新したグローバルモデルに対する各通信装置3のローカルモデルの貢献度を算出し(ステップS9)、決定部53は、ステップS9で算出された各通信装置3のローカルモデルの貢献度に基づき、各通信装置3のクライアントのインセンティブを決定する(ステップS10)。
【0057】
送受信部51は、各通信装置3に対して、ステップS10で決定したインセンティブを送信して、各通信装置3の送受信部31は、サーバ5から送信されたインセンティブを受信する(ステップS11)。
【0058】
図5は、
図4に示した第1実施例に係るサーバの処理を示すフローチャートである。
【0059】
サーバ5の選定部54は、記憶・読出部59がグローバルモデル管理DB5001から読み出したグローバルモデルから、各通信装置3に配布するグローバルモデルを選択する(ステップS12)。
図5に示す第1実施例では、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定する。
【0060】
選定部54は、以前用いたグローバルモデルを選定してもよく、特定のクライアントで学習されたクライアントモデルに基づくグローバルモデルを選定してもよく、汎用のデータセットで事前に学習させたグローバルモデルを選定してもよい。
【0061】
送受信部51は、各通信装置3に対して、ステップS12で選定したグローバルモデルを送信する(ステップS13)。
【0062】
送受信部51は、各通信装置3から送信されたデータ数とローカルモデルを受信する(ステップS14)。
【0063】
更新部52は、ステップS14で受信した各通信装置3におけるデータ数とローカルモデルに基づき、ステップS2で選定したグローバルモデルを更新する(ステップS15)。
【0064】
更新部52は、FedAvg[1]、FedProx[2]、FedAvgM[3]等の公知の技術を用いてグローバルモデルを更新することができるが、ローカルモデルをもとに更新できるものであれば上記に限定するものではない。
【0065】
-efficient learning of deep networkS from decentralized data. ProceedingS of the 20 th International Conference on Artificial Intelligence and StatiSticS (AISTATS), Vol. 54, , 2017。
【0066】
[2] Tian Li, Anit Kumar Sahu, Manzil Zaheer, Maziar Sanjabi, Ameet Talwalkar, and Virginia Smith. Federated optimization in heterogeneouS networkS. In ProceedingS of Machine Learning and SyStemS, Vol. 2, pp. 429-450, 2020。
【0067】
[3] HSu, T.M.H., Qi, H., Brown, M.: MeaSuring the effectS of non-identical data diStribution for federated viSual claSSification. arXiv preprint arXiv:1909.06335 (2019)。
【0068】
更新部52は、一例として、FedAvg[1]では、各通信装置3のローカルモデルの重みを、各通信装置3のデータ数で加重平均してグローバルモデルを更新する。
【0069】
判断部55は、更新終了条件を満たしているか判断し、満たしていない場合は、ステップS13に戻る(ステップS16)。
【0070】
判断部55は、更新終了条件として、グローバルモデルの更新回数が所定の回数に到達したか否かを判断してもよく、更新が進んで精度の向上がこれ以上見込めないことを判断しても良い。
【0071】
ここで、更新時に「更新を止めるかということを判断するバリデーション用のデータ」を用意しておき、判断部55は、そのデータに基づき、更新を止めるかどうかを判断してもよい。
【0072】
ステップS16で更新終了条件を満たしている場合には、算出部57は、ステップS7で受信した各通信装置3におけるデータ数に基づき、ステップS8で更新したグローバルモデルに対する各通信装置3のクライアントの貢献度を算出する(ステップS17)。
【0073】
算出部57は、一例として、次式のように各通信装置3の学習データ数の比を用いて各通信装置3のクライアントの貢献度を算出する。
【0074】
【0075】
ここで、 n はクライアント数を、 Di は i 番目のクライアントの学習に使用したローカルデータ数を、 Ci は i 番目のクライアントの貢献度を表す。なお、貢献度算出方法は上記に限定するものではなく、各クライアントの学習データ数を基に算出できるものであればいかなるものでも良い。
【0076】
決定部53は、ステップS17で算出された貢献度に基づき、各通信装置3のクライアントのインセンティブを決定する(ステップS18)。
【0077】
ここで、インセンティブとは、例えば、各クライアントが連合学習を使用した際に発生する使用料金の割引などがあげられる。インセンティブは、クーポン、ポイント、キャッシュバック、仮想通貨等の特典や、所定のレベルやランクを上げることを含んでも良い。また、インセンティブを付与する対象は、クライアントに関連付けられたユーザであってもよい。
【0078】
インセンティブの付与によって、連合学習に参加するクライアントが、連合学習モデルの学習に貢献するモチベーションに繋げることやモチベーションを維持することを図ることができる。なお、インセンティブは上記に限定するものではなく、連合学習モデルの学習に貢献するモチベーションに繋げることやモチベーションを維持できるものであればいかなるものでも良い。
【0079】
図6は、
図4に示した第1実施例に係る通信装置の処理を示すフローチャートである。
【0080】
通信装置3の送受信部31は、サーバ5から送信して配布されたグローバルモデルを受信して取得する(ステップS21)。
【0081】
記憶・読出部39は、ローカルデータ管理DB3001からローカルデータを読み出して取得する(ステップS22)。
【0082】
選定部34は、ステップS22で取得したローカルデータから学習処理に用いる学習データを選定し、算出部37は、選定した学習データのデータ数を算出する(ステップS23)。
【0083】
学習処理部38は、ステップS21で受信したグローバルモデルに対して、ステップS5で選定した学習データを用いて学習処理を実行する(ステップS24)。
【0084】
判断部35は、学習終了条件を満たしているか判断し、満たしていない場合は、ステップS24に戻る(ステップS25)。
【0085】
判断部35は、学習終了条件として、エポック数やEarly Stoppingを用いても良い。
【0086】
エポック数とは、「一つの学習データを何回繰り返して学習させるか」の数のことである。Early Stoppingとは、「学習が進んで精度の向上がこれ以上見込めないとなったら、そこで学習を止める」という方法であり、学習時に「学習用のデータ」と「学習を止めるかということを判断するバリデーション用のデータ」に分けておき、そのデータを用いて学習を止めるかどうかという判断を行う方法のことである。
【0087】
ステップS25で学習終了条件を満たしている場合には、記憶・読出部59は、学習データを用いて学習処理を実行したグローバルモデルをローカルモデルとしてローカルモデル管理DB3002に記憶させ、送受信部31は、サーバ5に対して、学習処理を実行して得られたローカルモデルと、ステップS23で算出したデータ数を送信する(ステップS26)。
【0088】
以上説明したように、通信装置3は、サーバ5に対してローカルモデルやデータ数を送信するが、ローカルデータを送信していないので、ローカルデータを分散した状態のまま、
図5に示したように、ローカルモデルとデータ数に基づきグローバルモデルを更新することができる。
【0089】
また、ローカルデータを分散した状態のまま、連合学習モデルへの貢献度に応じて、パートナーへインセンティブを付与することにより、クライアントのプライバシーやセキュリティを担保しながら、連合学習モデルのモデルに貢献するモチベーションを与えることができる。
【0090】
さらに、実施例1では、算出部57は、複数の通信装置3のそれぞれのデータ数に基づき、貢献度を算出するため、貢献度を容易に算出することができる。
【0091】
図7は、本実施形態に係る処理の第2実施例を示す第1のシーケンス図である。
【0092】
第2実施例は、モデル精度への貢献度に応じて、各クライアントの貢献度を算出し、算出した各クライアントのインセンティブを決定する。
【0093】
具体的には、全クライアントが参加してできた連合学習モデルの精度と、貢献度算出対象のクライアントを連合学習から除外した際にできた連合学習モデルの精度を用いて、モデル精度への貢献度を算出する。
【0094】
図7は、第2実施例における全クライアントが参加する処理を示す。
【0095】
サーバ5の選定部54は、連合学習に参加する全てのクライアントの通信装置3を選定し(ステップS31)、記憶・読出部59がグローバルモデル管理DB5001から読み出したグローバルモデルから、各通信装置3に配布するグローバルモデルを選定する(ステップS32)。
図7に示す第2実施例では、
図4で説明した第1実施例と同様に、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定する。
【0096】
選定部54は、記憶・読出部59がセントラルデータ管理DB5002から読み出したセントラルデータから、グローバルモデルの精度の評価に用いる評価データを選定する(ステップS33)。
【0097】
送受信部51は、各通信装置3に対して、ステップS32で選定したグローバルモデルを送信して、各通信装置3の送受信部31は、サーバ5から送信されたグローバルモデルを受信する(ステップS34)。
【0098】
選定部34は、記憶・読出部39がローカルデータ管理DB3001から読み出したローカルデータから、学習処理に用いる学習データを選定し(ステップS35)、算出部37は、ステップS35で選定した学習データのデータ数を算出する(ステップS36)。
【0099】
学習処理部38は、ステップS34で受信したグローバルモデルに対して、ステップS35で選定した学習データを用いて学習処理を実行し、学習処理が終了すると、記憶・読出部59は、学習データを用いて学習処理を実行したグローバルモデルをローカルモデルとしてローカルモデル管理DB3002に記憶させる(ステップS37)。
【0100】
送受信部31は、サーバ5に対して、ステップS36で算出したデータ数と、ステップS37で得られたローカルモデルを送信し、サーバ5の送受信部51は、各通信装置3から送信されたデータ数とローカルモデルを受信する(ステップS38)。
【0101】
更新部52は、ステップS38で受信した各通信装置3におけるデータ数とローカルモデルに基づき、ステップS32で選定したグローバルモデルを更新する(ステップS39)。
【0102】
評価部56は、ステップS33で選定した評価データに基づき、ステップS39で更新したグローバルモデルの精度の評価値を算出する(ステップS40)。
【0103】
図8は、本実施形態に係る処理の第2実施例を示す第2のシーケンス図である。
【0104】
図8は、第2実施例における対象のクライアントを連合学習から除外したときの処理、および対象のクライアントの貢献度を算出する処理を示す。
【0105】
サーバ5の選定部54は、連合学習に参加する全てのクライアントから貢献度算出対象のクライアントを除いたクライアントの通信装置3を選定し(ステップS231)、サーバ5および通信装置3は、
図7のステップS32~S40と同様に、ステップS232~S240を実行する。
【0106】
算出部57は、ステップS40で算出したグローバルモデルの評価値と、ステップS240で算出したグローバルモデルの評価値に基づき、ステップS39で更新したグローバルモデルに対する対象の通信装置3のローカルモデルの貢献度を算出し(ステップS241)、決定部53は、ステップS241で算出された対象の通信装置3のローカルモデルの貢献度に基づき、対象の通信装置3のクライアントのインセンティブを決定する(ステップS242)。
【0107】
送受信部51は、対象の通信装置3に対して、ステップS242で決定したインセンティブを送信して、対象の通信装置3の送受信部31は、サーバ5から送信されたインセンティブを受信する(ステップS243)。
【0108】
そして、サーバ5および通信装置3が、対象の通信装置3毎にステップS231~S243を実行することにより、全ての通信装置3が、インセンティブを受信する。
【0109】
図9は、
図7および
図8に示した第2実施例に係るサーバの全体的な処理を示すフローチャートである。
【0110】
選定部54は、連合学習に参加する全てのクライアントの通信装置3を選定し(ステップS51)、サーバ5は、
図7のステップS32~S40に示したように、通信装置3とともに連合学習を実行し、更新したグローバルモデルの精度を評価する(ステップS52)。
【0111】
選定部54は、連合学習に参加する全てのクライアントから貢献度算出対象のクライアントを除いたクライアントの通信装置3を選定し(ステップS53)、サーバ5は、
図8のステップS232~S240に示したように、通信装置3とともに連合学習を実行し、更新したグローバルモデルの精度を評価する(ステップS55)。
【0112】
算出部57は、ステップS52で得られたグローバルモデルの評価値と、ステップS54で得られたグローバルモデルの評価値に基づき、ステップS52で更新したグローバルモデルに対する対象の通信装置3のローカルモデルの貢献度を算出する(ステップS55)。
【0113】
算出部57は、一例として、次式を用いて対象の通信装置3のローカルモデルの貢献度を算出する。
【0114】
【0115】
ここで、Eiは、ステップS54で得られたi番目のクライアントを除外して連合学習を行ったときのグローバルモデルの評価値を示し、EAllは、ステップS54で得られた全クライアントが参加して連合学習を行ったときのグローバルモデルの評価値を表し、Kiは、i番目のクライアントの貢献度を表す。ここでの評価値Eは、accuracy,precision,recall,f1などのように値の範囲は0~1で、1に近づくほど高精度である場合の例を示しているが、例えば評価値Eが、lossなどのように0に近づくほど高精度である場合には、算出部57は、次式を用いて貢献度を算出してもよい。
【0116】
【0117】
なお、貢献度算出方法は上記に限定するものではなく、ステップS52で得られたグローバルモデルの評価値と、ステップS54で得られたグローバルモデルの評価値に基づき算出できるものであればいかなるものでも良い。
【0118】
さらに、算出部57は、上記で算出した各クライアントの貢献度に基づき、次式を用いて貢献率を算出しても良い。
【0119】
【0120】
ここで、 nはクライアント数を、Kiはi番目のクライアントの貢献度を、Ciはi番目のクライアントの貢献率を表す。なお、貢献率算出方法は上記に限定するものではなく、上記で算出した各クライアントの貢献度を基に算出できるものであればいかなるものでも良い。
【0121】
判断部55は、全てのクライアントの通信装置3のローカルモデルの貢献度を算出したか判断し、ローカルモデルの貢献度を算出していないクライアントの通信装置3が残っている場合には、ステップS53に戻って、貢献度を未算出のクライアントの通信装置3に対する処理を実行する(ステップS56)。
【0122】
ステップS56で全てのクライアントの通信装置3のローカルモデルの貢献度を算出したと判断した場合には、決定部53は、ステップS55で算出された各クライアントの通信装置3のローカルモデルの貢献度に基づき、各クライアントのインセンティブを決定し、送受信部51は、各クライアントの通信装置3に対して、決定したインセンティブを送信する(ステップS57)。
【0123】
図10は、
図9に示した処理のステップS52およびS54の詳細を示すフローチャートである。
【0124】
サーバ5の選定部54は、記憶・読出部59がグローバルモデル管理DB5001から読み出したグローバルモデルから、各通信装置3に配布するグローバルモデルを選定する(ステップS61)。
図9に示す第2実施例では、
図5で説明した第1実施例と同様に、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定する。
【0125】
選定部54は、以前用いたグローバルモデルを選定してもよく、特定のクライアントで学習されたクライアントモデルに基づくグローバルモデルを選定してもよく、汎用のデータセットで事前に学習させたグローバルモデルを選定してもよい。
【0126】
記憶・読出部59は、セントラルデータ管理DB5002からセントラルデータを読み出して取得し(ステップS62)、選定部54は、ステップS62で取得したセントラルデータからグローバルモデルの精度の評価に用いる評価データを選定する(ステップS63)。
【0127】
ここで、選定部54は、ステップS62で取得したセントラルデータのすべてを評価データに選定したり、ランダムに評価データを選定したりしてもよいが、層化抽出法により評価データを選定することが好ましい。層化抽出法は、保有するデータ分布と同じになるように評価データを選定する方法である。
【0128】
送受信部51は、各通信装置3に対して、ステップS61で選定したグローバルモデルを送信する(ステップS64)。
【0129】
送受信部51は、各通信装置3から送信されたデータ数とローカルモデルを受信する(ステップS65)。
【0130】
更新部52は、ステップS65で受信した各通信装置3におけるデータ数とローカルモデルに基づき、
図5のステップS14と同様に、ステップS61で選定したグローバルモデルを更新する(ステップS66)。
【0131】
評価部56は、ステップS63で選定した評価データに基づき、ステップS66で更新したグローバルモデルの精度の評価値を算出する(ステップS67)。ここで、評価値の例としては、accuracy,precision,recall,f1,lossなどがあげられるが、評価値はこれらに限定するものではなく、機械学習モデルの性能を評価可能な値であればいかなる値でも良い。
【0132】
判断部55は、
図5のステップS15と同様に、更新終了条件を満たしているか判断し、満たしていない場合は、ステップS64に戻る(ステップS68)。判断部55は、ステップS67で算出した評価値を用いて、更新終了条件を満たしているかを判断しても良い。
【0133】
以上、第2実施例に係るサーバの処理を示すフローチャートを説明したが、第2実施例に係る通信装置の処理を示すフローチャートは、
図6で説明した第1実施例に係る通信装置の処理を示すフローチャートと同様であるため、説明を省略する。
【0134】
第2実施例では、算出部57は、全クライアントが参加してできた連合学習モデルの精度と、貢献度算出対象のクライアントを連合学習から除外した際にできた連合学習モデルの精度を用いて、モデル精度への貢献度を算出するため、貢献度を精度良く算出することができる。
【0135】
そして、第2実施例では、サーバ5の評価部56が、セントラルデータに基づきグローバルモデルを評価するため、グローバルモデルの汎用的な性能を精度良く評価できる。
【0136】
ここで、第2実施例の変形例として、全クライアントが参加してできた連合学習モデルの精度と、貢献度算出対象のクライアントのみ参加した連合学習モデルの精度を用いて、モデル精度への貢献度を算出してもよい。
【0137】
第2実施例の変形例では、
図8のステップS231において、サーバ5の選定部54は、貢献度算出対象のクライアントの通信装置3のみを選定し、ステップS239において、更新部52は、ステップS238で受信した対象の通信装置3におけるデータ数とローカルモデルのみに基づき、グローバルモデルを更新する。このため、算出部57は、実質的に、グローバルモデルの評価値と、ローカルモデルの評価値に基づき、対象の通信装置3のローカルモデルの貢献度を算出することになる。
【0138】
第2実施例の第2変形例は、第1実施例に比べて、貢献度を精度良く算出できるとともに、
図7および
図8に示した第2実施例に比べて、貢献度を容易に算出できる。
【0139】
図11は、本実施形態に係る処理の第3実施例を示す第1のシーケンス図である。
【0140】
第2実施例は、第3実施例と同様に、モデル精度への貢献度に応じて、各クライアントの貢献度を算出し、算出した各クライアントのインセンティブを決定する。
【0141】
第2実施例は、セントラルデータに基づきグローバルモデルの精度を評価したが、第3実施例は、各クライアントのローカルデータに基づきグローバルモデルの精度を評価する。
【0142】
図11は、第3実施例における全クライアントが参加する処理を示す。
【0143】
サーバ5の選定部54は、連合学習に参加する全てのクライアントの通信装置3を選定し(ステップS71)、記憶・読出部59がグローバルモデル管理DB5001から読み出したグローバルモデルから、各通信装置3に配布するグローバルモデルを選定する(ステップS72)。
図11に示す第3実施例では、
図4で説明した第1実施例や
図7で説明した第2実施例と同様に、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定する。
【0144】
第3実施例では、後段で選定部54により選定されたグローバルモデルの精度を評価するため、選定部54は、過去に貢献度の算出対象のクライアントが参加して更新されたグローバルモデルを選定する。
【0145】
送受信部51は、各通信装置3に対して、ステップS72で選定したグローバルモデルを送信して、各通信装置3の送受信部31は、サーバ5から送信されたグローバルモデルを受信する(ステップS73)。
【0146】
選定部34は、記憶・読出部39がローカルデータ管理DB3001から読み出したローカルデータから、学習処理に用いる学習データを選定し(ステップS74)、算出部37は、ステップS74で選定した学習データのデータ数を算出する(ステップS75)。
【0147】
学習処理部38は、ステップS73で受信したグローバルモデルに対して、ステップS74で選定した学習データを用いて学習処理を実行し、学習処理が終了すると、記憶・読出部59は、学習データを用いて学習処理を実行したグローバルモデルをローカルモデルとしてローカルモデル管理DB3002に記憶させる(ステップS76)。
【0148】
選定部34は、記憶・読出部59がローカルデータ管理DB3001から読み出したローカルデータから、グローバルモデルの精度の評価に用いる評価データを選定する(ステップS77)。
【0149】
評価部36は、ステップS77で選定した評価データに基づき、ステップS73で受信したグローバルモデルの精度の評価値を算出する(ステップS78)。
【0150】
送受信部31は、サーバ5に対して、ステップS74で算出したデータ数と、ステップS76で得られたローカルモデルと、ステップS78で算出した評価値を送信し、サーバ5の送受信部51は、各通信装置3から送信されたデータ数、ローカルモデルおよび評価値を受信する(ステップS79)。
【0151】
更新部52は、ステップS79で受信した各通信装置3におけるデータ数とローカルモデルに基づき、ステップS72で選定したグローバルモデルを更新する(ステップS80)。
【0152】
評価部56は、ステップS79で受信した各通信装置3による評価値に基づき、ステップS72で選定したグローバルモデルの精度の評価値を算出する(ステップS81)。
【0153】
図12は、本実施形態に係る処理の第3実施例を示す第2のシーケンス図である。
【0154】
図12は、第3実施例における対象のクライアントを連合学習から除外したときの処理、および対象のクライアントの貢献度を算出する処理を示す。
【0155】
サーバ5の選定部54は、連合学習に参加する全てのクライアントから貢献度算出対象のクライアントを除いたクライアントの通信装置3を選定し(ステップS271)、サーバ5および通信装置3は、
図11のステップS72~S81と同様に、ステップS272~S281を実行する。
【0156】
算出部57は、ステップS81で算出したグローバルモデルの評価値と、ステップS281で算出したグローバルモデルの評価値に基づき、ステップS72で選定したグローバルモデルに対する対象の通信装置3のローカルモデルの貢献度を算出し(ステップS282)、決定部53は、ステップS282で算出された対象の通信装置3のローカルモデルの貢献度に基づき、対象の通信装置3のクライアントのインセンティブを決定する(ステップS283)。
【0157】
送受信部51は、対象の通信装置3に対して、ステップS283で決定したインセンティブを送信して、対象の通信装置3の送受信部31は、サーバ5から送信されたインセンティブを受信する(ステップS284)。
【0158】
そして、サーバ5および通信装置3が、対象の通信装置3毎にステップS271~S284を実行することにより、全ての通信装置3が、インセンティブを受信する。
【0159】
図13は、
図11および
図12に示した第3実施例に係るサーバの処理を示すフローチャートである。なお、第3実施例に係るサーバの全体的な処理は、
図9に示した第2実施例のフローチャートと同様である。
【0160】
サーバ5の選定部54は、記憶・読出部59がグローバルモデル管理DB5001から読み出したグローバルモデルから、各通信装置3に配布するグローバルモデルを選定する(ステップS91)。
図13に示す第3実施例では、
図5で説明した第1実施例や
図9で説明した第2実施例と同様に、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定する。
【0161】
第3実施例では、後段で選定部54により選定されたグローバルモデルの精度を評価するため、選定部54は、過去に貢献度の算出対象のクライアントが参加して更新されたグローバルモデルを選定する。
【0162】
送受信部51は、各通信装置3に対して、ステップS91で選定したグローバルモデルを送信する(ステップS92)。
【0163】
送受信部51は、各通信装置3から送信されたデータ数、ローカルモデルおよび評価値を受信する(ステップS93)。
【0164】
更新部52は、ステップS93で受信した各通信装置3におけるデータ数とローカルモデルに基づき、
図5のステップS14と同様に、ステップS91で選定したグローバルモデルを更新する(ステップS94)。
【0165】
評価部56は、ステップS93で受信した各通信装置3による評価値に基づき、ステップS91で選定したグローバルモデルの精度の評価値を算出する(ステップS95)。
【0166】
評価部56は、ステップS93で受信した各通信装置3による評価値の平均値や、ステップS79で受信したデータ数に応じて荷重平均した値等により、連合学習に参加する全ての通信装置3による評価値を算出する。
【0167】
また、過去に取得した各クライアントでの評価値と今回取得した各クライアントでの評価値を平均して算出しても良い。なお、評価値は上記に限定するものではなく、ステップS93で受信した各通信装置3による評価値に基づいて、機械学習モデルの性能を評価可能な値であればいかなる値でも良い。
【0168】
判断部55は、
図5のステップS15と同様に、更新終了条件を満たしているか判断し、満たしていない場合は、ステップS92に戻る(ステップS96)。判断部55は、ステップS95で算出した評価値を用いて、更新終了条件を満たしているかを判断しても良い。
【0169】
図14は、
図11および
図12に示した第3実施例に係る通信装置の処理を示すフローチャートである。
【0170】
通信装置3の送受信部31は、サーバ5から送信して配布されたグローバルモデルを受信して取得する(ステップS101)。
【0171】
記憶・読出部39は、ローカルデータ管理DB3001からローカルデータを読み出して取得する(ステップS102)。
【0172】
選定部34は、ステップS102で取得したローカルデータから学習処理に用いる学習データを選定し、算出部37は、選定した学習データのデータ数を算出する(ステップS103)。
【0173】
選定部34は、記憶・読出部59がローカルデータ管理DB3001から読み出したローカルデータから、
図10のステップS63と同様に、グローバルモデルの精度の評価に用いる評価データを選定する(ステップS104)。
【0174】
評価部36は、ステップS104で選定した評価データに基づき、
図10のステップS67と同様に、ステップS101で受信したグローバルモデルの精度の評価値を算出する(ステップS105)。
【0175】
学習処理部38は、ステップS101で受信したグローバルモデルに対して、ステップS103で選定した学習データを用いて学習処理を実行する(ステップS106)。
【0176】
判断部35は、
図6のステップS25と同様に、学習終了条件を満たしているか判断し、満たしていない場合は、ステップS106に戻る(ステップS107)。
【0177】
ステップS107で学習終了条件を満たしている場合には、記憶・読出部59は、学習データを用いて学習処理を実行したグローバルモデルをローカルモデルとしてローカルモデル管理DB3002に記憶させ、送受信部31は、サーバ5に対して、学習処理を実行して得られたローカルモデルと、ステップS23で算出したデータ数と、ステップS78で算出した評価値を送信する(ステップS108)。
【0178】
以上説明した第3実施例では、第2実施例と同様に、算出部57は、全クライアントが参加してできた連合学習モデルの精度と、貢献度算出対象のクライアントを連合学習から除外した際にできた連合学習モデルの精度を用いて、モデル精度への貢献度を算出するため、貢献度を精度良く算出することができる。
【0179】
また、第3実施例においても、第2実施例と同様に、変形例として、全クライアントが参加してできた連合学習モデルの精度と、貢献度算出対象のクライアントのみ参加した連合学習モデルの精度を用いて、モデル精度への貢献度を算出してもよい。
【0180】
そして、第3実施例では、通信装置3の評価部36が、ローカルデータに基づきグローバルモデルを評価するため、グローバルモデルの特定の通信端末3に特化した性能を精度良く評価できる。
【0181】
図15は、本実施形態に係る処理の第4実施例を示すシーケンス図である。
【0182】
実施例4は、実施例1~3のようにローカルモデルに基づきグローバルモデルを更新するのではなく、ローカルモデルに共有データを入力して得られた出力データに基づきグローバルモデルを更新する連合蒸留に係る処理を実行する。
【0183】
サーバ5の選定部54は、連合学習に参加するクライアントの通信装置3を選定し(ステップS111)、記憶・読出部59がグローバルモデル管理DB5001から読み出したグローバルモデルから、各通信装置3に配布するグローバルモデルを選定する(ステップS112)。
図15に示す第4実施例では、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定してもよく、通信装置3毎に異なる構造のグローバルモデルを選定しても良い。
【0184】
送受信部51は、外部ストレージ4に対して、共有データを要求する情報を送信し(ステップS113)、外部ストレージ4から送信された共有データを受信する(ステップS114)。
【0185】
送受信部51は、各通信装置3に対して、ステップS112で選定したグローバルモデルを送信して、各通信装置3の送受信部31は、サーバ5から送信されたグローバルモデルを受信する(ステップS115)。
【0186】
選定部34は、記憶・読出部39がローカルデータ管理DB3001から読み出したローカルデータから、学習処理に用いる学習データを選定し(ステップS116)、算出部37は、ステップS116で選定した学習データのデータ数を算出する(ステップS117)。
【0187】
学習処理部38は、ステップS115で受信したグローバルモデルに対して、ステップS116で選定した学習データを用いて学習処理を実行し、学習処理が終了すると、記憶・読出部59は、学習データを用いて学習処理を実行したグローバルモデルをローカルモデルとしてローカルモデル管理DB3002に記憶させる(ステップS118)。
【0188】
送受信部31は、外部ストレージ4に対して、共有データを要求する情報を送信し(ステップS119)、外部ストレージ4から送信された共有データを受信する(ステップS120)。
【0189】
算出部37は、ステップS118で得られたローカルモデルに、ステップS120で受信した共有データを入力して得られる出力データを算出する(ステップS121)。
【0190】
送受信部31は、サーバ5に対して、ステップS117で算出したデータ数と、ステップS121で算出された出力データを送信し、サーバ5の送受信部51は、各通信装置3から送信されたデータ数と出力データを受信する(ステップS122)。
【0191】
更新部52は、ステップS114で受信した共有データ、ステップS122で受信した各通信装置3におけるデータ数および出力データに基づき、ステップS112で選定したグローバルモデルを更新する(ステップS123)。
【0192】
算出部57は、ステップS122で受信した各通信装置3におけるデータ数に基づき、ステップS123で更新したグローバルモデルに対する各通信装置3のローカルモデルの貢献度を算出し(ステップS124)、決定部53は、ステップS124で算出された各通信装置3のローカルモデルの貢献度に基づき、各通信装置3のクライアントのインセンティブを決定する(ステップS125)。
【0193】
送受信部51は、各通信装置3に対して、ステップS125で決定したインセンティブを送信して、各通信装置3の送受信部31は、サーバ5から送信されたインセンティブを受信する(ステップS126)。
【0194】
図16は、
図15に示した第4実施例に係るサーバの処理を示すフローチャートである。
【0195】
サーバ5の記憶・読出部59は、グローバルモデル管理DB5001からグローバルモデルを読み出して取得する(ステップS131)。取得するグローバルモデルは、以前用いたグローバルモデルでもよく、特定のクライアントで学習されたクライアントモデルに基づくグローバルモデルでもよく、汎用のデータセットで事前に学習させたグローバルモデルでもよい。
【0196】
選定部54は、各通信装置3に配布するグローバルモデルを選択する(ステップS132)。
図16に示す第4実施例では、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定してもよく、通信装置3毎に異なる構造のグローバルモデルを選定しても良い。ここで、異なる構造とは、Neural Networkを例にすると、Neural Networkの層構成や、各層のチャネル数などの、Neural Networkの構造が異なる事を指す。
【0197】
選定部54は、さらに、グローバルモデルをランダムに選定したり、各クライアントのデータ数に応じて選定したり、各クライアントでよく使用しているモデルを選定したり、クライアント側で所望するモデルを選定したり、してもよい。
【0198】
送受信部31は、外部ストレージ4に対して、共有データを要求する情報を送信し、外部ストレージ4から送信された共有データを受信して取得する(ステップS133)。ここで共有データとは、サーバ5と通信端末3の両方に共有可能なデータであり、ラベルが不要なデータセットの事を指す。共有データは、ラベルが不要であるため、アノテーション作業も必要ない。
【0199】
送受信部51は、各通信装置3に対して、ステップS131で選定したグローバルモデルを送信する(ステップS134)。
【0200】
送受信部51は、各通信装置3から送信されたデータ数と、学習後のローカルモデルに共有データを入力して得られた出力データを受信して取得する(ステップS135)。
【0201】
更新部52は、ステップS133で取得した共有データ、ステップS135で受信した各通信装置3におけるデータ数および出力データに基づき、グローバルモデルを更新する(ステップS136)。
【0202】
更新部52は、各通信装置3における出力データを平均した値に基づき、グローバルモデルを更新してもよく、各クライアントの出力データを単純に平均するだけでなく、各通信装置3におけるデータ数に応じて荷重平均した値に基づき、グローバルモデルを更新してもよい。
【0203】
グローバルモデルを更新する方法は、公知の技術である知識の蒸留(Knowledge Distillation)を用いればよい。実施例4では、知識の蒸留(Knowledge Distillation)における教師モデルは、各クライアントから取得した出力データを平均した値を表し、生徒モデルは、グローバルモデルを表す。なお、教師モデルから生徒モデルを生成する方法は広く知られており、ここでは詳細な説明は省略する。
【0204】
判断部55は、
図5のステップS15と同様に、更新終了条件を満たしているか判断し、満たしていない場合は、ステップS134に戻る(ステップS137)。
【0205】
ステップS137で更新終了条件を満たしている場合には、算出部57は、
図5のステップS16と同様に、ステップS135で受信した各通信装置3におけるデータ数に基づき、ステップS136で更新したグローバルモデルに対する各通信装置3のクライアントの貢献度を算出する(ステップS138)。
【0206】
決定部53は、ステップS138で算出された貢献度に基づき、
図5のステップS17と同様に、各通信装置3のクライアントのインセンティブを決定する(ステップS139)。
【0207】
図17は、
図15に示した第4実施例に係る通信装置の処理を示すフローチャートである。
【0208】
通信装置3の送受信部31は、サーバ5から送信して配布されたグローバルモデルを受信して取得する(ステップS141)。
【0209】
記憶・読出部39は、ローカルデータ管理DB3001からローカルデータを読み出して取得する(ステップS142)。
【0210】
選定部34は、ステップS22で取得したローカルデータから学習処理に用いる学習データを選定し、算出部37は、選定した学習データのデータ数を算出する(ステップS143)。
【0211】
学習処理部38は、ステップS21で受信したグローバルモデルに対して、ステップS5で選定した学習データを用いて学習処理を実行する(ステップS144)。
【0212】
判断部35は、
図6のステップS25と同様に、学習終了条件を満たしているか判断し、満たしていない場合はステップS24に戻り、学習終了条件を満たしている場合には、記憶・読出部59は、学習データを用いて学習処理を実行したグローバルモデルをローカルモデルとしてローカルモデル管理DB3002に記憶させる(ステップS145)。
【0213】
送受信部31は、外部ストレージ4に対して、共有データを要求する情報を送信し、外部ストレージ4から送信された共有データを受信して取得する(ステップS146)。
【0214】
算出部37は、ステップS145で得られたローカルモデルに、ステップS146で受信した共有データを入力して得られる出力データを算出する(ステップS147)
送受信部31は、サーバ5に対して、ステップS23で算出したデータ数と、ステップS147で算出された出力データを送信する(ステップS26)。
【0215】
以上説明した実施例4は、実施例1と同様の効果を奏することができる。また、実施例4は、実施例1~3のようにローカルモデルに基づきグローバルモデルを更新するのではなく、ローカルモデルに共有データを入力して得られた出力データに基づきグローバルモデルを更新する連合蒸留に係る処理を実行する。
【0216】
この場合、実施例4は、実施例1~3のようにクライアントで使用されるローカルモデルがすべて同じである必要がなく、各クライアントで異なる構造のローカルモデルを使用可能である。
【0217】
これにより、データ数や、データ分布、よく使用しているモデル構造等の各クライアントの状況に応じてより適切なモデル構造を選定する事が可能となり、精度向上につながると考えられる。例えば、データ数が少ないクライアントには、Neural Networkの層数が少ない、小さいモデルを選定し、データ数が多いクライアントには、Neural Networkの層数が多い、大きなモデルを選定することが可能である。
【0218】
図18は、本実施形態に係る処理の第5実施例を示す第1のシーケンス図である。
【0219】
第5実施例は、連合蒸留により得られるモデル精度への貢献度に応じて、各クライアントの貢献度を算出し、算出した各クライアントのインセンティブを決定する。
【0220】
具体的には、全クライアントが参加してできた連合学習モデルの精度と、貢献度算出対象のクライアントを連合学習から除外した際にできた連合学習モデルの精度を用いて、モデル精度への貢献度を算出する。
【0221】
図18は、第5実施例における全クライアントが参加する処理を示す。
【0222】
サーバ5の選定部54は、連合学習に参加する全てのクライアントの通信装置3を選定し(ステップS151)、記憶・読出部59がグローバルモデル管理DB5001から読み出したグローバルモデルから、各通信装置3に配布するグローバルモデルを選定する(ステップS152)。
図18に示す第5実施例では、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定してもよく、通信装置3毎に異なる構造のグローバルモデルを選定しても良い。
【0223】
送受信部51は、外部ストレージ4に対して、共有データを要求する情報を送信し(ステップS153)、外部ストレージ4から送信された共有データを受信する(ステップS154)。
【0224】
選定部54は、記憶・読出部59がセントラルデータ管理DB5002から読み出したセントラルデータから、
図10のステップS63と同様に、グローバルモデルの精度の評価に用いる評価データを選定する(ステップS155)。
【0225】
送受信部51は、各通信装置3に対して、ステップS32で選定したグローバルモデルを送信して、各通信装置3の送受信部31は、サーバ5から送信されたグローバルモデルを受信する(ステップS156)。
【0226】
選定部34は、記憶・読出部39がローカルデータ管理DB3001から読み出したローカルデータから、学習処理に用いる学習データを選定し(ステップS157)、算出部37は、ステップS157で選定した学習データのデータ数を算出する(ステップS158)。
【0227】
学習処理部38は、ステップS156で受信したグローバルモデルに対して、ステップS157で選定した学習データを用いて学習処理を実行し、学習処理が終了すると、記憶・読出部59は、学習データを用いて学習処理を実行したグローバルモデルをローカルモデルとしてローカルモデル管理DB3002に記憶させる(ステップS159)。
【0228】
送受信部31は、外部ストレージ4に対して、共有データを要求する情報を送信し(ステップS160)、外部ストレージ4から送信された共有データを受信する(ステップS161)。
【0229】
算出部37は、ステップS159で得られたローカルモデルに、ステップS161で受信した共有データを入力して得られる出力データを算出する(ステップS162)。
【0230】
送受信部31は、サーバ5に対して、ステップS158で算出したデータ数と、ステップS162で算出された出力データを送信し、サーバ5の送受信部51は、各通信装置3から送信されたデータ数と出力データを受信する(ステップS163)。
【0231】
更新部52は、ステップS154で受信した共有データ、ステップS163で受信した各通信装置3におけるデータ数および出力データに基づき、ステップS122で選定したグローバルモデルを更新する(ステップS164)。
【0232】
評価部56は、ステップS155で選定した評価データに基づき、ステップS164で更新したグローバルモデルの精度の評価値を算出する(ステップS165)。
【0233】
図19は、本実施形態に係る処理の第5実施例を示す第2のシーケンス図である。
【0234】
図19は、第5実施例における対象のクライアントを連合学習から除外したときの処理、および対象のクライアントの貢献度を算出する処理を示す。
【0235】
サーバ5の選定部54は、連合学習に参加する全てのクライアントから貢献度算出対象のクライアントを除いたクライアントの通信装置3を選定し(ステップS351)、サーバ5および通信装置3は、
図18のステップS152~S165と同様に、ステップS352~S365を実行する。
【0236】
算出部57は、ステップS165で算出したグローバルモデルの評価値と、ステップS365で算出したグローバルモデルの評価値に基づき、ステップS165で更新したグローバルモデルに対する対象の通信装置3のローカルモデルの貢献度を算出し(ステップS366)、決定部53は、ステップS366で算出された対象の通信装置3のローカルモデルの貢献度に基づき、対象の通信装置3のクライアントのインセンティブを決定する(ステップS367)。
【0237】
送受信部51は、対象の通信装置3に対して、ステップS367で決定したインセンティブを送信して、対象の通信装置3の送受信部31は、サーバ5から送信されたインセンティブを受信する(ステップS368)。
【0238】
そして、サーバ5および通信装置3が、対象の通信装置3毎にステップS351~S368を実行することにより、全ての通信装置3が、インセンティブを受信する。
【0239】
以上説明した第5実施例においても、第2実施例と同様に、変形例として、全クライアントが参加してできた連合学習モデルの精度と、貢献度算出対象のクライアントのみ参加した連合学習モデルの精度を用いて、モデル精度への貢献度を算出してもよい。
【0240】
以上説明した実施例5は、実施例2と同様の効果、かつ実施例4と同様の効果を奏することができる。
【0241】
図20は、本実施形態に係る処理の第6実施例を示す第1のシーケンス図である。
【0242】
第6実施例は、第5実施例と同様に、連合蒸留により得られるモデル精度への貢献度に応じて、各クライアントの貢献度を算出し、算出した各クライアントのインセンティブを決定する。
【0243】
第5実施例は、セントラルデータに基づきグローバルモデルの精度を評価したが、第6実施例は、各クライアントのローカルデータに基づきグローバルモデルの精度を評価する。
【0244】
図20は、第6実施例における全クライアントが参加する処理を示す。
【0245】
サーバ5の選定部54は、連合学習に参加する全てのクライアントの通信装置3を選定し(ステップS171)、記憶・読出部59がグローバルモデル管理DB5001から読み出したグローバルモデルから、各通信装置3に配布するグローバルモデルを選定する(ステップS172)。
図20に示す第6実施例では、選定部54は、連合学習に参加する全ての通信装置3に対して同一のグローバルモデルを選定してもよく、通信装置3毎に異なる構造のグローバルモデルを選定しても良い。
【0246】
送受信部51は、外部ストレージ4に対して、共有データを要求する情報を送信し(ステップS173)、外部ストレージ4から送信された共有データを受信する(ステップS174)。
【0247】
第6実施例では、後段で選定部54により選定されたグローバルモデルの精度を評価するため、選定部54は、過去に貢献度の算出対象のクライアントが参加して更新されたグローバルモデルを選定する。
【0248】
送受信部51は、各通信装置3に対して、ステップS72で選定したグローバルモデルを送信して、各通信装置3の送受信部31は、サーバ5から送信されたグローバルモデルを受信する(ステップS175)。
【0249】
選定部34は、記憶・読出部39がローカルデータ管理DB3001から読み出したローカルデータから、学習処理に用いる学習データを選定し(ステップS176)、算出部37は、ステップS176で選定した学習データのデータ数を算出する(ステップS177)。
【0250】
学習処理部38は、ステップS175で受信したグローバルモデルに対して、ステップS176で選定した学習データを用いて学習処理を実行し、学習処理が終了すると、記憶・読出部59は、学習データを用いて学習処理を実行したグローバルモデルをローカルモデルとしてローカルモデル管理DB3002に記憶させる(ステップS178)。
【0251】
送受信部31は、外部ストレージ4に対して、共有データを要求する情報を送信し(ステップS179)、外部ストレージ4から送信された共有データを受信する(ステップS180)。
【0252】
算出部37は、ステップS178で得られたローカルモデルに、ステップS180で受信した共有データを入力して得られる出力データを算出する(ステップS181)。
【0253】
選定部34は、記憶・読出部59がローカルデータ管理DB3001から読み出したローカルデータから、
図10のステップS63と同様に、グローバルモデルの精度の評価に用いる評価データを選定する(ステップS182)。
【0254】
評価部36は、ステップS182で選定した評価データに基づき、ステップS175で受信したグローバルモデルの精度の評価値を算出する(ステップS183)。
【0255】
送受信部31は、サーバ5に対して、ステップS177で算出したデータ数と、ステップS181で算出された出力データと、ステップS183で算出した評価値を送信し、サーバ5の送受信部51は、各通信装置3から送信されたデータ数、出力データおよび評価値を受信する(ステップS184)。
【0256】
更新部52は、ステップS174で受信した共有データ、ステップS184で受信した各通信装置3におけるデータ数および出力データに基づき、ステップS172で選定したグローバルモデルを更新する(ステップS185)。
【0257】
評価部56は、ステップS184で受信した各通信装置3による評価値に基づき、ステップS172で選定したグローバルモデルの精度の評価値を算出する(ステップS186)。
【0258】
図21は、本実施形態に係る処理の第6実施例を示す第2のシーケンス図である。
【0259】
図21は、第6実施例における対象のクライアントを連合学習から除外したときの処理、および対象のクライアントの貢献度を算出する処理を示す。
【0260】
サーバ5の選定部54は、連合学習に参加する全てのクライアントから貢献度算出対象のクライアントを除いたクライアントの通信装置3を選定し(ステップS371)、サーバ5および通信装置3は、
図20のステップS172~S186と同様に、ステップS372~S386を実行する。
【0261】
算出部57は、ステップS186で算出したグローバルモデルの評価値と、ステップS386で算出したグローバルモデルの評価値に基づき、ステップS172で選定したグローバルモデルに対する対象の通信装置3のローカルモデルの貢献度を算出し(ステップS387)、決定部53は、ステップS387で算出された対象の通信装置3のローカルモデルの貢献度に基づき、対象の通信装置3のクライアントのインセンティブを決定する(ステップS388)。
【0262】
送受信部51は、対象の通信装置3に対して、ステップS388で決定したインセンティブを送信して、対象の通信装置3の送受信部31は、サーバ5から送信されたインセンティブを受信する(ステップS389)。
【0263】
そして、サーバ5および通信装置3が、対象の通信装置3毎にステップS371~S389を実行することにより、全ての通信装置3が、インセンティブを受信する。
【0264】
以上説明した第6実施例においても、第2実施例と同様に、変形例として、全クライアントが参加してできた連合学習モデルの精度と、貢献度算出対象のクライアントのみ参加した連合学習モデルの精度を用いて、モデル精度への貢献度を算出してもよい。
【0265】
以上説明した実施例6は、実施例3と同様の効果、かつ実施例4と同様の効果を奏することができる。
【0266】
●まとめ●
[第1態様]
以上説明したように、本発明の一実施形態に係るサーバ5は、複数の通信装置3に対して、グローバルモデルを示す情報を送信するとともに、通信装置3が処理するローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報またはローカルモデルに対して共有データを入力して得られた出力データを、複数の通信装置3のそれぞれから受信する送受信部51と、複数の通信装置3から受信した複数のローカルモデルを示す情報または複数の出力データに基づいて、グローバルモデルを更新する更新部52と、更新後のグローバルモデルに対する、複数のローカルモデルまたは複数の出力データのそれぞれの貢献度を算出する算出部57と、を備える。ここで、サーバ5はサーバ5の一例であり、通信装置3は通信装置3の一例である。
【0267】
これにより、各クライアントの通信装置3にローカルデータを分散した状態のまま、グローバルモデルに対する各クライアントの貢献度を算出できるため、クライアントのプライバシーやセキュリティを担保しながら、グローバルモデルの更新に貢献するクライアントのモチベーションを与えることができる。
【0268】
[第2態様]
第1態様において、サーバ5は、複数のローカルモデルまたは複数の出力データのそれぞれの貢献度に基づき、複数の通信装置3のそれぞれに対するインセンティブを決定する決定部53をさらに備える。
【0269】
これにより、クライアントのプライバシーやセキュリティを担保しながら、グローバルモデルの更新に対するインセンティブをクライアントに与えることができる。
【0270】
[第3態様]
第1態様または第2態様において、サーバ5は、複数の通信装置3に対して、グローバルモデルを示す情報を送信する送受信部51をさらに備える。なお、他の形態として、グローバルモデルを示す情報は、サーバ5以外の外部ストレージ4等から複数の通信装置3へ配布されても良い。
【0271】
[第4態様]
第1態様~第3態様の何れかにおいて、送受信部51は、さらに、ローカルモデルを学習するときに用いられたローカルデータのデータ量を受信し、算出部57は、複数の通信装置3のそれぞれのデータ量の一例であるデータ数に基づき、貢献度を算出する。これにより、貢献度を容易に算出することができる。
【0272】
[第5態様]
第1態様~第4態様の何れかにおいて、更新部52は、特定の通信装置3を含む複数の通信装置3のそれぞれから受信した複数のローカルモデルを示す情報または出力データに基づいて、グローバルモデルを第1のグローバルモデルに更新するとともに、複数の通信装置3から特定の通信装置3を除いた通信装置3または特定の通信装置3から受信したローカルモデルまたは出力データに基づいて、グローバルモデルを第2のグローバルモデルに更新し、算出部57は、第1のグローバルモデルの評価と、第2のグローバルモデルの評価に基づき、特定の通信装置3のローカルモデルまたは出力データの貢献度を算出する。
【0273】
これにより、貢献度を精度良く算出することができる。ここで、更新部52が、複数の通信装置3から特定の通信装置3を除いた通信装置3から受信したローカルモデルまたは出力データに基づいて、グローバルモデルを第2のグローバルモデルに更新する場合には、特定の通信装置3を除いた場合の影響度合いを精度よく評価できるため、貢献度をより精度良く算出することができる。
【0274】
[第6態様]
第5態様において、サーバ5は、評価データに基づき第1のグローバルモデルおよび第2のグローバルモデルをそれぞれ評価する評価部56をさらに備える。これにより、第1のグローバルモデルおよび第2のグローバルモデルの汎用的な性能を精度良く評価できる。
【0275】
[第7態様]
第5態様において、送受信部51は、さらに、ローカルデータに基づく第1のグローバルモデルの評価と、ローカルデータに基づく第2のグローバルモデルの評価を受信する。これにより、第1のグローバルモデルおよび第2のグローバルモデルの特定の通信端末3に特化した性能を評価することができる。
【0276】
[第8態様]
本発明の一実施形態に係るサーバ5は、通信装置3が処理するローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報またはローカルモデルに対して共有データを入力して得られた出力データを、複数の通信装置3のそれぞれから受信する送受信部51と、複数の通信装置3から受信した複数のローカルモデルを示す情報または複数の出力データに基づいて、グローバルモデルを更新する更新部52と、評価データに基づき、更新されたグローバルモデルを評価する評価部56と、を備える。これにより、グローバルモデルの汎用的な性能を精度良く評価できる。
【0277】
[第9態様]
本発明の一実施形態に係る通信装置3は、ローカルデータによってグローバルモデルを基に学習したローカルモデルを得る学習処理部38と、複数の通信装置3のローカルモデルまたはローカルモデルに対して共有データを入力して得られた複数の通信装置3の出力データに基づき更新されたグローバルモデルを、ローカルデータに基づき評価する評価部36と、を備える。これにより、グローバルモデルの特定の通信端末3に特化した性能を評価することができる。
【0278】
[第10態様]
本発明の一実施形態に係る情報処理方法は、複数の通信装置3に対して、グローバルモデルを示す情報を送信する送信ステップと、通信装置3が処理するローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報またはローカルモデルに対して共有データを入力して得られた出力データを、複数の通信装置3のそれぞれから受信する受信ステップと、複数の通信装置3から受信した複数のローカルモデルを示す情報または複数の出力データに基づいて、グローバルモデルを更新する更新ステップと、更新後のグローバルモデルに対する、複数のローカルモデルまたは複数の出力データのそれぞれの貢献度を算出する算出ステップと、を実行する。
【0279】
[第11態様]
本発明の一実施形態に係る情報処理方法は、通信装置3が処理するローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報またはローカルモデルに対して共有データを入力して得られた出力データを、複数の通信装置3のそれぞれから受信する受信ステップと、複数の通信装置3から受信した複数のローカルモデルを示す情報または複数の出力データに基づいて、グローバルモデルを更新する更新ステップと、評価データに基づき、更新されたグローバルモデルを評価する評価ステップと、を実行する。
【0280】
[第12態様]
本発明の一実施形態に係る情報処理方法は、ローカルデータによってグローバルモデルを基に学習したローカルモデルを得る学習処理ステップと、複数の通信装置3のローカルモデルまたはローカルモデルに対して共有データを入力して得られた複数の通信装置3の出力データに基づき更新されたグローバルモデルを、ローカルデータに基づき評価する評価ステップと、を実行する。
【0281】
[第13態様]
本発明の一実施形態に係るプログラムは、コンピュータに、第10態様~第12態様の何れかの情報処理方法を実行させる。
【0282】
[第14態様]
本発明の一実施形態に係る情報処理システム1は、サーバ5と、サーバ5と通信可能な複数の通信装置3を備え、複数の通信装置3のそれぞれは、サーバ5に対して、ローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報またはローカルモデルに対して共有データを入力して得られた出力データを送信する送受信部31を備え、サーバ5は、ローカルモデルを示す情報または出力データを、複数の通信装置3のそれぞれから受信する送受信部51と、複数の通信装置3から受信した複数のローカルモデルを示す情報または複数の出力データに基づいて、グローバルモデルを更新する更新部52と、更新後のグローバルモデルに対する、複数のローカルモデルまたは複数の出力データのそれぞれの貢献度を算出する算出部57と、を備える。
【0283】
[第15態様]
本発明の一実施形態に係る情報処理システム1は、サーバ5と、サーバ5と通信可能な複数の通信装置3を備え、複数の通信装置3のそれぞれは、サーバ5に対して、ローカルデータによってグローバルモデルを基に学習したローカルモデルを示す情報またはローカルモデルに対して共有データを入力して得られた出力データを送信する送受信部31を備え、サーバ5は、ローカルモデルを示す情報または出力データを、複数の通信装置3のそれぞれから受信する送受信部51と、複数の通信装置3から受信した複数のローカルモデルを示す情報または複数の出力データに基づいて、グローバルモデルを更新する更新部52と、評価データに基づき、更新されたグローバルモデルを評価する評価部56と、を備える。
【0284】
[第16態様]
本発明の一実施形態に係る情報処理システム1は、サーバ5と、サーバ5と通信可能な複数の通信装置3を備え、複数の通信装置3のそれぞれは、
ローカルデータによってグローバルモデルを基に学習したローカルモデルを得る学習処理部38と、サーバ5に対して、ローカルモデルを示す情報またはローカルモデルに対して共有データを入力して得られた出力データを送信する送受信部31と、を備え、サーバ5は、ローカルモデルを示す情報または出力データを、複数の通信装置3のそれぞれから受信する送受信部51と、複数の通信装置3から受信した複数のローカルモデルを示す情報または複数の出力データに基づいて、グローバルモデルを更新する更新部52と、複数の通信装置3に対して、更新されたグローバルモデルを送信する送受信部51と、を備え、複数の通信装置3のそれぞれは、さらに、更新されたグローバルモデルを、情報処理手段から受信する送受信部31と、更新されたグローバルモデルを、ローカルデータに基づき評価する評価部36と、を備える。
【符号の説明】
【0285】
1 情報処理システム
100 通信ネットワーク
3 通信装置(ノードの一例)
31 送受信部(受信手段の一例)
32 受付部(受付手段の一例)
33 表示制御部(表示制御手段の一例)
34 選定部(選定手段の一例)
35 判断部(判断手段の一例)
36 評価部(評価手段の一例)
37 算出部(算出手段の一例)
38 学習処理部(学習処理手段の一例)
39 記憶・読出部(記憶制御手段の一例)
308 ディスプレイ(表示部の一例)
3000 記憶部
3001 ローカルデータ管理DB(ローカルデータ管理手段の一例)
5002 ローカルモデル管理DB(ローカルモデル管理手段の一例)
5 サーバ(情報処理装置の一例)
51 送受信部(送信手段の一例)
53 決定部(決定手段の一例)
54 選定部(選定手段の一例)
55 判断部(判断手段の一例)
56 評価部(評価手段の一例)
57 算出部(算出手段の一例)
59 記憶・読出部(記憶制御手段の一例)
5000 記憶部
5001 グローバルモデル管理DB(グローバルモデル管理手段の一例)
5002 セントラルデータ管理DB(セントラルデータ管理手段の一例)