(57)【要約】【課題】センシティブな情報を含むデータを秘匿したまま機械学習できるようにする。【解決手段】本情報処理方法は、（Ａ）第１の格納部に格納される、機械学習のための学習データに含まれる複数種類の属性値を混合する変換を行うための第１の変換ルールを生成又は取得するステップと、（Ｂ）上記学習データに対して、第１の変換ルールに従った変換を含む秘匿化変換を行って秘匿化学習データを生成し、第２の格納部に格納するステップとを含む。【選択図】図１
2019219813.tif 000002
【特許請求の範囲】
【請求項１】
第１の格納部に格納される、機械学習のための学習データに含まれる複数種類の属性値を混合する変換を行うための第１の変換ルールを生成又は取得するステップと、
前記学習データに対して、前記第１の変換ルールに従った変換を含む秘匿化変換を行って秘匿化学習データを生成し、第２の格納部に格納するステップと、
を、コンピュータに実行させるためのプログラム。
【請求項２】
前記第１の格納部に格納される、前記機械学習のための教師データに含まれる属性値に対して変換を行うための第２の変換ルールを生成又は取得するステップと、
前記教師データに対して、前記第２の変換ルールに従った変換を含む秘匿化変換を行って秘匿化教師データを生成し、前記第２の格納部に格納するステップと、
をさらに、前記コンピュータに実行させるための請求項1記載のプログラム。
【請求項３】
判定データに対して、前記第１の変換ルールに従った変換を含む秘匿化変換を行って、秘匿化判定データを生成するステップと、
前記秘匿化学習データと教師データとを用いて機械学習が行われた学習済みモデルを実装したシステムに対して、前記秘匿化判定データを送信して、当該秘匿化判定データに対する判定結果を受信するステップと、
をさらに、前記コンピュータに実行させるための請求項１記載のプログラム。
【請求項４】
判定データに対して、前記第１の変換ルールに従った変換を含む秘匿化変換を行って、秘匿化判定データを生成するステップと、
前記秘匿化学習データ及び前記秘匿化教師データを用いて機械学習が行われた学習済みモデルを実装したシステムに対して、前記秘匿化判定データを送信して、当該秘匿化判定データに対する秘匿化判定結果を受信するステップと、
受信した前記秘匿化判定結果に対して、前記第２の変換ルールに基づく逆変換を実行して、判定結果を生成するステップと、
をさらに、前記コンピュータに実行させるための請求項２記載のプログラム。
【請求項５】
前記第１の変換ルールに係るデータを、他のコンピュータに送信するステップ
をさらに前記コンピュータに実行させるための請求項１記載のプログラム。
【請求項６】
前記秘匿化学習データを用いて機械学習が行われた学習済みニューラルネットワークを実装したシステムから、前記学習済みニューラルネットワークの重みのデータを取得するステップと、
前記重みのうち所定部分の重みに対して、前記第１の変換ルールに基づく変換を行うステップと、
をさらに、前記コンピュータに実行させるための請求項１記載のプログラム。
【請求項７】
前記秘匿化学習データを用いて機械学習が行われた学習済みニューラルネットワークを実装したシステムから、前記学習済みニューラルネットワークにおける現在の重みと所定時点における重みとの差分に係る差分データを取得するステップと、
前記差分データのうち所定部分の重みの差分に対して、前記第１の変換ルールに基づく変換を行うステップと、
前記差分データのうち前記所定部分の重みの変換後の差分と、前記差分データのうち前記所定部分以外の重みの差分とを、前記所定時点における重みに基づき構築された学習済みニューラルネットワークに対して反映するステップと、
をさらに、前記コンピュータに実行させるための請求項６記載のプログラム。
【請求項８】
前記第１の変換ルールが、
前記機械学習の対象となるニューラルネットワークの構成に応じて、前記複数種類の属性値を混合する変換を行うための変換ルールである
請求項１記載のプログラム。
【請求項９】
前記第１の変換ルールが、
前記学習データにおける指定の属性毎に当該属性の値の分布に基づき調整され、且つ前記指定の属性の値を混合する変換を行うための第１の行列
を含む請求項１記載のプログラム。
【請求項１０】
前記第１の変換ルールが、
前記学習データにおける指定の属性の値を混合する変換を行うための第１の行列を、当該第１の行列の特性と前記秘匿化学習データを用いて機械学習が行われるニューラルネットワークにおける非線形関数の特性とに応じて調整した第２の行列
を含む請求項８記載のプログラム。
【請求項１１】
前記秘匿化変換が、
前記秘匿化学習データを用いて機械学習が行われるニューラルネットワークが畳み込みニューラルネットワークである場合に、前記第１の変換ルールによって変換された学習データに含まれる属性の所定の組み合わせを、同一の教師データに対して、前記畳み込みニューラルネットワークの構造に応じて複数生成し、当該組み合わせの順番を入れ替える処理
を含む、請求項１記載のプログラム。
【請求項１２】
第１の格納部に格納される、機械学習のための学習データに含まれる複数種類の属性値を混合する変換を行うための第１の変換ルールを生成又は取得するステップと、
前記学習データに対して、前記第１の変換ルールに従った変換を含む秘匿化変換を行って秘匿化学習データを生成し、第２の格納部に格納するステップと、
を含み、コンピュータが実行する情報処理方法。
【請求項１３】
第１の格納部に格納される、機械学習のための学習データに含まれる複数種類の属性値を混合する変換を行うための第１の変換ルールを生成又は取得する手段と、
前記学習データに対して、前記第１の変換ルールに従った変換を含む秘匿化変換を行って秘匿化学習データを生成し、第２の格納部に格納する手段と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの秘匿化技術に関する。
【背景技術】
【０００２】
互いの入力を秘匿したまま計算結果を得る方法としてMulti Party Computation（以下、MPCと呼ぶ）が知られている。このMPCを用いて、ニューラルネットワークを実現しようとすると、以下のような問題がある。
【０００３】
すなわち、機械学習やニューラルネットワークでは、MPCで効率よく実現することが容易ではない非線形関数や秘匿値同士の掛け算などを実現する必要があるため、それらの計算を行うたびに遅延が生ずる。また、既にチューニングされた既存のニューラルネットワーク、機械学習、深層学習などの計算環境、ライブラリ、API(Application Program Interface)などを活用できず、MPC用に一から作成しなければならない。さらに、MPC専用で開発してしまうと、既存のニューラルネットワーク、機械学習、深層学習などの計算環境に対して行われる高速化のための技術進化を有効に活用できなくなる可能性がある。また、計算処理を進める毎に、データ保有者の端末とクラウドなどの計算基盤との間で大量の通信が発生し、通信の遅延も生じる。さらに、データ保有者の端末やその代わりに計算を行うクラウドなどの計算負荷が高い。
【０００４】
このような問題点を解決するための研究も行われているが、現状では有効な解決手段は提案されていない。
【０００５】
一方、ある文献には、機械学習を行なって予測モデルを生成するシステムに学習用データを提供するために、（ａ）外部から入力された学習用データを取得して、（ｂ）暗号化されていない学習用データから生成された予測モデルと、暗号化された学習用データから生成された予測モデルとが、パラメータ、数値、及び演算子において、対応関係を有するように、学習用データを暗号化し、（ｃ）暗号化された学習用データをシステムへと出力する、という技術が開示されている。しかしながら、学習用データの暗号化は、具体的には学習用データに含まれる複数の属性の各々における標準化及び二値化のみである。このような処理のみでは、属性によっては暗号化後の値の分布に基づき元の値を容易に推定できてしまう場合が生じ得る。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−５４７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、一側面としては、センシティブな情報を含むデータを秘匿したまま機械学習できるようにするための新たな技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一側面に係る情報処理方法は、（Ａ）第１の格納部に格納される、機械学習のための学習データに含まれる複数種類の属性値を混合する変換を行うための第１の変換ルールを生成又は取得するステップと、（Ｂ）上記学習データに対して、第１の変換ルールに従った変換を含む秘匿化変換を行って秘匿化学習データを生成し、第２の格納部に格納するステップとを含む。
【発明の効果】
【０００９】
一側面によれば、センシティブな情報を含むデータを秘匿したまま機械学習できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、システム全体構成を示す図である。
【図２】図２は、学習時におけるユーザ装置の機能ブロック構成例を示す図である。
【図３】図３は、学習時における処理フローを示す図である。
【図４】図４は、双曲線正接関数の一例を示す図である。
【図５】図５は、評価時におけるユーザ装置の機能ブロック構成例を示す図である。
【図６】図６は、評価時における処理フローを示す図である。
【図７】図７は、ユーザ装置側にニューラルネットワークを構築する場合におけるユーザ装置の機能ブロック構成例を示す図である。
【図８】図８は、重みデータ全体をダウンロードする場合における処理フローを示す図である。
【図９】図９は、重みの差分ダウンロードを行う場合における処理フローを示す図である。
【図１０】図１０は、変換ルール等をインポートする場合におけるユーザ装置の機能ブロック構成例を示す図である。
【図１１】図１１は、変換ルール等をインポートしたユーザ装置の処理フローを示す図である。
【図１２】図１２は、畳み込みニューラルネットワークを用いる場合の問題点を説明するための図である。
【図１３】図１３は、畳み込みニューラルネットワーク（プーリング層を省略）の一例を示す図である。
【図１４】図１４は、畳み込みニューラルネットワークと等価なニューラルネットワークの一例を示す図である。
【図１５Ａ】図１５Ａは、畳み込みニューラルネットワークと等価なニューラルネットワークを用いた評価時の処理を説明するための図である。
【図１５Ｂ】図１５Ｂは、畳み込みニューラルネットワークと等価なニューラルネットワークを用いた評価時の処理を説明するための図である。
【図１５Ｃ】図１５Ｃは、畳み込みニューラルネットワークと等価なニューラルネットワークを用いた評価時の処理を説明するための図である。
【図１６Ａ】図１６Ａは、畳み込みニューラルネットワークと等価なニューラルネットワークを用いた学習時の処理を説明するための図である。
【図１６Ｂ】図１６Ｂは、畳み込みニューラルネットワークと等価なニューラルネットワークを用いた学習時の処理を説明するための図である。
【図１６Ｃ】図１６Ｃは、畳み込みニューラルネットワークと等価なニューラルネットワークを用いた学習時の処理を説明するための図である。
【図１６Ｄ】図１６Ｄは、畳み込みニューラルネットワークと等価なニューラルネットワークを用いた学習時の処理を説明するための図である。
【図１６Ｅ】図１６Ｅは、畳み込みニューラルネットワークと等価なニューラルネットワークを用いた学習時の処理を説明するための図である。
【図１７】図１７は、畳み込みニューラルネットワークと等価なニューラルネットワークを用いる場合における追加の処理を説明するための図である。
【図１８】図１８は、コンピュータ装置のブロック構成図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
本実施の形態では、クラウドなどの計算基盤において所望の構造を有するニューラルネットワークを構築し、計算基盤でニューラルネットワークに対する学習を行う場合を一例として説明する。計算基盤は、指定された構造を有するニューラルネットワークを構築して、学習データと教師データとに基づき学習処理を行うといった一般的な機能を有しており、本実施の形態では、このような一般的な機能を原則としてそのまま活用する。
このような場合に、データ保有者は、センシティブな情報を含むデータをそのまま計算基盤に送ってニューラルネットワーク（Neural Network: NN)の学習を行わせるのではなく、このデータをデータ保有者側で秘匿化した上で計算基盤に送ってニューラルネットワークの学習を行わせる。
【００１２】
例えば、図１に示すようなシステムが用いられる。
すなわち、計算基盤３００では、例えばデータ保有者からの指示に応じてニューラルネットワーク３１０が構築され、計算基盤３００から提供される学習器３２０により学習データと教師データとによりニューラルネットワーク３１０に対する学習処理が行われ、学習済みのニューラルネットワーク３１０が生成される。なお、計算基盤３００には、学習済みのニューラルネットワーク３１０に対して入力を行い、学習済みのニューラルネットワーク３１０からの出力を返す機能、学習済みのニューラルネットワーク３１０から、重みデータ等を出力する機能なども含まれている。
【００１３】
計算基盤３００は、例えばインターネットなどのコンピュータネットワークを介して、例えばデータ保有者のユーザ装置１００や、例えばデータ保有者と協力関係にある他のデータ保有者のユーザ装置２００と接続している。
【００１４】
本実施の形態では、ユーザ装置１００が、少なくとも学習データに対して秘匿化変換を行って秘匿化された学習データを計算基盤３００に送信して、計算基盤３００の学習器３２０にニューラルネットワーク３１０に対する学習処理を行わせる。学習器３２０の機能は従来と同じで、ここでは詳しくは述べない。
【００１５】
学習時におけるユーザ装置１００の機能ブロック構成例を図２に示す。
ユーザ装置１００は、入力部１０１と、第１データ格納部１０３と、設定データ格納部１０５と、変換ルール生成部１０７と、変換ルール格納部１０９と、変換部１１１と、第２データ格納部１１３と、第１出力部１１５と、エクスポート部１１７とを有する。
【００１６】
入力部１０１は、例えばデータ保有者から、学習データ及び対応する教師データの指定を受け付け、当該学習データ及び教師データを取得して第１データ格納部１０３に格納する。例えば、ファイルの指定を受け付けたり、データ保有者の図示しない他のコンピュータから取得してもよい。また、入力部１０１は、計算基盤３００に構築したニューラルネットワーク３１０の構成情報（入力層のノードの数、活性化関数（非線形関数）の内容など）、学習データ及び教師データのうち秘匿化すべき属性（変数とも呼ぶ）などの設定データの入力を受け付け、設定データ格納部１０５に格納する。
【００１７】
変換ルール生成部１０７は、設定データ格納部１０５に格納された設定データに基づき、第１データ格納部１０３に格納された学習データ等（少なくとも学習データ、場合によっては教師データも含む）に対する変換ルールを生成し、変換ルール格納部１０９に格納する。
変換部１１１は、変換ルール格納部１０９に格納された変換ルールに従って、第１データ格納部１０３に格納されている学習データ等に対して秘匿化変換を行い、秘匿化されたデータを第２データ格納部１１３に格納する。
【００１８】
第１出力部１１５は、第２データ格納部１１３に格納されたデータを、計算基盤３００に送信して、学習器３２０にニューラルネットワーク３１０に対する学習処理を行わせる。
エクスポート部１１７は、例えばユーザからの指示により、変換ルール格納部１０９から変換ルールのデータ及び設定データを読み出して、指定のファイルや他のコンピュータ（例えばユーザ装置２００）に出力する。
【００１９】
より具体的な処理について、図３及び図４を用いて説明する。
【００２０】
まず、入力部１０１は、データ保有者から、学習データ及び対応する教師データの指定を受け付け、当該学習データ及び教師データを取得して第１データ格納部１０３に格納するとともに、設定データの入力を受け付け、設定データを設定データ格納部１０５に格納する（図３：ステップＳ１）。
【００２１】
上でも述べたように、ニューラルネットワーク３１０の構成情報、学習データ及び教師データのうち秘匿化すべき属性の指定を含む。例えば、学習データのベクトルＸ＝（ｘ1,ｘ2，..，ｘn）と、教師データのベクトルＹ＝（ｙ1,ｙ2，..，ｙm）の各要素ｘi及びｙjは、学習データ及び教師データにおける各属性の値を表すが、全てがセンシティブな情報ではない。従って、データ保有者は、秘匿レベルを下げて処理負荷を下げたい場合には、秘匿化すべき属性を全属性の中から指定する。例えば、ｎ＝５で５つの属性のうちｘ1乃至ｘ3のみを秘匿化するように指定する。一方、秘匿化レベルを最高レベルにする場合には、全属性を秘匿化すべき属性に指定する。教師データについても同様である。教師データによっては、全く秘匿化しないでよい場合もある。
【００２２】
なお、属性には、身長や体重のように数値に意味がある量的な属性（量的変数）と、ＩＤや種類名など単にラベルを表すだけでそれ自体に意味がない質的な属性（質的変数）とがあり、秘匿化すべき属性を決める際の参考になる。
【００２３】
ラベルの表し方には様々な方法があるが、例えば猫、犬、鳥を表す場合には、猫であればｘ1＝１００、犬であればｘ1＝２００、鳥であればｘ1＝３００といったように、１つの属性に、対応する値を入れる方法がある。また、同じ例であれば、ｘ1を猫、ｘ2を犬、ｘ3を鳥にそれぞれ割り当て、猫の場合にはｘ1のみを真、すなわちｘ1＝１として、（ｘ1，ｘ2，ｘ3）＝（１，０，０）と表すような方法もある。なお、犬ならば（ｘ1，ｘ2，ｘ3）＝（０，１，０）と表される。また、猫犬鳥を、種類数より小さく１より大きな次元のベクトル（ｘ1，ｘ2）で表すことも可能である。すなわち、猫ならば（ｘ1，ｘ2）＝（１，０）と表し、犬ならば（ｘ1，ｘ2）＝（０，１）と表し、鳥ならば（ｘ1，ｘ2）＝（１，１）と表すことも可能である。
【００２４】
次に、変換ルール生成部１０７は、第１データ格納部１０３に格納される学習データと設定データ格納部１０５に格納される設定データとに基づき、学習データ用の第１の変換ルールの生成処理を実行し、生成された第１の変換ルールのデータを変換ルール格納部１０９に格納する（ステップＳ３）。
【００２５】
ここでは説明をわかりやすくするため、５つの属性のうち３つが秘匿化すべき属性として指定された場合を例に説明する。すなわち、学習データＸ＝（ｘ1，ｘ2，ｘ3，ｘ4，ｘ5）であって、ｘ2及びｘ5を秘匿化しない場合、秘匿化すべき属性のベクトルＸ'＝（ｘ'1，ｘ'2，ｘ'3）＝（ｘ1，ｘ3，ｘ4）を秘匿化することとする。
【００２６】
そして、秘匿化しない属性を除く秘匿化変換後の学習データＸ"の次元をｎ"とし、ベクトルＸ'の次元をｎ'とすると、ｎ'×ｎ"の任意の行列Ａｘとｎ"次元の任意のベクトルＢｘとを生成する。このＡｘとＢｘとが、第１の変換ルールである。
【００２７】
このような場合、
Ｘ"＝Ｘ'Ａｘ−Ｂｘ
によって秘匿化変換を行う。なお、ｎ'＝ｎ"であっても、なくてもよい。
【００２８】
一方、データの秘匿効果を高めるためには、上で述べたような任意のＡｘ及びＢｘではなく、Ｘ'の各成分（すなわち各属性値）ｘ'jの平均Ｅ（ｘ'j、標準偏差Ｓ（ｘ'j）のベクトルをそれぞれＥｘ'、Ｓｘ'として算出して、Ａｘ及びＢｘを以下のように生成してもよい。
Ａｘ＝diag（１／Ｓｘ'）Ｒｘ
Ｂｘ＝（Ｅｘ'／Ｓｘ'）Ｒｘ
【００２９】
Ｒｘは、任意のｎ'×ｎ"行列、若しくは任意の正則なｎ'×ｎ'行列である。diag（Ａ）は、ベクトルＡの各列の値をその列の対角成分として有する対角行列を表す。また、（１／Ｓｘ'）は、Ｓｘ'の各次元の値Ｓ（ｘ'j）毎の割り算１／Ｓ（ｘ'j）のベクトルを表すものとする。さらに、（Ｅｘ'／Ｓｘ'）は、Ｅｘ'及びＳｘ'の各次元の値Ｅ（ｘ'j）、Ｓ（ｘ'j）毎の割り算Ｅ（ｘ'j）／Ｓ（ｘ'j）のベクトルを表すものとする。
【００３０】
このように、各属性値の正規化を織り交ぜながら、第１の変換ルールに相当するＡｘ及びＢｘを算出するようにしてもよい。
【００３１】
例えば、ｘ'1が身長、ｘ'2が体重、ｘ'3が喫煙習慣（有りが１で、無しが０を表す）を表すものとして、（１７０，６０，１）（１６０，５０，０）（１７５，７０，１）（１５０，５５，１）（１４０，５０，０）というデータがある場合、平均は（１５９，５７，３／５）となり、標準偏差は（（２０５）0.5，（７０）0.5，（３／１０）0.5）となる。
【００３２】
例えば、Ｒｘが以下のような行列である場合、以下に示すようなＡｘが得られる。
【数１】
2019219813.tif 000003
【数２】
2019219813.tif 000004
【００３３】
また、Ｂｘ＝（1.15，6.17，-4.04）が得られる。
【００３４】
上で述べたデータは、Ａｘ及びＢｘにより、同じ順でＸ”＝（-0.07，0.80，0.32）（-0.28，-0.93，-0.30）（0.47，1.29，-0.51）（-0.10，0.20，0.76）(-0.01，-1.35，-0.27）と変換される。
【００３５】
このようにＡｘ及びＢｘは、複数の属性の属性値を混合するような線形変換である。
【００３６】
さらに、構築したニューラルネットワーク３１０における活性化関数とＸ"の各成分ｘ"jの変動幅とが適合しないと、機械学習が進みにくくなる。例えば、図４に双曲線正接関数ｆ（ｘ）＝ｔａｎｈ（ｘ）を一例に示すが、この例ではｘ＝−２からｘ＝＋２までであれば、ｆ（ｘ）がｘに応じて変化するが、それ以外の範囲ではｘが変動してもｆ（ｘ）があまり変化しなくなる。すなわち、好ましい変動幅に活性化関数の入力が入っていないと、活性化関数の出力があまり変化しないために、なかなかうまく学習が進まないことになる。
【００３７】
他の活性化関数（ランプ関数、シグモイド関数など）でも、入力に応じて出力が変化する範囲と変化しない部分とがあり、できるだけ入力に応じて出力が変化する範囲に、入力の変動幅が収まることが好ましい。ステップ関数のような活性化関数でも、入力の偏りのため必ず１又は０が出力されてしまえば学習が進みにくいので、可能であれば１と０が満遍なく出力される方が好ましい。
【００３８】
従って、さらに以下のような処理を行うようにしてもよい。Ｘ"の各列ｊの標準偏差Ｓ（ｘ"j）を用いて、Ａｘ及びＢｘを以下のように補正する。
Ａｘ＝Ａｘdiag（ｓNN／Ｓｘ"）
Ｂｘ＝Ｂｘdiag（ｓNN／Ｓｘ"）
【００３９】
ｓNNは、例えば上で述べたような好ましい変動幅に相当する、機械学習が進みやすい標準偏差（スカラー値）である。（ｓNN／Ｓｘ"）は、Ｓｘ"の各次元の値Ｓ（ｘ"j）毎に、その逆数１／Ｓ（ｘ"j）にｓNNを乗じたｓNN／Ｓ（ｘ"j）のベクトルを表す。
【００４０】
上で述べたようなＸ"が得られれば、Ｓｘ"=(0.28，1.12，0.52）が得られ、ｓNN＝１とすると、Ａｘ及びＢｘは、以下のように補正される。
【数３】
2019219813.tif 000005
Ｂｘ＝（4.11，5.49，-7.70）
【００４１】
このような場合、Ｘ"は、（-0.25，0.72，0.61）（-1.00，-0.83，-0.57）（1.67，1.15，-0.97）（-0.37，0.18，1.45）（-0.04，-1.20，-0.52）となる。
【００４２】
なお、平均、標準偏差やｓNN／Ｓｘ"については、厳密な値を計算せずに、過去の経験値などおおよその値で代用するようにしてもよい。すなわち、平均については、例えば属性値の最大値と最小値の平均、あるいは外れ値と思われる値を取り除いた属性値の最大値と最小値の平均で代用してもよい。また、標準偏差やｓNN／Ｓｘ"については属性値のレンジ（最大値−最小値）の定数倍、あるいは外れ値と思われる値を取り除いた属性値のレンジの定数倍で代用してもよい。
【００４３】
以上のような第１の変換ルールＡｘ及びＢｘを生成し、変換ルール格納部１０９に格納する。
【００４４】
図３の処理の説明に戻って、変換部１１１は、変換ルール格納部１０９に格納された第１の変換ルールに従って、第１データ格納部１０３に格納されている学習データに対して秘匿化変換を実施し、処理結果を第２データ格納部１１３に格納する（ステップＳ５）。
【００４５】
上でも述べたようにＸ"＝Ｘ'Ａｘ−Ｂｘを算出することになる。Ｘ'＝Ｘではない場合には、Ｘ"に対して、秘匿化を行わなかった属性を追加することになる。上で述べた例では、ｘ2及びｘ5を秘匿化しなかったので、Ｘ"＝（ｘ"1，ｘ"3，ｘ"4）と書くならば、秘匿化学習データＸｃ＝（ｘ"1，ｘ2，
ｘ"3，ｘ"4，ｘ5）を生成する。
【００４６】
また、例えば変換ルール生成部１０７は、設定データ格納部１０５に格納されている設定データに基づき、教師データを秘匿化するか否かを判断する（ステップＳ７）。教師データについては秘匿化すべき属性を含まない場合もあるので、教師データを秘匿化しない場合には（ステップＳ７：Ｎｏルート）、教師データ用の第２の変換ルールを生成しない。変換部１１１は、例えば変換ルール格納部１０９において第２の変換ルールがないことが示されると、第１データ格納部１０３から教師データを読み出して、第２データ格納部１１３に格納する。
【００４７】
一方、教師データも秘匿化する場合には（ステップＳ７：Ｙｅｓルート）、変換ルール生成部１０７は、設定データ格納部１０５に格納されている設定データ及び第１データ格納部１０３に格納されている教師データに基づき、教師データ用の第２の変換ルールの生成処理を実行し、生成された第２の変換ルールのデータを変換ルール格納部１０９に格納する（ステップＳ９）。
【００４８】
教師データＹから、秘匿化すべき属性を抽出した後の教師データＹ'、教師データＹ'に対して秘匿化変換を行った後の教師データＹ"と記すものとする。そして、Ｙ、Ｙ'及びＹ"に対して、ニューラルネットワーク３１０の出力層における非線形関数ｆ（）の入力を、それぞれｆ-1（Ｙ）、ｆ-1（Ｙ'）、ｆ-1（Ｙ"）と記すものとする。
【００４９】
この場合、非線形関数ｆ（）の入力側に着目して、ｆ-1（Ｙ'）を、Ａｘ及びＢｘ類似のＡｙ及びＢｙで秘匿化変換するものとする。すなわち、ｆ-1（Ｙ"）＝ｆ-1（Ｙ'）Ａｙ−Ｂｙという変換である。
【００５０】
基本的なＡｙ及びＢｙの算出方法は、Ａｘ及びＡｙと同様であるが、Ｘ"＝Ｘ'Ａｘ−Ｂｘで変換を行っていたので、Ｘ'の代わりにｆ-1（Ｙ'）に基づきＡｙ及びＢｙを算出することになる。このＡｙ及びＢｙとｆ（）が第２の変換ルールとなる。
【００５１】
なお、Ａｙ又はＡｙを生成する際に用いるＲｙ（Ｒｘの代わり）は正則な行列である。これは、Ａｙの逆行列をのちに用いることになるためである。
【００５２】
また、ｆ（）は、例えば単射の任意の関数である。但し、単射でなくてもよく、複数存在するｆ-1（Ｙ'）のうちいずれを選択するかをあらかじめ決めておけばよい。
【００５３】
ｆ-1（Ｙ"）＝ｆ-1（Ｙ'）Ａｙ−Ｂｙに対してｆ（）を適用すれば、Ｙ"＝ｆ（ｆ-1（Ｙ'）Ａｙ−Ｂｙ）が得られる。
【００５４】
その後、変換部１１１は、変換ルール格納部１０９に格納された第２の変換ルールに従って、第１データ格納部１０３に格納されている教師データに対して秘匿化変換を実施し、処理結果を第２データ格納部１１３に格納する（ステップＳ１１）。
【００５５】
上でも述べたようにＹ"＝ｆ（ｆ-1（Ｙ'）Ａｙ−Ｂｙ）を算出することになる。Ｙ'＝Ｙではない場合には、Ｙ"に対して、秘匿化を行わなかった属性を追加することになる。ｙ2を秘匿化しなかった場合、Ｙ"＝（ｙ"1，ｙ"3）と書くならば、秘匿化教師データＹｃ＝（ｙ"1，ｙ2，ｙ"3）を生成する。
【００５６】
そして、第１出力部１１５は、第２データ格納部１１３に格納されている秘匿化変換後のデータ（秘匿化学習データと教師データ又は秘匿化教師データ）を読み出して、計算基盤３００に送信する（ステップＳ１３）。
【００５７】
そして、学習器３２０に、ニューラルネットワーク３１０の学習処理を行わせる。この学習処理は周知であるからこれ以上述べない。学習処理によって学習済みのニューラルネットワーク３１０が生成されることになる。
【００５８】
以上述べたような処理を行うことで、センシティブな情報を秘匿化した上で、既存の学習器３２０によるニューラルネットワーク３１０の学習がなされるようになる。教師データにセンシティブな情報が含まれる場合には、教師データをも秘匿化されて学習がなされる。
【００５９】
さらに、学習データ等において複数属性の属性値を混合するような形で変換を行うので、例えば属性内での正規化又は正規化に準ずる変換を行う場合に比して秘匿性が高まっている。
【００６０】
さらに、属性内の正規化を考慮した変換を合わせて行うことで、分布を反映した変換を行うこともできる。さらに、ニューラルネットワーク３１０の活性化関数の特性を考慮した変換を行って、ニューラルネットワーク３１０の学習をより適切に進ませることもできるようになる。
【００６１】
次に、判定データを用いた評価処理について説明する。
【００６２】
上で述べたようにニューラルネットワーク３１０は、秘匿化変換された学習データで学習されているので、判定データについても秘匿化変換してから、学習済みのニューラルネットワーク３１０で評価することになる。また、教師データも秘匿化変換しているのであれば、同様に秘匿化変換の逆変換をして判定結果を得ることになる。
【００６３】
評価時におけるユーザ装置１００の機能ブロック構成を図５に示す。
ユーザ装置１００は、入力部１０１と、設定データ格納部１０５と、変換ルール格納部１０９と、第３データ格納部１２１と、第２変換部１２３と、第４データ格納部１２５と、第２出力部１２７と、受信部１２９と、第５データ格納部１３１と、第３出力部１３３とを有する。図２と同じ符号が付されている構成要素については、同一又はほぼ同じ機能を有するものである。
【００６４】
入力部１０１は、例えばデータ保有者から、判定データの指定又は入力を受け付け、判定データを取得して、第３データ格納部１２１に格納する。
【００６５】
第２変換部１２３は、第３データ格納部１２１に格納された判定データに対して、変換ルール格納部１０９に格納されている第１の変換ルールと設定データ格納部１０５に格納されている設定データとに従って秘匿化変換を実行することで、秘匿化変換された判定データを生成し、第４データ格納部１２５に格納する。
【００６６】
第２出力部１２７は、第４データ格納部１２５に格納された、秘匿化変換された判定データを、計算基盤３００に送信して、学習済みのニューラルネットワーク３１０に評価を行わせる。計算基盤３００は、判定結果をユーザ装置１００に返信する。
【００６７】
ユーザ装置１００の受信部１２９は、計算基盤３００から判定結果を受信して、第５データ格納部１３１に格納する。
【００６８】
教師データも秘匿化変換されている場合には、第２変換部１２３は、さらに、第５データ格納部１３１に格納された判定結果に対して、変換ルール格納部１０９に格納されている第２の変換ルールと設定データ格納部１０５に格納されている設定データとに従った逆変換を実行し、逆変換後の判定結果を、第５データ格納部１３１に格納する。
【００６９】
第３出力部１３３は、第５データ格納部１３１に格納された逆変換後の判定結果又は計算基盤３００からの判定結果を、表示装置、印刷装置、他のコンピュータなどの出力装置に出力する。
【００７０】
次に、より詳細な処理内容について、図６を用いて説明する。
入力部１０１は、例えばデータ保有者から、判定データの入力又は指定を受け付け、判定データを取得して、第３データ格納部１２１に入力する（図６：ステップＳ２１）。
【００７１】
次に、第２変換部１２３は、変換ルール格納部１０９に格納されている第１の変換ルールと設定データ格納部１０５に格納されている設定データとに従って、判定データに対して秘匿化変換を行い、秘匿化変換された判定データを第４データ格納部１２５に格納する（ステップＳ２３）。本ステップの処理は、学習時の処理（図３）におけるステップＳ５と同じである。すなわち、学習データＸを判定データＸとして、秘匿化変換を行えばよい。従って、説明は省略する。
【００７２】
そうすると、第２出力部１２７は、第４データ格納部１２５から秘匿化変換された判定データを読み出して、計算基盤３００に送信する（ステップＳ２５）。
【００７３】
これにより、計算基盤３００は、秘匿化変換された判定データを受信し、学習済みのニューラルネットワーク３１０に入力することで、判定結果を得る。そして、計算基盤３００は、秘匿化変換された判定データの送信元であるユーザ装置１００に対して、判定結果を送信する。
【００７４】
そうすると、受信部１２９は、計算基盤３００から判定結果を受信して、第５データ格納部１３１に格納する（ステップＳ２７）。
【００７５】
そして、第２変換部１２３は、設定データ格納部１０５に格納されている設定データに基づき、判定結果に対して逆変換を行うことを要するのか否かを判断する（ステップＳ２９）。学習時に教師データについても秘匿化変換を行っていた場合には、逆変換を行うことになる。一方、学習時に教師データについて秘匿化変換を行っていない場合には、判定結果をそのまま出力してよい。
【００７６】
よって、判定結果に対して逆変換を行わなくてもよい場合には（ステップＳ２９：Ｎｏルート）、処理はステップＳ３３に移行する。
【００７７】
一方、判定結果に対して逆変換を行う場合には（ステップＳ２９：Ｎｏルート）、第２変換部１２３は、変換ルール格納部１０９に格納されている第２の変換ルールと設定データ格納部１０５に格納されている設定データに従って、判定結果に対して逆変換を行い、処理結果を第５データ格納部１３１に格納する（ステップＳ３１）。
【００７８】
上では、教師データＹから、秘匿化すべき属性を抽出した後の教師データＹ'、教師データＹ'に対して秘匿化変換を行った後の教師データＹ"と記した。
【００７９】
これにならって、秘匿化された判定結果から、秘匿化すべき属性のみを抽出したベクトルＹ"として、秘匿化前の判定結果から、秘匿化すべき属性のみを抽出したベクトルＹ'を計算することになる。
【００８０】
ｆ-1（Ｙ"）＝ｆ-1（Ｙ'）Ａｙ−Ｂｙ  
という関係があるので、  
ｆ-1（Ｙ'）Ａｙ＝ｆ-1（Ｙ"）＋Ｂｙ
ｆ-1（Ｙ'）＝（ｆ-1（Ｙ"）＋Ｂｙ）Ａｙ-1
Ｙ'＝ｆ（（ｆ-1（Ｙ"）＋Ｂｙ）Ａｙ-1）
以上のような計算を行う。
【００８１】
このベクトルＹ'と、秘匿化された判定結果における秘匿化しない属性とで、秘匿化前の判定結果が得られる。
【００８２】
なお、出力層の非線形関数ｆ（）の入力（ｆ-1（Ｙ"）及び秘匿化しない属性についてのｆ-1（））を、学習済みのニューラルネットワーク３１０から直接得られる場合には、それを用いてもよい。
【００８３】
従って、第３出力部１３３は、第５データ格納部１３１に格納された、ステップＳ３１の処理後の判定結果又は計算基盤３００から受信した判定結果である秘匿化前の判定結果を、出力装置に対して出力する（ステップＳ３３）。
【００８４】
このようにすれば、学習データ等を秘匿化変換した上で学習した学習済みのニューラルネットワーク３１０から、秘匿化の状態を維持しつつ判定データに対する判定結果を得ることができる。
【００８５】
これまでは、計算基盤３００に学習済みのニューラルネットワーク３１０を構築しておき、それを利用する場合を説明したが、学習時の処理負荷に比べて評価時の処理負荷はそれほど高くないので、学習済みのニューラルネットワーク３１０を、ユーザ装置１００に構築して利用したいという場合も生ずる。一方、データ保有者からすれば、ユーザ装置１００であればデータは秘匿化変換を行わなくても秘匿性は維持されるので、判定データや判定結果に対して処理を行わずに済ませることが望まれる。
【００８６】
すなわち、学習済みのニューラルネットワーク３１０の重みデータを計算基盤３００からダウンロードして、ユーザ装置１００上に学習済みのニューラルネットワークを構築する際に、重みデータの変換を行って、判定データや判定結果に対する処理を不要にすることが好ましい。
【００８７】
ユーザ装置１００に学習済みのニューラルネットワーク１９０を構築する場合におけるユーザ装置１００の機能ブロック構成例を、図７に示す。
【００８８】
ユーザ装置１００は、設定データ格納部１０５と、変換ルール格納部１０９と、第２受信部１４１と、第６データ格納部１４３と、第７データ格納部１４５と、第３変換部１４７と、第８データ格納部１４９と、第９データ格納部１５１と、設定部１５３とを有する。
【００８９】
なお、別途、計算基盤３００において構築したニューラルネットワーク３１０と同様の構成を有する学習前のニューラルネットワーク１９０を構築するものとする。図２と同じ符号が付されている構成要素については、同一又はほぼ同じ機能を有するものである。
【００９０】
第２受信部１４１は、例えばデータ保有者からの指示に応じて、計算基盤３００に対して学習済みのニューラルネットワーク３１０の重みデータのダウンロードを要求し、計算基盤３００から重みデータを受信して、第６データ格納部１４３に格納する。
【００９１】
第２受信部１４１は、例えばデータ保有者からの指示に応じて、計算基盤３００に対して学習済みのニューラルネットワーク３１０の重みデータの差分ダウンロードを要求し、計算基盤３００から重みデータの差分データを受信して、第７データ格納部１４３に格納することもある。
【００９２】
ある時点で全部の重みデータをダウンロードしてから、さらに計算基盤３００上でニューラルネットワーク３１０の学習を進める場合もある。その場合には、再度全部の重みデータをダウンロードしてもよいが、前回ダウンロードした重みデータと、現在の重みデータとの差分のみをダウンロードして反映させる方が効率的である場合があるため、差分ダウンロードを行う。
【００９３】
第３変換部１４７は、設定データ格納部１０５に格納されている設定データと変換ルール格納部１０９に格納されている第１の変換ルールなど（第２の変換ルールを用いる場合もある）に従って、重みデータ又は重みデータの差分データに対して変換処理を行って、重みデータの場合には変換後の重みデータ等を第８データ格納部１４９に格納し、重みデータの差分データの場合には、重みデータの変換後の差分データ等を第９データ格納部１５１に格納する。
【００９４】
設定部１５３は、第８データ格納部１４９又は第９データ格納部１５１に格納されているデータを用いて、ニューラルネットワーク１９０に対する重みの設定処理を行う。
【００９５】
次に、重みデータをダウンロードする際における詳細な処理内容について、図８を用いて説明する。
【００９６】
第２受信部１４１は、例えばデータ保有者からの指示に応じて、計算基盤３００に対して学習済みニューラルネットワーク３１０の重みデータを要求して、当該重みデータをダウンロードし、第６データ格納部１４３に格納する（図８：ステップＳ４１）。
【００９７】
次に、第３変換部１４７は、設定データ格納部１０５に格納されている設定データと変換ルール格納部１０９に格納されている第１の変換ルールとに従って、重みデータに含まれる所定部分の重みに対して変換処理を実行し、変換後の重みを第８データ格納部１４９に格納する（ステップＳ４３）。
【００９８】
学習済みのニューラルネットワーク３１０における全ての重みについて変換を行うのではなく、入力層の直後のリンクに対する重みについて変換を行う。教師データについても秘匿化変換を行っている場合には、出力層における非線形関数の入力にかけられた重みについて変換を行う。
【００９９】
秘匿化すべき属性についての入力層の直後のリンクに対する重み行列Ｗと閾値行列Ｂｗ（併せて重み又は重み行列と呼ぶ）が学習済みのニューラルネットワーク３１０から得られたとすると、秘匿変換後のデータＸ"について以下の式が得られる。
Ｘ"Ｗ＋Ｂｗ＝（Ｘ'Ａｘ−Ｂｘ）Ｗ＋Ｂｗ＝Ｘ'（ＡｘＷ）＋（−ＢｘＷ＋Ｂｗ）
【０１００】
従って、秘匿変換前のデータＸ'に適用できる重みＷ'及びＢｗ'は、以下のように表される。
Ｗ'＝ＡｘＷ
Ｂｗ'＝（−ＢｘＷ＋Ｂｗ）
【０１０１】
このような変換を行えばよい。なお、秘匿化しない属性についての入力層の直後のリンクに対する重みについては変換しない。
【０１０２】
そして、第３変換部１４７は、設定データ格納部１０５に格納されている設定データに基づき、教師データを秘匿化したか否かを判断する（ステップＳ４５）。教師データを秘匿していない場合には（ステップＳ４５：Ｎｏルート）、第３変換部１４７は、残余の重みデータをそのまま第８データ格納部１４９に格納して、処理はステップＳ４９に移行する。
【０１０３】
一方、教師データを秘匿していた場合には（ステップＳ４５：Ｙｅｓルート）、第３変換部１４７は、設定データ格納部１０５に格納されている設定データと変換ルール格納部１０９に格納されている第２の変換ルールに従って、重みデータに含まれる他の所定部分の重みに対して変換処理を実行し、変換後の重みデータを第８データ格納部１４９に格納する（ステップＳ４７）。なお、残余の重みデータについても、第８データ格納部１４９に格納する。
【０１０４】
学習済みのニューラルネットワーク３１０の出力層における非線形関数ｆ（）の入力に対してかけられた重み行列をＡlw及びＢlw（但し、秘匿化すべき属性についての重み）とし、出力層の入力をＺとすると、ｆ-1（Ｙ"）は以下のように表される。
ｆ-1（Ｙ"）＝ＺＡlw＋Ｂlw
【０１０５】
一方、上でも述べたように、以下も成り立つ。
ｆ-1（Ｙ"）＝ｆ-1（Ｙ'）Ａｙ−Ｂｙ
【０１０６】
従って、左辺を打ち消すと以下のようになる。
ｆ-1（Ｙ'）Ａｙ−Ｂｙ＝ＺＡlw＋Ｂlw
ｆ-1（Ｙ'）＝ＺＡlwＡｙ-1＋（Ｂlw＋Ｂｙ）Ａｙ-1
【０１０７】
従って、ｆ-1（Ｙ'）＝ＺＡlw'＋Ｂlw'と表すのであれば、
Ａlw'＝ＡlwＡｙ-1
Ｂlw'＝（Ｂlw＋Ｂｙ）Ａｙ-1
【０１０８】
このような変換を行うことで、秘匿化なしの判定結果を得られるようになる。なお、秘匿化しない属性についての重みについては変換しない。
【０１０９】
設定部１５３は、第８データ格納部１４９に格納された重みデータを、ユーザ装置１００において、計算基盤３００において構築したのと同一構造のニューラルネットワーク１９０に対して設定する（ステップＳ４９）。これによって、秘匿化をしないで判定データをそのまま入力できる学習済みのニューラルネットワーク１９０が生成されたことになる。
【０１１０】
次に、差分ダウンロードを行う場合における詳細な処理内容について、図９を用いて説明する。
【０１１１】
まず、第２受信部１４１は、例えばデータ保有者からの指示に応じて、計算基盤３００に対して学習済みニューラルネットワーク３１０の重みの差分ダウンロードを要求して、当該重みの差分データをダウンロードし、第７データ格納部１４５に格納する（図９：ステップＳ５１）。この際には、前回のダウンロード又は差分ダウンロードの時点との差分ダウンロードであることを指定する。計算基盤３００では、ダウンロード又は差分ダウンロードが発生した時点における重みデータを保存しておき、現在の重みデータとの差分を算出して、ユーザ装置１００に送信する。
【０１１２】
次に、第３変換部１４７は、設定データ格納部１０５に格納されている設定データと変換ルール格納部１０９に格納されている第１の変換ルールとに従って、重みデータに含まれる所定部分の重みの差分データに対して変換処理を実行し、変換後の差分データを第９データ格納部１５１に格納する（ステップＳ５３）。
【０１１３】
ステップＳ４３と同様に、学習済みのニューラルネットワーク３１０における入力層の直後のリンクに対する重みの差分データについて変換を行う。
【０１１４】
秘匿化すべき属性についての入力層の直後のリンクに対する重みの差分行列ΔＷ及びΔＢｗが学習済みのニューラルネットワーク３１０から得られたとする。
ステップＳ４３と同様に、以下のような変換を行う。
ΔＷ'＝ＡｘΔＷ
ΔＢｗ'＝（−ＢｘΔＷ＋Ｂｗ）
【０１１５】
そうすると、Ｗ'＝ΔＷ'＋Ｗ'、Ｂｗ'＝ΔＢｗ'＋Ｂｗ'という反映を行えばよい。
【０１１６】
そして、第３変換部１４７は、設定データ格納部１０５に格納されている設定データに基づき、教師データを秘匿化したか否かを判断する（ステップＳ５５）。教師データを秘匿していない場合には（ステップＳ５５：Ｎｏルート）、第３変換部１４７は、残余の重みの差分データをそのまま第９データ格納部１５１に格納して、処理はステップＳ５９に移行する。
【０１１７】
一方、教師データを秘匿していた場合には（ステップＳ５５：Ｙｅｓルート）、第３変換部１４７は、設定データ格納部１０５に格納されている設定データと変換ルール格納部１０９に格納されている第２の変換ルールに従って、重みの差分データの他の所定部分における差分データに対して変換処理を実行し、変換後の差分データを第９データ格納部１５１に格納する（ステップＳ５７）。なお、残余の重みデータについても、第９データ格納部１５１に格納する。
【０１１８】
ステップＳ４７と同様に、学習済みのニューラルネットワーク３１０の出力層における非線形関数ｆ（）の入力に対してかけられた重みの差分データΔＡlw及びΔＢlwを変換する。
ΔＡlw'＝ΔＡlwＡｙ-1
ΔＢlw'＝（ΔＢlw＋Ｂｙ）Ａｙ-1
【０１１９】
そうすると、Ａlw'＝ΔＡlw'＋Ａlw'、Ｂlｗ'＝ΔＢlｗ'＋Ｂlｗ'という反映を行えばよい。
【０１２０】
そして、設定部１５３は、第９データ格納部１５１に格納されている差分データを、秘匿化なしの学習済みニューラルネットワーク１９０に反映させる（ステップＳ５９）。
【０１２１】
上でも述べたように、Ｗ'＝ΔＷ'＋Ｗ'、Ｂｗ'＝ΔＢｗ'＋Ｂｗ'、Ａlw'＝ΔＡlw'＋Ａlw'、Ｂlｗ'＝ΔＢlｗ'＋Ｂlｗ'という反映を行えばよい。
【０１２２】
残余の差分データについても、現在の重みに加算することで反映させることができる。
【０１２３】
以上のように差分ダウンロードにも対応可能である。
【０１２４】
次に、他のデータ保有者と共同で計算基盤３００における学習済みのニューラルネットワーク１９０の学習を行わせたり、他のデータ保有者に学習済みのニューラルネットワーク１９０を利用させる場合を想定する。
【０１２５】
このような場合には、ユーザ装置１００のエクスポート部１１７によって、変換ルール格納部１０９に格納されている変換ルールと設定データ格納部１０５に格納されている設定データとを例えば暗号化した後、ユーザ装置２００に送信することになる。
【０１２６】
変換ルール等をインポートするユーザ装置２００の機能ブロック構成例（学習時）を図１０に示す。
【０１２７】
ユーザ装置２００は、入力部２０１と、第１データ格納部２０３と、設定データ格納部２０５と、変換ルール格納部２０９と、受信部２０７と、第２データ格納部２１３と、第１出力部２１５とを有する。図２に示したユーザ装置１００の構成と比較すると、変換ルール生成部１０７の代わりに受信部２０７が設けられていることになる。すなわち、変換ルールをインポートするので、変換ルールを生成することはない。入力部２０１は、入力部１０１に対応し、第１データ格納部２０３は、第１データ格納部１０３に対応し、設定データ格納部２０５は、設定データ格納部１０５に対応し、変換ルール格納部２０９は、変換ルール格納部１０９に対応し、第２データ格納部２１３は、第２データ格納部１１３に対応し、第１出力部２１５は、第１出力部１１５に対応する。なお、評価時には、図５に示したユーザ装置１００の構成と同様である。
【０１２８】
このようなユーザ装置２００の処理内容を図１１を用いて説明する。
【０１２９】
受信部２０７は、変換ルール及び設定データを、ユーザ装置１００からインポートして、変換ルールを変換ルール格納部２０９に格納し、設定データを設定データ格納部２０５に格納する（図１１：ステップＳ６１）。
【０１３０】
そして、評価を実行する場合には（ステップＳ６３：Ｙｅｓルート）、図６に示した評価時の処理を実行する（ステップＳ６５）。処理内容はユーザ装置１００と同じである。
【０１３１】
一方、評価ではなくアンサンブル学習を行う場合には、図３に示した学習時の処理を実行する（ステップＳ６７）。但し、第１の変換ルールを生成するステップＳ３と第２の変換ルールを生成するステップＳ９については、実行しない。なお、ユーザ装置２００によっては全く学習を行わない場合もある。
【０１３２】
以上のような形で、ユーザ装置２００に変換ルールをライセンスすることができ、計算基盤３００の学習済みニューラルネットワーク３１０を有効活用することができるようになる。
【０１３３】
［実施の形態２］
第１の実施の形態では、データ保有者が、計算基盤３００に、多層パーセプトロンであるニューラルネットワークを構築する場合を述べた。
【０１３４】
データ保有者によっては、多層パーセプトロンではなく、畳み込みニューラルネットワークの利用を欲する場合がある。以下、畳み込みニューラルネットワーク（Convolutional Nueral Network: CNN）の利用を欲する場合について説明する。
【０１３５】
図１２に、６つの属性ｘ1乃至ｘ6を含む学習データＸと、教師データＹとで畳み込みニューラルネットワークの学習を行う場面を示す。畳み込みニューラルネットワークの畳み込み層では、ニューラルネットワークのように全結合ではなく、その後の層のノードｐ、ｑ及びｒのそれぞれに入力される属性は限定されている。図１２の例では、ノードｐには、属性ｘ1乃至ｘ4が入力され、ノードｑには、属性ｘ2乃至ｘ5が入力され、ノードｒには、属性ｘ3乃至ｘ6が入力される。さらに、重みについての制約も存在する。すなわち、図１２において同じ線種のラインには同じ重みが設定される。具体的には、属性ｘ1に対するノードｐへの重みと、属性ｘ2に対するノードｑへの重みと、属性ｘ3に対するノードｒへの重みは同一となる。また、属性値ｘ2に対するノードｐへの重みと、属性ｘ3に対するノードｑへの重みと、属性ｘ4に対するノードｒへの重みは同一となる。さらに、属性ｘ3に対するノードｐへの重みと、属性ｘ4に対するノードｑへの重みと、属性ｘ5に対するノードｒへの重みは同一となる。また、属性ｘ4に対するノードｐへの重みと、属性ｘ5に対するノードｑへの重みと、属性ｘ6に対するノードｒへの重みは同一となる。なお、図１２では説明を簡単にするために、６つの属性ｘ1乃至ｘ6は図中において上から下に１次元で配置されており、制約も図中の上下の１次元方向に存在していることを説明したが、属性を２次元に配置して２次元の各次元（例えば、上下の次元に加えて左右の次元など）に対して制約を設けることも可能であり、３次元あるいはそれ以上の次元に配置し各次元に対して制約を設けることも可能である。
【０１３６】
このような構造を有する畳み込みニューラルネットワークには、全結合のニューラルネットワークを前提とした第１の実施の形態における秘匿化変換をそのままでは適用できない。そこで、畳み込みニューラルネットワークを等価な多層パーセプトロンの組み合わせに変換する。
【０１３７】
説明を簡単にするために、プーリング層を省略した１次元の畳み込みニューラルネットワークの一例を図１３に示す。この例では、図１２に示した畳み込み層と、２層の全結合層とを含む。このような畳み込みニューラルネットワークは、畳み込み層の重みの拘束条件から、図１４に示すような２つの全結合のニューラルネットワークで代替される。
【０１３８】
図１４の例では、図１３における全結合層に対応する第１のニューラルネットワークＮＮ１と、図１３における畳み込み層に対応し且つ入力ノードＡ乃至Ｄに対して出力ノードＦを有する第２のニューラルネットワークＮＮ２とを含む。
【０１３９】
例えば、図１５Ａに示すように、第２のニューラルネットワークＮＮ２の入力ノードＡ乃至Ｄに、属性値ｘ1乃至ｘ4を入力すれば、出力ノードＦにおいて値Ｆ1を出力するので、それを、第１のニューラルネットワーク１の入力ノードｐに入力する。また、図１５Ｂに示すように、第２のニューラルネットワークＮＮ２の入力ノードＡ乃至Ｄに、属性値ｘ2乃至ｘ5を入力すれば、出力ノードＦにおいて値Ｆ2を出力するので、それを、第１のニューラルネットワーク１の入力ノードｐに入力する。さらに、図１５Ｃに示すように、第２のニューラルネットワークＮＮ２の入力ノードＡ乃至Ｄに、属性値ｘ3乃至ｘ6を入力すれば、出力ノードＦにおいて値Ｆ3を出力するので、それを、第１のニューラルネットワーク１の入力ノードｒに入力する。
【０１４０】
第１のニューラルネットワークＮＮ１でそのまま演算を行えば、図１３に示した畳み込みニューラルネットワークと同様の演算がなされて、第１のニューラルネットワークＮＮ１の出力ノードｕからは、図１３に示した畳み込みニューラルネットワークと同じ結果が得られることになる。
【０１４１】
すなわち、畳み込みニューラルネットワーク（図１３）の畳み込み層の各出力ノードの入力に応じて、判定データ（又は学習データ）の属性の組み合わせをその出力ノード数分生成し、第２のニューラルネットワークＮＮ２の入力ノードに、属性の組み合わせ毎に入力すればよい。より具体的には、畳み込みニューラルネットワーク（図１３）の畳み込み層の各出力ノードへ入力を与えている、畳み込みニューラルネットワーク（図１３）の入力ノードへの入力を、図１４の入力ノードＡ乃至Ｄに入力するので、そのような入力の組の数は、畳み込みニューラルネットワーク（図１３）の畳み込み層の出力ノード数と同じｖ個（図１３では３個）分存在する。よって、図１４の入力ノードＡ乃至Ｄに入力される入力の組みの数は、畳み込みニューラルネットワーク（図１３）への入力１組に対してｖ倍となる。
【０１４２】
学習時においても同様の考え方で処理を行う。図１６Ａに示すように、まず、第２のニューラルネットワークＮＮ２に対して、学習データの属性値ｘ1乃至ｘ4を、入力ノードＡ乃至Ｄに入力して、出力ノードＦから値Ｆ1を得る。同様に、図１６Ｂに示すように、第２のニューラルネットワークＮＮ２に対して、学習データの属性値ｘ2乃至ｘ5を、入力ノードＡ乃至Ｄに入力して、出力ノードＦから値Ｆ2を得る。さらに、図１６Ｃに示すように、第２のニューラルネットワークＮＮ２に対して、学習データの属性値ｘ3乃至ｘ6を、入力ノードＡ乃至Ｄに入力して、出力ノードＦから値Ｆ3を得る。
【０１４３】
そして、図１６Ｄに示すように、これらの値Ｆ1乃至Ｆ3を、それぞれ第１のニューラルネットワークＮＮ１における入力ノードｐ乃至ｒの入力とすると共に、出力ノードｕには教師データＹ1を与えて、第１のニューラルネットワークＮＮ１の学習１を行わせる。この際、第１のニューラルネットワークＮＮ１の伝搬誤差差分を第１のニューラルネットワークＮＮ１の入力ノードｐ乃至ｒまで求め、値Ｆ1に対する誤差差分ｅ1、値Ｆ2に対する誤差差分ｅ2、値Ｆ3に対する誤差差分ｅ3をそれぞれ算出する。
【０１４４】
そして、図１６Ｅに示すように、（１）学習データとして属性値ｘ1乃至ｘ4がそれぞれ第２のニューラルネットワークＮＮ２の入力ノードＡ乃至Ｄに与えられた場合の誤差差分（第２のニューラルネットワークＮＮ２における教師データと現在の評価値との差分）を前記の誤差差分ｅ1、（２）学習データとして属性値ｘ2乃至ｘ5がそれぞれ第２のニューラルネットワークＮＮ２の入力ノードＡ乃至Ｄに与えられた場合の誤差差分を前記の誤差差分ｅ2、（３）学習データとして属性値ｘ3乃至ｘ6がそれぞれ第２のニューラルネットワークＮＮ２の入力ノードＡ乃至Ｄに与えられた場合の誤差差分を前記の誤差差分ｅ3として、第２のニューラルネットワークＮＮ２の重みを修正する学習２を行う。
【０１４５】
このような処理を学習が収束するまで繰り返すことによって、畳み込みニューラルネットワークと等価なニューラルネットワークの学習が行われる。なお、２回目以降の学習１については、学習２がある程度収束するまで省略してもよいし、値Ｆ1及至Ｆ3のいずれかが変更される度に行ってもよい。
【０１４６】
このような前提の下、第１の実施の形態で述べた秘匿化変換をどのように行うのかを説明する。
【０１４７】
学習データについては、第１段階としては第１の実施の形態と同様の秘匿化変換を第２のニューラルネットワークＮＮ２に対する入力に対して実行する。但し、上でも述べたように、第１の実施の形態のように学習データに含まれる全ての属性を一度に出力することはできないので、上の例では属性の組み合わせを３つ生成することになる。但し、図１５Ａ乃至図１５Ｃで示したような属性の範囲を少しずつずらして並べるだけでは、同じ値が規則的に繰り返し現れるので、その情報を用いて入力値の推定が行われる可能性がある。従って、組み合わせの順番を入れ替える処理も行う。すなわち、第１のニューラルネットワークＮＮ１の入力ノードとしてｐ、ｑ、ｒという３つのノードがある場合には、その順序を（ｐ，ｑ，ｒ）、（ｐ，ｒ，ｑ)、（ｑ，ｐ，ｒ）、（ｑ，ｒ，ｐ）、（ｒ，ｐ，ｑ）、（ｒ，ｑ，ｐ）からランダムに選択されるように入れ替え、その入れ替え後の順序に応じて第２のニューラルネットワークＮＮ２に入力する学習データの組みの入力順序も入れ替える。例えば、図１４において第１のニューラルネットワークＮＮ１の入力ノードの順番を図中の上から下へ（ｒ，ｑ，ｐ）という順序に入れ替えた場合、図１６Ｃにおいて第２のニューラルネットワークＮＮ２に与えられた学習データを評価して得られた値Ｆ3が、第１のニューラルネットワークＮＮ１の入れ替え後の一番上のノードｒへの入力となる。但し、この例のように並べ替えの候補が６通りしか存在しないと、攻撃者はそれらの候補を全て試すことが可能となるため並べ替えの効果は十分得られないが、候補数が増えることでその効果は大きくなる。
【０１４８】
なお、畳み込み層の出力がプーリング層となっている場合には、組み合わせの並び替えを、プーリング層で値の選択が行われる小領域内と小領域間で行う。例えば、図１３の全結合層の前にａ、ｂ、ｃ、ｄ、ｅ及びｆの６つのノードがあり、ノードａ及びｂから選択されたノードの値がノードｐの値、ノードｃ及びｄから選択されたノードの値がノードｑの値、ノードｅ及びｆから選択されたノードの値がノードｒの値を取るプーリング層となっていたとすると、小領域内の並び替えは、ノードａ及びｂの間、ノードｃ及びｄ間、ノードｅ及びｆ間でそれぞれ行われ、小領域間の並び替えは上で説明した通り、ｐ、ｑ及びｒ間の並び替えにより行われる。
【０１４９】
第１のニューラルネットワークＮＮ１についての教師データについては、第１の実施の形態と同様の秘匿化変換を実行する。
【０１５０】
よって、畳み込みニューラルネットワークを利用する場合には、学習時には図３の処理フローにおおよそ従うが、第２のニューラルネットワークＮＮ２のためにステップＳ５において、図１７に示すような処理を追加で実行する。
【０１５１】
すなわち、変換部１１１は、教師データの各案件について、対応する学習データに含まれる属性の所定の組み合わせを、畳み込み層の出力ノード数分生成する（図１７：ステップＳ７１）。所定の組み合わせは、上で述べたように、畳み込み層の各出力ノードに接続される前記の畳み込み層の各入力ノードに対応する属性の組み合わせとなる。そして、変換部１１１は、教師データの各案件について、属性の所定の組み合わせの順番を入れ替える（ステップＳ７３）。順番の入れ替えは、ランダムに行ってもよい。
【０１５２】
以上のような処理を行うことで、畳み込みニューラルネットワークにも対応することができるようになる。
【０１５３】
評価時においても、図６のステップＳ２３で図１７に示した処理を追加で実行すればよい。
【０１５４】
以上本発明の実施の形態を説明したが、本発明はこれらの実施の形態に限定されるものではない。例えば、機能ブロック構成例は例に過ぎず、プログラムモジュール構成とは一致しない場合もある。また、処理フローについても、処理結果が変わらない限り、処理順番を入れ替えたり、複数のステップを並列に実行してもよい。
【０１５５】
また、ニューラルネットワークに代わり、再帰型ニューラルネットワーク（Recurrent Neural Network）にも適用可能である。また、上で述べたような変換ルールによる変換は、アフィン変換とも呼ばれ、これによって学習データ及び教師データが秘匿化される。本発明の適用範囲は、ニューラルネットワークに限られず、アフィン変換が適用可能なものであればよい。より一般的には、以下が成り立つ場合、学習データ（あるいは判定データ（すなわち評価対象データ）など）であるinputの秘匿化に関して、本発明を適用可能である。具体的には、以下が成り立つfunction()とfunction'()と秘匿化関数()とinputとoutputとについて、本発明を適用可能である。
・inputとoutputとがfunction()という関数を用いてoutput＝function(input)と表せ、且つ、function()と秘匿化関数()とを合成した結果を関数function'()＝function(秘匿化関数())と表せる場合、
inputに秘匿化関数() を適用した結果であるinput'＝秘匿化関数(input)に対してfunction'(input)＝ function(input')が成立する
また、f-1(教師データ)などに対応するoutputを秘匿化し、秘匿化されたf-1(判定結果)（f-1(評価結果)とも記す）などに対応するoutput'から秘匿されていないf-1(判定結果)（f-1(評価結果)とも記す）などに対応するoutputを得る場合には、以下が成立すれば、本発明を適用可能である。具体的には、以下が成り立つfunction()とfunction'()と秘匿化関数()とinputとoutputとについて、本発明を適用可能である。
・output'＝秘匿化関数(output)＝秘匿化関数(function(input))＝function'(input)となる秘匿化関数()に逆行列が存在し、且つ
output＝秘匿化関数-1(output')＝秘匿化関数-1(秘匿化関数(function(input)))＝function(input)
あるいは、関数()の代わりに二項演算子＊を用いて、inputとoutputとがoutput＝input＊functionと表せる場合、学習データ（あるいは判定データ（すなわち評価対象データ）など）であるinputの秘匿化に関しては、
(input＊秘匿化関数)＊function＝input＊(秘匿化関数＊function)
という結合法則が成立するfunctionと秘匿化関数とinputとに対して、本発明を適用できる。
また、f-1(教師データ)などに対応するoutputを秘匿化し、秘匿化されたf-1(判定結果)（f-1(評価結果)とも記す）などに対応するoutput'から秘匿されていないf-1(判定結果)（f-1(評価結果)とも記す）などに対応するoutputを得る場合には、
output'＝output＊秘匿化関数＝(input＊function)＊秘匿化関数＝input＊(function＊秘匿化関数)
という関係（最右辺と右から二番目の右辺との間に結合法則の関係を含む）が成立すると共に、秘匿化関数に逆元である(秘匿化関数)-1が存在し、且つ
output＝output＊秘匿化関数＊秘匿化関数-1＝input＊function
が成立するfunctionと秘匿化関数とinputとoutputとoutput'とに対して、本発明を適用できる。
なお、Ｘ"＝Ｘ'Ａｘ−Ｂｘなどの式は、横ベクトルＸ"及びＸ'の次元を以下のように１増やした上で、以下のように行列を変形すれば、二項演算子＊を用いて（５）式のように表すことができ、上記の一般化の一例となっている。
【数４】
2019219813.tif 000006
【数５】
2019219813.tif 000007
【０１５６】
本発明の適用対象は、このfunction（）を一部に有していればよく、上で述べたニューラルネットワークであれば、入力から非線形関数ｆ（）の入力までが１つのfunction（）であり、ニューラルネットワークの出力層から１つ手前の層の出力から、出力層の非線形関数の入力までも１つのfunction（）である。
【０１５７】
このような観点からすれば、本発明の適用対象は、線形回帰分析、重回帰分析、ロジスティック回帰分析などの分析も含まれる。
【０１５８】
本願では、これらの分析を含めて機械学習、又は回帰分析を含む機械学習と呼ぶものとする。また、学習済みニューラルネットワークと、回帰分析の分析結果を表すモデルとを合わせて学習済みモデルと呼ぶものとする。
【０１５９】
なお、上で述べたユーザ装置１００及び２００は、コンピュータ装置であって、図１８に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とスピーカ２５１８とがバス２５１９で接続されている。なお、ＨＤＤはソリッドステート・ドライブ（ＳＳＤ：Solid State Drive）などの記憶装置でもよい。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１６０】
以上述べた実施の形態をまとめると以下のようになる。
本実施の形態に係る情報処理方法は、（Ａ）第１の格納部に格納される、機械学習のための学習データに含まれる複数種類の属性値を混合する変換を行うための第１の変換ルールを生成又は取得するステップと、（Ｂ）上記学習データに対して、第１の変換ルールに従った変換を含む秘匿化変換を行って秘匿化学習データを生成し、第２の格納部に格納するステップとを含む。
【０１６１】
これによって、センシティブな情報を含むデータを秘匿したまま機械学習できるようになる。すなわち、秘匿化学習データを、クラウドなどの計算基盤に送信して機械学習を行わせれば、センシティブな情報を含むデータの秘匿性を維持しつつ、外部で機械学習を行わせることができるようになる。
【０１６２】
また、本情報処理方法は、（Ｃ）第１の格納部に格納される、機械学習のための教師データに含まれる属性値に対して変換を行うための第２の変換ルールを生成又は取得するステップと、（Ｄ）教師データに対して、第２の変換ルールに従った変換を含む秘匿化変換を行って秘匿化教師データを生成し、第２の格納部に格納するステップとをさらに含むようにしてもよい。教師データについてもセンシティブな情報を含む場合には、このような処理を行えばよい。
【０１６３】
さらに、本情報処理方法は、（Ｅ）判定データに対して、上記第１の変換ルールに従った変換を含む秘匿化変換を行って、秘匿化判定データを生成するステップと、（Ｆ）秘匿化学習データと教師データとを用いて機械学習が行われた学習済みモデル（例えば、学習済みニューラルネットワーク、回帰分析の結果を表すモデル）を実装したシステム（例えばクラウドなどの計算基盤）に対して、秘匿化判定データを送信して、当該秘匿化判定データに対する判定結果を受信するステップとさらに含むようにしてもよい。評価時には、判定データも、学習データと同様の変換を行ったうえで上記システムで評価させればよい。
【０１６４】
なお、本情報処理方法は、（Ｇ）判定データに対して、第１の変換ルールに従った変換を含む秘匿化変換を行って、秘匿化判定データを生成するステップと、（Ｈ）秘匿化学習データ及び秘匿化教師データを用いて機械学習が行われた学習済みモデルを実装したシステムに対して、秘匿化判定データを送信して、当該秘匿化判定データに対する秘匿化判定結果を受信するステップと、（Ｉ）受信した秘匿化判定結果に対して、第２の変換ルールに基づく逆変換を実行して、判定結果を生成するステップとをさらに含むようにしてもよい。教師データについても秘匿化変換を行った場合には、評価時には秘匿化を戻す処理（逆変換）を行えばよい。
【０１６５】
なお、本情報処理方法は、（Ｊ）第１の変換ルールに係るデータを、他のコンピュータに送信するステップをさらに含むようにしてもよい。これによって、第１の変換ルールをエクスポートして、他の主体に利用させることができるようになる。この際には第１の変換ルールに係るデータを暗号化などでマスクするようにしてもよい。
【０１６６】
さらに、本情報処理方法は、（Ｋ）秘匿化学習データを用いて機械学習が行われた学習済みニューラルネットワークを実装したシステムから、学習済みニューラルネットワークの重みのデータを取得するステップと、（Ｌ）上記重みのうち所定部分の重みに対して、第１の変換ルールに基づく変換を行うステップとをさらに含むようにしてもよい。このようにして得た重みを、自装置において構築したニューラルネットワークに設定すれば、秘匿化なしで判定データの評価を行うことができるようになる。なお、教師データについても秘匿化されている場合には、同様に重みのデータを変換する。
【０１６７】
また、本情報処理方法は、（Ｍ）秘匿化学習データを用いて機械学習が行われた学習済みニューラルネットワークを実装したシステムから、学習済みニューラルネットワークにおける現在の重みと所定時点における重みとの差分に係る差分データを取得するステップと、（Ｎ）差分データのうち所定部分の重みの差分に対して、第１の変換ルールに基づく変換を行うステップと、（Ｏ）差分データのうち所定部分の重みの変換後の差分と、差分データのうち所定部分以外の重みの差分とを、所定時点における重みに基づき構築された学習済みニューラルネットワークに対して反映するステップとをさらに含むようにしてもよい。このように差分データをダウンロードするような場合にも差分データを反映させることができるようになる。
【０１６８】
また、上で述べた第１の変換ルールが、機械学習の対象となるニューラルネットワークの構成（例えば、ニューラルネットワークに用いられている非線形関数の特性、ニューラルネットワークの種別など）に応じて、上記複数種類の属性値を混合する変換を行うための変換ルールである場合もある。これによって、構築すべきニューラルネットワークに応じた適切な秘匿化変換が行われるようになる。
【０１６９】
さらに、上で述べた第１の変換ルールが、学習データにおける指定の属性毎に当該属性の値の分布（例えば、平均、標準偏差、分散など）に基づき調整され、且つ上記指定の属性の値を混合する変換を行うための第１の行列を含むようにしてもよい。これによって属性ごとの分布に基づき適切に秘匿化変換が行われるようになる。なお、直接算出された分布だけではなく、知られた分布であってもよい。
【０１７０】
また、上で述べた第１の変換ルールが、学習データにおける指定の属性値を混合する変換を行うための第１の行列を、当該第１の行列の特性と秘匿化学習データを用いて機械学習が行われるニューラルネットワークにおける非線形関数の特性とに応じて調整した行列を含むようにしてもよい。これによって、ニューラルネットワークの特性に応じて学習が進みやすい秘匿化変換が行われるようになる。なお、第１の行列は、学習データにおける指定の属性毎に当該属性の値の分布（例えば、平均、標準偏差、分散など）に基づき調整されたものである場合もある。
【０１７１】
また、上で述べた秘匿化変換が、秘匿化学習データを用いて機械学習が行われるニューラルネットワークが畳み込みニューラルネットワークである場合に、第１の変換ルールによって変換された学習データに含まれる属性の所定の組み合わせを、同一の教師データに対して、畳み込みニューラルネットワークの構造に応じて複数生成し、当該組み合わせの順番を入れ替える処理を含むようにしてもよい。これによって、畳み込みニューラルネットワークを採用する場合においても対処できるようになる。
【０１７２】
以上述べた情報処理方法をコンピュータに実行させるためのプログラムを作成することができて、そのプログラムは、様々な記憶媒体に記憶される。
【０１７３】
また、上で述べたような情報処理方法を実行する情報処理装置は、１台のコンピュータで実現される場合もあれば、複数台のコンピュータで実現される場合もあり、それらを合わせて情報処理システム又は単にシステムと呼ぶものとする。
【符号の説明】
【０１７４】
１０１  入力部
１０３  第１データ格納部
１０５  設定データ格納部
１０７  変換ルール生成部
１０９  変換ルール格納部
１１１  変換部
１１３  第２データ格納部
１１５  第１出力部
１１７  エクスポート部
【図１】
2019219813.tif 000008
【図２】
2019219813.tif 000009
【図３】
2019219813.tif 000010
【図４】
2019219813.tif 000011
【図５】
2019219813.tif 000012
【図６】
2019219813.tif 000013
【図７】
2019219813.tif 000014
【図８】
2019219813.tif 000015
【図９】
2019219813.tif 000016
【図１０】
2019219813.tif 000017
【図１１】
2019219813.tif 000018
【図１２】
2019219813.tif 000019
【図１３】
2019219813.tif 000020
【図１４】
2019219813.tif 000021
【図１５Ａ】
2019219813.tif 000022
【図１５Ｂ】
2019219813.tif 000023
【図１５Ｃ】
2019219813.tif 000024
【図１６Ａ】
2019219813.tif 000025
【図１６Ｂ】
2019219813.tif 000026
【図１６Ｃ】
2019219813.tif 000027
【図１６Ｄ】
2019219813.tif 000028
【図１６Ｅ】
2019219813.tif 000029
【図１７】
2019219813.tif 000030
【図１８】
2019219813.tif 000031