TOP特許意匠商標
特許ウォッチ Twitter
10個以上の画像は省略されています。
公開番号2024175248
公報種別公開特許公報(A)
公開日2024-12-18
出願番号2023092866
出願日2023-06-06
発明の名称推論検証システム、推論検証方法、及び推論検証プログラム
出願人三菱電機株式会社
代理人弁理士法人クロスボーダー特許事務所
主分類H04L 9/30 20060101AFI20241211BHJP(電気通信技術)
要約【課題】ゼロ知識証明技術によりCNN(Convolutional Neural Network)を検証する技術において、入力データに関するプライバシーを保護したい。
【解決手段】推論検証システム100は、CNNモデルに対する入力データと、CNNモデルの重みパラメータとの各々について、論理回路で表現されたCNNモデルと、秘匿化された各データとを用いて、CNNモデルにおけるInner ProductとReLU(Rectified Linear Unit)とMax Poolingとの各々に対する証明を生成し、共通パラメータと、生成した証明とを用いて、入力データ及び重みパラメータを用いて推論処理が適切に実行されたことを証明する証明を生成する。
【選択図】図1
特許請求の範囲【請求項1】
論理回路で表現されたCNN(Convolutional Neural Network)モデルと、前記CNNモデルに対する入力データを、秘匿手法を用いて秘匿化することによって生成された第1秘匿化データとを用いて、前記CNNモデルにおけるInner ProductとReLU(Rectified Linear Unit)とMax Poolingとの各々に対する証明として第1証明群を生成し、共通パラメータと、前記第1証明群とを用いて、前記入力データを用いて推論処理が実行されたことを証明する第1証明を生成する証明生成部
を備えるユーザ用演算装置と、
論理回路で表現された前記CNNモデルと、前記CNNモデルの重みパラメータを、前記秘匿手法を用いて秘匿化することによって生成された第2秘匿化データとを用いて、前記CNNモデルにおけるInner ProductとReLUとMax Poolingとの各々に対する証明として第2証明群を生成し、前記共通パラメータと、前記第2証明群とを用いて、前記重みパラメータを用いて推論処理が実行されたことを証明する第2証明を生成する証明生成部
を備える提供者用演算装置と
を備える推論検証システムであって、
前記ユーザ用演算装置の前記証明生成部は、前記第1証明群を生成する際に前記ユーザ用演算装置が前記提供者用演算装置から取得したデータを使用し、
前記提供者用演算装置の前記証明生成部は、前記第2証明群を生成する際に前記提供者用演算装置が前記ユーザ用演算装置から取得したデータを使用する推論検証システム。
続きを表示(約 2,800 文字)【請求項2】
g,h∈Gは群Gに含まれている要素g及び要素hを表すものとし、v∈G^mは群Gに含まれているm個の要素から成るベクトル(v1,…,vm)を表すものとし、群Z_pは素数pに対して{1,…,p}から構成される乗法群を表すものとしたとき、前記秘匿手法において、
値xを前記ユーザ用演算装置が所持しており、値yを前記提供者用演算装置が所持しているものとし、前記秘匿手法によって秘匿化された前記値xを[x]と表記し、前記秘匿手法によって秘匿化された前記値yを[y]と表記したとき、前記[x]及び前記[y]について、
Add([x],[y]):z(=x+y)を前記秘匿手法によって秘匿化した[z]を計算する関数と、
SMult(a,[x]):z(=ax、aはある数)を前記秘匿手法によって秘匿化した[z]を計算する関数と、
Mult([x],[y]):z(=xy)を前記秘匿手法によって秘匿化した[z]を計算する関数と、
Rand():ランダムな値z(∈Z_p)を前記秘匿手法によって秘匿化した[z]を計算する関数と、
EQ([x],[y]):x=yである場合にz=1となるzを前記秘匿手法によって秘匿化した[z]を出力する関数と、
Output([x]):値xを各装置に出力する関数と
が成立し、
前記ユーザ用演算装置と前記提供者用演算装置とが合わせてm個の入力(x1,…,xm)を所持しており、かつ、前記m個の入力を前記秘匿手法によって秘匿化した各値が[x1],…,[xm]であるとき、群Gに含まれているm個の要素から成るvec(g)=(g1,…,gm)に対して、
Com([x1],…,[xm],vec(g)):z(=g1^(x1)…gm^(xm))を前記秘匿手法によって秘匿化した[z]を計算する関数と、
Argmax([x1],…,[xm]):x1,…,xmの中で最大となるxi(i∈{1,…,m})のインデックスiを前記秘匿手法によって秘匿化した[i]を計算する関数と
が成立する請求項1に記載の推論検証システム。
【請求項3】
M∈G^(m×n)は群Gに含まれている要素から成るm×n要素の行列を表すものとしたとき、
前記第1証明群及び前記第2証明群の各々は、WL,WR,WO∈Z_p^(Q×n)とし、WV∈Z_p^(Q×n)とし、a_L,a_R,a_O∈Z_p^nとし、[a_L]と[a_R]と[a_O]とをそれぞれa_Lとa_Rとa_Oとを前記秘匿手法によって秘匿化した値としたとき、WLと、WRと、WOと、WVと、[a_L]と、[a_R]と、[a_O]とから成り、
前記共通パラメータは、g,h∈Gとし、vec(g),vec(h)∈G^mとしたとき、gと、hと、vec(g)と、vec(h)とから成る請求項2に記載の推論検証システム。
【請求項4】
前記推論検証システムは、さらに、
前記第1証明と前記第2証明とを用いて、推論処理において前記重みパラメータと前記入力データとが用いられたか否かを検証する検証部
を備える検証装置
を備える請求項1から3のいずれか1項に記載の推論検証システム。
【請求項5】
コンピュータであるユーザ用演算装置が、論理回路で表現されたCNN(Convolutional Neural Network)モデルと、前記CNNモデルに対する入力データを、秘匿手法を用いて秘匿化することによって生成された第1秘匿化データとを用いて、前記CNNモデルにおけるInner ProductとReLU(Rectified Linear Unit)とMax Poolingとの各々に対する証明として第1証明群を生成し、共通パラメータと、前記第1証明群とを用いて、前記入力データを用いて推論処理が実行されたことを証明する第1証明を生成し、
コンピュータである提供者用演算装置が、論理回路で表現された前記CNNモデルと、前記CNNモデルの重みパラメータを、前記秘匿手法を用いて秘匿化することによって生成された第2秘匿化データとを用いて、前記CNNモデルにおけるInner ProductとReLUとMax Poolingとの各々に対する証明として第2証明群を生成し、前記共通パラメータと、前記第2証明群とを用いて、前記重みパラメータを用いて推論処理が実行されたことを証明する第2証明を生成する推論検証方法であって、
前記ユーザ用演算装置は、前記第1証明群を生成する際に前記ユーザ用演算装置が前記提供者用演算装置から取得したデータを使用し、
前記提供者用演算装置は、前記第2証明群を生成する際に前記提供者用演算装置が前記ユーザ用演算装置から取得したデータを使用する推論検証方法。
【請求項6】
論理回路で表現されたCNN(Convolutional Neural Network)モデルと、前記CNNモデルに対する入力データを、秘匿手法を用いて秘匿化することによって生成された第1秘匿化データとを用いて、前記CNNモデルにおけるInner ProductとReLU(Rectified Linear Unit)とMax Poolingとの各々に対する証明として第1証明群を生成し、共通パラメータと、前記第1証明群とを用いて、前記入力データを用いて推論処理が実行されたことを証明する第1証明を生成する証明生成処理
をコンピュータであるユーザ用演算装置に実行させ、
論理回路で表現された前記CNNモデルと、前記CNNモデルの重みパラメータを、前記秘匿手法を用いて秘匿化することによって生成された第2秘匿化データとを用いて、前記CNNモデルにおけるInner ProductとReLUとMax Poolingとの各々に対する証明として第2証明群を生成し、前記共通パラメータと、前記第2証明群とを用いて、前記重みパラメータを用いて推論処理が実行されたことを証明する第2証明を生成する証明生成処理
をコンピュータである提供者用演算装置に実行させる推論検証プログラムであって、
前記ユーザ用演算装置の前記証明生成処理において、前記第1証明群を生成する際に前記ユーザ用演算装置が前記提供者用演算装置から取得したデータを使用し、
前記提供者用演算装置の前記証明生成処理において、前記第2証明群を生成する際に前記提供者用演算装置が前記ユーザ用演算装置から取得したデータを使用する推論検証プログラム。

