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

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

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特許7412489連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム
<>
  • 特許-連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム 図1
  • 特許-連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム 図2
  • 特許-連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム 図3
  • 特許-連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム 図4
  • 特許-連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム 図5
  • 特許-連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-28
(45)【発行日】2024-01-12
(54)【発明の名称】連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240104BHJP
   G06N 20/00 20190101ALI20240104BHJP
【FI】
G06F9/50 150D
G06F9/50 150A
G06N20/00
【請求項の数】 17
(21)【出願番号】P 2022119635
(22)【出願日】2022-07-27
(65)【公開番号】P2022136234
(43)【公開日】2022-09-15
【審査請求日】2022-07-27
(31)【優先権主張番号】202111104028.6
(32)【優先日】2021-09-18
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】劉 吉
(72)【発明者】
【氏名】馬 北 辰
(72)【発明者】
【氏名】周 晨 ▲ディー▼
(72)【発明者】
【氏名】賈 俊 ▲チョン▼
(72)【発明者】
【氏名】竇 徳 景
(72)【発明者】
【氏名】季 石 磊
(72)【発明者】
【氏名】廖 源
【審査官】田中 幸雄
(56)【参考文献】
【文献】中国特許出願公開第113361721(CN,A)
【文献】米国特許出願公開第2021/0042628(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
プロセッサによって実行される連合学習方法であって、
現在学習周期に対して、複数の候補機器のリソース情報に基づいて、前記複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定することと、
前記各タスクに対する対象機器に前記各タスクに対するグローバルモデルを送信することで、前記各タスクに対する対象機器が前記各タスクに対するグローバルモデルをトレーニングすることと、
前記各タスクのすべての対象機器に対して送信されたトレーニング後モデルを受信したことに応答して、前記トレーニング後モデルに基づいて前記各タスクに対するグローバルモデルを更新して、前記現在学習周期を完了することと、を含み、
前記複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定することは、
前記複数の候補機器のリソース情報に基づいて、現在学習周期の時間コストを最小にさせる、それぞれ少なくとも1つの学習タスクに対する複数の対象機器グループを含む対象機器セットを候補スケジューリング情報として特定することと、
前記候補スケジューリング情報と複数の所定スケジューリング情報とを初期スケジューリング情報セットとして、所定ループ停止条件を満たすまで、以下の操作をループして実行することとを含み、
前記操作は、
現在スケジューリング情報セットにおける対象スケジューリング情報を調整して、n個(nは正の整数である)の調整後スケジューリング情報を得ることと、
前記n個の調整後スケジューリング情報及び前記現在スケジューリング情報セットから前記現在学習周期の時間コストを高くするn個のスケジューリング情報を除去して、更新後スケジューリング情報セットを得ることと、を含む。
連合学習方法。
【請求項2】
現在学習周期の時間コストを最小にさせる対象機器セットを特定することは、
前記複数の候補機器のリソース情報に基づいて、前記複数の候補機器のそれぞれが前記各タスクを実行する時間長情報を特定することと、
前記時間長情報に基づいて、現在学習周期の時間コストを最小にさせる対象機器セットを特定することと、を含む、
請求項1に記載の方法。
【請求項3】
現在学習周期の時間コストを最小にさせる対象機器セットを特定することは、
前記各候補機器が前記現在学習周期の前の学習周期で前記各タスクを実行する回数に基づいて、前記複数の候補機器の、前記各タスクに対するスケジューリングバランス分散を特定することと、
前記スケジューリングバランス分散と前記時間長情報とに基づいて、現在学習周期の時間コストを最小にさせる対象機器セットを特定することと、を含む、
請求項2に記載の方法。
【請求項4】
前記複数の候補機器のそれぞれが前記各タスクを実行する時間長情報を特定することは、
前記各候補機器のリソース情報に基づいて、前記各候補機器の計算能力を示す、前記各候補機器の計算指標を特定することと、
前記計算指標と前記各候補機器に記憶された前記各タスクに対するトレーニングデータのデータ量とに基づいて、所定変位指数分布を用いて前記各候補機器が前記各タスクを実行する時間長情報を特定することと、を含む、
請求項2に記載の方法。
【請求項5】
現在スケジューリング情報セットにおける対象スケジューリング情報を調整することは、
前記現在スケジューリング情報セットにおける各スケジューリング情報の、前記現在学習周期に対する時間コストに基づいて、前記現在スケジューリング情報セットにおける少なくとも2つのスケジューリング情報を対象スケジューリング情報として特定することと、
クロスオーバーにて前記対象スケジューリング情報のうちのいずれか2つのスケジューリング情報を調整して、調整後スケジューリング情報を得ることと、を含む、
請求項1に記載の方法。
【請求項6】
クロスオーバーにて前記対象スケジューリング情報のうちのいずれか2つのスケジューリング情報を調整することは、
前記いずれか2つのスケジューリング情報中の候補機器の差分セットを特定して、複数の対象機器を得ることと、
前記複数の対象機器に基づいて、前記クロスオーバーにて前記対象スケジューリング情報のうちのいずれか2つのスケジューリング情報を調整することと、を含む、
請求項5に記載の方法。
【請求項7】
前記各タスクを実行する対象機器のリソース情報に基づいて、前記各タスクに対する対象機器が前記各タスクに対するグローバルモデルをトレーニングする目標回数を特定することと、
前記各タスクに対する対象機器に前記目標回数を送信することで、前記各タスクに対する対象機器が前記目標回数に基づいて前記各タスクに対するグローバルモデルをトレーニングするようにすることと、をさらに含む、
請求項1に記載の方法。
【請求項8】
現在学習周期に対して、複数の候補機器のリソース情報に基づいて、前記複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定するための第1の特定モジュールと、
前記各タスクに対する対象機器に前記各タスクに対するグローバルモデルを送信することで、前記各タスクに対する対象機器が前記各タスクに対するグローバルモデルをトレーニングするための第1の送信モジュールと、
前記各タスクのすべての対象機器に対して送信されたトレーニング後モデルを受信したことに応答して、前記トレーニング後モデルに基づいて前記各タスクに対するグローバルモデルを更新して、前記現在学習周期を完了するための更新モジュールと、を含み、
前記第1の特定モジュールは、
前記複数の候補機器のリソース情報に基づいて、現在学習周期の時間コストを最小にさせる、それぞれ少なくとも1つの学習タスクに対する複数の対象機器グループを含む対象機器セットを候補スケジューリング情報として特定するための第1の特定サブモジュールと、
前記候補スケジューリング情報と複数の所定スケジューリング情報とを初期スケジューリング情報セットとし、所定ループ停止条件を満たすまで、以下の手段によってループして操作を実行するためのループサブモジュールと、を含み、
上記手段は、
現在スケジューリング情報セットにおける対象スケジューリング情報を調整して、n個(nは正の整数である)の調整後スケジューリング情報を得るための調整手段と、
前記n個の調整後スケジューリング情報及び前記現在スケジューリング情報セットから前記現在学習周期の時間コストを高くするn個のスケジューリング情報を除去して、更新後スケジューリング情報セットを得るための除去手段と、を含む、
連合学習装置
【請求項9】
前記第1の特定サブモジュールは、
前記複数の候補機器のリソース情報に基づいて、前記複数の候補機器のそれぞれが前記各タスクを実行する時間長情報を特定するための第1の特定手段と、
前記時間長情報に基づいて、現在学習周期の時間コストを最小にさせる対象機器セットを特定するための第2の特定手段と、を含む、
請求項8に記載の装置。
【請求項10】
前記第2の特定手段は、
前記各候補機器が前記現在学習周期の前の学習周期で前記各タスクを実行する回数に基づいて、前記複数の候補機器の、前記各タスクに対するスケジューリングバランス分散を特定するための第1の特定サブ手段と、
前記スケジューリングバランス分散と前記時間長情報とに基づいて、現在学習周期の時間コストを最小にさせる対象機器セットを特定するための第2の特定サブ手段と、を含む、
請求項9に記載の装置。
【請求項11】
前記第1の特定手段は、
前記各候補機器のリソース情報に基づいて、前記各候補機器の計算能力を示す、前記各候補機器の計算指標を特定するための第3の特定サブ手段と、
前記計算指標と前記各候補機器に記憶された前記各タスクに対するトレーニングデータのデータ量とに基づいて、所定変位指数分布を用いて前記各候補機器が前記各タスクを実行する時間長情報を特定するための実行サブ手段と、を含む、
請求項9に記載の装置。
【請求項12】
前記調整手段は、
前記現在スケジューリング情報セットにおける各スケジューリング情報の、前記現在学習周期に対する時間コストに基づいて、前記現在スケジューリング情報セットにおける少なくとも2つのスケジューリング情報を対象スケジューリング情報として特定するための第4の特定サブ手段と、
クロスオーバーにて前記対象スケジューリング情報のうちのいずれか2つのスケジューリング情報を調整して、調整後スケジューリング情報を得るための第1の調整サブ手段と、を含む、
請求項8に記載の装置。
【請求項13】
前記第1の調整サブ手段は、
前記いずれか2つのスケジューリング情報中の候補機器の差分セットを特定して、複数の対象機器を得るための第5の特定サブ手段と、
前記複数の対象機器に基づいて、前記クロスオーバーにて前記対象スケジューリング情報のうちのいずれか2つのスケジューリング情報を調整するための第2の調整サブ手段と、を含む、
請求項12に記載の装置。
【請求項14】
前記各タスクを実行する対象機器のリソース情報に基づいて、前記各タスクに対する対象機器が前記各タスクに対するグローバルモデルをトレーニングする目標回数を特定するための第2の特定モジュールと、
前記各タスクに対する対象機器に前記目標回数を送信することで、前記各タスクに対する対象機器が前記目標回数に基づいて前記各タスクに対するグローバルモデルをトレーニングするようにするための第2の送信モジュールと、をさらに含む、
請求項8に記載の装置。
【請求項15】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信接続するメモリとを有する電子機器であって、
前記メモリに、前記少なくとも1つのプロセッサによって実行され得るコマンドが記憶されており、前記コマンドが前記少なくとも1つのプロセッサによって実行されることで、前記少なくとも1つのプロセッサが請求項1~7のいずれか一項に記載の方法を実行することができる、
電子機器。
【請求項16】
コンピュータに請求項1~7のいずれか一項に記載の方法を実行させるためのコンピュータコマンドを記憶している、
非一時的なコンピュータ読取可能な記憶媒体。
【請求項17】
プロセッサにより実行される場合に、請求項1~7のいずれか一項に記載の方法を実現するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能の技術分野に関し、特に分散型データ処理及びディープラーニングの技術分野に関する。具体的に、連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラムに関する。
【背景技術】
【0002】
連合学習は分散型機械学習技術の一種であり、分散型のデータと計算リソースとを用いて、複数の分散型エッジ機器又はサーバの間で協力してトレーニングする。連合学習は機器のローカルアリジナルデータを共有する必要がなく、機器のローカルアリジナルデータの漏洩を防止することができる。関連技術において、シングルタスクの場合に連合学習効率を向上させることを解決する方式を提供したが、どのようにマルチタスク場面での連合学習の効率を向上させるかは早急に解決すべき問題である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
これに鑑みて、本開示は、連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラムを提供している。
【課題を解決するための手段】
【0004】
本開示の1つの局面によれば、現在学習周期に対して、複数の候補機器のリソース情報に基づいて、前記複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定することと、前記各タスクに対する対象機器に前記各タスクに対するグローバルモデルを送信することで、前記各タスクに対する対象機器が前記各タスクに対するグローバルモデルをトレーニングすることと、前記各タスクのすべての対象機器に対して送信されたトレーニング後モデルを受信したことに応答して、前記トレーニング後モデルに基づいて前記各タスクに対するグローバルモデルを更新して、前記現在学習周期を完了することと、を含む、連合学習方法を提供している。
【0005】
本開示の別の局面によれば、現在学習周期に対して、複数の候補機器のリソース情報に基づいて、前記複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定するための第1の特定モジュールと、前記各タスクに対する対象機器に前記各タスクに対するグローバルモデルを送信することで、前記各タスクに対する対象機器が前記各タスクに対するグローバルモデルをトレーニングするための第1の送信モジュールと、前記各タスクのすべての対象機器に対して送信されたトレーニング後モデルを受信したことに応答して、前記トレーニング後モデルに基づいて前記各タスクに対するグローバルモデルを更新して、前記現在学習周期を完了するための更新モジュールと、を含む、連合学習装置を提供している。
【0006】
本開示の別の局面によれば、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサと通信接続するメモリとを有する電子機器であって、前記メモリに、前記少なくとも1つのプロセッサによって実行され得るコマンドが記憶されており、前記コマンドが前記少なくとも1つのプロセッサによって実行されることで、前記少なくとも1つのプロセッサが本開示が提供した連合学習方法を実行することができる、電子機器を提供している。
【0007】
本開示の別の局面によれば、コンピュータに本開示が提供した連合学習方法を実行させるためのコンピュータコマンドを記憶している、非一時的なコンピュータ読取可能な記憶媒体を提供している。
【0008】
本開示の別の局面によれば、プロセッサにより実行される場合に、本開示が提供した連合学習方法を実現するコンピュータプログラムを提供している。
【0009】
理解されるべきこととして、本部分に記載された内容は、本開示の実施例のキーポイント又は重要な特徴を示すことを意図するものではなく、本開示の範囲を限定するものでもない。本開示の他の特徴は、以下の説明により容易に理解される。
【0010】
ここで、図面は、本技術案をよりよく理解するために用いられ、本開示を限定するものではない。
【図面の簡単な説明】
【0011】
図1図1は、本開示の実施例による連合学習方法及び装置を適用可能なシステムアーキテクチャ模式図である。
図2図2は、本開示の実施例による連合学習方法のフロー模式図である。
図3図3は、本開示の実施例による複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定するフロー模式図である。
図4図4は、本開示の実施例による連合学習方法の原理模式図である。
図5図5は、本開示の一実施例による連合学習装置の構成ブロック図である。
図6図6は、本開示の実施例の連合学方法を実施するための電子機器のブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本開示の例示的な実施例を説明する。ここで、より理解しやすいために本開示の実施例の様々な詳細は含まれ、それらが例示的なものであると考えられるべきである。したがって、当業者であれば、ここで記載される実施例に対して様々な変更・修正を行うことができ、本開示の範囲及び精神から逸脱することはないと分るべきである。同様に、明確かつ簡潔に説明するために、以下の記載において周知の機能や構成に対する説明を省略する。
【0013】
マルチタスクの場合、サーバリソースを最適化する方式で連合学習の効率を向上させるようにしてよい。例えば、タスクの割当を最適化する方式でネットワーク遅延を低減し、さらに連合学習の効率を向上させるようにしてよい。また、例えば、サーバのCPU(Central Processing Unit、中央プロセッサ)及び通信などのリソースを最適化することで収束時間を低減し、さらに連合学習の効率を向上させるようにしてもよい。また、例えば、マルチタスク協力の方式でマルチタスク加速を行うことで、分散型マルチタスク学習の高通信コスト及びフォールトトレランスなどの問題を解決し、さらに連合学習の効率を向上させるようにしてよい。
【0014】
関連技術において、どのようにサーバリソースを最適化するかのみが考慮されており、どのように機器リソースのスケジューリング案を最適化するかが考慮されていない。機器のリソースは限られており、同一時点で複数のタスクを実行するための十分なリソースがあるとは保証できない。
【0015】
以下、図1を参照して本開示が提供した方法及び装置のシステムアーキテクチャを説明する。
【0016】
図1は、本開示の実施例による連合学習方法及び装置のシステムアーキテクチャ模式図である。
【0017】
図1に示すように、この実施例によるシステムアーキテクチャ100は、複数の機器101と、ネットワーク102と、サーバ103とを含んでよい。ネットワーク102は、機器101とサーバ103との間に通信リンクの媒体を提供するためのものである。ネットワーク102は、各種の接続タイプ、例えば、有線及び/又は無線の通信リンクなどを含んでよい。
【0018】
ユーザは、機器101を用いてネットワーク102を介してサーバ103と対話することで、メッセージなどを送受信してよい。機器101は、各種の電子機器であってよく、スマートフォン、タブレットコンピュータ、ラップトップ型携帯コンピュータなどを含むが、これらに限られない。
【0019】
本開示の実施例が提供した連合学習方法は、一般的に、サーバ103によって実行されてよい。それに応じて、本開示の実施例が提供した連合学習装置は、一般的に、サーバ103に設けられてよい。本開示の実施例が提供した連合学習方法は、サーバ103と異なり、且つ機器101及び/又はサーバ103と通信可能なサーバ又はサーバクラスタによって実行されてもよい。それに応じて、本開示の実施例が提供した連合学習装置は、サーバ103と異なり、且つ機器101及び/又はサーバ103と通信可能なサーバ又はサーバクラスタに設けられてもよい。
【0020】
本開示の実施例において、現在学習周期において、サーバ103はトレーニングタスクを別々の機器101に割り当て、例えば、ネットワーク102を介してトレーニングタスクを別々の機器101に割り当ててよい。複数の機器101は、一定のトレーニング回数を完了した後に、ネットワーク102を介してトレーニング後のモデルをサーバ103に返送する。サーバ103は、別々の機器101から返送したトレーニング後のモデルに応じてこのトレーニングタスクに対するグローバルモデルのパラメータを更新して、現在学習周期のトレーニングを完了する。
【0021】
理解されるべきこととして、図1における機器101とサーバ103との数及びタイプは単に例示的なものに過ぎない。実現の必要に応じて、任意の数及びタイプの端末、道路、車両及び通信基地局を有してもよい。
【0022】
以下、図1を参照して、図2図4を通じて本開示が提供した連合学習方法を詳細に説明する。
【0023】
図2は、本開示の一実施例による連合学習方法のフローチャートである。
図2に示すように、この方法200は操作S210~操作S230を含んでよい。
【0024】
操作S210において、現在学習周期に対して、複数の候補機器のリソース情報に基づいて、複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定する。
【0025】
例えば、実行すべき少なくとも1つのタスクは、少なくとも1つの音声識別モデルをトレーニングするタスクを含んでよい。
【0026】
例えば、実行すべき少なくとも1つのタスクは、音声識別モデルをトレーニングするタスク、画像分類モデルをトレーニングするタスク、テキスト生成モデルをトレーニングするタスクなどを含んでよい。
【0027】
本開示の実施例において、複数の学習周期を実行することで、少なくとも1つの学習タスクを実行してよい。
【0028】
例えば、100個の学習周期を実行することで、音声識別モデルをトレーニングするタスクを実行してよい。
【0029】
例えば、200個の学習周期を実行することで、音声識別モデルをトレーニングするタスク、画像分類モデルをトレーニングするタスク、テキスト生成モデルをトレーニングするタスクを実行してよい。音声識別モデルをトレーニングするタスクを実行することは、100個の学習周期を必要とし、画像分類モデルをトレーニングするタスクを実行することは、120個の学習周期を必要とし、テキスト生成モデルをトレーニングするタスクを実行することは、200個の学習周期を必要とする。一例において、第101個の学習周期において、音声識別モデルをトレーニングするタスクを実行しなくなる。
【0030】
本開示の実施例において、実行すべき少なくとも1つのタスクの数は一定であってもよい。
【0031】
例えば、音声識別モデルをトレーニングするタスク、画像分類モデルをトレーニングするタスク、テキスト生成モデルをトレーニングするタスクのみを実行してもよい。
【0032】
本開示の実施例において、実行すべき少なくとも1つのタスクの数は動的なものであってもよい。
【0033】
例えば、実行開始後に、音声識別モデルをトレーニングするタスク、画像分類モデルをトレーニングするタスク、テキスト生成モデルをトレーニングするタスクを実行してよい。一例において、200個の学習周期を実行することで、音声識別モデルをトレーニングするタスク、画像分類モデルをトレーニングするタスク、テキスト生成モデルをトレーニングするタスクを実行してよい。音声識別モデルをトレーニングするタスクを実行することは、100個の学習周期を必要とし、第101個の学習周期において、音声識別モデルをトレーニングするタスクがすでに終了し、画像識別モデルをトレーニングするタスク及び語意識別モデルをトレーニングするタスクを加えてよい。
【0034】
本開示の実施例において、1つの学習周期で、1つの学習タスクに対して、機器はこの学習タスクに対応するモデルを複数回トレーニングするようにしてよい。
【0035】
例えば、1つの学習周期で、音声識別モデルをトレーニングするタスクに対して、機器はこの音声識別モデルを5回トレーニングするようにしてよい。この学習周期が終了した後、最後のトレーニングによって得られた音声識別モデルをトレーニング後の音声識別モデルとして受信してよい。
【0036】
本開示の実施例において、候補機器のリソース情報は機器ハードウェアリソースであってよい。
【0037】
例えば、候補機器のリソース情報は、機器内のCPUの数及び使用率を含んでもよく、GPU(Graphics Processing Unit)の数及び使用率であってもよく、メモリの容量であってもよい。理解され得るように、本開示を理解することに役立つように、上記リソース情報は単に例示であって、本開示はこれを限定しない。
【0038】
操作S220において、各タスクに対する対象機器に各タスクに対するグローバルモデルを送信することで、各タスクに対する対象機器が各タスクに対するグローバルモデルをトレーニングする。
【0039】
本開示の実施例において、機器のローカルアリジナルデータを利用して、各タスクに対する対象機器が各タスクに対するグローバルモデルをトレーニングするようにしてよい。
【0040】
例えば、1つの対象機器が1つのタスクのグローバルモデルを受信した後、ローカルアリジナルデータからこのタスクを実行するために必要なトレーニングデータを選出し、このトレーニングデータをこのタスクのグローバルモデルに入力して、このグローバルモデルの出力とトレーニングデータのタグとに基づいて、このグローバルモデルをトレーニングする。
【0041】
本開示の実施例において、各タスクを実行する対象機器のリソース情報に応じて、各タスクに対する対象機器が各タスクに対するグローバルモデルをトレーニングする目標回数を決めてよい。
【0042】
例えば、1つのタスクに対して、1つの対象機器のCPU数が多く、このタスクに対するグローバルモデルをトレーニングする目標回数を10回に決めてよく、別の対象機器のCPU数が少なく、このタスクに対するグローバルモデルをトレーニングする目標回数を5回に決めてよい。この目標回数は、例えば、CPUの占有率に負相関し、又はCPUの数に正相関してよい。
【0043】
本開示の実施例において、目標回数が決められた後、各タスクに対する対象機器に目標回数を送信することで、各タスクに対する対象機器がこの目標回数に基づいて各タスクに対するグローバルモデルをトレーニングするようにしてよい。
【0044】
操作S230において、各タスクのすべての対象機器に対して送信されたトレーニング後のモデルを受信したことに応答して、トレーニング後のモデルに基づいて各タスクに対するグローバルモデルを更新して、現在学習周期を完了する。
【0045】
例えば、現在学習周期で、トレーニング後の音声識別モデルに基づいてグローバル音声識別モデルを更新し、トレーニング後の画像分類モデルに基づいてグローバル画像分類モデルを更新し、トレーニング後のテキスト生成モデルに基づいてグローバルテキスト生成モデルを更新する。
【0046】
本開示の実施例によって、この連合学習方法によれば、複数のタスクは、互いに待つことなく、並行に実行してよく、モデルが予期性能に達成するまで、又は最終停止条件が来るまで、初期化以外のすべてのステップが複数の周期繰り返されてもよい。本開示の実施例の連合学習方法は、現在のスケジューリング案による他のタスクに対する影響を十分考慮して、各タスクのために機器リソースをより合理的にスケジューリングして収束時間を最大限に低減することができる。
【0047】
図3は、本開示の実施例による複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定するフロー模式図である。
【0048】
図3に示すように、この方法は、現在学習周期に対して、複数の候補機器のリソース情報に基づいて、複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定してよい。以降、下記の操作S311~操作S315を通じて詳細に説明する。
【0049】
操作S311において、複数の候補機器のリソース情報に基づいて、現在学習周期の時間コストを最小にさせる対象機器セットを候補スケジューリング情報として特定する。
【0050】
例えば、対象機器セットは、それぞれ少なくとも1つの学習タスクに対する少なくとも1つの対象機器グループを含む。
【0051】
【数1】
【0052】
本開示の実施例において、複数の候補機器のリソース情報に基づいて、複数の候補機器のそれぞれが各タスクを実行する時間長情報を特定してよい。
【0053】
例えば、各候補機器のリソース情報に基づいて、各候補機器の計算能力を示す、各候補機器の計算指標を特定してよい。
【0054】
【数2】
【0055】
【数3】
【0056】
【数4】
【0057】
【数5】
【0058】
例えば、計算指標と、各候補機器に記憶された各タスクに対するトレーニングデータのデータ量とに基づいて、所定変位指数分布を用いて各候補機器が各タスクを実行する時間長情報を特定する。
【0059】
幾つかの例において、所定変位指数分布を用いることで1つの候補機器が1つのタスクを実行する時間長情報を特定し、ここで、所定変位指数分布は以下の式で示されてよい。
【0060】
【数6】
【0061】
【数7】
【0062】
【数8】
【0063】
本開示の実施例において、時間長情報に基づいて、現在学習周期の時間コストを最小にさせる対象機器セットを特定してよい。
【0064】
例えば、この実施例は、各候補機器が現在学習周期の前の学習周期で各タスクを実行する回数に基づいて、複数の候補機器の、各タスクに対するスケジューリングバランス分散を特定してもよい。
【0065】
幾つかの例において、以下の式によって1つの候補機器の、1つのタスクに対するスケジューリングバランス分散を特定してよい。
【0066】
【数9】
【0067】
【数10】
【0068】
例えば、スケジューリングバランス分散及び時間長情報に基づいて、現在学習周期の時間コストを最小にさせる対象機器セットを特定してよい。
【0069】
【数11】
【0070】
【数12】
【0071】
【数13】
【0072】
この実施例は、グリーディアルゴリズムの思想を参考して、現在学習周期で、すべてのタスクに必要なトレーニング時間を最も短くする近似解(例えば、対象機器セット)を取得してよい。
【0073】
本開示の実施例において、候補スケジューリング情報と複数の所定スケジューリング情報を初期スケジューリング情報セットとして、下記の操作S312を実行する。
【0074】
【数14】
【0075】
操作S312において、現在スケジューリング情報セットにおける対象スケジューリング情報を調整して、n個の調整後のスケジューリング情報を得る。
【0076】
本開示の実施例において、現在スケジューリング情報セットにおける対象スケジューリング情報を初めて調整する時、現在スケジューリング情報は上記初期スケジューリング情報である。
【0077】
本開示の実施例において、現在スケジューリング情報セットにおける各スケジューリング情報の、現在学習周期に対する時間コストに基づいて、現在スケジューリング情報セットにおける少なくとも2つのスケジューリング情報を対象スケジューリング情報として特定する。
【0078】
【数15】
【0079】
【数16】
【0080】
例えば、以下の式によってスケジューリング情報の適合値fitnessを算出してよい。
【0081】
【数17】
【0082】
【数18】
【0083】
本開示の実施例において、クロスオーバーにて対象スケジューリング情報のうちのいずれか2つのスケジューリング情報を調整して、調整後のスケジューリング情報を得る。
【0084】
例えば、いずれか2つのスケジューリング情報中の候補機器の差分セットを特定して、複数の対象機器を得る。
【0085】
【数19】
【0086】
例えば、複数の対象機器に基づいて、クロスオーバーにて対象スケジューリング情報のうちのいずれか2つのスケジューリング情報を調整する。
【0087】
【数20】
【0088】
操作S313において、n個の調整後のスケジューリング情報及び現在スケジューリング情報セットから現在学習周期の時間コストを高くするn個のスケジューリング情報を除去して、更新後のスケジューリング情報セットを得る。
【0089】
【数21】
【0090】
幾つかの例において、適合値の大きさの応じて、スケジューリング情報を除去してよい。例えば、適合値が最小になる2つのスケジューリング情報を除去する。
【0091】
操作S314において、所定ループ停止条件を満たすか否かを判定する。所定ループ停止条件を満たさないと判定すると、上記操作S312に戻し、所定ループ停止条件を満たすと判定すると、操作S315を実行する。
【0092】
本開示の実施例において、所定ループ停止条件は更新後のスケジューリング情報セットにおけるあるスケジューリング情報の適合値が所定値に達することであってよい。
【0093】
操作S315において、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を出力する。
【0094】
例えば、上記操作S312~操作S313を複数回ループして実行した後、現在スケジューリング情報のうちのあるスケジューリング情報の適合値が所定値に達した場合、ループを停止して、現在スケジューリング情報のうち、適合値が最大になるスケジューリング情報を出力してよく、この適合値が最大になるスケジューリング情報は実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を含む。
【0095】
遺伝的アルゴリズムの思想を参考して、この実施例の技術案は、大きくて複雑なスケジューリング情報セットを検索することができ、複数の満足するようなスケジューリング情報セットを提供することができる。この実施例は、有限回のループによって、現在スケジューリング情報セットが条件を満たすスケジューリング情報セットに進化するように促すことができる。
【0096】
幾つかの実施例において、以下の式によって連合学習方法の学習周期を特定してよい。
【0097】
【数22】
【0098】
【数23】
【0099】
本開示の実施例によれば、ある学習タスクの学習周期が、必要とする学習周期に達すると、次の学習周期において、実行すべき学習タスクには、このある学習タスクが含まれなくなる。
【0100】
図4は、本開示の実施例による遷移学習方法の原理模式図である。
図4に示すように、各候補機器の計算指標401と各候補機器に記憶された各タスクに対するトレーニングデータのデータ量402とに基づいて、例えば、式(2)を用いて各候補機器が各タスクを実行する時間長情報404を特定する。
【0101】
同時に、各候補機器が現在学習周期の前の学習周期で各タスクを実行する回数403に応じて、例えば、式(3)に基づいて複数の候補機器の、各タスクに対するスケジューリングバランス分散405を特定してよい。
【0102】
続いて、各候補機器が各タスクを実行する時間長情報404と複数の候補機器の、各タスクに対するスケジューリングバランス分散405とに応じて、例えば、式(4)に基づいて各タスクに対する複数の対象機器グループを特定してよく、複数の対象機器グループからなるセットは、対象機器セット406である。対象機器セット406は、現在学習周期の時間コストを最小にさせることができる。
【0103】
対象機器セット406を候補スケジューリング情報407としてよい。候補スケジューリング情報407と所定スケジューリング情報408とに基づいて、初期スケジューリング情報セット409を取得する。
【0104】
続いて、所定ループ停止条件を満たすまで、ループ操作を行う。最初のループにおいて、初期スケジューリング情報セット409を現在スケジューリング情報セット410とする。
【0105】
1回のループ操作において、現在スケジューリング情報セット410から少なくとも2つのスケジューリング情報を対象スケジューリング情報として選択し、少なくとも2つのスケジューリング情報は、例えば、図4における対象スケジューリング情報Ta 411と対象スケジューリング情報Tb 412とを含む。まず、対象スケジューリング情報Ta 411と対象スケジューリング情報Tb 412との差分セットを特定して、複数の対象機器を得てよい。そして、クロスオーバーを行って、2つの対象スケジューリング情報を調整し、例えば、対象スケジューリング情報Ta 411に属する1つの対象機器と対象スケジューリング情報Tb 412における別の対象機器とを入れ替えて、調整後スケジューリング情報Ma 413と調整後スケジューリング情報Mb 414とを得る。
【0106】
調整後スケジューリング情報Ma 413と、調整後スケジューリング情報Mb 414と、現在スケジューリング情報セット410とから、例えば、式(5)に基づいて各スケジューリング情報の適合値を特定し、適合値が最小になる2つのスケジューリング情報を除去して、更新後スケジューリング情報セット415を得る。スケジューリング情報の適合値が小さいほど、現在学習周期の時間コストが高くなる。
【0107】
この実施例は、更新後スケジューリング情報セット415のうち、適合値が最大になるスケジューリング情報416が所定ループ停止条件を満たすか否かを判定し、所定ループ停止条件を満たす場合、この適合値が最大になるスケジューリング情報416を出力結果とし、所定ループ停止条件を満たさない場合、更新後スケジューリング情報セット415を現在スケジューリング情報セット410とし、ループ停止条件を満たすまで、上記操作を繰り返す。
【0108】
本開示が提供した連合学習方法によれば、本開示は、連合学習装置をさらに提供している。以下、図5を参照してこの装置を詳細に説明する。
【0109】
図5は、本開示の実施例による連合学習装置の構成ブロック図である。
図5に示すように、この装置500は、第1の特定モジュール510、第1の送信モジュール520及び更新モジュール530を含む。
【0110】
第1の特定モジュール510は、現在学習周期に対して、複数の候補機器のリソース情報に基づいて、上記複数の候補機器のうち、実行すべき少なくとも1つの学習タスクのそれぞれに対する対象機器を特定するために用いられる。幾つかの実施例において、第1の特定モジュール510は、前文に説明した操作S210を実行するために用いられ、ここで説明を繰り返さない。
【0111】
第1の送信モジュール520は、上記各タスクに対する対象機器に上記各タスクに対するグローバルモデルを送信することで、上記各タスクに対する対象機器が上記各タスクに対するグローバルモデルをトレーニングするために用いられる。幾つかの実施例において、第1の送信モジュール520は、前文に説明した操作S220を実行するために用いられ、ここで説明を繰り返さない。
【0112】
更新モジュール530は、上記各タスクのすべての対象機器に対して送信されたトレーニング後モデルを受信したことに応答して、上記トレーニング後モデルに基づいて上記各タスクに対するグローバルモデルを更新して、上記現在学習周期を完了するために用いられる。幾つかの実施例において、更新モジュール530は、前文に説明した操作S230を実行するために用いられ、ここで説明を繰り返さない。
【0113】
幾つかの実施例において、上記第1の特定モジュールは、上記複数の候補機器のリソース情報に基づいて、現在学習周期の時間コストを最小にさせる、それぞれ少なくとも1つの学習タスクに対する複数の対象機器グループを含む対象機器セットを候補スケジューリング情報として特定するための第1の特定サブモジュールと、上記候補スケジューリング情報と複数の所定スケジューリング情報とを初期スケジューリング情報セットとし、所定ループ停止条件を満たすまで、以下の手段によってループして操作を実行するためのループサブモジュールとを含む。上記手段は、現在スケジューリング情報セットにおける対象スケジューリング情報を調整して、n個(nは正の整数である)の調整後スケジューリング情報を得るための調整手段と、上記n個の調整後スケジューリング情報及び上記現在スケジューリング情報セットから上記現在学習周期の時間コストを高くするn個のスケジューリング情報を除去して、更新後スケジューリング情報セットを得るための除去手段とを含む。
【0114】
幾つかの実施例において、上記第2の特定サブモジュールは、上記複数の候補機器のリソース情報に基づいて、上記複数の候補機器のそれぞれが上記各タスクを実行する時間長情報を特定するための第1の特定手段と、上記時間長情報に基づいて、現在学習周期の時間コストを最小にさせる対象機器セットを特定するための第2の特定手段とを含む。
【0115】
幾つかの実施例において、上記第2の特定手段は、上記各候補機器が上記現在学習周期の前の学習周期で上記各タスクを実行する回数に基づいて、上記複数の候補機器の、上記各タスクに対するスケジューリングバランス分散を特定するための第1の特定サブ手段と、上記スケジューリングバランス分散と上記時間長情報とに基づいて、現在学習周期の時間コストを最小にさせる対象機器セットを特定するための第2の特定サブ手段とを含む。
【0116】
幾つかの実施例において、上記第1の特定手段は、上記各候補機器のリソース情報に基づいて、上記各候補機器の計算能力を示す、上記各候補機器の計算指標を特定するための第3の特定サブ手段と、上記計算指標と上記各候補機器に記憶された上記各タスクに対するトレーニングデータのデータ量とに基づいて、所定変位指数分布を用いて上記各候補機器が上記各タスクを実行する時間長情報を特定するための実行サブ手段とを含む。
【0117】
幾つかの実施例において、上記調整手段は、上記現在スケジューリング情報セットにおける各スケジューリング情報の、上記現在学習周期に対する時間コストに基づいて、上記現在スケジューリング情報セットにおける少なくとも2つのスケジューリング情報を対象スケジューリング情報として特定するための第4の特定サブ手段と、クロスオーバーにて上記対象スケジューリング情報のうちのいずれか2つのスケジューリング情報を調整して、調整後スケジューリング情報を得るための第1の調整サブ手段とを含む。
【0118】
幾つかの実施例において、上記第1の調整サブ手段は、上記いずれか2つのスケジューリング情報中の候補機器の差分セットを特定して、複数の対象機器を得るための第5の特定サブ手段と、上記複数の対象機器に基づいて、上記クロスオーバーにて上記対象スケジューリング情報のうちのいずれか2つのスケジューリング情報を調整するための第2の調整サブ手段とを含む。
【0119】
幾つかの実施例において、この装置500は、上記各タスクを実行する対象機器のリソース情報に基づいて、上記各タスクに対する対象機器が上記各タスクに対するグローバルモデルをトレーニングする目標回数を特定するための第2の特定モジュールと、上記各タスクに対する対象機器に上記目標回数を送信することで、上記各タスクに対する対象機器が上記目標回数に基づいて上記各タスクに対するグローバルモデルをトレーニングするようにするための第2の送信モジュールとをさらに含む。
【0120】
なお、本開示の技術案では、係られたユーザ個人情報の取得、収集、記憶、応用、加工、伝送、提供及び開示などの処理は、いずれも関連法律や法規の規定に合致しており、公序良俗に反していない。
【0121】
本開示の実施例によれば、本開示は、電子機器、読取可能な記憶媒体及びコンピュータプログラムをさらに提供している。
【0122】
図6は、本開示の実施例の連合学習方法を実施することが可能な例示的電子機器600の模式的ブロック図を示している。電子機器は、様々な形式のデジタルコンピュータを示すことを目的とし、例えば、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ及び他の適切なコンピュータである。電子機器は、さらに様々な形式の移動装置を示してもよく、例えば、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブル機器及び他の類似の演算装置である。本明細書に示された部材、それらの接続及び関係、並びにそれらの機能は、例示に過ぎず、本明細書に記載された及び/又は要求された本開示の実現を限定しない。
【0123】
図6に示すように、機器600は、計算手段601を含み、計算手段601は、リードオンリーメモリ(ROM)602に記憶されたコンピュータプログラム又は記憶手段608からランダムアクセスメモリ(RAM)603にロードされたコンピュータプログラムに基づいて、様々な適切な動作及び処理を実行してもよい。RAM603には、さらに機器600の操作に必要な様々なプログラム及びデータを記憶してもよい。計算手段601、ROM602、及びRAM603は、バス604を介して相互に接続される。入出力(I/O)インターフェース605も、バス604に接続される。
【0124】
機器600における複数の部品は、I/Oインターフェース605に接続され、例えばキーボード、マウス等の入力手段606と、例えば様々な種類のディスプレイ、スピーカ等の出力手段607と、例えば磁気ディスク、光ディスク等の記憶手段608と、例えばネットワークカード、モデム、無線通信トランシーバ等の通信手段609とを含む。通信手段609は、機器600がインターネット等のコンピュータネットワーク及び/又は各種の電気ネットワークを介して他の機器と情報・データをやり取りすることを可能にする。
【0125】
計算手段601は、処理及び演算能力を有する各種の汎用及び/又は専用の処理モジュールであってもよい。計算手段601の幾つかの例として、中央処理ユニット(CPU)、GPU(Graphics Processing Unit)、各種専用の人工知能(AI)演算チップ、各種機械学習モデルアルゴリズムをランニングする演算ユニット、DSP(Digital Signal Processor)、並びに任意の適切なプロセッサ、コントローラ、マイクロコントローラ等が挙げられるが、これらに限定されない。計算手段601は、前文で説明した各方法と処理、例えば、連合学習方法を実行する。例えば、幾つかの実施例において、連合学習方法は、例えば記憶手段608のような機械可読媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施例において、コンピュータプログラムの一部又は全部は、ROM 602及び/又は通信手段609を介して機器600にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM603にロードされて計算手段601により実行される場合、前文で説明した連合学習方法の1つ又は複数のステップを実行してもよい。代替的に、他の実施例において、計算手段601は、他の任意の適切な方式(例えば、ファームウェアを介する)により連合学習方法を実行するように構成されてもよい。
【0126】
本明細書で以上に説明されたシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラムマブルロジックデバイス (CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現されてもよい。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムにおいて実施され、該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラムマブルプロセッサを含むプログラムマブルシステムで実行され及び/又は解釈されることが可能であり、該プログラムマブルプロセッサは、専用又は汎用のプログラムマブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、かつデータ及び命令を該記憶システム、該少なくとも1つの入力装置、及び該少なくとも1つの出力装置に伝送することができることを含んでもよい。
【0127】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで作成されてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供されてもよく、それによって、プログラムコードがプロセッサ又はコントローラにより実行される時に、フローチャート及び/又はブロック図に規定された機能・操作が実施される。プログラムコードは、機器に完全に実行されてもよく、部分的に機器で実行されてもよく、独立したソフトウェアパッケージとして部分的に機器で実行され、かつ部分的に遠隔機器で実行されるか又は完全に遠隔機器又はサーバで実行されてもよい。
【0128】
本開示のコンテキストにおいて、機械可読媒体は、有形の媒体であってもよく、命令実行システム、装置又は電子機器に使用され、又は命令実行システム、装置又は電子機器と組み合わせて使用されるプログラムを含んで又は記憶してもよい。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は、電子の、磁気的、光学的、電磁的、赤外線の、又は半導体システム、装置又は電子機器、又は上記内容の任意の適切な組み合わせを含んでもよいが、それらに限定されない。機械可読記憶媒体のより具体的な例としては、1つ以上の線による電気的接続、携帯式コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は上記内容の任意の適切な組み合わせを含む。
【0129】
ユーザとの対話を提供するために、コンピュータにここで説明されたシステム及び技術を実施させてもよく、該コンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを備え、ユーザは、該キーボード及び該ポインティングデバイスを介して入力をコンピュータに提供することができる。他の種類の装置は、さらにユーザとの対話を提供してもよく、例えば、ユーザに提供されたフィードバックは、いかなる形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、かついかなる形式(音声入力、語音入力又は、触覚入力を含む)でユーザからの入力を受信してもよい。
【0130】
ここで説明されたシステム及び技術は、バックグラウンド部品を含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェア部品を含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンド部品を含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザが該グラフィカルユーザインタフェース又は該ネットワークブラウザを介してここで説明されたシステム及び技術の実施形態と対話することができる)、又はこのようなバックグラウンド部品、ミドルウェア部品、又はフロントエンド部品のいずれかの組み合わせを含むコンピューティングシステムに実施されることが可能である。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によりシステムの部品を互いに接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及びインターネットを例示的に含む。
【0131】
コンピュータシステムは、クライアント及びサーバを含んでもよい。クライアントとサーバ同士は、一般的に離れており、通常、通信ネットワークを介して対話する。クライアントとサーバとの関係は、該当するコンピュータ上でランニングし、クライアント-サーバの関係を有するコンピュータプログラムによって生成される。サーバは、クラウドサーバであってもよく、クラウドサーバは、クラウドコンピューティングサーバ又はクラウドホストとも呼ばれ、クラウドコンピューティングサービスシステムのうちの1つのホスト製品であり、従来の物理ホストとVPSサービス(「Virtual Private Server」、又は「VPS」と略称する)に存在する管理難度が大きく、サービス拡張性が弱いという欠陥を解決する。サーバは、分散型システムのサーバであってもよく、又はブロックチェーンを組合せたサーバであってもよい。
【0132】
理解されるべきこととして、以上に示された様々な形式のフローを使用してもよく、操作を改めてソーティングしたり、追加したり又は削除してもよい。例えば、本開示に記載の各操作は、並列に実行されたり、順次に実行されたり、又は異なる順序で実行されてもよく、本開示に開示された技術案が所望する結果を実現することができれば、本明細書はここで限定されない。
【0133】
上記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション及び代替を行うことが可能であると理解すべきである。本開示の精神と原則内で行われる任意の修正、均等置換及び改良などは、いずれも本開示の保護範囲内に含まれるべきである。
図1
図2
図3
図4
図5
図6