JP6556659B2 - ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム - Google Patents

ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム Download PDF

Info

Publication number
JP6556659B2
JP6556659B2 JP2016098410A JP2016098410A JP6556659B2 JP 6556659 B2 JP6556659 B2 JP 6556659B2 JP 2016098410 A JP2016098410 A JP 2016098410A JP 2016098410 A JP2016098410 A JP 2016098410A JP 6556659 B2 JP6556659 B2 JP 6556659B2
Authority
JP
Japan
Prior art keywords
share
calculation
layer
unit
learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016098410A
Other languages
English (en)
Other versions
JP2017207839A (ja
Inventor
真徳 山田
真徳 山田
哲士 田中
哲士 田中
亮 菊池
亮 菊池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016098410A priority Critical patent/JP6556659B2/ja
Publication of JP2017207839A publication Critical patent/JP2017207839A/ja
Application granted granted Critical
Publication of JP6556659B2 publication Critical patent/JP6556659B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、分散型のニューラルネットワークを形成する場合のニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラムに関する。
ビッグデータと機械学習の活用によりサービスの高度化・付加価値の提供が盛んに行われており、その際の機械学習には大きな計算リソースが必要である場合が多い。 そしてクラウドが低コストとなっている状況においては機械学習の計算を第三者が運用するクラウド上で行う場面が増えてきている。例えば、非特許文献1に示したようなニューラルネットワークの学習では大きな計算リソースが必要である。
セキュリティーの分野においてはプライバシーの観点から、秘密計算を用いて個人情報などから構成される計算の入力データを秘密化する研究が存在する(非特許文献2〜7など)。非特許文献2には従来技術として、データaをN個のシェア[a],…,[a]に分割してN個のサーバに分散させる技術(シェアの生成)、およびその中のK個のシェアを集めて元のデータを復元する技術(データの復元)が示されている。ただし、Kを2以上の整数、Nを2K−1以上の整数、nを1以上N以下の整数とする。また、[]をn番目のシェア計算装置が記録するシェアを示す記号とする。なお、シェアはK個以上集めれば元のデータが復元でき、K個未満では元のデータは復元できない。つまり、シェアを分散させることで、元のデータを秘密化している。
非特許文献3〜6には、シェアの加算、シェアの乗算、シェアの定数倍、シェアのビット分解、シェアの大小判定などが示されている。シェアの加算とは、データを秘密化した状態のままで加算し、加算結果のシェアを求める技術である。つまり、シェアの加算の前には、n番目のサーバはデータa,bのシェアである[a],[b]を記録しており、データa,bを復元することなく、シェアの加算後には、n番目のサーバはデータa+bのシェアである[a+b]を記録した状態になる。シェアの乗算では、n番目のサーバはデータa,bのシェアである[a],[b]を記録しており、データa,bを復元することなく、シェアの乗算後には、n番目のサーバはデータa×bのシェアである[a×b]を記録した状態になる。シェアの定数倍では、n番目のサーバはデータaのシェアである[a]と秘密化していないデータcを記録しており、データaを復元することなく、シェアの定数倍後には、n番目のサーバはデータa×cのシェアである[a×c]を記録した状態になる。シェアのビット分解では、n番目のサーバは、データaを復元することなく、シェアのビット分解後には、データaのシェア[a]から|a|個のaのビットデータbit(1),…,bit(|a|)のシェア[bit(1)],…,[bit(|a|)]を生成し、記録した状態になる。シェアの大小判定では、n番目のサーバはデータaのシェアである[a]と秘密化していないデータcを記録しており、データaを復元することなく、シェアの大小判定後には、n番目のサーバはデータaとcの大小判定の結果のシェアを記録した状態になる。なお、大小判定の結果は(a>c)と表現し、そのシェアは[a>c]のように表現する。大小判定の結果(a>c)は、例えば、a>cならば“1”、a≦cならば“0”のように、あらかじめ定めた方法でa,cの大小関係を示すことである。結果のシェア[a>c]とは、例えば、K個以上のシェアを集めなければ“1”か“0”かが分からないようにN個に分割したものである。上述の説明では、a>cとa≦cに場合分けしたが、a<cとa≧cに場合分けしてもよい。
非特許文献7には、ニューラルネットワークの学習において、学習データを秘密化した状態で学習させ、重みのデータを得る方法が示されている。
DAIVID E. RUMELHART, GEOFFREY E. HINTON, RONALD J. WILLIAMS, "Learning representations by back-propagating errors", Nature 323, pp.533-536, 09 October 1986. [平成28年4月22日検索]、インターネット<http://www.nature.com/nature/journal/v323/n6088/abs/323533a0.html>. Adi Shamir, "How to Share a Secret", Communications of the ACM, Vol.22, No.11, pp.612-613, November 1979. [平成28年4月22日検索]、インターネット<http://dl.acm.org/citation.cfm?doid=359168.359176>. Michael Ben-Or, Shafi Goldwasser, Avi Wigderson, "Completeness theorems for non-cryptographic fault-tolerant distributed computation", STOC '88 Proceedings of the twentieth annual ACM symposium on Theory of computing, pp.1-10, 1988. [平成28年4月22日検索]、インターネット<http://dl.acm.org/citation.cfm?id=62213>. Rosario Gennaro, Michael O. Rabin, Tal Rabin, "Simplified VSS and fast-track multiparty computations with applications to threshold cryptography", PODC '98 Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing, pp.101-111, 1998. [平成28年4月22日検索]、インターネット<http://dl.acm.org/citation.cfm?id=277716>. 渡辺泰平,岩村惠市, "秘密分散法を用いたサーバ台数変化がない乗算手法", 情報処理学会研究報告, pp.1-6 , December 2013. [平成28年4月22日検索]、インターネット<http://ci.nii.ac.jp/naid/110009634018>. 五十嵐 大, 濱田 浩気, 菊池 亮, 千田 浩司, "少パーティの秘密分散ベース秘密計算のためのO(l)ビット通信ビット分解およびO(|p’|)ビット通信Modulus変換法", コンピュータセキュリティシンポジウム2013論文集, 4号, pp.785-792, 2013. [平成28年4月22日検索]、インターネット<https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_id=13&block_id=8&item_id=98298&item_no=1>. Jiawei Yuan, Shucheng Yu, "Privacy Preserving Back-Propagation Neural Network Learning Made Practical with Cloud Computing", IEEE Transactions on Parallel and Distributed Systems, Vol.25, Issue 1, pp.212-221, Jan. 2013. [平成28年4月22日検索]、インターネット<http://ieeexplore.ieee.org/xpl/login.jsp?reload=true&tp=&arnumber=6410315&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D6410315>. Mehrdad Aliasgari, Marina Blanton, Yihua Zhang, Aaron Steele, "Secure Computation on Floating Point Numbers". NDSS 2013, Internet Society, Feb. 2013. [平成28年5月11日検索]、インターネット<http://www.internetsociety.org/doc/secure-computation-floating-point-numbers>
しかしながら、非特許文献7に示された従来技術は、学習データは秘密化した状態を維持しているが、学習した結果である重みのデータは秘密化できていない。学習データは、大量の入力と結果(教師データ)のセットであり、個人情報などの秘密情報が含まれている可能性もあるため秘密化する必要性が高い。一方、学習した結果である重みのデータからは個人情報は分からないので、個人情報の保護という観点からの秘密化の必要性は低い。しかし、学習した結果もニューラルネットワークシステムにとってのノウハウであり、第三者に知られたくない情報である。したがって、第三者のサーバを利用して学習する場合には、結果も秘密化する必要性が高くなる。
本発明は、このような状況に鑑みてなされたものであり、学習データだけでなく、学習した結果として得られる重みのデータも秘密化できるニューラルネットワークシステムを提供することを目的とする。
Kを2以上の整数、Nを2K−1以上の整数、nを1以上N以下の整数、Dをニューラルネットワークの層数(ただし、1層目が入力層、D層目が出力層)、dを1以上D以下の整数、Mをd層目のノード数、mを1以上M以下の整数、Sを入力と教師データのセット数、sを1以上S以下の整数、I(s)={I(1)(s),…,I(M(s)}をs番目の入力、T(s)={T(1)(s),…,T(M(s)}をs番目の入力に対する教師データ、O(s)={O(1)(s),…,O(M(s)}をs番目の入力に対する出力、H(d,s={H(1)(d,s,…,H(M(d,s}をs番目の入力に対するd番目の隠れ層の値(ただし、I(s)=H(1,s、O(s)=H(D,s)、w(m,md−1(d)をd層目のm番目のノードとd−1層目のmd−1番目のノードの間の重み、θ(m(d)をd層目のm番目のノードの閾値、Δw(m,md−1(d)をw(m,md−1(d)の学習率、Δθ(m(d)をθ(m(d)の学習率、[]をn番目のシェア計算装置が記録するシェアを示す記号、[W(d)を[w(1,1)(d),…,[w(m,md−1(d),…,[w(M,Md−1(d)の集合、[Θ(d)を[θ(1)(d),…,[θ(M(d)の集合、[ΔW(d)を[Δw(1,1)(d),…,[Δw(m,md−1(d),…,[Δw(M,Md−1(d)の集合、[ΔΘ(d)を[Δθ(1)(d),…,[Δθ(M(d)の集合、εをあらかじめ定めた誤差の閾値、f()を活性化関数、f’()を前記活性化関数の導関数とする。
本発明のニューラルネットワークシステムは、管理装置とN台のシェア計算装置で構成される。管理装置は、データからN個のシェアを求めること、K個のシェアからデータを復元することができ、管理記録部と初期設定部と学習指示部を備える。管理記録部は、あらかじめ定めたΔW(1),…,ΔW(D)、ΔΘ(1),…,ΔΘ(D)、εと、S個の入力と教師データのセット(I(1),T(1)),…,(I(S),T(S))を記録する。初期設定部は、1≦n≦Nのすべてのnについて[W(1),…,[W(D)と[Θ(1),…,[Θ(D)をn番目のシェア計算装置に送信する。学習指示部は、1≦n≦Nのすべてのnについて([I(1),[T(1)),…,([I(S),[T(S))をn番目のシェア計算装置に送信し、N個のシェア計算装置に学習開始を指示する。
n番目のシェア計算装置は、シェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定を、他のシェア計算装置と共に行うことができ、シェア計算記録部と前方伝播部と誤差計算部と逆誤差伝播部と学習制御部とを備える。シェア計算記録部は、[W(1),…,[W(D)と[Θ(1),…,[Θ(D)と([I(1),[T(1)),…,([I(S),[T(S))と、前記のあらかじめ定めたΔW(1),…,ΔW(D)、ΔΘ(1),…,ΔΘ(D)、εを記録する。前方伝播部は、1≦m≦Mのすべてのmについて[H(m(1,s)=[I(m(s)とし、d=1からd=D−1まで順番に1≦md+1≦Md+1のすべてのmd+1について[H(md+1(d+1,s)=[f(X(md+1(d+1,s))]を求め、[O(m(s)=[H(m(D,s)とすることで、出力のシェア[O(s)={[O(1)(s),…,[O(M(s)})を求める。ただし、
Figure 0006556659


である。誤差計算部は、誤差のシェア[E]を、
Figure 0006556659

のように求め、Eとεの大小判定結果のシェアである[E<ε]を求める。
逆誤差伝播部は、E<εでない場合には、1≦m≦Mのすべてのmについて[TEMP(m)]=[H(m(D,s)−T(m(s)とする。逆誤差伝播部は、d=D−1からd=1まで順番に1≦md+1≦Md+1のすべてのmd+1について、[δ(md+1(d+1)=[TEMP(md+1)f’(X(md+1(d+1,s))]を求める。ただし、
Figure 0006556659

である。逆誤差伝播部は、1≦m≦Mのすべてのmについて
Figure 0006556659
とする。そして、逆誤差伝播部は、1≦md+1≦Md+1、1≦m≦Mのすべてのmd+1、mついて
[w(md+1,m(d+1)←[w(md+1,m(d+1)
−δ(md+1(d+1)H(m(d,s)Δw(md+1,m(d+1)
のように重みのシェア[w(md+1,m(d+1)を更新し、1≦md+1≦Md+1のすべてのmd+1ついて
[θ(md+1(d+1)←[θ(md+1(d+1)
−δ(md+1(d+1)Δθ(md+1(d+1)
のように閾値のシェア[θ(md+1(d+1)を更新する。学習制御部は、前方伝播部、誤差計算部、逆誤差伝播部に、それぞれの処理を1≦s≦Sのすべてのsに対して実行させる。
また、管理装置又はN台のシェア計算装置のいずれかが、K台以上のシェア計算装置からEとεの大小判定結果のシェアを受信し、Eとεの大小判定結果を示すデータを復元する終了条件確認部も備える。そして、活性化関数f(X)は、X≦0のときはf(X)=0、X>0のときはf(X)=Xである。
本発明のニューラルネットワークシステムによれば、管理装置をシェアの生成とシェアの復元ができる装置とし、シェア計算装置をシェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定ができる装置としている。そして、活性化関数f(X)として、X≦0のときはf(X)=0、X>0のときはf(X)=Xとなる関数を用いている。
この活性化関数f(X)とその導関数f’(X)を用いれば、シェアの生成とシェアの復元ができる管理装置と、シェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定ができるシェア計算装置によって、学習データだけでなく、学習した結果として得られる重みのデータも秘密化できる。
本発明のニューラルネットワークシステムの構成例を示す図。 学習時の初期設定の処理フローを示す図。 学習の処理フローを示す図。 前方伝播の処理フローの具体例を示す図。 逆誤差伝播の処理フローの具体例を示す図。 活性化関数f(X)の計算での処理フローの例を示す図。 活性化関数の導関数f’(X)の計算での処理フローの例を示す図。 予言フェーズの処理フローを示す図。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
まず、記号について説明する。Kを2以上の整数、Nを2K−1以上の整数、nを1以上N以下の整数、Dをニューラルネットワークの層数(ただし、1層目が入力層、D層目が出力層)、dを1以上D以下の整数、Mをd層目のノード数、mを1以上M以下の整数、Sを入力と教師データのセット数、sを1以上S以下の整数、I(s)={I(1)(s),…,I(M(s)}をs番目の入力、T(s)={T(1)(s),…,T(M(s)}をs番目の入力に対する教師データ、O(s)={O(1)(s),…,O(M(s)}をs番目の入力に対する出力、H(d,s={H(1)(d,s,…,H(M(d,s}をs番目の入力に対するd番目の隠れ層の値(ただし、I(s)=H(1,s、O(s)=H(D,s)、w(m,md−1(d)をd層目のm番目のノードとd−1層目のmd−1番目のノードの間の重み、θ(m(d)をd層目のm番目のノードの閾値、Δw(m,md−1(d)をw(m,md−1(d)の学習率、Δθ(m(d)をθ(m(d)の学習率、[]をn番目のシェア計算装置が記録するシェアを示す記号、[W(d)を[w(1,1)(d),…,[w(m,md−1(d),…,[w(M,Md−1(d)の集合、[Θ(d)を[θ(1)(d),…,[θ(M(d)の集合、[ΔW(d)を[Δw(1,1)(d),…,[Δw(m,md−1(d),…,[Δw(M,Md−1(d)の集合、[ΔΘ(d)を[Δθ(1)(d),…,[Δθ(M(d)の集合、εをあらかじめ定めた誤差の閾値、f()を活性化関数、f’()を前記活性化関数の導関数とする。
図1に本発明のニューラルネットワークシステムの構成例を示す。本発明のニューラルネットワークシステムは、ネットワーク900で接続された管理装置200とN台のシェア計算装置100,…,100で構成される。また、本発明のニューラルネットワークシステムの利用者の端末300もネットワーク900を介してニューラルネットワークシステムに接続される。
管理装置200は、データからN個のシェアを求めること(シェアの生成)、K個のシェアからデータを復元すること(データの復元)ができ、管理記録部290と初期設定部210と学習指示部220を備える。n番目のシェア計算装置100は、シェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定を、他のシェア計算装置100,…,100n-1,100n+1,…,100と共に行うことができ、シェア計算記録部190と前方伝播部110と誤差計算部120と逆誤差伝播部130と学習制御部140とを備える。上述のとおり、シェアの生成、データの復元、シェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定には既存技術を用いればよい。管理記録部290は、あらかじめ定めたΔW(1),…,ΔW(D)、ΔΘ(1),…,ΔΘ(D)、εと、S個の入力と教師データのセット(I(1),T(1)),…,(I(S),T(S))を記録しておく。シェア計算記録部190は、前記のあらかじめ定めたΔW(1),…,ΔW(D)、ΔΘ(1),…,ΔΘ(D)、εを記録しておく。
図2は学習時の初期設定の処理フローを示す図である。初期設定部210は、1≦n≦Nのすべてのnについて[W(1),…,[W(D)と[Θ(1),…,[Θ(D)をn番目のシェア計算装置100に送信する(S210)。シェア計算装置100(ただし、n=1,…,N)は、[W(1),…,[W(D)と[Θ(1),…,[Θ(D)を受信し、シェア計算記録部190に記録する(S211)。より具体的には、初期設定部210は、2≦d≦D、1≦m≦M、1≦md−1≦Md−1のすべてのd、m、md−1ついてのw(m,md−1(d)を所定の体上からランダムに選択する。また、初期設定部210は、1≦d≦D、1≦m≦Mのすべてのd、mついてのθ(m(d)を前記所定の体上からランダムに選択する。「所定の体」とは、あらかじめ定めた四則演算を行える集合である。例えば、素数pを位数とする有限体を、非特許文献8を利用して小数に対応付けした集合を所定の体とすればよい。
初期設定部210は、選択したすべてのw(m,md−1(d)とθ(m(d)について[w(m,md−1(d),…,[w(m,md−1(d)と[θ(m(d),…,[θ(m(d)を求めることで、1≦n≦Nのすべてのnについて[W(1),…,[W(D)と[Θ(1),…,[Θ(D)を取得すればよい。初期設定部210は、このような手順で得られた[W(1),…,[W(D)と[Θ(1),…,[Θ(D)をn番目のシェア計算装置100に送信すればよい。
図3は学習の処理フローを示す図である。図4に前方伝播の処理フローの具体例、図5に逆誤差伝播の処理フローの具体例を示す。学習指示部220は、1≦n≦Nのすべてのnについて([I(1),[T(1)),…,([I(S),[T(S))をn番目のシェア計算装置100に送信し、N個のシェア計算装置100,…,100に学習開始を指示する(S220)。より具体的には、学習指示部220は、1≦s≦Sのすべての(I(s),T(s))について([I(s),[T(s)),…,([I(s),[T(s))を求めることで、1≦n≦Nのすべてのnについて([I(1),[T(1)),…,([I(S),[T(S))を取得する。そして、学習指示部220は、([I(1),[T(1)),…,([I(S),[T(S))をシェア計算装置100に送信し、学習開始を指示すればよい。シェア計算装置100は、シェア計算記録部190に([I(1),[T(1)),…,([I(S),[T(S))を記録する。
シェア計算装置100,…,100は、同じ教師データに対するそれぞれが記録している教師データのシェアを選択する(S141(S141,…,S141))。なお、図3〜8において、N台のシェア計算装置100,…,100が協調して処理を行う場合は点線で囲み、符号を付している。なお、ステップS141の場合は、同じ教師データに対するシェアを選択する必要があるため点線で囲んでいるが、あらかじめ選択する順番を定めておけば、ステップS141中で情報を送受信する必要はない。なお、「協調して処理を行う」とは、情報を送受信しながら処理を進めるだけでなく、あらかじめ定めた手順にしたがって処理を進めることで情報の送受信をすることなく処理を進めることも含んだ意味である。
前方伝播部110,…,110は、1≦m≦Mのすべてのmについて[H(m(1,s)=[I(m(s)とし、d=1からd=D−1まで順番に1≦md+1≦Md+1のすべてのmd+1について[H(md+1(d+1,s)=[f(X(md+1(d+1,s))]を秘密計算で求め、[O(m(s)=[H(m(D,s)とすることで、出力のシェア[O(s)={[O(1)(s),…,[O(M(s)})を求める(S110(S110,…,S110))。ただし、
Figure 0006556659

である。
ここで、ステップS110について、図4を参照しながら詳細に説明する。前方伝播部110は、1≦m≦Mのすべてのmについて[H(m(1,s)=[I(m(s)とし、dに1を代入する(S111,…,S111)。前方伝播部110は、[X(md+1(d+1,s)を上式のように秘密計算で計算する(S112(S112,…,S112))。前方伝播部110は、1≦md+1≦Md+1のすべてのmd+1について[H(md+1(d+1,s)=[f(X(md+1(d+1,s))]を秘密計算で計算する(S113(S113,…,S113))。前方伝播部110は、dにd+1を代入する(S114,…,S114)。前方伝播部110は、dがD未満かを確認し(S115,…,S115)、Yesの場合はステップS112,…,S112に戻る。Noの場合は、[O(m(s)=[H(m(D,s)とする(S116,…,S116)。
なお、活性化関数f(X)としては、X≦0のときはf(X)=0、X>0のときはf(X)=Xとなる活性化関数を用いればよい。図6にf(X)=0、X>0のときはf(X)=Xとなる活性化関数f(X)の計算の処理フローを示す。X≦0のときはf(X)=0、X>0のときはf(X)=Xなので、大小判定の結果(X>0)は、X≦0のときは(X>0)=0、X>0のときは(X>0)=1と決めておく。そして、前方伝播部110(ただし、n=1,…,N)は、X(md+1(d+1,s)と“0”との大小判定を秘密計算で行い、大小評価の結果(X(md+1(d+1,s)>0)のシェア[X(md+1(d+1,s)>0]を求める(S1131(S1131,…,S1131))。前方伝播部110(ただし、n=1,…,N)は、[f(X(md+1(d+1,s))]=[X(md+1(d+1,s)・(X(md+1(d+1,s)>0)]を秘密計算(シェアの乗算)で求める(S1132(S1132,…,S1132))。また、後述する逆誤差伝播では活性化関数の導関数f’(X)を用いるので、ここで、導関数f’(X)についても説明する。図7に活性化関数の導関数f’(X)の計算での処理フローを示す。活性化関数f(X)が、X≦0のときはf(X)=0、X>0のときはf(X)=Xなので、導関数f’(X)は、X<0のときはf’(X)=0、X>0のときはf(X)=1、X=0のときにはf’(X)は決まらない。ただし、X=0となることはないので、実際には、X≦0のときはf(X)=0とすることを前提に、Xと“0”との大小判定を秘密計算で行えば(S1331(S1331,…,S1331))、導関数f’(X)の計算結果のシェアを求めることができる。つまり、X≦0のときはf(X)=0、X>0のときはf(X)=Xとなる活性化関数f(X)であれば、活性化関数の計算も、導関数の計算も、既存の秘密計算を容易に利用できる。
誤差計算部120,…,120は、誤差のシェア[E]を、
Figure 0006556659

のように秘密計算で求め、Eとεの大小判定結果のシェアである[E<ε]を秘密計算で求める(S120(S120,…,S120))。
管理装置200又はN台のシェア計算装置100,…,100のいずれかが、K台以上のシェア計算装置からEとεの大小判定結果のシェア[E<ε]を受信し、Eとεの大小判定結果を示すデータを復元する終了条件確認部230も備える。図3の処理フローでは、管理装置200が終了条件確認部230を備えた例を示している。この図では、管理装置200がK台以上のシェア計算装置からEとεの大小判定結果のシェア[E<ε]を受信し、Eとεの大小判定結果を示すデータを復元する。そして、E<εか(誤差が所定の範囲内か)を確認する。Yesの場合にはステップS142,…,S142に進み、Noの場合にはステップS130(S130,…,S130)に進む。
逆誤差伝播部130,…,130は、E<εでない場合(ステップS230がNoの場合)には、1≦m≦Mのすべてのmについて[TEMP(m)]=[H(m(D,s)−T(m(s)とする。逆誤差伝播部130,…,130は、d=D−1からd=1まで順番に1≦md+1≦Md+1のすべてのmd+1について、[δ(md+1(d+1)=[TEMP(md+1)f’(X(md+1(d+1,s))]を求める。ただし、
Figure 0006556659

である。逆誤差伝播部130,…,130は、1≦m≦Mのすべてのmについて
Figure 0006556659
とする。そして、逆誤差伝播部130,…,130は、1≦md+1≦Md+1、1≦m≦Mのすべてのmd+1、mついて
[w(md+1,m(d+1)←[w(md+1,m(d+1)
−δ(md+1(d+1)H(m(d,s)Δw(md+1,m(d+1)
のように重みのシェア[w(md+1,m(d+1)を更新し、1≦md+1≦Md+1のすべてのmd+1ついて
[θ(md+1(d+1)←[θ(md+1(d+1)
−δ(md+1(d+1)Δθ(md+1(d+1)
のように閾値のシェア[θ(md+1(d+1)を更新する(S130(S130,…,S130))。
ここで、ステップS130について、図5を参照しながら詳細に説明する。逆誤差伝播部130は、1≦m≦Mのすべてのmについて[TEMP(m)]=[H(m(D,s)−T(m(s)とし、dにD−1を代入する(S131)。逆誤差伝播部130は、1≦md+1≦Md+1のすべてのmd+1について、[X(md+1(d+1,s)を秘密計算で求める(S132)。逆誤差伝播部130は、[δ(md+1(d+1)=[TEMP(md+1)f’(X(md+1(d+1,s))]を秘密計算で求める(S133)。なお、活性化関数の導関数f’(X(md+1(d+1,s))の計算は、図7を参照して説明したように、X(md+1(d+1,s)と“0”との大小判定を秘密計算で行い、大小評価の結果(X(md+1(d+1,s)>0)のシェア[X(md+1(d+1,s)>0]を求めればよい(S1331(S1331,…,S1331))。
逆誤差伝播部130は、1≦m≦Mのすべてのmについて、秘密計算で
Figure 0006556659
を実行する(S134)。そして、逆誤差伝播部130は、1≦md+1≦Md+1、1≦m≦Mのすべてのmd+1、mついて
[w(md+1,m(d+1)←[w(md+1,m(d+1)
−δ(md+1(d+1)H(m(d,s)Δw(md+1,m(d+1)
のように重みのシェア[w(md+1,m(d+1)を更新し、1≦md+1≦Md+1のすべてのmd+1ついて
[θ(md+1(d+1)←[θ(md+1(d+1)
−δ(md+1(d+1)Δθ(md+1(d+1)
のように閾値のシェア[θ(md+1(d+1)を更新する(S135)。逆誤差伝播部130は、dにd−1を代入する(S136)。逆誤差伝播部130は、dが0より大きいかを確認し(S137)、Yesの場合にはステップS132に戻り、Noの場合には逆誤差伝播S130を終了する。
シェア計算装置100,…,100の学習制御部140,…,140は、すべての教師データの処理が終了したかを確認し(S142(S142,…,S142))、Noの場合にはステップS141(S141,…,S141)に戻り、Yesの場合には学習を終了する。つまり、学習制御部140,…,140は、ステップS141(S141,…,S141)とステップS142(S142,…,S142)によって、前方伝播部110,…,110、誤差計算部120,…,120、逆誤差伝播部130,…,130に、それぞれの処理を1≦s≦Sのすべてのsに対して実行させる。これらの処理によって、シェア計算装置100,…,100は、学習後(更新後)の[W(1),…,[W(D)と[Θ(1),…,[Θ(D)をシェア計算記録部190,…,190に記録した状態となる。
図8に、学習済のシェア計算装置100,…,100を用いた予言フェーズの処理フローを示す。ユーザの端末300は、シェアの生成とデータの復元ができ、予言指示部320を備えている。端末300は、入力データIのシェア[I],…,[I]を求め、シェア計算装置100,…,100に予言を開始する指示を出す(S320)。シェア計算装置100,…,100は、学習後(更新後)の[W(1),…,[W(D)と[Θ(1),…,[Θ(D)を用いて、図4に示した処理にしたがって、出力のシェア[O]={[O(1)],…,[O(M)]})を求め(S110(S110,…,S110))、端末300に送信する。端末300は、出力のシェアから出力Oを復元する(S330)。なお、図8では端末300が入力のシェア生成、予言の指示、出力の復元を行ったが、管理装置200が行ってもよい。この場合は、管理装置200は、予言指示部320を備える。
本発明のニューラルネットワークシステムによれば、管理装置をシェアの生成とシェアの復元ができる装置とし、シェア計算装置をシェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定ができる装置としている。そして、活性化関数f(X)として、X≦0のときはf(X)=0、X>0のときはf(X)=Xとなる関数を用いている。
この活性化関数f(X)とその導関数f’(X)を用いれば、シェアの生成とシェアの復元ができる管理装置と、シェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定ができるシェア計算装置によって、学習データだけでなく、学習した結果として得られる重みのデータも秘密化できる。また、上述したように、X≦0のときはf(X)=0、X>0のときはf(X)=Xとなる活性化関数の場合、既存のシェアの大小判定とシェアの乗算を用いて、簡単に活性化関数の秘密計算、活性化関数の導関数の秘密計算を行える。
[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
100 シェア計算装置 110 前方伝播部
120 誤差計算部 130 逆誤差伝播部
140 学習制御部 190 シェア計算記録部
200 管理装置 210 初期設定部
220 学習指示部 230 終了条件確認部
290 管理記録部 300 端末
320 予言指示部 900 ネットワーク

Claims (6)

  1. 管理装置とN台のシェア計算装置で構成されたニューラルネットワークシステムであって、
    Kを2以上の整数、Nを2K−1以上の整数、nを1以上N以下の整数、Dをニューラルネットワークの層数(ただし、1層目が入力層、D層目が出力層)、dを1以上D以下の整数、Mをd層目のノード数、mを1以上M以下の整数、Sを入力と教師データのセット数、sを1以上S以下の整数、I(s)={I(1)(s),…,I(M(s)}をs番目の入力、T(s)={T(1)(s),…,T(M(s)}をs番目の入力に対する教師データ、O(s)={O(1)(s),…,O(M(s)}をs番目の入力に対する出力、H(d,s={H(1)(d,s,…,H(M(d,s}をs番目の入力に対するd番目の隠れ層の値(ただし、I(s)=H(1,s、O(s)=H(D,s)、w(m,md−1(d)をd層目のm番目のノードとd−1層目のmd−1番目のノードの間の重み、θ(m(d)をd層目のm番目のノードの閾値、Δw(m,md−1(d)をw(m,md−1(d)の学習率、Δθ(m(d)をθ(m(d)の学習率、[]をn番目のシェア計算装置が記録するシェアを示す記号、[W(d)を[w(1,1)(d),…,[w(m,md−1(d),…,[w(M,Md−1(d)の集合、[Θ(d)を[θ(1)(d),…,[θ(M(d)の集合、[ΔW(d)を[Δw(1,1)(d),…,[Δw(m,md−1(d),…,[Δw(M,Md−1(d)の集合、[ΔΘ(d)を[Δθ(1)(d),…,[Δθ(M(d)の集合、εをあらかじめ定めた誤差の閾値、f()を活性化関数、f’()を前記活性化関数の導関数とし、
    前記管理装置は、データからN個のシェアを求めること、K個のシェアからデータを復元することができ、
    あらかじめ定めたΔW(1),…,ΔW(D)、ΔΘ(1),…,ΔΘ(D)、εと、S個の入力と教師データのセット(I(1),T(1)),…,(I(S),T(S))を記録する管理記録部と、
    1≦n≦Nのすべてのnについて[W(1),…,[W(D)と[Θ(1),…,[Θ(D)をn番目のシェア計算装置に送信する初期設定部と、
    1≦n≦Nのすべてのnについて([I(1),[T(1)),…,([I(S),[T(S))をn番目のシェア計算装置に送信し、N個のシェア計算装置に学習開始を指示する学習指示部と、
    を備え、
    n番目のシェア計算装置は、シェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定を、他の前記シェア計算装置と共に行うことができ、
    [W(1),…,[W(D)と[Θ(1),…,[Θ(D)と([I(1),[T(1)),…,([I(S),[T(S))と、前記のあらかじめ定めたΔW(1),…,ΔW(D)、ΔΘ(1),…,ΔΘ(D)、εを記録するシェア計算記録部と、
    1≦m≦Mのすべてのmについて[H(m(1,s)=[I(m(s)とし、
    d=1からd=D−1まで順番に1≦md+1≦Md+1のすべてのmd+1について
    [H(md+1(d+1,s)=[f(X(md+1(d+1,s))]
    ただし、
    Figure 0006556659

    を求め、
    [O(m(s)=[H(m(D,s)
    とすることで、出力のシェア[O(s)={[O(1)(s),…,[O(M(s)})を求める前方伝播部と、
    誤差のシェア[E]を、
    Figure 0006556659

    のように求め、
    Eとεの大小判定結果のシェアである[E<ε]を求める誤差計算部と、
    E<εでない場合には、
    1≦m≦Mのすべてのmについて[TEMP(m)]=[H(m(D,s)−T(m(s)とし、
    d=D−1からd=1まで順番に1≦md+1≦Md+1のすべてのmd+1について
    [δ(md+1(d+1)=[TEMP(md+1)f’(X(md+1(d+1,s))]
    ただし、
    Figure 0006556659

    を求め、
    1≦m≦Mのすべてのmについて
    Figure 0006556659

    とし、
    1≦md+1≦Md+1、1≦m≦Mのすべてのmd+1、mついて
    [w(md+1,m(d+1)←[w(md+1,m(d+1)
    −δ(md+1(d+1)H(m(d,s)Δw(md+1,m(d+1)
    のように重みのシェア[w(md+1,m(d+1)を更新し、
    1≦md+1≦Md+1のすべてのmd+1ついて
    [θ(md+1(d+1)←[θ(md+1(d+1)
    −δ(md+1(d+1)Δθ(md+1(d+1)
    のように閾値のシェア[θ(md+1(d+1)を更新する逆誤差伝播部と、
    前記前方伝播部、前記誤差計算部、前記逆誤差伝播部に、それぞれの処理を1≦s≦Sのすべてのsに対して実行させる学習制御部と、
    を備え、
    前記管理装置又はN台の前記シェア計算装置のいずれかが、K台以上の前記シェア計算装置からEとεの大小判定結果のシェアを受信し、Eとεの大小判定結果を示すデータを復元する終了条件確認部も備え、
    前記活性化関数f(X)は、X≦0のときはf(X)=0、X>0のときはf(X)=Xである
    ことを特徴とするニューラルネットワークシステム。
  2. 請求項1記載のニューラルネットワークシステムであって、
    前記初期設定部は、
    2≦d≦D、1≦m≦M、1≦md−1≦Md−1のすべてのd、m、md−1ついてのw(m,md−1(d)を所定の体上からランダムに選択し、1≦d≦D、1≦m≦Mのすべてのd、mついてのθ(m(d)を前記所定の体上からランダムに選択し、選択したすべてのw(m,md−1(d)とθ(m(d)について[w(m,md−1(d),…,[w(m,md−1(d)と[θ(m(d),…,[θ(m(d)を求めることで、1≦n≦Nのすべてのnについて[W(1),…,[W(D)と[Θ(1),…,[Θ(D)を取得し、
    前記学習指示部は、
    1≦s≦Sのすべての(I(s),T(s))について([I(s),[T(s)),…,([I(s),[T(s))を求めることで、1≦n≦Nのすべてのnについて([I(1),[T(1)),…,([I(S),[T(S))を取得する
    ことを特徴とするニューラルネットワークシステム。
  3. 管理装置とN台のシェア計算装置で構成されたニューラルネットワークシステムのn番目のシェア計算装置であって、
    Kを2以上の整数、Nを2K−1以上の整数、nを1以上N以下の整数、Dをニューラルネットワークの層数(ただし、1層目が入力層、D層目が出力層)、dを1以上D以下の整数、Mをd層目のノード数、mを1以上M以下の整数、Sを入力と教師データのセット数、sを1以上S以下の整数、I(s)={I(1)(s),…,I(M(s)}をs番目の入力、T(s)={T(1)(s),…,T(M(s)}をs番目の入力に対する教師データ、O(s)={O(1)(s),…,O(M(s)}をs番目の入力に対する出力、H(d,s={H(1)(d,s,…,H(M(d,s}をs番目の入力に対するd番目の隠れ層の値(ただし、I(s)=H(1,s、O(s)=H(D,s)、w(m,md−1(d)をd層目のm番目のノードとd−1層目のmd−1番目のノードの間の重み、θ(m(d)をd層目のm番目のノードの閾値、Δw(m,md−1(d)をw(m,md−1(d)の学習率、Δθ(m(d)をθ(m(d)の学習率、[]をn番目のシェア計算装置が記録するシェアを示す記号、[W(d)を[w(1,1)(d),…,[w(m,md−1(d),…,[w(M,Md−1(d)の集合、[Θ(d)を[θ(1)(d),…,[θ(M(d)の集合、[ΔW(d)を[Δw(1,1)(d),…,[Δw(m,md−1(d),…,[Δw(M,Md−1(d)の集合、[ΔΘ(d)を[Δθ(1)(d),…,[Δθ(M(d)の集合、εをあらかじめ定めた誤差の閾値、f()を活性化関数、f’()を前記活性化関数の導関数とし、
    当該シェア計算装置は、
    シェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定を、他の前記シェア計算装置と共に行うことができ、
    あらかじめ前記管理装置から[W(1),…,[W(D)と[Θ(1),…,[Θ(D)と([I(1),[T(1)),…,([I(S),[T(S))を受信し、
    [W(1),…,[W(D)と[Θ(1),…,[Θ(D)と([I(1),[T(1)),…,([I(S),[T(S))と、あらかじめ定めたΔW(1),…,ΔW(D)、ΔΘ(1),…,ΔΘ(D)、εを記録するシェア計算記録部と、
    1≦m≦Mのすべてのmについて[H(m(1,s)=[I(m(s)とし、
    d=1からd=D−1まで順番に1≦md+1≦Md+1のすべてのmd+1について
    [H(md+1(d+1,s)=[f(X(md+1(d+1,s))]
    ただし、
    Figure 0006556659

    を求め、
    [O(m(s)=[H(m(D,s)
    とすることで、出力のシェア[O(s)={[O(1)(s),…,[O(M(s)})を求める前方伝播部と、
    誤差のシェア[E]を、
    Figure 0006556659

    のように求め、
    Eとεの大小判定結果のシェアである[E<ε]を求める誤差計算部と、
    E<εでない場合には、
    1≦m≦Mのすべてのmについて[TEMP(m)]=[H(m(D,s)−T(m(s)とし、
    d=D−1からd=1まで順番に1≦md+1≦Md+1のすべてのmd+1について
    [δ(md+1(d+1)=[TEMP(md+1)f’(X(md+1(d+1,s))]
    ただし、
    Figure 0006556659

    を求め、
    1≦m≦Mのすべてのmについて
    Figure 0006556659

    とし、
    1≦md+1≦Md+1、1≦m≦Mのすべてのmd+1、mついて
    [w(md+1,m(d+1)←[w(md+1,m(d+1)
    −δ(md+1(d+1)H(m(d,s)Δw(md+1,m(d+1)
    のように重みのシェア[w(md+1,m(d+1)を更新し、
    1≦md+1≦Md+1のすべてのmd+1ついて
    [θ(md+1(d+1)←[θ(md+1(d+1)
    −δ(md+1(d+1)Δθ(md+1(d+1)
    のように閾値のシェア[θ(md+1(d+1)を更新する逆誤差伝播部と、
    前記前方伝播部、前記誤差計算部、前記逆誤差伝播部に、それぞれの処理を1≦s≦Sのすべてのsに対して実行させる学習制御部と、
    を備え、
    前記活性化関数f(X)は、X≦0のときはf(X)=0、X>0のときはf(X)=Xである
    ことを特徴とするシェア計算装置。
  4. 管理装置とN台のシェア計算装置で構成されたニューラルネットワークシステムの学習方法であって、
    Kを2以上の整数、Nを2K−1以上の整数、nを1以上N以下の整数、Dをニューラルネットワークの層数(ただし、1層目が入力層、D層目が出力層)、dを1以上D以下の整数、Mをd層目のノード数、mを1以上M以下の整数、Sを入力と教師データのセット数、sを1以上S以下の整数、I(s)={I(1)(s),…,I(M(s)}をs番目の入力、T(s)={T(1)(s),…,T(M(s)}をs番目の入力に対する教師データ、O(s)={O(1)(s),…,O(M(s)}をs番目の入力に対する出力、H(d,s={H(1)(d,s,…,H(M(d,s}をs番目の入力に対するd番目の隠れ層の値(ただし、I(s)=H(1,s、O(s)=H(D,s)、w(m,md−1(d)をd層目のm番目のノードとd−1層目のmd−1番目のノードの間の重み、θ(m(d)をd層目のm番目のノードの閾値、Δw(m,md−1(d)をw(m,md−1(d)の学習率、Δθ(m(d)をθ(m(d)の学習率、[]をn番目のシェア計算装置が記録するシェアを示す記号、[W(d)を[w(1,1)(d),…,[w(m,md−1(d),…,[w(M,Md−1(d)の集合、[Θ(d)を[θ(1)(d),…,[θ(M(d)の集合、[ΔW(d)を[Δw(1,1)(d),…,[Δw(m,md−1(d),…,[Δw(M,Md−1(d)の集合、[ΔΘ(d)を[Δθ(1)(d),…,[Δθ(M(d)の集合、εをあらかじめ定めた誤差の閾値、f()を活性化関数、f’()を前記活性化関数の導関数とし、
    前記管理装置は、データからN個のシェアを求めること、K個のシェアからデータを復元することができ、
    あらかじめ定めたΔW(1),…,ΔW(D)、ΔΘ(1),…,ΔΘ(D)、εと、S個の入力と教師データのセット(I(1),T(1)),…,(I(S),T(S))を記録する管理記録部を備え、
    前記管理装置が、
    1≦n≦Nのすべてのnについて[W(1),…,[W(D)と[Θ(1),…,[Θ(D)をn番目のシェア計算装置に送信する初期設定ステップと、
    1≦n≦Nのすべてのnについて([I(1),[T(1)),…,([I(S),[T(S))をn番目のシェア計算装置に送信し、N個のシェア計算装置に学習開始を指示する学習指示ステップと、
    を実行し、
    n番目のシェア計算装置は、シェアの加算、シェアの乗算、シェアの定数倍、シェアの大小判定を、他の前記シェア計算装置と共に行うことができ、
    [W(1),…,[W(D)と[Θ(1),…,[Θ(D)と([I(1),[T(1)),…,([I(S),[T(S))と、前記のあらかじめ定めたΔW(1),…,ΔW(D)、ΔΘ(1),…,ΔΘ(D)、εを記録するシェア計算記録部を備え、
    N台のシェア計算装置が、
    1≦m≦Mのすべてのmについて[H(m(1,s)=[I(m(s)とし、
    d=1からd=D−1まで順番に1≦md+1≦Md+1のすべてのmd+1について
    [H(md+1(d+1,s)=[f(X(md+1(d+1,s))]
    ただし、
    Figure 0006556659

    を求め、
    [O(m(s)=[H(m(D,s)
    とすることで、出力のシェア[O(s)={[O(1)(s),…,[O(M(s)})を求める前方伝播ステップと、
    誤差のシェア[E]を、
    Figure 0006556659

    のように求め、
    Eとεの大小判定結果のシェアである[E<ε]を求める誤差計算ステップと、
    を実行し、
    前記管理装置又はN台の前記シェア計算装置のいずれかが、K台以上の前記シェア計算装置からEとεの大小判定結果のシェアを受信し、Eとεの大小判定結果を示すデータを復元する終了条件確認ステップを実行し、
    N台の前記シェア計算装置が、
    E<εでない場合には、
    1≦m≦Mのすべてのmについて[TEMP(m)]=[H(m(D,s)−T(m(s)とし、
    d=D−1からd=1まで順番に1≦md+1≦Md+1のすべてのmd+1について
    [δ(md+1(d+1)=[TEMP(md+1)f’(X(md+1(d+1,s))]
    ただし、
    Figure 0006556659

    を求め、
    1≦m≦Mのすべてのmについて
    Figure 0006556659

    とし、
    1≦md+1≦Md+1、1≦m≦Mのすべてのmd+1、mついて
    [w(md+1,m(d+1)←[w(md+1,m(d+1)
    −δ(md+1(d+1)H(m(d,s)Δw(md+1,m(d+1)
    のように重みのシェア[w(md+1,m(d+1)を更新し、
    1≦md+1≦Md+1のすべてのmd+1ついて
    [θ(md+1(d+1)←[θ(md+1(d+1)
    −δ(md+1(d+1)Δθ(md+1(d+1)
    のように閾値のシェア[θ(md+1(d+1)を更新する逆誤差伝播ステップを実行し、
    N台の前記シェア計算装置は、前記前方伝播ステップ、前記誤差計算ステップ、前記逆誤差伝播ステップおいて、それぞれの処理を1≦s≦Sのすべてのsに対して実行
    前記活性化関数f(X)は、X≦0のときはf(X)=0、X>0のときはf(X)=Xである
    ことを特徴とするニューラルネットワークの学習方法。
  5. 請求項4記載のニューラルネットワークの学習方法であって、
    前記初期設定ステップでは、
    2≦d≦D、1≦m≦M、1≦md−1≦Md−1のすべてのd、m、md−1ついてのw(m,md−1(d)を所定の体上からランダムに選択し、1≦d≦D、1≦m≦Mのすべてのd、mついてのθ(m(d)を前記所定の体上からランダムに選択し、選択したすべてのw(m,md−1(d)とθ(m(d)について[w(m,md−1(d),…,[w(m,md−1(d)と[θ(m(d),…,[θ(m(d)を求めることで、1≦n≦Nのすべてのnについて[W(1),…,[W(D)と[Θ(1),…,[Θ(D)を取得し、
    前記学習指示ステップでは、
    1≦s≦Sのすべての(I(s),T(s))について([I(s),[T(s)),…,([I(s),[T(s))を求めることで、1≦n≦Nのすべてのnについて([I(1),[T(1)),…,([I(S),[T(S))を取得する
    ことを特徴とするニューラルネットワークの学習方法。
  6. 請求項3記載のシェア計算装置としてコンピュータを機能させるためのプログラム。
JP2016098410A 2016-05-17 2016-05-17 ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム Active JP6556659B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016098410A JP6556659B2 (ja) 2016-05-17 2016-05-17 ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016098410A JP6556659B2 (ja) 2016-05-17 2016-05-17 ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム

Publications (2)

Publication Number Publication Date
JP2017207839A JP2017207839A (ja) 2017-11-24
JP6556659B2 true JP6556659B2 (ja) 2019-08-07

Family

ID=60414974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016098410A Active JP6556659B2 (ja) 2016-05-17 2016-05-17 ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム

Country Status (1)

Country Link
JP (1) JP6556659B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7414655B2 (ja) 2020-07-01 2024-01-16 株式会社東芝 学習システム、情報処理装置、学習方法およびプログラム
IL277910A (en) 2020-10-09 2022-05-01 Google Llc Privacy-preserving machine learning using a gradient stimulus
WO2022168257A1 (ja) * 2021-02-05 2022-08-11 日本電気株式会社 連合学習システム、連合学習装置、連合学習方法および連合学習プログラム
JP7451445B2 (ja) 2021-02-10 2024-03-18 株式会社東芝 秘匿演算方法、秘匿演算システム及び秘匿演算管理装置
JP2022150498A (ja) * 2021-03-26 2022-10-07 エヌ・ティ・ティ・コミュニケーションズ株式会社 学習プログラム、学習方法及び学習装置
WO2023188259A1 (ja) * 2022-03-31 2023-10-05 日本電信電話株式会社 秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105981088B (zh) * 2014-01-28 2019-05-03 日本电信电话株式会社 秘密计算方法、秘密计算系统、注册者终端以及记录介质

Also Published As

Publication number Publication date
JP2017207839A (ja) 2017-11-24

Similar Documents

Publication Publication Date Title
JP6556659B2 (ja) ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム
EP3771179B1 (en) Graph data processing method, system and storage medium
JP6825138B2 (ja) プライバシー保護のための分散型マルチパーティセキュリティモデル訓練フレームワーク
JP6921233B2 (ja) 秘密分散を使用したロジスティック回帰モデリング方式
EP3659292B1 (en) Secure multi-party computation with no trusted initializer
US20190294956A1 (en) Secure data processing
CN115943394A (zh) 用于安全纵向联邦学习的方法、装置和系统
CN112990276B (zh) 基于自组织集群的联邦学习方法、装置、设备及存储介质
JP5860557B1 (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
WO2022072415A1 (en) Privacy preserving machine learning using secure multi-party computation
CN112805769B (zh) 秘密s型函数计算系统、装置、方法及记录介质
JP7361928B2 (ja) 勾配ブースティングを介したプライバシーを守る機械学習
US10748454B2 (en) Secret computation apparatus, method for the same, and program
JP2021501920A (ja) 信頼できるイニシャライザを用いた秘密共有
KR20220140759A (ko) 분류 정확도를 향상시키기 위한 기계 학습 모델링 데이터의 처리
US11943277B2 (en) Conversion system, method and program
US11329808B2 (en) Secure computation device, secure computation authentication system, secure computation method, and program
JP7397212B2 (ja) コンテンツ配信における情報に対するアクセスを保護するためのセキュアなmpcおよびベクトル計算の使用
US20230088588A1 (en) Security as a service for machine learning
JPWO2019009180A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体
WO2023188257A1 (ja) 秘密グローバルモデル計算装置、ローカルモデル登録方法、プログラム
WO2023188259A1 (ja) 秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム
CN116304644B (zh) 一种基于联邦学习的数据处理方法、装置、设备及介质
WO2023188258A1 (ja) 計算装置、計算方法、およびプログラム
WO2023188261A1 (ja) 秘密グローバルモデル計算装置、ローカルモデル登録方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180607

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190610

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190710

R150 Certificate of patent or registration of utility model

Ref document number: 6556659

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150