発明の詳細な説明【技術分野】
【0001】
本開示は、推論検証システム、推論検証方法、及び推論検証プログラムに関する。
続きを表示(約 3,200 文字)【背景技術】
【0002】
ニューラルネットワークによるAI(Artificial Intelligence)推論技術は、データの分類などの機械学習タスクにおいて大きな成功を収めている。ニューラルネットワークによるデータ分析を行うためには、事前に大量の学習データを用いて、推論モデルの学習を行う必要がある。このとき、学習データを用意することの困難さと、計算資源の制約などの理由から、ユーザがユーザ自身の環境において推論モデルを構築することが困難である場合がある。
このような困難があることから、近年ではクラウドシステムにおいてニューラルネットワークによるデータ分析を提供するサービスであるMLaaS(Machine Learning as a Service)がある。MLaaSにおいて、ユーザは、推論モデルの構築にコストを費やす必要がなく、また、分析したいデータをクラウドシステムにアップロードすることにより、提供されている推論モデルを用いた推論を実行することができる。
【0003】
MLaaSにおいて、分類対象であるデータ(入力データ)の所有者と推論モデルの所有者(推論サービス提供者)とが異なる場合に、入力データと推論モデルとを用いて推論処理が適切に実行されたことを第三者に証明する必要があるケースが考えられる。
具体例として、入力データの所有者として患者、推論モデルの所有者として医者、第三者として保険会社を想定したとき、入力データから推論モデルを用いて生成した診断結果が適切であることを保険会社に証明するケースが考えられる。最も簡単な解決策は、入力データと推論モデルとを保険会社に公開し、計算処理を再現することである。しかしながら、個人のプライバシーに関わる情報が含まれている可能性がある入力データと、知的財産となりうる推論モデルとをそのまま開示することは難しいという課題がある。
非特許文献1は、このような課題に対する解決方法を開示している。
【先行技術文献】
【非特許文献】
【0004】
S.Lee,H.Ko,J.Kim, and H.Oh、“vCNN:Verifiable Convolutional Neural Network based on zk-SNARKs”,https://eprint.iacr.org/2020/584,2020.
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1が開示している方法では、ゼロ知識証明技術を用いることにより、推論サービス提供者と入力データの所有者とが協力して、入力データと推論モデルとを用いた推論処理が実際に実行されたことを証明することができる。これにより、推論サービス提供者は、推論結果が入力データと推論モデルとを用いた分析処理によって得られた結果であることを第三者に対して証明することができる。
【0006】
ここで、非特許文献1が開示している方法において、入力データの所有者は、推論サービス提供者に対して入力データを平文の状態で渡す必要がある。そのため、入力データの所有者のプライバシーに関わる情報などに対して当該方法を適用した場合、入力データの所有者にとって不利益が生じる可能性がある。
本開示は、ゼロ知識証明技術によりCNN(Convolutional Neural Network)を検証する技術において、入力データと推論モデルとのどちらも秘匿化した状態で、入力データと推論モデルとを用いた推論処理が適切に実行されたことを示す証明を生成する手法を提案することを目的とする。本開示を利用することにより、入力データに関するプライバシーを保護することができる。
【課題を解決するための手段】
【0007】
本開示に係る推論検証システムは、
論理回路で表現されたCNN(Convolutional Neural Network)モデルと、前記CNNモデルに対する入力データを、秘匿手法を用いて秘匿化することによって生成された第1秘匿化データとを用いて、前記CNNモデルにおけるInner ProductとReLU(Rectified Linear Unit)とMax Poolingとの各々に対する証明として第1証明群を生成し、共通パラメータと、前記第1証明群とを用いて、前記入力データを用いて推論処理が実行されたことを証明する第1証明を生成する証明生成部
を備えるユーザ用演算装置と、
論理回路で表現された前記CNNモデルと、前記CNNモデルの重みパラメータを、前記秘匿手法を用いて秘匿化することによって生成された第2秘匿化データとを用いて、前記CNNモデルにおけるInner ProductとReLUとMax Poolingとの各々に対する証明として第2証明群を生成し、前記共通パラメータと、前記第2証明群とを用いて、前記重みパラメータを用いて推論処理が実行されたことを証明する第2証明を生成する証明生成部
を備える提供者用演算装置と
を備える推論検証システムであって、
前記ユーザ用演算装置の前記証明生成部は、前記第1証明群を生成する際に前記ユーザ用演算装置が前記提供者用演算装置から取得したデータを使用し、
前記提供者用演算装置の前記証明生成部は、前記第2証明群を生成する際に前記提供者用演算装置が前記ユーザ用演算装置から取得したデータを使用する。
【発明の効果】
【0008】
本開示によれば、CNNモデルに対する入力データは秘匿化され、CNNモデルの重みパラメータは秘匿化される。また、秘匿化された各データを用いて、ゼロ知識証明技術によりCNNを検証するための証明が生成される。従って、本開示によれば、ゼロ知識証明技術によりCNNを検証する技術において、入力データと推論モデルとのどちらも秘匿化した状態で、入力データと推論モデルとを用いた推論処理が適切に実行されたことを示す証明を生成することができる。
【図面の簡単な説明】
【0009】
実施の形態1に係る推論検証システム100の構成例を示す図。
実施の形態1に係る共通パラメータ生成装置200の構成例を示す図。
実施の形態1に係るユーザ用演算装置300の構成例を示す図。
実施の形態1に係る提供者用演算装置400の構成例を示す図。
実施の形態1に係る検証装置500の構成例を示す図。
実施の形態1に係るコンピュータ10のハードウェア構成例を示す図。
実施の形態1に係る共通パラメータ生成装置200の動作を示すフローチャート。
実施の形態1に係るユーザ用演算装置300の動作を示すフローチャート。
実施の形態1に係る提供者用演算装置400の動作を示すフローチャート。
実施の形態1に係る検証装置500の動作を示すフローチャート。
実施の形態1の変形例に係るコンピュータ10のハードウェア構成例を示す図。
【発明を実施するための形態】
【0010】
実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印は、データ若しくは信号の流れ、又は処理の流れを主に示している。また、「部」を、「回路」、「装置」、「機器」、「ステップ」、「工程」、「手順」、「処理」又は「サーキットリー」に適宜読み替えてもよい。
(【0011】以降は省略されています)

この特許をJ-PlatPatで参照する

関連特許