(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-17
(45)【発行日】2022-03-28
(54)【発明の名称】学習装置、学習システム、学習方法及び学習プログラム
(51)【国際特許分類】
G06N 3/08 20060101AFI20220318BHJP
G06N 20/00 20190101ALI20220318BHJP
【FI】
G06N3/08
G06N20/00
(21)【出願番号】P 2018228456
(22)【出願日】2018-12-05
【審査請求日】2021-02-01
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(73)【特許権者】
【識別番号】513099603
【氏名又は名称】兵庫県公立大学法人
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(72)【発明者】
【氏名】仲野 有登
(72)【発明者】
【氏名】披田野 清良
(72)【発明者】
【氏名】清本 晋作
(72)【発明者】
【氏名】五十部 孝典
(72)【発明者】
【氏名】正木 史明
【審査官】松崎 孝大
(56)【参考文献】
【文献】特開2015-69256(JP,A)
【文献】特開2019-53542(JP,A)
【文献】国際公開第2019/008853(WO,A1)
【文献】米国特許出願公開第2017/0169354(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
機械学習による訓練前のモデル、及び訓練データを端末から受信する依頼受信部と、
前記機械学習の演算のうち、損失関数を偏微分した偏導関数を多項式に変換して計算する学習実行部と、
前記学習実行部による計算結果の正当性を検証するための証明データを生成する証明生成部と、
前記機械学習による訓練後のモデル、及び前記証明データを前記端末へ送信する結果送信部と、
前記端末との間で前記証明データを検証する第1結果検証部と、を備える学習装置。
【請求項2】
前記機械学習は、前記訓練データに含まれる悪性データを取り除くため、前記損失関数の値を最小化する前記訓練データの部分集合を選択する処理を含み、
前記学習実行部は、前記選択による前記損失関数の値の減少量を算出し、
前記証明生成部は、前記損失関数の値を最小化する前記訓練データの部分集合を選択する処理から、前記損失関数の値を最小化する条件を除いた前記証明データを生成する請求項1に記載の学習装置。
【請求項3】
請求項1に記載の学習装置と、当該学習装置へ前記機械学習を依頼する端末と、を備えた学習システムであって、
前記端末は、
前記訓練前のモデル、及び前記訓練データを前記学習装置へ送信する依頼送信部と、
前記訓練後のモデル、及び前記証明データを前記学習装置から受信する結果受信部と、
前記学習装置との間で前記証明データを検証する第2結果検証部と、を備える学習システム。
【請求項4】
請求項2に記載の学習装置と、当該学習装置へ前記機械学習を依頼する端末と、を備えた学習システムであって、
前記端末は、
前記訓練前のモデル、及び前記訓練データを前記学習装置へ送信する依頼送信部と、
前記訓練後のモデル、及び前記証明データを前記学習装置から受信する結果受信部と、
前記学習装置との間で前記証明データを検証する第2結果検証部と、を備え、
前記第2結果検証部は、前記損失関数の値の減少量が正であることを確認する学習システム。
【請求項5】
機械学習による訓練前のモデル、及び訓練データを端末から受信する依頼受信ステップと、
前記機械学習の演算のうち、損失関数を偏微分した偏導関数を多項式に変換して計算する学習実行ステップと、
前記学習実行ステップにおける計算結果の正当性を検証するための証明データを生成する証明生成ステップと、
前記機械学習による訓練後のモデル、及び前記証明データを前記端末へ送信する結果送信ステップと、
前記端末との間で前記証明データを検証する第1結果検証ステップと、をコンピュータが実行する学習方法。
【請求項6】
請求項1又は請求項2に記載の学習装置としてコンピュータを機能させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習結果の正当性を証明できる学習装置、学習システム、学習方法及び学習プログラムに関する。
【背景技術】
【0002】
四則演算をサーバが実行した場合に、演算の結果が正しいかどうかをクライアントで検証可能な技術が非特許文献1で提案されている。この技術は、検証処理の際にサーバとクライアントとの間で通信が不要という特徴も持つ。
また、クライアントからサーバに依頼する処理が多項式の演算の場合、検証処理中にサーバとクライアントとの間で通信が発生するものの、軽量であることが特徴のsum-checkと呼ばれるプロトコルが非特許文献2で提案されている。さらに、sum-checkを機械学習の推論フェーズに適用した技術が非特許文献3で提案されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】B. Parno, C. Gentry, J. Howell and M. Raykova. “Pinocchio: Nearly Practical Verifiable Computation.” 2013 IEEE Symposium on Security and Privacy (2013).
【文献】C. Lund, L. Fortnow, H. Karloff and N. Nisan. “Algebraic Methods for Interactive Proof Systems.” Journal of the Association for Computing Machinery, Vol. 39, No. 4 (1992).
【文献】Z. Ghodsi, T. Gu and S. Garg. “SafetyNets: Verifiable Execution of Deep Neural Networks on an Untrusted Cloud.” NIPS (2017).
【発明の概要】
【発明が解決しようとする課題】
【0004】
前述の技術は、いずれも証明者が正しく処理を実行したかどうかを検証者に証明可能とする技術である。しかしながら、非特許文献1は、計算コストが高いという課題があり、機械学習への適用が困難であった。また、対応する計算の種類を限定し、かつ、検証時に通信を行うことで計算コストを削減した非特許文献2又は3の技術は、機械学習の学習フェーズで必要となる計算に対応していないという課題があった。
【0005】
本発明は、機械学習の学習フェーズでの処理を高速に検証可能とする学習装置、学習システム、学習方法及び学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る学習装置は、機械学習による訓練前のモデル、及び訓練データを端末から受信する依頼受信部と、前記機械学習の演算のうち、損失関数を偏微分した偏導関数を多項式に変換して計算する学習実行部と、前記学習実行部による計算結果の正当性を検証するための証明データを生成する証明生成部と、前記機械学習による訓練後のモデル、及び前記証明データを前記端末へ送信する結果送信部と、前記端末との間で前記証明データを検証する第1結果検証部と、を備える。
【0007】
前記機械学習は、前記訓練データに含まれる悪性データを取り除くため、前記損失関数の値を最小化する前記訓練データの部分集合を選択する処理を含み、前記学習実行部は、前記選択による前記損失関数の値の減少量を算出し、前記証明生成部は、前記損失関数の値を最小化する前記訓練データの部分集合を選択する処理から、前記損失関数の値を最小化する条件を除いた前記証明データを生成してもよい。
【0008】
本発明に係る学習システムは、前記学習装置と、当該学習装置へ前記機械学習を依頼する端末と、を備えた学習システムであって、前記端末は、前記訓練前のモデル、及び前記訓練データを前記学習装置へ送信する依頼送信部と、前記訓練後のモデル、及び前記証明データを前記学習装置から受信する結果受信部と、前記学習装置との間で前記証明データを検証する第2結果検証部と、を備える。
【0009】
前記第2結果検証部は、前記損失関数の値の減少量が正であることを確認してもよい。
【0010】
本発明に係る学習方法は、機械学習による訓練前のモデル、及び訓練データを端末から受信する依頼受信ステップと、前記機械学習の演算のうち、損失関数を偏微分した偏導関数を多項式に変換して計算する学習実行ステップと、前記学習実行ステップにおける計算結果の正当性を検証するための証明データを生成する証明生成ステップと、前記機械学習による訓練後のモデル、及び前記証明データを前記端末へ送信する結果送信ステップと、前記端末との間で前記証明データを検証する第1結果検証ステップと、をコンピュータが実行する。
【0011】
本発明に係る学習プログラムは、前記学習装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0012】
本発明によれば、機械学習の学習フェーズでの処理を高速に検証できる。
【図面の簡単な説明】
【0013】
【
図1】実施形態に係る学習システムの機能構成を示すブロック図である。
【
図2】実施形態に係る学習方法の処理手順を示すシーケンス図である。
【
図3】実施形態に係るTRIMのアルゴリズムを示す図である。
【
図4】実施形態に係るサブセットの選択処理のアルゴリズムを示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態の一例について説明する。
図1は、本実施形態に係る学習システム1の機能構成を示すブロック図である。
学習システム1は、サーバ10(学習装置)とクライアント20(端末)とを備え、両者は通信可能に接続される。サーバ10は、クライアント20から依頼されて機械学習を実行する。
【0015】
サーバ10は、制御部11及び記憶部12の他、各種データの入出力デバイス及び通信デバイス等を備えた情報処理装置(コンピュータ)である。
【0016】
制御部11は、サーバ10の全体を制御する部分であり、記憶部12に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部11は、CPUであってよい。
【0017】
記憶部12は、ハードウェア群をサーバ10として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)等であってよい。具体的には、記憶部12は、本実施形態の各機能を制御部11に実行させるためのプログラム(学習プログラム)、学習対象のモデル、訓練データ、及び後述の証明データ等を記憶する。
【0018】
制御部11は、依頼受信部111と、学習実行部112と、証明生成部113と、結果送信部114と、結果検証部115(第1結果検証部)とを備える。制御部11は、これらの機能部により、クライアント20から受信した訓練データを用いて線形回帰の機械学習を行うと共に、学習結果の正当性を検証するための検証機能をクライアント20に提供する。
【0019】
依頼受信部111は、機械学習による訓練前のモデル、及び訓練データをクライアント20から受信する。
【0020】
学習実行部112は、機械学習の演算のうち、損失関数を偏微分した偏導関数を多項式に変換して計算する。
また、機械学習において、訓練データに含まれる悪性データを取り除くため、損失関数の値を最小化する訓練データの部分集合を選択する処理を含む場合、学習実行部112は、部分集合の選択による損失関数の値の減少量を算出する。
なお、学習実行部112による計算の詳細は後述する。
【0021】
証明生成部113は、学習実行部による計算結果の正当性を検証するための証明データを生成する。証明データは、前述の非特許文献2で提案されたsum-checkにより生成される。
このとき、証明生成部113は、損失関数の値を最小化する訓練データの部分集合を選択する処理から、損失関数の値を最小化するという条件を除いた証明データを生成する。証明生成部113は、この損失関数の値を最小化するという条件を証明するために、学習実行部112により算出された損失関数の値の減少量を証明データに含める。
【0022】
結果送信部114は、機械学習による訓練後のモデル、及び証明データをクライアント20へ送信する。
【0023】
結果検証部115は、サーバ10とクライアント20との間の通信を含むsum-checkの所定の手続を経て、クライアント20との間で証明データを検証する。
なお、証明データに含まれる損失関数の値の減少量は、クライアント20において、訓練データの部分集合の選択の正当性を検証するために用いられる。
【0024】
クライアント20は、パーソナルコンピュータ、スマートフォン又はタブレット端末等の情報処理装置(コンピュータ)であり、制御部21及び記憶部22の他、各種データの入出力デバイス及び通信デバイス等を備える。
【0025】
制御部21は、クライアント20の全体を制御する部分であり、記憶部22に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部21は、CPUであってよい。
【0026】
記憶部22は、ハードウェア群をクライアント20として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)等であってよい。
【0027】
制御部21は、依頼送信部211と、結果受信部212と、結果検証部213(第2結果検証部)とを備える。制御部21は、これらの機能部により、サーバ10へ訓練データを提供して線形回帰の機械学習を行わせると共に、得られた学習結果の正当性を検証する。
【0028】
依頼送信部211は、サーバ10に学習させる訓練前のモデル、及び訓練データをサーバ10へ送信する。
【0029】
結果受信部212は、訓練後のモデル、及び計算結果の正当性を検証するための証明データをサーバ10から受信する。
【0030】
結果検証部213は、サーバ10とクライアント20との間の通信を含むsum-checkの所定の手続を経て、サーバ10との間で証明データを検証する。
このとき、結果検証部213は、証明データに含まれる損失関数の値の減少量が正であることを合わせて確認する。
【0031】
図2は、本実施形態に係る学習システム1における学習方法の処理手順を示すシーケンス図である。
ステップS1において、クライアント20は、訓練データ(入力x及び出力y)と、更新前のモデルとを、サーバ10へ送信する。
【0032】
ステップS2において、サーバ10は、ステップS1において受信した訓練データを用いて、更新前のモデルに対して学習フェーズの処理を実行し、この処理を検証するための証明データπを生成する。
【0033】
ステップS3において、サーバ10は、学習フェーズによる更新後のモデルFと、証明データπとを、クライアント20へ送信する。
ステップS4において、クライアント20は、サーバ10と協働して証明データπの検証を行う。
【0034】
ここで、サーバ10の学習実行部112による計算について詳述する。
クライアント20が訓練データをサーバ10に対して提供すると、サーバ10は、学習処理を行った際に、その学習処理が正しく実行されたことをクライアント20に対して証明する。このとき、学習実行部112は、sum-checkにより検証可能な多項式を用いて学習処理を行う。
【0035】
まず、学習処理で必要となる偏微分は、次のように扱うことができる。
多項式をP
a(x
k,x
k-1,…,x
0)=a
kx
k+a
k-1x
k-1+…+a
1x
1+a
0x
0とし、係数と変数とをそれぞれ次のベクトルA,Xで表現する。
【数1】
【0036】
すると、多項式Pa(xk,xk-1,…,x0)のxiに関する偏導関数は、Xのi番目の要素を1とし、それ以外の要素を0としたベクトルXiを用いてATXiと表現することができる。これにより、学習実行部112は、以下のように検証可能計算を実行する。
【0037】
損失関数をL、学習率をηとすると、バッチ学習フェーズは、n回の学習処理を、
【数2】
と表現できる。損失関数として、m個の訓練データに対して、
【数3】
を利用すれば、損失関数の偏微分は、
【数4】
となる。ここで、∂L/∂w
jは、wについての多項式と考えることができるため、cを定数として、
【数5】
と表すことが可能である。サーバ10は、これにsum-checkを適用することで、処理が正しく実行されていることを証明できる。
【0038】
さらに、バッチ学習フェーズのループ処理全体を式で表すと、
【数6】
となる。これもwについての多項式となるため、sum-checkを適用することで、サーバ10は、処理が正しく実行されていることを証明できる。
【0039】
また、オンライン学習の場合、学習実行部112は、各訓練データに対して、
【数7】
を計算する。したがって、m個のデータに対する学習処理は、
【数8】
と表すことができる。これもwについての多項式となるため、sum-checkを適用することで、サーバ10は、処理が正しく実行されていることを証明できる。
【0040】
次に、訓練データに悪性データが混入されている場合の学習処理を説明する。
例えば、複数のクライアント20が訓練データを提供し、サーバ10で一つのモデルを構築する場合、悪意のあるクライアント20が悪性データを含む訓練データを提供する可能性がある。このため、サーバ10は、モデルを構築する前に悪性データを取り除く処理を行う必要がある。
【0041】
学習実行部112は、悪性データを取り除く手法として、次の文献Aで提案されているTRIMと呼ばれるアルゴリズムを利用する。このとき、サーバ10は、TRIMを実行したとしても、処理結果をクライアント20に証明することが困難なため、sum-checkと組み合わせることによって証明する。
文献A: M. Jagielski, A. Oprea, B. Biggio, C. Liu, C. Nita-Rotaru and B. Li. “Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning.” 2018 IEEE Symposium on Security and Privacy (2018).
【0042】
図3は、本実施形態に係るTRIMのアルゴリズムAを示す図である。
N個の訓練データDには、正常なデータD
trと悪性データD
pとが含まれる。アルゴリズムAでは、悪性データは、正常なデータn個に対してp=α×n個含まれると仮定し、i回の学習を繰り返すことでモデルθ
(i)が出力される。
【0043】
ステップ1において、N個の訓練データからn個がランダムに選択され、インデックス集合I(0)が生成される。
ステップ2において、損失L(DI(0),θ)を最小にするモデルθ(0)が求められる。
ステップ3において、学習の繰り返し回数iが0に初期化され、ステップ4から9が繰り返し実行される。
【0044】
ステップ5において、回数iがカウントアップされ、i回目の学習として後続のステップ6から8が実行される。
ステップ6において、損失L(DI(i),θ(i-1))を最小にするデータのサブセットが選択されることで、インデックス集合I(i)が更新される。これにより、訓練データDに含まれる悪性データDpと推定されるデータが取り除かれる。
ステップ7において、損失L(DI(i),θ(i))を最小にするモデルθ(i)が求められる。
ステップ8において、現在のモデルθ(i)における損失R(i)=L(DI(i),θ(i))が求められる。
【0045】
ステップ9において、損失が収束し、R(i)=R(i-1)になると学習の繰り返しが終了する。
ステップ10において、学習結果としてモデルθ(i)が出力される。
【0046】
このTRIMのアルゴリズムAでは、ステップ8の処理で損失を最小にするデータのサブセットを選択することで訓練データに含まれる悪性データを取り除いているが、sum-checkではこの処理に対する証明データを生成できない。そこで、本実施形態では、TRIMのループ内の処理を次のように修正する。
【0047】
図4は、本実施形態に係る検証可能なサブセットの選択処理のアルゴリズムBを示す図である。
アルゴリズムBは、
図3のステップ4から9の繰り返し部分に相当し、証明生成部113は、この処理に対する証明データを生成する。
【0048】
図3のアルゴリズムAと比較すると、アルゴリズムBでは、データのサブセットの選択時に、損失を最小にするという条件が除かれている。このため、クライアント20からすると、サーバ10が常に損失を最小にするサブセットを選択するとは限らない。しかしながら、クライアント20は、1回前の処理で求めた損失との比較結果d
(i)=R
(i)-R
(i-1)を受信することで、繰り返し毎に損失が低下していることを確認できる。
したがって、クライアント20は、サーバ10で
図2のTRIMが実行され、悪性データを除くデータセットを用いて正しく学習が行われたことを検証できる。
【0049】
本実施形態によれば、サーバ10は、損失関数を偏微分した偏導関数を多項式に変換して計算することにより、線形回帰の学習処理をsum-checkにより検証可能な計算により実行でき、計算結果の正当性を検証するための証明データをクライアント20へ提供できる。
これにより、クライアント20は、サーバ10における機械学習の学習フェーズでの処理を高速に検証できる。
この結果、クライアント20は、多くの学習データを用いてサーバ10で繰り返し学習させるような場合に、サーバ10が正しく処理を実行したことを、クライアント20で同じ処理を実行することなく検証することが可能となる。
【0050】
また、サーバ10は、TRIMによる悪性データを取り除く処理を、sum-checkにより検証可能な計算に置き換え、損失関数の値を最小化するという除外された条件の代わりに、損失関数の値の減少量を算出する計算を追加する。
これにより、クライアント20は、損失関数の値の減少量が正であることを確認することで、サーバ10において悪性データを取り除くために損失が減少する訓練データの部分集合が選択されたことを検証できる。
この結果、例えば、サーバ10が複数のクライアント20から訓練データを収集し、一つのモデルを構築する場合に、一部のクライアント20が悪性データを含む訓練データを提供したとしても、サーバ10は、悪性データを取り除く処理を実施していることをクライアント20に証明できる。
【0051】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0052】
前述の実施形態において、学習システム1は、検証のプロトコルとしてsum-checkを用いたが、sum-checkの代わりに、次の文献Bで提案されているゼロ知識sum-checkを用いてもよい。
文献B: E. Ben-Sasson, A. Chiesa, M. Forbes, A. Gabizon, M. Riabzev, and N. Spooner. “Zero Knowledge Protocols from Succinct Constraint Detection.” Proceedings of the 15th Theory of Cryptography Conference (2017).
【0053】
通常のsum-checkであれば、検証の過程でサーバ10が行った処理に関する一部の情報がクライアント20に漏洩することが知られており、複数のクライアント20から訓練データを収集する場合に、訓練データの一部が別のクライアント20に漏洩することが懸念される。
これに対して、ゼロ知識sum-checkを利用することで、サーバ10は、クライアント20に情報を漏らすことなく、処理が正しく行われたことを証明できる。したがって、複数のクライアント20から訓練データを収集しモデルを構築する際に、ゼロ知識sum-checkを利用することで、サーバ10は、クライアント20から提供された訓練データを保護できる。
【0054】
学習システム1による学習方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0055】
1 学習システム
10 サーバ(学習装置)
11 制御部
12 記憶部
20 クライアント(端末)
21 制御部
22 記憶部
111 依頼受信部
112 学習実行部
113 証明生成部
114 結果送信部
115 結果検証部(第1結果検証部)
211 依頼送信部
212 結果受信部
213 結果検証部(第2結果検証部)