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

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

▶ EAGLYS株式会社の特許一覧

特許7440149データ生成方法、データ生成プログラム、およびデータ生成システム
<>
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図1
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図2
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図3
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図4
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図5
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図6
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図7
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図8
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図9
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図10
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図11
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図12
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図13
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図14
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図15
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図16
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図17
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図18
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図19
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図20
  • 特許-データ生成方法、データ生成プログラム、およびデータ生成システム 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-02-19
(45)【発行日】2024-02-28
(54)【発明の名称】データ生成方法、データ生成プログラム、およびデータ生成システム
(51)【国際特許分類】
   H04L 9/30 20060101AFI20240220BHJP
   G06N 3/126 20230101ALI20240220BHJP
   G06N 20/00 20190101ALI20240220BHJP
【FI】
H04L9/30 Z
G06N3/126
G06N20/00
【請求項の数】 11
(21)【出願番号】P 2023134067
(22)【出願日】2023-08-21
【審査請求日】2023-08-21
【早期審査対象出願】
(73)【特許権者】
【識別番号】518334141
【氏名又は名称】EAGLYS株式会社
(74)【代理人】
【識別番号】100210815
【弁理士】
【氏名又は名称】西田 聡子
(72)【発明者】
【氏名】三原 健太郎
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2018-010428(JP,A)
【文献】米国特許出願公開第2020/0313849(US,A1)
【文献】米国特許出願公開第2022/0085972(US,A1)
【文献】国際公開第2022/137447(WO,A1)
【文献】EAGLYS,EAGLYS・三井物産で秘密計算PoCを実施,PR TIMES,[online],2022年11月10日,<URL:https://prtimes.jp/main/html/rd/p/000000041.000041103.html>,[2023年11月30日検索]
【文献】PODSCHWADT, R. et al.,A Survey of Deep Learning Architectures for Privacy-Preserving Machine Learning With Fully Homomorphic Encryption,IEEE Access,[online],2022年11月10日,Vol.10,pp.117477-117500,<URL:https://ieeexplore.ieee.org/abstract/document/9936637>,[2023年11月30日検索]
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/30
G06N 3/126
G06N 20/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
制御部と、複数の親データを記憶するユーザ記憶部と、を有するユーザ端末と、
準同型暗号方式で暗号化されたデータを含む演算を行う暗号演算部と、前記親データから予測結果を出力する機械学習モデルを記憶する暗号データ記憶部と、を有する演算装置と、
を備えるシステムにおいて用いられる方法であって、
前記制御部が、公開鍵および秘密鍵を生成するステップと、
前記制御部が、前記ユーザ記憶部から取得した前記複数の親データを、前記公開鍵を用いて準同型暗号方式で暗号化するステップと、
前記暗号演算部が、前記暗号化された複数の親データを前記機械学習モデルに入力して出力された複数の予測結果に基づき、複数の子データを生成する次世代生成ステップと、
前記暗号データ記憶部が、前記生成された複数の子データを、前記暗号化された複数の親データとして記憶する更新ステップと、
前記次世代生成ステップと、前記更新ステップとを繰り返すステップと、
を備え
前記次世代生成ステップは、前記出力された複数の予測結果に対し、前記複数の親データに対応する当該複数の予測結果の特定を困難にする特定困難化処理の実行を含む、データ生成方法。
【請求項2】
前記次世代生成ステップは、
前記暗号演算部が、前記制御部が暗号化した前記複数の親データを取得するステップと、
前記暗号演算部が、前記取得した前記複数の親データを前記機械学習モデルに入力し、当該親データのそれぞれに対応する複数の予測結果を出力するステップと、
前記暗号演算部が、前記出力された複数の予測結果に対し、前記複数の親データに対応する当該複数の予測結果の特定を困難にする特定困難化処理を実行するステップと、
前記制御部が、前記特定困難化処理が実行された前記複数の予測結果を取得し、前記秘密鍵を用いて復号するステップと、
前記制御部が、前記復号された、前記特定困難化処理が実行された前記複数の予測結果から、当該複数の予測結果のそれぞれの目標値に対する複数の評価値を算出するステップと、
前記暗号演算部が、前記算出された複数の評価値を取得するステップと、
前記暗号演算部が、前記取得した複数の評価値に対応する前記複数の予測結果に対する前記特定困難化処理を解除するステップと、
前記暗号演算部が、前記特定困難化処理が解除された複数の予測結果を介して、前記複数の親データと対応関係にある複数の評価値を取得するステップと、
前記暗号演算部が、所定の条件を満たす前記評価値に対応する前記複数の親データを抽出するステップと、
前記暗号演算部が、前記抽出された複数の親データに対し、遺伝アルゴリズムを適用して、複数の子データを生成するステップと、
を含む、請求項1に記載のデータ生成方法。
【請求項3】
前記次世代生成ステップは、
前記暗号演算部が、前記制御部が暗号化した前記複数の親データを取得するステップと、
前記暗号演算部が、前記取得した前記複数の親データを前記機械学習モデルに入力し、当該親データのそれぞれに対応する複数の予測結果を出力するステップと、
前記暗号演算部が、前記出力された複数の予測結果に対し、前記複数の親データに対応する当該複数の予測結果の特定を困難にする特定困難化処理を実行するステップと、
前記制御部が、前記特定困難化処理が実行された前記複数の予測結果を取得し、前記秘密鍵を用いて復号するステップと、
前記暗号演算部が、前記復号された、前記特定困難化処理が実行された前記複数の予測結果を取得するステップと、
前記暗号演算部が、前記取得した、前記特定困難化処理が実行された前記複数の予測結果に対する前記特定困難化処理を解除するステップと、
前記暗号演算部が、前記特定困難化処理が解除された前記複数の予測結果から、前記複数の親データと対応関係にある複数の評価値を算出するステップと、
前記暗号演算部が、所定の条件を満たす前記評価値に対応する前記複数の親データを抽出するステップと、
前記暗号演算部が、前記抽出された複数の親データに対し、遺伝アルゴリズムを適用して、複数の子データを生成するステップと、
を含む、請求項1に記載のデータ生成方法。
【請求項4】
前記複数の親データは、複数の説明変数に対応する各値を含むレコードが所定の順序に並ぶデータセットであり、
前記次世代生成ステップは、
前記暗号演算部が、前記生成された複数の子データの説明変数に対し、前記特定困難化処理を実行するステップと、
前記制御部が、前記特定困難化処理が実行された複数の子データを取得し、前記秘密鍵を用いて復号するステップと、
前記制御部が、前記復号された複数の子データを、前記公開鍵を用いて準同型暗号方式で再暗号化するステップと、
前記暗号演算部が、前記再暗号化された前記複数の子データを取得するステップと、
前記暗号演算部が、前記取得した前記複数の子データの説明変数に対し、前記特定困難化処理を解除するステップと、
をさらに含み、
前記更新ステップにおいて、前記暗号データ記憶部は、前記特定困難化処理が解除された前記複数の子データを、前記暗号化された複数の親データとして記憶する、
請求項2または請求項3に記載のデータ生成方法。
【請求項5】
前記特定困難化処理は、対応関係を並び替える処理である、請求項2または請求項3に記載のデータ生成方法。
【請求項6】
前記特定困難化処理は、ノイズを付加する処理である、請求項2または請求項3に記載のデータ生成方法。
【請求項7】
前記特定困難化処理は、対応関係を並び替える処理、またはノイズを付加する処理の組み合わせである、請求項2または請求項3に記載のデータ生成方法。
【請求項8】
前記制御部が、前記繰り返すステップが複数回実行されて生成された複数の子データと当該子データと対応関係にある予測結果を取得し、前記秘密鍵を用いて復号するステップをさらに備える、請求項1から請求項3のいずれか一項に記載のデータ生成方法。
【請求項9】
前記制御部が、前記繰り返すステップの実行回数を受け付けるステップをさらに備える、請求項8に記載のデータ生成方法。
【請求項10】
制御部と、複数の親データを記憶するユーザ記憶部と、を有するユーザ端末と、
準同型暗号方式で暗号化されたデータを含む演算を行う暗号演算部と、前記親データから予測結果を出力する機械学習モデルを記憶する暗号データ記憶部と、を有する演算装置と、
を備えるシステムにおいて用いられるプログラムであって、
前記制御部が、公開鍵および秘密鍵を生成するステップと、
前記制御部が、前記ユーザ記憶部から取得した前記複数の親データを、前記公開鍵を用いて準同型暗号方式で暗号化するステップと、
前記暗号演算部が、前記暗号化された複数の親データを前記機械学習モデルに入力して出力された複数の予測結果に基づき、複数の子データを生成する次世代生成ステップと、
前記暗号データ記憶部が、前記生成された複数の子データを、前記暗号化された複数の親データとして記憶する更新ステップと、
前記次世代生成ステップと、前記更新ステップとを繰り返すステップと、
を備え
前記次世代生成ステップは、前記出力された複数の予測結果に対し、前記複数の親データに対応する当該複数の予測結果の特定を困難にする特定困難化処理の実行を含む、データ生成プログラム。
【請求項11】
制御部と、複数の親データを記憶するユーザ記憶部と、を有するユーザ端末と、
準同型暗号方式で暗号化されたデータを含む演算を行う暗号演算部と、前記親データから予測結果を出力する機械学習モデルを記憶する暗号データ記憶部と、を有する演算装置と、
を備えるシステムであって、
前記制御部が、公開鍵および秘密鍵を生成するステップと、
前記制御部が、前記ユーザ記憶部から取得した前記複数の親データを、前記公開鍵を用いて準同型暗号方式で暗号化するステップと、
前記暗号演算部が、前記暗号化された複数の親データを前記機械学習モデルに入力して出力された複数の予測結果に基づき、複数の子データを生成する次世代生成ステップと、
前記暗号データ記憶部が、前記生成された複数の子データを、前記暗号化された複数の親データとして記憶する更新ステップと、
前記次世代生成ステップと、前記更新ステップとを繰り返すステップと、
を備え
前記次世代生成ステップは、前記出力された複数の予測結果に対し、前記複数の親データに対応する当該複数の予測結果の特定を困難にする特定困難化処理の実行を含む、データ生成システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ生成方法、データ生成プログラム、およびデータ生成システムに関する。
【背景技術】
【0002】
機械学習技術を活用して、最適なパラメータを設計する取り組みがある。例えば、特許文献1には、新規物質の開発を効率的に行うマテリアルズ・インフォマティクスに関する技術であって、化学データベースから新材料の候補を発見する発明が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特表2022-516697号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、様々な分野において、社内で保有するデータ(機械学習モデルに関する情報を含む。)を活用するだけでなく、社外の企業や組織と連携して、データを利活用しようとする機運が高まっている。しかしながら、機密性が高いデータの他社への提供や利活用は、情報漏洩や不正利用などセキュリティ上の課題がある。
【0005】
そこで、本開示では、上記課題を解決すべくなされたものであって、その目的は、各組織が保有するデータの内容を開示することなく利活用し、最適なパラメータ設計を容易にするデータ生成方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本開示に係るデータ生成方法は、制御部と、複数の親データを記憶するユーザ記憶部と、を有するユーザ端末と、準同型暗号方式で暗号化されたデータを含む演算を行う暗号演算部と、親データから予測結果を出力する機械学習モデルを記憶する暗号データ記憶部と、を有する演算装置と、を備えるシステムにおいて用いられる方法であって、制御部が、公開鍵および秘密鍵を生成するステップと、制御部が、ユーザ記憶部から取得した複数の親データを、公開鍵を用いて準同型暗号方式で暗号化するステップと、暗号演算部および制御部が、暗号化された複数の親データを機械学習モデルに入力して出力された複数の予測結果に基づき、複数の子データを生成する次世代生成ステップと、暗号データ記憶部が、生成された複数の子データを、暗号化された複数の親データとして記憶する更新ステップと、次世代生成ステップと、更新ステップとを繰り返すステップと、を備える。
【0007】
また、上記目的を達成するため、本開示に係るデータ生成プログラムは、制御部と、複数の親データを記憶するユーザ記憶部と、を有するユーザ端末と、準同型暗号方式で暗号化されたデータを含む演算を行う暗号演算部と、親データから予測結果を出力する機械学習モデルを記憶する暗号データ記憶部と、を有する演算装置と、を備えるシステムにおいて用いられるプログラムであって、制御部が、公開鍵および秘密鍵を生成するステップと、制御部が、ユーザ記憶部から取得した複数の親データを、公開鍵を用いて準同型暗号方式で暗号化するステップと、暗号演算部および制御部が、暗号化された複数の親データを機械学習モデルに入力して出力された複数の予測結果に基づき、複数の子データを生成する次世代生成ステップと、暗号データ記憶部が、生成された複数の子データを、暗号化された複数の親データとして記憶する更新ステップと、次世代生成ステップと、更新ステップとを繰り返すステップと、を備える。
【0008】
また、上記目的を達成するため、本開示に係るデータ生成システムは、制御部と、複数の親データを記憶するユーザ記憶部と、を有するユーザ端末と、準同型暗号方式で暗号化されたデータを含む演算を行う暗号演算部と、親データから予測結果を出力する機械学習モデルを記憶する暗号データ記憶部と、を有する演算装置と、を備えるシステムであって、制御部が、公開鍵および秘密鍵を生成するステップと、制御部が、ユーザ記憶部から取得した複数の親データを、公開鍵を用いて準同型暗号方式で暗号化するステップと、暗号演算部および制御部が、暗号化された複数の親データを機械学習モデルに入力して出力された複数の予測結果に基づき、複数の子データを生成する次世代生成ステップと、暗号データ記憶部が、生成された複数の子データを、暗号化された複数の親データとして記憶する更新ステップと、次世代生成ステップと、更新ステップとを繰り返すステップと、を備える。
【発明の効果】
【0009】
本開示によれば、各組織が保有するデータの内容を開示することなく利活用し、最適なパラメータ設計を容易にすることができる。
【図面の簡単な説明】
【0010】
図1】データ生成システム1の全体図である。
図2】端末装置100のハードウェア構成を示す図である。
図3】端末装置100の機能的構成を示すブロック図である。
図4】材料データのデータ構造を示す図である。
図5】材料データの具体例を示す図である。
図6】探索対象の材料データを設定する画面の一例を示す図である。
図7】目的変数を設定する画面の一例を示す図である。
図8】評価値の算出を説明する図である。
図9】演算装置200の機能的構成を示すブロック図である。
図10】実施形態1における特定困難化処理の例を示す図である。
図11】実施形態1における特定困難化処理の例を示す図である。
図12】遺伝アルゴリズムの適用例を示す図である。
図13】データ生成システム1における処理を示すシーケンス図である。
図14】データ生成システム1における処理を示すシーケンス図である。
図15】実施形態2における特定困難化処理の例を示す図である。
図16】演算装置300の機能的構成を示すブロック図である。
図17】データ生成システム2における処理を示すシーケンス図である。
図18】データ生成システム4の全体図である。
図19】端末装置400の機能的構成を示すブロック図である。
図20】演算装置500の機能的構成を示すブロック図である。
図21】データ生成システム4における処理を示すシーケンス図である。
【発明を実施するための形態】
【0011】
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。
【0012】
<本発明に係るデータ生成方法の概要>
機械学習技術を活用して、最適なパラメータを設計し、配送ルートの設定、需要の予測、工業製品の形状デザインや、新規物質の開発などに用いる取り組みがある。例えば、マテリアルズ・インフォマティクスでは、化学物質の特徴(組成等)を説明変数とし、その化学物質の特性(硬度等)を目的変数とする大量のデータで機械学習して生成させた予測モデルを用いることにより、新規物質の特性を実際に実験して確認する手間を削減することができる。
【0013】
また、最適なパラメータを探索する手法として、自然の進化を模倣した最適化アルゴリズムである遺伝アルゴリズム(Genetic Algorithm)が知られている。遺伝アルゴリズムでは、親世代の個体の集団に対して、交叉や突然変異等の、生存選択の操作を適用して、子世代集団を得ることを繰り返し、より良い個体を探索する方法である。例えば、このようなアルゴリズムにより探索されたパラメータを有する化学物質と、上述のような予測モデルとを用いることにより、効率的に新規物質の開発を行うことが可能である。
【0014】
近年、社外の企業等と連携し、各自が保有するデータを利活用しようとする機運が高まっており、機密性の高いデータを他社に秘匿したまま、データ連携する手法が望まれている。本発明に係るデータ生成方法によれば、予測モデルを提供するモデル提供者は、モデル利用者に対し、遺伝アルゴリズムによって生成される途中の子世代のデータを開示しないため、モデル利用者に予測モデルを推測されることなく、利用させることができる。また、モデル利用者は、予測対象データを、モデル提供者に開示することなく、最終的な最適解を得ることができる。
【0015】
具体的には、データを暗号化したまま演算することができる準同型暗号を用いることで実現する。一方で、全ての演算工程を暗号化したまま演算すると、計算コストが膨大になってしまう。そこで、遺伝アルゴリズムにおける親世代集団に対する生存選択の操作を、モデル利用者が予測モデルを推測できないように、予測モデルへの入力と出力との正しい対応関係が特定困難となる処理の実行後に行い、予測結果に対する評価値に基づいて子世代集団を生成する。
【0016】
これにより、遺伝アルゴリズムにおいて、子世代集団を効率的に生成することができ、計算コストを削減することができる。また、予測モデルをモデル利用者に推測されることを防ぐことができる。
【0017】
<実施形態1>
本実施形態に係るデータ生成システム1では、上述したように、遺伝アルゴリズムにおける親世代集団に対する生存選択の操作を、モデル利用者が予測モデルを推測できないように、予測モデルの入力(予測対象データ)と出力(予測結果)との対応関係が特定困難となる処理として、対応関係を並び替える処理を行う。
【0018】
(データ生成システム1の構成)
図1は、データ生成システム1の全体図である。図1を参照して、本実施形態に係るデータ生成システム1の全体図について説明する。
【0019】
本実施形態に係るデータ生成システム1は、ユーザによって使用される一つ以上の端末装置100と、演算装置200と、を備える。端末装置100と、演算装置200とは、ネットワークNWを介して通信可能に接続される。ネットワークNWは、WAN(Wide Area Network)、LAN(Local Area Network)等から構成される。データ生成システム1において、新規物質を探索したいユーザは、端末装置100を介して、他の組織等が保有する予測モデルを提供する演算装置200を利用する。
【0020】
端末装置100は、ユーザからの入力を受け付け、その入力内容を、ネットワークNWを介して演算装置200に送信する。また、端末装置100は、演算装置200からネットワークNWを介して送信されたデータを受信し、ユーザに提示する。
【0021】
演算装置200は、予測モデルを提供するモデル提供者(または、データ生成システム1のプラットフォーマ)のサーバである。演算装置200は、端末装置100から送信されるデータについて暗号化された状態のまま、機械学習の推論処理や遺伝アルゴリズムによる新規物質の探索等の演算処理を行う。
【0022】
(端末装置100のハードウェア構成)
図2は、端末装置100のハードウェア構成を示す図である。図2を参照して、本実施形態に係る端末装置100のハードウェア構成について説明する。
【0023】
端末装置100は、ユーザによって使用されるユーザ端末であって、例えば、据え置き型や、ラップトップ型のPC(Personal Computer)のような汎用コンピュータにより実現されてもよいし、スマートフォンやタブレットによって実現されてもよい。
【0024】
端末装置100は、プロセッサ11と、メモリ12と、ストレージ13と、通信IF14と、入出力IF15と、を備える。
【0025】
プロセッサ11は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路などにより構成される。
【0026】
メモリ12は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものである。メモリ12は、例えば、DRAM(Dynamic Random Access Memory)等の揮発性のメモリにより実現される。メモリ12に記憶されるプログラムは、本発明に係るデータ生成方法を実行するプログラム等である。
【0027】
ストレージ13は、データを保存するための記憶装置である。ストレージ13は、例えば、フラッシュメモリ、HDD(Hard Disc Drive)等により実現される。
【0028】
通信IF14は、端末装置100が外部の装置と通信するため、信号を送受信するためのインタフェースである。例えば、無線通信を行うための無線通信機、シリアル通信のためのUSB(Universal Serial Bus)コネクタ等である。
【0029】
入出力IF15は、ユーザからの入力を受け付けるための入力装置、および、ユーザに対し情報を提示するための出力装置とのインタフェースである。入力装置は、例えば、キーボードやマウス、タッチパネル、ボタン、マイクロフォン等により実現される。出力装置は、例えば、ディスプレイやプリンタ、スピーカ等により実現される。
【0030】
なお、演算装置200のハードウェア構成を、図2に示した端末装置100のハードウェア構成としてもよい。演算装置200は、例えば、ワークステーション、サーバコンピュータ、据え置き型のPC(Personal Computer)、ラップトップ型のPC等のような汎用コンピュータにより実現されてもよいし、クラウド・コンピューティングによって論理的に実現されてもよい。演算装置200の各構成要素の動作は、上述の端末装置100と同様に、メモリ12に記憶されたプログラムに従ったプロセッサ11により実現する。
【0031】
(端末装置100の機能的構成)
図3は、端末装置100の機能的構成を示すブロック図である。図3を参照して、本実施形態に係る端末装置100の機能的構成について説明する。
【0032】
端末装置100は、通信部110と、入力部120と、出力部130と、記憶部140と、制御部150と、を備える。
【0033】
通信部110は、端末装置100が演算装置200や他の装置と通信するための処理を行う。ここでいう他の装置とは、ネットワークで接続されたPCでもよいし、スマートフォン、タブレットやXR(Cross Reality)(AR:Augmented Reality,MR:Mixed Reality,VR:Virtual Reality)などの端末であってもよい。また、他の装置は、入出力装置、例えば、フラッシュメモリやHDDなどによりデータの入出力を行う装置であってもよい。
【0034】
通信部110は、また、ネットワークNWを介した装置やローカルに接続された装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。セキュアな通信チャンネルの構築や、通信方法は、共通鍵(セッション鍵など)や公開鍵等を用いた周知の技術であるため、説明を省略する。
【0035】
入力部120は、端末装置100のユーザ入力を受け付けるインタフェースである。入力部120は、例えば、キーボードや、タッチパネル、仮想空間内表示パネル、音声入力を検出するマイクであるが、これらに限られない。ユーザは、入力部120を介して、新規物質の探索に必要なパラメータ等を入力することができる。パラメータとしては、例えば、探索対象の説明変数や探索の制約条件、予測したい目的変数、目的変数の目標値、および優先度(重み)等である。
【0036】
また、探索の停止条件を入力するようにしてもよい。停止条件としては、例えば、遺伝アルゴリズムで生成する世代数であったり、評価値(後述)の閾値であったり、探索にかかる最大実行時間であったりでもよい。入力例については、図6および図7において説明する。
【0037】
出力部130は、情報を出力して端末装置100のユーザに通知するインタフェースである。出力部130は、例えば、ディスプレイや、音声出力するスピーカであるが、これらに限られない。出力部130は、例えば、演算装置200等から受信したデータをディスプレイに表示する。
【0038】
記憶部140は、例えば、RAM等の揮発性のメモリ、フラッシュメモリ、HDD等により構成され、端末装置100が使用するデータ、および各種処理に用いられるコンピュータプログラムを記憶する。コンピュータプログラムは、所定のサーバ等からインストールされてもよいし、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いてインストールされてもよい。可搬型記録媒体は、例えばCD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)等である。
【0039】
記憶部140は、「ユーザ記憶部」として機能し、鍵記憶部141と、材料データベース142と、を有する。
【0040】
鍵記憶部141は、後述する制御部150が生成した公開鍵および秘密鍵を記憶する。なお、公開鍵および秘密鍵は、端末装置100とネットワークを介して、または直接的に接続される、セキュアな鍵管理システム(KMS:Key Management System)において管理するようにしてもよい。また、鍵記憶部141は、公開鍵および秘密鍵の鍵対を複数記憶してもよいし、通信用の鍵(セッション鍵)を記憶してもよい。
【0041】
材料データベース142は、複数の材料データを記憶するデータベースである。複数の材料データは、探索対象の未知の材料データであるが、既知の材料データを含んでもよい。材料データベース142は、探索対象の複数の材料データを、遺伝アルゴリズムの複数の親データとして格納する。また、材料データベース142は、探索結果の材料データ(子データ)を格納してもよい。
【0042】
材料データは、材料に関する複数の特徴を示す情報と、複数の特性に関する情報とを含む。材料データのデータ構造については、図4において説明する。
【0043】
制御部150は、端末装置100の各機能を制御し、予め記憶部140に記憶されているプログラムに基づいて動作するCPU(Central Processing Unit)等のプロセッサである。
【0044】
制御部150は、鍵生成部151と、暗復号部152と、評価値算出部153と、を有する。
【0045】
鍵生成部151は、データを暗号化し、または暗号化されたデータを復号するための公開鍵および秘密鍵の鍵対を生成する。生成した公開鍵および秘密鍵は、鍵記憶部141に格納される。
【0046】
暗復号部152は、材料データベース142に格納される複数の親データを、生成した公開鍵を用いて準同型暗号方式で暗号化する。準同型暗号方式としては、例えば、Paillier方式、Lifted-ElGamal方式、Somewhat Homomorphic Encryption方式、Fully Homomorphic Encryption方式等を含む。上述したように、材料データは材料に関する複数の特徴を示す情報を含んでおり、暗復号部152は、各特徴についての値ごとに暗号化する。
【0047】
また、暗復号部152は、演算装置200から受信した暗号化されたデータを、公開鍵と対の秘密鍵を用いて復号する。
【0048】
評価値算出部153は、演算装置200の予測モデル(後述)が出力する予測結果(予測値)から、目標値に対する評価値を算出する。評価値は、二つの値がどの程度異なるかを示す値であり、例えば、絶対差、平方差、相対誤差や、特定の指標、重み付け等を用いるなど、周知の方法により評価してもよい。なお、本実施形態では、評価値は、予測結果と目標値との絶対差とする。例えば、予測結果が「20」であり、目標値が「24」の場合、評価値は、目標値と予測結果との絶対差「4」(=|20-24|)となる。
【0049】
図4は、材料データのデータ構造を示す図である。図4を参照して、材料データのデータ構造について説明する。
【0050】
材料データ1000は、材料ID1100と、材料の特徴を示す情報1200と、材料の特性を示す情報1300とを含む。
【0051】
材料ID1000は、複数の材料データのそれぞれを識別する識別子である。
【0052】
材料の特徴を示す情報1200は、例えば、材料を構成する物質あり、複数の説明変数x1~xnとして表される。材料データごとに、材料の特徴を示す情報として、実験値、計算値等の数値が入力される。なお、説明変数は、材料の特徴を示す情報に限られず、材料の反応工程や生成工程でのプロセス条件(温度、圧力、時間等)を示す情報を含んでもよい。
【0053】
材料の特性を示す情報1300は、例えば、材料の密度、硬度、伝導率、強度のような、材料の物理的特性、化学的特性、機械的特性、電気的特性などであり、複数の目的変数y1~ymとして表される。
【0054】
材料ID1100により識別される材料データが、探索対象の未知の材料データである場合、材料の特性を示す情報1300には、情報が不明であることを示す記号等が入力される。一方、材料ID1100により識別される材料が、既知の材料である場合、材料の特性を示す情報1300には、特性の実験値、計算値等の数値が入力される。
【0055】
なお、図3において説明したように、端末装置100の暗復号部152は、図4の例では、探索対象の未知の材料データのセル(説明変数)ごとに暗号化する。
【0056】
図5は、材料データの具体例を示す図である。図5を参照して、材料データベース142に格納される材料データの具体例について説明する。
【0057】
材料データ2000は、材料IDと、材料の特徴(説明変数)と、材料の特性(目的変数)とを含むデータセットである。
【0058】
図5の例では、材料の特徴として、材料を構成する「原料A」、「原料B」、「原料C」…、「添加剤X」、「添加剤Y」、「添加剤Z」を含む。また、材料の特性として、材料の「粘性」を含む。なお、図5の例では、目的変数は一つであるが、複数であってもよい。
【0059】
材料を識別する材料IDごとに、材料の特徴(説明変数)と材料の特性(目的変数)とが対応付けられる。また、説明変数には、各材料の特徴を示す実験値等の数値が入力される。探索対象である材料データの目的変数には、数値が存在しない旨を示す「NULL」が入力されるが、既知の材料の目的変数には、数値が入力される。
【0060】
材料ID「1」~「5」で識別される材料データは、探索対象の材料データであり、目的変数である粘性には「NULL」と入力される。具体的には、材料IDが「1」の場合、原料Aは「80」、原料Bは「0」、原料Cは「0」、…、添加剤Xは「4」、添加剤Yは「0」、添加剤Zは「8」、粘性は「NULL」が入力されている。探索対象の材料データは、遺伝アルゴリズムの親データとして、材料データベース142に格納される。すなわち、複数の親データは、複数の説明変数に対応する各値を含むレコードが所定の順序に並ぶデータセットである。
【0061】
材料IDが「51」~「55」で識別される材料データは、既知の材料データであり、説明変数および目的変数には、数値が入力される。具体的には、材料IDが「51」の場合、原料Aは「40」、原料Bは「0」、原料Cは「0」、…、添加剤Xは「2」、添加剤Yは「0」、添加剤Zは「8」、粘性は「10」が入力されている。既知の材料データは、例えば、探索済みの材料データであったり、予め実測値等が知られている材料データであったりしてもよい。既知の材料データは、機械学習の教師データとして利用されてもよい。
【0062】
図6は、探索対象の材料データを設定する画面の一例を示す図である。図6を参照して、探索対象の材料データの設定例について説明する。
【0063】
画面3000は、材料の特徴を示す情報3100と、選択欄3200と、範囲を示す情報3300とを含む。画面3000は、例えば、端末装置100の出力部130に表示される。ユーザは、入力部120を介して、材料データの探索に必要なパラメータを入力する。
【0064】
材料を示す情報3100は、材料データの特徴(説明変数)を示す。例えば、図6の例では、図5で示した説明変数すべてを示しているが、説明変数のうち、特定の変数のみを示すようにしてもよいし、ユーザに説明変数を入力させるようにしてもよいし、プルダウン表示により選択させるようにしてもよい。
【0065】
選択欄3200は、説明変数の中で、最適化の対象となる説明変数を選択するチェックボックスを示す。図6の例では、最適化する対象として、「添加剤X」、「添加剤Y」、「添加剤Z」が選択されている。
【0066】
範囲を示す情報3300は、最適化する対象として選択された説明変数の制約条件を示す。図6の例では、ユーザは、パラメータとして、最小値と最大値を入力し、この値の範囲で最適化を実行するように設定することができる。すなわち、図6の例では、材料の特徴のうち、「添加剤X」が「0~10」の範囲、「添加剤Y」が「2~5」の範囲、「添加剤Z」が「0~3」の範囲になるような材料データを探索するよう設定されている。
【0067】
図7は、目的変数を設定する画面の一例を示す図である。図7を参照して、予測する目的変数の設定例について説明する。
【0068】
画面4000は、目的変数を示す情報4100と、選択欄4200と、目標値を示す情報4300と、重みを示す情報4400とを含む。画面4000は、例えば、端末装置100の出力部130に表示される。ユーザは、入力部120を介して、目的変数の設定に必要なパラメータを入力する。
【0069】
目的変数を示す情報4100は、材料データの特性(目的変数)を示す。例えば、図7の例では、強度、溶解度、…、粘性、伝導性、耐性、という材料の特性が示されている。なお、目的変数は、ユーザに入力させるようにしてもよいし、プルダウン表示により選択させるようにしてもよい。
【0070】
選択欄4200は、予測したい目的変数を選択するチェックボックスを示す。図7の例では、予測する対象として、「溶解度」および「粘性」が選択されている。なお、目的変数は、複数選択してもよいし、一つだけ選択するようにしてもよい。
【0071】
目標値を示す情報4300は、目的変数の目標値を示しており、探索した材料データの目的変数の最終的な値を設定する。図7の例では、目標値として、「溶解度」が「10」、「粘性」が「40」と設定されている。
【0072】
重みを示す情報4400は、目的変数を複数選択した場合に、どの目的変数を重視するかを示すパラメータである。図7の例では、設定範囲が0~100の重みについて、「溶解度」に対しては「40」、「粘性」に対しては「60」と入力されている。すなわち、「粘性」の方を重視して材料データを探索するように設定されている。
【0073】
図8は、評価値の算出を説明する図である。図8を参照して、端末装置100における制御部150の評価値算出部153が評価値を算出する方法の一例について説明する。
【0074】
図8の例では、粘性を目的変数とし、その目標値を「40」とした場合の、各材料IDについての評価値を示している。評価値は、目標値と、目的変数の予測値との距離(絶対差)を表すものである。材料ID「11」では、粘性の予測値が「20」であるから、目標値「40」との距離である「20」(=|40-20|)が評価値として算出される。
【0075】
同様に、材料ID「13」では、粘性の予測値が「50」であるから、目標値「40」との距離である「10」(=|40-50|)が評価値として算出される。
【0076】
図8の例では、材料ID「11」~「15」のうち、材料ID「14」の評価値が「0」であり、材料ID「14」の目的変数の予測値が、目標値を達成していることを示している。
【0077】
(演算装置200の機能的構成)
図9は、演算装置200の機能的構成を示すブロック図である。図9を参照して、実施形態1に係る演算装置200の機能的構成について説明する。
【0078】
演算装置200は、通信部210と、入力部220と、出力部230と、記憶部240と、制御部250と、を備える。
【0079】
通信部210は、演算装置200が端末装置100や他の装置と通信するための処理を行う。通信部210は、端末装置100の通信部110と同等の機能であるため、重複する説明は省略する。
【0080】
入力部220は、演算装置200のユーザ入力を受け付けるインタフェースである。入力部220は、例えば、キーボードや、タッチパネル、音声入力を検出するマイクであるが、これらに限られない。
【0081】
出力部230は、情報を出力して演算装置200のユーザに通知するインタフェースである。出力部230は、例えば、ディスプレイや、音声出力するスピーカであるが、これらに限られない。出力部230は、例えば、端末装置100等から受信したデータをディスプレイに表示する。
【0082】
記憶部240は、例えば、RAM等の揮発性のメモリ、フラッシュメモリ、HDD等により構成され、演算装置200が使用するデータ、および各種処理に用いられるコンピュータプログラムを記憶する。記憶部240は、端末装置100の記憶部140と同等の機能であるため、重複する説明は省略する。
【0083】
記憶部240は、「暗号データ記憶部」として機能し、モデルデータベース241と、親データ記憶部242と、を有する。
【0084】
モデルデータベース241は、材料の特徴を説明変数とし、材料の特性を目的変数とする材料データを教師データとして機械学習して構築された予測モデルを格納する。教師データは、具体的には、複数の材料データのそれぞれについて、材料の特徴に関する複数の説明変数の値と、材料の特性に関する一または複数の目的変数の値とが対応付けられたデータセットである。
【0085】
予測モデルは、端末装置100から取得した親データから予測結果を出力する機械学習モデルである。モデルデータベース241は、複数の予測モデルを格納してもよい。予測モデルは、例えば、線形回帰、ロジスティクス回帰、サポートベクトルマシン(SVM)、ニューラルネットなどモデル構築のアルゴリズムが異なったり、教師データの量、ラベリングの精度等が異なったり、説明変数の選択、前処理等が異なったり、学習プロセスのパラメータが異なっていたりしてもよい。
【0086】
親データ記憶部242は、端末装置100から取得した、暗号化された親データを格納する。また、親データ記憶部242は、後述する次世代生成部252において生成した子データを親データとして更新して格納する。端末装置100から取得した親データは、すなわち、探索対象の材料データである。
【0087】
制御部250は、演算装置200の各機能を制御し、予め記憶部240に記憶されているプログラムに基づいて動作するCPU(Central Processing Unit)等のプロセッサである。
【0088】
制御部250は、準同型暗号方式で暗号化されたデータを含む演算を行う「暗号演算部」として機能し、予測部251と、次世代生成部252と、特定困難化部253と、を有する。
【0089】
予測部251は、準同型暗号方式により暗号化された親データから、モデルデータベース241の予測モデルに基づいて、目的変数の予測結果を出力する。具体的には、予測部251は、端末装置100において設定された目的変数に応じて、モデルデータベース241の予測モデルを選択する。そして、予測部251は、予測モデルを端末装置100の公開鍵を用いて準同型暗号方式で暗号化する。次いで、予測部251は、暗号化した予測モデルに親データを入力し、目的変数の予測値を出力する。出力された予測値は、端末装置100の公開鍵を用いて準同型暗号方式により暗号化されており、演算装置200のユーザには、開示されない。
【0090】
次世代生成部252は、暗号化された複数の親データの中から所定の条件を満たす複数の親データに対して、遺伝アルゴリズムを適用して、複数の子データを生成する。所定の条件とは、例えば、評価値が上位10位以内のデータであったり、評価値が所定の閾値以内のデータであったりしてもよい。また、それらの条件を満たすデータから、ランダムに選んだ親データについて遺伝アルゴリズムを適用してもよいし、ランダムに選んだ親データと、評価値に基づいて抽出した親データとを含めた複数の親データに対して遺伝アルゴリズムを適用してもよい。遺伝アルゴリズムを適用した子データの生成については、図12において概要を説明するが、遺伝アルゴリズムは周知の技術であるので、ここでは詳細な説明は省略する。
【0091】
特定困難化部253は、予測モデルへの入力(親データ)と出力(予測結果)の対応関係を、並び替える処理を行う。また、特定困難化部253は、並び替えられた対応関係を元に戻す処理(特定困難化処理の解除)を行う。並び替える処理を行うことにより、予測モデルに対する入力と出力との正しい対応関係を秘匿できるため、予測モデルが推定されることを防ぐことができる。
【0092】
また、特定困難化部253は、複数の子データ(材料データ)に含まれる説明変数について対応関係を並び替える処理を行ってもよい。これにより、正しい子データ(入力)と出力との対応関係を秘匿できるため、予測モデルが推定されることを防ぐことができる。なお、並び替える処理の具体例については、図10および図11において説明する。
【0093】
図10は、実施形態1における特定困難化処理の例を示す図である。図10を参照して、特定困難化処理として、材料データの説明変数と目的変数との対応関係を並び替える処理について説明する。
【0094】
材料データ5100は、材料の特徴に関する説明変数に対して、材料の特性に関する目的変数が対応しているデータセットである。材料ID5110と、材料ID5120は、同じ識別子を示している。例えば、材料ID「1」の説明変数と、材料ID「1」の目的変数とは対応関係にある。
【0095】
材料データ5200は、材料データ5100に対して特定困難化処理として、説明変数と目的変数の対応関係を並び替える処理を行った後のデータセットである。材料ID5210は、材料ID5110と対応しており、同じ識別子を示す。材料ID5220は、材料ID5120の識別子(番号)を並び替えたものである。例えば、材料ID「1」の説明変数に対しては、材料ID「1」の目的変数(粘性「20」)ではなく、材料ID「4」の目的変数(粘性「30」)が対応付けられている。同様に、材料ID「2」の説明変数に対しては、材料ID「2」の目的変数(粘性「10」)ではなく、材料ID「1」の目的変数(粘性「20」)が対応付けられている。このように、特定困難化処理は、説明変数と目的変数との対応関係を並び替える。並び替えた後、例えば、仮材料ID5230として、新たに識別子を割り振ってもよい。
【0096】
予測結果を端末装置100に送信する際は、並び替えられた予測結果を送信することで、端末装置100では、材料IDについての説明変数に対応する目的変数の正しい予測値を特定することができない。すなわち、モデル利用者である端末装置100のユーザは、説明変数および目的変数からなる材料データの取得ができないため、これらの材料データに基づいて、予測モデルを推測することは困難である。したがって、モデル提供者は、モデル利用者に予測モデルを推測されることなく、予測モデルを利用させることができる。
【0097】
また、特定困難化部253は、材料ID5220と、仮材料ID5230との対応関係を記憶しておくことで、特定困難化処理を解除することができる。
【0098】
図11は、実施形態1における特定困難化処理の例を示す図である。図11を参照して、特定困難化処理として、材料データの説明変数の対応関係を並び替える処理について説明する。
【0099】
材料データ5300は、材料の特徴に関する説明変数から構成される親データのデータセットである。材料データ5400は、材料データ5300の説明変数に対し特定困難化処理が実行されたデータセットである。
【0100】
特定困難化処理として、材料データ5300に対し、各材料IDの説明変数「原料A」に対応する値を並び替える処理を行う。例えば、材料ID「21」~材料ID「25」の「原料A」に対応する値は、それぞれ「80」,「10」,「20」,「70」,「30」であるが、並び替えにより、「原料A」に対応する値を、それぞれ「10」,「80」,「70」,「30」,「20」とする。同様に、材料ID「21」~材料ID「25」の「原料B」に対応する値は、それぞれ「10」,「80」,「20」,「30」,「70」であるが、並び替えにより、「原料B」に対応する値を、それぞれ「20」,「30」,「10」,「70」,「80」とする。
【0101】
このように、各説明変数の対応関係を並び替えると、材料データ5400で示すデータセットとなる。すなわち、例えば、材料ID「21’」で識別される材料データは、「原料A」が「10」、「原料B」が「20」、「原料C」が「80」、…、「添加剤X」が「0」、「添加剤Y」が「6」、「添加剤Z」が「0」から構成される。材料データ5300に対して特定困難化処理を実行することにより、材料ID「21」で識別される材料データは、材料データ5400からは特定が困難になる。
【0102】
なお、図11の例では、材料データ5300の全ての説明変数の対応関係について並び替えを行ったが、各材料データの特定が困難になるのであれば、一部の説明変数についてのみ特定困難化処理を実行するようにしてもよい。また、特定困難化部253は、各説明変数について並び替えた材料IDとの対応関係を記憶しておくことで、特定困難化処理を解除することができる。
【0103】
図12は、遺伝アルゴリズムの適用例を示す図である。図11を参照して、材料データ6100の説明変数「添加剤X」、「添加剤Y」、「添加剤Z」を最適化する場合において、遺伝アルゴリズムにより親データ(材料ID「1」および材料ID「5」)から子データ(材料ID「C1」および材料ID「C2」)を生成する処理について説明する。
【0104】
遺伝アルゴリズムでは、親世代の個体(各材料データ)N個の中から、二つを選択して交叉を行う、または、一つを選択して突然変異を行うか、そのままコピーするという処理を子世代の個体数がN個になるまで繰り返される。そして、子世代がN個になれば、子世代を親世代として更新し、同じ処理を繰り返す。例えば、所定の回数まで繰り返したのち、親世代の中で、評価値が良い(つまり、目標値に近い。)個体を「解」として出力する。
【0105】
図12の例において、材料ID「1」および材料ID「5」の材料データについて、一点交叉する場合、まず、交叉する場所をランダムに選ぶ。材料データ6100では、添加剤Xと添加剤Yの間を交叉点L1とする。
【0106】
そして、交叉点L1より後ろのデータを入れ替える。材料データ6100において、原料Aから添加剤Zへデータが並んでいるとすると、交叉点L1より後ろにある、材料ID「1」の「添加剤Y」と「添加剤Z」の値を、材料ID「5」の「添加剤Y」と「添加剤Z」の値と入れ替える。
【0107】
材料データ6200は、交叉により生成された子データ(材料ID「C1」および材料ID「C5」)である。交叉により、「添加剤X」、「添加剤Y」、「添加剤Z」について、材料ID「1」および材料ID「5」とは異なる組成の材料データが生成されている。
【0108】
(データ生成システム1における処理)
図13は、データ生成システム1における処理を示すシーケンス図である。図13を参照して、データ生成システム1において、端末装置100に入力された探索対象の材料データ(親データ)から次世代の子データを生成(次世代生成ステップ)し、子データを親データとして更新(更新ステップ)する処理について説明する。
【0109】
図13では、端末装置100、および演算装置200(特に、予測部251、次世代生成部252、特定困難化部253)での処理の一例を示している。
【0110】
ステップS100において、データ生成システム1では、パラメータ等の設定が行われる。具体的には、端末装置100の鍵生成部151は、公開鍵および秘密鍵を生成し、記憶部140の鍵記憶部141に記憶する。また、端末装置100は、生成した公開鍵を演算装置200に送信し、演算装置200は、公開鍵を記憶部240に記憶する。
【0111】
また、端末装置100は、材料データの探索に必要なパラメータを取得する。パラメータは、例えば、目的変数や目標値、最適化したい説明変数である。また、演算装置200における次世代生成ステップと更新ステップを繰り返すステップの実行回数や、アルゴリズムの最大実行時間などの停止条件であってもよい。なお、停止条件は、予め、データ生成システム1の開発者側で最適な条件を設定しておき、適宜、端末装置100のユーザによって変更できるようにしてもよい。
【0112】
また、端末装置100は、探索対象の複数の材料データを、複数の親データとして取得し、記憶部140の材料データベース142に記憶する。
【0113】
ステップS101において、端末装置100の暗復号部152は、材料データベース142から探索対象の複数の親データを読み出し、生成した公開鍵を用いて準同型暗号方式で暗号化する。親データは、説明変数単位(セル単位)で暗号化される。
【0114】
ステップS102において、演算装置200の通信部210は、端末装置100が暗号化した複数の親データを取得し、親データ記憶部242は、取得した複数の親データを記憶する。
【0115】
ステップS103において、演算装置200の予測部251は、材料の特性の予測を行う。具体的には、予測部251は、ステップS100で設定された目的変数に応じた予測モデルをモデルデータベース241から読み込む。そして、予測部251は、探索対象の材料データである複数の親データを予測モデルに入力し、親データのそれぞれに対応する複数の予測結果(予測値)を出力する。なお、予測モデルは、暗号化された複数の親データと同じ暗号空間となるよう、端末装置100から取得した公開鍵(すなわち、親データの暗号化で用いた公開鍵)で暗号化しておく。これにより、効率的に演算して予測結果を出力することができる。
【0116】
ステップS104において、特定困難化部253は、予測部251が出力した複数の予測結果を取得する。
【0117】
ステップS105において、特定困難化部253は、出力された複数の予測結果に対し、複数の親データに対応する当該複数の予測結果の特定を困難にする特定困難化処理を実行する。具体的には、特定困難化部253は、図10で示したように、予測モデルの入力(説明変数)と出力(目的変数)との対応関係を並び替える処理を行う。特定困難化部253は、並び替えた対応関係を記憶する。
【0118】
ステップS106において、端末装置100の通信部110は、演算装置200の通信部210を介して、特定困難化処理が実行された複数の予測結果を取得する。
【0119】
ステップS107において、端末装置100の暗復号部152は、鍵記憶部141から秘密鍵を読み込み、当該秘密鍵を用いて、取得した、特定困難化処理が実行された複数の予測結果を復号する。端末装置100のユーザには、予測結果が開示されるが、ステップS105において親データの説明変数と目的変数(予測結果)との対応関係が並び替えられているため、どの親データに対応する予測結果であるか知ることができない。すなわち、端末装置100のユーザには、予測モデルの入力と出力が正しい対応関係で開示されないため、予測モデルの推測を行うことは困難である。予測モデルの提供者は、モデル利用者に予測モデルを秘匿しつつ利活用させることができる。
【0120】
ステップS108において、端末装置100の評価値算出部153は、復号した複数の予測結果から、当該複数の予測結果のそれぞれの目標値に対する複数の評価値を算出する。具体的には、評価値算出部153は、ステップS100において設定した目標値と、予測結果(予測値)との距離を算出する。なお、本実施形態では、絶対差を距離として算出するが、目標値と予測値とがどれぐらい異なるかを示す値であれば、どのような方法で算出されてもよい。
【0121】
ステップS109において、演算装置200の特定困難化部253は、通信部210を介して、ステップS108で算出された複数の評価値を取得する。なお、複数の評価値は、当該評価値を算出するのに用いた予測結果との対応関係が分かる態様で演算装置200に送信される。例えば、予測結果を識別するIDに対応する識別子を評価値に付与し、評価値と予測結果の対応関係と共に、演算装置200に送信してもよい。
【0122】
なお、評価値は端末装置100において暗号化されていないため、演算装置200のユーザには評価値が開示される。しかし、評価値からは予測モデルに入力された材料データの説明変数、およびその予測結果を求めることはできない。すなわち、演算装置200のユーザには、どのような特徴(説明変数)の材料データに対する特性(目的変数)であるかは開示されないため、予測対象の材料データを取得することは困難である。モデル利用者は、モデル提供者に探索対象の材料データを秘匿しつつ、予測モデルを利用することができる。
【0123】
ステップS110において、演算装置200の特定困難化部253は、取得した複数の評価値に対応する複数の予測結果に対する特定困難化処理を解除する。具体的には、特定困難化部253は、ステップS105で並び替えた対応関係を元に戻す処理を実行し、親データの説明変数に対する予測結果を正しい対応関係とする。
【0124】
ステップS111において、演算装置200の次世代生成部252は、特定困難化処理が解除された複数の予測結果を介して、複数の親データと対応関係にある複数の評価値を取得する。親データと予測結果とが対応関係にあり、また、予測結果と、予測結果から算出した評価値とが対応関係にあるため、予測結果を介して、親データに対応する評価値を取得することができる。
【0125】
ステップS112において、次世代生成部252は、次世代の生成を行う。具体的には、次世代生成部252は、所定の条件を満たす評価値に対応する複数の親データを抽出する。そして、抽出された複数の親データに対し、遺伝アルゴリズムを適用して、複数の子データを生成する。所定の条件とは、例えば、評価値が上位10位以内であったり、評価値が所定の閾値以内であったりしてもよい。遺伝アルゴリズムの適用例については、図11で示した通りである。材料データは、各説明変数単位で暗号化されているため、生成された子データは、演算装置200のユーザには開示されない。
【0126】
ステップS113において、特定困難化部253は、生成された複数の子データを取得する。
【0127】
ステップS114において、特定困難化部253は、生成された複数の子データの説明変数に対し、特定困難化処理を実行する。具体的には、図11において説明したように、各子データが含む説明変数の対応関係を並び替える。
【0128】
ステップS115において、端末装置100の通信部110は、特定困難化処理が実行された複数の子データを取得する。
【0129】
ステップS116において、端末装置100の暗復号部152は、複数の子データを再暗号化する。具体的には、暗復号部152は、鍵記憶部141から秘密鍵を読み込み、当該秘密鍵を用いて、ステップS115で取得した複数の子データを復号する。さらに、暗復号部152は、鍵記憶部141から公開鍵を読み込み、復号した複数の子データを、当該公開鍵を用いて準同型暗号方式で再暗号化する。子データは、説明変数単位で暗号化される。
【0130】
ステップS116で行う再暗号化の処理は、準同型暗号を用いた演算の過程で蓄積される誤差を制御し、効率的に演算を実行し続けるために必要な処理である。再暗号化の処理のために、ステップS116では、子データが復号されるが、たとえ子データが復号されたとしても、ステップS114で子データに対し特定困難化処理がされているため、端末装置100のユーザは子データを特定することはできない。
【0131】
ステップS117において、演算装置200の特定困難化部253は、通信部210を介して、再暗号化された複数の子データを取得する。
【0132】
ステップS118において、特定困難化部253は、複数の子データの説明変数に対し、特定困難化処理を解除する。具体的には、ステップS114で実行した説明変数の対応関係を元に戻す並び替えを行う。
【0133】
ステップS119において、演算装置200の次世代生成部252は、特定困難化処理が解除された複数の子データを取得する。
【0134】
ステップS120において、次世代生成部252は、子データを親データとして更新する。具体的には、次世代生成部252は、ステップS119で取得した子データを親データ記憶部242に記憶させる。すなわち、親データ記憶部242は、複数の子データを、暗号化された複数の親データとして記憶する。
【0135】
ステップS121において、演算装置200の予測部251は、暗号化された複数の親データを取得する。
【0136】
上述したように、ステップS103~ステップS119までの処理が、演算装置200の制御部250および端末装置100の制御部150が、暗号化された複数の親データを機械学習モデルに入力して出力された複数の予測結果に基づき、複数の子データを生成する次世代生成ステップである。また、ステップS120は、演算装置200の親データ記憶部242が、生成された複数の子データを、暗号化された複数の親データとして記憶する更新ステップである。
【0137】
ステップS121以降は、ステップS103~ステップS120において行った処理を繰り返すことにより、次世代の子データを繰り返し生成することができる。
【0138】
なお、ステップS116で行った再暗号化の処理は、準同型暗号のアルゴリズムや、演算装置200の処理性能等に応じて、準同型暗号を用いた演算が現実的な時間で実行できる場合は省略してもよい。再暗号化の処理を省略する場合は、ステップS112において、次世代生成部252が生成した複数の子データは、次いで、ステップS120において、親データとして更新される。すなわち、端末装置100で再暗号化の処理がされない(子データが復号されない)ため、子データを秘匿するための特定困難化処理を実行する必要がなくなり、ステップS113~ステップS119の処理を省略することができる。
【0139】
図14は、データ生成システム1における処理を示すシーケンス図である。図14を参照して、図13で示した処理以降に行われる、探索した材料データを出力する処理について説明する。
【0140】
ステップS200において、端末装置100と演算装置200との間で、次世代生成ステップと、更新ステップとを繰り返すステップが行われる。繰り返し回数については、図13のステップS100において、設定パラメータとして入力されてもよい。
【0141】
ステップS201において、演算装置200の予測部201は、ステップS200において更新された複数の親データ(すなわち、生成された複数の子データ)を取得して予測モデルに入力し、予測結果を出力する。
【0142】
ステップS202において、端末装置100の通信部110は、遺伝アルゴリズムによる探索結果として、ステップS201で予測モデルに入力された複数の親データ、および当該親データと対応関係にある予測結果を取得する。
【0143】
ステップS203において、端末装置100の暗復号部152は、鍵記憶部141から秘密鍵を読み込み、取得した親データおよび予測結果を復号する。
【0144】
以上の処理により、端末装置100のユーザは、探索対象の材料データおよび、当該材料データから予測される目的変数の予測値を得ることができる。
【0145】
なお、本実施形態に係るデータ生成システム1では、探索対象は材料データであったが、この他にも、例えば、工業製品の製造プロセスにおいて、デザイン(形状、外観、寸法等)や仕様(機能性、性能、規格等)、配送ルート最適化、需要予測に関するパラメータを探索対象とすることも可能である。
【0146】
(効果の説明)
本発明に係るデータ生成方法によれば、データを暗号化したまま演算することができる準同型暗号を用い、遺伝アルゴリズムにより生成された材料データと、材料データの特性を予測する予測モデルとを用いることにより、未知の材料データを探索する。ここで、遺伝アルゴリズムにおける親世代集団に対する生存選択の操作を、予測モデルの入力(予測対象データ)と出力(予測結果)との対応関係が特定困難となる処理の実行後に行い、予測結果に対する評価値に基づいて子世代集団を生成する。これにより、モデル利用者に予測モデルが推測されることを防ぐことができ、予測モデルの提供者は、モデル利用者に予測モデルを秘匿しつつ利活用させることができる。
【0147】
また、遺伝アルゴリズムにおいて、次世代集団を効率的に生成することができ、計算コストを削減することができる。
【0148】
また、モデル利用者は、予測対象データをモデル提供者(またはプラットフォーマ)に開示することなく、予測モデルを利用することができる。
【0149】
また、本発明に係るデータ生成方法によれば、特定困難化処理を、対応関係の並び替えにより実現する。これにより、暗号鍵を用いて暗号化するよりも計算コストを削減しつつ、機微データを秘匿することができる。
【0150】
また、本発明に係るデータ生成方法によれば、準同型暗号を用いた演算の過程で蓄積された誤差を制御し、効率的に演算を実行し続けるために必要な再暗号化の処理に関し、再暗号のために子データが復号される前に、子データの説明変数に対し特定困難化処理を行う。これにより、モデル利用者は子データを復号しても、子データを特定することはできない。したがって、モデル利用者に、遺伝アルゴリズムによって生成される途中の子世代のデータを秘匿することができ、子世代のデータと予測結果とに基づいて、予測モデルが推測されることを防ぐことができる。
【0151】
<実施形態2>
実施形態1では、特定困難化処理として、対応関係を並び替える処理を行った。本実施形態2に係るデータ生成システム2では、特定困難化処理として、ノイズを付加する処理を行う。
【0152】
データ生成システム2は、実施形態1に係るデータ生成システム1の演算装置200に代えて、演算装置300を備える。まず、本実施形態における特定困難化処理の説明をした後、演算装置300の機能的構成について説明する。
【0153】
図15は、実施形態2における特定困難化処理の例を示す図である。図15では、説明のため、材料データの目的変数が「粘性」のみの場合を示している。図15を参照して、特定困難化処理として、材料データの目的変数にノイズを付加する処理について説明する。
【0154】
テーブル7000は、材料ID「31」~「35」で識別される材料データの目的変数「粘性」の予測値および評価値に対するノイズ付加、ノイズ除去による値の変化を示す。
【0155】
列7100は、材料ID「31」~「35」で識別される材料データの目的変数「粘性」の予測値をそれぞれ示している。列7100で示される予測値には、ノイズは付加されていない。
【0156】
列7200は、材料ID「31」~「35」の予測値に付加するノイズの値を示している。例えば、材料ID「31」の予測値「20」には、ノイズとして「+10」が付加される。また、例えば、材料ID「34」の予測値「30」には、ノイズとして「-2」が付加される。
【0157】
列7300は、ノイズが付加された後の予測値を示している。例えば、材料ID「31」の予測値「20」に対し、ノイズとして「+10」を付加すると、ノイズを含む予測値は「30」となる。
【0158】
列7400は、目標値を「20」とした場合の、ノイズを含む予測値と目標値との評価値を示している。なお、本実施形態において、評価値は、目標値と予測値との距離(絶対差)である。評価値として「絶対差」を用いるのは一例であって、他の周知の方法で評価するようにしてもよい。
【0159】
例えば、材料ID「31」のノイズを含む予測値「30」と目標値「20」との距離は「10」(=|30-20|)となる。また、例えば、材料ID「32」のノイズを含む予測値「2」と目標値「20」との距離は「18」(=|2-20|)となる。
【0160】
列7500は、ノイズを含む評価値からノイズを除去した後の評価値を示している。すなわち、列7500に示される各値は、列7400で示されるノイズを含む各評価値から、列7200で示されるノイズの各値を除去した値である。例えば、材料ID「33」のノイズを含む評価値「35」からノイズ「+5」を除去すると評価値は「30」となる。
【0161】
(演算装置300の機能的構成)
図16は、演算装置300の機能的構成を示すブロック図である。図16を参照して、本実施形態に係る演算装置300の機能的構成について説明する。なお、実施形態1に係る演算装置200と共通の構成要素には同一の符号を付しており、繰り返しの説明は省略する。
【0162】
演算装置300は、演算装置200の制御部250に代えて、制御部350を備える。制御部350は、予測部251と、次世代生成部252と、特定困難化部353と、を有する。
【0163】
特定困難化部353は、複数の親データ(材料データ)のそれぞれについて予測部251が出力した予測値についてノイズを付加する処理を行う。また、特定困難化部353は、端末装置100において算出された評価値から、予測値に付加したノイズを除去する処理(特定困難化処理の解除)を行う。ノイズを付加する処理を行うことにより、親データに対応する予測値を特定できないようにすることができる。なお、予測値に対するノイズの付加は、準同型暗号で暗号化された数値同士の演算が行われる。一方、評価値に対するノイズの除去は、端末装置100において算出される評価値は平文であるから、平文の数値同士の演算が行われる。
【0164】
また、特定困難化部353は、複数の子データ(材料データ)に含まれる説明変数について、ノイズを付加する処理を行う。これにより、子データの特徴(説明変数)を特定できないようにすることができる。なお、説明変数に対するノイズの付加、除去は、準同型暗号で暗号化された数値同士の演算が行われる。
【0165】
特定困難化部353の具体的な処理例については、図15において説明した通りである。
【0166】
(データ生成システム2における処理)
図17は、データ生成システム2における処理を示すシーケンス図である。データ生成システム2における処理は、実施形態1に係るデータ生成システム1が行う処理(図13および図14参照)のうち、特定困難化処理が異なる以外は、同様の処理が行われる。したがって、図17を参照して、データ生成システム2における処理のうち、データ生成システム1と異なる処理である特定困難化処理に関するステップについて説明する。
【0167】
ステップS305において、特定困難化部353は、出力された複数の予測結果に対し、複数の親データに対応する当該複数の予測結果の特定を困難にする特定困難化処理を実行する。具体的には、特定困難化部353は、図15で示したように、複数の親データのそれぞれに対応する予測結果(予測値)に対してノイズを付加する処理を行う。特定困難化部353は、付加したノイズを記憶する。
【0168】
ステップS310において、特定困難化部353は、取得した複数の評価値に対応する複数の予測結果に対する特定困難化処理を解除する。具体的には、特定困難化部353は、ステップS305で付加したノイズを評価値から除去する処理を実行し、親データの説明変数に対する予測結果を正しい対応関係とする。
【0169】
ステップS314において、特定困難化部353は、生成された複数の子データの説明変数に対し、特定困難化処理を実行する。具体的には、子データの説明変数に対し、ノイズを付加する。ノイズを付加する説明変数は、子データに含まれるすべての説明変数であってもよいし、一部の説明変数であってもよい。特定困難化部353は、付加したノイズを記憶する。
【0170】
ステップS318において、特定困難化部353は、複数の子データの説明変数に対し、特定困難化処理を解除する。具体的には、ステップS314で説明変数に付加したノイズを除去する。なお、ステップS314およびステップS318におけるノイズの付加・除去は、準同型暗号で暗号化された数値同士の演算が行われる。
【0171】
上述した特定困難化処理を実行することにより、予測モデルの入力と出力の対応関係、および子データについて、暗号化を行うことなく特定を困難とすることができる。
【0172】
<実施形態3>
実施形態1および実施形態2では、特定困難化処理として、それぞれ対応関係を並び替える処理、ノイズを付加する処理を行った。実施形態3に係るデータ生成システム3では、特定困難化処理を、対応関係を並び替える処理、またはノイズを付加する処理の組み合わせとする。
【0173】
具体的には、特定困難化処理のうち、予測モデルの入力と出力との対応関係を特定困難とするための処理(例えば、図13のステップS105に相当。)は、対応関係を並び替える処理とする。また、子データを特定困難とするための処理(例えば、図13のステップS114に相当。)は、ノイズを付加する処理とする。
【0174】
また、その逆の組み合わせであってもよい。すなわち、予測モデルの入力と出力との対応関係を特定困難とするための処理(例えば、図13のステップS105に相当。)が、ノイズを付加する処理であり、子データを特定困難とするための処理(例えば、図13のステップS114に相当。)が、対応関係を並び替える処理であってもよい。
【0175】
また、特定困難化処理として、対応関係を並び替える処理を行った後、ノイズを付加する処理を行ってもよい。また、その逆に、ノイズを付加する処理を行った後、対応関係を並び替える処理を行ってもよい。
【0176】
データの特定を困難にする処理を組み合わせることで、情報が開示されてしまうリスクをより低減させることができる。
【0177】
<実施形態4>
実施形態1から実施形態3では、端末装置100が評価値を算出した。本実施形態4に係るデータ生成システム4では、評価値の算出を、端末装置側ではなく、演算装置側で行う。端末装置側においてデータの暗復号を行い、演算装置側において、データの暗復号以外のデータに関する演算処理を集約することで、効率的に演算処理を実行することができる。
【0178】
(データ生成システム4の構成)
図18は、データ生成システム4の全体図である。図18を参照して、本実施形態に係るデータ生成システム4の全体図について説明する。
【0179】
本実施形態に係るデータ生成システム4は、実施形態1に係るデータ生成すステム1の端末装置100および演算装置200に代えて、端末装置400および演算装置500を備える。
【0180】
(端末装置400の機能的構成)
図19は、端末装置400の機能的構成を示すブロック図である。実施形態1に係る端末装置100と共通の構成要素には同一の符号を付しており、繰り返しの説明は省略する。
【0181】
端末装置400は、端末装置100の制御部150に代えて、制御部450を備える点が端末装置100と異なる。制御部450は、鍵生成部151と、暗復号部152と、を備える。制御部450は、端末装置100の制御部150と比べて、評価値算出部153を有しない点が異なる。
【0182】
端末装置100は、演算装置200から取得した、特定困難化処理が実行された予測結果を復号し、評価値を算出した。一方、端末装置400は、特定困難化処理が実行された予測結果を復号した後、通信部110を介して、演算装置500に送信する。
【0183】
(演算装置500の機能的構成)
図20は、演算装置500の機能的構成を示すブロック図である。実施形態1に係る演算装置200と共通の構成要素には同一の符号を付しており、繰り返しの説明は省略する。
【0184】
演算装置500は、演算装置200の制御部250に代えて、制御部550を備える点が演算装置200と異なる。制御部550は、演算装置200の制御部250と比べて、予測部251と、次世代生成部252と、特定困難化部253と、に加えて、評価値算出部554を有する点が異なる。
【0185】
評価値算出部554は、予測部251が出力し、端末装置100において復号された予測結果(予測値)から、目標値に対する評価値を算出する。評価値は、二つの値がどの程度異なるかを示す値であり、実施形態1と同様に、説明を容易にするため、本実施形態では、評価値は予測結果と目標値との絶対差とする。
【0186】
(データ生成システム4における処理)
図21は、データ生成システム4における処理を示すシーケンス図である。より具体的には、データ生成システム4において、端末装置400に入力された探索対象の材料データ(親データ)から次世代の子データを生成(次世代生成ステップ)し、子データを親データとして更新(更新ステップ)する処理である。
【0187】
図21で示すデータ生成システム4における処理は、実施形態1(図13)で示したデータ生成システム1におけるステップS108からステップS111の処理に代えて、ステップS408からステップS411の処理である点が、データ生成システム1における処理とは異なる。すなわち、データ生成システム4におけるステップS408からステップS411以外の処理ステップは、データ生成システム1における処理ステップと同一であり、同一の符号を付している。したがって、同一符号であるステップについては繰り返しの説明は省略する。図21で示す処理に引き続いて、図14で示した処理が行われ、探索した材料データが出力される。
【0188】
ステップS408は、ステップS107の処理に次いで行われる処理である。端末装置400は、ステップS107において復号された、特定困難化処理が実行された複数の予測結果を、演算装置500に送信する。演算装置500の特定困難化部253は、通信部210を介して、復号された複数の予測結果を取得する。
【0189】
ステップS409において、演算装置500の特定困難化部253は、取得した複数の予測結果に対する特定困難化処理を解除する。具体的には、特定困難化部253は、ステップS105で並び替えた対応関係を元に戻す処理を実行し、親データの説明変数に対する予測結果を正しい対応関係とする。次いで、特定困難化部253は、複数の親データと、当該親データに対して正しい対応関係となった予測結果を評価値算出部554へ送る。
【0190】
ステップS410において、評価値算出部554は、端末装置400において復号された複数の予測結果から、当該複数の予測結果のそれぞれの目標値に対する複数の評価値を算出する。具体的には、評価値算出部153と同様に、評価値算出部554は、ステップS100において設定した目標値と、予測結果(予測値)との距離を算出する。なお、本実施形態では、実施形態1と同様に、絶対差を距離として算出するが、目標値と予測値とがどれぐらい異なるかを示す値であれば、どのような方法で算出されてもよい。
【0191】
ステップS411において、演算装置500の次世代生成部252は、評価値算出部554から、暗号化された、複数の親データと、当該親データと対応関係にある評価値とを取得する。次世代生成部252は、複数の親データと、当該親データと対応関係にある評価値とに基づいて、引き続き、ステップS112において、次世代の生成を行う。以降の処理は、実施形態1(図13)において説明したのと同様である。
【0192】
なお、本実施形態に係るデータ生成システム4では、特定困難化処理を、予測モデルの入力(予測対象データ)と出力(予測結果)との対応関係の並び替えにより実現した。しかし、この他にも、特定困難化処理として、実施形態2で説明した「ノイズを付加する処理」や、実施形態3で説明した、「対応関係を並び替える処理、またはノイズを付加する処理の組み合わせ」で実現することも可能である。
【0193】
(効果の説明)
本実施形態では、端末装置400においてデータの暗復号を行い、演算装置500において、データの暗復号以外のデータに関する演算処理を集約する。これにより、より効率的に演算処理を実行することができる。
【0194】
上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【符号の説明】
【0195】
1,2,3 データ生成システム、100,400 端末装置、200,300,500 演算装置、110,210 通信部、120,220 入力部、130,230 出力部、140,240 記憶部、141 鍵記憶部、142 材料データベース、150,250,350,450 制御部、151 鍵生成部、152 暗復号部、153,554 評価値算出部、251 予測部、252 次世代生成部、253,353 特定困難化部。
【要約】
【課題】データの内容を開示せずに、最適パラメータ設計を容易にする。
【解決手段】
制御部とユーザ記憶部とを有するユーザ端末と、準同型暗号方式で暗号化されたデータを含む演算を行う暗号演算部と親データから予測結果を出力する機械学習モデルを記憶する暗号データ記憶部とを有する演算装置と、を備えるシステムにおいて用いられる方法であって、制御部が公開鍵及び秘密鍵を生成するステップと、制御部がユーザ記憶部から取得した複数の親データを、公開鍵を用いて準同型暗号方式で暗号化するステップと、暗号演算部及び制御部が暗号化された複数の親データを機械学習モデルに入力して出力された複数の予測結果に基づき、複数の子データを生成する次世代生成ステップと、暗号データ記憶部が、生成された複数の子データを暗号化された複数の親データとして記憶する更新ステップと、次世代生成ステップと更新ステップとを繰り返すステップと、を備える。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21