(57)【要約】  例えばスケーラブルDNN、マルチタスクDNNを実現するための技術を提供する。ニューラルネットワークシステムは、複数のモデルを含むニューラルネットワークシステムであって、複数のモデルのそれぞれは、複数の層を含むDNNであり、複数のモデルの一部又は全部は、モデル変数の一部又は全部が等価であるかまたは共通している層（以下、「共有層」という）を少なくとも１個含み、かつ、モデル変数が等価でも共通でもない層（以下、「非共有層」という）を少なくとも１個含んでいるモデル変数。
2019198814.tif 000002
【特許請求の範囲】
【請求項１】
複数のモデルを含むニューラルネットワークシステムであって、
上記複数のモデルのそれぞれは、複数の層を含むDNNであり、
上記複数のモデルの一部又は全部は、モデル変数の一部又は全部が等価であるかまたは共通している層（以下、「共有層」という）を少なくとも１個含み、かつ、モデル変数が等価でも共通でもない層（以下、「非共有層」という）を少なくとも１個含んでいる、
ニューラルネットワークシステム。
【請求項２】
請求項１に記載のニューラルネットワークシステムにおいて、
上記共有層は、入力層、または、入力層を含む連続する複数の層である、
ニューラルネットワークシステム。
【請求項３】
請求項１または２に記載のニューラルネットワークシステムにおいて、
上記複数のモデルは、同じタスクのDNNであり、かつ、層の数が互いに異なるDNNである、
ニューラルネットワークシステム。
【請求項４】
請求項１または２に記載のニューラルネットワークシステムにおいて、
上記複数のモデルは、互いに異なるタスクのDNNである、
ニューラルネットワークシステム。
【請求項５】
請求項１ないし４のいずれか１項に記載のニューラルネットワークシステムにおいて、
上記共有層は、上記複数のモデルの対応する層同士でモデル変数の一部又は全部を授受すること含んだモデル変数の更新処理を行う、
ニューラルネットワークシステム。
【請求項６】
請求項１ないし４のいずれか１項に記載のニューラルネットワークシステムにおいて、
上記共有層として、上記複数のモデルにおいて同じ１つの層が用いられる、
ニューラルネットワークシステム。
【請求項７】
複数のモデルを含むニューラルネットワーク方法であって、
上記複数のモデルのそれぞれは、複数の層を含むDNNであり、
上記複数のモデルの一部又は全部は、モデル変数の一部又は全部が等価であるかまたは共通している層（以下、「共有層」という）を少なくとも１個含み、かつ、モデル変数が等価でも共通でもない層（以下、「非共有層」という）を少なくとも１個含んでいる、
ニューラルネットワーク方法。
【請求項８】
請求項１ないし６のいずれか１項に記載のニューラルネットワークシステムとしてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習の技術に関する。
【背景技術】
【０００２】
近年、機械学習がブームになっており、収集したデータと出力したい情報の間の写像(mapping)を、データと教師データを用いた学習により得るフレームワークが一般的になってきている。なお、教師データに代えて、コスト関数が用いられる場合もある。【０００３】
Deep Neural Network (DNN)を用いて写像が記述されたモデルは、通常、End-to-Endモデルと呼ばれている。End-to-Endモデルでは、入力と出力だけが与えられ、その間の関係はブラックボックスとして見なして、入出力の関係がDNNで記述される。DNNの生成技術として、非特許文献１に記載された技術が知られている。【０００４】
従来のEnd-to-Endモデルでは、入出力の関係がブラックボックス化されており、ネットワーク上には同じ入出力のDNNが直接または間接的に繋がれた状態で存在するものの、それぞれのDNNは独立して動作している。例えば、インターネット上には音声信号を入力としてその音声信号に対応する文字列を出力する音声認識DNNが複数存在しているが、それぞれの音声認識DNNは、独立してDNNの学習を行い、独立して学習したDNNを用いて音声認識を行っている。１つの装置内で複数のDNNを動作させる場合も同様である。例えば、１つのPC上で音声を認識して認識結果を出力するタスクのDNNと音声に対する応答を生成して出力するタスクのDNNとを動作させる場合、これらのDNNは１つのPC上で動作するものの独立して動作している。【０００５】
次に、機械学習の対象となるモデルの潜在変数を学習する際に扱うコストの最小化問題を考える。この最小化問題は、以下のように定式化される。
（問題）
コスト関数Gは、関数G1と関数G2に加法分割されるものとする。ただし、関数G1, G2はいずれも閉真凸関数であるものとする（以後、閉真凸関数のことを単に凸関数という）。【０００６】
【数１】
2019198814.tif 000003
【０００７】
ここで、w∈Rm（mは1以上の整数）、Gi:Rm→R∪{∞} (i=1, 2)である。つまり、wは、m次元実ベクトル空間Rmの要素であり、Giは、m次元実ベクトルwを入力とし、（1次元の）実数を出力する関数である。【０００８】
なお、Giの入力は、ベクトルであるとしたが、行列やテンソルであってもよい。行列やテンソルはベクトルを用いて表現することができるので、以下、Giの入力はベクトルであるものとして話を進める。【０００９】
コストGを最小化するように潜在変数wを最適化する問題は、以下のように表される。【００１０】
【数２】
2019198814.tif 000004
【００１１】
この問題の最適解w*（wの停留点ともいう）は、コストGの劣微分が0ベクトル（零ベクトル）を含むときに得られる。【００１２】
【数３】
2019198814.tif 000005
【００１３】
ここで、∂Giは、Giの劣微分を表す。なお、入力と出力が１対１対応となる等号を表す記号”=“の代わりに、記号“∈”を用いるのは、凸関数Giが不連続点を含む場合、その劣微分は不連続点において多点出力対応となるためである。【００１４】
最適解w*を求める従来方法を説明する前に、式(1-1)に従う具体的問題をいくつか挙げる。
《具体的問題１：エッジコンピューティングにおける合意形成問題》
V個のノードが任意に接続されたグラフG(v, e)（ただし、vはノードの集合、eはエッジの集合である）を考える。【００１５】
【数４】
2019198814.tif 000006
【００１６】
ここで、N(i)はi番目のノードに接続されたノード群のインデックスの集合を表す。【００１７】
図１２は、V個のノード（サーバ）がエッジ構造eに従って繋がっている状態（V=5の場合）を示す。各ノードに蓄積された膨大なデータをノード間で交換するのではなく、潜在変数やその補助変数（例えば、双対変数）を交換しながら全体最適化する問題がエッジコンピューティングにおける合意形成問題である。【００１８】
i番目のノードにある凸関数で表現されたコストを以下のように表す。【００１９】
【数５】
2019198814.tif 000007
【００２０】
ここでは、問題の理解を容易にするために、コストF1,iの具体例として、教師データsiに対する二乗誤差を用いることにする。【００２１】
【数６】
2019198814.tif 000008
【００２２】
ここで、Tは転置、||・||pはLpノルムを表す。また、u(i)={1,…,U(i)}である。【００２３】
このコストF1,iは、p’次元ベクトルvi∈Rp’を入力データとし、教師データsiを出力するように、U(i)個のデータの組(vi,u, si,u)を用いて、潜在変数pi(pi∈Rp’)を最適化する問題のコスト関数である。ノードによってデータやその数U(i)が異なることをインデックスが示している。一般に、各ノードに蓄積されたデータは異なるが、同一であってもよい。なお、入力データと教師データの組のことを学習データという。また、以下、m=p’Vとする。【００２４】
この例では、教師データを用いる形で定式化したが、教師データを用いることなく定式化することもできる。【００２５】
また、同一のロケーションにある複数のサーバによる並列コンピューティングについても、上記合意形成問題と同一の問題として定式化できる。例えば、多数のコンピュータを使って並列計算をして、音声認識、画像認識などのモデルを高速に学習するような場合が該当する。この場合、各サーバに蓄積されるデータセットは基本的には同一になる。【００２６】
合意形成問題では、ノード間で潜在変数pの値が同一になるように制約しながら、コストを最小化する停留点を探すことになる。【００２７】
【数７】
2019198814.tif 000009
【００２８】
ここで、pi∈Rp’、Ai|j∈Rp’×p’である。Ai|jは合意形成を表現するp’×p’の実数行列である。この行列Ai|jとして任意の行列を用いることができるが、”ノード間で潜在変数の値が同一になるように学習を進めたい”という意図がある場合、例えば、以下のような簡単な行列を用いることができる。【００２９】
【数８】
2019198814.tif 000010
【００３０】
ここで、Iは単位行列である。【００３１】
式(2-1)のような線形拘束下でのコスト最小化問題を解く場合、ラグランジュの未定乗数法を用いることが多い。双対変数νi,j∈Rp’を用いて、ラグランジュ関数Lを以下のように定義する。【００３２】
【数９】
2019198814.tif 000011
【００３３】
式(2-1)を解くことは、以下の式(2-2)の問題（主問題）を解くことに対応する。しかし、この問題を直接解くことは困難な場合が多い。【００３４】
F1,iが閉真凸関数であるとき、強双対性が成立する、つまり、最適点において式(2-2)と式(2-3)間の統合性が成り立つので、式(2-2)を解く代わりに、式(2-3)の問題（双対問題）を解くことが一般的である。【００３５】
【数１０】
2019198814.tif 000012
【００３６】
ここで、F1,i*は、凸関数F1,iの凸共役関数を表す。【００３７】
【数１１】
2019198814.tif 000013
【００３８】
F1,iが凸関数である場合、F1,i*も凸関数になる。【００３９】
式(2-4)は、凸関数F1,i*を最小化する双対変数νi,jを探す問題を表している。式(2-1)を解くためには、式(2-4)を解けばよいが、式(2-4)の形式のままでは、ノードごとに非同期で潜在変数を更新するような処理を実現することができない。そこで、双対変数νi,jをノードごとに帰属するようにリフティング処理を行う。具体的には、双対変数νi,jをi番目のノードに帰属する双対変数λi|j∈Rp’とj番目のノードに帰属する双対変数λj|i∈Rp’の2つに分け、これらの変数が一致するという制約を入れる。【００４０】
【数１２】
2019198814.tif 000014
【００４１】
図１３Ａ及び図１３Ｂは、双対変数のリフティング処理の様子を示す図である。図１３Ａは、ノードiとノードjの合意形成における誤差を制御しているのが変数νi,jであることを表している。しかし、このままではi番目の潜在変数とj番目の潜在変数を同期しながら更新しなければならない。そこで、i番目の潜在変数とj番目の潜在変数を非同期でも更新できるようにするために、図１３Ａでは無方向であったエッジを、図１３Ｂのように方向性のある2つのエッジに書き換える。この2つのエッジは1つの無方向のエッジから生成されたものであるので、一致するという制約が必要になるが、変数更新における同期性の問題を解決することができる。【００４２】
双対変数のリフティング処理により、式(2-4)の問題は、以下の問題（線形拘束付の最適化問題）に書き換えられる。【００４３】
【数１３】
2019198814.tif 000015
【００４４】
V個に分けて書いていた変数群をベクトルや行列を用いて表現することにより、式(2-5)は以下のように表現する。もちろん、式の意味は変わることなく、同一の問題を表している。【００４５】
【数１４】
2019198814.tif 000016
【００４６】
ここで、凸共役関数F1*は、次式のようになる。【００４７】
【数１５】
2019198814.tif 000017
【００４８】
なお、F1:Rm→R∪{∞}, F1*:Rm→R∪{∞}(m=p’V)である。【００４９】
また、V個のノードごとに分けて書いていた変数群（つまり、pi, λi|j, Ai|j）は以下のようになる。【００５０】
【数１６】
2019198814.tif 000018
【００５１】
ここで、さらに、リフティング処理された双対変数が一致するという制約を記述するにあたって、変数が一致するという観点で適切な性質をもつ指示関数F2を用いることにする。指示関数F2を用いると、式(2-6)の問題は、以下の問題に帰着する。【００５２】
【数１７】
2019198814.tif 000019
【００５３】
ここで、指示関数F2は、以下のように定義される。【００５４】
【数１８】
2019198814.tif 000020
【００５５】
ここで、Pは順序入替行列（パーミュテーション行列）である。順序入替行列Pの要素はすべて0または1であり、P2=Iという性質を持つ。行列Pをベクトルλにかけることは、以下のようにノードiとノードjの間のエッジに対応する双対変数λi|j, λj|iを入れ替える処理（λj|i⇔λi|j）に相当する。【００５６】
【数１９】
2019198814.tif 000021
【００５７】
ここで、式(2-7)に対して以下のようなに置き換えを適用することにより、エッジコンピューティングにおける合意形成問題（つまり、式(2-7)）が式(1-1)に帰着することがわかる。【００５８】
【数２０】
2019198814.tif 000022
【００５９】
また、別の例として以下のようなものがある。
《具体的問題２：画像／音声／言語の認識タスクにおける汎用モデル生成問題》
画像/音声/言語等の認識タスクにおける汎用モデルを生成するための方法として、以下のようなコストを用いて潜在変数pを学習させることが有用であることが知られている（参考非特許文献２−１）。
（参考非特許文献２−１：V. Vapnik, “Principles of Risk Minimization for Learning Theory”, Advances in Neural Information Processing Systems 4 (NIPS1991), pp.831-838, 1992.）【００６０】
【数２１】
2019198814.tif 000023
【００６１】
ここで、p∈Rmは潜在変数、λ∈Rmは双対変数、A=[a1, …, an]T∈Rn×mは入力データを表す。【００６２】
式(2-8)に対して以下のようなに置き換えを適用することにより、画像／音声／言語の認識タスクにおける汎用モデル生成問題（つまり、式(2-8)）は式(1-1)に帰着することがわかる。【００６３】
【数２２】
2019198814.tif 000024
【００６４】
また、式(2-9)に対しても以下のようなに置き換えを適用することにより、式(1-1)に帰着することがわかる。【００６５】
【数２３】
2019198814.tif 000025
【００６６】
例えば、F1には二乗誤差やクロスエントロピーを用い、F2には正則化項としてL1ノルムを用いることができる。もちろん、F1、F2はこれに限るものではない。【００６７】
【数２４】
2019198814.tif 000026
【００６８】
ここで、sは、所望する出力情報の教師データである。なお、aiは、上述の入力データA=[a1, …, an]T∈Rn×mを構成するベクトルである。【００６９】
なお、認識タスク以外のタスク、例えば、画像／音声の雑音除去にも用いることができる。
《最適解w*を求める従来方法》
ここでは、従来の解法について簡単に説明する。先述したように解くべき問題は式(1-1)である。また、式(1-1)で表される問題の最適解w*（wの停留点）は、式(1-2)が示すように、コストGの劣微分が0ベクトル（零ベクトル）を含むときに得られる。なお、Giが凸関数である場合、Giの劣微分∂Giは単調作用素となる。【００７０】
式(1-2)を解いて最適解w*を求めるために、劣微分を連続線形写像に変換する。この変換方法のことを単調作用素分割法(Monotone operator splitting)という（非特許文献２）。なお、単調作用素分割は単調作用素分解ともいう。単調作用素分割法には様々な方法が存在するが、ここでは、再帰的な変数更新に伴うコストの非拡大性（つまり、変数を更新するにつれて、コストが縮小していくという性質）を担保することができるPeaceman-Rachford(P-R)型とDouglus-Rachford(D-R)型の2種類の単調作用素分割法について説明する。【００７１】
具体的な導出手続きについては省略するが、式(1-2)を変形していくと、P-R型単調作用素分割とD-R型単調作用素分割が得られる。なお、変形に際して、リゾルヴェント作用素Ωnとケーリー作用素Ψnを用いる(n=1, 2)。【００７２】
【数２５】
2019198814.tif 000027
【００７３】
ただし、Iは同一作用素、-1は逆作用素を表す。【００７４】
また、w(w∈Rm)の補助変数z(z∈Rm)を導入する。その関係は以下のようにリゾルヴェント作用素で接続される。【００７５】
【数２６】
2019198814.tif 000028
【００７６】
P-R型単調作用素分割、D-R型単調作用素分割は、それぞれ式(3-1)、式(3-2)で表される。【００７７】
【数２７】
2019198814.tif 000029
【００７８】
式(3-1)と式(3-2)をみると、P-R型単調作用素分割に平均化作用素を導入することで、D-R型単調作用素分割が得られることがわかる。【００７９】
以下、エッジコンピューティングにおける合意形成問題を例として、式(3-1)、式(3-2)から得られる再帰的な変数更新則である変数更新アルゴリズムについて説明する。この合意形成問題は、以下の式(2-7)のλをwで置き換えたもので表される。【００８０】
【数２８】
2019198814.tif 000030
【００８１】
このとき、リゾルヴェント作用素Ω2とケーリー作用素Ψ2は次のようになる。【００８２】
【数２９】
2019198814.tif 000031
【００８３】
ここで、上記指示関数F2を用いる場合、ケーリー作用素Ψ2は順序入替行列Pに対応することが非特許文献３に示されている。【００８４】
式(3-1)、式(3-2)を再帰的な変数更新則として表現すると、以下のようになる。式(3-5)が式(3-1)のP-R型単調作用素分割に、式(3-6)が式(3-2)のD-R型単調作用素分割に対応する。【００８５】
【数３０】
2019198814.tif 000032
【００８６】
ここで、変数w, λ, z(w∈Rm, λ∈Rm, z∈Rm, m=p’V)はリゾルヴェント作用素やケーリー作用素を通して得られる変数であり、いずれも双対変数である。また、tは更新回数を表す変数である。【００８７】
関数F1*の定義からわかるように、式(3-3)には潜在変数pと双対変数wの更新が含まれている。これらの変数を更新するための方法として、非特許文献３に記載の方法を説明する。式(3-3)を以下のように変形していく。【００８８】
【数３１】
2019198814.tif 000033
【００８９】
なお、上記変形で第2式から第3式を導出する際、積分形を用いた。【００９０】
F1*は潜在変数pの最適化計算を含むため、式(3-7)を解く方法は、2種類ある。ここでは、まず潜在変数pを最適化し、pをその最適値に固定したうえで、双対変数wを最適化する方法を導出することにする。潜在変数pを逐次最適化計算する（つまり、ptからpt+1を計算する）ため、pに関する罰則項をF1*に含まれるコストに加えて計算する。【００９１】
【数３２】
2019198814.tif 000034
【００９２】
ここで、式(3-8)の右辺のargminの中の第3項が罰則項であり、γ>0である。罰則項を用いることで潜在変数pの逐次最適化計算が可能になる。【００９３】
次に、潜在変数pを固定したうえで、式(3-7)に含まれる双対変数wの最適化を行う。【００９４】
【数３３】
2019198814.tif 000035
【００９５】
また、式(3-4)は以下のように計算できる。【００９６】
【数３４】
2019198814.tif 000036
【００９７】
式(3-10)からわかるように、wを用いることなく、λを計算できるようになる。【００９８】
以上まとめると、再帰的な変数更新則（式(3-3)〜式(3-6)）は、以下のようになる。【００９９】
【数３５】
2019198814.tif 000037
【０１００】
この更新則をノードごとに変数を更新できるようにすると、図１４に示すアルゴリズムが得られる。なお、Transmitj→i{・}はノードjからノードiへ変数を送信する演算を表す。
【先行技術文献】
【非特許文献】
【０１０１】
【非特許文献１】斎藤 康毅（著），「ゼロから作るDeep Learning――Pythonで学ぶディープラーニングの理論と実装」，オライリー・ジャパン，2016年09月発行．
【非特許文献２】E. K. Ryu and S. Boyd, “Primer on Monotone Operator Methods”, Appl. Comput. Math., 15(1):3-43, 2016.
【非特許文献３】T. Sherson, R. Heusdens, W. B. Kleijn, “Derivation and Analysis of the Primal-Dual Method of Multipliers Based on Monotone Operator Theory”, https://arxiv.org/abs/1706.02654, 2017.
【発明の概要】
【発明が解決しようとする課題】
【０１０２】
まず、第１の課題について説明する。【０１０３】
直接または間接的に繋がれた状態で存在する複数の写像について、潜在変数のやりとりを行って最適化する技術としては、エッジコンピューティングにおける合意形成アルゴリズム(コンセンサスアルゴリズム)がある。【０１０４】
しかしながら、多くの合意形成アルゴリズムでは、コスト関数を凸関数として扱っている場合にのみ適用可能な技術として構築されているので、コストが非凸関数であるDNNについては、複数のモデル間でモデル変数が共有されているものはこれまで提案されていなかった。このため、例えばスケーラブルDNN、マルチタスクDNNネットワーク上に直接または間接的に繋がれた状態で存在する場合でも同じ装置上に存在する場合でも、同じタスクであっても異なるタスクであっても、複数のDNNの間でモデル変数の共有を実現することができなかった。【０１０５】
これが第１の課題である。【０１０６】
次に、第２の課題について説明する。【０１０７】
従来の変数更新則は、リゾルヴェント作用素やケーリー作用素を用いた単調作用素分割に基づき生成したものである。この従来の変数更新則では、場合によっては、最適解への収束に時間がかかるという問題があった。つまり、潜在変数の学習に時間がかかるという問題があった。【０１０８】
これが第２の課題である。【０１０９】
そこで本発明では、複数のDNNの間でモデル変数の共有を実現する技術を提供することを目的とする。
【課題を解決するための手段】
【０１１０】
本発明の一態様は、複数のモデルを含むニューラルネットワークシステムであって、複数のモデルのそれぞれは、複数の層を含むDNNであり、複数のモデルの一部又は全部は、モデル変数の一部又は全部が等価であるかまたは共通している層（以下、「共有層」という）を少なくとも１個含み、かつ、モデル変数が等価でも共通でもない層（以下、「非共有層」という）を少なくとも１個含んでいる。
【発明の効果】
【０１１１】
本発明によれば、例えば後述するスケーラブルDNN及びマルチタスクDNNを実現することができる。
【図面の簡単な説明】
【０１１２】
【図１】技術的背景を説明するための図である。
【図２】技術的背景を説明するための図である。
【図３】モデル生成装置の例を説明するためのブロック図である。
【図４】モデル生成方法の例を説明するための流れ図である。
【図５】ニューラルネットワーク計算システムの例を説明するためのブロック図である。
【図６】ニューラルネットワーク計算システム及び方法の例を説明するための図である。
【図７】ニューラルネットワーク計算システム及び方法の例を説明するための図である。
【図８】ニューラルネットワーク計算システム及び方法の例を説明するための図である。
【図９】ニューラルネットワーク計算システム及び方法の例を説明するための図である。
【図１０】ニューラルネットワーク計算システム及び方法の例を説明するための図である。
【図１１】ニューラルネットワークシステムの例を説明するためのブロック図である。
【図１２】エッジコンピューティングの一例を示す図である。
【図１３Ａ】双対変数のリフティング処理の様子を示す図である。
【図１３Ｂ】双対変数のリフティング処理の様子を示す図である。
【図１４】エッジコンピューティングにおける合意形成問題に関する従来の変数更新アルゴリズムを示す図である。
【図１５】エッジコンピューティングにおける合意形成問題に関する本願の変数更新アルゴリズムを示す図である。
【図１６】エッジコンピューティングにおける合意形成問題に関する本願の変数更新アルゴリズムを示す図である。
【図１７】実験で用いた分散計算器の構成を示す図である。
【図１８】実験結果を示す図である。
【図１９】潜在変数学習装置２−１００の構成を示すブロック図である。
【図２０】潜在変数学習装置２−１００の動作を示すフローチャートである。
【図２１】モデル学習部２−１２０の構成を示すブロック図である。
【図２２】モデル学習部２−１２０の動作を示すフローチャートである。
【図２３】潜在変数学習システム２−２０の構成を示すブロック図である。
【図２４】潜在変数学習装置２−２００の構成を示すブロック図である。
【図２５】モデル学習部２−２２０の構成を示すブロック図である。
【図２６】モデル学習部２−２２０の動作を示すフローチャートである。
【図２７】モデル学習部２−２３０の構成を示すブロック図である。
【図２８】モデル学習部２−２３０の動作を示すフローチャートである。
【発明を実施するための形態】
【０１１３】
以下、図面を参照して、この発明の一実施形態である第１実施形態について説明する。
【０１１４】
上述した通り、この発明の目的は、異なる複数のDNNでの一部のモデル変数の共有を実現するための技術を提供することである。まず、異なる複数のDNNで一部のモデル変数を共有する技術の適用先の例として下記の（例１）と（例２）について説明する。
【０１１５】
（例１）は、少なくとも２個以上のDNNにおいて、DNNの層の数はそれぞれ異なるものの、同じタスクのDNNであり（すなわち、DNNの入力が等価であり、かつ、DNNの出力も等価であり）、あるDNNのうちの何れか1層と別のDNNのうちの何れか1層との間でモデル変数を共有するシステムである。以下ではこのシステムを「スケーラブルDNN」または「スケーラブルなDNN」と呼ぶ。一般的にDNNは、層の数を増やすほど、複雑な写像を形成できるので、結果の精度が高くなる傾向があるが、全体の計算量が高くなる。計算量に制約があり、その制約が時刻によって変わるような状況で、ベストな結果を出すためには、スケーラブルなDNNであることが望ましい。例えば、同一のタスクに対して、３層だと７０％の認識率、１０層だと８０％の認識率、１００層だと９５％の認識率を出せるとして、それらのDNNを構成する変数の一部が互いに重複しているケースがこの「スケーラブルDNN」に相当する。
【０１１６】
（例２）は、関連する部分を含むもののタスク自体はそれぞれ異なる少なくとも２個以上のDNNにおいて、あるDNNのうちの何れか1層と別のDNNのうちの何れか1層との間で、モデル変数を共有する、または、層自体を共有する、システムである。以下ではこのシステムを「マルチタスクDNN」または「マルチタスクなDNN」と呼ぶ。マルチタスクDNNに含まれる複数のDNNの組合せの例は、DNNの入力が等価であるもののDNNの出力が等価でない組合せ、DNNの入力は等価ではないもののDNNの出力が等価である組合せ、DNNの入力の一部は等価あるのもののDNNの入力の残りは等価ではない組合せ、DNNの出力の一部は等価あるのもののDNNの出力の残りは等価ではない組合せ、などである。例えば、音声を認識して認識結果を出力するタスク、同じ音声に対する応答を生成して出力するタスク、同じ音声に対するロボットの動きを生成して出力するタスク、などの複数の関連するタスクが出力となるシステムが「マルチタスクDNN」に相当する。これらのタスクは互いに関連しているので、それぞれのタスクを独立にこなすEnd-to-Endモデル（この場合は、音声の認識、音声に対する応答の生成、及び、音声に対するロボットの動きの生成、のそれぞれの処理に対応する３種類のモデル）を構成するよりは、最後の出力を分岐させるようなDNN構造（マルチタスクDNN構造）であったほうが自然法則に近いと考えられ、また、これにより、全体の計算量が減ることも予想される。
【０１１７】
＜技術的背景＞
以下、I個の独立したEnd-to-EndのDNNモデルの生成方式について説明する。Iは、所定の２以上の整数である。１つの例題として、多クラス分類問題を取り上げる。i番目のモデルにおいて、最小化すべきコスト関数（クロスエントロピー）を定義する。
【０１１８】
【数３６】
2019198814.tif 000038
【０１１９】
ここで、Eiは、モデルi(i=1,…,I)のコスト関数である。この例のように、一般にDNNにおけるコスト関数は、非凸関数である。wi,j,kは、DNNモデルの主変数であり、より詳細にはモデルiのj個目の層のノードkに対する重み係数ベクトルである。以下、wi,j,kのことを、主変数と呼ぶこともあれば、モデル変数と呼ぶこともある。Bは、分類クラスの数であり、所定の正の整数である。Dは、データの数であり、所定の正の整数である。Si,b,dは、モデルiの、クラスbに対するラベル付き教師データである。なお、全てのモデルにおいて共通のラベル付き教師データを用いてもよい。この場合、Si,b,dのインデックスiは不要である。Pi,b,dは、DNNが出力するモデルiのb番目のクラスに対する確率値である。なお、全てのモデルにおいて共通の確率値を用いてもよい。この場合、Pi,b,dのインデックスiは不要である。
【０１２０】
ここで、モデルのインデックスの集合である~I、モデルiを構成する層を表すインデックスの集合である~J(i)、モデルiのj個目の層のノードを表すインデックスの集合である。J(i)は、モデルiの層の数であり、所定の正の整数である。~Iは、Iの上に「~」が付されていることを表す。~J(i,j),~K(i,j),~N(i,j)等についても同様である。
【０１２１】
~K(i,j)は、以下のように定義される。K(i,j)は、モデルiのj個目の層のノードの数であり、所定の正の整数である。
【０１２２】
【数３７】
2019198814.tif 000039
【０１２３】
モデルiのj個目の層のノードkの主変数wi,j,kは、以下のように定義される。
【０１２４】
【数３８】
2019198814.tif 000040
【０１２５】
この定義では、通常、バイアス項に対する係数群も主変数に含まれるので、K(i,j-1)+1としている。また、入力情報の次元をMとすると、K(i,0)=Mとなる。
【０１２６】
このとき、モデルiの出力は以下で得られる。Fiは、DNNによる計算処理を表す関数である。xdはd番目の入力データであり、pi,dはd番目の入力データxdに対応するB個のクラスのそれぞれに対する確率値である。
【０１２７】
【数３９】
2019198814.tif 000041
【０１２８】
教師データsi,d、d番目の入力データxd、確率値pi,dのそれぞれは、以下のように定義されるベクトルである。
【０１２９】
【数４０】
2019198814.tif 000042
【０１３０】
なお、Fiは、以下のような演算で行われる。
【０１３１】
【数４１】
2019198814.tif 000043
【０１３２】
ここで、ai,jは、Rectified linear Unit (ReLU)、シグモイド関数、クロスエントロピー関数等の非線形のアクティベーション関数である。
【０１３３】
DNNにおける主変数の最適化は、以下のように、逐次的に誤差関数の一次勾配を減算するやり方が採用されることが多い。
【０１３４】
【数４２】
2019198814.tif 000044
【０１３５】
ここで、ηは正の数であり、通常1より小さい小さな数が使用される。∇Eiは、主変数ベクトルに対する一次勾配である。
【０１３６】
主変数に関する誤差関数の一次勾配∇Eiを計算する方法は様々ある。一番基本的なものは、誤差逆伝搬法と確率的勾配法を組み合わせる方法である。また、少ない更新回数で最適解を得るための実用的なテクニックとして、Adam法, AdaGrad法などが用いられることが多い（例えば、非特許文献１参照。）。
【０１３７】
しかしながら、これまで、複数のモデル間で一部の主変数を共有するような拘束を導入して、モデルを学習するフレームワークは存在しなかった。
【０１３８】
以下では、複数のモデル間で一部の主変数を共有するような拘束条件付きのモデル生成装置及び方法について説明する。まず、初めに、問題を定義する。
【０１３９】
【数４３】
2019198814.tif 000045
【０１４０】
拘束条件は、線形式で書ける条件であれば何でもよいが、ここでは、モデルiのj個目の層のノードkと、モデルnのj個目の層ノードkの間の関係で条件を記述している。~N(i,j)は、モデルiのj個目の層と拘束関係のあるモデルのインデックスの集合である。
【０１４１】
例えば、スケーラブルDNNの事例だと以下のように実装すればいい。ここで、Iは単位行列である。
【０１４２】
【数４４】
2019198814.tif 000046
【０１４３】
図１に、１，２層目のモデル変数がモデル１，２，３において等価であるかまたは共通しており、３，４層目のモデル変数がモデル２，３において等価であるかまたは共通しているモデル１，２，３を生成する場合の~N(i,j)の設定の例を示す。φは空集合を意味する。図１では、モデル１は３個の層で構成されており、モデル２は５個の層で構成されており、モデル３は７個の層で構成されている。ｘは各モデルの入力であり、^S1,^S2,^S3はそれぞれモデル１，２，３からの出力である。
【０１４４】
ここで、等価とは、値にほとんど差がなく実質的に同一であることを意味する。また、共通とは、値が同一であることを意味する。すなわち、ある層のモデル変数が複数のモデルにおいて等価であるかまたは共通しているということは、ある層のモデル変数を複数のモデル間で共有していることを指す。
【０１４５】
こうした拘束条件付きの最適化問題を解くための方法として、ラグランジュ未定乗数法を用いることが多い。ラグランジュ関数は、以下のように書ける。
【０１４６】
【数４５】
2019198814.tif 000047
【０１４７】
このとき、問題は以下のように定義される。
【０１４８】
【数４６】
2019198814.tif 000048
【０１４９】
もし、コストEiが、凸関数であれば、この問題を解く手段はあるのであるが、Eiは非凸関数であるので、単純にこの問題を解くことができない。
【０１５０】
そこで、この問題に対して、「コストEiの代わりにその上界となるような代替凸関数を用いること」によって、拘束付の最適化問題を解くことにする。
【０１５１】
コストEiの代わりに用いる代替凸関数として、以下のGiを考える。x,yを任意のベクトルとして、<x,y>はxとyの内積を表す。
【０１５２】
【数４７】
2019198814.tif 000049
【０１５３】
Ei(wi,j,k(t))は、前回の更新時（時刻t）におけるコストなので定数である。∇Ei(wi,j,k(t))は、いくつかのサンプル群で構成されたミニバッチセットを用いて確率的に算定された一次勾配である。計算可能な量である。・を任意の数として、||・||pはL-pノルムを意味する。
【０１５４】
この代替凸関数Giを用いる理由は、２個ある。
【０１５５】
１個目の理由は、Giを主変数wiに関して微分すると、主変数wiに対する最適解が得られる。それが、従来法と同じように、逐次的に誤差関数の一次勾配を減算するやり方に対応するからである。すなわち、以下に示すように、凸関数Giに対する主変数wiの最適化は、従来法でやっていた逐次減算ステップと一致している。
【０１５６】
【数４８】
2019198814.tif 000050
【０１５７】
２個目の理由は、ηを十分に小さくすれば、Giが元のコストEiの上界関数になるので、Giを最小化することと元のコストを最小化することに矛盾が生じないためである。
【０１５８】
関数Eiの確率的勾配（より正確には、確率的な一次勾配）が、以下のようにリプシッツ連続であると仮定する。
【０１５９】
【数４９】
2019198814.tif 000051
【０１６０】
ηを十分小さい値にすれば、多くの場合で満たされる仮定である。上記の式を満たすとき、Eiは1/η平滑関数と呼ばれる。
【０１６１】
Eiが1/η平滑関数であるとき、以下の不等式関係が成り立つ。
【０１６２】
【数５０】
2019198814.tif 000052
【０１６３】
ここから以下の式を導くことができる。
【０１６４】
【数５１】
2019198814.tif 000053
【０１６５】
この式のイメージを図２に示す。図２において、実線は元々のコスト関数Eiを表す。図２では、コストEiを非凸関数として書いている。図２において、一点鎖線は、上界となる代理凸関数Giを表す。
【０１６６】
Eiが1/η平滑関数であるという仮定が成り立つのであれば、Giが元のコストEiの上界関数となる。だから、Giを最小するということとEiを最小化することに矛盾が生じないから、拘束付最適化で扱いやすい閉真凸関数であるGiを最小化することを選んだのである。
【０１６７】
提案法では、以下の問題を解くことを目指す。
【０１６８】
【数５２】
2019198814.tif 000054
【０１６９】
ここで、ラグランジュ関数は、以下の式で表される。
【０１７０】
【数５３】
2019198814.tif 000055
【０１７１】
このラグランジュ関数の式の右辺の第１項は、EiではなくGiで記述されている。
【０１７２】
この問題を解く方法は様々あるが、Primal Dual Method of Multiplier (PDMM)に基づく方法を提案する（例えば、参考非特許文献１−１参照。）。これにより、双対変数λに関して、強い拘束を付与している中で最適化するアルゴリズムであり、速い収束を見込むことができる。
（参考非特許文献１−１：T. Sherson, R. Heusdens, and W. B. Kleijn, “Derivation and Analysis of the Primal-Dual Method of Multipliers Based on Monotone Operator Theory”, arXiv:1706.02654.）
定義した問題の双対問題は、以下のように書くことができる。
【０１７３】
【数５４】
2019198814.tif 000056
【０１７４】
変数は、以下のように定義される。
【０１７５】
【数５５】
2019198814.tif 000057
【０１７６】
このため、解くべき双対問題は、以下のように書くことができる。
【０１７７】
【数５６】
2019198814.tif 000058
【０１７８】
この問題は、以下のようなコストを設計して解くことと等価である。
【０１７９】
【数５７】
2019198814.tif 000059
【０１８０】
この問題を解くために、双対変数の補助変数として双対補助変数を２種類導入する。yj,k,zj,kを２種類の双対補助変数とする。なお、双対補助変数yj,k,zj,kの基本的な性質は、双対変数λj,kと同じである。
【０１８１】
オペレータ分割法の１つであるP-R分割に基づいて、変数群(主変数、双対変数、双対補助変数)を最適化するステップは、以下のように書ける。
【０１８２】
【数５８】
2019198814.tif 000060
【０１８３】
上記の式において、「∈」の記号は、集合の要素を表すのではなく、右辺の演算結果を左辺に代入することを意味する。通常、こうした操作は「＝」を用いて表現することが多いが、コスト関数に不連続な閉真凸関数を用いた場合に、非可逆な変換が行われることがある（1対1対応しない演算をすることがあり得る）。「＝」は通常、1対1対応するような変換（関数）に用いられる記号であるため、それと区別するために「∈」の記号を用いることとする。
【０１８４】
ここで、Cn (n=1,2)は、ケーリー演算子(Cayley operator)である。
【０１８５】
【数５９】
2019198814.tif 000061
【０１８６】
Rn (n=1,2)は、リゾルヴェント演算子(Resolvent operator)である。
【０１８７】
【数６０】
2019198814.tif 000062
【０１８８】
Tn (n=1,2)は、モノトーン演算子(Monotone operator)である。問題を構成するG*及びδ(I-P)は真凸閉関数であるので、その双対変数に関する偏微分はモノトーン演算子になる。
【０１８９】
【数６１】
2019198814.tif 000063
【０１９０】
理論背景については詳細をここに記述しないが、P-R分割は高速な収束を保証する最適化方式である。P-R分割による最適化zj,k∈C2C1zj,kを分解表現すると以下のようになる。
【０１９１】
【数６２】
2019198814.tif 000064
【０１９２】
すなわち、λj,k,yj,k,zj,kは、以下のように表される。
【０１９３】
【数６３】
2019198814.tif 000065
【０１９４】
なお、２番目のケーリー演算子C2が順序入れ替え行列Pに対応するということについては、参考非特許文献１−１にその証明が掲載されている。一番上の双対変数をリゾルヴェント演算子を使った更新は、以下のように変形できる。以下の式において、３番目の式は、２番目の式を積分形に変形したものである。
【０１９５】
【数６４】
2019198814.tif 000066
【０１９６】
Gの共役凸関数
【０１９７】
【数６５】
2019198814.tif 000067
【０１９８】
において、wの最適解は、以下のように得られる。この最適解は、上記のGの共役凸関数G*のmaxの括弧の中の微分した式=0とすることにより得られるものである。
【０１９９】
【数６６】
2019198814.tif 000068
【０２００】
次に、P-R分割の一番上の演算
【０２０１】
【数６７】
2019198814.tif 000069
【０２０２】
を満たす双対変数の最適解を導く。
【０２０３】
【数６８】
2019198814.tif 000070
【０２０４】
モデルごとの更新になるように分解すると、次のようなアルゴリズムになる。
【０２０５】
(0) 初期化
【０２０６】
【数６９】
2019198814.tif 000071
【０２０７】
wi,j,k(0)は、オートエンコーダ等の適切な方法で初期化される。
【０２０８】
以下、T回更新するとして、t∈{0,…,T-1}に対して、以下の(1)から(4)の処理を行う。
【０２０９】
(1) 一次勾配を求める。Tは、更新の総回数であり、正の整数であるが、オンラインの学習を想定した場合には、定数ではない。
【０２１０】
【数７０】
2019198814.tif 000072
【０２１１】
一次勾配∇Ei(wi,j,k(0))は、例えば、誤差逆伝搬法、確率的勾配降下法、Adam or AdaGradを用いることにより計算することができる。
【０２１２】
(2) 双対変数更新
【０２１３】
【数７１】
2019198814.tif 000073
【０２１４】
(3) 主変数更新
【０２１５】
【数７２】
2019198814.tif 000074
【０２１６】
(4)補助変数更新
【０２１７】
【数７３】
2019198814.tif 000075
【０２１８】
なお、最後の(4)のステップについては、D-R分割ベースの更新でもいい。通常βは1/2が使われる。
【０２１９】
【数７４】
2019198814.tif 000076
【０２２０】
＜第１実施形態＞
《モデル生成装置及び方法》
以下、モデル生成装置及び方法の一実施形態について説明する。
【０２２１】
モデル生成装置は、図３に例示するように、初期化部１−３０１、制御部１−３０２、勾配計算部１−３０３、双対変数更新部１−３０４、主変数更新部１−３０５、補助変数更新部１−３０６及び記憶部１−３０７を例えば備えている。
【０２２２】
記憶部１−３０７には、以下に説明する処理及び計算に必要なデータが記憶されているとする。初期化部１−３０１、制御部１−３０２、勾配計算部１−３０３、双対変数更新部１−３０４、主変数更新部１−３０５、補助変数更新部１−３０６及び記憶部１−３０７は、記憶部１−３０７に対するデータの書き込みを適宜行いながら、以下に説明するステップＳ１からステップＳ８の処理を行う。
【０２２３】
モデル生成方法は、モデル生成装置の各部が、図４及び以下に説明するステップＳ１からステップＳ８の処理を行うことにより例えば実現される。
【０２２４】
∀i∈~I, ∀j∈~J(i),  ∀k∈~K(i,j), ∀n∈~N(i,j)に対して、初期化部１−３０１は、wi,j,k(0)を、オートエンコーダ等の適切な方法で初期化する。また、初期化部１−３０１は、zi|,j,k(0)を例えばzi|,j,k(0)=0とすることにより初期化する（ステップＳ１）。
【０２２５】
制御部１−３０２は、t=0とする（ステップＳ２）。
【０２２６】
∀i∈~I, ∀j∈~J(i), ∀k∈~K(i,j)に対して、勾配計算部１−３０３は、一次勾配∇Ei(wi,j,k(t))を計算する（ステップＳ３）。一次勾配∇Ei(wi,j,k(t))は、例えば、誤差逆伝搬法、確率的勾配降下法、Adam or AdaGradを用いることにより計算することができる。
【０２２７】
∀i∈~I, j∈~J(i), k∈~K(i,j), ∀n∈~N(i,j)に対して、双対変数更新部１−３０４は、以下の式により定義される双対変数λi|n,j,k(t+1)を計算する（ステップＳ４）。
【０２２８】
【数７５】
2019198814.tif 000077
【０２２９】
∀i∈~I, j∈~J(i), k∈~K(i,j)に対して、主変数更新部１−３０５は、以下の式により定義される主変数wi,j,k(t+1)を計算する（ステップＳ５）。
【０２３０】
【数７６】
2019198814.tif 000078
【０２３１】
∀i∈~I, j∈~J(i), k∈~K(i,j)に対して、補助変数更新部１−３０６は、以下の式により定義される双対補助変数yi|n,j,k(t+1),zi|n,j,k(t+1)を計算する（ステップＳ６）。
【０２３２】
【数７７】
2019198814.tif 000079
【０２３３】
制御部１−３０２は、t=t+1とする（ステップＳ７）。すなわち、制御部１−３０２は、tを１だけインクリメントする。
【０２３４】
制御部１−３０２は、t=Tであるか判定し（ステップＳ８）、t=Tであれば処理を終了する。t=Tでない場合には、ステップＳ３の処理に戻る。
【０２３５】
上記のモデル生成装置をまとめると、以下のように言うことができる。
【０２３６】
Iを所定の２以上の整数とし、i=1,…,Iとし、~I={1,…,I}とし、モデルiの層の数をJ(i)とし、j=1,…,J(i)とし、~J(i)={1,…,J(i)}とし、モデルiのj個目の層のノードの数をK(i,j)とし、~K(i,j)={k|1,…,K(i,j)}とし、~N(i,j)をモデルiのj個目の層と拘束関係のあるモデルのインデックスの集合とし、モデルiのj個目の層のノードkのt回目の更新後の主変数をwi,j,k(t)とし、モデルiのj個目の層のノードkの、モデルnのj個目の層のノードkに対するt回目の更新後の双対変数をλi|n,j,k(t)とし、λi|n,j,k(t)の双対補助変数をyi|n,j,k(t),zi|n,j,k(t)とし、Eiをモデルiのコスト関数とし、σ1を所定の正の数とし、ηを正の数とし、Ai|jは以下の式により定義されるとし、Iを単位行列とし、Oを零行列とし、Tを正の数として、
【０２３７】
【数７８】
2019198814.tif 000080
【０２３８】
モデル生成装置は、wi,j,k(0), zi|,j,k(0)を初期化する初期化部１−３０１と、t=0,…,T-1として、∀i∈~I, ∀j∈~J(i), ∀k∈~K(i,j)に対して、一次勾配∇Ei(wi,j,k(t))を計算する勾配計算部１−３０３と、t=0,…,T-1として、∀i∈~I, j∈~J(i), k∈~K(i,j), ∀n∈~N(i,j)に対して、以下の式により定義される双対変数λi|n,j,k(t+1)を計算する双対変数更新部１−３０４と、
【０２３９】
【数７９】
2019198814.tif 000081
【０２４０】
t=0,…,T-1として、∀i∈~I, j∈~J(i), k∈~K(i,j)に対して、以下の式により定義される主変数wi,j,k(t+1)を計算する主変数更新部１−３０５と、
【０２４１】
【数８０】
2019198814.tif 000082
【０２４２】
t=0,…,T-1として、∀i∈~I, j∈~J(i), k∈~K(i,j)に対して、以下の式により定義される双対補助変数yi|n,j,k(t+1),zi|n,j,k(t+1)を計算する補助変数更新部１−３０６と、を含んでいる。
【０２４３】
【数８１】
2019198814.tif 000083
【０２４４】
なお、初期化部１−３０１、制御部１−３０２、勾配計算部１−３０３、双対変数更新部１−３０４、主変数更新部１−３０５、補助変数更新部１−３０６及び記憶部１−３０７は、同一のコンピュータ上に実装される必要はなく、複数のコンピュータ上に実装されてもよい。この場合、異なる複数のコンピュータ上に実装された初期化部１−３０１、制御部１−３０２、勾配計算部１−３０３、双対変数更新部１−３０４、主変数更新部１−３０５、補助変数更新部１−３０６及び記憶部１−３０７は、適宜データを送受信して、上記の処理を行う。
【０２４５】
以下、モデル変数の一部又は全部が等価であるかまたは共通している層のことを「共有層」という。すなわち、「共有層」は、複数のモデル間でモデル変数の少なくとも一部を共有している層である。一方、モデル変数が等価でも共通でもない層を「非共有層」という。すなわち、「非共有層」は、複数のモデル間でモデル変数を共有していない層である。
【０２４６】
上記の実施形態では、補助変数更新部１−３０６は、zi|n,j,k(t+1)=yn|i,j,k(t+1)という処理、言い換えれば、モデルnのj個目の層のノードkの、モデルiのj個目の層のノードkに対するt+1回目の更新後の双対変数λn|i,j,k(t)の双対補助変数yn|i,j,k(t+1)を、モデルiのj個目の層のノードkの、モデルnのj個目の層のノードkに対するt+1回目の更新後の双対変数λi|n,j,k(t)の双対補助変数zi|n,j,k(t+1)とする処理を行っている。これにより、主変数更新部１−３０５が計算する複数のモデルの主変数（すなわちモデル変数）は同一の値に近づく。
【０２４７】
双対補助変数はモデル変数の更新処理における中間生成物であるので、双対補助変数をモデル変数の一部と捉えることもできる。すなわち、共有層は、複数のモデルの対応する層同士でモデル変数の一部又は全部を授受すること含んだモデル変数の更新処理を行う、ということができる。
《ニューラルネットワーク計算システム及び方法》
以下、ニューラルネットワーク計算システム及び方法の一実施形態について説明する。
【０２４８】
ニューラルネットワーク計算システムは、図５に示すように、複数のモデルの少なくとも１つに基づいてニューラルネットワークの計算を行うニューラルネットワーク計算装置１−４０を例えば備えている。図５の例では、ニューラルネットワーク計算システムは、１個のニューラルネットワーク計算装置１−４０を備えているが、後述するように、ニューラルネットワーク計算システムは、複数のニューラルネットワーク計算装置１−４０を備えていてもよい。
【０２４９】
ニューラルネットワーク計算方法は、ニューラルネットワーク計算装置１−４０が、複数のモデルの少なくとも１つに基づいてニューラルネットワークの計算を行うことにより実現される。
【０２５０】
ここで、複数のモデルの一部又は全部は、モデル変数の一部又は全部が等価であるかまたは共通している層を少なくとも１個含み、かつ、モデル変数が等価でも共通でもない層を少なくとも１個含んでいるとする。すなわち、複数の一部又は全部は、モデル変数の少なくとも一部を共有している層を少なくとも１個含み、かつ、モデル変数を共有していない層を少なくとも１個含んでいるとする。このような、複数のモデルの一部又は全部が少なくとも１個含む、モデル変数の一部又は全部が等価であるかまたは共通している層は、上記のモデル生成装置及び方法により生成することができる。
【０２５１】
また、モデル変数の一部又は全部が等価であるかまたは共通している少なくとも１個の層は、入力層、または、入力層を含む、連続する複数の層であってもよい。
【０２５２】
また、複数のモデルにおいて同じ１つの層が用いられてもよい。すなわち、複数のモデルにおいて層自体を共有してもよい。
【０２５３】
ニューラルネットワーク計算装置１−４０は、入力データxが入力される入力部１−４００と、モデル生成装置及び方法により生成された複数のモデルが記憶されている記憶部１−４０１と、入力部１−４００に入力された入力データx及び記憶部１−４０１から読み込んだ何れかのモデルに基づいてニューラルネットワークの計算を行う計算部１−４０２とを備えている。
【０２５４】
ここで、「ニューラルネットワークの計算」とは、複数のモデルの少なくとも１つの層について少なくとも出力を得ることである。例えば、ニューラルネットワークの計算は、複数のモデルの全ての層で学習済みのモデル変数を用いて、複数のモデルの少なくとも１つについて出力^Sを得ることである。また、例えば、ニューラルネットワークの計算は、オンライン学習、すなわち、複数のモデルの少なくとも１つの層で上記のモデル生成装置及び方法によりモデル変数を学習しながら、複数のモデルの少なくとも１つについて出力^Sを得ることである。なお、ニューラルネットワークの計算は、モデルの最終的な出力^Sではなく、モデルに含まれる少なくとも１つの層についての出力を得ることも含む。
【０２５５】
図６の例では、３個のモデルが存在しているとする。１個目のモデルは２個の層から構成されるニューラルネットワークの低計算モデルであり、２個目のモデルは５個の層から構成されるニューラルネットワークの中計算モデルであり、３個目のモデルは７個の層から構成されるニューラルネットワークの高計算モデルであるとする。また、１個目の層のモデル変数は全てのモデルで等価なものであり、２個目から４個目の層のモデル変数は２個目のモデルと３個目のモデルで等価なものであるとする。すなわち、複数のモデルで等価な層（図６の実線で囲んだ部分の層）のモデル変数を上記のモデル生成装置及び方法により生成しながらまたは生成しておき、各モデルに独立した層（図６の一点鎖線で囲んだ部分の層）のモデル変数をモデルごとに学習しながらまたは学習しておけば、図６の例の３個のモデルを構築することができる。言い換えると、図６の破線で囲んだ部分の層のモデル変数があれば、このようなモデルを構築することができる。
【０２５６】
また、図６の例では、ニューラルネットワーク計算システムは、情報携帯端末１−５０、サーバ１−５１及びサーバ１−５２を備えている。情報携帯端末１−５０、サーバ１−５１及びサーバ１−５２のそれぞれが、ニューラルネットワーク計算装置１−４０である。情報携帯端末１−５０、サーバ１−５１及びサーバ１−５２の計算能力については、情報携帯端末１−５０の計算能力＜サーバ１−５１の計算能力＜サーバ１−５２の計算能力の関係があるとする。
【０２５７】
情報携帯端末１−５０は、計算能力が低いので、低計算モデルに基づいて計算を行っている。サーバ１−５１は、計算能力が中程度であるので、中計算モデルに基づいて計算を行っている。これにより、低計算モデルで計算したときよりも精度の高い計算結果を得ることができる。サーバ１−５２は、計算能力が高いので、高計算モデルに基づいて計算を行っている。これにより、低計算モデル又は中計算モデルで計算したときよりも精度の高い計算結果を得ることができる。
【０２５８】
このように、複数のモデルの一部又は全部が、モデル変数の一部又は全部が等価であるかまたは共通している層を少なくとも１個含むようにすることで、ニューラルネットワーク計算装置の計算能力に応じた計算が可能なスケーラブルDNNを実現することができる。また、複数のモデルに含まれるモデル変数の一部又は全部が等価であるかまたは共通している層については、モデル変数を上記のモデル生成装置及び方法により生成しながら動作させるか、または、モデル変数を上記のモデル生成装置及び方法により事前に生成しておくことで、含まれる複数のモデルがより最適化されたスケーラブルDNNを実現することができる。
【０２５９】
このように、複数のモデルは、同じタスクのDNNであり、かつ、層の数が互いに異なるDNNであってもよい。
【０２６０】
なお、あるニューラルネットワーク計算装置があるモデルの何れかの層までの計算を行い、その計算結果を他のニューラルネットワーク計算装置に送信し、他のニューラルネットワーク計算装置は受信した計算結果を用いてその何れかの層以降の計算を行うことによりそのあるモデルの計算を行ってもよい。例えば、図６の例の３個のモデルに相当するニューラルネットワークは、図７の例のように、情報携帯端末１−５０は２個の層から構成される図６の例の１個目のモデルの計算を行うとともに、図６の例の全てのモデルで等価な１個目の層の計算結果をサーバ１−５１に送信し、サーバ１−５１は受信した１個目の層の計算結果を用いて図６の例の２個目のモデルの残りの４個の層の計算を行うとともに、図６の例の２個目のモデルと３個目のモデルで等価な４個目の層の計算結果をサーバ１−５２に送信し、サーバ１−５２は受信した４個目の層の計算結果を用いて図６の例の３個目のモデルの残りの３個の層の計算を行ってもよい。
【０２６１】
なお、図６の例のように入力層を含む１個または連続した複数の層のモデル変数について複数のモデルで等価なものとするのは必須ではなく、例えば図８のように入力層のモデル変数について複数のモデルで等価なものとしない構成としてもよい。
【０２６２】
また、図８に例示するように、複数のモデルの一部が、モデル変数の全部が共通している層を含んでいてもよい。図８の例では、１個目のモデルの２個目の層のモデル変数と、２個目のモデルの２個目の層のモデル変数とが共通している。
【０２６３】
また、図８に例示するように、複数のモデルの全部が、モデル変数の一部が共通している層を含んでいてもよい。図８の例では、全てのモデルの３個目の層のモデル変数の全部又は一部（ドットで塗りつぶされた部分）が共通している。
【０２６４】
なお、複数のモデルを関連したタスクであるものの互いに異なるタスクとしてもよい。例えば、上記複数のモデルの出力は、互いに異なってもよい。図９の例では、３個のモデルが存在し、１個目のモデル（真ん中のモデル）の出力は例えば入力された音声の認識結果のテキストである出力^S1であり、２個目のモデル（一番上のモデル）の出力は例えば入力された音声に対応する返答のテキストである出力^S2であり、３個目のモデル（一番下のモデル）に基づくニューラルネットワークの計算結果は入力された音声に対応したロボットの動きである出力^S3である。そして、図９の例では、複数のモデルは互いに異なるタスクであるものの「入力された音声の発話内容に関連した何らかの出力を得る」という関連したタスクに関するものであるので、全てのモデルにおいて１個目から３個目の層のモデル変数を等価なものとしている。このような構成とすれば、タスクが異なる複数のモデルであっても、モデル変数の一部又は全部が等価であるかまたは共通している層が含まれていれば、この層については、モデル変数を上記のモデル生成装置及び方法により生成しながら動作させるか、または、モデル変数を上記のモデル生成装置及び方法により事前に生成しておくことで、含まれる複数のモデルがより最適化されたマルチタスクDNNを実現することができる。
【０２６５】
また、図９の例の３個のモデルのモデル変数が等価な層については、図１０のように、その層のモデル変数を少なくとも何れか１つのモデルで計算して計算結果を別のモデルに送信し、別のモデルではその層のモデル変数を計算せずに受信したものを用いる構成としてもよい。
【０２６６】
従来は、このような複数の関連したタスクがあり、おそらく何からの情報のコネクションがあるような状況において、一部の層のモデル変数が等価であるかまたは共通しているモデルを生成することができなかった。
【０２６７】
しかし、上述のモデル生成装置及び方法により、このようなマルチタスクDNNを実現することができる。
【０２６８】
なお、図９では、音声処理を例に挙げているが、複数の関連したタスクがあり何からの情報のコネクションがあれば、画像処理等の他の処理にマルチタスクDNNを用いることができる。
《ニューラルネットワークシステム及び方法》
ニューラルネットワークシステムは、例えば、図１１に示すように、上記説明した、モデル生成装置、ニューラルネットワーク計算システムの少なくとも一方を含むシステムである。
【０２６９】
すなわち、ニューラルネットワークシステム及び方法は、複数のモデルを含む。そして、これらの複数のモデルのそれぞれは、複数の層を含むDNNであり、複数のモデルの一部又は全部は、モデル変数の一部又は全部が等価であるかまたは共通している層を少なくとも１個含み、かつ、モデル変数が等価でも共通でもない層を少なくとも１個含んでいる。言い換えると、これらの複数のモデルのそれぞれは、複数の層を含むDNNであり、複数のモデルの一部又は全部は、モデル変数の少なくとも一部を共有している層を少なくとも１個含み、かつ、モデル変数を共有していない層を少なくとも１個含んでいる。
《プログラム及び記録媒体》
ニューラルネットワークシステム、モデル生成装置又はニューラルネットワーク計算システムは、１つのコンピュータによって実現してもよい。この場合、モデル生成装置又はニューラルネットワーク計算システムが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、機械学習システムの処理がコンピュータ上で実現される。
【０２７０】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【０２７１】
また、各部の処理は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理の少なくとも一部をハードウェア的に実現することとしてもよい。
【０２７２】
以下、本発明の実施形態である第２実施形態及び第３実施形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【０２７３】
各実施形態の説明に先立って、この明細書における表記方法について説明する。
【０２７４】
_（アンダースコア）は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
【０２７５】
＜技術的背景＞
本願では、リゾルヴェント作用素やケーリー作用素を用いる代わりに、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いる。つまり、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づき、変数更新則を構成する。以下、詳細に説明する。
《1：ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の定義》
まず、ブレグマンダイバージェンスBについて説明する。ブレグマンダイバージェンスBは連続で微分可能な狭義凸関数Dを用いて以下のように定義される（以後、連続で微分可能な狭義凸関数のことを単に狭義凸関数という）。
【０２７６】
【数８２】
2019198814.tif 000084
【０２７７】
関数Dとして任意の狭義凸関数を用いることができる。なお、ユークリッド距離もブレグマンダイバージェンスの一種である。また、ブレグマンダイバージェンスBが関数Dを用いて定義されることを明示するために、ブレグマンダイバージェンスBDと書くこともある。
【０２７８】
狭義凸関数Dは、ある種の連続性を有する関数である。具体的には、狭義凸関数Dは、強凸(SC: strong convex)とリプシッツ平滑(LS: Lipschitz smooth)という性質を有する。これらの性質は以下のように表現できる。
（性質1）2次のテーラー展開を用いると、関数Dに対して、点wの周りにおいて以下の近似式が成り立つ。
【０２７９】
【数８３】
2019198814.tif 000085
【０２８０】
ここで、ヘシアン行列HD(w) (HD(w)∈Rm×m)は、正定値行列である。
【０２８１】
【数８４】
2019198814.tif 000086
【０２８２】
なお、行列A,Bに対して、次式は行列B-Aが正定値であることを表す。
【０２８３】
【数８５】
2019198814.tif 000087
【０２８４】
（性質2)関数DのLS（上界）とSC（下界）は、任意のベクトルh∈Rmを用いて、以下のように表現できる。
【０２８５】
【数８６】
2019198814.tif 000088
【０２８６】
ここで、ヘシアン行列KD, MD (KD∈Rm×m, MD∈Rm×m)は、正定値行列である。また、ヘシアン行列HD(w)との間に以下の関係が成り立つ。
【０２８７】
【数８７】
2019198814.tif 000089
【０２８８】
次に、ブレグマンダイバージェンスを用いて、リゾルヴェント作用素、ケーリー作用素を一般化する。一般化したリゾルヴェント作用素、ケーリー作用素をそれぞれブレグマンリゾルヴェント作用素、ブレグマンケーリー作用素という。なお、ブレグマンリゾルヴェント作用素については参考非特許文献２−２に記載がある。
（参考非特許文献２−２：H. H. Bauschke, J. M. Borwein, and P. L. Combettes, “Bregman Monotone Optimization Algorithms”, SIAM Journal on Control and Optimization, Vol.42, Issue 2, pp.596-636, 2003.）
ブレグマンリゾルヴェント作用素Rnとブレグマンケーリー作用素Cnは、次式で与えられる。
【０２８９】
【数８８】
2019198814.tif 000090
【０２９０】
なお、以下のように関数Dを二乗したL2ノルムを用いて定義すると、ブレグマンダイバージェンスBはユークリッド距離に対応し、ブレグマンリゾルヴェント作用素Rnとブレグマンケーリー作用素Cnはそれぞれリゾルヴェント作用素Ωn、ケーリー作用素Ψnに対応する。具体的に説明する。関数Dの劣微分は以下のようになる。
【０２９１】
【数８９】
2019198814.tif 000091
【０２９２】
関数Dの劣微分をブレグマンリゾルヴェント作用素Rnとブレグマンケーリー作用素Cnにそれぞれ代入すると、リゾルヴェント作用素Ωn、ケーリー作用素Ψnが得られる。
【０２９３】
【数９０】
2019198814.tif 000092
【０２９４】
《２：ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の収束率》
ここでは、ブレグマンリゾルヴェント作用素、ブレグマンケーリー作用素の収束率に関して、2つのケースについて説明する。
［ケース1］：関数G1は、狭義凸関数である、すなわち、強凸(SC)かつリプシッツ平滑(LS)である。
【０２９５】
このとき、先述した通り、以下の性質が成り立つ。
（性質1）2次のテーラー展開を用いると、関数G1に対して、点wの周りにおいて以下の近似式が成り立つ。
【０２９６】
【数９１】
2019198814.tif 000093
【０２９７】
（性質2)関数G1のLS（上界）とSC（下界）は、任意のベクトルh∈Rmを用いて、以下のように表現できる。
【０２９８】
【数９２】
2019198814.tif 000094
【０２９９】
ここで、ヘシアン行列HG_1(w), KG_1, MG_1は、以下の関係をもつ。
【０３００】
【数９３】
2019198814.tif 000095
【０３０１】
この2つの性質を用いて、以下の定理1と定理2が証明できる。
（定理1）関数G1がSCかつLSである場合、ブレグマンレゾルヴェント作用素R1は以下の収束率をもつ。
【０３０２】
【数９４】
2019198814.tif 000096
【０３０３】
式(4-8)に含まれる係数σmax,1, σmin,1は次式で与えられる。ここで、Λmaxは最大固有値、 Λminは最小固有値を表す。
【０３０４】
【数９５】
2019198814.tif 000097
【０３０５】
なお、狭義凸関数Dとして、以下の条件を満たすものを用いる。
【０３０６】
【数９６】
2019198814.tif 000098
【０３０７】
（定理2）関数G1がSCかつLSである場合、ブレグマンケーリー作用素C1は以下の収束率をもつ。
【０３０８】
【数９７】
2019198814.tif 000099
【０３０９】
式(4-12)に含まれる係数η1は次式で与えられる。
【０３１０】
【数９８】
2019198814.tif 000100
【０３１１】
係数σmax,1, σmin,1は式(4-9)、式(4-10)で与えられるものである。
［ケース2］：関数G1, G2は、いずれも狭義凸関数である、すなわち、いずれも強凸(SC)かつリプシッツ平滑(LS)である。
【０３１２】
関数G1については、式(4-5)〜(4-7)で表される性質1及び性質2が成り立つ。同様に、関数G2については、式(4-14)〜(4-16)で表される性質1及び性質2が成り立つ。
（性質1）2次のテーラー展開を用いると、関数G2に対して、点wの周りにおいて以下の近似式が成り立つ。
【０３１３】
【数９９】
2019198814.tif 000101
【０３１４】
（性質2)関数G2のLS（上界）とSC（下界）は、任意のベクトルh∈Rmを用いて、以下のように表現できる。
【０３１５】
【数１００】
2019198814.tif 000102
【０３１６】
ここで、ヘシアン行列HG_2(w), KG_2, MG_2は、以下の関係をもつ。
【０３１７】
【数１０１】
2019198814.tif 000103
【０３１８】
関数G1について成り立つ定理1、定理2と同様の定理が、関数G2についても成り立つ。
（定理3）関数G2がSCかつLSである場合、ブレグマンレゾルヴェント作用素R2は以下の収束率をもつ。
【０３１９】
【数１０２】
2019198814.tif 000104
【０３２０】
式(4-17)に含まれる係数σmax,2, σmin,2は次式で与えられる。
【０３２１】
【数１０３】
2019198814.tif 000105
【０３２２】
なお、狭義凸関数Dとして、以下の条件を満たすものを用いる。
【０３２３】
【数１０４】
2019198814.tif 000106
【０３２４】
（定理4）関数G2がSCかつLSである場合、ブレグマンケーリー作用素C2は以下の収束率をもつ。
【０３２５】
【数１０５】
2019198814.tif 000107
【０３２６】
式(4-20)に含まれる係数η2は次式で与えられる。
【０３２７】
【数１０６】
2019198814.tif 000108
【０３２８】
係数σmax,2, σmin,2は式(4-18)、式(4-19)で与えられるものである。
《３：一般化P-R型単調作用素分割、一般化D-R型単調作用素分割の変数更新則と収束率》
ブレグマンリゾルヴェント作用素、ブレグマンケーリー作用素を用いて、式(1-2)を変形することにより、P-R型の単調作用素分割とD-R型の単調作用素分割を導出する。ここで説明するP-R型の単調作用素分割とD-R型の単調作用素分割は、ブレグマンダイバージェンスを用いたP-R型の単調作用素分割、D-R型の単調作用素分割の一般化に相当する。以下、それぞれ一般化P-R型単調作用素分割、一般化D-R型単調作用素分割ということにする。
［一般化P-R型単調作用素分割］
式(1-2)を以下のように変形していく。
【０３２９】
【数１０７】
2019198814.tif 000109
【０３３０】
ここで、以下の関係を持つ、w(w∈Rm)の補助変数z(z∈Rm)を導入する。
【０３３１】
【数１０８】
2019198814.tif 000110
【０３３２】
変数zを用いてさらに変形していく。
【０３３３】
【数１０９】
2019198814.tif 000111
【０３３４】
これより、以下の通り、一般化P-R型単調作用素分割が得られる。
【０３３５】
【数１１０】
2019198814.tif 000112
【０３３６】
式(4-22)と式(3-1)から、式(3-1)のケーリー作用素をブレグマンケーリー作用素に置き換えたものが式(4-22)になっていることがわかる。
【０３３７】
一般化P-R型単調作用素分割の変数更新則は、w(∈Rm)の補助変数x, y, z(x∈Rm, y∈Rm, z∈Rm)を用いて式(4-22)を分解することにより得られる。
【０３３８】
【数１１１】
2019198814.tif 000113
【０３３９】
式(4-23)の演算を具体化する。つまり、以下のように変形する。
【０３４０】
【数１１２】
2019198814.tif 000114
【０３４１】
さらに積分形にすることにより、以下を得る。
【０３４２】
【数１１３】
2019198814.tif 000115
【０３４３】
式(4-25)の演算についても同様に具体化すると、以下が得られる。
【０３４４】
【数１１４】
2019198814.tif 000116
【０３４５】
次に、一般化P-R型単調作用素分割の収束率について説明する。ケース1、ケース2に場合分けして、収束率を導出する。まず、ケース1について説明する。ケース1については、ブレグマンケーリー作用素C1の非拡大性しか仮定できない（つまり、定理2は成り立つが、定理4は成り立たない）。したがって、式(4-23)〜(4-26)より、ztの収束率は以下の不等式で表される。
【０３４６】
【数１１５】
2019198814.tif 000117
【０３４７】
式(4-29)より、ztとzの停留点z*との誤差は以下のように評価できる。
【０３４８】
【数１１６】
2019198814.tif 000118
【０３４９】
同様に、zt+1とzの停留点z*との誤差は以下のように評価できる。
【０３５０】
【数１１７】
2019198814.tif 000119
【０３５１】
式(4-30)と式(4-31)より、以下の関係を得る。
【０３５２】
【数１１８】
2019198814.tif 000120
【０３５３】
よって、t回の更新を経たときの誤差（収束率）は以下で表される。
【０３５４】
【数１１９】
2019198814.tif 000121
【０３５５】
次に、ケース2について説明する。ケース2については、ブレグマンケーリー作用素C1,C2の非拡大性を担保できる（つまり、定理2、定理4のいずれも成り立つ）。したがって、式(4-23)〜(4-26)より、ztの収束率は以下の不等式で表される。
【０３５６】
【数１２０】
2019198814.tif 000122
【０３５７】
ケース1と同様にして、以下の関係を得る。
【０３５８】
【数１２１】
2019198814.tif 000123
【０３５９】
式(4-33)、式(4-36)からわかるように、ケース1、ケース2いずれの場合も、ηiを小さくすることができれば、収束率を高くすることができる。
［一般化D-R型単調作用素分割］
一般化D-R型単調作用素分割は式(4-22)に平均化作用素を加えることで得られる。
【０３６０】
【数１２２】
2019198814.tif 000124
【０３６１】
式(4-37)と式(3-2)から、式(3-2)のケーリー作用素をブレグマンケーリー作用素に置き換えたものが式(4-37)になっていることがわかる。
【０３６２】
一般化D-R型単調作用素分割の変数更新則は、w(∈Rm)の補助変数x, y, z(x∈Rm, y∈Rm, z∈Rm)を用いて式(4-37)を分解することにより得られる。
【０３６３】
【数１２３】
2019198814.tif 000125
【０３６４】
次に、一般化D-R型単調作用素分割の収束率について説明する。ケース1、ケース2に場合分けして、収束率を導出する。まず、ケース1について説明する。ケース1については、ブレグマンケーリー作用素C1の非拡大性しか仮定できない（つまり、定理2は成り立つが、定理4は成り立たない）。したがって、式(4-38)〜(4-41)より、ztの収束率は以下の不等式で表される。
【０３６５】
【数１２４】
2019198814.tif 000126
【０３６６】
よって、t回の更新を経たときの誤差（収束率）は以下で表される。
【０３６７】
【数１２５】
2019198814.tif 000127
【０３６８】
次に、ケース2について説明する。ケース2については、ブレグマンケーリー作用素C1,C2の非拡大性を担保できる（つまり、定理2、定理4のいずれも成り立つ）。したがって、式(4-38)〜(4-41)より、ztの収束率は以下の不等式で表される。
【０３６９】
【数１２６】
2019198814.tif 000128
【０３７０】
式(4-43)及び式(4-45)からわかるように、ケース1、ケース2いずれの場合も、ηiを小さくすることができれば、αを1に近づけていくことにより、収束率を高くすることができる。なお、αを1に近づけていくということは、一般化D-R型単調作用素分割を一般化P-R型単調作用素分割に近づけていくことを意味する。
《４：高収束率を得るためのブレグマンダイバージェンス設計》
一般化P-R型単調作用素分割や一般化D-R型単調作用素分割による変数更新則を用いることにより、最適解を求めることができる。ここでは、より高速に最適解を求めることができるような、ブレグマンダイバージェンスの設計（関数Dの設計）について説明する。具体的には、2つの設計方法について説明する。
【０３７１】
まず、これまでの議論で得られた結果についてまとめる。ケース1、ケース2いずれの場合も、式(4-13)で与えられるη1、式(4-21)で与えられるη2を0に近づけることにより、一般化P-R型単調作用素分割の変数更新則、一般化D-R型単調作用素分割の変数更新則いずれであっても高い収束率で最適解に収束する。
【０３７２】
【数１２７】
2019198814.tif 000129
【０３７３】
このηiを0に近づけることは、式(4-9)、式(4-10)、式(4-18)、式(4-19)で与えられる固有値σmax,i, σmin,iを1に近づけることで実現できる。最大固有値σmax,i、最小固有値σmin,iとも1に近づけることは、固有値分布が平滑になることに対応する。
【０３７４】
【数１２８】
2019198814.tif 000130
【０３７５】
固有値を1に近づけるためには、関数Dのヘシアン行列HDの逆行列が関数Giのヘシアン行列HG_iの逆行列となるように設計するとよい。
【０３７６】
【数１２９】
2019198814.tif 000131
【０３７７】
関数Giは式(4-5)、式(4-14)の近似式により表現されることから、関数Dを次式のような2次式で表現し、ヘシアン行列HDを適切に設計することで、式(4-47)を実現できる。
【０３７８】
【数１３０】
2019198814.tif 000132
【０３７９】
式(4-48)をブレグマンダイバージェンスの定義式である式(4-1)に代入すると以下を得る。
【０３８０】
【数１３１】
2019198814.tif 000133
【０３８１】
［ニュートン法に従うブレグマンダイバージェンス設計］
式(4-49)に従いブレグマンダイバージェンスを設計する際、式(4-47)を最も忠実に満たすようにするには、ヘシアン行列HDを式(4-50)に従うように設計するとよい。なお、この設計は、二次収束性の最適化法としてよく知られているニュートン法に通じるものである。式(4-50)の代わりに、BFGS法などのヘシアン行列の近似計算法を用いてもよい。
【０３８２】
【数１３２】
2019198814.tif 000134
【０３８３】
なお、実数ε>0は学習のステップサイズを決めるパラメータに相当し、ヘシアン行列HD(2GD)の固有値が0より大きく1以下に収まるように選ぶ必要がある。
【０３８４】
また、式(4-50)では、(case2)において相加平均を用いたが、相加平均の代わりに、相乗平均を用いてもよい。
【０３８５】
【数１３３】
2019198814.tif 000135
【０３８６】
式(4-50)（式(4-50’)）は、ケース1、ケース2に分けてヘシアン行列HDを設計していることを示している。ケース2の場合、関数G1、G2の双方に対して、式(4-47)を満たすようにすることが理想的であるが、実際、このことを担保するのは難しい。そこで、ケース2について、式(4-50)（式(4-50’)）のように設計することにした。この設計が好ましい理由は、ヘシアン行列に関して、以下の数学的性質が成り立つためである。具体的に説明する。まず、ヘシアン行列HDの逆行列を計算する。
【０３８７】
【数１３４】
2019198814.tif 000136
【０３８８】
ここで、式(4-47)式のようにHD-1とHG_iを掛け合わせると、以下のようになる。
【０３８９】
【数１３５】
2019198814.tif 000137
【０３９０】
これらの2つの式は、HG_1とHG_2が近いほど、式(4-47)を満たすようになることを示している。
［加速勾配法に従うブレグマンダイバージェンス設計］
ニュートン法に従うブレグマンダイバージェンス設計を用いた場合、実際の変数更新則では、ヘシアン行列HDの逆行列を計算する必要があるが、この計算には非常に大きなコストがかかる。この計算コストの問題を克服するために、式(4-47)の再現性を多少犠牲にして、ヘシアン行列HDの逆行列の計算コストを下げることにする。このような設計として、加速勾配法に従うブレグマンダイバージェンス設計を説明する。この設計は簡単に説明すると、ヘシアン行列HDを対角行列に制約したうえで、式(4-47)をできるだけ満たすようにヘシアン行列HDを設計するものである。なお、この設計は、超一次収束として知られている加速勾配法に通じるものである。
【０３９１】
加速勾配法を実現するための方法は様々提案されている。例えば、モメンタム法、AdaGrad法、Adam法、RMSProp法などがある。ここでは、RMSProp法を用いた設計について説明する。
【０３９２】
【数１３６】
2019198814.tif 000138
【０３９３】
なお、実数ε>0は学習のステップサイズを決めるパラメータに相当し、ヘシアン行列HD(AGD)の固有値が0より大きく1以下に収まるように選ぶ必要がある。
【０３９４】
また、式(4-51)では、(case2)において相加平均を用いたが、相加平均の代わりに、相乗平均を用いてもよい。
【０３９５】
【数１３７】
2019198814.tif 000139
【０３９６】
また、LG_1とLG_2は基本的には対角行列となることを想定された行列であり、RMSProp法では以下のように設計する。
【０３９７】
【数１３８】
2019198814.tif 000140
【０３９８】
ただし、ヘシアン行列HDの逆行列の計算コストを多少犠牲にしてもよい場合、LG_1, LG_2は必ずしも対角行列である必要はない。非対角成分も用いる場合のRMSProp法では以下のように設計する。
【０３９９】
【数１３９】
2019198814.tif 000141
【０４００】
《５：エッジコンピューティングにおける合意形成問題への適用》
ここでは、エッジコンピューティングにおける合意形成問題を例として、ブレグマンダイバージェンスを用いて一般化された単調作用素分割を用いた再帰的な変数更新則である変数更新アルゴリズムについて説明する。
【０４０１】
式(3-3)〜式(3-6)に対応する再帰的な変数更新則は以下のようになる。
【０４０２】
【数１４０】
2019198814.tif 000142
【０４０３】
式(4-54)が一般化P-R型単調作用素分割に、式(4-55)が一般化D-R型単調作用素分割に対応する。
【０４０４】
なお、変数更新則の導出に際して、ブレグマンケーリー作用素C2が以下の式を満たすことを用いた。その証明については省略するが、非特許文献２に示された証明戦略をブレグマンケーリー作用素に適用すれば得られる結果である。
【０４０５】
【数１４１】
2019198814.tif 000143
【０４０６】
また、式(4-48)を用いる際の関数Dの劣微分とその逆作用素は以下のようになる。
【０４０７】
【数１４２】
2019198814.tif 000144
【０４０８】
ここで、ヘシアン行列HD(z)とその逆行列HD-1(z)は、いずれも以下のようなブロック対角化行列となる。
【０４０９】
【数１４３】
2019198814.tif 000145
【０４１０】
以下、式(4-52)〜式(4-55)の再帰的な変数更新則をノードごとに非同期で変数を更新できるようにしたアルゴリズムについて説明する。式(4-52)には潜在変数pと双対変数wの更新が含まれており、潜在変数pと双対変数wの取り扱いに関して以下説明する2つの方法が考えられる。
［方法1］
この方法は、従来法と同様、罰則項を用いてpの最適化を行った後、wの最適化を行う。
【０４１１】
まず、罰則項を用いて、pの最適化を行う。
【０４１２】
【数１４４】
2019198814.tif 000146
【０４１３】
次にwの最適化を行う。
【０４１４】
【数１４５】
2019198814.tif 000147
【０４１５】
式(4-61’)の結果を式(4-53)に代入すると、以下の双対変数λの更新則を得る。
【０４１６】
【数１４６】
2019198814.tif 000148
【０４１７】
この式は双対変数wを用いなくても双対変数λが得られることを示している。
【０４１８】
式(4-52)〜(4-55)の変数更新則を具体的に表わすと以下のようになる。
【０４１９】
【数１４７】
2019198814.tif 000149
【０４２０】
なお、式(4-54)、式(4-55)については、式(4-63)、式(4-64)、式(4-65)に分けた。これは、ノードごとに非同期で変数を更新できるようにするためである。
【０４２１】
この更新則をノードごとに変数を更新できるようにすると、図１５に示すアルゴリズムが得られる。なお、このアルゴリズムにおけるヘシアン行列HDは、式(4-50)や式(4-51)を用いて設計するのが好ましい。
［方法2］
この方法は、双対変数wの更新を行い、必要に応じて潜在変数pの更新を行う。
【０４２２】
式(4-52)を解くため、pをwの関数として表現して最適化する。2次のテーラー展開を用いて、関数F1を以下のように近似表現する。
【０４２３】
【数１４８】
2019198814.tif 000150
【０４２４】
これを関数F1*に代入すると、以下のようにpをwの関数とした場合の最適値p(w)が得られる。
【０４２５】
【数１４９】
2019198814.tif 000151
【０４２６】
右辺の括弧内をpに関して微分し、それが0となる点（つまり、最適点）を探すと、以下のようになる。
【０４２７】
【数１５０】
2019198814.tif 000152
【０４２８】
これを式(4-52)に代入すると、wの更新式を得る。
【０４２９】
【数１５１】
2019198814.tif 000153
【０４３０】
右辺の括弧内をwに関して微分し、それが0となる点（つまり、最適点）を探すと、以下のようになる。
【０４３１】
【数１５２】
2019198814.tif 000154
【０４３２】
式(4-66)より、pはwの関数として表現されているので、pの更新式は以下のようになる。
【０４３３】
【数１５３】
2019198814.tif 000155
【０４３４】
式(4-53)に式(4-67)を代入することにより、以下の更新式を得る。
【０４３５】
【数１５４】
2019198814.tif 000156
【０４３６】
式(4-68)、式(4-69)、式(4-54)、式(4-55)より変数更新則を具体的に表わすと以下のようになる。
【０４３７】
【数１５５】
2019198814.tif 000157
【０４３８】
この更新則をノードごとに変数を更新できるようにすると、図１６に示すアルゴリズムが得られる。なお、このアルゴリズムにおけるヘシアン行列HDは、式(4-50)や式(4-51)を用いて設計するのが好ましい。
【０４３９】
図１５のアルゴリズムと図１６のアルゴリズムを比較すると、ノード間で交換される変数に違いがある。つまり、図１５のアルゴリズムでは、潜在変数と双対変数の変形を交換しているのに対して、図１６のアルゴリズムでは双対変数の変形のみ交換している。双対変数の変形のみ交換すればよくなったことにより、図１６のアルゴリズムの方が情報の秘匿化/暗号化という点において図１５のアルゴリズムよりも優れていると言える。
《６：実験及びその結果》
以上説明した変数更新則の効果について確認するため、収束率に関する実験を行った。実験では、図１７のような2種類のグラフ構成をもった分散計算器（エッジコンピューティングシステム）を用いた。分散計算器の各ノードにはランダムに生成した異なるデータセットを配置し、潜在変数の収束率を計測した。
【０４４０】
コスト関数F1には、以下のものを用いた。
【０４４１】
【数１５６】
2019198814.tif 000158
【０４４２】
ここで、vi,uとsi,uはノードiにおける入力データと教師データの組、piはノードiにおける潜在変数である。
【０４４３】
また、潜在変数の誤差を測定する尺度には以下のものを用いた。
【０４４４】
【数１５７】
2019198814.tif 000159
【０４４５】
ここで、p*は潜在変数pの最適値、pitはt回の更新で得られたノードiにおける潜在変数の値、m=p’Vである。
【０４４６】
図１８に実験結果を示す。B-MOS(GD)は従来の方法（図１４のアルゴリズム）、B-MOS(AGD)は加速勾配法(AGD)によりヘシアン行列を設計した場合の本願の方法（図１６のアルゴリズム）、B-MOS(2GD)はニュートン法によりヘシアン行列を設計した場合の本願の方法（図１６のアルゴリズム）を示す。なお、D-ADMMはB-MOS(GD)とは異なる別の従来の方法を示す。この図からわかるように、いずれのグラフ構造においても、本願の方法の方が、従来の方法と比較して収束率が高くなる。特に、ニュートン法に従ってヘシアン行列を設計した場合に、最も高い収束率が得られる。
《７：微分を用いた表現》
《1：ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の定義》の冒頭部において、関数Dは微分可能な狭義凸関数であると仮定したことから、関数Dの劣微分を関数Dの微分としても《1：ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の定義》から《５：エッジコンピューティングにおける合意形成問題への適用》までの議論は成り立つ。具体的には、《1：ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の定義》から《５：エッジコンピューティングにおける合意形成問題への適用》までの説明における“関数Dの劣微分”との記載を“関数Dの微分”とした説明が成り立つ。以下、主たる式に関して劣微分を微分で置き換えた式を示す。
【０４４７】
関数Dの微分を用いた場合、ブレグマンダイバージェンスBは、以下のように定義される。
【０４４８】
【数１５８】
2019198814.tif 000160
【０４４９】
ここで、∇は関数を微分する演算を表す。
【０４５０】
また、狭義凸関数Dの（性質1）、（性質2）は、以下のように表現できる。
（性質1）2次のテーラー展開を用いると、関数Dに対して、点wの周りにおいて以下の近似式が成り立つ。
【０４５１】
【数１５９】
2019198814.tif 000161
【０４５２】
（性質2)関数DのLS（上界）とSC（下界）は、任意のベクトルh∈Rmを用いて、以下のように表現できる。
【０４５３】
【数１６０】
2019198814.tif 000162
【０４５４】
ブレグマンリゾルヴェント作用素Rnとブレグマンケーリー作用素Cnは、次式で与えられる。
【０４５５】
【数１６１】
2019198814.tif 000163
【０４５６】
関数DをL2ノルムの二乗を用いて定義する場合、関数Dと関数Dの微分は以下のようになる。
【０４５７】
【数１６２】
2019198814.tif 000164
【０４５８】
この場合、ブレグマンリゾルヴェント作用素Rnとブレグマンケーリー作用素Cnは、劣微分を用いた場合と同様、リゾルヴェント作用素Ωn、ケーリー作用素Ψnとなる。
【０４５９】
【数１６３】
2019198814.tif 000165
【０４６０】
一般化P-R型単調作用素分割は、劣微分の場合と同様、次式のようになる。
【０４６１】
【数１６４】
2019198814.tif 000166
【０４６２】
そして、一般化P-R型単調作用素分割の変数更新則は、w(∈Rm)の補助変数x, y, z(x∈Rm, y∈Rm, z∈Rm)を用いて式(4-22)*を分解することにより得られる。
【０４６３】
【数１６５】
2019198814.tif 000167
【０４６４】
また、式(4-23)*を変形すると、次式が得られる。
【０４６５】
【数１６６】
2019198814.tif 000168
【０４６６】
式(4-25)*も同様に変形すると、次式が得られる。
【０４６７】
【数１６７】
2019198814.tif 000169
【０４６８】
一般化D-R型単調作用素分割も、劣微分の場合と同様、次式のようになる。
【０４６９】
【数１６８】
2019198814.tif 000170
【０４７０】
そして、一般化D-R型単調作用素分割の変数更新則は、w(∈Rm)の補助変数x, y, z(x∈Rm, y∈Rm, z∈Rm)を用いて式(4-37)*を分解することにより得られる。
【０４７１】
【数１６９】
2019198814.tif 000171
【０４７２】
劣微分の場合と同様、関数Dを式(4-48)の2次式で表現し、ブレグマンダイバージェンスの定義式である式(4-1)*に代入することにより、以下を得る。
【０４７３】
【数１７０】
2019198814.tif 000172
【０４７４】
ただし、式(4-48)における関数Dの更新は、毎ステップ行われるわけではない。具体的には、関数Dが強凸性であることを満たすため、以下の式で表される条件を満たす場合に限り、任意のタイミングで関数Dの微分∇Dの更新が行われる。したがって、当該条件が満たされない場合には、関数Dの微分∇Dの更新は行わない。
【０４７５】
【数１７１】
2019198814.tif 000173
【０４７６】
エッジコンピューティングにおける合意形成問題へ適用した場合における、式(3-3)〜式(3-6)に対応する再帰的な変数更新則は以下のようになる。
【０４７７】
【数１７２】
2019198814.tif 000174
【０４７８】
なお、変数更新則の導出に際して、ブレグマンケーリー作用素C2が以下の式を満たすことを用いた。
【０４７９】
【数１７３】
2019198814.tif 000175
【０４８０】
また、式(4-48)を用いる際の関数Dの微分とその逆作用素は以下のようになる。
【０４８１】
【数１７４】
2019198814.tif 000176
【０４８２】
《８：高次凸性を用いたブレグマンダイバージェンス設計》
《４：高収束率を得るためのブレグマンダイバージェンス設計》で説明した２つのブレグマンダイバージェンス設計手法では、ブレグマンダイバージェンスの計量を決める関数Dを２次式に限定したときにどのように設計すればよいのかについて論じた。ここでは、２次以上の高次凸性を用いて、更なる高速収束を可能にする関数Dの設計について説明する。なお、以下では関数Dの微分∇Dの設計について説明するが、変数更新の際に使用するのは∇Dであるので、∇Dの設計に関して説明しても一般性を失うことはない。
【０４８３】
式(4-48)及び式(4-49)*において暗に仮定されていたことであるが、関数Dの設計により停留点を変更しないようにするために、関数Dは∇D(0)=0を満たすこと、かつ、関数Dは微分可能な狭義凸関数であることの２点に着目する。関数Giは微分可能であると仮定する。つまり、関数Giの微分∇Giは存在するものと仮定する。なお、関数Giそのものが微分可能でなくても、例えば平滑化などの処理により関数Giを微分可能な関数とすることができるため、関数Giは微分可能であると仮定しても問題ない。
【０４８４】
このとき、次式で表される条件のもと、∇Dを更新することにより、関数Giが２次以上の凸性を含む場合に高速収束が見込める。
【０４８５】
【数１７５】
2019198814.tif 000177
【０４８６】
ただし、∇Dの更新は、関数Dが強凸性であることを満たすため、以下の式で表される条件を満たす場合に限り、任意のタイミングで行われる。したがって、当該条件が満たされない場合には、∇Dの更新は行わない。
【０４８７】
【数１７６】
2019198814.tif 000178
【０４８８】
実用上、複数の高次（３次以上）の凸性の和として関数Giを表現する場合（例えば、高次のテーラー展開を用いて関数Giを狭義凸関数として表現する場合）には、解析的にwの最適解を得ることが難しいことが多い。このような場合には、和を用いる代わりに、単一の高次項のみを用いて関数Dを表現するのが一つの有用な実装法となる。この場合、次式により関数Dを表現すればよい。
【０４８９】
【数１７７】
2019198814.tif 000179
【０４９０】
＜第２実施形態＞
以下、図１９〜図２０を参照して潜在変数学習装置２−１００を説明する。図１９は、潜在変数学習装置２−１００の構成を示すブロック図である。図２０は、潜在変数学習装置２−１００の動作を示すフローチャートである。図１９に示すように潜在変数学習装置２−１００は、モデル学習部２−１２０と、記録部２−１９０を含む。
【０４９１】
潜在変数学習装置２−１００は、学習データを用いて、機械学習の対象となるモデルの潜在変数w∈Rm（mは1以上の整数）を学習する。ここで、モデルとは、入力データを入力とし、出力データを出力とする関数のことであり、学習データとは、モデルの潜在変数の学習に用いる入力データ、または、モデルの潜在変数の学習に用いる入力データと出力データの組のことをいう。なお、入力データと出力データの組を学習データとする場合、出力データのことを教師データということもある。
【０４９２】
図２０に従い潜在変数学習装置２−１００の動作について説明する。
【０４９３】
Ｓ１２０において、モデル学習部２−１２０は、学習データを用いて、所定の手順により潜在変数wを学習する。以下、その手順について、具体的に説明する。
（手順１）
ここでは、ブレグマンダイバージェンスを用いた学習手順について説明する。
【０４９４】
まず、モデル学習部２−１２０は、学習データを用いて、潜在変数wを学習する際に用いるセットアップデータを計算する。例えば、学習データを用いて計算される、潜在変数wを最適化するためのコスト関数G(w):Rm→R（ただし、G(w)=ΣiGi(w)、関数Gi(w)（Nを2以上の整数とし、iは1≦i≦Nを満たす整数とする（つまり、iはインデックスである））は閉真凸関数）がその一例である。
【０４９５】
次に、関数D（ただし、D:Rm→Rは狭義凸関数）を用いて定義されるブレグマンダイバージェンスBD(w1||w2)=D(w1)-D(w2)-<∂D(w2),w1- w2>（w1, w2∈Rm）を用いて、モデル学習部２−１２０は、コスト関数G(w)を最小化するwの停留点w*∈RmとのブレグマンダイバージェンスBD（BD(w||w*)またはBD(w*||w)）が0に近づくように、潜在変数wを学習する。なお、関数Dは、任意に設計可能な狭義凸関数である。また、停留点w*のことを不動点w*ともいう。
（手順２）
ここでは、＜技術的背景＞で説明したように、単調作用素分割を用いて構成される潜在変数の更新規則を用いた学習手順について説明する。＜技術的背景＞では、N=2の場合について詳細に説明したが、単調作用素分割を用いて潜在変数の更新規則を構成できる任意のNについて、以下説明するような学習手順を構成することができる。例えば、N=3の場合についても、N=2の場合と同様、単調作用素分割の変形が可能であることが数学的に証明できるので、同様の学習手順を構成することができる。
【０４９６】
まず、モデル学習部２−１２０は、学習データを用いて、潜在変数wを学習する際に用いるセットアップデータを計算する。例えば、上述のコスト関数G(w)の他、関数Dと関数Giを用いて定義されるブレグマンリゾルヴェント作用素Ri(1≦i≦N)、ブレグマンリゾルヴェント作用素Riを用いて定義されるブレグマンケーリー作用素Ci(1≦i≦N)をセットアップデータとして計算する。
【０４９７】
次に、ブレグマンリゾルヴェント作用素Ri(1≦i≦N)とブレグマンケーリー作用素Ci(1≦i≦N)を用いて、潜在変数wの値を再帰的に計算する。具体的には、更新回数のカウントに用いる変数（以下、カウンタともいう）をtとし、モデル学習部２−１２０は、ブレグマンリゾルヴェント作用素Ri(1≦i≦N)とブレグマンケーリー作用素Ci(1≦i≦N)を用いて、潜在変数wのt+1回目の更新結果であるwt+1を再帰的に計算する。
【０４９８】
なお、カウンタtは、0以上の整数値をとることになる。
【０４９９】
N=2の場合における、一般化P-R型単調作用素分割及び一般化D-R型単調作用素分割を用いて構成される潜在変数の更新規則を用いた学習手順を実行するモデル学習部２−１２０について説明する。以下、図２１〜図２２を参照してモデル学習部２−１２０について説明する。図２１は、モデル学習部２−１２０の構成を示すブロック図である。図２２は、モデル学習部２−１２０の動作を示すフローチャートである。図２１に示すようにモデル学習部２−１２０は、初期化部２−１２１と、潜在変数計算部２−１２２と、第１補助変数計算部２−１２３と、第２補助変数計算部２−１２４と、第３補助変数計算部２−１２５と、カウンタ更新部２−１２６と、終了条件判定部２−１２７を含む。
【０５００】
図２２に従いモデル学習部２−１２０の動作について説明する。ここでは、潜在変数wの補助変数x, y, z∈Rmを用いる。
【０５０１】
Ｓ１２１において、初期化部２−１２１は、カウンタtを初期化する。具体的には、t=0とする。また、初期化部２−１２１は、セットアップデータを計算する。
【０５０２】
Ｓ１２２において、潜在変数計算部２−１２２は、式(5-1)により、補助変数zのt回目の更新結果であるztから潜在変数wのt+1回目の更新結果であるwt+1を計算する。
【０５０３】
Ｓ１２３において、第１補助変数計算部２−１２３は、式(5-2)により、Ｓ１２２で用いたztとＳ１２２で計算したwt+1から補助変数xのt+1回目の更新結果であるxt+1を計算する。
【０５０４】
Ｓ１２４において、第２補助変数計算部２−１２４は、式(5-3)により、Ｓ１２３で計算したxt+1から補助変数yのt+1回目の更新結果であるyt+1を計算する。
【０５０５】
Ｓ１２５において、第３補助変数計算部２−１２５は、補助変数zのt+1回目の更新結果であるzt+1を計算する。具体的に説明する。一般化P-R型単調作用素分割を用いる場合、第３補助変数計算部２−１２５は、式(5-4)により、Ｓ１２３で計算したxt+1とＳ１２４で計算したyt+1から補助変数zのt+1回目の更新結果であるzt+1を計算する。また、一般化D-R型単調作用素分割を用いる場合、第３補助変数計算部２−１２５は、式(5-5)により、Ｓ１２２で用いたztとＳ１２３で計算したxt+1とＳ１２４で計算したyt+1から補助変数zのt+1回目の更新結果であるzt+1を計算する（ただし、αは0<α<1を満たす実数である）。
【０５０６】
Ｓ１２６において、カウンタ更新部２−１２６は、カウンタtを1だけインクリメントする。具体的には、t←t+1とする。
【０５０７】
Ｓ１２７において、終了条件判定部２−１２７は、カウンタtが所定の更新回数τ（τは1以上の整数とする）に達した場合（つまり、t=τとなり、終了条件が満たされた場合）は、そのときの潜在変数wの値wτを出力して、処理を終了する。それ以外の場合、Ｓ１２２の処理に戻る。つまり、モデル学習部２−１２０は、Ｓ１２２〜Ｓ１２５の計算を繰り返す。なお、Ｓ１２５で計算したzt+1は、次の繰り返し計算におけるＳ１２２とＳ１２３で用いられる。
【０５０８】
【数１７８】
2019198814.tif 000180
【０５０９】
《高収束率を実現するための関数Dの条件》
コスト関数G(w)を最小化するwの停留点w*への収束率を高くするためには、関数Dを以下の条件を満たす関数にすればよい。
（条件）関数Dは、そのヘシアン行列が関数Gi(w)のヘシアン行列の逆行列に近くなるような関数である。
【０５１０】
なお、上記条件は、“関数Dは、そのヘシアン行列の逆行列と関数Gi(w)のヘシアン行列の積が単位行列に近くなるような関数である”ということもできる。
【０５１１】
N=2の場合、＜技術的背景＞で説明したように、ニュートン法や加速勾配法に従って、関数Dのヘシアン行列を以下のように計算すればよい。
［ケース1］：関数G1は、狭義凸関数である、すなわち、強凸(SC)かつリプシッツ平滑(LS)である場合。
【０５１２】
【数１７９】
2019198814.tif 000181
【０５１３】
（ただし、ε>0は実数）
なお、実数εは、ヘシアン行列HDの固有値が0より大きく1以下に収まるように選ばれる。
［ケース2］：関数G1, G2は、いずれも狭義凸関数である、すなわち、いずれも強凸(SC)かつリプシッツ平滑(LS)である場合。
【０５１４】
【数１８０】
2019198814.tif 000182
【０５１５】
（ただし、ε>0は実数）
なお、実数εは、ヘシアン行列HDの固有値が0より大きく1以下に収まるように選ばれる。
【０５１６】
式(5-6)及び式(5-8)がニュートン法に従った場合であり、式(5-7)及び式(5-9)が加速勾配法に従った場合である。なお、行列LG_1, LG_2は式(5-10)及び式(5-11)により与えられる行列である。
【０５１７】
【数１８１】
2019198814.tif 000183
【０５１８】
または、行列LG_1, LG_2は式(5-12)及び式(5-13)により与えられる行列である。
【０５１９】
【数１８２】
2019198814.tif 000184
【０５２０】
式(5-10)及び式(5-12)の行列LG_1は、関数G1(w)の勾配を用いて計算される行列である。また、式(5-11)及び式(5-13)の行列LG_2は、関数G2(w)の勾配を用いて計算される行列である。
【０５２１】
なお、［ケース2］における式(5-8)及び式(5-9)の代わりに、次式のような相乗平均を用いてもよい。
【０５２２】
【数１８３】
2019198814.tif 000185
【０５２３】
なお、先のケース1やケース2の説明では、関数G1(w)や関数G2(w)は狭義凸関数であるとしたが、必ずしも数学的に厳密に狭義凸関数である必要はない。つまり、関数G1(w)や関数G2(w)を狭義凸関数であるとみなして扱ってよい場合についても、式(5-6)〜式(5-9)により関数Dのヘシアン行列を計算することができる。より詳しく言えば、次のようになる。
［ケース1］：関数G1が、狭義凸関数である（強凸(SC)かつリプシッツ平滑(LS)である）、または、狭義凸関数である（強凸(SC)かつリプシッツ平滑(LS)である）と仮定できる場合。
【０５２４】
この場合は、式(5-6)や式(5-7)により、関数Dのヘシアン行列を計算することができる。
［ケース2］：関数G1, G2のそれぞれが、狭義凸関数である（強凸(SC)かつリプシッツ平滑(LS)である）、または、狭義凸関数である（強凸(SC)かつリプシッツ平滑(LS)である）と仮定できる場合。
【０５２５】
この場合は、式(5-8)や式(5-9)により、関数Dのヘシアン行列を計算することができる。
【０５２６】
上記第２実施形態の説明では、劣微分を用いて説明したが、＜技術的背景＞で説明したように劣微分の代わりに微分を用いてもよい。この場合、式(5-1)〜式(5-5)の代わりに次式を用いればよい。
【０５２７】
【数１８４】
2019198814.tif 000186
【０５２８】
また、微分を用いる場合は、次式で表される条件のもと、∇Dを更新するようにしてもよい。
【０５２９】
【数１８５】
2019198814.tif 000187
【０５３０】
ただし、∇Dの更新は、以下の式で表される条件を満たす場合に限り、任意のタイミングで行うものとする。
【０５３１】
【数１８６】
2019198814.tif 000188
【０５３２】
本実施形態の発明によれば、機械学習の対象となるモデルの潜在変数を高速に学習することができる。本実施形態の発明によれば、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づき、変数更新則を構成することにより、停留点（最適解）への収束が高速になるように、潜在変数を更新することができる。また、ブレグマンダイバージェンスの定義に用いる凸関数を適切に構成することにより、停留点への収束が高速になるような、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づく変数更新則を構成することができる。
【０５３３】
＜第３実施形態＞
ここでは、＜技術的背景＞の《５：エッジコンピューティングにおける合意形成問題への適用》で説明した2つの変数更新アルゴリズム（図１５及び図１６のアルゴリズム）に対応する実施形態について説明する。
【０５３４】
以下、図２３を参照して潜在変数学習システム２−２０を説明する。図２３は、潜在変数学習システム２−２０の構成を示すブロック図である。図２３に示すように潜在変数学習システム２−２０は、V個（Vは1以上の整数）の潜在変数学習装置２−２００1, …, ２−２００Vを含む。潜在変数学習装置２−２００i(i∈v={1,…,V}）は、先のエッジコンピューティングにおける合意形成問題に関する説明におけるノードに対応するものである。
【０５３５】
また、各潜在変数学習装置２−２００iはネットワーク２−９００に接続しており、必要に応じて潜在変数学習装置２−２００j(j≠i)と通信する。ネットワーク２−９００には、例えば、インターネットを用いることができる。
【０５３６】
以下、図２４を参照して潜在変数学習装置２−２００を説明する。図２４は、潜在変数学習装置２−２００の構成を示すブロック図である。図２４に示すように潜在変数学習装置２−２００は、モデル学習部２−２２０と、通信部２−２８０と、記録部２−２９０を含む。
【０５３７】
潜在変数学習装置２−２００iは、学習データを用いて、機械学習の対象となるモデルの潜在変数pi∈Rp’（p’は1以上の整数）を学習する。学習データは、すべての潜在変数学習装置２−２００iに共通であってもよいし、潜在変数学習装置２−２００iごとに異なるものであってもよい。
【０５３８】
次に、図２５〜図２６を参照してモデル学習部２−２２０を説明する。図２５は、モデル学習部２−２２０の構成を示すブロック図である。図２６は、モデル学習部２−２２０の動作を示すフローチャートである。図２５に示すようにモデル学習部２−２２０は、初期化部２−２２１と、潜在変数計算部２−２２２と、第１双対変数計算部２−２２３と、同期用変数更新部２−２２４と、第２双対変数計算部２−２２５と、カウンタ更新部２−２２６と、終了条件判定部２−２２７を含む。
【０５３９】
図２６に従いモデル学習部２−２２０の動作について説明する。具体的な説明に入る前に、いくつか記号について説明する。これらの記号は、これまでの議論で用いてきたものであり、以下の説明は、そのまとめに相当するものである。
【０５４０】
v={1,…,V}は、潜在変数学習装置２−２００群のインデックスの集合を表す。また、N(i)は、潜在変数学習装置２−２００iと通信をする潜在変数学習装置２−２００群のインデックスの集合を表す。
【０５４１】
潜在変数pi, pj（ただし、j∈N(i)）に対して、λi|j∈Rp’を潜在変数学習装置２−２００iに帰属する双対変数、λj|i∈Rp’を潜在変数学習装置２−２００jに帰属する双対変数とする。また、同様に、潜在変数pi, pj（ただし、j∈N(i)）に対して、zi|j∈Rp’を潜在変数学習装置２−２００iに帰属する双対変数、zj|i∈Rp’を潜在変数学習装置２−２００jに帰属する双対変数とする。
【０５４２】
関数F1,i(pi):Rp’→Rを、学習データを用いて計算される、潜在変数piを最適化するためのコスト関数（ただし、F1,i(pi)は閉真凸関数）とする。
【０５４３】
Ai|j∈Rp’×p’を次式により与えられるp’×p’の実数行列とする。
【０５４４】
【数１８７】
2019198814.tif 000189
【０５４５】
関数Di|j:Rp’→R（ただし、j∈N(i)）を潜在変数学習装置２−２００iに帰属する狭義凸関数とする。
【０５４６】
なお、ξi|j, ζiを潜在変数学習装置２−２００j（ただし、j∈N(i)）から送信されたデータを格納するための潜在変数学習装置２−２００iの変数とする。以下、ξi|j, ζiのことを同期用変数ともいう。また、tを変数の更新回数をカウントするための変数（以下、カウンタともいう）、τ（τは1以上の整数）を所定の更新回数とする。このτは、後述するＳ２２２〜Ｓ２２５の繰り返し計算の回数の上限を表す。
【０５４７】
以降の説明では、Si(i∈v={1,…,V}）は、V個の潜在変数学習装置２−２００1, …, ２−２００Vを示すものとする。したがって、潜在変数学習システム２−２０は、潜在変数学習装置Si(i∈v）を含み、潜在変数学習装置Si(i∈v）は、学習データを用いて、所定の手順により潜在変数piを学習する。以下、図２６を参照してその手順について説明する。
【０５４８】
Ｓ２２１において、初期化部２−２２１は、カウンタtを初期化する。具体的には、t=0とする。また、初期化部２−２２１は、セットアップデータを計算する。例えば、コスト関数F1,i(pi)がその一例である。
【０５４９】
Ｓ２２２において、潜在変数計算部２−２２２は、次式により、双対変数zi|jのt回目の更新結果であるzi|jtと変数ζiのt回目の更新結果であるζitから潜在変数piのt+1回目の更新結果であるpit+1を計算する。
【０５５０】
【数１８８】
2019198814.tif 000190
【０５５１】
ただし、zi|j0及びζi0には適当な初期値が設定されているものとする。また、γ（γ>0）は所定の実数とする。
【０５５２】
Ｓ２２３において、第１双対変数計算部２−２２３は、j∈N(i)について、次式により、Ｓ２２２で用いたzi|jtとＳ２２２で計算したpit+1から双対変数λi|j（j∈N(i)）のt+1回目の更新結果であるλi|jt+1を計算する。
【０５５３】
【数１８９】
2019198814.tif 000191
【０５５４】
ここで、HD_i|jは関数Di|jのヘシアン行列を表す。つまり、HD_i|j-1はその逆行列である。
【０５５５】
Ｓ２２４において、同期用変数更新部２−２２４は、通信部２−２８０を用いて、次式により、潜在変数学習装置Sj(j∈N(i)）の学習により得られる値を変数ξi|j, ζi（j∈N(i)）のt+1回目の更新結果であるξi|jt+1, ζit+1として受信し、変数ξi|j, ζiを更新する。
【０５５６】
【数１９０】
2019198814.tif 000192
【０５５７】
Ｓ２２５において、第２双対変数計算部２−２２５は、j∈N(i)について、次式により、双対変数zi|j（j∈N(i)）のt+1回目の更新結果であるzi|jt+1を計算する。
【０５５８】
【数１９１】
2019198814.tif 000193
【０５５９】
ここで、αは0<α<1を満たす実数である。
【０５６０】
なお、式(6-1)は一般化P-R型単調作用素分割を用いる場合、式(6-2)は一般化D-R型単調作用素分割を用いる場合に対応する。
【０５６１】
Ｓ２２６において、カウンタ更新部２−２２６は、カウンタtを1だけインクリメントする。具体的には、t←t+1とする。
【０５６２】
Ｓ２２７において、終了条件判定部２−２２７は、カウンタtが所定の更新回数τに達した場合（つまり、t=τとなり、終了条件が満たされた場合）は、そのときの潜在変数piの値piτを出力して、処理を終了する。それ以外の場合、Ｓ２２２の処理に戻る。つまり、モデル学習部２−２２０は、Ｓ２２２〜Ｓ２２５の計算を繰り返す。なお、Ｓ２２５で計算したzi|jt+1は、次の繰り返し計算におけるＳ２２２とＳ２２３で用いられる。
【０５６３】
なお、ヘシアン行列HD_i|jは、式(5-6)〜式(5-9)を用いて設計するのが好ましい。
（変形例１）
上述の手順は、図１５のアルゴリズムに対応するものである。ここでは、図１６のアルゴリズムに対応する手順について説明する。当該手順では、潜在変数を交換する必要がないため、変数ζiを用いない。
【０５６４】
潜在変数学習装置２−２００は、図２４に示すように、モデル学習部２−２２０の代わりに、モデル学習部２−２３０を含む。以下、図２７〜図２８を参照してモデル学習部２−２３０を説明する。図２７は、モデル学習部２−２３０の構成を示すブロック図である。図２８は、モデル学習部２−２３０の動作を示すフローチャートである。図２７に示すようにモデル学習部２−２３０は、初期化部２−２３１と、第１双対変数計算部２−２３２と、潜在変数計算部２−２３３と、同期用変数更新部２−２３４と、第２双対変数計算部２−２３５と、カウンタ更新部２−２３６と、終了条件判定部２−２３７を含む。
【０５６５】
図２８に従いモデル学習部２−２３０の動作について説明する。
【０５６６】
Ｓ２３１において、初期化部２−２３１は、カウンタtを初期化する。具体的には、t=0とする。また、初期化部２−２３１は、セットアップデータを計算する。
【０５６７】
Ｓ２３２において、第１双対変数計算部２−２３２は、j∈N(i)について、次式により、双対変数zi|jのt回目の更新結果であるzi|jtと潜在変数piのt回目の更新結果であるpitから双対変数λi|j（j∈N(i)）のt+1回目の更新結果であるλi|jt+1を計算する。
【０５６８】
【数１９２】
2019198814.tif 000194
【０５６９】
ただし、zi|j0及びpi0には適当な初期値が設定されているものとする。また、HD_i|jは関数Di|jのヘシアン行列、HF_1,iは関数F1,iのヘシアン行列を表す。つまり、HD_i|j-1及びHF_1,i-1はそれらの逆行列である。∂F1,iは関数F1,iの劣微分を表す。
【０５７０】
Ｓ２３３において、潜在変数計算部２−２３３は、次式により、潜在変数piのt+1回目の更新結果であるpit+1を計算する。
【０５７１】
【数１９３】
2019198814.tif 000195
【０５７２】
ここで、wi|jtは双対変数wi|jのt回目の更新結果を表す。
【０５７３】
Ｓ２３４において、同期用変数更新部２−２３４は、通信部２−２８０を用いて、次式により、潜在変数学習装置Sj(j∈N(i)）の学習により得られる値を変数ξi|j（j∈N(i)）のt+1回目の更新結果であるξi|jt+1として受信し、変数ξi|jを更新する。
【０５７４】
【数１９４】
2019198814.tif 000196
【０５７５】
Ｓ２２５において、第２双対変数計算部２−２２５は、j∈N(i)について、次式により、双対変数zi|j（j∈N(i)）のt+1回目の更新結果であるzi|jt+1を計算する。
【０５７６】
【数１９５】
2019198814.tif 000197
【０５７７】
ここで、αは0<α<1を満たす実数である。
【０５７８】
なお、式(6-1)は一般化P-R型単調作用素分割を用いる場合、式(6-2)は一般化D-R型単調作用素分割を用いる場合に対応する。
【０５７９】
Ｓ２３６において、カウンタ更新部２−２３６は、カウンタtを1だけインクリメントする。具体的には、t←t+1とする。
【０５８０】
Ｓ２３７において、終了条件判定部２−２３７は、カウンタtが所定の更新回数τに達した場合（つまり、t=τとなり、終了条件が満たされた場合）は、そのときの潜在変数piの値piτを出力して、処理を終了する。それ以外の場合、Ｓ２３２の処理に戻る。つまり、モデル学習部２−２３０は、Ｓ２３２〜Ｓ２３５の計算を繰り返す。なお、Ｓ２３５で計算したzi|jt+1は、次の繰り返し計算におけるＳ２３２とＳ２３３で用いられる。
【０５８１】
なお、ヘシアン行列HD_i|jは、式(5-6)〜式(5-9)を用いて設計するのが好ましい。
【０５８２】
本実施形態の発明によれば、機械学習の対象となるモデルの潜在変数を高速に学習することができる。本実施形態の発明によれば、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づき、変数更新則を構成することにより、停留点（最適解）への収束が高速になるように、潜在変数を更新することができる。また、ブレグマンダイバージェンスの定義に用いる凸関数を適切に構成することにより、停留点への収束が高速になるような、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づく変数更新則を構成することができる。
【０５８３】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい）、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【０５８４】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくこととしてもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。
【０５８５】
ハードウェアエンティティでは、外部記憶装置（あるいはＲＯＭなど）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（上記、…部、…手段などと表した各構成要件）を実現する。
【０５８６】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【０５８７】
既述のように、上記実施形態において説明したハードウェアエンティティ（本発明の装置）における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【０５８８】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【０５８９】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【０５９０】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０５９１】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【０５９２】
上述の本発明の実施形態の記載は、例証と記載の目的で提示されたものである。網羅的であるという意思はなく、開示された厳密な形式に発明を限定する意思もない。変形やバリエーションは上述の教示から可能である。実施形態は、本発明の原理の最も良い例証を提供するために、そして、この分野の当業者が、熟考された実際の使用に適するように本発明を色々な実施形態で、また、色々な変形を付加して利用できるようにするために、選ばれて表現されたものである。すべてのそのような変形やバリエーションは、公正に合法的に公平に与えられる幅にしたがって解釈された添付の請求項によって定められた本発明のスコープ内である。
【図１】
2019198814.tif 000198
【図２】
2019198814.tif 000199
【図３】
2019198814.tif 000200
【図４】
2019198814.tif 000201
【図５】
2019198814.tif 000202
【図６】
2019198814.tif 000203
【図７】
2019198814.tif 000204
【図８】
2019198814.tif 000205
【図９】
2019198814.tif 000206
【図１０】
2019198814.tif 000207
【図１１】
2019198814.tif 000208
【図１２】
2019198814.tif 000209
【図１３Ａ】
2019198814.tif 000210
【図１３Ｂ】
2019198814.tif 000211
【図１４】
2019198814.tif 000212
【図１５】
2019198814.tif 000213
【図１６】
2019198814.tif 000214
【図１７】
2019198814.tif 000215
【図１８】
2019198814.tif 000216
【図１９】
2019198814.tif 000217
【図２０】
2019198814.tif 000218
【図２１】
2019198814.tif 000219
【図２２】
2019198814.tif 000220
【図２３】
2019198814.tif 000221
【図２４】
2019198814.tif 000222
【図２５】
2019198814.tif 000223
【図２６】
2019198814.tif 000224
【図２７】
2019198814.tif 000225
【図２８】
2019198814.tif 000226
【手続補正書】
【提出日】令和2年10月9日(2020.10.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１５０
【補正方法】変更
【補正の内容】
【０１５０】
そこで、この問題に対して、「コストEiの代わりにその上界となるような代理凸関数を用いること」によって、拘束付の最適化問題を解くことにする。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１５１
【補正方法】変更
【補正の内容】
【０１５１】
コストEiの代わりに用いる代理凸関数として、以下のGiを考える。x,yを任意のベクトルとして、<x,y>はxとyの内積を表す。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１５４
【補正方法】変更
【補正の内容】
【０１５４】
この代理凸関数Giを用いる理由は、２個ある。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１９４
【補正方法】変更
【補正の内容】
【０１９４】
なお、３番目の式のケーリー演算子C2が順序入れ替え行列Pに対応するということについては、参考非特許文献１−１にその証明が掲載されている。一番上の式のリゾルヴェント演算子を使った双対変数の更新は、以下のように変形できる。以下の式において、３番目の式は、２番目の式を積分形に変形したものである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０５７５
【補正方法】変更
【補正の内容】
【０５７５】
Ｓ２３５において、第２双対変数計算部２−２３５は、j∈N(i)について、次式により、双対変数zi|j（j∈N(i)）のt+1回目の更新結果であるzi|jt+1を計算する。
【国際調査報告】
2019198814.tif 000227
2019198814.tif 000228
2019198814.tif 000229
2019198814.tif 000230