以下、添付図面を参照して本発明の実施の形態を説明する。本実施の形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施の形態は、本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。本実施の形態では、データ受信装置の目的に沿ったAI開発を可能にする、連合学習システムについて説明する。
本実施例は、連合学習システムの学習フェーズとして、共通AI学習フェーズと目的別AI学習フェーズを備えるものである。共通AI学習フェーズでは、複数の学習データと学習モデルとを用いて複数の特徴量を算出する特徴量算出処理と、特徴量算出処理で算出した複数の特徴量を集約して集約特徴量を生成する集約特徴量生成処理と、集約特徴量生成処理で生成した集約特徴量を用いて学習モデルを更新する学習モデル更新処理とが順次繰り返えされる。目的別AI学習フェーズでは、クエリ(query)の入力を条件に、複数の学習データと学習モデルとを用いてクエリに従った特徴量を示す複数のタグ付き特徴量を算出するタグ付き特徴量算出処理と、タグ付き特徴量算出処理で算出した複数のタグ付き特徴量を集約して目的別集約特徴量を生成する目的別集約特徴量生成処理と、目的別集約特徴量生成処理で生成した目的別集約特徴量を用いて学習モデルを更新する目的別学習モデル更新処理が実行される。以下、連合学習システムの具体的内容について説明する。なお、図面の構成上、実施例1で他の実施例の構成を説明することがある。
図1は、本発明の実施例1に係る連合学習システムの構成例を示すブロック図である。図1において、連合学習システム10は、共通AI学習フェーズと目的別AI学習フェーズを備えるシステムであって、特徴量集約サーバ100と、学習モデル更新サーバ200と、データ送信装置300と、データ受信装置400と、通信ネットワーク500と、を備える。特徴量集約サーバ100と、学習モデル更新サーバ200と、データ送信装置300及びデータ受信装置400は、インターネット等の通信ネットワーク500を介して相互に情報を送受信する。なお、データ送信装置300とデータ受信装置400は、複数で構成されることがある。
データ送信装置300は、例えば、開発対象の学習モデルを保持すると共に、学習モデルを用いて学習して得られた複数の学習データ(学習用データ)を保持し、共通AI学習フェーズでは、複数の学習データと学習モデルとを用いて複数の特徴量を算出し、各特徴量をそれぞれ送信情報として生成する。また、データ送信装置300は、目的別AI学習フェーズでは、クエリの入力を条件に、複数の学習データと学習モデルとを用いてクエリに従った特徴量を示す複数のタグ付き特徴量を算出し、各タグ付き特徴量をそれぞれ送信情報として生成する。学習データとしては、例えば、動物の写真やレントゲン写真などの画像データ、株の売買データを含むログデータ等が用いられる。学習モデルとしては、例えば、DeepLearningで用いられるDeep Neural Networkやランダムフォレスト等が用いられる。特徴量としては、学習モデルをDeep Neural Networkとした場合、Deep Neural Networkのパラメータ数分の実数値が算出される。
特徴量集約サーバ100は、共通AI学習フェーズでは、データ送信装置300で生成された複数の特徴量を受信した場合、受信した複数の特徴量をそれぞれ集約して、集約特徴量を生成し、生成した集約特徴量を学習モデル更新サーバ200へ送信する。また、特徴量集約サーバ100は、目的別AI学習フェーズでは、データ送信装置300で生成された複数のタグ付き特徴量を受信した場合、受信した複数のタグ付き特徴量をそれぞれ集約して、複数の目的別集約特徴量を生成し、生成した複数の目的別集約特徴量のうち、データ受信装置400から受信したクエリに適した目的別集約特徴量をデータ受信装置400へ送信する。
学習モデル更新サーバ200は、共通AI学習フェーズでは、特徴量集約サーバ100から受信した集約特徴量を基に学習モデルを更新し、更新された学習モデルをデータ受信装置400へ送信する。また、学習モデル更新サーバ200は、目的別AI学習フェーズでは、学習モデルをデータ送信装置300へ送信する。
データ受信装置400は、共通AI学習フェーズでは、更新された学習モデルを学習モデル更新サーバ200から受信し、目的別AI学習フェーズでは、学習モデル更新サーバ200へクエリを送信し、クエリに応じた目的別集約特徴量を特徴量集約サーバ100から受信し、受信した目的別集約特徴量を基に学習モデルを更新する。
なお、特徴量集約サーバ100、学習モデル更新サーバ200、データ送信装置300、及びデータ受信装置400の詳細な構成については後述する。また、連合学習システム10に含まれる装置の一部又は全部が一体化されていてもよい。例えば、特徴量集約サーバ100と、学習モデル更新サーバ200と、が一体化されていてもよいし、データ送信装置300とデータ受信装置400とが一体化されていてもよい。
図2は、本発明の実施例1に係る特徴量集約サーバのハードウェア構成例を示すブロック図である。図2において、特徴量集約サーバ100は、例えば、プロセッサ(CPU)101、補助記憶装置102、メモリ103、表示装置105、入出力インターフェース106、及び通信インターフェース107を有する計算機によって構成され、各装置が、バス等の内部信号線104を介して互いに接続される。なお、図2には、実施例1~4で用いるハードウェア及びソフトウェア資源が図示されている。
プロセッサ101は、メモリ103に格納されたプログラムを実行し、各装置を統括制御する処理装置である。メモリ103は、不揮発性の非一時的な記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変なプログラム(たとえばBIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ101が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置102は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の非一時的な記憶装置であり、プロセッサ101が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置102から読み出されて、メモリ103にロードされ、その後、プロセッサ101によって実行される。
入出力インターフェース(I/F)106は、キーボードやマウスなどの入力装置に接続され、オペレータの操作による情報を入力するインターフェースである。また、入出力インターフェース106は、表示装置105やプリンタなどの出力装置に接続され、プログラムの実行結果を、オペレータが視認可能な形式の情報に変換して出力するインターフェースでもある。表示装置105は、入出力インターフェース106から出力されたプログラムの実行結果を表示する。
通信インターフェース(I/F)107は、所定のプロトコルに従って、通信ネットワーク500を介して他の装置との通信を制御するネットワークインターフェースである。また、通信インターフェース107は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含んでもよい。
プロセッサ101が実行するプログラムの一部又は全部は、非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)、又は非一時的記憶装置を備える外部計算機から通信ネットワーク500を介して特徴量集約サーバ100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置102に格納されてもよい。このため、特徴量集約サーバ100は、リムーバブルメディアからデータを読み込むインターフェースを有する構成とすることができる。これは、学習モデル更新サーバ200、データ送信装置300、及びデータ受信装置400についても同様である。
特徴量集約サーバ100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、学習モデル更新サーバ200、データ送信装置300、及びデータ受信装置400についても同様である。
プロセッサ101は、ソフトウェア資源として、例えば、鍵生成部111、特徴量集約部112、復号処理部113、及び鍵付替部114を備える。例えば、プロセッサ101は、メモリ103にロードされた鍵生成プログラムに従って動作することで、鍵生成部111として機能し、メモリ103にロードされた特徴量集約プログラムに従って動作することで、特徴量集約部112として機能し、メモリ103にロードされた復号処理プログラムに従って動作することで、復号処理部113として機能し、メモリ103にロードされた鍵付替プログラムに従って動作することで鍵付替部114として機能する。
鍵生成部111は、例えば、初期フェーズにおいて、データ送信装置300の暗号化で用いる暗号化方式に関する情報を基に、特徴量を暗号化するための一次公開鍵と、特徴量を復号(復号化)するための一次秘密鍵を生成する。この際、鍵生成部111は、暗号技術として、例えば、加法準同型暗号を用いる。加法準同型暗号とは、暗号化された状態のまま暗号文同士の加算を行うことができる技術である。
以下、加法準同型暗号について数式を用いて説明する。M1,M2を任意の値とし、暗号鍵をpk、暗号化関数をEncとする。例えば、Enc(M,pk)は、値Mを暗号鍵pkで暗号化して得られた暗号文を指す。さらに、暗号化した状態のまま加算を行うための演算を*とする。このとき、加法準同型性より次の(1)式が成り立つ。
Enc(M1,pk)*Enc(M2,pk)=Enc(M1+M2,pk)・・・(1)
上記(1)式より、M1の暗号文とM2の暗号文から、加算した値M1+M2の暗号文を生成できる。また、加法準同型暗号の中には、公開鍵の加算が可能な暗号方式が存在する。pk1とpk2を公開鍵とし、Mを任意の値とし、*を公開鍵加算のための演算とした場合に、公開鍵の加算を数式で表現すると、次の(2)式のようになる。
Enc(M,pk1)*Enc(M,pk2)=Enc(M,pk1+pk2)・・・(2)
公開鍵の加法性を用いることで、暗号処理の計算コストを削減できる。ここで、連合学習システム10に適用する暗号技術として、例えば、上記公開鍵の加法性を有する加法準同型暗号方式である、楕円ElGamal暗号の適用等が考えられる。
特徴量集約部112は、例えば、共通AI学習フェーズにおいて、データ送信装置300から受信した特徴量もしくは暗号化特徴量に対する集約として加算や平均を行い、集約特徴量もしくは暗号化特徴量を生成する。また、集約部112は、例えば、目的別AI学習フェーズにおいて、データ送信装置300から受信した特徴量もしくはタグ付き特徴量もしくは暗号化タグ付き特徴量に対する集約として加算や平均を行い、目的別集約特徴量もしくは暗号化目的別集約特徴量を生成する。
復号処理部113は、例えば、共通AI学習フェーズにおいて、鍵生成部111で生成した一次秘密鍵を用いて、特徴量集約部112で生成した暗号化集約特徴量を復号(一次復号化)して、一次復号済暗号化集約特徴量を生成する。
鍵付替部114は、例えば、目的別AI学習フェーズにおいて、学習モデル更新サーバ200から受信した鍵付替鍵と算出した暗号化目的別集約特徴量から、データ受信装置400の保有する個別秘密鍵で復号可能な鍵付替済暗号化目的別集約特徴量を生成する。
以下、鍵付替部114における鍵付替について、数式を用いて説明する。M1を任意の値とし、暗号鍵をpk、鍵付替鍵をrk、暗号化関数をEnc、鍵付替関数をReEncとする。例えばReEnc(M,pk)は、値Mを暗号鍵pkで暗号化して得られた暗号文、(M,rk)は、値Mを鍵付替鍵rkで再暗号化した暗号文を指す。pkをrkで再暗号化した際の再暗号文に対する復号鍵をrsk、復号関数をDecとすると、次の式が成り立つ。
Dec(ReEnc(Enc(M,pk),rk),rsk)=M・・・(3)
つまり、pkで暗号化した暗号文をrkで再暗号化した再暗号文は、秘密鍵rskで復号可能となる。ここで、pkに対応する秘密鍵をskとしたとき、skでは再暗号文を復号できない。
図3は、本発明の実施例1に係る学習モデル更新サーバのハードウェアの構成例を示すブロック図である。図3において、学習モデル更新サーバ200は、例えば、プロセッサ(CPU)201、補助記憶装置202、メモリ203、表示装置205、入出力インターフェース206、及び通信インターフェース207を有する計算機によって構成され、各装置が、バス等の内部信号線204を介して互いに接続される。なお、図3には、図面の構成上、実施例1~4で用いるハードウェア及びソフトウェア資源が図示されている。
プロセッサ201、補助記憶装置202、メモリ203、内部信号線204、表示装置205、入出力インターフェース206、及び通信インターフェース207のハードウェアとしての構成は、プロセッサ101、補助記憶装置102、メモリ103、内部信号線104、表示装置105、入出力インターフェース106、及び通信インターフェース107のハードウェアとしての構成と同様であるため、これらの説明を省略する。
プロセッサ201は、ソフトウェア資源として、鍵生成部211、学習モデル更新部212、及び復号処理部213を備える。この際、例えば、プロセッサ201は、メモリ203にロードされた鍵生成プログラムに従って動作することで、鍵生成部211として機能し、メモリ203にロードされた学習モデル更新プログラムに従って動作することで、学習モデル更新部212として機能し、メモリ103にロードされた復号処理プログラムに従って動作することで、復号処理部213として機能する。
鍵生成部211は、例えば、データ送信装置300の暗号化で用いる暗号化方式に関する情報を基に、共通AI学習フェーズ前の初期フェーズにおいて、特徴量を暗号化するための二次公開鍵と、特徴量を復号(復号化)するための二次秘密鍵の情報を生成する。また、鍵生成部211は、目的別AI学習フェーズ前の初期フェーズにおいて、特徴量を暗号化するための二次公開鍵と、データ受信装置400へ送信するための個別秘密鍵の情報をそれぞれ生成し、さらに特徴量集約サーバ100が鍵付替に使用するための鍵付替鍵の情報を生成する。この際、鍵生成部211は、暗号技術として、例えば、加法準同型暗号を用いる。
復号処理部213は、例えば、共通AI学習フェーズにおいて、特徴量集約サーバ100から一次復号済暗号化集約特徴量を受信した場合、受信した一次復号済暗号化集約特徴量を、鍵生成部211で生成した二次秘密鍵を用いて復号(復号化)して、集約特徴量を生成する。
学習モデル更新部212は、例えば、共通AI学習フェーズにおいて、復号処理部213で生成した集約特徴量と学習モデル320を用いて、例えば、加算や平均により学習モデル320の更新を行う。
図4は、本発明の実施例1に係るデータ送信装置のハードウェア構成例を示すブロック図である。図4において、データ送信装置300は、例えば、プロセッサ(CPU)301、補助記憶装置302、メモリ303、表示装置305、入出力インターフェース306、及び通信インターフェース307を有する計算機によって構成され、各装置が、バス等の内部信号線304を介して互いに接続される。なお、図4には、図面の構成上、実施例1~4で用いるハードウェア及びソフトウェア資源が図示されている。
プロセッサ301、補助記憶装置302、メモリ303、内部信号線304、表示装置305、入出力インターフェース306、及び通信インターフェース307のハードウェアとしての構成は、プロセッサ101、補助記憶装置102、メモリ103、内部信号線104、表示装置105、入出力インターフェース106、及び通信インターフェース107のハードウェアとしての構成と同様であるため、これらの説明を省略する。
プロセッサ301は、ソフトウェア資源として、例えば、特徴量計算部311と暗号処理部312を備える。この際、例えば、プロセッサ301は、メモリ303にロードされた特徴量計算プログラムに従って動作することで、特徴量計算部311として機能し、メモリ303にロードされた暗号処理プログラムに従って動作することで、暗号処理部312として機能する。
データ送信装置300の補助記憶装置302は、プロセッサ301が、開発対象の学習モデル320を用いて学習して得られた学習データ321と学習モデル320を保持する。なお、学習モデル320と学習データ321は、データ送信装置300のメモリ303に格納されていてもよい。
特徴量計算部311は、共通AI学習フェーズにおいて、複数の学習データ321と学習モデル320とを用いて複数の特徴量を算出し、各特徴量をそれぞれ送信情報として生成する。また、データ送信装置300は、目的別AI学習フェーズにおいて、クエリの入力を条件に、複数の学習データ321と学習モデル320とを用いてクエリに従った特徴量を示す複数のタグ付き特徴量を算出し、各タグ付き特徴量をそれぞれ送信情報として生成する。
暗号処理部312は、例えば、共通AI学習フェーズにおいて、特徴量集約サーバ100の鍵生成部111で生成された一次公開鍵と、学習モデル更新サーバ200の鍵生成部211で生成された二次公開鍵を用いて特徴量を暗号化して暗号化特徴量を生成する。また、暗号処理部312は、目的別AI学習フェーズにおいて、学習モデル更新サーバ200の鍵生成部211で生成された二次公開鍵を用いてタグ付き特徴量を暗号化して暗号化タグ付き特徴量を生成する。この際、データ送信装置300は、特徴量集約サーバ100及び学習モデル更新サーバ200と情報の送受信を行うことで、学習モデル320、一次公開鍵324、及び二次公開鍵325に関する情報を入力することができる。
なお、データ送信装置300が、複数台で構成された場合、複数のデータ送信装置300の処理により、開発対象の学習モデル320と複数の学習データ321とから複数の特徴量もしくはタグ付き特徴量が生成され、生成された各特徴量もしくはタグ付き特徴量から複数の暗号化特徴量もしくは暗号化タグ付き特徴量が生成される。また、データ送信装置300が、複数の情報処理系統(暗号化処理系統)で構成された場合、特徴量計算部311と暗号処理部312により複数の情報処理系統(暗号化処理系統)が構成される。
図5は、本発明の実施例1に係るデータ受信装置のハードウェア構成例を示すブロック図である。図5において、データ受信装置400は、例えば、プロセッサ(CPU)401、補助記憶装置402、メモリ403、表示装置405、入出力インターフェース406、及び通信インターフェース407を有する計算機によって構成され、各装置が、バス等の内部信号線404を介して互いに接続される。なお、図5には、図面の構成上、実施例1~4で用いるハードウェア及びソフトウェア資源が図示されている。
プロセッサ401、補助記憶装置402、メモリ403、内部信号線404、表示装置405、入出力インターフェース406、及び通信インターフェース407のハードウェアとしての構成は、プロセッサ101、補助記憶装置102、メモリ103、内部信号線104、表示装置105、入出力インターフェース106、及び通信インターフェース107のハードウェアとしての構成と同様であるため、これらの説明を省略する。
プロセッサ401は、ソフトウェア資源として、例えば、学習モデル更新部411と復号処理部412を備える。この際、例えば、プロセッサ401は、メモリ403にロードされた学習モデル更新プログラムに従って動作することで、学習モデル更新部411として機能し、メモリ403にロードされた復号処理プログラムに従って動作することで、復号処理部412として機能する。
なお、プロセッサ401は、通信インターフェース407が、学習モデル更新サーバ200から、更新された学習モデル320の情報を受信した場合、受信した情報を補助記憶装置402に格納すると共に、表示装置405の画面上に表示する。
復号処理部412は、例えば、目的別AI学習フェーズにおいて、特徴量集約サーバ100から鍵付替済暗号化目的別集約特徴量を受信した場合、受信した鍵付替済暗号化目的別集約特徴量を、個別秘密鍵を用いて復号(復号化)して、目的別集約特徴量を生成する。学習モデル更新部411は、例えば、目的別AI学習フェーズにおいて、特徴量集約サーバ100から目的別集約特徴量を受信した場合、受信した目的別集約特徴量と学習モデル320を用いて、例えば、加算や平均により学習モデル320を更新する。また、学習モデル更新部411は、目的別AI学習フェーズにおいて、復号処理部412で目的別集約特徴量が生成された場合、復号処理部412で生成された目的別集約特徴量と学習モデル320を用いて、例えば、加算や平均により学習モデル320を更新する。
図6は、本発明の実施例1に係る連合学習システムの処理の一例を示すシーケンス図である。まず、共通AI学習フェーズP601の処理について説明する。図6において、学習モデル更新サーバ200は、開発対象の学習モデル320の情報を、通信ネットワーク500を介して各データ送信装置300へ送信する(S601)。開発対象の学習モデル320としては、例えば、決定木やDeepLearningなどの機械学習モデルが使用される。
各データ送信装置300は、クエリの入力がないことを条件に、保有する学習データ321と学習モデル更新サーバ200から受信した学習モデル320を用いて特徴量(共通学習用特徴量)をそれぞれ算出する(S602)。ここで、各データ送信装置300では、各特徴量を算出する前に、epoch数と呼ばれる学習をローカルで行う回数を定める必要がある。Epoch数は、各データ送信装置300が個別に定めても良いし、特徴量集約サーバ100や、学習モデル更新サーバ200が事前に定めておいてもよい。各特徴量の算出方法は、例えば、決定木の場合は、線形回帰やロジスティック回帰があり、DeepLearningの場合は、統計的勾配降下法などがある。
各データ送信装置300は、ステップS620で生成した特徴量の情報を、通信ネットワーク500を介して特徴量集約サーバ100へ送信する(S603)。
特徴量集約サーバ100は、各データ送信装置300から特徴量の情報を受信した場合、各特徴量の情報を集約して、集約特徴量(共通学習用集約特徴量)を生成する(S604)。各特徴量の情報の集約方法として、例えば、加算や平均が考えられる。集約を行うタイミングについては、全てのデータ送信装置300から特徴量を受信してから集約を行ってもよいし、時間や特徴量に関する閾値を定めて、一定時間経過もしくは一定個数以上の特徴量を受信したら集約を行ってもよい。
例えば、特徴量集約サーバ100は、複数のデータ送信装置300の各々から特徴量を順次入力し、入力した特徴量が設定数に達したときの第1タイミング(第1時間)と、複数のデータ送信装置300の各々から特徴量を入力する入力開始時時間から設定時間経過したときの第2タイミング(第2時間)をそれぞれ監視し、少なくとも第1タイミング又は第2タイミングで、入力した特徴量をそれぞれ集約する。これにより、特徴量集約サーバ100は、設定した第1タイミング又は第2タイミングから、入力した特徴量をそれぞれ集約する処理を開始することができる。
この後、特徴量集約サーバ100は、ステップS604で生成した集約特徴量の情報を、通信ネットワーク500を介して学習モデル更新サーバ200へ送信する(S605)。
次に、学習モデル更新サーバ200は、ステップS605で受信した集約特徴量(共通学習用集約特徴量)を用いて学習モデル320を更新する(S606)。学習モデル320を更新する際は、例えば、集約特徴量を学習モデル320に加算する方法や、集約特徴量をデータ送信装置300の数で除算するなどの処理を行ったうえで加算する方法等が考えられる。
この後、学習モデル更新サーバ200は、更新された学習モデル320の情報を、通信ネットワーク500を介してデータ受信装置400へ送信する(S607)。
以上、ステップS601~ステップS606が共通AI学習フェーズ601である。ステップS601~ステップS606の処理を複数回繰り返すことで、学習モデル320の精度を高めることができる。
次に、目的別AI学習フェーズP602の処理について説明する。図6において、学習モデル更新サーバ200は、開発対象の学習モデル320の情報を、通信ネットワーク500を介してデータ送信装置300へ送信する(S601)。開発対象の学習モデル320としては、例えば、決定木やDeepLearningなどの機械学習モデルが使用される。
特徴量集約サーバ100は、特徴量に付加するタグを含むクエリ(第1クエリ)の情報、例えば、データ抽出要件(性別、年齢等の抽出要件)を規定したクエリの情報(クエリ情報)を各データ送信装置300へ送信する(S608)。
各データ送信装置300は、S608で受信したクエリ情報に基づいて、保有する学習データ321と学習モデル更新サーバ200から受信した学習モデル320を用いて、クエリに従った特徴量(性別、年齢等のデータ抽出要件を満たす特徴量)として、複数のタグ付き特徴量をそれぞれ算出する(S609)。ここで、例えば、クエリのデータ抽出要件として、30歳未満のデータと30歳以上のデータとの比率を3:7で学習することが規定されている場合、学習データとして、30歳未満のデータと30歳以上のデータとの比率が3:7となるデータが用いられ、これらの学習データと学習モデル320とを基に、クエリに従った特徴量が算出される。また、各データ送信装置300では、各タグ付き特徴量を算出する前に、epoch数と呼ばれる学習をローカルで行う回数を定める必要がある。Epoch数は、各データ送信装置300が個別に定めても良いし、特徴量集約サーバ100や、学習モデル更新サーバ200が事前に定めておいてもよい。各タグ付き特徴量の算出方法は、例えば、決定木の場合は、線形回帰やロジスティック回帰があり、DeepLearningの場合は、統計的勾配降下法などがある。
各データ送信装置300は、ステップS609で生成したタグ付き特徴量の情報を、通信ネットワーク500を介して特徴量集約サーバ100へ送信する(S610)。
特徴量集約サーバ100は、各データ送信装置300から複数のタグ付き特徴量の情報を受信した場合、各タグ付き特徴量の情報を集約して、目的別集約特徴量を複数生成する(S611)。各タグ付き特徴量の情報の集約方法として、例えば、性別や年齢などの要件を設定し、要件を満たすタグの付き特徴量のみに対し、加算や平均を行う方法が考えられる。集約を行うタイミングについては、共通AI学習フェーズと同様の方法が考えられる。
次に、学習モデル更新サーバ200は、データ受信装置400からのクエリ(第2クエリ)を受信した場合(S612)、生成した複数の目的別集約特徴量のうち、受信したクエリに適した目的別集約特徴量の情報を、通信ネットワーク500を介してデータ受信装置400へ送信する(S613)。この際、クエリ(第2クエリ)として、性別や年齢などのデータ集約要件が規定されている場合、クエリに適した目的別集約特徴量として、性別や年齢別の目的別集約特徴量が生成される。なお、第1クエリと第2クエリとしては、例えば、学習モデルを更新するための目的に沿ったクエリであって、学習に利用したいデータ(学習データに利用するデータ)のデータ分布等のデータ集約要件が規定されたクエリを用いることもできる。また、第1クエリの内容と第2クエリの内容をそれぞれ異なるようにすることもできる。この場合、第2クエリの内容を第1クエリの内容よりも要件の範囲を絞り込んだものにする。例えば、第1クエリのデータ抽出要件を、全ての年齢のデータとし、第2クエリのデータ集約要件を、特定の年代のデータとする。
データ受信装置400は、学習モデル更新サーバ200から受信した目的別集約特徴量を用いて学習モデル320(共通AI学習フェーズP601で更新された学習モデル320)を更新する(S614)。学習モデル320を更新する際は、例えば、目的別集約特徴量を学習モデル320に加算する方法や、目的別集約特徴量をデータ送信装置300の数で除算するなどの処理を行ったうえで加算する方法等が考えられる。
この後、データ受信装置400は、更新された学習モデル320の性能などに関する情報を、ネットワーク500を介して学習モデル更新サーバ200および、特徴量集約サーバ100へ送信するフィードバックの処理を実行する(615)。
ステップS601、S602、S608~ステップS615が目的別AI学習フェーズP602である。
本実施例によれば、学習モデルを更新するための目的に沿って集約された目的別集約特徴量で学習モデルを更新することができる。すなわち、本実施例によれば、共通AI学習フェーズにおいて通常の連合学習同様に学習モデルを更新することができ、また目的別AI学習フェーズにおいて、特徴量集約サーバ100でタグ付き特徴量を収集することで、データ受信装置400のクエリ(第2クエリ)に沿った更新モデルを生成することができ、結果として、データ受信装置400のクエリに沿った目的別AIの開発が可能となる。
また、本実施例においては、目的別AI学習フェーズにおいて、特徴量集約サーバ100は、算出した目的別集約特徴量のリストを作成し、データ受信装置400は、リストの中から必要な目的別集約特徴量のクエリを特徴量集約サーバ100へ送り、データ受信装置400のクエリの対象となる目的別集約特徴量を入手するという場面を想定している。
本実施例は、共通AI学習フェーズの前に、初期フェーズとして、データの暗号化に必要な鍵生成処理を実行し、共通AI学習フェーズにおいて、初期フェーズにおいて、鍵生成処理で生成された鍵を用いて特徴量を暗号化するようにしたものである。すなわち、本実施例は、特徴量を暗号化することで、特徴量からデータ送信端末の持つ学習データを復元する攻撃等、データ漏洩攻撃への耐性を高めた手法である。なお、実施例1とは、ハードウェアの構成及びソフトウェア資源の一部の構成は同一である。
図8は、本発明の実施例3に係る連合学習システムの処理の一例を示すシーケンス図である。図8において、学習モデル更新サーバ200は、まず、共通AI学習前の初期フェーズP801の処理として、二次公開鍵の鍵生成を行い(S801)、開発対象の学習モデル320と生成した二次公開鍵及び暗号パラメータの情報を、通信ネットワーク500を介して各データ送信装置300へ送信し(S802)、さらに、暗号パラメータの情報を、通信ネットワーク500を介して特徴量集約サーバ100へ送信する(S803)。
特徴量集約サーバ100は、受信した暗号パラメータの情報を基に一次公開鍵の鍵生成を行い(S804)、生成した一次公開鍵の情報を、通信ネットワーク500を介して各データ送信装置300へ送信する(S805)。
学習モデル更新サーバ200による鍵生成処理(S801)と、特徴量集約サーバ100による鍵生成処理(S804)では、例えば、加法準同型暗号の一つである、楕円Elgamal暗号を用いる。この場合、ステップS802やステップS803で送信される暗号パラメータは、例えば、楕円Elgamal暗号を利用するという情報や、使用する楕円曲線、基点の情報などを含む。なお、暗号パラメータの設定は、学習モデル更新サーバ200が行ってもよいし、特徴量集約サーバ100が行ってもよい。開発対象の学習モデル320としては、例えば、決定木やDeepLearningなどの機械学習モデルが使用される。
次に、共通AI学習フェーズP802における処理として、各データ送信装置300は、保有する学習データ321と学習モデル更新サーバ200から受信した学習モデル320を用いて特徴量(共通学習用特徴量)をそれぞれ算出する(S602)。ここで、各データ送信装置300では、各特徴量を算出する前に、epoch数と呼ばれる学習をローカルで行う回数を定める必要がある。Epoch数は、各データ送信装置300が個別に定めても良いし、特徴量集約サーバ100や、学習モデル更新サーバ200が事前に定めておいてもよい。各特徴量の算出方法は、例えば、決定木の場合は、線形回帰やロジスティック回帰があり、DeepLearningの場合は、統計的勾配降下法などがある。
次に、各データ送信装置300は、ステップS802で受信した二次公開鍵と、ステップS805で受信した一次公開鍵を用いて特徴量の暗号化を行い、暗号化特徴量(共通学習用暗号化特徴量)を生成する(S806)。特徴量を暗号化するに際して、例えば、公開鍵の数だけ特徴量を暗号化する方法や、公開鍵を先に加算し、算出された加算公開鍵を用いて一度だけ暗号化を行う方法が考えられる。
各データ送信装置300は、ステップS806で生成した暗号化特徴量の情報を、通信ネットワーク500を介して特徴量集約サーバ100へ送信する(S807)。
特徴量集約サーバ100は、各データ送信装置300から暗号化特徴量の情報を受信した場合、各暗号化特徴量の情報を集約して、暗号化集約特徴量(共通学習用暗号化集約特徴量)を生成する(S808)。各暗号化特徴量の情報の集約方法として、例えば、加算や平均が考えられる。加法準同型暗号を用いることにより、暗号化した状態のまま加算を行うことが可能となる。集約を行うタイミングについては、全てのデータ送信装置300から暗号化特徴量を受信してから集約を行ってもよいし、時間や暗号化特徴量の数に関する閾値を定めて、一定時間経過もしくは一定個数以上の暗号化特徴量を受信したタイミングで集約を行ってもよい。
例えば、特徴量集約サーバ100は、複数のデータ送信装置300の各々から暗号化特徴量を順次入力し、入力した暗号化特徴量が設定数に達したときの第1タイミング(第1時間)と、複数のデータ送信装置300の各々から暗号化特徴量を入力する入力開始時時間から設定時間経過したときの第2タイミング(第2時間)をそれぞれ監視し、少なくとも第1タイミング又は第2タイミングで、入力した暗号化特徴量をそれぞれ集約する。これにより、特徴量集約サーバ100は、設定した第1タイミング又は第2タイミングから、入力した暗号化特徴量をそれぞれ集約する処理を開始することができる。
特徴量集約サーバ100は、ステップS804で生成した一次秘密鍵を用いて、ステップS808で生成した暗号化集約特徴量の復号(復号化)を行い、一次復号済暗号化集約特徴量を生成する(S809)。ここで、特徴量集約サーバ100は、ステップS801で学習モデル更新サーバ200により生成された二次秘密鍵を保有していないため、暗号化集約特徴量を完全に復号(復号化)することはできない。このように、特徴量集約サーバ100において集約後に一次復号(一次復号化)を行うので、万一、集約前の暗号化特徴量が漏えいしたとしても、暗号化特徴量が多重に暗号化されているため、二次秘密鍵しか持たない学習モデル更新サーバ200は、暗号化特徴量を完全には復号できず、元の特徴量の安全性は確保される。
この後、特徴量集約サーバ100は、ステップS809で生成した一次復号済暗号化集約特徴量の情報を、通信ネットワーク500を介して学習モデル更新サーバ200へ送信する(S810)。
学習モデル更新サーバ200は、一次復号済暗号化集約特徴量の情報を受信した場合、ステップS701で生成した二次秘密鍵を用いて、一次復号済暗号化集約特徴量を復号(復号化)して、集約特徴量を生成する(S811)。
次に、学習モデル更新サーバ200は、ステップS811で生成した集約特徴量を用いて学習モデル320を更新する(S606)。学習モデル320を更新する際は、例えば、集約特徴量を学習モデル320に加算する方法や、集約特徴量をデータ送信装置300の数で除算するなどの処理を行ったうえで加算する方法等が考えられる。
この後、学習モデル更新サーバ200は、更新された学習モデル320の情報を、通信ネットワーク500を介してデータ受信装置400へ送信する(S607)。
ステップS801~ステップS805を初期フェーズ(共通AI学習フェーズ前)P801とし、ステップS601、S602、S806~ステップS811を共通AI学習フェーズP802とした場合、初期フェーズP801の処理を終えた後、共通AI学習フェーズP802の処理を繰り返し行っても良い。すなわち、共通AI学習フェーズP802のステップS607の後、再び共通AI学習フェーズP802のステップS601から同様の手順で処理を行っても良い。また、ステップS606の後、ステップS607の処理を行わずに、共通AI学習フェーズ802のステップS601から同様の手順で処理を行っても良い。
ここで、ステップS806~ステップS811の具体的な処理として、例えば、暗号方式として楕円ElGamal暗号を用いた場合について説明する。この際、暗号パラメータの一つである楕円曲線上の基点をG、一次秘密鍵である整数値をa、二次秘密鍵である整数値をb、一次公開鍵をaG、二次公開鍵をbGとする。暗号化する2つの楕円曲線上の点をM1、M2とする。また、暗号化において、一次公開鍵aGと二次公開鍵bGを先に加算して加算公開鍵(a+b)Gを算出し、上記加算公開鍵を用いて暗号化する場合を考える。このとき、楕円曲線上の点M1、M2の暗号文は、それぞれランダムな整数値r1、r2を乱数として用いて、(r1G,r1(a+b)G+M1),(r2G,r2(a+b)G+M2)となり(S806)、これらの暗号文は、暗号化特徴量として、各データ送信装置300から特徴量集約サーバ100へ送られる(S807)。なお、整数値r1、r2を乱数として用いない場合、同じデータは、同じ暗号文に変換されるので、整数値r1、r2は毎回生成される。
特徴量集約サーバ100は、各暗号文の集約を行うことで、暗号化集約特徴量として、((r1+r2)G,(r1+r2)(a+b)G+M1+M2)を算出し(S808)、更に一次秘密鍵であるaと暗号化集約特徴量を用いて、以下の計算を行う(S809)。
((r1+r2)(a+b)G+M1+M2)―a((r1+r2)G)=b(r1+r2)G+M1+M2・・・(3)
この際、特徴量集約サーバ100は、算出した((r1+r2)G,b(r1+r2)G+M1+M2)を一次復号済暗号化集約特徴量として、学習モデル更新サーバ200へ送信する(S810)。
学習モデル更新サーバ200は、一次復号済暗号化集約特徴量を受信した場合、二次秘密鍵であるbと一次復号済暗号化集約特徴量を用いて以下の計算を行う(S811)。
(b(r1+r2)G+M1+M2)―b((r1+r2)G)=M1+M2・・・(4)
上記計算により、学習モデル更新サーバ200は、(4)式による復号処理により集約特徴量として、M1+M2を生成する。ただし、連合学習システム10では、ステップS806において、特徴量を暗号化する必要がある。この際、特徴量は、実数値、楕円曲線上の点は整数値であるため、楕円ElGamal暗号を用いる場合、特徴量と楕円曲線上の点を変換する仕組みが必要になる。変換する方法として、例えば、事前にnbitと楕円曲線上の点の変換表を作成しておき、特徴量をbit数nの2進数表現に変換したのち、上記変換表を用いて楕円曲線上の点へ変換する方法が考えられる。
また、特徴量を暗号化するに際しては、暗号化と復号(復号化)を効率的に行うために、特徴量を丸める方法を採用することができる。特徴量を丸める方法としては、例えば、値nを設定し、特徴量に対して、切り上げ又は切り下げ処理を実行し、nビット表現に統一する方法を採用することができる。すなわち、特徴量を丸めずに暗号化すると、暗号化集約特徴量を復号(復号化)する際に参照するルックアップテーブル(対応表)の情報量が多くなり、復号に時間がかかるので、特徴量を丸める方法が採用される。この際、各データ送信装置300は、特徴量を多重に暗号化する前に、特徴量に対して切り上げ処理又は切り下げ処理を実行し、特徴量の値を、設定されたビット情報に統一する。これにより、特徴量集約サーバ100や学習モデル更新サーバ200は、特徴量の復号(復号化)を効率的に行うことができる。
ここで、具体例として、例えば、特徴量(feature)を、0<又は=feature<又は=1を満たす実数値とし、特徴量を丸めた後の値を、fとすると、n=2の場合、2ビットなので、次の4通りの値に特徴量を丸めることができる。この際、特徴量を丸める方法としては、以下の方法が採用される。
f=0 if 0<又は=feature<0.25 ・・・(a)
f=0.33 if 0.25<又は=feature<0.5 ・・・(b)
f=0.67 if 0.5<又は=feature<0.75 ・・・(c)
f=1 if 0.75<又は=feature<又は=1 ・・・(d)
なお、n=4の場合、4ビットなので、16通りの値に特徴量を丸めることができる。
本実施例において、特徴量集約サーバ100は、暗号化集約特徴量の復号(復号化)を、暗号化特徴量の集約後に行っているが、暗号化特徴量の集約前に暗号化特徴量の復号(復号化)を行うことも可能である。
本実施例においては、学習モデル更新サーバ200が二次秘密鍵の生成をする代わりに、データ送信装置300が二次秘密鍵の生成を実施し、データ送信装置300で生成した二次秘密鍵を、学習モデル更新サーバ200が、データ送信装置300から受信しても良い。すなわち、特徴量集約サーバ100に学習モデル更新サーバ200の二次秘密鍵が漏洩しない限り、特徴量集約サーバ100は、一次復号済暗号化集約特徴量を復号(復号化)することはできない。
本実施例においては、データ送信装置300が秘密鍵の生成を実施する場合、複数のデータ送信装置300がそれぞれ秘密鍵を生成し、各データ送信装置300で生成された秘密鍵から導出される値を二次秘密鍵としても良い。例えば、n個の秘密鍵の合計を二次秘密鍵としても良い。
さらに、本実施例においては、2種類(一次と二次)の秘密鍵と公開鍵のペアを用いたが、暗号化と復号の種類数に限定は無く、例えば、各データ送信装置300がそれぞれ特徴量を5重に暗号化し、特徴量集約サーバ100が暗号化特徴量を2重に復号し、モデル更新サーバ200が暗号化特徴量を3重に復号しても良い。
本実施例によれば、複数の特徴量を多重に暗号化し、多重に暗号化された複数の暗号化特徴量を集約して異なる装置で多段階に分けて復号することができる。結果として、暗号化特徴量を多段階に分けて復号(復号化)する過程で、特徴量が復号(復号化)されるリスクを低減することができ、高い情報セキュリティを確保することが可能になる。
また、本実施例によれば、共通AI学習フェーズにおいて、学習モデル更新サーバ200が二次秘密鍵を保有しているため、学習モデル更新サーバ200で二次秘密鍵を用いて一次復号済暗号化集約特徴量を復号(復号化)して集約特徴量を生成することができる。
なお、特徴量集約サーバ100が特徴量を漏洩しないこと、及び学習モデル更新サーバ200が一次復号済暗号化集約特徴量以外を復号(復号化)しないことを条件に、特徴量及びタグ付き特徴量一重暗号化(一次公開鍵のみを用いた暗号化)するだけで、特徴量及びタグ付き特徴量を二重暗号化(一次公開鍵と二次公開鍵を用いた暗号化)する場合と同等のセキュリティを確保することは可能である。
本実施例は、目的別AI学習フェーズの前に、初期フェーズとして、データの暗号化に必要な鍵生成処理を実行し、目的別AI学習フェーズにおいて、鍵生成処理で生成された鍵を用いてタグ付き特徴量を暗号化するようにしたものである。すなわち、本実施例は、タグ付き特徴量を暗号化することで、タグ付き特徴量からデータ送信端末の持つ学習データを復元する攻撃等、データ漏洩攻撃への耐性を高めた手法である。なお、実施例1とは、ハードウェアの構成及びソフトウェア資源の一部の構成は同一である。また、データ受信装置400は、複数台存在することを想定している。
図9は、本発明の実施例4に係る連合学習システムの処理の一例を示すシーケンス図である。図9において、学習モデル更新サーバ200は、まず、共通AI学習前の初期フェーズP901の処理として、二次公開鍵と、各データ受信装置400が鍵付替暗号化目的別集約特徴量の復号(復号化)に使用する個別秘密鍵と、特徴量集約サーバ100が鍵付替に使用する鍵付替鍵、及び暗号パラメータの情報をそれぞれ生成する(S901)。
この後、学習モデル更新サーバ200は、開発対象の学習モデル320と生成した二次公開鍵及び暗号パラメータの情報を、通信ネットワーク500を介して各データ送信装置300へ送信し(S902)、また各々の個別秘密鍵の情報を各々のデータ受信装置400へ送信し(S903)、さらに、暗号パラメータと鍵付替鍵の情報を、通信ネットワーク500を介して特徴量集約サーバ100へ送信する(S904)。
なお、学習モデル更新サーバ200による鍵生成処理(S901)では、例えば、加法準同型暗号の一つである、楕円Elgamal暗号を用いる。この場合、ステップS902やステップS904で送信される暗号パラメータは、例えば、楕円Elgamal暗号を利用するという情報や、使用する楕円曲線、基点の情報などを含む。
次に、目的別AI学習フェーズP902における処理として、ステップS601、S608、S609、S905~S907、S612、S908~S910、S614~S615の処理が実行される。この際、ステップS601、S608、S609、S612、S614については、実施例1の目的別AI学習フェーズと同様であるので、以下、実施例1の目的別AI学習フェーズにおける処理とは異なる処理(S905~S910)について説明する。
ステップS609の後、各データ送信装置300は、ステップS902で受信した二次公開鍵を用いて、ステップS609で算出したタグ付き特徴量の暗号化を行い、暗号化タグ付き特徴量を生成し(S905)、生成した暗号化タグ付き特徴量の情報を特徴量集約サーバ100へ送信する(S906)。この際、タグの暗号化方法として、例えば、二次公開鍵を用いてタグを暗号化しても良いし、タグを暗号化しなくても良い。
特徴量集約サーバ100は、各データ送信装置300から暗号化タグ付き特徴量の情報を受信した場合、各暗号化タグ付き特徴量の情報を集約して、複数の暗号化目的別集約特徴量を生成する(S907)。各暗号化タグ付き特徴量の情報の集約方法として、例えば、加算や平均が考えられる。加法準同型暗号を用いることにより、暗号化した状態のまま加算を行うことが可能となる。集約を行うタイミングについては、全てのデータ送信装置300から暗号化タグ付き特徴量を受信してから集約を行ってもよいし、時間や暗号化タグ付き特徴量の数に関する閾値を定めて、一定時間経過もしくは一定個数以上の暗号化タグ付き特徴量を受信したタイミングで集約を行ってもよい。
次に、特徴量集約サーバ100は、データ受信装置400からクエリ(第2クエリ)を受信した場合(S612)、生成した複数の暗号化目的別集約特徴量のうち、クエリ対象の暗号化目的別集約特徴量と、ステップS904で受信した鍵付替鍵とを用いた鍵付替処理を行って鍵付替済暗号化目的別集約特徴量を生成し(S908)、生成した鍵付替済暗号化目的別集約特徴量の情報をデータ受信装置400へ送信する(S909)。ここで、鍵付替後は、鍵付替鍵に対応した個別秘密鍵を持つデータ受信装置400のみが、鍵付替済暗号化目的別集約特徴量を復元可能となる。このため、特徴量集約サーバ100は、ステップS908で適切な鍵付替鍵を選ぶことで、ステップS612でクエリを送信したデータ送信装置300のみ復元可能な暗号文として、鍵付替済暗号化目的別集約特徴量の情報を生成できる。
この後、データ受信装置400は、ステップS909で受信した鍵付替済暗号化目的別集約特徴量を、ステップS903で受信した個別秘密鍵を用いて復号(復号化)して目的別集約特徴量を生成する(S910)。このとき、鍵付替済暗号化目的別集約特徴量が別のデータ受信端末400向けに送られた暗号文であった場合、クエリの対象でないデータ受信装置400の保有する個別秘密鍵では鍵付替済暗号化目的別集約特徴量を復号(復号化)できない。
ここで、ステップS907~ステップS910の鍵付替と復号(復号化)の具体的な処理として、例えば、暗号方式として楕円ElGamal暗号を用いた場合について説明する。この際、暗号パラメータの一つである楕円曲線上の基点をG、二次秘密鍵である整数値をb、個別秘密鍵である整数値をc、鍵付替鍵である整数値をc/b、二次公開鍵をbGとする。ここで、c/bは、暗号パラメータで定められた有限体上での除算であることに注意し、暗号化する楕円曲線上の点をMとする。このとき、楕円曲線上の点Mの暗号文は、ランダムな整数値rを乱数として用いて、(brG,rG+M)である(S907)。(brG,rG+M)は、暗号化目的別集約特徴量に対応している。なお、整数値rを乱数として用いない場合、同じデータは、同じ暗号文に変換されるので、整数値rは毎回生成される。
次に、特徴量集約サーバ100は、鍵付替鍵と暗号化目的別集約特徴量を用いて、(brG)*(c/b)=crG を算出し(S908)、(crG,rG+M)を鍵付替済暗号化目的別集約特徴量としてデータ受信装置400へ送信する(S909)。
データ受信装置400は、受信した鍵付替済暗号化目的別集約特徴量と個別秘密鍵を用いて次の計算を行う。
(rG+M)―(crG/c)=M・・・(5)
上記計算により、データ受信装置400は、(5)式による復号処理(復号化処理)により目的別集約特徴量として、Mを生成する。ただし、連合学習システム10では、ステップS905において、タグ付き特徴量を暗号化する必要がある。この際、タグ付き特徴量は、実数値、楕円曲線上の点は整数値であるため、楕円ElGamal暗号を用いる場合、タグ付き特徴量と楕円曲線上の点を変換する仕組みが必要になる。変換する方法として、例えば、事前にnbitと楕円曲線上の点の変換表を作成しておき、特徴量をbit数nの2進数表現に変換したのち、上記変換表を用いて楕円曲線上の点へ変換する方法が考えられる。
本実施例において、特徴量集約サーバ100は、暗号化タグ付き特徴量の復号(復号化)を、暗号化タグ付き特徴量の集約後に行っているが、暗号化タグ付き特徴量の集約前に暗号化タグ付き特徴量の復号を行うことも可能である。
本実施例によれば、実施例1と同様の効果を奏することができると共に、目的別AI学習フェーズにおいて、データ受信装置400が個別秘密鍵を保有しているため、鍵付替鍵に対応した個別秘密鍵を保有するデータ受信装置400で個別秘密鍵を用いて鍵付替済暗号化目的別集約特徴量を復号(復号化)して目的別集約特徴量を生成することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
また、上記の各構成、機能手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)カード、DVD(Digital Versatile Disc)等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。