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

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

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

特許7720007秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム
<>
  • 特許-秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム 図1
  • 特許-秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム 図2
  • 特許-秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム 図3
  • 特許-秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム 図4
  • 特許-秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム 図5
  • 特許-秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム 図6
  • 特許-秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-30
(45)【発行日】2025-08-07
(54)【発明の名称】秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20250731BHJP
【FI】
G09C1/00 650Z
【請求項の数】 3
(21)【出願番号】P 2024511018
(86)(22)【出願日】2022-03-31
(86)【国際出願番号】 JP2022016503
(87)【国際公開番号】W WO2023188259
(87)【国際公開日】2023-10-05
【審査請求日】2024-09-11
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】NTT株式会社
(74)【代理人】
【識別番号】100121706
【弁理士】
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【弁理士】
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【弁理士】
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】張 一凡
(72)【発明者】
【氏名】諸橋 玄武
(72)【発明者】
【氏名】深見 匠
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2003-203061(JP,A)
【文献】国際公開第2021/205959(WO,A1)
【文献】特開2017-207839(JP,A)
【文献】特開2021-197181(JP,A)
【文献】国際公開第2021/059607(WO,A1)
【文献】KANAGAVELU, R. et al.,Two-Phase Multi-Party Computation Enabled Privacy-Preserving Federated Learning,2020 20th IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing (CCGRID),米国,IEEE,2020年05月11日,pp. 410-419,<DOI:10.1109/GCCGrid49817.2020.00-52>
【文献】宮島 洋文 ほか,秘匿分解データを用いた新しい機械学習,研究報告マルチメディア通信と分散処理(DPS),日本,情報処理学会,2021年12月13日,Vol.2021-DPS-189, No.11,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
Kを3以上の整数、Pを2以上の整数、Nを3≦N≦K/Pを満たす整数とし、
K個の、学習データを用いてローカルモデルを学習する秘密グローバルモデル計算装置を含む連合学習システムにおける秘密グローバルモデル計算装置であって、
K個の秘密グローバルモデル計算装置のうちの任意のN個の秘密グローバルモデル計算装置はN個のローカルモデルからグローバルモデルを秘密計算する秘密グローバルモデル計算システムを構成できるものであり、
秘密グローバルモデル計算システム構成のために選択されていないK-(p-1)N個(ただし、pは1≦p≦Pを満たす整数)の秘密グローバルモデル計算装置のうちの自分自身を除くK-(p-1)N-1個の秘密グローバルモデル計算装置に対して計算資源の空き状況を確認するクエリを送信し、当該K-(p-1)N-1個の秘密グローバルモデル計算装置の中から計算資源の空き状況が大きいN-1個の秘密グローバルモデル計算装置を選択する選択部と、
前記選択されたN-1個の秘密グローバルモデル計算装置と自分自身をあわせたN個の秘密グローバルモデル計算装置で秘密グローバルモデル計算システム(以下、第p秘密グローバルモデル計算システムという)を構成するシステム構成部と、
σを集合{1, …, P}の置換、Lを2以上の整数とし、
pがσ(p)>1を満たす整数である場合は、L回のうち1回の学習では第p’秘密グローバルモデル計算システム(ただし、p’はσ(p’)=σ(p)-1を満たす整数)のグローバルモデルのパラメータを、L回のうち残りのL-1回の学習では第p秘密グローバルモデル計算システムのグローバルモデルのパラメータをローカルモデルのパラメータの初期値としてローカルモデルを学習し、pがσ(p)=1を満たす整数である場合は、2回目以降の学習では第p秘密グローバルモデル計算システムのグローバルモデルのパラメータをローカルモデルのパラメータの初期値としてローカルモデルを学習するローカルモデル学習部と、
を含む秘密グローバルモデル計算装置。
【請求項2】
Kを3以上の整数、Pを2以上の整数、Nを3≦N≦K/Pを満たす整数とし、
K個の、学習データを用いてローカルモデルを学習する秘密グローバルモデル計算装置を含む連合学習システムが秘密グローバルモデル計算システムを構成する秘密グローバルモデル計算システム構成方法であって、
K個の秘密グローバルモデル計算装置のうちの任意のN個の秘密グローバルモデル計算装置はN個のローカルモデルからグローバルモデルを秘密計算する秘密グローバルモデル計算システムを構成できるものであり、
秘密グローバルモデル計算システム構成のために選択されていないK-(p-1)N個(ただし、pは1≦p≦Pを満たす整数)の秘密グローバルモデル計算装置のうちの1個の秘密グローバルモデル計算装置(以下、第pマスタ秘密グローバルモデル計算装置という)が、自分自身を除くK-(p-1)N-1個の秘密グローバルモデル計算装置に対して計算資源の空き状況を確認するクエリを送信し、当該K-(p-1)N-1個の秘密グローバルモデル計算装置の中から計算資源の空き状況が大きいN-1個の秘密グローバルモデル計算装置を選択する選択ステップと、
第pマスタ秘密グローバルモデル計算装置が、前記選択されたN-1個の秘密グローバルモデル計算装置と自分自身をあわせたN個の秘密グローバルモデル計算装置で秘密グローバルモデル計算システム(以下、第p秘密グローバルモデル計算システムという)を構成するシステム構成ステップと、
σを集合{1, …, P}の置換、Lを2以上の整数とし、
第pマスタ秘密グローバルモデル計算装置が、pがσ(p)>1を満たす整数である場合は、L回のうち1回の学習では第p’秘密グローバルモデル計算システム(ただし、p’はσ(p’)=σ(p)-1を満たす整数)のグローバルモデルのパラメータを、L回のうち残りのL-1回の学習では第p秘密グローバルモデル計算システムのグローバルモデルのパラメータをローカルモデルのパラメータの初期値としてローカルモデルを学習し、pがσ(p)=1を満たす整数である場合は、2回目以降の学習では第p秘密グローバルモデル計算システムのグローバルモデルのパラメータをローカルモデルのパラメータの初期値としてローカルモデルを学習するローカルモデル学習ステップと、
を含む秘密グローバルモデル計算システム構成方法。
【請求項3】
請求項1に記載の秘密グローバルモデル計算装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、連合学習技術に関し、特にグローバルモデルを計算する秘密計算システムを構成する装置がローカルモデルを学習する機能を備えることにより、効率的にモデルを学習する技術に関する。
【背景技術】
【0002】
学習データを1つの装置に集約することなく学習する技術として、連合学習(Federated Learning)技術がある。連合学習技術として、例えば非特許文献1に記載のFedAVGがある。
【0003】
図1は、連合学習システムの基本的構成を示す図である。連合学習システム90は、M個(Mは2以上の整数)のローカルモデル学習装置7001、…、700Mとグローバルモデル計算装置900とを含む。連合学習システム90の基本的な動作は以下の通りである。ローカルモデル学習装置7001、…、700Mは自らの記録部に記録した学習データを用いてローカルモデルを学習する。学習終了後、ローカルモデル学習装置7001、…、700Mはネットワーク800を介してローカルモデルをグローバルモデル計算装置900に送信する。グローバルモデル計算装置900は、受信したローカルモデルを用いてグローバルモデルを計算する。計算終了後、グローバルモデル計算装置900は、ネットワーク800を介してグローバルモデルをローカルモデル学習装置7001、…、700Mに送信する。ローカルモデル学習装置7001、…、700Mは受信したグローバルモデルを用いてローカルモデルを再度学習する。このような動作を繰り返すことにより、連合学習システム90はモデル学習を進める。その際、グローバルモデル計算装置900は、ローカルモデル管理テーブルを用いてローカルモデルのパラメータを管理する。
【0004】
連合学習技術を用いると、ローカルモデル学習装置の外に学習データを持ち出すことがないため、データ持ち出しに対する不安を解消することができると同時に、並列学習による高速化が可能となる。しかし、例えばローカルモデル学習装置7001、…、700Mとグローバルモデル計算装置900との通信の過程から学習中のモデルのパラメータが追跡される形で漏洩すると、学習データが推測されてしまうリスクがある。このようなリスクを回避するためにグローバルモデルの計算に秘密計算を用いることが考えられる。
【0005】
秘密計算とは、暗号化された数値を復元することなく指定された演算の演算結果を得る方法のことである(例えば参考非特許文献1参照)。参考非特許文献1の方法では、数値を復元することのできる複数の情報を3つの秘密計算装置に分散するという暗号化を行い、数値を復元することなく、加減算、定数和、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。一般に、分散数は3に限らずN(Nは3以上の整数)とすることができ、N個の秘密計算装置による協調計算によって秘密計算を実現するプロトコルはマルチパーティプロトコルと呼ばれる。
(参考非特許文献1:千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考,” In CSS, 2010.)
【先行技術文献】
【非特許文献】
【0006】
【文献】McMahan, B., E. Moore, D. Ramage, et al, “Communication-efficient learning of deep networks from decentralized data,”In Artificial Intelligence and Statistics, pp.1273-1282, 2017.
【発明の概要】
【発明が解決しようとする課題】
【0007】
一般に、ローカルモデルを学習する装置の数はグローバルモデルを計算する秘密計算システムを構成する装置の数に比べて過度に大きくなる傾向がある。このような場合、秘密計算システムへのローカルモデル登録処理に時間がかかるため、モデル学習にかかる時間が全体として大きくなってしまうという問題がある。
【0008】
そこで本発明は、連合学習において、グローバルモデルを計算する秘密計算システムを構成する装置がローカルモデルを学習する機能を備えることにより、効率的にモデルを学習する技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の一態様は、Kを3以上の整数、Nを3≦N≦Kを満たす整数とし、K個の、学習データを用いてローカルモデルを学習する秘密グローバルモデル計算装置を含む連合学習システムにおける秘密グローバルモデル計算装置であって、K個の秘密グローバルモデル計算装置のうちの任意のN個の秘密グローバルモデル計算装置はN個のローカルモデルからグローバルモデルを秘密計算する秘密グローバルモデル計算システムを構成できるものであり、自分自身を除くK-1個の秘密グローバルモデル計算装置に対して計算資源の空き状況を確認するクエリを送信し、当該K-1個の秘密グローバルモデル計算装置の中から計算資源の空き状況が大きいN-1個の秘密グローバルモデル計算装置を選択する選択部と、前記選択されたN-1個の秘密グローバルモデル計算装置と自分自身をあわせたN個の秘密グローバルモデル計算装置で秘密グローバルモデル計算システムを構成するシステム構成部と、を含む。
【0010】
本発明の一態様は、Kを3以上の整数、Pを2以上の整数、Nを3≦N≦K/Pを満たす整数とし、K個の、学習データを用いてローカルモデルを学習する秘密グローバルモデル計算装置を含む連合学習システムにおける秘密グローバルモデル計算装置であって、K個の秘密グローバルモデル計算装置のうちの任意のN個の秘密グローバルモデル計算装置はN個のローカルモデルからグローバルモデルを秘密計算する秘密グローバルモデル計算システムを構成できるものであり、秘密グローバルモデル計算システム構成のために選択されていないK-(p-1)N個(ただし、pは1≦p≦Pを満たす整数)の秘密グローバルモデル計算装置のうちの自分自身を除くK-(p-1)N-1個の秘密グローバルモデル計算装置に対して計算資源の空き状況を確認するクエリを送信し、当該K-(p-1)N-1個の秘密グローバルモデル計算装置の中から計算資源の空き状況が大きいN-1個の秘密グローバルモデル計算装置を選択する選択部と、前記選択されたN-1個の秘密グローバルモデル計算装置と自分自身をあわせたN個の秘密グローバルモデル計算装置で秘密グローバルモデル計算システム(以下、第p秘密グローバルモデル計算システムという)を構成するシステム構成部と、σを集合{1, …, P}の置換、Lを2以上の整数とし、pがσ(p)>1を満たす整数である場合は、L回のうち1回の学習では第p’秘密グローバルモデル計算システム(ただし、p’はσ(p’)=σ(p)-1を満たす整数)のグローバルモデルのパラメータを、L回のうち残りのL-1回の学習では第p秘密グローバルモデル計算システムのグローバルモデルのパラメータをローカルモデルのパラメータの初期値としてローカルモデルを学習し、pがσ(p)=1を満たす整数である場合は、2回目以降の学習では第p秘密グローバルモデル計算システムのグローバルモデルのパラメータをローカルモデルのパラメータの初期値としてローカルモデルを学習するローカルモデル学習部と、を含む。
【発明の効果】
【0011】
本発明によれば、連合学習において、グローバルモデルを計算する秘密計算システムを構成する装置がローカルモデルを学習する機能を備えることにより、効率的にモデルを学習することが可能となる。
【図面の簡単な説明】
【0012】
図1】連合学習システム90の基本的構成を示す図である。
図2】連合学習システム10の構成を示すブロック図である。
図3】秘密グローバルモデル計算装置100nの構成を示すブロック図である。
図4】連合学習システム10の動作を示すフローチャートである。
図5】ローカルモデル生成部130nの構成を示すブロック図である。
図6】ローカルモデル生成部130nの動作を示すフローチャートである。
図7】本発明の実施形態における各装置を実現するコンピュータの機能構成の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0014】
各実施形態の説明に先立って、この明細書における表記方法について説明する。
【0015】
^(キャレット)は上付き添字を表す。例えば、xy^zはyzがxに対する上付き添字であり、xy^zはyzがxに対する下付き添字であることを表す。また、_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
【0016】
ある文字xに対する^xや~xのような上付き添え字の”^”や”~”は、本来”x”の真上に記載されるべきであるが、明細書の記載表記の制約上、^xや~xと記載しているものである。
<技術的背景>
<<秘密計算>>
本願の発明における秘密計算は、既存の秘密計算上の演算の組み合わせで構築される。この秘密計算に必要な演算は、例えば、秘匿化、加算、減算、乗算、除算、論理演算(否定、論理積、論理和、排他的論理和)、比較演算(=, <, >, ≦, ≧)である。以下、記法も含めいくつかの演算について説明していく。
[秘匿化]
[[x]]をxを秘密分散で秘匿した値(以下、xのシェアという)とする。秘密分散方法には、任意の方法を用いることができる。例えば、GF(261-1)上のShamir秘密分散、Z2上の複製秘密分散を用いることができる。
【0017】
ある1つのアルゴリズムの中で複数の秘密分散方法を組み合わせて用いてもよい。この場合、適宜相互に変換するものとする。
【0018】
また、N次元ベクトルx=(x1, …, xN)に対して、[[x]]=([[x1]], …, [[xN]])とする。つまり、[[x]]は、xの第n要素xnのシェア[[xn]]を第n要素とするベクトルである。同様に、M×N行列A=(am,n)(1≦m≦M, 1≦n≦N)に対して、[[A]]をAの第(m, n)要素am,nのシェア[[am,n]]を第(m, n)要素とする行列とする。
【0019】
なお、xを[[x]]の平文という。
【0020】
xから[[x]]を求める方法(秘匿化)、[[x]]からxを求める方法(復元)として、具体的には、参考非特許文献1、参考非特許文献2に記載の方法がある。
(参考非特許文献2:Shamir, A., “How to share a secret”, Communications of the ACM, Vol.22, No.11, pp.612-613, 1979.)
[加算、減算、乗算、除算]
秘密計算による加算[[x]]+[[y]]は、[[x]], [[y]]を入力とし、[[x+y]]を出力する。秘密計算による減算[[x]]-[[y]]は、[[x]], [[y]]を入力とし、[[x-y]]を出力する。秘密計算による乗算[[x]]×[[y]](mul([[x]], [[y]])と表すこともある)は、[[x]], [[y]]を入力とし、[[x×y]]を出力する。秘密計算による除算[[x]]/[[y]](div([[x]], [[y]])と表すこともある)は、[[x]], [[y]]を入力とし、[[x/y]]を出力する。
【0021】
加算、減算、乗算、除算の具体的方法として、参考非特許文献3、参考非特許文献4に記載の方法がある。
(参考非特許文献3:Ben-Or, M., Goldwasser, S. and Wigderson, A., “Completeness theorems for non-cryptographic fault-tolerant distributed computation”, Proceedings of the twentieth annual ACM symposium on Theory of computing, ACM, pp. 1-10, 1988.)
(参考非特許文献4:Gennaro, R., Rabin, M. O. and Rabin, T., “Simplied VSS and fast-track multiparty computations with applications to threshold cryptography”, Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing, ACM, pp.101-111, 1998.)
[論理演算]
秘密計算による否定not[[x]]は、[[x]]を入力とし、[[not(x)]]を出力する。秘密計算による論理積and([[x]], [[y]])は、[[x]], [[y]]を入力とし、[[and(x, y)]]を出力する。秘密計算による論理和or([[x]], [[y]])は、[[x]], [[y]]を入力とし、[[or(x, y)]]を出力する。秘密計算による排他的論理和xor([[x]], [[y]])は、[[x]], [[y]]を入力とし、[[xor(x, y)]]を出力する。
【0022】
なお、論理演算は加算、減算、乗算、除算を組み合わせることで容易に構成することができる。
[比較演算]
秘密計算による等号判定=([[x]], [[y]]) (equal([[x]], [[y]])と表すこともある)は、[[x]], [[y]]を入力とし、x=yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較<([[x]], [[y]])は、[[x]], [[y]]を入力とし、x<yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較>([[x]], [[y]])は、[[x]], [[y]]を入力とし、x>yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較≦([[x]], [[y]])は、[[x]], [[y]]を入力とし、x≦yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較≧([[x]], [[y]])は、[[x]], [[y]]を入力とし、x≧yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。
【0023】
なお、比較演算は論理演算を組み合わせることで容易に構成することができる。
<第1実施形態>
以下、図2図4を参照して連合学習システム10について説明する。図2は、連合学習システム10の構成を示すブロック図である。連合学習システム10は、K個(Kは3以上の整数)の、学習データを用いてローカルモデルを学習する秘密グローバルモデル計算装置1001、…、100Kを含む。秘密グローバルモデル計算装置1001、…、100Kは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図3は、秘密グローバルモデル計算装置100n(1≦n≦K)の構成を示すブロック図である。図4は、連合学習システム10の動作を示すフローチャートである。
【0024】
図3に示すように秘密グローバルモデル計算装置100nは、選択部110nと、システム構成部120nと、ローカルモデル生成部130nと、パラメータシェア登録部140nと、学習開始条件判定部150nと、グローバルモデル計算部160nと、送受信部180nと、記録部190nを含む。選択部110nとシステム構成部120nとローカルモデル生成部130nとパラメータシェア登録部140nと送受信部180nと記録部190nを除く秘密グローバルモデル計算装置100nの各構成部は、例えば、秘匿化、加算、減算、乗算、除算、論理演算、比較演算のように、グローバルモデルの計算で必要とされる演算のうち、各構成部の機能を実現するうえで必要になる演算を実行できるように構成されている。本発明において個々の演算を実現するための具体的な機能構成は、既存のアルゴリズムを実行できるような構成で十分であり、これらは従来的構成であるから詳細な説明については省略する。また、記録部190nは、秘密グローバルモデル計算装置100nの処理に必要な情報を記録する構成部である。記録部190nは、例えば、学習データやローカルモデルのパラメータやグローバルモデルのパラメータを記録する。なお、学習データは適宜更新される。また、グローバルモデルはローカルモデルと同じ構造を有するモデルである。
【0025】
K個の秘密グローバルモデル計算装置のうちの任意のN個(Nは3≦N≦Kを満たす整数)の秘密グローバルモデル計算装置はN個のローカルモデルからグローバルモデルを秘密計算する秘密グローバルモデル計算システムを構成できる。
【0026】
K個の秘密グローバルモデル計算装置のうちの任意のN個の秘密グローバルモデル計算装置による協調計算によって、当該N個の秘密グローバルモデル計算装置により構成される秘密グローバルモデル計算システムはマルチパーティプロトコルであるグローバルモデルの秘密計算を実現する。よって、N個の秘密グローバルモデル計算装置を秘密グローバルモデル計算装置100i_1、…、100i_N(ただし、i1, …, iNは1≦i1< … <iN≦Kを満たす整数)とすると、当該N個の秘密グローバルモデル計算装置により構成される秘密グローバルモデル計算システムの学習開始条件判定手段150(図示していない)は学習開始条件判定部150i_1、…、150i_Nで構成され、グローバルモデル計算手段160(図示していない)はグローバルモデル計算部160i_1、…、160i_Nで構成される。
【0027】
以下、図4に従い連合学習システム10の動作について説明する。
【0028】
S110において、秘密グローバルモデル計算装置100n(1≦n≦K)のうちの1個の秘密グローバルモデル計算装置100k_0(ただし、k0は1≦k0≦Kを満たす整数)の選択部110k_0は、送受信部180k_0を用いて自分自身を除くK-1個の秘密グローバルモデル計算装置に対して計算資源の空き状況を確認するクエリを送信し、当該K-1個の秘密グローバルモデル計算装置の中から計算資源の空き状況が大きいN-1個の秘密グローバルモデル計算装置を選択する。以下、秘密グローバルモデル計算装置100k_0をマスタ秘密グローバルモデル計算装置という。選択されたN-1個の秘密グローバルモデル計算装置とマスタ秘密グローバルモデル計算装置をあわせたN個の秘密グローバルモデル計算装置を秘密グローバルモデル計算装置100i_1、…、100i_N(ただし、i1, …, iNは1≦i1< … <iN≦Kを満たす整数)とする。したがって、k0はi1, …, iNのいずれかと一致する。ここで、k0=i~n(ただし、~nは1≦~n≦Nを満たす整数)とする。また、計算資源とは、例えば、秘密グローバルモデル計算装置の構成に用いる汎用コンピュータのCPUや通信部のことである。
【0029】
S120において、マスタ秘密グローバルモデル計算装置である秘密グローバルモデル計算装置100i_~nのシステム構成部110i_~nは、送受信部180i_~nを用いて秘密グローバルモデル計算装置100i_1、…、100i_~n-1、100i_~n+1、…、100i_Nとの間で秘密グローバルモデル計算システムを構成するために必要となるデータを相互に交換し、N個の秘密グローバルモデル計算装置100i_1、…、100i_Nで秘密グローバルモデル計算システムを構成する。秘密グローバルモデル計算システムを構成するために必要となるデータとは、例えば、秘密グローバルモデル計算システムを構成する秘密グローバルモデル計算装置のネットワークアドレス(例えば、IPアドレス)である。
【0030】
S130において、秘密グローバルモデル計算装置100n(n=i1, …, iN)のローカルモデル生成部130nは、ローカルモデルを生成する。
【0031】
以下、図5図6を参照してローカルモデル生成部130nについて説明する。図5は、ローカルモデル生成部130nの構成を示すブロック図である。図6は、ローカルモデル生成部130nの動作を示すフローチャートである。図5に示すようにローカルモデル生成部130n(1≦n≦K)は、ローカルモデル学習部131nと、パラメータシェア計算部132nと、グローバルモデル取得部133nと、パラメータ計算部134nと、学習開始条件判定部135nとを含む。
【0032】
以下、図6に従いローカルモデル生成部130n(n=i1, …, iN)の動作について説明する。
【0033】
S131nにおいて、ローカルモデル学習部131nは、記録部190nに記録している学習データを用いてローカルモデルを学習する。1回目のローカルモデルの学習では、ローカルモデル学習部131nは、予め記録部190nに記録している初期値を用いてローカルモデルのパラメータの初期値を設定してもよいし、乱数を用いて生成した初期値を用いてローカルモデルのパラメータの初期値を設定してもよい。2回目以降のローカルモデルの学習では、ローカルモデル学習部131nは、後述するS133nで取得したグローバルモデルのパラメータのシェアを用いてローカルモデルのパラメータの初期値を設定する。
【0034】
S132nにおいて、パラメータシェア計算部132nは、S131nで学習したローカルモデルのパラメータからローカルモデルのパラメータのシェアを計算する。パラメータシェア計算部132nは、計算が終了すると、送受信部180nを用いて自分自身を除く秘密グローバルモデル計算装置100i_1、…、100i_n-1、100i_n+1、…、100i_Nにローカルモデルのパラメータのシェアを送信する。
【0035】
S133nにおいて、グローバルモデル取得部133nは、S132nの処理終了後またはS135nの処理終了から所定の時間経過後に、送受信部180nを用いて自分自身を除く秘密グローバルモデル計算装置100i_1、…、100i_n-1、100i_n+1、…、100i_Nからグローバルモデルのパラメータのシェアを取得する。
【0036】
S134nにおいて、パラメータ計算部134nは、S133nで取得したグローバルモデルのパラメータのシェアと自分自身が計算したグローバルモデルのパラメータのシェアからグローバルモデルのパラメータを計算する。パラメータ計算部134nは、計算したグローバルモデルのパラメータを記録部190nに記録する。なお、記録部190nには、今回の計算で得られたグローバルモデルのパラメータと前回の計算で得られたグローバルモデルのパラメータの少なくとも2つのグローバルモデルのパラメータを記録しておく。
【0037】
S135nにおいて、学習開始条件判定部135nは、S134nで計算したグローバルモデルのパラメータと前回の計算で得られたグローバルモデルのパラメータとを比較し、当該2つのグローバルモデルのパラメータが異なる場合は、学習開始条件が満たされていると判定し、S131nの処理を実行する一方、それ以外の場合は、学習開始条件が満たされていないと判定し、S133nの処理に戻る。
【0038】
S140において、秘密グローバルモデル計算装置100n(n=i1, …, iN)のパラメータシェア登録部140nは、送受信部180nを用いて受信した自分自身を除く秘密グローバルモデル計算装置100i_1、…、100i_n-1、100i_n+1、…、100i_Nのうちの1個のローカルモデル学習装置が学習したローカルモデルのパラメータのシェア、または、自分自身が学習したローカルモデルのパラメータのシェアを入力とし、ローカルモデルのパラメータのシェアをローカルモデル管理テーブルに登録する。ここで、ローカルモデル管理テーブルとは、N個のローカルモデルのパラメータのシェアを管理するためのテーブルであり、記録部190nに記録される。
【0039】
S150において、学習開始条件判定手段150は、前回グローバルモデルを計算して以降、新たに登録されたローカルモデルの数が所定の値(当該値は1以上N以下の値である)を超えたあるいは所定の値以上となった場合は、学習開始条件が満たされていると判定し、S160の処理を実行する一方、それ以外の場合は、学習開始条件が満たされていないと判定し、S140の処理に戻る。
【0040】
S160において、グローバルモデル計算手段160は、ローカルモデル管理テーブルで管理されているローカルモデルのパラメータのシェアを用いて、グローバルモデルのパラメータのシェアを計算する。グローバルモデル計算手段160は、例えば、第1ローカルモデルから第Nローカルモデルまでの対応するパラメータのシェアの平均をグローバルモデルのパラメータのシェアとする。
【0041】
なお、S110の処理を定期的に実行することにより、秘密グローバルモデル計算システムを構成する秘密グローバルモデル計算装置の組合せを定期的に変更することができる。
【0042】
本発明の実施形態によれば、連合学習において、グローバルモデルを計算する秘密計算システムを構成する装置がローカルモデルを学習する機能を備えることにより、効率的にモデルを学習することが可能となる。また、秘密グローバルモデル計算装置がローカルモデル学習機能を備えること及び計算資源に空きがある秘密グローバルモデル計算装置により秘密グローバルモデル計算システムを構成することにより、演算量や通信量を抑制し効率的にモデルを学習することが可能となる。さらに、秘密グローバルモデル計算システムを構成する秘密グローバルモデル計算装置の組合せを定期的に変更することにより、運用者の結託による漏洩リスクを抑制することが可能となる。
<第2実施形態>
第1実施形態では1つの秘密グローバルモデル計算システムを構成したが、構成する秘密グローバルモデル計算システムの数は2以上であってもよい。この場合、2以上の秘密グローバルモデル計算システムの各々が1つの層をなし、連合学習システムは全体としてニューラルネットワークにおける計算のようにある層を構成する秘密グローバルモデル計算システムが計算したグローバルモデルのパラメータのシェアをその次の層を構成する秘密グローバルモデル計算システムがローカルモデルを学習する際の初期値の設定に利用しモデルを学習する。
【0043】
以下、連合学習システム10が2個の秘密グローバルモデル計算システムを構成する場合を例に説明する。
【0044】
この場合、K個の秘密グローバルモデル計算装置のうちの任意のN個(Nは3≦N≦K/2を満たす整数)の秘密グローバルモデル計算装置はN個のローカルモデルからグローバルモデルを秘密計算する秘密グローバルモデル計算システムを構成できる。
【0045】
以下、図4に従い連合学習システム10の動作について説明する。
【0046】
S110において、秘密グローバルモデル計算装置100n(1≦n≦K)のうちの1個の秘密グローバルモデル計算装置100k_0(ただし、k0は1≦k0≦Kを満たす整数)の選択部110k_0は、送受信部180k_0を用いて自分自身を除くK-1個の秘密グローバルモデル計算装置に対して計算資源の空き状況を確認するクエリを送信し、当該K-1個の秘密グローバルモデル計算装置の中から計算資源の空き状況が大きいN-1個の秘密グローバルモデル計算装置を選択する。以下、秘密グローバルモデル計算装置100k_0を第1マスタ秘密グローバルモデル計算装置という。選択されたN-1個の秘密グローバルモデル計算装置と第1マスタ秘密グローバルモデル計算装置をあわせたN個の秘密グローバルモデル計算装置を秘密グローバルモデル計算装置100i_1、…、100i_N(ただし、i1, …, iNは1≦i1< … <iN≦Kを満たす整数)とする。したがって、k0はi1, …, iNのいずれかと一致する。ここで、k0=i~n(ただし、~nは1≦~n≦Nを満たす整数)とする。
【0047】
同様に、秘密グローバルモデル計算装置100n(1≦n≦K)のうちの1個の秘密グローバルモデル計算装置100k_1(ただし、k1は1≦k1≦Kを満たす整数であり、i1, …, iNのいずれとも異なる)、つまり、秘密グローバルモデル計算システム構成のために選択されていないK-N個の秘密グローバルモデル計算装置100nのうちの1個の秘密グローバルモデル計算装置100k_1の選択部110k_1は、送受信部180k_1を用いて自分自身と秘密グローバルモデル計算装置100i_1、…、100i_Nを除くK-N-1個の秘密グローバルモデル計算装置100nに対して計算資源の空き状況を確認するクエリを送信し、当該K-N-1個の秘密グローバルモデル計算装置100nの中から計算資源の空き状況が大きいN-1個の秘密グローバルモデル計算装置を選択する。以下、秘密グローバルモデル計算装置100k_1を第2マスタ秘密グローバルモデル計算装置という。選択されたN-1個の秘密グローバルモデル計算装置と第2マスタ秘密グローバルモデル計算装置をあわせたN個の秘密グローバルモデル計算装置を秘密グローバルモデル計算装置100i_N+1、…、100i_2N(ただし、iN+1, …, i2Nは1≦iN+1< … <I2N≦Kを満たす整数であり、i1, …, iNのいずれとも異なる)とする。したがって、k1はiN+1, …, i2Nのいずれかと一致する。ここで、k1=i^n(ただし、^nは1≦^n≦Nを満たす整数)とする。なお、秘密グローバルモデル計算装置100k_1は、例えば秘密グローバルモデル計算装置100i_~nによるブロードキャストにより、秘密グローバルモデル計算装置100i_1、…、100i_Nが選択できない装置であることを予め知っているものとする。
【0048】
S120において、第1マスタ秘密グローバルモデル計算装置である秘密グローバルモデル計算装置100i_~nのシステム構成部110i_~nは、送受信部180i_~nを用いて秘密グローバルモデル計算装置100i_1、…、100i_~n-1、100i_~n+1、…、100i_Nとの間で秘密グローバルモデル計算システムを構成するために必要となるデータを相互に交換し、N個の秘密グローバルモデル計算装置100i_1、…、100i_Nで秘密グローバルモデル計算システム(以下、第1秘密グローバルモデル計算システムという)を構成する。
【0049】
同様に、第2マスタ秘密グローバルモデル計算装置である秘密グローバルモデル計算装置100i_^nのシステム構成部110i_^nは、送受信部180i_^nを用いて秘密グローバルモデル計算装置100i_N+1、…、100i_^n-1、100i_^n+1、…、100i_2Nとの間で秘密グローバルモデル計算システムを構成するために必要となるデータを相互に交換し、N個の秘密グローバルモデル計算装置100i_N+1、…、100i_2Nで秘密グローバルモデル計算システム(以下、第2秘密グローバルモデル計算システムという)を構成する。
【0050】
S130において、秘密グローバルモデル計算装置100n(n=i1, …, iN)のローカルモデル生成部130nは、ローカルモデルを生成する。
【0051】
同様に、秘密グローバルモデル計算装置100n(n=iN+1, …, i2N)のローカルモデル生成部130nは、ローカルモデルを生成する。
【0052】
以下、図6に従いローカルモデル生成部130n(n=iN+1, …, i2N)の動作について説明する。
【0053】
S131nにおいて、ローカルモデル学習部131nは、記録部190nに記録している学習データを用いてローカルモデルを学習する。1回目のローカルモデルの学習から、ローカルモデル学習部131nは、後述するS133nで取得したグローバルモデルのパラメータのシェアを用いてローカルモデルのパラメータの初期値を設定する。
【0054】
S132nにおいて、パラメータシェア計算部132nは、S131nで学習したローカルモデルのパラメータからローカルモデルのパラメータのシェアを計算する。パラメータシェア計算部132nは、計算が終了すると、送受信部180nを用いて自分自身を除く秘密グローバルモデル計算装置100i_N+1、…、100i_n-1、100i_n+1、…、100i_2Nにローカルモデルのパラメータのシェアを送信する。
【0055】
S133nにおいて、グローバルモデル取得部133nは、S132nの処理終了後またはS135nの処理終了から所定の時間経過後に、送受信部180nを用いて秘密グローバルモデル計算装置100i_1、…、100i_N、または、自分自身を除く秘密グローバルモデル計算装置100i_N+1、…、100i_n-1、100i_n+1、…、100i_2Nからグローバルモデルのパラメータのシェアを取得する。1回目の取得では、秘密グローバルモデル計算装置100i_1、…、100i_Nからグローバルモデルのパラメータのシェアを取得する。2回目以降の取得では、L回(ただし、Lは2以上の整数)のうち1回の取得で秘密グローバルモデル計算装置100i_1、…、100i_Nからグローバルモデルのパラメータのシェアを取得し、L回のうち残りのL-1回の取得で秘密グローバルモデル計算装置100i_N+1、…、100i_n-1、100i_n+1、…、100i_2Nからグローバルモデルのパラメータのシェアを取得する。
【0056】
したがって、ローカルモデル学習部131nは、L回のうち1回の学習では第1秘密グローバルモデル計算システムのグローバルモデルのパラメータのシェアを、L回のうち残りのL-1回の学習では第2秘密グローバルモデル計算システムのグローバルモデルのパラメータのシェアをローカルモデルのパラメータの初期値としてローカルモデルを学習することになる。
【0057】
S134nにおいて、パラメータ計算部134nは、S133nで取得したグローバルモデルのパラメータのシェア、または、S133nで取得したグローバルモデルのパラメータのシェアと自分自身が計算したグローバルモデルのパラメータのシェアからグローバルモデルのパラメータを計算する。パラメータ計算部134nは、計算したグローバルモデルのパラメータを記録部190nに記録する。なお、記録部190nには、今回の計算で得られたグローバルモデルのパラメータと前回の計算で得られたグローバルモデルのパラメータの少なくとも2つのグローバルモデルのパラメータを記録しておく。
【0058】
S135nにおいて、学習開始条件判定部135nは、S134nで計算したグローバルモデルのパラメータと前回の計算で得られたグローバルモデルのパラメータとを比較し、当該2つのグローバルモデルのパラメータが異なる場合は、学習開始条件が満たされていると判定し、S131nの処理を実行する一方、それ以外の場合は、学習開始条件が満たされていないと判定し、S133nの処理に戻る。
【0059】
上記S130nにおける秘密グローバルモデル計算装置100n(n=i1, …, iN)のローカルモデル生成部130nと秘密グローバルモデル計算装置100n(n=iN+1, …, i2N)のローカルモデル生成部130nの動作に関する説明では、秘密グローバルモデル計算装置100n(n=iN+1, …, i2N)のグローバルモデル取得部133nが秘密グローバルモデル計算装置100n(n=i1, …, iN)のグローバルモデル取得部133nが生成したグローバルモデルのパラメータのシェアを取得するものとしたが、逆であってもよい。つまり、秘密グローバルモデル計算装置100n(n=i1, …, iN)のグローバルモデル取得部133nが秘密グローバルモデル計算装置100n(n=iN+1, …, i2N)のグローバルモデル取得部133nが生成したグローバルモデルのパラメータのシェアを取得するようにしてもよい。
【0060】
S140において、秘密グローバルモデル計算装置100n(n=i1, …, iN)のパラメータシェア登録部140nは、送受信部180nを用いて受信した自分自身を除く秘密グローバルモデル計算装置100i_1、…、100i_n-1、100i_n+1、…、100i_Nのうちの1個のローカルモデル学習装置が学習したローカルモデルのパラメータのシェア、または、自分自身が学習したローカルモデルのパラメータのシェアを入力とし、ローカルモデルのパラメータのシェアをローカルモデル管理テーブルに登録する。
【0061】
同様に、秘密グローバルモデル計算装置100n(n=iN+1, …, i2N)のパラメータシェア登録部140nは、送受信部180nを用いて受信した自分自身を除く秘密グローバルモデル計算装置100i_N+1、…、100i_n-1、100i_n+1、…、100i_2Nのうちの1個のローカルモデル学習装置が学習したローカルモデルのパラメータのシェア、または、自分自身が学習したローカルモデルのパラメータのシェアを入力とし、ローカルモデルのパラメータのシェアをローカルモデル管理テーブルに登録する。
【0062】
S150において、第1秘密グローバルモデル計算装置の学習開始条件判定手段150、第2秘密グローバルモデル計算装置の学習開始条件判定手段150は、それぞれ前回グローバルモデルを計算して以降、新たに登録されたローカルモデルの数が所定の値(当該値は1以上N以下の値である)を超えたあるいは所定の値以上となった場合は、学習開始条件が満たされていると判定し、S160の処理を実行する一方、それ以外の場合は、学習開始条件が満たされていないと判定し、S140の処理に戻る。
【0063】
S160において、第1秘密グローバルモデル計算装置のグローバルモデル計算手段160、第2秘密グローバルモデル計算装置のグローバルモデル計算手段160は、それぞれローカルモデル管理テーブルで管理されているローカルモデルのパラメータのシェアを用いて、グローバルモデルのパラメータのシェアを計算する。
【0064】
次に、Pを2以上の整数とし、連合学習システム10がP個の秘密グローバルモデル計算システムを構成する場合について簡単に説明する(図4参照)。
【0065】
この場合、K個の秘密グローバルモデル計算装置のうちの任意のN個(Nは3≦N≦K/Pを満たす整数)の秘密グローバルモデル計算装置はN個のローカルモデルからグローバルモデルを秘密計算する秘密グローバルモデル計算システムを構成できる。
【0066】
S110において、秘密グローバルモデル計算システム構成のために選択されていないK-(p-1)N個(ただし、pは1≦p≦Pを満たす整数)の秘密グローバルモデル計算装置のうちの1個の秘密グローバルモデル計算装置100n(以下、第pマスタ秘密グローバルモデル計算装置という)の選択部110nは、送受信部180nを用いて自分自身を除くK-(p-1)N-1個の秘密グローバルモデル計算装置に対して計算資源の空き状況を確認するクエリを送信し、当該K-(p-1)N-1個の秘密グローバルモデル計算装置の中から計算資源の空き状況が大きいN-1個の秘密グローバルモデル計算装置を選択する。
【0067】
S120において、第pマスタ秘密グローバルモデル計算装置100nのシステム構成部120nは、送受信部180nを用いてS110で選択されたN-1個の秘密グローバルモデル計算装置と自分自身をあわせたN個の秘密グローバルモデル計算装置との間で秘密グローバルモデル計算システムを構成するために必要となるデータを相互に交換し、当該N個の秘密グローバルモデル計算装置で秘密グローバルモデル計算システム(以下、第p秘密グローバルモデル計算システムという)を構成する。
【0068】
S130において、第p秘密グローバルモデル計算システムを構成する秘密グローバルモデル計算装置100nのローカルモデル生成部130nは、ローカルモデルを生成する。その際、ローカルモデル生成部130nに含まれるローカルモデル学習部131nは、学習データを用いてローカルモデルを学習する。具体的には、σを集合{1, …, P}の置換、Lを2以上の整数とし、ローカルモデル学習部131nは、pがσ(p)>1を満たす整数である場合は、L回のうち1回の学習では第p’秘密グローバルモデル計算システム(ただし、p’はσ(p’)=σ(p)-1を満たす整数)のグローバルモデルのパラメータを、L回のうち残りのL-1回の学習では第p秘密グローバルモデル計算システムのグローバルモデルのパラメータをローカルモデルのパラメータの初期値としてローカルモデルを学習し、pがσ(p)=1を満たす整数である場合は、2回目以降の学習では第p秘密グローバルモデル計算システムのグローバルモデルのパラメータをローカルモデルのパラメータの初期値としてローカルモデルを学習する。なお、σ(p’)=σ(p)-1から、p’は1≦p’≦Pを満たす、pとは異なる整数であることがわかる。
【0069】
S140において、第p秘密グローバルモデル計算システムを構成する秘密グローバルモデル計算装置100nのパラメータシェア登録部140nは、第p秘密グローバルモデル計算システムを構成する秘密グローバルモデル計算装置100nが学習したローカルモデルのパラメータのシェアを入力とし、ローカルモデルのパラメータのシェアをローカルモデル管理テーブルに登録する。
【0070】
S150において、第pマスタ秘密グローバルモデル計算装置の学習開始条件判定手段150は、前回グローバルモデルを計算して以降、新たに登録されたローカルモデルの数が所定の値(当該値は1以上N以下の値である)を超えたあるいは所定の値以上となった場合は、学習開始条件が満たされていると判定し、S160の処理を実行する一方、それ以外の場合は、学習開始条件が満たされていないと判定し、S140の処理に戻る。
【0071】
S160において、第pマスタ秘密グローバルモデル計算装置のグローバルモデル計算手段160は、ローカルモデル管理テーブルで管理されているローカルモデルのパラメータのシェアを用いて、グローバルモデルのパラメータのシェアを計算する。
【0072】
本発明の実施形態によれば、連合学習において、グローバルモデルを計算する秘密計算システムを構成する装置がローカルモデルを学習する機能を備えることにより、効率的にモデルを学習することが可能となる。また、秘密グローバルモデル計算装置がローカルモデル学習機能を備えること及び計算資源に空きがある秘密グローバルモデル計算装置により秘密グローバルモデル計算システムを構成することにより、演算量や通信量を抑制し効率的にモデルを学習することが可能となる。さらに、2以上の秘密グローバルモデル計算システムの各々が1つの層をなし、連合学習システムは全体としてニューラルネットワークにおける計算のようにモデルを学習することで、グローバルモデルを再利用した効率的なモデル学習を実現することが可能となる。
<補記>
上述した各装置の各部の処理をコンピュータにより実現してもよく、この場合は各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図7に示すコンピュータ2000の記録部2020に読み込ませ、演算処理部2010、入力部2030、出力部2040、補助記録部2025などを動作させることにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【0073】
本発明の装置は、例えば単一のハードウェアエンティティとして、ハードウェアエンティティの外部から信号を入力可能な入力部、ハードウェアエンティティの外部に信号を出力可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、演算処理部であるCPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0074】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
【0075】
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行、処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成部)を実現する。つまり、本発明の実施形態の各構成部は、処理回路(Processing Circuitry)により構成されてもよい。
【0076】
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【0077】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体は、例えば、非一時的な記録媒体であり、具体的には、磁気記録装置、光ディスク等である。
【0078】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0079】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の非一時的な記憶装置である補助記録部2025に格納する。そして、処理の実行時、このコンピュータは、自己の非一時的な記憶装置である補助記録部2025に格納されたプログラムを記録部2020に読み込み、読み込んだプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを記録部2020に読み込み、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0080】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【0081】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
図1
図2
図3
図4
図5
図6
図7