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

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

▶ ソフトバンクモバイル株式会社の特許一覧 ▶ 学校法人明星学苑の特許一覧

特開2023-137116情報処理装置、情報処理方法及び情報処理プログラム
<>
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図1
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図2
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図3
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図4
  • 特開-情報処理装置、情報処理方法及び情報処理プログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023137116
(43)【公開日】2023-09-29
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230922BHJP
【FI】
G06N20/00
【審査請求】有
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2022043147
(22)【出願日】2022-03-17
(11)【特許番号】
(45)【特許公報発行日】2023-07-19
(71)【出願人】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(71)【出願人】
【識別番号】500132214
【氏名又は名称】学校法人明星学苑
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】堀 隆之
(72)【発明者】
【氏名】鈴木 裕真
(72)【発明者】
【氏名】岡本 秀明
(72)【発明者】
【氏名】植木 一也
(57)【要約】
【課題】パーソナライズされた機械学習モデルを効率よく学習させることを可能とする。
【解決手段】本願に係る情報処理装置は、エッジデバイスが取得したデータに基づいて学習された機械学習モデルである第1モデルに対応する第1ノードと、第1モデルが分類されるカテゴリごとにカテゴリに属する第1モデルを集約した機械学習モデルであるカテゴリモデルに対応する第2ノードと、カテゴリモデルが分類される上位カテゴリごとに上位カテゴリに属するカテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第3ノードと、を含む階層構造における一のノードに対応する機械学習モデルである自モデルを記憶する記憶部と、階層構造における自ノードの下位階層のノードに対応する機械学習モデルである下位モデル、および、階層構造における自ノードの上位階層のノードに対応する機械学習モデルである上位モデルを受信する受信部と、下位モデルと、上位モデルとに基づいて、自モデルを更新する更新部と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
エッジデバイスが取得したデータに基づいて学習された機械学習モデルである第1モデルに対応する第1ノードと、前記第1モデルが分類されるカテゴリごとに前記カテゴリに属する前記第1モデルを集約した機械学習モデルであるカテゴリモデルに対応する第2ノードと、前記カテゴリモデルが分類される上位カテゴリごとに前記上位カテゴリに属する前記カテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第3ノードと、を含む階層構造における一のノードに対応する機械学習モデルである自モデルを記憶する記憶部と、
前記階層構造における自ノードの下位階層のノードに対応する機械学習モデルである下位モデル、および、前記階層構造における自ノードの上位階層のノードに対応する機械学習モデルである上位モデルを受信する受信部と、
前記下位モデルと、前記上位モデルとに基づいて、前記自モデルを更新する更新部と、
を備える情報処理装置。
【請求項2】
前記更新部は、
前記下位モデルの平均に基づく前記自モデルと、前記上位モデルに基づく一の機械学習モデルとの類似度が第1閾値を下回らないように前記自モデルを更新する、
請求項1に記載の情報処理装置。
【請求項3】
前記下位モデルは、前記自ノードの子ノードに対応する機械学習モデルである子モデルである、
請求項1または2に記載の情報処理装置。
【請求項4】
前記下位モデルは、前記自ノードの子ノードに対応する機械学習モデルである子モデルおよび前記自ノードの子ノードの子ノードに対応する機械学習モデルである孫モデルである、
請求項1または2に記載の情報処理装置。
【請求項5】
前記更新部は、
あらかじめ定められた第1混合比率を重みとした前記子モデルおよび前記孫モデルの重み付き平均に基づく前記自モデルに基づいて、前記自モデルを更新する、
請求項4に記載の情報処理装置。
【請求項6】
前記上位モデルは、前記自ノードの親ノードに対応する機械学習モデルである親モデルである、
請求項1または2に記載の情報処理装置。
【請求項7】
前記上位モデルは、前記自ノードの親ノードに対応する機械学習モデルである親モデルおよび前記自ノードの親ノードの親ノードに対応する機械学習モデルである祖モデルである、
請求項1または2に記載の情報処理装置。
【請求項8】
前記更新部は、
前記上位モデルに基づく一の機械学習モデルとして、あらかじめ定められた第2混合比率を重みとした前記親モデルおよび前記祖モデルの重み付き平均に基づく前記一の機械学習モデルに基づいて、前記自モデルを更新する、
請求項7に記載の情報処理装置。
【請求項9】
前記更新部は、
前記階層構造における各階層の機械学習モデルがそれぞれ異なる構造を有する場合、前記下位モデルとして、前記自ノードの子ノードに対応する機械学習モデルである子モデルと、前記上位モデルとして、前記自ノードの親ノードに対応する機械学習モデルである親モデルとを第1の比率に基づいて教師とし、前記自モデルを学習する蒸留を行う、
請求項1に記載の情報処理装置。
【請求項10】
前記更新部によって更新された前記自モデルである更新後の自モデルを、前記自ノードの下位階層のノードに対応する他の情報処理装置に対して送信する送信部をさらに備える
請求項1または2に記載の情報処理装置。
【請求項11】
前記更新部は、
前記更新部によって更新された前記自モデルである更新後の自モデルに基づいて、前記上位モデルを更新する、
請求項1に記載の情報処理装置。
【請求項12】
前記更新部は、
前記更新後の自モデルと前記上位モデルとの類似度が第2閾値以上となるように前記上位モデルを更新する、
請求項11に記載の情報処理装置。
【請求項13】
前記上位モデルは、前記自ノードの親ノードに対応する機械学習モデルである親モデルである、
請求項11または12に記載の情報処理装置。
【請求項14】
前記更新部は、
前記階層構造における各階層の機械学習モデルがそれぞれ異なる構造を有する場合、前記更新後の自モデルと、前記上位モデルとして、前記自ノードの親ノードに対応する機械学習モデルである親モデルとを第2の比率に基づいて教師とし、前記親モデルを学習する蒸留を行う、
請求項11に記載の情報処理装置。
【請求項15】
前記更新部によって更新された前記上位モデルである更新後の上位モデルを、前記自ノードの上位階層のノードに対応する他の情報処理装置に対して送信する送信部をさらに備える
請求項11または12に記載の情報処理装置。
【請求項16】
前記上位カテゴリモデルは、前記エッジデバイスに配布された共通の機械学習モデルである共通モデルである、
請求項1に記載の情報処理装置。
【請求項17】
情報処理装置が実行するプログラムにより実現される情報処理方法であって、
エッジデバイスが取得したデータに基づいて学習された機械学習モデルである第1モデルに対応する第1ノードと、前記第1モデルが分類されるカテゴリごとに前記カテゴリに属する前記第1モデルを集約した機械学習モデルであるカテゴリモデルに対応する第2ノードと、前記カテゴリモデルが分類される上位カテゴリごとに前記上位カテゴリに属する前記カテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第3ノードと、を含む階層構造における一のノードに対応する機械学習モデルである自モデルを記憶部に記憶する記憶工程と、
前記階層構造における自ノードの下位階層のノードに対応する機械学習モデルである下位モデル、および、前記階層構造における自ノードの上位階層のノードに対応する機械学習モデルである上位モデルを受信する受信工程と、
前記下位モデルと、前記上位モデルとに基づいて、前記自モデルを更新する更新工程と、
を含む情報処理方法。
【請求項18】
エッジデバイスが取得したデータに基づいて学習された機械学習モデルである第1モデルに対応する第1ノードと、前記第1モデルが分類されるカテゴリごとに前記カテゴリに属する前記第1モデルを集約した機械学習モデルであるカテゴリモデルに対応する第2ノードと、前記カテゴリモデルが分類される上位カテゴリごとに前記上位カテゴリに属する前記カテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第3ノードと、を含む階層構造における一のノードに対応する機械学習モデルである自モデルを記憶部に記憶する記憶手順と、
前記階層構造における自ノードの下位階層のノードに対応する機械学習モデルである下位モデル、および、前記階層構造における自ノードの上位階層のノードに対応する機械学習モデルである上位モデルを受信する受信手順と、
前記下位モデルと、前記上位モデルとに基づいて、前記自モデルを更新する更新手順と、
をコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
近年、複数のデバイスに分散されたデータに基づいて一つのモデルを機械学習させる手法である連合学習(Federated Learning;FL)が注目されている。連合学習では、中央サーバが共通モデルを各デバイスに配布する。また、各デバイスは、各デバイスがそれぞれ取得したデータに基づいて、配布された共通モデルをそれぞれオンデバイス学習させる。また、中央サーバは、オンデバイス学習により更新された各モデル(以下、ローカルモデルともいう)を集約して、共通モデルを更新する。また、中央サーバは、更新された共通モデルを各デバイスに再び配布する。このように、連合学習では、データを中央サーバに集中させなくても、それぞれのデバイスに保存されたデータに基づいて、一つの共通モデルを機械学習させることができる。
【0003】
また近年、連合学習をさらに発展させたものとして、パーソナライズド連合学習(Personalized Federated Learning;PFL)が注目されている。パーソナライズド連合学習では、全てのローカルモデルを一つの共通モデルに集約するのではなく、類似度の高いローカルモデル同士をそれぞれ集約する。そして、類似度の高いローカルモデルの集団それぞれに対応する共通モデルをそれぞれ更新する。このように、パーソナライズド連合学習では、各デバイスが取得したデータの傾向に応じた(パーソナライズされた)複数の共通モデルをそれぞれ機械学習させることができる。なお、以下では、機械学習により学習されるモデルのことを「機械学習モデル」と記載する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Virginia Smith、他3名、“Ditto: Fair and Robust Federated Learning Through Personalization”、[online]、June 2021、[令和4年3月5日検索]、インターネット<URL:https://arxiv.org/abs/2012.04221>
【発明の概要】
【発明が解決しようとする課題】
【0005】
パーソナライズされた機械学習モデルを効率よく学習させることを可能とする技術が求められている。
【0006】
本願は、パーソナライズされた機械学習モデルを効率よく学習させることを可能とすることができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本願に係る情報処理装置は、エッジデバイスが取得したデータに基づいて学習された機械学習モデルである第1モデルに対応する第1ノードと、前記第1モデルが分類されるカテゴリごとに前記カテゴリに属する前記第1モデルを集約した機械学習モデルであるカテゴリモデルに対応する第2ノードと、前記カテゴリモデルが分類される上位カテゴリごとに前記上位カテゴリに属する前記カテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第3ノードと、を含む階層構造における一のノードに対応する機械学習モデルである自モデルを記憶する記憶部と、前記階層構造における自ノードの下位階層のノードに対応する機械学習モデルである下位モデル、および、前記階層構造における自ノードの上位階層のノードに対応する機械学習モデルである上位モデルを受信する受信部と、前記下位モデルと、前記上位モデルとに基づいて、前記自モデルを更新する更新部と、を備える。
【0008】
また、前記更新部は、前記下位モデルの平均に基づく前記自モデルと、前記上位モデルに基づく一の機械学習モデルとの類似度が第1閾値を下回らないように前記自モデルを更新する。
【0009】
また、前記下位モデルは、前記自ノードの子ノードに対応する機械学習モデルである子モデルである。
【0010】
また、前記下位モデルは、前記自ノードの子ノードに対応する機械学習モデルである子モデルおよび前記自ノードの子ノードの子ノードに対応する機械学習モデルである孫モデルである。
【0011】
また、前記更新部は、あらかじめ定められた第1混合比率を重みとした前記子モデルおよび前記孫モデルの重み付き平均に基づく前記自モデルに基づいて、前記自モデルを更新する。
【0012】
また、前記上位モデルは、前記自ノードの親ノードに対応する機械学習モデルである親モデルである。
【0013】
また、前記上位モデルは、前記自ノードの親ノードに対応する機械学習モデルである親モデルおよび前記自ノードの親ノードの親ノードに対応する機械学習モデルである祖モデルである。
【0014】
また、前記更新部は、前記上位モデルに基づく一の機械学習モデルとして、あらかじめ定められた第2混合比率を重みとした前記親モデルおよび前記祖モデルの重み付き平均に基づく前記一の機械学習モデルに基づいて、前記自モデルを更新する。
【0015】
また、前記更新部は、前記階層構造における各階層の機械学習モデルがそれぞれ異なる構造を有する場合、前記下位モデルとして、前記自ノードの子ノードに対応する機械学習モデルである子モデルと、前記上位モデルとして、前記自ノードの親ノードに対応する機械学習モデルである親モデルとを第1の比率に基づいて教師とし、前記自モデルを学習する蒸留を行う。
【0016】
また、前記更新部によって更新された前記自モデルである更新後の自モデルを、前記自ノードの下位階層のノードに対応する他の情報処理装置に対して送信する送信部をさらに備える。
【0017】
また、前記更新部は、前記更新部によって更新された前記自モデルである更新後の自モデルに基づいて、前記上位モデルを更新する。
【0018】
また、前記更新部は、前記更新後の自モデルと前記上位モデルとの類似度が第2閾値以上となるように前記上位モデルを更新する。
【0019】
また、前記上位モデルは、前記自ノードの親ノードに対応する機械学習モデルである親モデルである。
【0020】
また、前記更新部は、前記階層構造における各階層の機械学習モデルがそれぞれ異なる構造を有する場合、前記更新後の自モデルと、前記上位モデルとして、前記自ノードの親ノードに対応する機械学習モデルである親モデルとを第2の比率に基づいて教師とし、前記親モデルを学習する蒸留を行う。
【0021】
また、前記更新部によって更新された前記上位モデルである更新後の上位モデルを、前記自ノードの上位階層のノードに対応する他の情報処理装置に対して送信する送信部をさらに備える。
【0022】
また、前記上位カテゴリモデルは、前記エッジデバイスに配布された共通の機械学習モデルである共通モデルである。
【0023】
本願に係る情報処理方法は、情報処理装置が実行するプログラムにより実現される情報処理方法であって、エッジデバイスが取得したデータに基づいて学習された機械学習モデルである第1モデルに対応する第1ノードと、前記第1モデルが分類されるカテゴリごとに前記カテゴリに属する前記第1モデルを集約した機械学習モデルであるカテゴリモデルに対応する第2ノードと、前記カテゴリモデルが分類される上位カテゴリごとに前記上位カテゴリに属する前記カテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第3ノードと、を含む階層構造における一のノードに対応する機械学習モデルである自モデルを記憶部に記憶する記憶工程と、前記階層構造における自ノードの下位階層のノードに対応する機械学習モデルである下位モデル、および、前記階層構造における自ノードの上位階層のノードに対応する機械学習モデルである上位モデルを受信する受信工程と、前記下位モデルと、前記上位モデルとに基づいて、前記自モデルを更新する更新工程と、を含む。
【0024】
本願に係る情報処理プログラムは、エッジデバイスが取得したデータに基づいて学習された機械学習モデルである第1モデルに対応する第1ノードと、前記第1モデルが分類されるカテゴリごとに前記カテゴリに属する前記第1モデルを集約した機械学習モデルであるカテゴリモデルに対応する第2ノードと、前記カテゴリモデルが分類される上位カテゴリごとに前記上位カテゴリに属する前記カテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する3ノードと、を含む階層構造における一のノードに対応する機械学習モデルである自モデルを記憶部に記憶する記憶手順と、前記階層構造における自ノードの下位階層のノードに対応する機械学習モデルである下位モデル、および、前記階層構造における自ノードの上位階層のノードに対応する機械学習モデルである上位モデルを受信する受信手順と、前記下位モデルと、前記上位モデルとに基づいて、前記自モデルを更新する更新手順と、をコンピュータに実行させる。
【発明の効果】
【0025】
実施形態の一態様によれば、パーソナライズされた機械学習モデルを効率よく学習させることを可能とすることができる。
【図面の簡単な説明】
【0026】
図1図1は、実施形態に係る階層的にパーソナライズを行う連合学習について説明するための図である。
図2図2は、実施形態に係る情報処理装置の構成例を示す図である。
図3図3は、実施形態に係るノード情報記憶部の一例を示す図である。
図4図4は、実施形態に係る情報処理手順を示すフローチャートである。
図5図5は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0027】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0028】
(実施形態)
〔1.情報処理の概要〕
上述したように、近年、連合学習(Federated Learning;FL)が注目されている。また近年、連合学習をさらに発展させたものとして、パーソナライズド連合学習(Personalized Federated Learning;PFL)が注目されている。パーソナライズド連合学習では、全てのローカルモデルを一つの共通モデルに集約するのではなく、類似度の高いローカルモデル同士をそれぞれ集約する。そして、類似度の高いローカルモデルの集団それぞれに対応する共通モデルをそれぞれ更新する。
【0029】
しかしながら、全体に対する一つの共通モデルから、類似度の高いローカルモデルの集団それぞれに対応する共通モデルへと直にパーソナライズド連合学習を行うと、その隔たりが大きく、一から学習させるのと大きな差がない場合がある。すなわち、従来技術に係るパーソナライズド連合学習では、パーソナライズされた機械学習モデルの学習効率が高いとは言えなかった。
【0030】
これに対し、本願の一実施形態に係る情報処理装置は、階層的にパーソナライズを行う連合学習により、パーソナライズされた機械学習モデルを効率よく学習させることを可能とすることができる。図1を用いて、階層的にパーソナライズを行う連合学習について説明する。図1は、実施形態に係る階層的にパーソナライズを行う連合学習について説明するための図である。図1では、全ての機械学習モデルが同じ構造を有する場合について説明する。具体的には、図1では、防犯カメラ等によって撮影された画像が入力された場合に、画像に撮像された人物の検出結果を出力するよう学習された機械学習モデルを階層的にパーソナライズド連合学習させる場合について説明する。
【0031】
まず、図1を用いて、実施形態に係る階層構造について説明する。図1に示す階層構造は、下位の階層から順に、店舗階層、企業階層、業界階層、共通階層の4つの階層を備える。
【0032】
店舗階層は、図1に示す階層構造における最下位の階層である。店舗階層のことを、リーフ階層ともいう。リーフ階層は、階層構造における最下位の階層である。具体的には、リーフ階層は、エッジデバイスが取得したデータに基づいてオンデバイス学習された機械学習モデルであるローカルモデルに対応する葉ノードが属する階層である。なお、以下では、ローカルモデルを保持するエッジデバイスのことを葉ノードと記載する場合がある。図1に示す店舗階層には、例えば、Aコンビニの浜松町店に設置された防犯カメラの画像に基づいてオンデバイス学習されたローカルモデルである浜松町店モデル、および、Aコンビニの竹芝店に設置された防犯カメラの画像に基づいてオンデバイス学習されたローカルモデルである竹芝店モデルに対応する葉ノードが属する様子を示す。なお、図示は省略するが、店舗階層には、Aコンビニの浜松町店および竹芝店モデル以外にも、Aコンビニの各店舗に設置された防犯カメラの画像に基づいてオンデバイス学習されたローカルモデルに対応する葉ノードが属してよい。また、図示は省略するが、店舗階層には、Aコンビニ以外にも、例えば、Bスーパーの各店舗に設置された防犯カメラの画像に基づいてオンデバイス学習されたローカルモデル(以下、Bスーパーの各店舗のローカルモデルと記載する)に対応する葉ノードが属してよい。また、図示は省略するが、店舗階層には、AコンビニやBスーパー以外にも、小売業を営む各企業の各店舗に設置された防犯カメラの画像に基づいてオンデバイス学習されたローカルモデル(以下、小売業を営む各企業の各店舗のローカルモデルと記載する)に対応する葉ノードが属してよい。
【0033】
企業階層は、店舗階層に隣接する店舗階層より一つ上位の階層である。企業階層のことを、カテゴリ階層ともいう。カテゴリ階層は、リーフ階層に隣接するリーフ階層より一つ上位の階層である。具体的には、カテゴリ階層は、ローカルモデルが分類されるカテゴリに対応する機械学習モデルであるカテゴリモデルに対応する第1内部ノードが属する階層である。なお、以下では、カテゴリモデルを保持する情報処理装置(図1では、クラウドサーバ)のことを第1内部ノードと記載する場合がある。図1に示す企業階層には、店舗階層に属する浜松町店モデルや竹芝店モデルが分類されるカテゴリである「Aコンビニ」に分類されるAコンビニの各店舗に対応するローカルモデルを集約した機械学習モデルであるAコンビニモデルに対応する第1内部ノードが属する様子を示す。また、企業階層には、Bスーパーの各店舗のローカルモデルが分類されるカテゴリである「Bスーパー」に分類されるBスーパーの各店舗のローカルモデルを集約した機械学習モデルであるBスーパーモデルに対応する第1内部ノードが属する様子を示す。また、図示は省略するが、企業階層には、AコンビニモデルやBスーパーモデル以外にも、店舗階層に属するローカルモデルが分類されるカテゴリごとにカテゴリに属するローカルモデルを集約した機械学習モデルであるカテゴリモデルに対応する第1内部ノードが属してもよい。
【0034】
業界階層は、企業階層に隣接する企業階層より一つ上位の階層である。業界階層のことを、上位カテゴリ階層ともいう。上位カテゴリ階層は、カテゴリ階層に隣接するカテゴリ階層より一つ上位の階層である。具体的には、上位カテゴリ階層は、カテゴリモデルが分類される上位カテゴリに対応する機械学習モデルである上位カテゴリモデルに対応する第2内部ノードが属する階層である。なお、以下では、上位カテゴリモデルを保持する情報処理装置(図1では、クラウドサーバ)のことを第2内部ノードと記載する場合がある。図1に示す業界階層には、企業階層に属するAコンビニモデルやBスーパーモデルが分類される上位カテゴリである「小売」に分類されるAコンビニモデルやBスーパーモデル等の各カテゴリモデルを集約した機械学習モデルである小売モデルに対応する第2内部ノードが属する様子を示す。また、図示は省略するが、業界階層には、小売モデル以外にも、企業階層に属するカテゴリモデルが分類される上位カテゴリごとに上位カテゴリに属するカテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第2内部ノードが属してもよい。図1では、業界階層には、小売モデル以外にも、上位カテゴリである「工場」に対応する工場モデルや、上位カテゴリである「屋外監視カメラ」に対応する屋外監視カメラモデルに対応する第2内部ノードが属する様子を示す。
【0035】
共通階層は、図1に示す階層構造における最上位の階層である。共通階層のことを、ルート階層ともいう。具体的には、ルート階層は、ルート階層よりも下位の階層に属するノードに対応する情報処理装置またはエッジデバイスに配布された共通の機械学習モデルである共通モデルに対応する根ノードが属する階層である。なお、以下では、共通モデルを保持する情報処理装置(図1では、クラウドサーバ)のことを根ノードと記載する場合がある。
【0036】
次に、図1を用いて、階層的にパーソナライズを行う連合学習の処理について説明する。図1に示す各ノードは、自モデルと親モデルを保持する。親モデルとは、自ノードの親ノードが保持する機械学習モデルの複製である。また、子モデルとは、自ノードの子ノードが保持する機械学習モデルの複製である。図1に示す各ノードで以下の(1)~(6)の処理を繰り返し行う。(1)親ノードから、親モデルを受信する。(2)子ノードから、子モデルを受信する(子ノードがエッジデバイスである場合は、データを収集する)。(3)自ノードの全ての子ノードからの子モデルの受信が完了した場合、受信した全ての子モデルを平均化して自モデルを更新する(子ノードがエッジデバイスである場合は、ローカルモデルの学習を行うことで自モデルを更新する)。また、平均化して更新された自モデルと親モデルとの類似度が第1閾値(例えば、60%など)を下回らないように自モデルをさらに更新する。(4)更新された自モデル(以下、更新後の自モデルともいう)と親モデルとの類似度が第2閾値(例えば、80%など)以上となるように親モデルを更新する。(5)更新された親モデル(以下、更新後の親モデルともいう)を親ノードに送信する。(6)更新後の自モデルを子ノードに送信する。
【0037】
次に、図1を用いて、実施形態に係る情報処理システム1の構成例について説明する。情報処理システム1は、エッジデバイス10と、情報処理装置100とを備える。エッジデバイス10と情報処理装置100とは所定のネットワークN(図示略)を介して、有線または無線により通信可能に接続される。なお、図1に示す情報処理システム1には、任意の数のエッジデバイス10と任意の数の情報処理装置100とが含まれてもよい。
【0038】
また、以下では、情報処理装置100が保持する機械学習モデルに応じて、情報処理装置100を情報処理装置100‐1、100‐11~100‐13、100-131~100-132等として説明する。例えば、情報処理装置100‐1は、共通モデルを保持する情報処理装置100である。また、例えば、情報処理装置100‐11~100‐13は、屋外監視カメラモデル、工場モデル、および小売モデルをそれぞれ保持する情報処理装置100である。また、例えば、情報処理装置100‐131~100-132は、AコンビニモデルおよびBスーパーモデルをそれぞれ保持する情報処理装置100である。また、以下の説明において、情報処理装置100‐1、100‐11~100‐13、100-131~100-132等を互いに区別する必要の無い場合には、符号のうちハイフンから後ろを省略することにより、これらを情報処理装置100と総称する。
【0039】
また、以下では、エッジデバイス10が保持する機械学習モデルに応じて、エッジデバイス10をエッジデバイス10‐1311、10‐1312等として説明する。例えば、エッジデバイス10‐1311は、Aコンビニの浜松町店に対応する浜松町店モデルを保持するエッジデバイス10である。また、例えば、エッジデバイス10‐1312は、Aコンビニの竹芝店に対応する竹芝店モデルを保持するエッジデバイス10である。また、以下の説明において、エッジデバイス10‐1311、10‐1312等を互いに区別する必要の無い場合には、符号のうちハイフンから後ろを省略することにより、これらをエッジデバイス10と総称する。
【0040】
エッジデバイス10は、自装置が取得したデータに基づいて、自装置が保持するローカルモデルをオンデバイス学習させる情報処理装置である。エッジデバイス10は、例えば、スマートフォン、タブレット端末、スマートスピーカー(AIスピーカー)、防犯カメラ、車載カメラ、または各種センサであってよい。図1に示す例では、エッジデバイス10‐1311は、自装置が取得した画像に基づいて、自装置が保持する浜松町店モデルをオンデバイス学習させる。また、エッジデバイス10‐1312は、自装置が取得した画像に基づいて、竹芝店モデルをオンデバイス学習させる。図1に示す例では、エッジデバイス10は、防犯カメラである。また、図1に示す例では、エッジデバイス10が、防犯カメラの画像が入力された場合に、画像に撮像された人物の検出結果を出力するようローカルモデルをオンデバイス学習させる。
【0041】
また、エッジデバイス10は、ローカルモデルをオンデバイス学習させることにより、ローカルモデルを更新する。図1に示す例では、エッジデバイス10‐1311は、浜松町店モデルをオンデバイス学習させることにより、浜松町店モデルを更新する。また、エッジデバイス10‐1312は、竹芝店モデルをオンデバイス学習させることにより、竹芝店モデルを更新する。例えば、エッジデバイス10は、ローカルモデルにおける出力と、入力したデータとの誤差が少なくなるようにローカルモデルのモデルパラメータ(接続係数)を補正するバックプロパゲーション(誤差逆伝播法)等の処理によりローカルモデルを更新する。例えば、エッジデバイス10は、誤差関数等、所定の損失(ロス)関数を最小化するようにバックプロパゲーション等の処理を行うことによりローカルモデルを更新する。
【0042】
また、エッジデバイス10は、ローカルモデルを更新した場合、自装置が保持するローカルモデルが分類されるカテゴリに対応するカテゴリモデルを保持する情報処理装置100に対して、更新されたローカルモデルを送信する。図1に示す例では、エッジデバイス10‐1311は、自装置が保持する浜松町店モデルが分類されるAコンビニのカテゴリに対応するAコンビニモデルを保持する情報処理装置100‐131に対して、更新された浜松町店モデルを送信する。また、エッジデバイス10‐1312は、自装置が保持する竹芝店モデルが分類されるAコンビニのカテゴリに対応するAコンビニモデルを保持する情報処理装置100‐131に対して、更新された竹芝店モデルを送信する。例えば、エッジデバイス10は、更新されたローカルモデルのモデルパラメータを送信してよい。
【0043】
情報処理装置100‐131は、Aコンビニモデルを記憶する。また、情報処理装置100‐131は、親ノードに対応する情報処理装置100‐13から、Aコンビニモデルの親モデルである小売モデルを受信する。また、情報処理装置100‐131は、子ノードに対応するエッジデバイス10‐1311およびエッジデバイス10‐1312から、Aコンビニモデルの子モデルである浜松町店モデルおよび竹芝店モデルをそれぞれ受信する。また、情報処理装置100‐131は、全ての子モデルの受信が完了した場合、受信した全ての子モデルを平均化して自モデルを更新する。また、情報処理装置100‐131は、子モデルを平均化して更新した自モデルと、親モデルとの類似度が第1閾値(例えば、60%など)を下回らないように自モデルを更新する。また、情報処理装置100‐131は、更新後の自モデルを、子ノードに対応するエッジデバイス10‐1311およびエッジデバイス10‐1312に対してそれぞれ送信する。また、情報処理装置100‐131は、更新後の自モデルと親モデルとの類似度が第2閾値(例えば、80%など)以上となるように親モデルを更新する。また、情報処理装置100‐131は、更新後の親モデルを親ノードに対応する情報処理装置100‐13に対して送信する。
【0044】
情報処理装置100‐13は、小売モデルを記憶する。また、情報処理装置100‐13は、親ノードに対応する情報処理装置100‐1から、小売モデルの親モデルである共通モデルを受信する。また、情報処理装置100‐13は、子ノードに対応する情報処理装置100‐131および情報処理装置100‐132から、小売モデルの子モデルであるAコンビニモデルおよびBスーパーモデルをそれぞれ受信する。また、情報処理装置100‐13は、全ての子モデルの受信が完了した場合、受信した全ての子モデルを平均化して自モデルを更新する。また、情報処理装置100‐13は、子モデルを平均化して更新した自モデルと、親モデルとの類似度が第1閾値(例えば、60%など)を下回らないように自モデルを更新する。また、情報処理装置100‐13は、更新後の自モデルを、子ノードに対応する情報処理装置100‐131および情報処理装置100‐132に対してそれぞれ送信する。また、情報処理装置100‐13は、更新後の自モデルと親モデルとの類似度が第2閾値(例えば、80%など)以上となるように親モデルを更新する。また、情報処理装置100‐13は、更新後の親モデルを親ノードに対応する情報処理装置100‐1に対して送信する。
【0045】
情報処理装置100‐1は、共通モデルを記憶する。情報処理装置100‐1は、子ノードに対応する情報処理装置100‐11~100‐13から、共通モデルの子モデルである屋外監視カメラモデル、工場モデル、および、小売モデルをそれぞれ受信する。また、情報処理装置100‐1は、全ての子モデルの受信が完了した場合、受信した全ての子モデルを平均化して自モデルを更新する。また、情報処理装置100‐1は、更新後の自モデルを、子ノードに対応する情報処理装置100‐11~100‐13に対してそれぞれ送信する。
【0046】
なお、図1に示す機械学習モデルは、例えば、入力された画像に対する演算結果を出力する複数のノードを多層に接続した機械学習モデルであって、教師あり学習により抽象化された画像の特徴を学習させた機械学習モデルであってよい。例えば、機械学習モデルは、複数のノードを有する層を多段に接続したニューラルネットワークであり、いわゆるディープラーニングの技術により実現されるDNN(Deep Neural Network)であってよい。
【0047】
上述したように、本願の一実施形態に係る情報処理装置は、エッジデバイスが取得したデータに基づいてオンデバイス学習された機械学習モデルであるローカルモデルに対応する葉ノードと、ローカルモデルが分類されるカテゴリごとにカテゴリに属するローカルモデルを集約した機械学習モデルであるカテゴリモデルに対応する第1内部ノードと、カテゴリモデルが分類される上位カテゴリごとに上位カテゴリに属するカテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第2内部ノードと、葉ノードと第1内部ノードと第2内部ノードとを連結するエッジと、を含む階層構造における一の内部ノードに対応する機械学習モデルである自モデルを記憶する。また、情報処理装置は、一の内部ノードの子ノードに対応する機械学習モデルである子モデル、および、一の内部ノードの親ノードに対応する機械学習モデルである親モデルを受信する。また、情報処理装置は、子モデルと、親モデルとに基づいて、自モデルを更新する。また、情報処理装置は、更新された自モデルである更新後の自モデルを、子ノードに対応する他の情報処理装置に対して送信する。
【0048】
これにより、本願の一実施形態に係る情報処理装置は、例えば、各企業や店舗ごとに一から機械学習モデルを生成する手間を省くことができるので、機械学習モデルのサイロ化を解決することができる。また、本願の一実施形態に係る情報処理装置は、共通モデルを更新するだけで各ノードに配信する仕組みになっているので、機械学習モデルの管理や更新といった保守管理を容易にすることができる。また、本願の一実施形態に係る情報処理装置は、ノード間で個人情報を含む原データのやり取りがないため、プライバシーを保護しつつ機械学習モデルの精度を改善することを可能とすることができる。また、本願の一実施形態に係る情報処理装置は、例えば、小売モデルを通して、Aコンビニモデルの更新によるメリットを、Bスーパーモデルも享受することができる。すなわち、本願の一実施形態に係る情報処理装置は、データの共有をしづらいノード(企業)間であっても、お互いのデータのメリットを享受することを可能とすることができる。このように、本願の一実施形態に係る情報処理装置は、階層構造を持つことで、上位階層のモデルを介して、下位階層のモデルが他のモデルの学習による更新のメリットを相互に享受することを可能とすることができる。
【0049】
また、本願の一実施形態に係る情報処理装置は、例えば、新たにCスーパーが参画した際に、Cスーパーが、共通モデルではなく、小売向けにチューニング済みの小売モデルを導入することを可能とすることができる。これにより、本願の一実施形態に係る情報処理装置は、例えば、導入時に精度が高く、Cスーパー向けのチューニングコストを低くすることを可能とすることができる。このように、本願の一実施形態に係る情報処理装置は、階層構造を持つことで、従来技術に係るパーソナライズド連合学習と比べて、機械学習モデルのパーソナライズに要する学習量を低減することを可能とすることができる。すなわち、本願の一実施形態に係る情報処理装置は、パーソナライズされた機械学習モデルを効率よく学習させることを可能とすることができる。
【0050】
また、本願の一実施形態に係る情報処理装置は、例えば、地理的にグルーピングした階層構造を作り、地域ごとの通信拠点などに機械学習モデルを保持すれば、より通信量・通信時間を削減することを可能とすることができる。このように、本願の一実施形態に係る情報処理装置は、階層構造を持つことで、各ノードが持つ子ノードの数が減るため、通信負荷を分散させることを可能とすることができる。
【0051】
〔2.情報処理装置の構成〕
図2は、実施形態に係る情報処理装置100の構成例を示す図である。情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、図2では、情報処理装置100が、図1に示す情報処理装置100-131である場合について説明する。
【0052】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、例えば、他の情報処理装置との間で情報の送受信を行う。
【0053】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。具体的には、記憶部120は、各種プログラム(情報処理プログラムの一例)を記憶する。また、記憶部120は、エッジデバイスが取得したデータに基づいて学習された機械学習モデルである第1モデルに対応する第1ノードと、第1モデルが分類されるカテゴリごとにカテゴリに属する第1モデルを集約した機械学習モデルであるカテゴリモデルに対応する第2ノードと、カテゴリモデルが分類される上位カテゴリごとに上位カテゴリに属するカテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第3ノードと、を含む階層構造における一のノードに対応する機械学習モデルである自モデルを記憶する。記憶部120は、エッジデバイスが取得したデータに基づいてオンデバイス学習された機械学習モデルであるローカルモデル(第1モデルの一例)に対応する葉ノード(第1ノードの一例)と、ローカルモデルが分類されるカテゴリごとにカテゴリに属するローカルモデルを集約した機械学習モデルであるカテゴリモデルに対応する第1内部ノード(第2ノードの一例)と、カテゴリモデルが分類される上位カテゴリごとに上位カテゴリに属するカテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第2内部ノード(第3ノードの一例)と、を含む階層構造における一の内部ノードに対応する機械学習モデルである自モデルを記憶する。
【0054】
また、記憶部120は、ノード情報記憶部121を有する。図3は、実施形態に係るノード情報記憶部121の一例を示す図である。図3に示す例では、ノード情報記憶部121は、「自ノード」、「親ノード」、「子ノード」といった項目を有する。
【0055】
「自ノード」は、自ノードに関する情報を示す。「自ノード」は、さらに、「ノードID」、「モデルID」といった小項目を有する。「ノードID」は、自ノードを識別するノード識別情報を示す。「ノードID」は、例えば、自装置を識別する装置識別情報であってよい。「モデルID」は、自ノードに対応する機械学習モデルを識別するモデル識別情報を示す。「モデルID」は、例えば、自ノードに対応する機械学習モデルを識別可能な名称であってよい。
【0056】
「親ノード」は、自ノードの親ノードに関する情報を示す。「親ノード」は、さらに、「ノードID」、「モデルID」といった小項目を有する。「ノードID」は、親ノードを識別するノード識別情報を示す。「ノードID」は、例えば、親ノードに対応する情報処理装置100を識別する装置識別情報であってよい。「モデルID」は、親ノードに対応する機械学習モデルを識別するモデル識別情報を示す。「モデルID」は、例えば、親ノードに対応する機械学習モデルを識別可能な名称であってよい。
【0057】
「子ノード」は、自ノードの親ノードに関する情報を示す。「子ノード」は、さらに、「ノードID」、「モデルID」といった小項目を有する。「ノードID」は、子ノードを識別するノード識別情報を示す。「ノードID」は、例えば、子ノードに対応する情報処理装置100またはエッジデバイス10を識別する装置識別情報であってよい。「モデルID」は、子ノードに対応する機械学習モデルを識別するモデル識別情報を示す。「モデルID」は、例えば、子ノードに対応する機械学習モデルを識別可能な名称であってよい。
【0058】
(制御部130)
制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0059】
制御部130は、受信部131と、更新部132と、送信部133を機能部として有し、以下に説明する情報処理の作用を実現または実行してよい。なお、制御部130の内部構成は、図2に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、各機能部は、制御部130の機能を示したものであり、必ずしも物理的に区別されるものでなくともよい。
【0060】
(受信部131)
受信部131は、階層構造における自ノードの上位階層のノードに対応する機械学習モデルである上位モデルを受信する。具体的には、受信部131は、上位モデルの一例として、親ノードから親モデルを受信する。より具体的には、受信部131は、親モデルのモデルパラメータを受信する。例えば、受信部131は、親ノードに対応する情報処理装置100から、親モデルを受信する。例えば、受信部131は、親モデルを受信した場合、ノード情報記憶部121を参照して、親モデルの送信元である情報処理装置100を親ノードと特定する。続いて、受信部131は、親ノードと特定された情報処理装置100から受信したモデルを親モデルと特定する。受信部131は、親モデルを受信した場合、受信した親モデルを記憶部120に格納する。
【0061】
また、受信部131は、階層構造における自ノードの下位階層のノードに対応する機械学習モデルである下位モデルを受信する。具体的には、受信部131は、下位モデルの一例として、子ノードから子モデルを受信する。より具体的には、受信部131は、子モデルのモデルパラメータを受信する。例えば、受信部131は、子ノードに対応する情報処理装置100から、子モデルを受信する。例えば、受信部131は、子モデルを受信した場合、ノード情報記憶部121を参照して、子モデルの送信元である情報処理装置100を子ノードと特定する。続いて、受信部131は、子ノードと特定された情報処理装置100から受信したモデルを子モデルと特定する。
【0062】
(更新部132)
更新部132は、下位モデルと、上位モデルとに基づいて、自モデルを更新する。具体的には、更新部132は、下位モデルの一例として、子モデルと、上位モデルの一例として、親モデルとに基づいて、自モデルを更新する。より具体的には、更新部132は、自ノードと接続された全ての子ノードからの子モデルの受信が完了した場合、受信した全ての子モデルを平均化して自モデルを更新する。例えば、更新部132は、複数のモデルパラメータそれぞれについて、受信した全ての子モデルのモデルパラメータの平均値をそれぞれ算出する。続いて、更新部132は、算出されたモデルパラメータの平均値を自モデルのモデルパラメータの更新値とする。続いて、更新部132は、子モデルを平均化して更新した自モデルと、親モデルとの類似度が第1閾値(例えば、60%など)を下回らないように自モデルを更新する。例えば、更新部132は、子モデルを平均化して更新した自モデルのモデルパラメータを示す第1ベクトルと、親モデルのモデルパラメータを示す第2ベクトルとのコサイン類似度が第1閾値(例えば、0.6など)を下回らないように自モデルのモデルパラメータを示す第1ベクトルを更新する。
【0063】
また、更新部132は、更新後の自モデルに基づいて、親モデルを更新する。具体的には、更新部132は、更新後の自モデルと親モデルとの類似度が第2閾値(例えば、80%など)以上となるように親モデルを更新する。例えば、更新部132は、更新後の自モデルのモデルパラメータを示す第3ベクトルと、親モデルのモデルパラメータを示す第4ベクトルとのコサイン類似度が第2閾値(例えば、0.8など)以上となるように親モデルのモデルパラメータを示す第4ベクトルを更新する。なお、更新部132は、コサイン類似度に限らず、内積距離やユークリッド距離を用いてベクトルの類似度を算出してもよい。
【0064】
(送信部133)
送信部133は、更新部132によって更新された自モデルである更新後の自モデルを、子ノードに対応する他の情報処理装置に対して送信する。具体的には、送信部133は、更新後の自モデルのモデルパラメータを送信する。より具体的には、送信部133は、ノード情報記憶部121を参照して、子ノードに対応する情報処理装置100またはエッジデバイス10を特定する。続いて、送信部133は、子ノードとして特定された情報処理装置100またはエッジデバイス10に対して更新後の自モデルを送信する。
【0065】
また、送信部133は、更新部132によって更新された親モデル(以下、更新後の親モデルともいう)を、親ノードに対応する他の情報処理装置に対して送信する。具体的には、送信部133は、更新後の親モデルのモデルパラメータを送信する。より具体的には、送信部133は、ノード情報記憶部121を参照して、親ノードに対応する情報処理装置100を特定する。続いて、送信部133は、親ノードとして特定された情報処理装置100に対して更新後の親モデルを送信する。
【0066】
〔3.情報処理の手順〕
図4は、実施形態に係る情報処理手順を示すフローチャートである。図4に示す例では、情報処理装置100の受信部131は、親ノードから親モデルを受信する(ステップS1)。続いて、受信部131は、子ノードから子モデルを受信する(ステップS2)。続いて、受信部131は、自ノードの子ノードに対応する全ての子モデルの受信が完了したか否かを判定する(ステップS3)。
【0067】
受信部131は、全ての子モデルの受信が完了していないと判定した場合(ステップS3;No)、ステップS2を繰り返す。一方、受信部131によって全ての子モデルの受信が完了したと判定された場合(ステップS3;Yes)、更新部132は、子モデルを平均化して更新した自モデルと、親モデルとの類似度が第1閾値を下回らないように自モデルを更新する(ステップS4)。続いて、更新部132は、更新後の自モデルと親モデルとの類似度が第2閾値以上となるように親モデルを更新する(ステップS5)。
【0068】
送信部133は、更新部132によって更新された親モデルを親ノードに対応する他の情報処理装置に対して送信する(ステップS6)。続いて、送信部133は、更新部132によって更新された自モデルを子ノードに対応する他の情報処理装置に対して送信する(ステップS7)。
【0069】
〔4.変形例〕
上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態にて実施されてよい。
【0070】
〔4-1.各階層の機械学習モデルが異なる構造を持つ場合〕
上述した実施形態では、各階層の機械学習モデルが同じ構造を持つ場合について説明したが、各階層の機械学習モデルが異なる構造を持っていてもよい。
【0071】
具体的には、更新部132は、階層構造における各階層の機械学習モデルがそれぞれ異なる構造を有する場合、子モデルと親モデルとを第1の比率に基づいて教師とし、自モデルを学習する蒸留を行う。例えば、更新部132は、公知の蒸留手法を用いて、自モデルを学習する蒸留を行う(参考文献1;Yuang Liu、他2名、“Adaptive Multi-Teacher Multi-level Knowledge Distillation”、[online]、March 2021、[令和4年3月7日検索]、インターネット<URL:https://arxiv.org/abs/2103.04062>、参考文献2;Adriana Romero、他5名、“FitNets: Hints for Thin Deep Nets”、[online]、December 2014、[令和4年3月7日検索]、インターネット<URL:https://arxiv.org/abs/1412.6550>)。例えば、第1の比率は、事前に定められた比率であってよい。例えば、更新部132は、受信した全ての子モデル全体と親モデルの割合が1対1程度の比率から学習を開始してよい。なお、精度などの指標が高まるような細かな調整は、構築毎に人手で行ってもよいし、自動で微調整してもよい。
【0072】
続いて、更新部132は、階層構造における各階層の機械学習モデルがそれぞれ異なる構造を有する場合、更新後の自モデルと親モデルとを第2の比率に基づいて教師とし、親モデルを学習する蒸留を行う。例えば、更新部132は、上述したような公知の蒸留手法を用いて、自モデルを学習する蒸留を行う。例えば、第2の比率は、事前に定められた比率であってよい。例えば、更新部132は、更新後の自モデルと親モデルの割合が1対1程度の比率から学習を開始してよい。なお、精度などの指標が高まるような細かな調整は、構築毎に人手で行ってもよいし、自動で微調整してもよい。
【0073】
〔4-2.階層構造を構成する階層の数〕
上述した実施形態では、階層構造が、店舗階層、企業階層、業界階層、共通階層の4つの階層によって構成される場合について説明したが、階層構造を構成する階層の数は、3つであってもよいし、5つ以上であってもよい。具体的には、ローカルモデルに対応する葉ノードが属するリーフ階層と、ローカルモデルが分類されるカテゴリのカテゴリモデルに対応する第1内部ノードが属するカテゴリ階層と、カテゴリモデルが分類される上位カテゴリの上位カテゴリモデルに対応する第2内部ノードが属する上位カテゴリ階層と、を備える階層構造であれば、いかなる階層構造であってもよい。例えば、上位カテゴリが共通階層であり、上位カテゴリモデルが、エッジデバイス10に配布された共通の機械学習モデルである共通モデルであってもよい。
【0074】
〔4-3.機械学習モデルのバリエーション〕
上述した実施形態では、情報処理システム1が、防犯カメラ等によって撮影された画像が入力された場合に、画像に撮像された人物の検出結果を出力するよう学習された機械学習モデルを階層的にパーソナライズド連合学習させる場合について説明したが、機械学習モデルは画像から人物を検出するモデルに限られない。具体的には、機械学習モデルは、音声認識、画像認識、顔認証、または機械翻訳に用いられる機械学習モデルであってよい。例えば、エッジデバイス10は、スマートスピーカーであってよい。そして、エッジデバイス10は、取得した音声データが入力された場合に、音声の内容を示すテキストを出力するよう学習された機械学習モデル(以下、音声認識モデルともいう)をオンデバイス学習させる。そして、情報処理システム1は、音声認識モデルを階層的にパーソナライズド連合学習させてもよい。
【0075】
〔4-4.孫モデルまたは祖モデルに基づく自モデルの更新〕
上述した実施形態では、情報処理装置100が、自ノードの子ノードに対応する子モデルおよび自ノードの親ノードに対応する親モデルに基づいて、自モデルを更新する場合について説明したが、情報処理装置100は、子モデル以外の下位モデルおよび親モデル以外の上位モデルに基づいて、自モデルを更新してよい。
【0076】
具体的には、情報処理装置100は、子モデル以外の下位モデルとして、自ノードの子ノードの子ノードに対応する機械学習モデルである孫モデルに基づいて、自モデルを更新してよい。より具体的には、受信部131は、子モデルおよび孫モデルを受信してよい。また、更新部132は、子モデルおよび孫モデルと、親モデルとに基づいて、自モデルを更新してよい。例えば、更新部132は、自ノードと接続された全ての子ノードからの子モデル、および、自ノードの子ノードと接続された全ての孫ノードからの孫モデルの受信が完了した場合、受信した全ての子モデルおよび孫モデルをあらかじめ定められた第1混合比率で混合して自モデルを更新してよい。例えば、更新部132は、複数のモデルパラメータそれぞれについて、受信した全ての子モデルのモデルパラメータ、および、受信した全ての孫モデルのモデルパラメータの平均をそれぞれ算出してよい。続いて、更新部132は、あらかじめ定められた第1混合比率を重みとして、算出された子モデルのモデルパラメータの平均、および、算出された孫モデルのモデルパラメータの平均の重み付き平均を算出してよい。例えば、更新部132は、子モデルよりも、孫モデルの比率の方が小さい第1混合比率を重みとして、複数のモデルパラメータそれぞれについての重み付き平均を算出してよい。続いて、更新部132は、算出されたモデルパラメータの重み付き平均を自モデルのモデルパラメータの更新値とする。
【0077】
また、情報処理装置100は、親モデル以外の上位モデルとして、自ノードの親ノードの親ノードに対応する機械学習モデルである祖モデルに基づいて、自モデルを更新してよい。より具体的には、受信部131は、親モデルおよび祖モデルを受信してよい。また、更新部132は、あらかじめ定められた第2混合比率を重みとした親モデルおよび祖モデルの重み付き平均に基づく一の機械学習モデルに基づいて、自モデルを更新してよい。例えば、更新部132は、複数のモデルパラメータそれぞれについて、受信した親モデルのモデルパラメータ、および、受信した祖モデルのモデルパラメータの平均をそれぞれ算出してよい。続いて、更新部132は、あらかじめ定められた第2混合比率を重みとして、算出された親モデルのモデルパラメータの平均、および、算出された祖モデルのモデルパラメータの平均の重み付き平均を算出してよい。例えば、更新部132は、親モデルよりも、祖モデルの比率の方が小さい第2混合比率を重みとして、複数のモデルパラメータそれぞれについての重み付き平均を算出してよい。続いて、更新部132は、子モデルおよび孫モデルに基づいて更新した自モデルと、親モデルおよび祖モデルの重み付き平均に基づく一の機械学習モデルとの類似度が第1閾値(例えば、60%など)を下回らないように自モデルを更新してよい。
【0078】
〔5.効果〕
上述したように、実施形態に係る情報処理装置100は、記憶部120と受信部131と更新部132を備える。記憶部120は、エッジデバイスが取得したデータに基づいて学習された機械学習モデルである第1モデル(実施形態では、ローカルモデル)に対応する第1ノード(実施形態では、葉ノード)と、第1モデル(実施形態では、ローカルモデル)が分類されるカテゴリごとにカテゴリに属する第1モデル(実施形態では、ローカルモデル)を集約した機械学習モデルであるカテゴリモデルに対応する第2ノード(実施形態では、第1内部ノード)と、カテゴリモデルが分類される上位カテゴリごとに上位カテゴリに属するカテゴリモデルを集約した機械学習モデルである上位カテゴリモデルに対応する第3ノード(実施形態では、第2内部ノード)と、を含む階層構造における一のノードに対応する機械学習モデルである自モデルを記憶する。受信部131は、階層構造における自ノードの下位階層のノードに対応する機械学習モデルである下位モデル(実施形態では、子モデル)、および、階層構造における自ノードの上位階層のノードに対応する機械学習モデルである上位モデル(実施形態では、親モデル)を受信する。更新部132は、下位モデル(実施形態では、子モデル)と、上位モデル(実施形態では、親モデル)とに基づいて、自モデルを更新する。
【0079】
これにより、情報処理装置100は、例えば、各企業や店舗ごとに一から機械学習モデルを生成する手間を省くことができるので、機械学習モデルのサイロ化を解決することができる。また、情報処理装置100は、ノード間で個人情報を含む原データのやり取りがないため、プライバシーを保護しつつ機械学習モデルの精度を改善することを可能とすることができる。また、情報処理装置100は、階層構造を持つことで、上位階層のモデルを介して、下位階層のモデルが他のモデルの学習による更新のメリットを相互に享受することを可能とすることができる。また、情報処理装置100は、階層構造を持つことで、従来技術に係るパーソナライズド連合学習と比べて、機械学習モデルのパーソナライズに要する学習量を低減することを可能とすることができる。すなわち、情報処理装置100は、パーソナライズされた機械学習モデルを効率よく学習させることを可能とすることができる。また、情報処理装置100は、階層構造を持つことで、各ノードが持つ子ノードの数が減るため、通信負荷を分散させることを可能とすることができる。また、情報処理装置100は、パーソナライズされた機械学習モデルを効率よく学習させることを可能とすることができるため、持続可能な開発目標(SDGs)の目標9「産業と技術革新の基盤をつくろう」の達成に貢献できる。
【0080】
また、更新部132は、下位モデル(実施形態では、子モデル)を平均化して更新した自モデルと、上位モデル(実施形態では、親モデル)に基づく一の機械学習モデルとの類似度が第1閾値を下回らないように自モデルを更新する。
【0081】
これにより、情報処理装置100は、上位モデル(例えば、親モデル)との類似度を高い状態に保つことにより、上位モデル(例えば、親モデル)を介して、例えば、同じ階層の他のモデルの学習による更新のメリットを自モデルの更新に反映することができる。
【0082】
また、下位モデルは、自ノードの子ノードに対応する機械学習モデルである子モデルである。
【0083】
これにより、情報処理装置100は、子モデルの学習による更新のメリットを自モデルの更新に反映することができる。
【0084】
また、下位モデルは、自ノードの子ノードに対応する機械学習モデルである子モデルおよび自ノードの子ノードの子ノードに対応する機械学習モデルである孫モデルである。
【0085】
これにより、情報処理装置100は、子モデルの学習による更新のメリットおよび孫モデルの学習による更新のメリットを自モデルの更新に反映することができる。
【0086】
また、更新部132は、あらかじめ定められた第1混合比率を重みとした子モデルおよび孫モデルの重み付き平均に基づく自モデルに基づいて、自モデルを更新する。
【0087】
これにより、情報処理装置100は、第1混合比率を調整することにより、例えば、自モデルの精度などの指標が高まるような細かな調整を行うことができる。
【0088】
また、上位モデルは、自ノードの親ノードに対応する機械学習モデルである親モデルである。
【0089】
これにより、情報処理装置100は、親モデルとの類似度を高い状態に保つことにより、親モデルを介して、例えば、同じ階層の他のモデルの学習による更新のメリットを自モデルの更新に反映することができる。
【0090】
また、上位モデルは、自ノードの親ノードに対応する機械学習モデルである親モデルおよび自ノードの親ノードの親ノードに対応する機械学習モデルである祖モデルである。
【0091】
これにより、情報処理装置100は、親モデルおよび祖モデルに基づく一の機械学習モデルとの類似度を高い状態に保つことにより、親モデルおよび祖モデルに基づく一の機械学習モデルを介して、例えば、同じ階層の他のモデルの学習による更新のメリットを自モデルの更新に反映することができる。
【0092】
また、更新部132は、上位モデルに基づく一の機械学習モデルとして、あらかじめ定められた第2混合比率を重みとした親モデルおよび祖モデルの重み付き平均に基づく一の機械学習モデルに基づいて、自モデルを更新する。
【0093】
これにより、情報処理装置100は、第2混合比率を調整することにより、例えば、自モデルの精度などの指標が高まるような細かな調整を行うことができる。
【0094】
また、更新部132は、階層構造における各階層の機械学習モデルがそれぞれ異なる構造を有する場合、下位モデルとして、自ノードの子ノードに対応する機械学習モデルである子モデルと、上位モデルとして、自ノードの親ノードに対応する機械学習モデルである親モデルとを第1の比率に基づいて教師とし、自モデルを学習する蒸留を行う。
【0095】
これにより、情報処理装置100は、各階層の機械学習モデルがそれぞれ異なる構造を有する場合であっても、上位モデル(例えば、親モデル)を介して、例えば、同じ階層の他のモデルの学習による更新のメリットを自モデルの更新に反映することができる。
【0096】
また、情報処理装置100は、送信部133をさらに備える。送信部133は、更新部132によって更新された自モデルである更新後の自モデルを、自ノードの下位階層のノードに対応する他の情報処理装置に対して送信する。
【0097】
これにより、情報処理装置100は、自モデルの更新のメリットを下位モデルの更新に反映することができる。
【0098】
また、更新部132は、更新部132によって更新された自モデルである更新後の自モデルに基づいて、上位モデルを更新する。
【0099】
これにより、情報処理装置100は、階層構造を持つことで、下位階層のモデルである自モデルを介して、例えば、上位階層のモデルである親モデルが他のモデルの学習による更新のメリットを享受することを可能とすることができる。
【0100】
また、更新部132は、更新後の自モデルと上位モデルとの類似度が第2閾値以上となるように上位モデルを更新する。
【0101】
これにより、情報処理装置100は、例えば、自モデル(親モデルにとっての子モデル)と上位モデル(例えば、親モデル)との類似度を高い状態に保つことにより、自モデルを介して、自モデルの学習による更新のメリットを上位モデル(例えば、親モデル)の更新に反映することができる。
【0102】
また、上位モデルは、自ノードの親ノードに対応する機械学習モデルである親モデルである。
【0103】
これにより、情報処理装置100は、自モデル(親モデルにとっての子モデル)と親モデルとの類似度を高い状態に保つことにより、自モデルを介して、自モデルの学習による更新のメリットを親モデルの更新に反映することができる。
【0104】
また、更新部132は、階層構造における各階層の機械学習モデルがそれぞれ異なる構造を有する場合、更新後の自モデルと、上位モデルとして、自ノードの親ノードに対応する機械学習モデルである親モデルとを第2の比率に基づいて教師とし、親モデルを学習する蒸留を行う。
【0105】
これにより、情報処理装置100は、各階層の機械学習モデルがそれぞれ異なる構造を有する場合であっても、自モデルを介して、自モデルの学習による更新のメリットを上位モデル(例えば、親モデル)の更新に反映することができる。
【0106】
また、情報処理装置100は、送信部133をさらに備える。送信部133は、更新部132によって更新された上位モデルである更新後の上位モデルを、自ノードの上位階層のノードに対応する他の情報処理装置に対して送信する。
【0107】
これにより、情報処理装置100は、自モデルの学習による更新のメリットを上位モデル(例えば、親モデル)の更新に反映することができる。
【0108】
また、上位カテゴリモデルは、エッジデバイスに配布された共通の機械学習モデルである共通モデルである。
【0109】
これにより、情報処理装置100は、共通モデルを更新するだけで各ノードに配信する仕組みになっているので、機械学習モデルの管理や更新といった保守管理を容易にすることができる。
【0110】
〔6.ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置100は、例えば図5に示すような構成のコンピュータ1000によって実現される。図5は、情報処理装置100の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を備える。
【0111】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0112】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
【0113】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
【0114】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0115】
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
【0116】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0117】
〔7.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0118】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・集約の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・集約して構成することができる。
【0119】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0120】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、受信部は、受信手段や受信回路に読み替えることができる。
【符号の説明】
【0121】
100 情報処理装置
110 通信部
120 記憶部
121 ノード情報記憶部
130 制御部
131 受信部
132 更新部
133 送信部
図1
図2
図3
図4
図5