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

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

▶ テレフオンアクチーボラゲット エル エム エリクソン(パブル)の特許一覧

特表2022-551104不均一モデルタイプおよびアーキテクチャを使用した連合学習
<>
  • 特表-不均一モデルタイプおよびアーキテクチャを使用した連合学習 図1
  • 特表-不均一モデルタイプおよびアーキテクチャを使用した連合学習 図2
  • 特表-不均一モデルタイプおよびアーキテクチャを使用した連合学習 図3
  • 特表-不均一モデルタイプおよびアーキテクチャを使用した連合学習 図4
  • 特表-不均一モデルタイプおよびアーキテクチャを使用した連合学習 図5
  • 特表-不均一モデルタイプおよびアーキテクチャを使用した連合学習 図6
  • 特表-不均一モデルタイプおよびアーキテクチャを使用した連合学習 図7
  • 特表-不均一モデルタイプおよびアーキテクチャを使用した連合学習 図8
  • 特表-不均一モデルタイプおよびアーキテクチャを使用した連合学習 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-07
(54)【発明の名称】不均一モデルタイプおよびアーキテクチャを使用した連合学習
(51)【国際特許分類】
   G06N 20/20 20190101AFI20221130BHJP
【FI】
G06N20/20
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022520637
(86)(22)【出願日】2019-10-04
(85)【翻訳文提出日】2022-06-01
(86)【国際出願番号】 IN2019050736
(87)【国際公開番号】W WO2021064737
(87)【国際公開日】2021-04-08
(81)【指定国・地域】
(71)【出願人】
【識別番号】598036300
【氏名又は名称】テレフオンアクチーボラゲット エルエム エリクソン(パブル)
(74)【代理人】
【識別番号】100109726
【弁理士】
【氏名又は名称】園田 吉隆
(74)【代理人】
【識別番号】100161470
【弁理士】
【氏名又は名称】冨樫 義孝
(74)【代理人】
【識別番号】100194294
【弁理士】
【氏名又は名称】石岡 利康
(74)【代理人】
【識別番号】100194320
【弁理士】
【氏名又は名称】藤井 亮
(74)【代理人】
【識別番号】100150670
【弁理士】
【氏名又は名称】小梶 晴美
(72)【発明者】
【氏名】サテシュ クマール, ペレプ
(72)【発明者】
【氏名】ジャウハリ, アンキト
(72)【発明者】
【氏名】モハリク, スワルプ クマール
(72)【発明者】
【氏名】エム, サラバナン
(72)【発明者】
【氏名】シュクラ, アンシュ
(57)【要約】
中央ノードまたはサーバ上での方法が提供される。本方法は、第1のユーザデバイスから第1のモデルを受信し、第2のユーザデバイスから第2のモデルを受信することであって、第1のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットを有し、第2のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットとは異なる第2の層のセットを有する、ことと、第1の層のセットの各層について、第1の層のセットの中の層から第1のフィルタのサブセットを選択することと、第2の層のセットの各層について、第2の層のセットの中の層から第2のフィルタのサブセットを選択することと、グローバルの層のセット中の各層について、層が、対応する第1のフィルタのサブセットおよび/または対応する第2のフィルタのサブセットに基づくフィルタを備えるように、第1の層のセットおよび第2の層のセットに基づいてグローバルの層のセットを形成することによってグローバルモデルを構成することと、グローバルモデルに対する全結合層を形成することであって、全結合層が、グローバルの層のセットの最終層となる、全結合層を形成することと、を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
中央ノードまたはサーバ上での方法であって、前記方法は、
第1のユーザデバイスから第1のモデルを受信し、第2のユーザデバイスから第2のモデルを受信することであって、前記第1のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットを有し、前記第2のモデルが、前記ニューラルネットワークモデルタイプであり、かつ前記第1の層のセットとは異なる第2の層のセットを有する、ことと、
前記第1の層のセットの各層について、前記第1の層のセットの中の前記層から第1のフィルタのサブセットを選択することと、
前記第2の層のセットの各層について、前記第2の層のセットの中の前記層から第2のフィルタのサブセットを選択することと、
グローバルの層のセット中の各層について、前記層が、対応する前記第1のフィルタのサブセットおよび/または対応する前記第2のフィルタのサブセットに基づくフィルタを備えるように、前記第1の層のセットおよび前記第2の層のセットに基づいて前記グローバルの層のセットを形成することによってグローバルモデルを構成することと、
前記グローバルモデルに対する全結合層であって、前記グローバルの層のセットの最終層となる、全結合層を形成することと
を備える、方法。
【請求項2】
前記グローバルモデルに対する前記全結合層に関した情報を、前記第1のユーザデバイスおよび前記第2のユーザデバイスを含む1つまたは複数のユーザデバイスに送信することと、
前記グローバルモデルに対する前記全結合層に関した前記情報を使用して、デバイス固有のローカルモデルをトレーニングする前記1つまたは複数のユーザデバイスの各々からの結果に対応する、1つまたは複数の係数のセットを、前記1つまたは複数のユーザデバイスから受信することと、
前記全結合層に対する新しい係数のセットを作成するために、前記1つまたは複数の係数のセットを平均することによって、前記グローバルモデルを更新することと
を更に備える、請求項1に記載の方法。
【請求項3】
前記第1の層のセットの中の前記層から第1のフィルタのサブセットを選択することが、前記層からk個の最良のフィルタを決定することを備え、前記第1のサブセットが、決定された前記k個の最良のフィルタを備える、請求項1または2に記載の方法。
【請求項4】
前記第2の層のセットの中の前記層から第2のフィルタのサブセットを選択することが、前記層からk個の最良のフィルタを決定することを備え、前記第2のサブセットが、決定された前記k個の最良のフィルタを備える、請求項1または2に記載の方法。
【請求項5】
前記第1の層のセットおよび前記第2の層のセットに基づいてグローバルの層のセットを形成することが、
前記第1の層のセットおよび前記第2の層のセットに共通している各層について、対応する前記第1のフィルタのサブセットおよび対応する前記第2のフィルタのサブセットを連結することによって、前記グローバルモデル中の対応する層を生成することと、
前記第1の層のセットに固有である各層について、対応する前記第1のフィルタのサブセットを使用することによって、前記グローバルモデル中の対応する層を生成することと、
前記第2の層のセットに固有である各層について、対応する前記第2のフィルタのサブセットを使用することによって、前記グローバルモデル中の対応する層を生成することと
を備える、請求項1から4のいずれか一項に記載の方法。
【請求項6】
第1のユーザデバイスおよび第2のユーザデバイスのうちの1つまたは複数に、そのそれぞれのローカルモデルを前記ニューラルネットワークモデルタイプに蒸留するように命令することを更に備える、請求項1から5のいずれか一項に記載の方法。
【請求項7】
不均一モデルタイプおよび/またはアーキテクチャを備えた連合学習を利用するためのユーザデバイス上での方法であって、前記方法は、
ローカルモデルを第1の蒸留モデルに蒸留することであって、前記ローカルモデルが、第1のモデルタイプであり、前記第1の蒸留モデルが、前記第1のモデルタイプとは異なる第2のモデルタイプである、ことと、
前記第1の蒸留モデルをサーバに送信することと、
グローバルモデルを前記サーバから受信することであって、前記グローバルモデルが、前記第2のモデルタイプである、ことと、
前記グローバルモデルに基づいて前記ローカルモデルを更新することと
を備える、方法。
【請求項8】
ユーザデバイスで受信される新しいデータに基づいて前記ローカルモデルを更新することと、
更新された前記ローカルモデルを第2の蒸留モデルに蒸留することであって、前記第2の蒸留モデルが、前記第2のモデルタイプである、ことと、
前記第2の蒸留モデルの重み付き平均および前記第1の蒸留モデルを前記サーバに送信することと
を更に備える、請求項7に記載の方法。
【請求項9】
前記第2の蒸留モデルの前記重み付き平均および前記第1の蒸留モデルが、W1+αW2によって与えられ、ここで、W1は、前記第1の蒸留モデルを表し、W2は、前記第2の蒸留モデルを表し、0<α<1である、請求項8に記載の方法。
【請求項10】
ローカルデータに基づいて前記グローバルモデルの最終層に対する係数を決定することと、
前記係数を中央ノードまたはサーバに送信することと
を更に備える、請求項7から9のいずれか一項に記載の方法。
【請求項11】
メモリと、
前記メモリに接続したプロセッサと
を備える、中央ノードまたはサーバであって、前記プロセッサは、
第1のユーザデバイスから第1のモデルを受信し、第2のユーザデバイスから第2のモデルを受信し、前記第1のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットを有し、前記第2のモデルが、前記ニューラルネットワークモデルタイプであり、かつ前記第1の層のセットとは異なる第2の層のセットを有し、
前記第1の層のセットの各層について、前記第1の層のセットの中の前記層から第1のフィルタのサブセットを選択し、
前記第2の層のセットの各層について、前記第2の層のセットの中の前記層から第2のフィルタのサブセットを選択し、
グローバルの層のセット中の各層について、前記層が、対応する前記第1のフィルタのサブセットおよび/または対応する前記第2のフィルタのサブセットに基づくフィルタを備えるように、前記第1の層のセットおよび前記第2の層のセットに基づいて前記グローバルの層のセットを形成することによってグローバルモデルを構成し、
前記グローバルモデルに対する全結合層を形成し、前記全結合層が、前記グローバルの層のセットの最終層となるように設定される、中央ノードまたはサーバ。
【請求項12】
前記プロセッサは、
前記グローバルモデルに対する前記全結合層に関した情報を、前記第1のユーザデバイスおよび前記第2のユーザデバイスを含む1つまたは複数のユーザデバイスに送信し、
1つまたは複数の係数のセットを前記1つまたは複数のユーザデバイスから受信し、前記1つまたは複数の係数のセットが、前記グローバルモデルに対する前記全結合層に関した前記情報を使用して、デバイス固有のローカルモデルをトレーニングする前記1つまたは複数のユーザデバイスの各々からの結果に対応し、
前記全結合層に対する新しい係数のセットを作成するために、前記1つまたは複数の係数のセットを平均することによって、前記グローバルモデルを更新する
ように更に設定される、請求項11に記載の中央ノードまたはサーバ。
【請求項13】
前記第1の層のセットの中の前記層から第1のフィルタのサブセットを選択することが、前記層からk個の最良のフィルタを決定することを備え、前記第1のサブセットが、決定された前記k個の最良のフィルタを備える、請求項11または12に記載の中央ノードまたはサーバ。
【請求項14】
前記第2の層のセットの中の前記層から第2のフィルタのサブセットを選択することが、前記層からk個の最良のフィルタを決定することを備え、前記第2のサブセットが、決定された前記k個の最良のフィルタを備える、請求項11または12に記載の中央ノードまたはサーバ。
【請求項15】
前記第1の層のセットおよび前記第2の層のセットに基づいてグローバルの層のセットを形成することが、
前記第1の層のセットおよび前記第2の層のセットに共通している各層について、対応する前記第1のフィルタのサブセットおよび対応する前記第2のフィルタのサブセットを連結することによって前記グローバルモデル中の対応する層を生成することと、
前記第1の層のセットに固有である各層について、対応する前記第1のフィルタのサブセットを使用することによって、前記グローバルモデル中の対応する層を生成することと、
前記第2の層のセットに固有である各層について、対応する前記第2のフィルタのサブセットを使用することによって、前記グローバルモデル中の対応する層を生成することと
を備える、請求項11から14のいずれか一項に記載の中央ノードまたはサーバ。
【請求項16】
前記プロセッサが、第1のユーザデバイスおよび第2のユーザデバイスのうちの1つまたは複数に、そのそれぞれのローカルモデルを前記ニューラルネットワークモデルタイプに蒸留するよう命令するように更に設定される、請求項11から15のいずれか一項に記載の中央ノードまたはサーバ。
【請求項17】
メモリと、
前記メモリに接続したプロセッサと
を備える、ユーザデバイスであって、前記プロセッサは、
ローカルモデルを第1の蒸留モデルに蒸留し、前記ローカルモデルが、第1のモデルタイプであり、前記第1の蒸留モデルが、前記第1のモデルタイプとは異なる第2のモデルタイプであり、
前記第1の蒸留モデルをサーバに送信し、
グローバルモデルを前記サーバから受信し、前記グローバルモデルが、前記第2のモデルタイプあり、
前記グローバルモデルに基づいて前記ローカルモデルを更新する
ように設定される、ユーザデバイス。
【請求項18】
前記プロセッサは、
ユーザデバイスで受信される新しいデータに基づいて前記ローカルモデルを更新し、
更新された前記ローカルモデルを第2の蒸留モデルに蒸留し、前記第2の蒸留モデルが、前記第2のモデルタイプであり、
前記第2の蒸留モデルの重み付き平均および前記第1の蒸留モデルを前記サーバに送信する
ように更に設定される、請求項17に記載のユーザデバイス。
【請求項19】
前記第2の蒸留モデルの前記重み付き平均および前記第1の蒸留モデルが、W1+αW2によって与えられ、ここで、W1は、前記第1の蒸留モデルを表し、W2は、前記第2の蒸留モデルを表し、0<α<1である、請求項18に記載のユーザデバイス。
【請求項20】
前記プロセッサは、
ローカルデータに基づいて前記グローバルモデルの最終層に対する係数を決定し、
前記係数を中央ノードまたはサーバに送信する
ように更に設定される、請求項17から19のいずれか一項に記載のユーザデバイス。
【請求項21】
命令を備えるコンピュータプログラムであって、前記命令は、処理回路によって実行されると、前記処理回路に、請求項1から10のいずれか一項に記載の方法を実施させる、コンピュータプログラム。
【請求項22】
電子信号、光信号、無線信号、およびコンピュータ可読記憶媒体のうちの1つである、請求項21に記載のコンピュータプログラムをもつキャリア。
【発明の詳細な説明】
【技術分野】
【0001】
不均一モデルタイプおよびアーキテクチャを使用した連合学習に関する実施形態が開示される。
【背景技術】
【0002】
過去数年間、機械学習は、タスクのオートメーションおよびデジタル化に関連した分野を含む、自然言語処理、コンピュータビジョン、音声認識、モノのインターネット(IoT:Internet of Things)などの様々な分野において、大きなブレークスルーに至っている。この成功の多くは、適切な環境において大量のデータ(いわゆる「ビッグデータ」)を収集し、処理することに基づいている。機械学習のいくつかの用途に関して、データを収集するこの必要性によって、信じられないほどプライバシーが侵害されている可能性がある。
【0003】
例えば、このようなプライバシーを侵害するデータ収集の例として、音声認識および言語翻訳のためのモデル、または人々がより迅速に入力するのを助けるために携帯電話上で入力される可能性が高い次の単語を予測するためのモデルについて考えてみる。いずれの場合においても、他の(個人化されていない)ソースからのデータを使用する代わりに、(特定のユーザが何を言っているか、または何を入力しているかなど)ユーザデータについてモデルを直接トレーニングすることが有益である。そうすることにより、予測を行うためにも使用される同じデータ分布上でモデルをトレーニングすることが可能になる。しかしながら、このようなデータを直接収集することは、様々な理由で、特にこのようなデータが極めて個人的であり得るという理由で、問題がある。ユーザは、自分らが入力したすべてのものを自分らの制御外のサーバに送信することに関心がない。ユーザが特に機密に関わり得るデータの他の例としては、金融データ(例えば、クレジットカード取引)、またはビジネスデータもしくは所有権をもつデータが含まれる。例えば、通信オペレータは(例えば、誤認アラームと実際のアラームとを判定するために)通信によってノードが作動することでトリガするアラームに関するデータを収集するが、このような通信オペレータは、通常、このデータ(顧客データを含む)を他のものと共有することを望まない。
【0004】
これに対する一つの最近の解決策は、トレーニングデータがユーザのコンピュータから全く移らない機械学習への新しいアプローチである連合学習の導入である。ユーザのデータを共有する代わりに、個々のユーザは、ローカルで入手可能なデータを使用して重み付けの更新を自ら計算する。これは、集中型サーバ上でユーザのデータを直接調べることなく、モデルをトレーニングする方法である。連合学習は、トレーニングプロセスが多くのユーザ間で分散される機械学習の協同形態である。サーバにはすべてを調整する役割があるが、ほとんどの作業は中央エンティティによって実施されるのではなく、ユーザの連合によって代わりに実施される。
【0005】
連合学習では、モデルが初期化された後、モデルを改善するために一定数のユーザをランダムに選択し得る。ランダムに選択された各ユーザは、サーバから現在の(またはグローバルの)モデルを受信し、ユーザのローカルで利用可能なデータを使用してモデル更新を計算する。これらの更新はすべて、サーバに送り返され、そこでモデル更新が平均化され、クライアントが使用したトレーニング標本の数で重み付けされる。次いで、サーバは、通常、何らかの形態の勾配降下を使用することによって、この更新をモデルに適用する。
【0006】
現在の機械学習のアプローチは、大きなデータセットの利用が可能であることを必要とする。これらは大抵の場合、ユーザから膨大な量のデータを収集することによって作成される。連合学習は、データを直接見ることなくモデルをトレーニングすることを可能にする、より柔軟な技術である。学習アルゴリズムは分散方式で使用されるが、連合学習は機械学習がデータセンタで使用される方法とは非常に異なる。統計的分布に関する多くの保証を行うことはできず、ユーザとの通信は遅く不安定であることが多い。連合学習を効率的に実行できるようにするために、適切な最適化アルゴリズムを各ユーザデバイス内で適応させることができる。
【発明の概要】
【0007】
連合学習は、複数のデバイス全体に分散されたデータセットに基づいて機械学習モデルを構築することに基づいており、一方、これらの複数のデバイスからのデータ漏洩を防止する。既存の連合学習の実施態様では、ユーザが同一のモデルタイプおよびモデルアーキテクチャをトレーニングまたは更新しようとすることが前提である。即ち、例えば、各ユーザは、同じ層を有し、各層が同じフィルタを有する、同じタイプの畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)モデルをトレーニングしている。このような既存の実施態様では、ユーザは自分独自のアーキテクチャおよびモデルタイプを選択する自由をもたない。これはまた、ローカルモデルを過剰適合させるか、またはローカルモデルを過少適合させるかといった問題をもたらす可能性があり、モデルタイプまたはアーキテクチャが一部のユーザに適していない場合、そのときは次善のグローバルモデルをもたらし得る。故に、これらおよび他の問題に対処するには、既存の連合学習の実施態様の改善が必要である。このような改善によって、ユーザが自分自身のモデルタイプおよびモデルアーキテクチャを動かすことを可能にするはずであり、一方、集中化したリソース(ノードまたはサーバなど)を使用して、例えば、それぞれのローカルモデルをインテリジェントに組み合わせてグローバルモデルを形成することによって、これらの異なるモデルアーキテクチャおよびモデルタイプを処理することができる。
【0008】
本明細書で開示される実施形態は、連合学習のユーザ間の不均一モデルタイプおよびアーキテクチャを可能にする。例えば、ユーザは、自分自身のデータに対して異なるモデルタイプおよびモデルアーキテクチャを選択し、そのデータをそれらのモデルに適合させ得る。各ユーザに対してローカルに最良に機能するフィルタは、例えば、各層に対応する選択されたフィルタを連結することによって、グローバルモデルを構成するために使用され得る。グローバルモデルはまた、ローカルモデルから構築される層の出力において全結合層を含み得る。この全結合層は、初期層を固定して個々のユーザに送り返され得、ここで、全結合層のみがユーザのためにローカルにトレーニングされる。次いで、個々のユーザごとの学習した重み付けを組み合わせて(例えば、平均して)、グローバルモデルの全結合層の重み付けを構成し得る。
【0009】
本明細書で提供される実施形態は、ユーザが連合学習のアプローチを依然として採用すると共に、ユーザ自身のモデルを構築することを可能にし、連合学習のアプローチによってユーザのローカルデータに対してどのモデルタイプおよびアーキテクチャが最良に機能するかについてユーザがローカルに決定を行うことができ、一方で、プライバシーを保護する方式の中で連合学習を通じて他のユーザの入力から利益を得る。実施形態はまた、連合学習のアプローチを使用する場合に生じる可能性がある、前述の過剰適合および過少適合の問題を低減することもできる。更に、実施形態は、現在の連合学習の技術が行うことができない、ユーザ間の異なるデータ分布を扱うことができる。
【0010】
第1の態様によれば、中央ノードまたはサーバ上での方法が提供される。本方法は、第1のユーザデバイスから第1のモデルを受信し、第2のユーザデバイスから第2のモデルを受信することを含み、第1のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットを有し、第2のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットとは異なる第2の層のセットを有する。本方法は、第1の層のセットの各層について、第1の層のセットの中の層から第1のフィルタのサブセットを選択することと、第2の層のセットの各層について、第2の層のセットの中の層から第2のフィルタのサブセットを選択することと、を更に含む。本方法は、グローバルの層のセット中の各層について、層が、対応する第1のフィルタのサブセットおよび/または対応する第2のフィルタのサブセットに基づくフィルタを備えるように、第1の層のセットおよび第2の層のセットに基づいてグローバルの層のセットを形成することによってグローバルモデルを構成することと、グローバルモデルに対する全結合層を形成し、全結合層が、グローバルの層のセットの最終層となることと、を更に含む。
【0011】
いくつかの実施形態では、本方法が、グローバルモデルに対する全結合層に関した情報を、第1のユーザデバイスおよび第2のユーザデバイスを含む1つまたは複数のユーザデバイスに送信することと、1つまたは複数の係数のセットを1つまたは複数のユーザデバイスから受信することであって、1つまたは複数の係数のセットが、グローバルモデルに対する全結合層に関した情報を使用して、デバイス固有のローカルモデルをトレーニングする1つまたは複数のユーザデバイスの各々からの結果に対応する、1つまたは複数の係数のセットを受信することと、全結合層に対する新しい係数のセットを作成するために、1つまたは複数の係数のセットを平均することによって、グローバルモデルを更新することと、を更に含む。
【0012】
いくつかの実施形態では、第1の層のセットの中の層から第1のフィルタのサブセットを選択することが、層からk個の最良のフィルタを決定することを備え、第1のサブセットが、決定されたk個の最良のフィルタを備える。いくつかの実施形態では、第2の層のセットの中の層から第2のフィルタのサブセットを選択することが、層からk個の最良のフィルタを決定することを備え、第2のサブセットが決定されたk個の最良のフィルタを備える。いくつかの実施形態では、第1の層のセットおよび第2の層のセットに基づいてグローバルの層のセットを形成することが、第1の層のセットおよび第2の層のセットに共通している各層について、対応する第1のフィルタのサブセットおよび対応する第2のフィルタのサブセットを連結することによって、グローバルモデル中の対応する層を生成することと、第1の層のセットに固有である各層について、対応する第1のフィルタのサブセットを使用することによって、グローバルモデル中の対応する層を生成することと、第2の層のセットに固有である各層について、対応する第2のフィルタのサブセットを使用することによって、グローバルモデル中の対応する層を生成することと、を備える。
【0013】
いくつかの実施形態では、本方法が、第1のユーザデバイスおよび第2のユーザデバイスのうちの1つまたは複数に、そのそれぞれのローカルモデルをニューラルネットワークモデルタイプに蒸留するように命令することを更に含む。
【0014】
第2の態様によれば、不均一モデルタイプおよび/またはアーキテクチャを備えた連合学習を利用するためのユーザデバイス上での方法が提供される。本方法は、ローカルモデルを第1の蒸留モデルに蒸留することであって、ローカルモデルが、第1のモデルタイプであり、第1の蒸留モデルが、第1のモデルタイプとは異なる第2のモデルタイプである、ローカルモデルを蒸留することと、第1の蒸留モデルをサーバに送信することと、サーバからグローバルモデルを受信することであって、グローバルモデルが、第2のモデルタイプである、グローバルモデルを受信することと、グローバルモデルに基づいてローカルモデルを更新することと、を含む。
【0015】
いくつかの実施形態では、本方法が、ユーザデバイスで受信される新しいデータに基づいてローカルモデルを更新することと、更新されたローカルモデルを第2の蒸留モデルに蒸留することであって、第2の蒸留モデルが、第2のモデルタイプである、更新されたローカルモデルを蒸留することと、第2の蒸留モデルの重み付き平均および第1の蒸留モデルをサーバに送信することと、を更に含む。いくつかの実施形態では、第2の蒸留モデルの重み付き平均および第1の蒸留モデルが、W1+αW2によって与えられ、ここで、W1は、第1の蒸留モデルを表し、W2は、第2の蒸留モデルを表し、0<α<1である。
【0016】
いくつかの実施形態では、本方法が、ローカルデータに基づいてグローバルモデルの最終層に対する係数を決定することと、係数を中央ノードまたはサーバに送信することと、を更に含む。
【0017】
第3の態様によれば、中央ノードまたはサーバが提供される。中央ノードまたはサーバは、メモリと、メモリに接続されたプロセッサと、を含む。プロセッサは、第1のユーザデバイスから第1のモデルを受信し、第2のユーザデバイスから第2のモデルを受信し、第1のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットを有し、第2のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットとは異なる第2の層のセットを有するように設定され、第1の層のセットの各層について、第1の層のセットの中の層から第1のフィルタのサブセットを選択するように設定され、第2の層のセットの各層について、第2の層のセットの中の層から第2のフィルタのサブセットを選択するように設定され、グローバルの層のセット中の各層について、層が、対応する第1のフィルタのサブセットおよび/または対応する第2のフィルタのサブセットに基づくフィルタを備えるように、第1の層のセットおよび第2の層のセットに基づいてグローバルの層のセットを形成することによってグローバルモデルを構成するように設定され、グローバルモデルに対する全結合層を形成し、全結合層がグローバルの層のセットの最終層となるように設定される。
【0018】
第4の態様によれば、ユーザデバイスが提供される。ユーザデバイスは、メモリと、メモリに接続されたプロセッサと、を含む。プロセッサは、ローカルモデルを第1の蒸留モデルに蒸留し、ローカルモデルが、第1のモデルタイプであり、第1の蒸留モデルが、第1のモデルタイプとは異なる第2のモデルタイプであり、第1の蒸留モデルをサーバに送信し、グローバルモデルをサーバから受信し、グローバルモデルが、第2のモデルタイプであり、グローバルモデルに基づいてローカルモデルを更新するように設定される。
【0019】
第5の態様によれば、命令を備えるコンピュータプログラムであって、命令は、処理回路によって実行されると、処理回路に、第1または第2の態様の実施形態のうちいずれか1つの方法を実施させる、コンピュータプログラムが提供される。
【0020】
第6の態様によれば、第5の態様のコンピュータプログラムをもつキャリアが提供され、キャリアは、電子信号、光信号、無線信号、およびコンピュータ可読記憶媒体のうちの1つである。
【0021】
添付の図面は、本明細書に組み込まれて、本明細書の一部を形成し、様々な実施形態を示す。
【図面の簡単な説明】
【0022】
図1】一実施形態による連合学習システムを示す図である。
図2】一実施形態によるモデルを示す図である。
図3】一実施形態によるメッセージ図を示す図である。
図4】一実施形態による蒸留を示す図である。
図5】一実施形態によるメッセージ図を示す図である。
図6】一実施形態によるフローチャートである。
図7】一実施形態によるフローチャートである。
図8】一実施形態による装置のブロック図である。
図9】一実施形態による装置のブロック図である。
【発明を実施するための形態】
【0023】
図1は、一実施形態による連合学習のシステム100を示す。図示されるように、中央ノードまたはサーバ102は、1人または複数のユーザ104と通信している。任意に、ユーザ104は、様々なネットワークトポロジおよび/またはネットワーク通信システムのうちいずれかを利用して互いに通信し得る。例えば、ユーザ104は、スマートフォン、タブレット、ラップトップコンピュータ、パーソナルコンピュータなどのユーザデバイスを含み得、また、インターネット(例えば、WiFiを介して)または通信ネットワーク(例えば、LTEもしくは5G)などの一般的なネットワークを通じて通信可能に接続し得る。中央ノードまたはサーバ102が示されているが、中央ノードまたはサーバ102の機能は、複数のノードおよび/またはサーバ全体に分散され得、1人または複数のユーザ104間で共有され得る。
【0024】
本明細書の実施形態に記載されるような連合学習は、1つまたは複数のラウンドを含み得、グローバルモデルは各ラウンドで繰り返しトレーニングされる。ユーザ104はグローバルモデルの連合学習に参加するユーザの意思を示すために中央ノードまたはサーバに登録し得、連続的にまたはローリングベースで登録し得る。登録時に(および潜在的にその後の任意の時点で)、中央ノードまたはサーバ102は、ローカルユーザに対してトレーニングするためのモデルタイプおよび/またはモデルアーキテクチャを選択し得る。あるいは、または更に、中央ノードまたはサーバ102は、各ユーザ104が自身のためのモデルタイプおよび/またはモデルアーキテクチャを選択することを可能にし得る。中央ノードまたはサーバ102は、初期モデルをユーザ104に送信し得る。例えば、中央ノードまたはサーバ102は、グローバルモデル(例えば、新たに初期化されたグローバルモデル、または以前のラウンドの連合学習を通じて部分的にトレーニングされたグローバルモデル)をユーザに送信し得る。ユーザ104は、自分自身のデータを用いて自分らの個々のモデルをローカルにトレーニングし得る。次いで、このようなローカルなトレーニングの結果は、中央ノードまたはサーバ102へ折り返し通知され得、中央ノードまたはサーバ102が結果をプールし、グローバルモデルを更新し得る。このプロセスは、反復的に繰り返され得る。更に、グローバルモデルのトレーニングの各ラウンドにおいて、中央ノードまたはサーバ102は、トレーニングラウンドに参加するために、すべての登録されたユーザ104のサブセット(例えば、ランダムなサブセット)を選択し得る。
【0025】
実施形態は、ユーザ104が自分のシステムをトレーニングしながら自分自身のアーキテクチャモデルを選択することができる新しいアーキテクチャフレームワークを提供する。一般に、アーキテクチャフレームワークは、アプリケーションまたはステークホルダコミュニティのドメイン内でアーキテクチャの記述を作成し、解釈し、分析し、使用するための一般的な実行法を確立する。典型的な連合学習システムでは、各ユーザ104が同一のモデルタイプおよびアーキテクチャを有するので、各ユーザ104からのモデル入力を組み合わせてグローバルモデルを形成することは、比較的単純である。しかしながら、ユーザ104が不均一モデルタイプおよびアーキテクチャをもつことを可能にすることで、グローバルモデルを維持する中央ノードまたはサーバ102によるそのような不均一性にどのように対処するのかといったことに関する問題を提示する。
【0026】
いくつかの実施形態では、各個々のユーザ104は、ローカルモデルとして、特定のタイプのニューラルネットワーク(CNNなど)を有し得る。ニューラルネットワークのための特定のモデルアーキテクチャは制約されておらず、異なるユーザ104が異なるモデルアーキテクチャを有し得る。例えば、ニューラルネットワークアーキテクチャは、層へのニューロンの配置および層間の連結パターン、活性化関数、ならびに学習方法のことを指し得る。具体的にはCNNを参照すると、モデルアーキテクチャは、CNNの特定の層、および各層に関連付けられた特定のフィルタのことを指し得る。言い換えれば、いくつかの実施形態では、異なるユーザ104は、それぞれ、ローカルCNNタイプモデルをトレーニングし得るが、ローカルCNNモデルが異なるユーザ104間で異なる層および/またはフィルタを有し得る。典型的な連合学習システムでは、この状況を対処できない。したがって、連合学習の何らかの修正が必要である。具体的には、いくつかの実施形態では、中央ノードまたはサーバ102は、多様なローカルモデルをインテリジェントに組み合わせることによってグローバルモデルを生成する。このプロセスを採用することにより、中央ノードまたはサーバ102は、多様なモデルアーキテクチャ上で連合学習を採用することができる。モデルアーキテクチャを固定モデルタイプに対して制約されないようにすることは、「同一のモデルタイプ、異なるモデルアーキテクチャ」アプローチと呼ばれ得る。
【0027】
いくつかの実施形態では、各個々のユーザ104は、ローカルモデルとして、ユーザ104が選択する任意のタイプのモデルおよびそのモデルタイプの任意のアーキテクチャを有し得る。すなわち、モデルタイプは、ニューラルネットワークに制約されないが、ランダムフォレストタイプモデル、決定木などを含むこともできる。ユーザ104は、特定のモデルに適した方法でローカルモデルをトレーニングし得る。連合学習アプローチの一部として、モデル更新を中央ノードまたはサーバ102と共有する前に、ユーザ104は、ローカルモデルを共通モデルタイプおよびいくつかの実施形態では共通アーキテクチャに変換する。この変換プロセスは、いくつかの実施形態について本明細書に開示されるように、モデル蒸留の形態をとり得る。変換が共通モデルタイプおよびモデルアーキテクチャへの変換であるならば、その場合、中央ノードまたはサーバ102は、基本的には、典型的な連合学習を適用し得る。変換が共通モデルタイプ(ニューラルネットワークタイプモデルなど)への変換であるが、共通モデルアーキテクチャへの変換ではないならば、その場合、中央ノードまたはサーバ102は、いくつかの実施形態について記載される「同一のモデルタイプ、相異モデルアーキテクチャ」のアプローチを採用し得る。モデルタイプとモデルアーキテクチャの両方が制約されないようにすることは、「相異モデルタイプ、相異モデルアーキテクチャ」アプローチと呼ばれ得る。
【0028】
「同一のモデルタイプ、相異モデルアーキテクチャ」
【0029】
本明細書で説明するように、異なるユーザ104は、それらの間に相異異なるモデルアーキテクチャを有するが、共通モデルタイプを共有するローカルモデルを有し得る。特に、本明細書において、共有モデルタイプはニューラルネットワークモデルタイプであると仮定する。この例は、CNNモデルタイプである。この場合、目的は異なるモデル(例えば、異なるCNNモデル)を組み合わせて、グローバルモデルをインテリジェントに形成することである。異なるローカルCNNモデルは、異なるフィルタサイズおよび異なる層数を有し得る。更に一般的には(例えば、他のタイプのニューラルネットワークアーキテクチャが使用されるならば)、その場合、ユーザが異なる層を有するか、または異なるフィルタを備える層を有する代わりに(CNNで論じられるように)、異なる層は層のニューロン構造の考慮すべき事項を含み得、例えば、異なる層は、異なる重み付けを有するニューロンを有し得る。
【0030】
図2は、一実施形態によるモデルを示す。図示されるように、ローカルモデル202、204、および206は、各々がCNNモデルタイプであるが、異なるアーキテクチャを有する。例えば、CNNモデル202は、フィルタ211のセットを有する第1の層210を含む。CNNモデル204は、フィルタ221のセットを有する第1の層220、およびフィルタ223のセットを有する第2の層222を含む。CNNモデル206は、フィルタ231のセットを有する第1の層230、フィルタ233のセットを有する第2の層232、およびフィルタ235のセットを有する第3の層234を含む。異なるローカルモデル202、204、および206を組み合わせて、グローバルモデル208を形成し得る。グローバルCNNモデル208は、フィルタ241のセットを有する第1の層240、フィルタ243のセットを有する第2の層242、およびフィルタ245のセットを有する第3の層244を含む。
【0031】
いくつかの実施形態では、モデルアーキテクチャのいくつかの態様は、ユーザ104間で共有され得る(例えば、同じ第1の層が使用されるか、または共通のフィルタタイプが使用される)。また、2人以上のユーザ104が、全体として同じアーキテクチャを採用し得ることも可能である。しかし、一般に、異なるユーザ104は、ローカルパフォーマンスを最適化するために異なるモデルアーキテクチャを選択し得ることが期待される。したがって、モデル202、204、206の各々は、第1の層L1を有するが、モデル202、204、206の各々の第1の層L1は、例えば、フィルタ211、221、231の異なるセットを有することによって、異なって成り立ち得る。
【0032】
ローカルモデル202、204、および206の各々を採用するユーザ104は、例えば、ローカルデータセット(例えば、D1、D2、D3)を使用して、ユーザらの個々のモデルをローカルにトレーニングし得る。通常、データセットが、例えば、分類器をトレーニングするために、類似のタイプのデータをもつことになり、クラスごとの代表がデータセット間で異なり得るが、各データセットは同じクラスを含み得る。
【0033】
次いで、グローバルモデルは、異なるローカルモデルに基づいて構成(または更新)される。中央ノードまたはサーバ102は、グローバルモデルの構成に関連付けられる機能の一部またはすべての役割を果たし得る。個々のユーザ104(例えば、ユーザデバイス)または他のエンティティはまた、いくつかのステップを実施し、それらのステップの結果を中央ノードまたはサーバ102に通知し得る。
【0034】
一般に、グローバルモデルは、ローカルモデルの各々の各層中のフィルタを連結することによって構成され得る。いくつかの実施形態では、各層のk個の最良のフィルタを選択することなどによって、各層のフィルタのサブセットを代わりに使用し得る。kの値(例えば、k=2)は、1つのローカルモデルから別のローカルモデルへと変化し得、かつローカルモデル内の1つの層から別の層へと変化し得る。いくつかの実施形態では、中央ノードまたはサーバ102は、各ユーザ104が使用すべきkの値の信号を送り得る。いくつかの実施形態では、2個の最良のフィルタ(k=2)は各ローカルモデルの各層から選択され得、一方で、他の実施形態では、異なるkの値(例えば、k=1またはk>2)が選択され得る。いくつかの実施形態では、kは層内のフィルタの総数を、相対量だけ減少させるように選択され得る(例えば、フィルタの上位3分の1を選択する)。最良のフィルタの選択は、最良に機能するフィルタを決定するために任意の適切な技術を使用し得る。例えば、出願番号PCT/IN2019/050455を有する「深層学習モデルの理解」と題するPCT出願には、使用され得るいくつかのそのような技術が記載される。このようにフィルタのサブセットを選択することは、精度を高く保つと共に、計算負荷を低減するのに役立ち得る。いくつかの実施形態では、中央ノードまたはサーバ102が当該選択を実施し得、いくつかの実施形態では、ユーザ104または他のエンティティが当該選択を実施し、その結果を中央ノードまたはサーバ102に通知し得る。
【0035】
このプロセスを説明するために、グローバルモデル208を使用する。ローカルモデル202、204、および206の各々は、第1の層L1を含む。したがって、グローバルモデル208は、第1の層L1も含み、グローバルモデル208のL1のフィルタ241は、互いに連結されるローカルモデル202、204、および206の各々のフィルタ211、221、231(またはフィルタのサブセット)を含む。ローカルモデル204および206のみが、第2の層L2を含む。したがって、グローバルモデル208は、第2の層L2も含み、グローバルモデル208のL2のフィルタ242は、互いに連結されるローカルモデル204および206の各々のフィルタ222、232(または、フィルタのサブセット)を含む。ローカルモデル206のみが、第3の層L3を含む。したがって、グローバルモデル208は、第3の層L3も含み、グローバルモデル208のL3のフィルタ245は、ローカルモデル206のフィルタ235(または、フィルタのサブセット)を含む。
【0036】
言い換えれば、N(M)がローカルモデルMの層数を表す場合、グローバルモデルはここでは少なくともmax(N(M))層を有するように構成され、ここで、max(最大)演算子はグローバルモデルが構成される(または更新される)全ローカルモデルMにわたる。グローバルモデルの所与の層Lについて、層Lはフィルタ
を含み、インデックスiはj番目の層を有する異なるローカルモデルに及ぶものであり、Fは特定のローカルモデルMのj番目の層のフィルタ(または、フィルタのサブセット)のことを指す。
は連結、
はセットI={i}を表す。
【0037】
ローカルモデルを連結した後、最終層としてモデルに高密度層(例えば、全結合層)を追加することによって、グローバルモデルを更に構成し得る。
【0038】
それによって、グローバルモデルが構成(または更新)されると、モデルをトレーニングするための方程式が生成され得る。これらの方程式は、例えば、他のローカルフィルタを同じに保つことによって、最後の高密度層をそれぞれトレーニングし得る異なるユーザ104に送信され得る。次いで、最後の高密度層をローカルにトレーニングしたユーザ104は、自分のローカル高密度層のモデル係数を中央ノードまたはサーバ102に通知し得る。最後に、グローバルモデルはグローバルモデルを形成するために、このような係数を通知した異なるユーザ104からのモデル係数を組み合わせ得る。例えば、モデル係数を組み合わせることは、係数を平均化することを含み得、各ユーザ104がトレーニングしたローカルデータの量によって重み付けされるような重み付け平均を使用することによって係数を平均化することを含む。
【0039】
実施形態では、このようにして構成されるグローバルモデルはロバストであり、異なるローカルモデルから学習される特徴をもつ。このようなグローバルモデルは、例えば、分類器として良好に機能し得る。この実施形態の利点はまた、グローバルモデルが(複数ユーザ104からの入力に基づいて更新されることに加えて)単一のユーザ104のみに基づいて更新され得ることである。このシングルユーザの更新の場合には、他のすべてを固定することで、最後の層のみの重み付けを調整し得る。
【0040】
図3は、一実施形態によるメッセージ図を示す。図示されるように、ユーザ104(例えば、第1のユーザ302および第2のユーザ304)は、中央ノードまたはサーバ102と協働してグローバルモデルを更新する。第1のユーザ302および第2のユーザ304は、310および314で自分らそれぞれのローカルモデルを各々トレーニングし、312および316で自分らのローカルモデルを中央ノードまたはサーバ102に各々通知する。モデルのトレーニングおよび通知は、同時であり得るか、またはある程度ずらされ得る。中央ノードまたはサーバ102は、先へ進む前に、それが通知を予期している各ユーザ104からのモデル通知を受信するまで待ち得るか、もしくは、それがこのようなモデル通知を受信する回数を閾値まで待ち得るか、または、それが一定期間、もしくは任意の組合せを待ち得る。モデル通知を受信することで、中央ノードまたはサーバ102はグローバルモデルを構成または更新し得(例えば、上記のように、フィルタまたは異なるローカルモデルのフィルタのサブセットを各層で連結し、最終層として高密度全結合層を追加することなどによって)、グローバルモデルの高密度層をトレーニングするために必要な方程式を形成し得る。次いで、中央ノードまたはサーバ102は、320および322において、高密度層の方程式を第1のユーザ302および第2のユーザ304に通知する。順次、第1のユーザ302および第2のユーザ304は、324および328において、自分らのローカルモデルを使用して高密度層をトレーニングし、326および330においてトレーニングした高密度層の方程式に対する係数を用いて中央ノードまたはサーバ102に折り返し通知する。次いで、この情報により、中央ノードまたはサーバ102は、ローカルユーザ104からの係数に基づいて高密度層を更新することによって、グローバルモデルを更新し得る。
【0041】
「相異モデルタイプ、相異モデルアーキテクチャ」
【0042】
本明細書で説明されるように、異なるユーザは、異なるモデルタイプおよび異なるモデルアーキテクチャを有するローカルモデルを有し得る。このアプローチで対処されるべき問題は、異なるローカルモデル間のモデルタイプおよびモデルアーキテクチャの両方の制約されない性質が、異なるローカルモデルをマージすることを困難にすることであり、1つのモデルタイプに適用されるトレーニングが、別のモデルタイプに適用されるトレーニングに何の意味も持ち得ないように、利用可能なモデルタイプ間に有意差が存在する可能性があるためである。例えば、ユーザは、ランダムフォレストタイプモデル、決定木等のような異なるモデルに適合し得る。
【0043】
この問題に対処するために、実施形態はローカルモデルを共通モデルタイプに変換し、いくつかの実施形態では、共通モデルアーキテクチャにも変換する。モデルを変換する1つの方法は、モデルの蒸留アプローチを使用することである。モデルの蒸留は、任意のモデル(例えば、多くのデータをトレーニングした複雑なモデル)をより小さくて単純なモデルに変換し得る。このアイデアは、元の出力ではなく、複雑なモデルの出力に基づいて、より単純なモデルをトレーニングすることである。これは、複雑なモデル上で学習された特徴を、より単純なモデルに転換することができる。このようにして、特徴を保つことによって、任意の複雑なモデルをより単純なモデルに転換することができる。
【0044】
図4は、一実施形態による蒸留を示す。蒸留には、ローカルモデル402(「教師」モデルとも呼ばれる)、および蒸留モデル404(「生徒」モデルとも呼ばれる)の2つのモデルがある。通常、教師モデルは複雑であり、GPUまたは類似の処理リソースを備える別のデバイスを使用してトレーニングされるが、生徒モデルはそれほど強力でない計算リソースを有するデバイス上でトレーニングされる。これは重要ではないが、「生徒」モデルは元の「教師」モデルよりもトレーニングが容易であるため、「生徒」モデルのトレーニングに使用する処理リソースを少なくすることが可能である。「教師」モデルの知識を保つために、「生徒」モデルは「教師」モデルの予測確率に基づいてトレーニングされる。ローカルモデル402および蒸留モデル404は、異なるモデルタイプおよび/またはモデルアーキテクチャであり得る。
【0045】
いくつかの実施形態では、潜在的に異なるモデルタイプおよびモデルアーキテクチャの自分自身の個々のモデルを有する1人または複数の個々のユーザ104が、自分のローカルモデルを、指定されたモデルタイプおよびモデルアーキテクチャの蒸留モデルに(例えば、蒸留によって)変換し得る。例えば、中央ノードまたはサーバ102は、ユーザ104がどんなモデルタイプおよびモデルアーキテクチャにモデルを蒸留すべきかについて各ユーザに指示し得る。モデルタイプは各ユーザ104に共通であるが、モデルアーキテクチャはいくつかの実施形態では異なり得る。
【0046】
次いで、蒸留されたローカルモデルを中央ノードまたはサーバ102に送信し、そこでマージしてグローバルモデルを構成(または更新)し得る。次いで、中央ノードまたはサーバ102は、グローバルモデルを1人または複数のユーザ104に送信し得る。これに応答して、更新されたグローバルモデルを受信するユーザ104は、グローバルモデルに基づいて自分自身の個々のローカルモデルを更新し得る。
【0047】
いくつかの実施形態では、中央ノードまたはサーバ102に送信される蒸留モデルは、前の蒸留モデルに基づき得る。ユーザ104が(例えば、連合学習の最後のラウンドにおいて)ユーザ104のローカルモデルの蒸留を表す第1の蒸留モデルをすでに送信したと仮定する。その場合、ユーザ104はユーザ104で受信された新しいデータに基づいてローカルモデルを更新し得、更新されたローカルモデルに基づいて第2の蒸留モデルを蒸留し得る。次いで、ユーザ104は第1および第2の蒸留モデルの重み付き平均(例えば、W1+αW2、ここで、W1は第1の蒸留モデルを表し、W2は第2の蒸留モデルを表し、0<α<1である)をとり、第1および第2の蒸留モデルの重み付き平均を中央ノードまたはサーバ102に送信し得る。次いで、中央ノードまたはサーバ102は、重み付き平均を使用してグローバルモデルを更新し得る。
【0048】
図5は、一実施形態によるメッセージ図を示す。図示されるように、ユーザ104(例えば、第1のユーザ302および第2のユーザ304)は、中央ノードまたはサーバ102と協働してグローバルモデルを更新する。第1のユーザ302および第2のユーザ304は、510および514で自分のそれぞれのローカルモデルを各々蒸留し、512および516で自分の蒸留モデルを中央ノードまたはサーバ102に各々通知する。モデルのトレーニングおよび通知は、同時であり得るか、またはある程度ずらされ得る。中央ノードまたはサーバ102は、先へ進む前に、それが通知を予期している各ユーザ104からのモデル通知を受信するまで待ち得るか、もしくは、それがこのようなモデル通知を受信する回数を閾値まで待ち得るか、または、それが一定期間、もしくは任意の組合せを待ち得る。モデル通知を受信することで、中央ノードまたはサーバ102は(例えば、開示される実施形態で記載されるように)グローバルモデル318を構成または更新し得る。次いで、中央ノードまたはサーバ102は、520および522において、グローバルモデルを第1のユーザ302および第2のユーザ304に通知する。順次、第1のユーザ302および第2のユーザ304は、524および526において、(例えば、開示される実施形態で記載されるように)グローバルモデルに基づいて、自分らのそれぞれのローカルモデルを更新する。
【0049】
同じCNNモデルタイプについて異なるモデルアーキテクチャを有する各ユーザ102の例に戻ると、提案された実施形態に関連する数学的公式が提供される。所与のCNNについて、各フィルタの出力は、
のように表し得、数1はN個のフィルタに対して有効であり、ここで入力データ(in[k])のサイズはMで、フィルタ(c)のサイズはPで、1の刻み幅をもつ。即ち、in[k]はフィルタの入力(サイズM)のk番目の要素を表し、c[j]はフィルタ(サイズP)のj番目の要素である。また、説明のために、このCNNモデルでは1つの層のみが考慮される。上記の表示は、入力データとフィルタ係数との間に点乗積を保証する。この表現から、フィルタ係数cを、バックプロパゲーションを使用することによって学習することができる。通常、これらのフィルタの中から、少数(例えば、2つまたは3つ)のフィルタのみが良好に機能する。それゆえに、上の式は、良好に機能しているフィルタのサブセットN(N≦N)のみに縮小することができる。これらのフィルタ(即ち、他のフィルタと比較して良好に機能するフィルタ)は、上記のように、様々な方法で取得され得る。
【0050】
本明細書で論じるように、次いで、各層について異なるユーザのモデルの各々のフィルタを取り入れ、それらを連結するグローバルモデルを構成することができる。グローバルモデルは、最終層として、全結合の高密度層も含む。L個のノード(またはニューロン)を有する全結合層に対して、層の数学的公式は、
のように表し得、ここで、cは、最良に機能するフィルタのサブセットからのフィルタのうち1つを表し、Wは最終層の重み付けのセットであり、bはバイアスであり、g(.)は最終層の活性化関数である。全結合層への入力は、層に進む前に平坦化されることになる。この方程式は、標準のバックプロパゲーション技術を使用して重み付けを計算するために、ユーザの各々に送信される。異なるユーザによって学習された重み付けが、W、W、......、Wであると仮定すると、ここで、Uは連合学習アプローチにおけるユーザの数であり、グローバルモデルの最終層の重み付けは、数3のように平均することによって決定され得る。
【実施例
【0051】
以下の実施例は、実施形態のパフォーマンスを評価するために準備された。3人の通信オペレータに対応するアラームデータセットを収集した。3人の通信オペレータは、3人の異なったユーザに対応する。アラームデータセットは、同じ特徴を有し、異なるパターンを有する。本目的は、特徴に基づいてアラームを真のアラームと偽のアラームに分類することである。
【0052】
ユーザは、自分自身のモデルを選択し得る。この実施例では、各ユーザは、CNNモデルタイプに対して特定のアーキテクチャを選択し得る。即ち、各ユーザは、他のユーザと比較して、層の各々において異なる層数および異なるフィルタを選択し得る。
【0053】
この実施例に関して、オペレータ1(第1のユーザ)は、第1の層に32個のフィルタを備え、第2の層に64個のフィルタを備え、最後の層に32個のフィルタを備えた3層CNNに適合するように選択する。同様に、オペレータ2(第2のユーザ)は、第1の層に32個の層を備え、第2の層に16個の層を備えた2層CNNに適合するように選択する。最後に、オペレータ3(第3のユーザ)は、第1の4個の層の各々に32個のフィルタを備え、第5の層に8個のフィルタを備えた5層CNNに適合するように選択する。これらのモデルは、各オペレータに利用可能なデータの性質に基づいて選択され、モデルは連合学習の現ラウンドに基づいて選択され得る。
【0054】
グローバルモデルは、以下のように構成される。グローバルモデルにおける層数は、異なるローカルモデルが有するように最大の層数を含み、ここでは5層である。各ローカルモデルの各層における上位2個のフィルタが特定され、グローバルモデルは、各ローカルモデルの各層からの2個のフィルタによって構成される。具体的には、グローバルモデルの第1の層は、(各ローカルモデルの第1の層からの)6個のフィルタを含み、第2の層は、(各ローカルモデルの第2の層からの)6個のフィルタを含み、第3の層は、第1のモデルからの2つのフィルタおよび第3のモデルからの2つのフィルタを含み、第4の層は、第3のモデルの第4の層からの2つのフィルタを含み、第5の層は、第3のモデルの第5の層からの2つのフィルタを含む。次に、高密度の全結合層が、グローバルモデルの最終層として構成される。高密度層は、10個のノード(ニューロン)を有する。一旦構築されると、グローバルモデルは、最後の層をトレーニングするためにユーザに送信され、各ローカルモデルのトレーニングの結果(係数)が収集される。次いで、これらの係数を平均して、グローバルモデルの最後の層を取得する。
【0055】
これを通信オペレータの3つのデータセットに適用することで、ローカルモデルに対して取得される精度は82%、88%、および75%である。一旦グローバルモデルが構成されると、ローカルモデルで取得される精度は86%、94%、および80%に改善される。本実施例から分かるように、開示された実施形態の連合学習モデルは良好であり、ローカルモデルと比較した場合、結果としてより良好なモデルになることができる。
【0056】
図6は、一実施形態によるフローチャートを示す。プロセス600は、中央ノードまたはサーバによって実施される方法である。プロセス600は、ステップs602から開始し得る。
【0057】
ステップs602は、第1のユーザデバイスから第1のモデルを受信し、第2のユーザデバイスから第2のモデルを受信することを含み、第1のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットを有し、第2のモデルが、ニューラルネットワークモデルタイプであり、かつ第1の層のセットとは異なる第2の層のセットを有する。
【0058】
ステップs604は、第1の層のセットの各層について、第1の層のセットの中の層から第1のフィルタのサブセットを選択することを備える。
【0059】
ステップs606は、第2の層のセットの各層について、第2の層のセットの中の層から第2のフィルタのサブセットを選択することを備える。
【0060】
ステップs608は、グローバルの層のセット中の各層について、層が、対応する第1のフィルタのサブセットおよび/または対応する第2のフィルタのサブセットに基づくフィルタを備えるように、第1の層のセットおよび第2の層のセットに基づいてグローバルの層のセットを形成することによってグローバルモデルを構成することを備える。
【0061】
ステップs610は、グローバルモデルに対する全結合層を形成することを備え、全結合層は、グローバルの層のセットの最終層となる。
【0062】
いくつかの実施形態では、本方法が、グローバルモデルに対する全結合層に関した情報を第1のユーザデバイスおよび第2のユーザデバイスを含む1つまたは複数のユーザデバイスに送信することと、1つまたは複数の係数のセットを1つまたは複数のユーザデバイスから受信することであって、1つまたは複数の係数のセットがグローバルモデルに対する全結合層に関した情報を使用して、デバイス固有のローカルモデルをトレーニングする1つまたは複数のユーザデバイスの各々からの結果に対応する、1つまたは複数の係数のセットを受信することと、全結合層に対する新しい係数のセットを作成するために、1つまたは複数の係数のセットを平均することによって、グローバルモデルを更新することと、を更に含み得る。
【0063】
いくつかの実施形態では、第1の層のセットの中の層から第1のフィルタのサブセットを選択することが、層からk個の最良のフィルタを決定することを含み、第1のサブセットが、決定されたk個の最良のフィルタを含む。いくつかの実施形態では、第2の層のセットの中の層から第2のフィルタのサブセットを選択することが、層からk個の最良のフィルタを決定することを含み、第2のサブセットが決定されたk個の最良のフィルタを含む。いくつかの実施形態では、第1の層のセットおよび第2の層のセットに基づいてグローバルの層のセットを形成することが、第1の層のセットおよび第2の層のセットに共通している各層について、対応する第1のフィルタのサブセットおよび対応する第2のフィルタのサブセットを連結することによってグローバルモデル中の対応する層を生成することと、第1の層のセットに固有である各層について、対応する第1のフィルタのサブセットを使用することによって、グローバルモデル中の対応する層を生成することと、第2の層のセットに固有である各層について、対応する第2のフィルタのサブセットを使用することによって、グローバルモデル中の対応する層を生成することと、を備える。
【0064】
いくつかの実施形態では、本方法が、第1のユーザデバイスおよび第2のユーザデバイスの1つまたは複数に、そのそれぞれのローカルモデルをニューラルネットワークモデルタイプに蒸留するように命令することを更に含み得る。
【0065】
図7は、一実施形態によるフローチャートを示す。プロセス700は、ユーザ104(例えば、ユーザデバイス)によって実施される方法である。プロセス700は、ステップs702から開始し得る。
【0066】
ステップs702は、ローカルモデルを第1の蒸留モデルに蒸留することを備え、ローカルモデルが第1のモデルタイプであり、第1の蒸留モデルが第1のモデルタイプとは異なる第2のモデルタイプである。
【0067】
ステップs704は、第1の蒸留モデルをサーバに送信することを備える。
【0068】
ステップs706は、サーバからグローバルモデルを受信することを備え、グローバルモデルが第2のモデルタイプである。
【0069】
ステップs708は、グローバルモデルに基づいてローカルモデルを更新することを備える。
【0070】
いくつかの実施形態では、本方法が、ユーザデバイスで受信される新しいデータに基づいてローカルモデルを更新することと、更新されたローカルモデルを第2の蒸留モデルに蒸留することであって、第2の蒸留モデルが第2のモデルタイプである、更新されたローカルモデルを蒸留することと、第2の蒸留モデルの重み付き平均および第1の蒸留モデルをサーバに送信することと、を更に含み得る。いくつかの実施形態では、第2の蒸留モデルの重み付き平均および第1の蒸留モデルがW1+αW2によって与えられ、ここで、W1は第1の蒸留モデルを表し、W2は第2の蒸留モデルを表し、0<α<1である。
【0071】
いくつかの実施形態では、本方法が、ローカルデータに基づいてグローバルモデルの最終層のための係数を決定することと、係数を中央ノードまたはサーバに送信することと、を更に含み得る。
【0072】
図8は、いくつかの実施形態による、装置800(例えば、ユーザ102および/または中央ノードもしくはサーバ104)のブロック図である。図8に示すように、装置は、1つまたは複数のプロセッサ(P:processor)855(例えば、汎用マイクロプロセッサおよび/または特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)などのような1つもしくは複数の他のプロセッサ)を含み得る処理回路(PC:processing circuitry)802と、ネットワークインタフェース848が接続されるネットワーク810(例えば、インターネットプロトコル(IP:Internet Protocol)ネットワーク)に接続された他のノードにデータを送受信することを当該装置が可能にする送信機(Tx:transmitter)845および受信機(Rx:receiver)847を備えるネットワークインタフェース848と、1つもしくは複数の不揮発性記憶デバイスおよび/または1つもしくは複数の揮発性記憶デバイスを含み得るローカル記憶ユニット(別名「データ記憶システム」)808と、を備え得る。PC802がプログラマブルプロセッサを含む実施形態では、コンピュータプログラム製品(CPP:computer program product)841を提供し得る。CPP841は、コンピュータ可読命令(CRI:computer readable instruction)844を備えるコンピュータプログラム(CP:computer program)843を保存するコンピュータ可読媒体(CRM:computer readable medium)842を含む。CRM842は、磁気媒体(例えば、ハードディスク)、光媒体、メモリデバイス(例えば、ランダムアクセスメモリ、フラッシュメモリ)などのような非一時的なコンピュータ可読媒体であり得る。いくつかの実施形態では、コンピュータプログラム843のCRI844は、PC802によって実行されるときに、CRIが装置に本明細書に記載されるステップ(例えば、フローチャートを参照して本明細書に記載されるステップ)を実施させるように設定される。他の実施形態では、装置は、コードを必要とせずに、本明細書に記載されるステップを実施するように設定され得る。即ち、例えば、PC802は、単に1つまたは複数のASICのみから成り得る。それ故に、本明細書に記載される実施形態の特徴は、ハードウェアおよび/またはソフトウェアに実装され得る。
【0073】
図9は、いくつかの他の実施形態による装置800の概略ブロック図である。装置800は、1つまたは複数のモジュール900を含み、各モジュールはソフトウェアに実装される。モジュール900は、本明細書に記載される装置800の機能(例えば、図6図7に関する本明細書のステップ)を提供する。
【0074】
本開示の様々な実施形態が本明細書に記載されているが、それらは例としてのみ提示されているのであって、限定されていないことを理解されたい。このように、本開示の広さおよび範囲は、上記の例示的な実施形態のいずれによっても限定されるべきではない。その上、本明細書で別段の指示がない限り、または文脈によって明らかに否定されない限り、その考えられるすべてのバリエーションにおける上記要素のいかなる組合せも、本開示によって包含される。
【0075】
加えて、上記に記載され、図面に示されるプロセスは、一連のステップとして示されているが、これは単に例示のために行われたものである。故に、いくつかのステップが追加され得、いくつかのステップが省略され得、ステップの順序が再編成され得、いくつかのステップが並行に実施され得ることが意図される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
【国際調査報告】