JP7309004B2 - 潜在変数学習装置、潜在変数学習方法、プログラム - Google Patents

潜在変数学習装置、潜在変数学習方法、プログラム Download PDF

Info

Publication number
JP7309004B2
JP7309004B2 JP2022037711A JP2022037711A JP7309004B2 JP 7309004 B2 JP7309004 B2 JP 7309004B2 JP 2022037711 A JP2022037711 A JP 2022037711A JP 2022037711 A JP2022037711 A JP 2022037711A JP 7309004 B2 JP7309004 B2 JP 7309004B2
Authority
JP
Japan
Prior art keywords
function
variable
node
latent variable
operator
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
JP2022037711A
Other languages
English (en)
Other versions
JP2022066553A (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.)
Victoria University of Wellington
Original Assignee
Victoria University of Wellington
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 Victoria University of Wellington filed Critical Victoria University of Wellington
Publication of JP2022066553A publication Critical patent/JP2022066553A/ja
Application granted granted Critical
Publication of JP7309004B2 publication Critical patent/JP7309004B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Operations Research (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

特許法第30条第2項適用 ウェブサイトの掲載日 2018年7月13日 ウェブサイトのアドレス Cornell University Library arXiv.org(URL:https://arxiv.org/abs/1807.04871)
本発明は、機械学習の技術に関する。
近年、機械学習がブームになっており、収集したデータと出力したい情報の間の写像(mapping)を、データと教師データを用いた学習により得るフレームワークが一般的になってきている。なお、教師データに代えて、コスト関数が用いられる場合もある。
現在行われている研究のほとんどで、データを中央集約化し、教師データ又は設計したコスト関数を用いて写像を学習するフレームワークが取られている。しかし、音声及び映像といった情報を中央集約化するのは、データ容量がかなり膨大になってきている今日では現実的ではなくなりつつある。円滑なサービスを提供する上で(例えば、ユーザとサーバ間のネットワーク距離が近ければレスポンスタイムが早くなる)、分散したノード群(例えば、サーバ、PC)に分散してデータを収集し、そのノード群が連結し、容量の大きなデータそのものではなく、その潜在変数のみをやりとりするだけで、写像が最適化され、すべてのノード間で共有されるようなフレームワークこそが、今日の機械学習の分野で熱望されている技術の一つである。こういった技術は、エッジコンピューティングにおける合意形成アルゴリズム(コンセンサスアルゴリズム)と呼ばれる。
図1に、この合意形成アルゴリズムの適用先となるネットワークシステムを例示する。図1のネットワークシステムには、様々な環境(例えば、家、工場、野外及びビル)に多数のセンサーA-101など(例えば、マイク、カメラ、温度計)が分散して配置されており、それらのセンサーA-101を通じて得られたデータが、分散して配置された複数のノード部A-102(例えば、サーバ、PC)のそれぞれに蓄積される。中央集約型のフレームワークでは中央サーバが必要であり、全てのデータが中央サーバに蓄積される必要があるが、合意形成アルゴリズムを用いる場合には、中央サーバは存在しなくてもよく、データは分散して配置された複数のノード部A-102のそれぞれに蓄積されればよい。なお、データは、センサーA-101から得られるものに限らず、入力装置やWeb等から得られる文字データ等でも構わない。図1のネットワークシステムのノード部A-102間は、エッジA-103によって疎に結合しており、全結合でなくてもよく、ノード部A-102間で直接または間接的に何らかのデータを交換できる関係にあればよい。エッジA-103の連結構造についての制約はなく、木構造、循環/円構造でもなんでもよい。しかし、全てのノード部A-102が直接または間接的につながっていればよい。すなわち、エッジA-103の連結構造は、分割された構造でなければよい。
エッジコンピューティングにおける合意形成アルゴリズムを用いれば、図1のネットワークシステムのような条件の下で、データそのものではなく、写像を学習する過程で生成される変数をノード間で交換しながら、写像を最適化し、共有することができ、レスポンスタイムを早めたりデータ量を削減したりすることが可能である。
従来技術として、凸最適化技術に基づく合意形成型のエッジコンピューティングについて述べる。コスト関数が凸関数であることに限定されるが、合意形成型のエッジコンピューティング技術は既に存在する。1つ目はDistributed ADMM法(Alternating Direction Method of Multipliers)に基づく方法(例えば、非特許文献1参照。)、2つ目はPDMM法(Primal Dual Method of Multipliers)に基づく方法(例えば、非特許文献2参照)である。なお、DNNは、非凸のコスト関数であるのでこの枠組みには入らない。
《Distributed ADMM法の合意形成アルゴリズム》
以下、Distributed ADMM法の合意形成アルゴリズムについて説明する。
コスト関数は、閉真凸関数(Closed Proper Convex function)に限定する。Distributed ADMMベースの合意形成アルゴリズムでは、主変数と双対変数を更新しながら全体最適化を図る。その過程において、主変数をノード間で共有し、それらが一致するように合意形成するようにして、コスト関数が生成される。
図2は、3種類のノードが全連結されている状況を示している。図2の例では、変数は、3種類の主変数w1,w2,w3、6種類の双対変数λ1|22|11|33|12|33|2、6種類のノード間で交換される主変数w1 <1>,w1 <2>,w2 <1>,w2 <2>,w3 <1>,w3 <2>で構成される。
ノードを表すインデックス集合~Vとノード数Vを以下のように書く。
Figure 0007309004000001
i番目のノードにつながっているノードのインデックス集合(エッジの情報)~N(i)とその数N(i)を以下のように書く。なお、~N(i)は、N(i)の上に「~」が付されていることを表す。後に出てくる~V,~Bについても同様である。
Figure 0007309004000002
i番目のノードにおけるj番目のノードに対する双対変数をλi|jとする。
写像の一つの事例として、教師データとの最小二乗問題を扱う。
以下のように記号を定義する。sを教師データ、xを入力データ(「観測データ」と言う場合もある)、wを重みベクトル、Bを教師データ(「出力データ」と言う場合もある)の次元(b=1,…,B)、λを双対変数とする。なお、双対変数λの次元は、重みベクトルwの次元と同じであるとする。添え字が付いたこれらのアルファベットの意味は、添え字が付いてないアルファベットと同じであるとする。例えば、siは、sと同じく教師データを意味する。また、~B={1,…,B}であるとする。Bは所定の正の整数である。識別問題を扱う場合には、Bを2以上の整数とする。例えば、10種類の数字を認識するタスクであれば、B=10である。また、回帰問題を扱う場合には、例えばB=1とする。
このとき、i=1,…,Vとして、教師データsiは以下のような構成になる。
Figure 0007309004000003
同様にして、xi=[xi,1,…,xi,B]Tであり、wi=[wi,1,…,wi,B]Tであり、λi|j=[λi|j,1,…, λi|j,B]Tであるとする。
i番目ノードにあるデータxiに重み付け加算することでsiを得るような算術を写像として用いるとき、写像を最適化するためのコストは以下の真凸閉関数fiで書ける。i番目のノードにおけるコスト関数をfiとし、これを最小化するようなwを探索する。
Figure 0007309004000004
ここで、写像関数は線形の重みづけ加算^si,b=xi Twi,bであるとする。si,bの左上の^は、学習後又は学習途中に得られたwi,bにより得られることを表す。また、・を任意の数として、||・||pはL-pノルムを意味する。
wを以後、主変数と呼ぶ。V個のノードが連結していて、変数が同一となるような制約下でコストを最小化する問題は以下で書ける。
Figure 0007309004000005
ここで、wj,b <i>は、i番目のノードに蓄積されたj番目のノードの主変数を意味する。後述するように、wj,b <i> は適宜更新される。
この式は、双対変数λを最大化する条件下(ノード間の主変数が連結しているノード間で一致する条件を満たせば、λに掛かっている項が0になるという意図)で、コスト関数を最小化するように主変数wを最適化するということを表している。
なお、主変数wが連結しているノード間で一致するという条件は、例えば行列Aを、互いを加算して0になる関係で記述することができる。例えば、行列Aは、以下のようにI,-I,0で記述することができる。Iは単位行列であり、0は零行列である。
Figure 0007309004000006
非特許文献3のp.154-155にあるミニマックス定理より、コスト関数”f”が真凸関数であれば、「双対変数を最大化しながら主変数を最小化する」という元々の問題の最適解は、「主変数を最小化しながら、双対変数を最大化する」問題を解いた場合の最適解と一致する。
Figure 0007309004000007
この問題を解くための方式として拡張ラグランジュ法がある(例えば、非特許文献2参照。)。これは、最適化処理を安定化させるために、罰則項を加算する方法である。ρiは、所定の正の数である。
Figure 0007309004000008
内側のwに関する最小化する問題を最初に解く。すなわち、wに関して微分が0になるポイントを探る。w*は、wに関して最適化されたポイントを指す。また、tは更新回数のインデックスを表す。
Figure 0007309004000009
このため、t+1回目の主変数の更新は以下のように行われる。
Figure 0007309004000010
双対変数に関するt+1回目の更新は以下のように行われる。
Figure 0007309004000011
従来法のDistributed ADMM法の合意形成アルゴリズムをまとめると以下になる。
T回更新するとして、t∈{0,…,T-1}に対して、以下の(1)から(3)の処理を行う。ここで、Tは、繰り返し回数であり、所定の正の整数である。この明細書では、Tは、繰り返し回数又は行列及びベクトルの転置を表すが、当業者であれば文脈に応じてどちらを意味するのか明確であるため、以降の説明ではどちらを意味するのかを明示せずにTを用いることにする。
(1)主変数更新
Figure 0007309004000012
(2)双対変数更新
Figure 0007309004000013
(3)毎回である必要はないし、エッジごとに独立(非同期)でよいが、主変数をノード間で更新する。
Figure 0007309004000014
Distributed ADMM法の合意形成アルゴリズムの長所は、理論的な背景はないが、いくつかの実験を通じて、各ノードに蓄積されるデータセット間に統計的性質差がある場合にも収束することが確認されているということである。ただし、その収束率は低い。
一方、Distributed ADMM法の合意形成アルゴリズムの短所は、以下の(1)から(4)である。(1)収束率が低い。(2)原理的に、非凸関数の最適化(DNN等を含む)に適用できない。(3)主変数を交換するという観点で、情報の秘密性がやや低い。すなわち、主変数にはデータの性質が色濃く反映されることがあるので、主変数をハッキングすることで、データの統計的性質を得られる可能性がある。(4)伝送レートがやや高い。すなわち、主変数のデータに統計的な偏りが見られない場合、伝送レートは高くなりがちであることである。
《PDMMベースの合意形成アルゴリズム》
次に、PDMMベースの合意形成アルゴリズムについて説明する。Distributed ADMMと大きく異なる点は、主変数だけでなく、双対変数も共有することである。後述するが、双対変数のペアについて合意形成される。
λi|jj|iという条件下で最適化問題を解くことは、主変数も暗に合意することに相当する。すなわち、主変数及び双対変数のそれぞれで合意形成される。また、その制約を課すことで、収束速度が高くなることが理論的に明らかになっている。
図3の例では、6種類の双対変数λ1|22|11|33|12|33|2が3種類のペアλ1|22|11|33|12|33|2を形成している。双対変数と主変数を連結しているノード間で情報交換しながら、合意形成することを目指す。なお、双対変数は、各更新時における主変数間の差分に物理的には相当する。
Distributed ADMMと同様にコスト関数は閉真凸関数に限る。一つの事例として、最小二乗問題を解く場合、以下がコストとなる。
Figure 0007309004000015
Distributed ADMMと同様に双対問題を定義すると以下のようになる。
Figure 0007309004000016
以下に変数の定義を書く。以下では、V個のノードを連結して変数を表現している。
Figure 0007309004000017
図3のようなエッジ構成を想定して、言い換えればλi|jj|iという制約の下で式を書き下すと以下のようになる。
Figure 0007309004000018
主変数及び双対変数のそれぞれで合意形成するという条件は以下で書ける。
Figure 0007309004000019
wを最適化するうえでの一つのテクニックとして、fのルジャンドル変換である凸共役関数f*を導入する。これは、fが閉真凸関数であるとき、f*もまた閉真凸関数になることが知られているので、このような記述をする(例えば、非特許文献3参照。)。
Figure 0007309004000020
なお、上記の第一式の右辺は、下記の式の下線部分を取り出したものである。
Figure 0007309004000021
元々の問題は、以下のようにかける。以下の式変形では、f*が閉真凸関数であるので、その最小化問題として書けることを利用している。
Figure 0007309004000022
双対変数の合意条件下での最適化問題であることを追加すると、解くべき問題は以下で再定義される。
Figure 0007309004000023
この問題は、以下を解くことに相当する。
Figure 0007309004000024
関数δは指示関数と呼ばれる。指示関数も凸関数の一種である。行列Pは、以下に示すように、i,j番目のノード間にある双対変数のペアを交換するという演算(permutationのP)であり、双対変数が一致した時に指示関数が0を出力する(コストを下げる)ということを意味している。
Figure 0007309004000025
解くべき問題は、2種類の凸関数で構成されている。こういった問題を解くためのテクニックとして、オペレータ分割法がある(例えば、非特許文献4参照。)。これは、全体最適化を一度に行うことが難しい問題であっても、交互に最適化しながら解くテクニックである。
オペレータ分割法には、様々な方法が存在するが、代表的なものとして、Peaceman-Rachford splitting (P-R分割) がある。
P-R分割を使ったPDMMベースの合意形成アルゴリズムは、以下のようになる。
T回更新するとして、t∈{0,…,T-1}に対して、以下の(1)から(3)の処理を行う。
(1)主変数更新
Figure 0007309004000026
(2)双対変数更新
Figure 0007309004000027
(3) 主変数をノード間で更新する。なお、更新過程は非連続であってもよく(毎回更新する必要はない)、かつ、エッジごとに独立(非同期)に実行してよい。
Figure 0007309004000028
このPDMMベースの合意形成アルゴリズムの長所は、収束率が高いということである。
一方、このPDMMベースの合意形成アルゴリズムの短所は、以下の(1)から(4)である。(1)いくつかのケースで、各ノードに蓄積されるデータセット間に統計的性質差がある場合に、収束しないという結果を得たということである。しかし、異質なデータセットに対しても収束するという理論的保証はない。(2) 原理的に、非凸関数の最適化(DNN等を含む)に適用できない。(3)主変数を交換するという観点で、情報の秘密性がやや低い。すなわち、主変数にはデータの性質が濃く反映されることがあるので、主変数をハッキングすることで、データの統計的性質を得られる可能性がある。(4)伝送レートが高い。すなわち、主変数と双対変数を送るので、伝送レートは高くなりがちである。
次に、機械学習の対象となるモデルの潜在変数を学習する際に扱うコストの最小化問題を考える。この最小化問題は、以下のように定式化される。
(問題)
コスト関数Gは、関数G1と関数G2に加法分割されるものとする。ただし、関数G1, G2はいずれも閉真凸関数であるものとする(以後、閉真凸関数のことを単に凸関数という)。
Figure 0007309004000029
ここで、w∈Rm(mは1以上の整数)、Gi:Rm→R∪{∞} (i=1, 2)である。つまり、wは、m次元実ベクトル空間Rmの要素であり、Giは、m次元実ベクトルwを入力とし、(1次元の)実数を出力する関数である。
なお、Giの入力は、ベクトルであるとしたが、行列やテンソルであってもよい。行列やテンソルはベクトルを用いて表現することができるので、以下、Giの入力はベクトルであるものとして話を進める。
コストGを最小化するように潜在変数wを最適化する問題は、以下のように表される。
Figure 0007309004000030
この問題の最適解w*(wの停留点ともいう)は、コストGの劣微分が0ベクトル(零ベクトル)を含むときに得られる。
Figure 0007309004000031
ここで、∂Giは、Giの劣微分を表す。なお、入力と出力が1対1対応となる等号を表す記号”=“の代わりに、記号“∈”を用いるのは、凸関数Giが不連続点を含む場合、その劣微分は不連続点において多点出力対応となるためである。
最適解w*を求める従来方法を説明する前に、式(1-1)に従う具体的問題をいくつか挙げる。
《具体的問題1:エッジコンピューティングにおける合意形成問題》
V個のノードが任意に接続されたグラフG(v, e)(ただし、vはノードの集合、eはエッジの集合である)を考える。
Figure 0007309004000032
ここで、N(i)はi番目のノードに接続されたノード群のインデックスの集合を表す。
図9は、V個のノード(サーバ)がエッジ構造eに従って繋がっている状態(V=5の場合)を示す。各ノードに蓄積された膨大なデータをノード間で交換するのではなく、潜在変数やその補助変数(例えば、双対変数)を交換しながら全体最適化する問題がエッジコンピューティングにおける合意形成問題である。
i番目のノードにある凸関数で表現されたコストを以下のように表す。
Figure 0007309004000033
ここでは、問題の理解を容易にするために、コストF1,iの具体例として、教師データsiに対する二乗誤差を用いることにする。
Figure 0007309004000034
ここで、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の値が同一になるように制約しながら、コストを最小化する停留点を探すことになる。
Figure 0007309004000035
ここで、pi∈Rp’、Ai|j∈Rp’×p’である。Ai|jは合意形成を表現するp’×p’の実数行列である。この行列Ai|jとして任意の行列を用いることができるが、”ノード間で潜在変数の値が同一になるように学習を進めたい”という意図がある場合、例えば、以下のような簡単な行列を用いることができる。
Figure 0007309004000036
ここで、Iは単位行列である。
式(2-1)のような線形拘束下でのコスト最小化問題を解く場合、ラグランジュの未定乗数法を用いることが多い。双対変数νi,j∈Rp’を用いて、ラグランジュ関数Lを以下のように定義する。
Figure 0007309004000037
式(2-1)を解くことは、以下の式(2-2)の問題(主問題)を解くことに対応する。しかし、この問題を直接解くことは困難な場合が多い。
F1,iが閉真凸関数であるとき、強双対性が成立する、つまり、最適点において式(2-2)と式(2-3)間の統合性が成り立つので、式(2-2)を解く代わりに、式(2-3)の問題(双対問題)を解くことが一般的である。
Figure 0007309004000038
ここで、F1,i *は、凸関数F1,iの凸共役関数を表す。
Figure 0007309004000039
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つに分け、これらの変数が一致するという制約を入れる。
Figure 0007309004000040
図10A及び図10Bは、双対変数のリフティング処理の様子を示す図である。図10Aは、ノードiとノードjの合意形成における誤差を制御しているのが変数νi,jであることを表している。しかし、このままではi番目の潜在変数とj番目の潜在変数を同期しながら更新しなければならない。そこで、i番目の潜在変数とj番目の潜在変数を非同期でも更新できるようにするために、図10Aでは無方向であったエッジを、図10Bのように方向性のある2つのエッジに書き換える。この2つのエッジは1つの無方向のエッジから生成されたものであるので、一致するという制約が必要になるが、変数更新における同期性の問題を解決することができる。
双対変数のリフティング処理により、式(2-4)の問題は、以下の問題(線形拘束付の最適化問題)に書き換えられる。
Figure 0007309004000041
V個に分けて書いていた変数群をベクトルや行列を用いて表現することにより、式(2-5)は以下のように表現する。もちろん、式の意味は変わることなく、同一の問題を表している。
Figure 0007309004000042
ここで、凸共役関数F1 *は、次式のようになる。
Figure 0007309004000043
なお、F1:Rm→R∪{∞}, F1 *:Rm→R∪{∞}(m=p’V)である。
また、V個のノードごとに分けて書いていた変数群(つまり、pi, λi|j, Ai|j)は以下のようになる。
Figure 0007309004000044
ここで、さらに、リフティング処理された双対変数が一致するという制約を記述するにあたって、変数が一致するという観点で適切な性質をもつ指示関数F2を用いることにする。指示関数F2を用いると、式(2-6)の問題は、以下の問題に帰着する。
Figure 0007309004000045
ここで、指示関数F2は、以下のように定義される。
Figure 0007309004000046
ここで、Pは順序入替行列(パーミュテーション行列)である。順序入替行列Pの要素はすべて0または1であり、P2=Iという性質を持つ。行列Pをベクトルλにかけることは、以下のようにノードiとノードjの間のエッジに対応する双対変数λi|j, λj|iを入れ替える処理(λj|i⇔λi|j)に相当する。
Figure 0007309004000047
ここで、式(2-7)に対して以下のようなに置き換えを適用することにより、エッジコンピューティングにおける合意形成問題(つまり、式(2-7))が式(1-1)に帰着することがわかる。
Figure 0007309004000048
また、別の例として以下のようなものがある。
《具体的問題2:画像/音声/言語の認識タスクにおける汎用モデル生成問題》
画像/音声/言語等の認識タスクにおける汎用モデルを生成するための方法として、以下のようなコストを用いて潜在変数pを学習させることが有用であることが知られている(参考非特許文献1)。
(参考非特許文献1:V. Vapnik, “Principles of Risk Minimization for Learning Theory”, Advances in Neural Information Processing Systems 4 (NIPS1991), pp.831-838, 1992.)
Figure 0007309004000049
ここで、p∈Rmは潜在変数、λ∈Rmは双対変数、A=[a1, …, an]T∈Rn×mは入力データを表す。
式(2-8)に対して以下のようなに置き換えを適用することにより、画像/音声/言語の認識タスクにおける汎用モデル生成問題(つまり、式(2-8))は式(1-1)に帰着することがわかる。
Figure 0007309004000050
また、式(2-9)に対しても以下のようなに置き換えを適用することにより、式(1-1)に帰着することがわかる。
Figure 0007309004000051
例えば、F1には二乗誤差やクロスエントロピーを用い、F2には正則化項としてL1ノルムを用いることができる。もちろん、F1、F2はこれに限るものではない。
Figure 0007309004000052
ここで、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)という(非特許文献4)。単調作用素分割法には様々な方法が存在するが、ここでは、再帰的な変数更新に伴うコストの非拡大性(つまり、変数を更新するにつれて、コストが縮小していくという性質)を担保することができるPeaceman-Rachford(P-R)型とDouglus-Rachford(D-R)型の2種類の単調作用素分割法について説明する。
具体的な導出手続きについては省略するが、式(1-2)を変形していくと、P-R型単調作用素分割とD-R型単調作用素分割が得られる。なお、変形に際して、リゾルヴェント作用素Ωnとケーリー作用素Ψnを用いる(n=1, 2)。
Figure 0007309004000053
ただし、Iは同一作用素、-1は逆作用素を表す。
また、w(w∈Rm)の補助変数z(z∈Rm)を導入する。その関係は以下のようにリゾルヴェント作用素で接続される。
Figure 0007309004000054
P-R型単調作用素分割、D-R型単調作用素分割は、それぞれ式(3-1)、式(3-2)で表される。
Figure 0007309004000055
式(3-1)と式(3-2)をみると、P-R型単調作用素分割に平均化作用素を導入することで、D-R型単調作用素分割が得られることがわかる。
以下、エッジコンピューティングにおける合意形成問題を例として、式(3-1)、式(3-2)から得られる再帰的な変数更新則である変数更新アルゴリズムについて説明する。この合意形成問題は、以下の式(2-7)のλをwで置き換えたもので表される。
Figure 0007309004000056
このとき、リゾルヴェント作用素Ω2とケーリー作用素Ψ2は次のようになる。
Figure 0007309004000057
ここで、上記指示関数F2を用いる場合、ケーリー作用素Ψ2は順序入替行列Pに対応することが非特許文献2に示されている。
式(3-1)、式(3-2)を再帰的な変数更新則として表現すると、以下のようになる。式(3-5)が式(3-1)のP-R型単調作用素分割に、式(3-6)が式(3-2)のD-R型単調作用素分割に対応する。
Figure 0007309004000058
ここで、変数w, λ, z(w∈Rm, λ∈Rm, z∈Rm, m=p’V)はリゾルヴェント作用素やケーリー作用素を通して得られる変数であり、いずれも双対変数である。また、tは更新回数を表す変数である。
関数F1 *の定義からわかるように、式(3-3)には潜在変数pと双対変数wの更新が含まれている。これらの変数を更新するための方法として、非特許文献2に記載の方法を説明する。式(3-3)を以下のように変形していく。
Figure 0007309004000059
なお、上記変形で第2式から第3式を導出する際、積分形を用いた。
F1 *は潜在変数pの最適化計算を含むため、式(3-7)を解く方法は、2種類ある。ここでは、まず潜在変数pを最適化し、pをその最適値に固定したうえで、双対変数wを最適化する方法を導出することにする。潜在変数pを逐次最適化計算する(つまり、ptからpt+1を計算する)ため、pに関する罰則項をF1 *に含まれるコストに加えて計算する。
Figure 0007309004000060
ここで、式(3-8)の右辺のargminの中の第3項が罰則項であり、γ>0である。罰則項を用いることで潜在変数pの逐次最適化計算が可能になる。
次に、潜在変数pを固定したうえで、式(3-7)に含まれる双対変数wの最適化を行う。
Figure 0007309004000061
また、式(3-4)は以下のように計算できる。
Figure 0007309004000062
式(3-10)からわかるように、wを用いることなく、λを計算できるようになる。
以上まとめると、再帰的な変数更新則(式(3-3)~式(3-6))は、以下のようになる。
Figure 0007309004000063
この更新則をノードごとに変数を更新できるようにすると、図11に示すアルゴリズムが得られる。なお、Transmitj→i{・}はノードjからノードiへ変数を送信する演算を表す。
S. Boyd, N. Parikh, E. Chu, B. Peleato and J. Eckstein, "Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers", Foundations and Trends in Machine Learning, 3(1):1-122, 2011. 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 金森敬文,鈴木 大慈,竹内 一郎,佐藤 一誠,"機械学習のための連続最適化",講談社,2016年. E. K. Ryu and S. Boyd, "Primer on Monotone Operator Methods", Appl. Comput. Math., 15(1):3-43, January 2016.
まず、第1の課題について説明する。上記の非特許文献1及び2の技術は、ノード間で主変数が送受信されているため、情報の秘密性が高くないと言える。これが第1の課題である。
次に、第2の課題について説明する。上記の非特許文献1及び2の技術は、コスト関数が非凸関数である場合には機械学習を行うことができなかった。これが第2の課題である。
次に、第3の課題について説明する。従来の変数更新則は、リゾルヴェント作用素やケーリー作用素を用いた単調作用素分割に基づき生成したものである。この従来の変数更新則では、場合によっては、最適解への収束に時間がかかるという問題があった。つまり、潜在変数の学習に時間がかかるという問題があった。これが第3の課題である。
そこで本発明では、機械学習の対象となるモデルの潜在変数を高速に学習する技術を提供することを目的とする。
本発明の一態様は、、w∈Rmを機械学習の対象となるモデルの潜在変数、G(w)(=ΣiGi(w)):Rm→Rを学習データを用いて計算される、潜在変数wを最適化するためのコスト関数(ただし、関数Gi(w) (Nを2以上の整数とし、iは1≦i≦Nを満たす整数とする)は閉真凸関数)、D:Rm→Rを狭義凸関数、BD(w1||w2)を関数Dを用いて定義されるブレグマンダイバージェンス(w1, w2∈Rm)とし、コスト関数G(w)を最小化するwの停留点w*とのブレグマンダイバージェンスBDが0に近づくように、潜在変数wを学習するモデル学習部とを含む。
本発明によれば、機械学習の対象となるモデルの潜在変数を高速に学習することができる。
従来技術を説明するための図である。 従来技術を説明するための図である。 従来技術を説明するための図である。 技術的背景を説明するための図である。 機械学習システムの例を説明するためのブロック図である。 ノード部の例を説明するためのブロック図である。 機械学習方法の例を説明するための流れ図である。 機械学習方法の変形例を説明するための流れ図である。 エッジコンピューティングの一例を示す図である。 双対変数のリフティング処理の様子を示す図である。 双対変数のリフティング処理の様子を示す図である。 エッジコンピューティングにおける合意形成問題に関する従来の変数更新アルゴリズムを示す図である。 エッジコンピューティングにおける合意形成問題に関する本願の変数更新アルゴリズムを示す図である。 エッジコンピューティングにおける合意形成問題に関する本願の変数更新アルゴリズムを示す図である。 実験で用いた分散計算器の構成を示す図である。 実験結果を示す図である。 潜在変数学習装置100の構成を示すブロック図である。 潜在変数学習装置100の動作を示すフローチャートである。 モデル学習部120の構成を示すブロック図である。 モデル学習部120の動作を示すフローチャートである。 潜在変数学習システム20の構成を示すブロック図である。 潜在変数学習装置200の構成を示すブロック図である。 モデル学習部220の構成を示すブロック図である。 モデル学習部220の動作を示すフローチャートである。 モデル学習部230の構成を示すブロック図である。 モデル学習部230の動作を示すフローチャートである。
以下、図面を参照して、この発明の一実施形態である第1実施形態について説明する。
<技術的背景>
以下、秘密性を高めた合意形成アルゴリズムについて説明する。この合意形成アルゴリズムは、従来のPDMMを変形したものである。
まず、以降の説明で用いる記号の定義について説明する。
Vを2以上の所定の正の整数とし、~V={1,…,V}とする。
Bを所定の正の整数とし、b=1,…,Bとし、~B={1,…,B}とする。
ノード部iにつながっているノード部の集合を~N(i)とする。
ノード部iにおけるノード部jに対する双対変数λi|jを構成するb個目のベクトルをλi|j,bとし、t+1回目の更新後の双対変数λi|j,bをλi|j,b (t+1)とする。
機械学習で用いられるノード部iに対応するコスト関数をfiとする。
双対変数λi|jの補助変数として双対補助変数zi|jを導入し、それを構成するb個目のベクトルをzi|j,bとし、t+1回目の更新後の双対補助変数zi|j,bをzi|j,b (t+1)とする。なお、zi|jの基本的な性質は、λi|jと同じである。
双対変数λi|jの補助変数として双対補助変数yi|jを導入し、それを構成するb個目のベクトルをyi|j,bとし、t+1回目の更新後の双対補助変数yi|j,bをyi|j,b (t+1)とする。なお、yi|jの基本的な性質は、λi|jと同じである。
ノード部iの主変数wi,bのb個目の要素をwiとし、wi,bの最適解のb個目の要素をwi,b *とする。
Ai|jは以下の式により定義されるとする。
Figure 0007309004000064
Iを単位行列とし、Oを零行列とし、σ1を所定の正の数とする。Tは更新の総回数であり、正の整数であるが、オンラインの学習を想定した場合には、定数ではない。
解くべき問題は従来のPDMMと同じであるので、再掲する。
Figure 0007309004000065
また、この問題をオペレータ分割法で解くという点についても従来のPDMMと同様である。以後、オペレータ分割法の一つであるP-R分割を用いた例について説明する。双対変数λbの補助変数として2種類の双対補助変数yb,zbをを以後用いる。
P-R分割に基づいて、変数群(主変数,双対変数,双対補助変数)を最適化するステップは以下で書ける。
Figure 0007309004000066
上記の式において、「∈」の記号は、集合の要素を表すのではなく、右辺の演算結果を左辺に代入することを意味する。通常、こうした操作は「=」を用いて表現することが多いが、コスト関数に不連続な閉真凸関数を用いた場合に、非可逆な変換が行われることがある(1対1対応しない演算をすることがあり得る)。「=」は通常、1対1対応するような変換(関数)に用いられる記号であるため、それと区別するために「∈」の記号を用いることとする。
ここで、Cn (n=1,2)はケーリー演算子(Cayley operator)である。
Figure 0007309004000067
Rn (n=1,2)は リゾルヴェント演算子(Resolvent operator)である。
Figure 0007309004000068
Tn(n=1,2)はモノトーン演算子(Monotone operator)である。問題を構成するf*やδ(I-P)とも真凸閉関数であるので、その双対変数に関する偏微分はモノトーン演算子になる。
Figure 0007309004000069
理論背景については詳細をここに記述しないが、P-R分割は高速な収束を保証する最適化方式である。P-R分割による最適化zb∈C2C1zbを分解表現すると以下になる。
Figure 0007309004000070
なお、2番目のケーリー演算子C2が順序入れ替え行列Pに対応するということについては、非特許文献2にその証明が掲載されている。一番上の双対変数をリゾルヴェント演算子を使った更新は、以下のように変形できる。
Figure 0007309004000071
この式に含まれるf*を双対変数に関する閉凸真関数として導出したい。それがノード間で交換する情報量を削減につながるから。その過程について以下説明する。まず、f*の定義を再掲する。
Figure 0007309004000072
なお、一つの事例として、最小二乗問題をコストとして扱う場合には、以下となる。
Figure 0007309004000073
以後は、説明を分かりやすくするために、最小二乗問題をコストとして扱った場合の更新式について導出する。
括弧内を微分すると、wの最適解は以下で得られる。このように、最小二乗問題をコストとして扱った場合のwの最適解w*は、双対変数の式で表される。
Figure 0007309004000074
このw*をf*に代入することで、f*をλの関数として表せる。ここで、Q=XXTである。
Figure 0007309004000075
ここで、Q=XXTである。
P-R分割に含まれる双対変数の更新式を再掲する。
Figure 0007309004000076
最小二乗問題をコストとして扱った場合、括弧内を双対変数に関して微分すると、以下のようになる。
Figure 0007309004000077
だから、最小二乗問題をコストとして扱った場合の双対変数に関する最適化は以下で得られる。
Figure 0007309004000078
この工夫は、双対変数λを最適化する中で、暗に主変数wも最適化されることを意味している。そして、双対補助変数yをノード間で交換するだけで、P-R分割ベースの分散最適化処理が実現できる。この時点で以下のようにアルゴリズムを書き換えられる。ここでは一般形式で記述する。
T回更新するとして、t∈{0,…,T-1}に対して、以下の(1)から(5)の処理を行う。(2)主変数更新の処理は、行われなくてもよい。なぜならば、wの最適解であるw*はλの式で表されるため、λの最適化過程において、wの更新を必要としないためである。(λが最適化されればwも暗に最適化されたことを意味する)
(1)双対変数更新(ここでは、最小二乗問題に限定せず、コストを一般形式として記述する。)
Figure 0007309004000079
(2)主変数更新(ここでは、最小二乗問題に限定せず、コストを一般形式として記述する。)
Figure 0007309004000080
(3)双対補助変数更新
Figure 0007309004000081
(4) 毎回である必要はないし、エッジごとに独立(非同期)でよいが、双対補助変数をノード間で更新する。ここで、「・」を任意の情報として、Nodej←Nodei(・)は、i番目のノード部iがノード部jに情報「・」を送信することを意味する。
Figure 0007309004000082
(5) 交換して得た情報を使って双対補助変数更新
Figure 0007309004000083
なお、最後の(5)のステップについては、以下の演算と置き換えることで、収束性を低くする代わりに、収束過程において高い安定性を見込めるDouglas Rachford (D-R)分割になる。通常βは1/2が使われる。
Figure 0007309004000084
なお、上記の主変数、双対変数の更新は、一般形式のコスト関数を用いている。以下のコスト関数を用いた場合には、合意形成アルゴリズムは以下のようになる。
Figure 0007309004000085
T回更新するとして、t∈{0,…,T-1}に対して、以下の(1)から(5)の処理を行う。なお、(2)主変数更新の処理は、行われなくてもよい。なぜならば、wの最適解であるw*はλの式で表されるため、λの最適化過程において、wの更新を必要としないためである。(λが最適化されればwも暗に最適化されたことを意味する。)
(1)双対変数更新
Figure 0007309004000086
(2)主変数更新
Figure 0007309004000087
(3)双対補助変数更新
Figure 0007309004000088
(4) 毎回である必要はないし、エッジごとに独立(非同期)でよいが、双対補助変数をノード間で更新する。
Figure 0007309004000089
(5) 交換して得た情報を使って双対補助変数更新
Figure 0007309004000090
なお、最後の(5)のステップについては、以下の演算と置き換えることで、収束性を低くする代わりに、収束過程において高い安定性を見込めるDouglas Rachford (D-R)分割になる。通常βは1/2が使われる。
Figure 0007309004000091
双対補助変数yをノード間で交換しているが、変数の性質は双対変数λと同等と言ってよい。その双対変数は以下のように算出される。
Figure 0007309004000092
主変数wには、データの統計的性質が濃く反映されることが多いが、双対変数の統計的性質は、そのルジャンドル変換後のデータに左右される。ルジャンドル変換は関数の構造を知っていないと主変数には戻せないため、双対変数やその双対補助変数をノード間で伝送するのは、秘密性の高いデータ通信と言える。
<第1実施形態>
図5に示すように、機械学習システムは、複数のノード部1,…,V、複数のセンサ部1S1,…,1,2S1,…,2,VS1,…,V、インターネット0N、LAN 1N,…,VNを例えば備えている。複数のノード部1,…,Vのそれぞれは、サーバ、PC等の情報処理機器である。ノード部1,…,Vのそれぞれには、図6で示すように、学習部10と送受信部11が設けられており、学習部10内には記憶部12が設けられている。記憶部12には、以下に説明する処理及び計算に必要なデータが記憶されているとする。
センサー部1S1,…,1,2S1,…,2,VS1,…,Vは、様々な環境(例えば、家、工場、野外及びビル)に、分散して配置された多数のセンサー(例えば、マイク、カメラ、温度計)である。図5の例では、センサー部は1S1,…,1はノード部1に対応するセンサーである。すなわち、センサー部は1S1,…,1はノード部1の学習部10での機械学習で用いられるデータを取得するセンサーであり、センサー部は1S1,…,1のそれぞれはノード部1とLAN 1Nで接続されている。その他のセンサー部についても同様である。それらのセンサー部1S1,…,1,2S1,…,2,VS1,…,Vを通じて得られたデータは、複数のノード部1,…,V(例えば、サーバ、PC)に蓄積される。なお、データは、センサー部1S1,…,1,2S1,…,2,VS1,…,Vから得られるものに限らず、入力装置やWeb等から得られる文字データ等でも構わない。また、図5の例ではセンサー部1S1,…,1,2S1,…,2,VS1,…,VはLAN1N,…,VNでノード部1,…,Vに接続されているが、センサー部1S1,…,1,2S1,…,2,VS1,…,Vはインターネット0Nを介してノード部1,…,Vに接続されていてもよいし、その他の接続手段で接続されていてもよいし、要するに、センサー部1S1,…,1,2S1,…,2,VS1,…,Vが得たデータをノード部1,…,Vが用いるようにされていればよい。
図5の例ではノード部1,…,Vはインターネット0Nを介して接続されているが、ノード部1,…,V間は、全結合ではなく疎に結合されていてもよく、何らかのデータを交換できる関係にあればよい。エッジの連結構造についての制約はなく、木構造、循環/円構造でもなんでもよい。要するに、全てのノード部1,…,Vが直接又は間接的につながっている。すなわち、エッジの連結構造は、分割された構造ではない。
複数のノード部1,…,Vは、送受信部11からデータの受信、送受信部11からのデータの送信、記憶部12からデータの読み込み、記憶部12に対するデータの書き込みを適宜行いながら、以下に説明する機械学習処理を行う。機械学習処理は、複数のノード部1,…,Vが図7のステップS1からステップS8の処理を行うことにより例えば実現される。
ノード部1,…,Vは、t=0とする(ステップS1)。
ノード部i(より詳細には、ノード部iの学習部10)は、ノード部iに対応するセンサー部により得られたデータを用いて、以下の式に基づいて双対変数の更新を行う(ステップS2)。すなわち、ノード部iは、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式により定義されるλi|j,b (t+1)の計算を行う。
Figure 0007309004000093
ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて主変数の更新を行う(ステップS3)。すなわち、ノード部iは、i∈~V,b∈~Bのそれぞれに対して、以下の式により定義されるwi,b (t+1)の計算を行う。なお、ステップS3の処理は、主変数が必要な場合に行われる。言い換えれば、ステップS3の処理は、毎回行われなくてもよい。
Figure 0007309004000094
ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて双対補助変数の更新を行う(ステップS4)。すなわち、ノード部iは、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式により定義されるyi|j,b (t+1)の計算を行う。なお、このステップS4の処理は、ステップS5において双対補助変数yi|j,b (t+1)を送信する場合以外は行わなくてもよい。
Figure 0007309004000095
ノード部i(より詳細には、ノード部iの送受信部11)は、双対補助変数yi|j,b (t+1)を別のノード部jに対して送信する処理と、別のノード部jが送信した双対補助変数yj|i,b (t+1)を受信する処理と、の少なくとも何れかを行う、すなわち、以下の式に示すようにノード部の間で情報交換を行う(ステップS5)。例えば、ノード部iは、ノード部iの学習部10が得た双対補助変数yi|j,b (t+1)をノード部iの送受信部11がノード部jに対して送信し、ノード部iの送受信部11がノード部jから受信した双対補助変数をノード部iの学習部10に双対補助変数yj|i,b (t+1)として入力するように動作する。なお、ステップS5の処理は毎回行わなくてよいし、ノード間で非同期でよい。例えば、tが偶数のときにのみ、全てのノード部iが、ノード部iが得た双対補助変数yi|j,b (t+1)を別のノード部jに対して送信する処理と、別のノード部jが出力した双対補助変数yj|i,b (t+1)を受信する処理と、の両方を行い、tが奇数のときには何れのノード部iも双対補助変数の送信も受信もしないようにしてもよい。また、全てのノード部i,jではなく、一部のノード部iのみが一部のノード部jに対してのみに以下の式に示す処理を行ってもよい。言い換えれば、i∈~V, j∈~N(i), b∈~Bとして、少なくとも1つのノード部iが、少なくとも1つのノード部jに双対補助変数yi|j,b (t+1)を送信し、ノード部jが出力した双対補助変数yj|i,b (t+1)を受信する。
Figure 0007309004000096
ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて、双対補助変数の更新を行う(ステップS6)。すなわち、i∈~V, j∈~N(i), b∈~Bとして、ノード部iが、zi|j,b (t+1)=yj|i,b (t+1)とする処理を行う。なお、ステップS6の処理は、ステップS5において双対補助変数yj|i,b (t+1)を受信した場合以外は行わなくてよい。すなわち、ステップS6の処理は、双対補助変数yj|i,b (t+1)を受信したノード部iのみが行えばよい。
Figure 0007309004000097
ノード部1,…,Vは、t=t+1とする(ステップS7)。すなわち、ノード部1,…,Vは、tを1だけインクリメントする。
ノード部1,…,Vは、t=Tであるか判定し(ステップS8)、t=Tであれば処理を終了する。t=Tでない場合には、ステップS2の処理に戻る。
このように、それぞれ入力データが記憶されており、情報を互いに送受信しながら、教師データ及び入力データに基づいて主変数wを用いた写像を機械学習する複数のノード部を含む機械学習システムにおいて、複数のノード部iは、機械学習において用いられる双対変数を最適化すれば、主変数も最適化されるように、かつ、主変数ではなく、双対変数を互いに送受信しながら、機械学習を行う。これにより、ノード部iの間で主変数が送受信されないため、従来よりも秘密性が高い機械学習を行うことができる。
《変形例》
[変形例1]
一般形式のコスト関数ではなく、以下のコスト関数を用いた場合には、
Figure 0007309004000098
ステップS2において、ノード部iは、以下の式に基づいて双対変数の更新を行う。
Figure 0007309004000099
また、ステップS3において、ノード部iは、以下の式に基づいて主変数の更新を行う。
Figure 0007309004000100
[変形例2]
i=1,…,Vとして、ノード部iにDi個のデータが蓄積されているが、Diは時間によって変化してもよい。オンラインの最適化にも対応可能である。このとき、コスト関数は、以下のよう書ける
Figure 0007309004000101
[変形例3]
ステップS5において、ノード部iは、双対補助変数yi|j,b (t+1)ではなく、双対変数λi|j,b (t+1)を送受信してもよい。
この場合、ステップS6の処理は行われない。ステップS6以外のステップの処理は上記と同様に行われる。
[変形例4]
以下では、伝送容量を圧縮するための工夫について説明する。
最適化処理が収束するにつれて、更新差分が0に近づく。その性質を利用して、非可逆な圧縮処理をすれば、更に伝送容量を低く抑えられるはずである。
情報圧縮の方法については様々考えられるが、更新差分を伝送しあうというアイデアを基軸に、(i) フロアリングベースの圧縮処理と、(ii) エントロピー符号化ベースの圧縮処理がある。
まず、参照データがときどき更新されるとし、そのデータとの差分データを変数vとおく。ここで、vi|j,b (t+1)は、更新差分情報である。vi|j,b (t+1)は、収束するほど、0に近い数字に偏る傾向がある。vi|j,b (t+1)は、本来、ノード間で交換したい情報である。mi|j,b (export)は、既に得ている参照情報である。
Figure 0007309004000102
そのvに圧縮処理Cを適用する。
Figure 0007309004000103
(i) フロアリングベースの圧縮処理の場合には、vを構成するそれぞれの要素と閾値thrを比較し、閾値以下であれば0にするような処理をする。thrは、所定の0より大きな所定の数であり、例えば1×10-5等の非常に小さな数である。
Figure 0007309004000104
(ii) エントロピー符号化ベースの圧縮処理の場合には、出現確率に応じてシンボルを割り当てるような処理をしてuを生成する。例えば、出現確率が値に対して、短いシンボルを割り当てることによりuを生成する。
このとき、コスト関数を一般形式で記述した場合の合意形成アルゴリズムは以下のようになる。
T回更新するとして、t∈{0,…,T-1}に対して、以下の(1)から(10)の処理を行う。(2)主変数更新の処理は、行われなくてもよい。なぜならば、wの最適解であるw*はλの式で表されるため、λの最適化過程において、wの更新を必要としないためである。(λが最適化されればwも暗に最適化されたことを意味する)
(1)双対変数更新(ここでは、最小二乗問題に限定せず、コストを一般形式として記述する。)
Figure 0007309004000105
(2)主変数更新(ここでは、最小二乗問題に限定せず、コストを一般形式として記述する。)
Figure 0007309004000106
(3)双対補助変数更新
Figure 0007309004000107
mod (t, Tinterval)=0である場合には、以下の(4)から(6)の処理を行う。すなわち、たまに参照データを更新する。ここで、Tintervalは、所定の正の整数である。
(4) 参照データの更新
Figure 0007309004000108
(5) ノード間で情報交換 (エッジごとに独立(非同期)でよい。)
Figure 0007309004000109
(6)交換して得た情報を使って双対補助変数更新
Figure 0007309004000110
mod (t, Tinterval)=0でない場合には、以下の(7)から(10)の処理を行う。すなわち、ほとんどの時刻で更新差分を伝送しあう。
(7) 更新差分を計算
Figure 0007309004000111
(8) データを圧縮する
Figure 0007309004000112
(9) 圧縮されたデータをノード間で交換
Figure 0007309004000113
(10) 交換して得た情報を使って双対補助変数更新
Figure 0007309004000114
このような伝送容量の削減を行うために、上記の実施形態において、ノード部iは、ステップS5からステップS6の処理に代えて、以下に説明するステップS9からステップS16の処理を行えばよい。他の処理は、上記の実施形態と同様であるため、ここでは重複説明を省略する。図8に、伝送容量の削減を行った機械学習方法の例の流れ図を示す。
ノード部1,…,Vは、mod (t, Tinterval)=0であるか判定する(ステップS9)。
mod (t, Tinterval)=0である場合には、ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて参照データの更新を行う(ステップS10)。すなわち、ノード部iは、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式に基づいて参照データの更新を行う(ステップS10)。
Figure 0007309004000115
ノード部i(より詳細には、ノード部iの送受信部11)は、mi|j,b (export)を別のノード部jに対して送信する処理と、別のノード部jが送信したmj|i,b (import)を受信する処理と、の少なくとも何れかを行う、すなわち、以下の式に示すようにノード部の間で情報交換を行う(ステップS11)。例えば、ノード部iは、ノード部iの学習部10が得たmi|j,b (export)をノード部iの送受信部11がノード部jに対して送信し、ノード部iの送受信部11がノード部jから受信したmj|i,b (import)をノード部iの学習部10に入力するように動作する。また、全てのノード部i,jではなく、一部のノード部iのみが一部のノード部jに対してのみに以下の式に示す処理を行ってもよい。言い換えれば、i∈~V, j∈~N(i), b∈~Bとして、少なくとも1つのノード部iが、少なくとも1つのノード部jにmi|j,b (export)を送信し、ノード部jが出力したmj|i,b (import)を受信する(ステップS11)。
Figure 0007309004000116
ノード部i(より詳細には、ノード部iの学習部10)は、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式に示すように、交換して得た情報を使って双対補助変数zi|j,b (t+1)の更新を行う(ステップS12)。
Figure 0007309004000117
mod (t, Tinterval)=0でない場合には、ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて更新差分を計算する(ステップS13)。すなわち、ノード部iは、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式により定義されるvi|j,b (t+1)の計算を行う。
Figure 0007309004000118
ノード部i(より詳細には、ノード部iの学習部10)は、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式に基づいて、データを圧縮することにより符号をui|j,b (t+1)生成する(ステップS14)。このデータの圧縮は、非可逆であってもよい。ここで、Cは、フロアリングベースの圧縮処理、エントロピー符号化ベースの圧縮処理等の所定の圧縮処理を意味する。
Figure 0007309004000119
ノード部i(より詳細には、ノード部iの送受信部11)は、ui|j,b (t+1)を別のノード部jに対して送信する処理と、別のノード部jが送信したuj|i,b (t+1)を受信する処理と、の少なくとも何れかを行う、すなわち、以下の式に基づいて、圧縮されたデータをノード部間で交換する(ステップS15)。例えば、ノード部iは、ノード部iの学習部10が得たui|j,b (t+1)をノード部iの送受信部11がノード部jに対して送信し、ノード部iの送受信部11がノード部jから受信したuj|i,b (t+1)をノード部iの学習部10に入力するように動作する。また、全てのノード部i,jではなく、一部のノード部iのみが一部のノード部jに対してのみに以下の式に示す処理を行ってもよい。言い換えれば、i∈~V, j∈~N(i), b∈~Bとして、少なくとも1つのノード部iが、少なくとも1つのノード部jに符号ui|j,b (t+1)を送信し、ノード部jが出力した符号uj|i,b (t+1)を受信する(ステップS15)。
Figure 0007309004000120
ノード部i(より詳細には、ノード部iの学習部10)は、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式に基づいて、双対補助変数zi|j,b (t+1)の更新を行う(ステップS16)。
Figure 0007309004000121
なお、ステップ12において、ノード部iは、以下に例示するD-R分割ベースの更新を行ってもよい。通常βは1/2が使われる。
Figure 0007309004000122
また、ステップS16において、ノード部iは、以下に例示するD-R分割ベースの更新を行ってもよい。通常βは1/2が使われる。
Figure 0007309004000123
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
《プログラム及び記録媒体》
機械学習システムを、1つのコンピュータによって実現してもよい。この場合、機械学習システムの各部が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、機械学習システムの処理がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、各部の処理は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理の少なくとも一部をハードウェア的に実現することとしてもよい。
以下、図面を参照して、この発明の一実施形態である第2実施形態について説明する。
<技術的背景>
以下、非凸関数に対する最適化にも適用できる合意形成アルゴリズムについて説明する。
まず、以降の説明で用いる記号の定義について説明する。
Vを2以上の所定の正の整数とし、~V={1,…,V}とする。
Bを所定の正の整数とし、b=1,…,Bとし、~B={1,…,B}とする。
ノード部iにつながっているノード部の集合を~N(i)とする。
ノード部iにおけるノード部jに対する双対変数λi|jを構成するb個目のベクトルをλi|j,bとし、t+1回目の更新後の双対変数λi|j,bをλi|j,b (t+1)とする。
双対変数λi|jの補助変数として双対補助変数zi|jを導入し、それを構成するb個目のベクトルをzi|j,bとし、t+1回目の更新後の双対補助変数zi|j,bをzi|j,b (t+1)とする。なお、zi|jの基本的な性質は、λi|jと同じである。
双対変数λi|jの補助変数として双対補助変数yi|jを導入し、それを構成するb個目のベクトルをyi|j,bとし、t+1回目の更新後の双対補助変数yi|j,bをyi|j,b (t+1)とする。なお、yi|jの基本的な性質は、λi|jと同じである。
ノード部iの主変数wiのb個目の要素をwi,bとし、t回目の更新後の双対補助変数wi,bをwi,b (t)とする。
機械学習で用いられるノード部iに対応するコスト関数をfiとし、コスト関数fiのwi,b (t)に関する一次勾配を∇fi(wi,b (t))とする。
Ai|jは以下の式により定義されるとする。
Figure 0007309004000124
Iを単位行列とし、Oを零行列とし、σ1を所定の正の数とする。Tは更新の総回数であり、正の整数であるが、オンラインの学習を想定した場合には、定数ではない。ηを正の数とする。
基本的なアイデアは、非凸関数を凸関数によって置き換えることである。この操作は、非特許文献3の15.3節にある近接勾配法の考え方に基づく。関数fの勾配が以下のようにリプシッツ連続であると仮定する。ここで、fは非凸の関数であってもよい。
Figure 0007309004000125
ここで、ηは、fiの勾配の平滑さを表しており、ηを十分小さい値にすれば、多くの場合で満たされる仮定である。例えば、h=0.001とする。上記の式を満たすとき、fiは1/η平滑関数と呼ばれる。
fiが1/η平滑関数であるとき、以下の不等式関係が成り立つ。
Figure 0007309004000126
ここから以下を導ける。ここで、x,yを任意のベクトルとして、<x,y>はxとyの内積を表す。なお、ηが小さいほど、右辺の凸関数の勾配が大きい(鋭い関数になる)ので、コストの上界であるという条件を満たす。このため、ηは、小さい数であってもよい。ただし、ηが小さすぎると、更新のステップが小さくなるので、最適解にたどり着くまでに時間がかかるという特徴がある。
Figure 0007309004000127
この式は、コスト関数fiの上界となる凸関数(右辺)を導出したことを示している。たとえ、fiが非凸関数であったとしても、その代わりに上界となる代理凸関数(右辺)を最小化するという手段をとれば、PDMMの合意型エッジコンピューティングの考え方を非凸関数にも取り入れられるはずである。
ここで、補足説明として、コスト関数fiの代わりにその上界となる代理凸関数を最小化するとはどういうことかについて説明する。
図4において、実線は元々のコスト関数fiを表す。図4では、コスト関数fiを非凸関数として書いている。図4において、一点鎖線は、上界となる代理凸関数giを表す。
Figure 0007309004000128
ここで、fi(wi,b (t))は、更新時刻tにおける関数出力であり、計算可能である。また、∇fi(wi,b (t))は、更新時刻tにおける関数の勾配であり、DNNを想定した場合、確率的最適化の枠組みで計算可能である。
このため、fiに関する一次勾配さえ計算できるのであれば、上記の代理凸関数giは計算できる。DNNはそれに該当する。
なお、代理関数は、上記以外の別のものでもよい。先に示した代理凸関数giは、元のコストの上界を表現しており、コスト関数の一次勾配さえ求まればよいという利点があった。それは非凸関数にも適用できるというメリットでもある。
しかし、もし、コスト関数の二次勾配が求まるのであれば、以下のような代理関数を使ってもよい。以下の式の下線部分を代理関数とする。
Figure 0007309004000129
これは、二次のテーラー展開を用いて表現した(上界ではなく)近似関数である。この代理関数を用いると、元のコスト関数に対する近似精度が高いので、元のコストを小さくすることとのギャップがより小さくなることが見込める。
代理凸関数の概念としては、元のコスト関数を最小化することと相反しない凸関数であり、上界や近似といった考え方で実装できる。具体的には、元のコスト関数の主変数に関する一次、場合によっては二次の勾配を使って計算できる凸関数である。
以下では、コスト関数を代理凸関数giとした場合のPDMMアルゴリズムの導出について説明する。
Figure 0007309004000130
この時、双対問題は以下で書ける。
Figure 0007309004000131
変数の定義は以下の通りである。なお、以下のfは一例であり、他のfを用いてもよい。
Figure 0007309004000132
主変数及び双対変数のそれぞれで合意形成するという条件は以下で書ける。
Figure 0007309004000133
関数gの凸共役関数g*を解くことで、wの最適解を導く。
Figure 0007309004000134
括弧内を最大化するwは、以下である。
Figure 0007309004000135
このプロセスは各ノードごとに分割して書くことができる。
Figure 0007309004000136
これを双対関数に代入することで、以下の式を得る。このように、双対変数λに関する真凸閉関数にする。
Figure 0007309004000137
元の双対問題は以下で書ける。
Figure 0007309004000138
この問題を解くために、PDMMと同様に以下のようなコストを設計する。
Figure 0007309004000139
この問題をP-R分割で解く場合には、以下の演算で構成されることは従来法で説明した。
Figure 0007309004000140
上記の式において、「∈」の記号は、集合の要素を表すのではなく、右辺の演算結果を左辺に代入することを意味する。通常、こうした操作は「=」を用いて表現することが多いが、コスト関数に不連続な閉真凸関数を用いた場合に、非可逆な変換が行われることがある(1対1対応しない演算をすることがあり得る)。「=」は通常、1対1対応するような変換(関数)に用いられる記号であるため、それと区別するために「∈」の記号を用いることとする。
このうち、一番上の演算は、以下に対応している。
Figure 0007309004000141
g*を再掲する。
Figure 0007309004000142
括弧内を最大化するw(主変数の最適解)を求める。すなわち、上記式の括弧内を微分した値を0とするwb *を求めると以下のようになる。
Figure 0007309004000143
次に、P-R分割の一番上の演算を満たす双対変数の最適解を導く。
Figure 0007309004000144
括弧内を双対変数に関して微分し、途中計算を省略するが以下の式が得られる。
Figure 0007309004000145
ノードごとの演算に分割すると、P-R分割ベースで代理凸関数を用いて変数最適化アルゴリズムが得られる。このアルゴリズムのことを、Quadratic PDMMとも呼ぶ。Quadratic PDMMは、以下のようになる。
T回更新するとして、t∈{0,…,T-1}に対して、以下の(1)から(5)の処理を行う。
(1)双対変数更新
Figure 0007309004000146
(2)主変数更新
Figure 0007309004000147
(3)双対補助変数更新
Figure 0007309004000148
(4) 毎回である必要はないし、エッジごとに独立(非同期)でよいが、双対補助変数をノード間で更新する。
Figure 0007309004000149
(5) 交換して得た情報を使って双対補助変数更新
Figure 0007309004000150
なお、最後の(5)のステップについては、以下の演算と置き換えることで、収束性を低くする代わりに、収束過程において高い安定性を見込めるDouglas Rachford (D-R)分割になる。通常βは1/2が使われる。
Figure 0007309004000151
Quadratic-PDMMアルゴリズムでは、代理凸関数が更新時刻ごとに変わっている点で秘密性は高いと言える。
Quadratic-PDMMアルゴリズムがノード間で異質なデータセットを持っている場合にも、収束することを示すために、収束率を導出する。問題は、以下のように2種類の凸関数で構成されたコストの最小化問題であった。
Figure 0007309004000152
まず、gは、1/η-強凸関数であることを示す。
もし、g(wb)-(1/(2η))||wb||2が凸関数であれば、gが 1/η-強凸関数であることと等価である(例えば、非特許文献3の2.2.5節参照。)。
Figure 0007309004000153
ここで、ηが十分に小さいことが仮定されていることから、cosθは負値になるだろう。
Figure 0007309004000154
そのとき、g(wb)-(1/(2η))||wb||2は凸関数になるから、gは1/η-強凸関数であろう。
次に、非特許文献3の2.2.5節より、gが1/η-強凸関数であるとき、g*はη-平滑関数になることが知られている。そのとき、以下の性質を満たす。
Figure 0007309004000155
近接写像関数を以下のように定義する。
Figure 0007309004000156
近接写像の定義より、以下の関係を得られる。
Figure 0007309004000157
そのとき、
Figure 0007309004000158
g*がη-平滑関数であるから、以下の関係を満たす。
Figure 0007309004000159
そのとき、以下の関係を満たす。
Figure 0007309004000160
Figure 0007309004000161
と代入すると、以下の関係を得られる。
Figure 0007309004000162
Gは、η-平滑関数であるg*と凸性の非常に強い指示関数δで構成される。指示関数がGに含まれているので、Gは強い凸性の関数であると言える。Gをξ-強凸関数であると仮定すると、以下を満たす。
Figure 0007309004000163
そのとき、以下を満たす。
Figure 0007309004000164
よって以下になる。
Figure 0007309004000165
式変形をすると、収束率が求まる。
Figure 0007309004000166
ξは十分値が大きく、ηは十分小さな値であることを仮定しているので、収束率は高い。また、この中にデータセットの異質性に依存する変数が存在しないことから、データセットの統計的性質に依存しないで、収束することが想定される。
<第2実施形態>
図5に示すように、機械学習システムは、複数のノード部1,…,V、複数のセンサ部1S1,…,1,2S1,…,2,VS1,…,V、インターネット0N、LAN 1N,…,VNを例えば備えている。複数のノード部1,…,Vのそれぞれは、サーバ、PC等の情報処理機器である。ノード部1,…,Vのそれぞれには、図6で示すように、学習部10と送受信部11が設けられており、学習部10内には記憶部12が設けられている。記憶部12には、以下に説明する処理及び計算に必要なデータが記憶されているとする。
センサー部1S1,…,1,2S1,…,2,VS1,…,Vは、様々な環境(例えば、家、工場、野外及びビル)に、分散して配置された多数のセンサー(例えば、マイク、カメラ、温度計)である。図5の例では、センサー部は1S1,…,1はノード部1に対応するセンサーである。すなわち、センサー部は1S1,…,1はノード部1の学習部10での機械学習で用いられるデータを取得するセンサーであり、センサー部は1S1,…,1のそれぞれはノード部1とLAN 1Nで接続されている。その他のセンサー部についても同様である。それらのセンサー部1S1,…,1,2S1,…,2,VS1,…,Vを通じて得られたデータは、複数のノード部1,…,V(例えば、サーバ、PC)に蓄積される。なお、データは、センサー部1S1,…,1,2S1,…,2,VS1,…,Vから得られるものに限らず、入力装置やWeb等から得られる文字データ等でも構わない。また、図5の例ではセンサー部1S1,…,1,2S1,…,2,VS1,…,VはLAN1N,…,VNでノード部1,…,Vに接続されているが、センサー部1S1,…,1,2S1,…,2,VS1,…,Vはインターネット0Nを介してノード部1,…,Vに接続されていてもよいし、その他の接続手段で接続されていてもよいし、要するに、センサー部1S1,…,1,2S1,…,2,VS1,…,Vが得たデータをノード部1,…,Vが用いるようにされていればよい。
図5の例ではノード部1,…,Vはインターネット0Nを介して接続されているが、ノード部1,…,V間は、全結合ではなく疎に結合されていてもよく、何らかのデータを交換できる関係にあればよい。エッジの連結構造についての制約はなく、木構造、循環/円構造でもなんでもよい。要するに、全てのノード部1,…,Vが直接又は間接的につながっている。すなわち、エッジの連結構造は、分割された構造ではない。
複数のノード部1,…,Vは、送受信部11からデータの受信、送受信部11からのデータの送信、記憶部12からデータの読み込み、記憶部12に対するデータの書き込みを適宜行いながら、以下に説明する機械学習処理を行う。機械学習処理は、複数のノード部1,…,Vが図7のステップS1からステップS8の処理を行うことにより例えば実現される。
ノード部1,…,Vは、t=0とする(ステップS1)。
ノード部i(より詳細には、ノード部iの学習部10)は、ノード部iに対応するセンサー部により得られたデータを用いて、以下の式に基づいて双対変数の更新を行う(ステップS2)。すなわち、ノード部iは、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式により定義されるλi|j,b (t+1)の計算を行う。
Figure 0007309004000167
ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて主変数の更新を行う(ステップS3)。すなわち、ノード部iは、i∈~V,b∈~Bのそれぞれに対して、以下の式により定義されるwi,b (t+1)の計算を行う。
Figure 0007309004000168
ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて双対補助変数の更新を行う(ステップS4)。すなわち、ノード部iは、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式により定義されるyi|j,b (t+1)の計算を行う。なお、このステップS4の処理は、ステップS5において双対補助変数yi|j,b (t+1)を送信する場合以外は行わなくてもよい。
Figure 0007309004000169
ノード部i(より詳細には、ノード部iの送受信部11)は、双対補助変数yi|j,b (t+1)を別のノード部jに対して送信する処理と、別のノード部jが送信した双対補助変数yj|i,b (t+1)を受信する処理と、の少なくとも何れかを行う、すなわち、以下の式に示すようにノード部の間で情報交換を行う(ステップS5)。例えば、ノード部iは、ノード部iの学習部10が得た双対補助変数yi|j,b (t+1)をノード部iの送受信部11がノード部jに対して送信し、ノード部iの送受信部11がノード部jから受信した双対補助変数をノード部iの学習部10に双対補助変数yj|i,b (t+1)として入力するように動作する。なお、ステップS5の処理は毎回行わなくてよいし、ノード間で非同期でよい。例えば、tが偶数のときにのみ、全てのノード部iが、ノード部iが得た双対補助変数yi|j,b (t+1)を別のノード部jに対して送信する処理と、別のノード部jが出力した双対補助変数yj|i,b (t+1)を受信する処理と、の両方を行い、tが奇数のときには何れのノード部iも双対補助変数の送信も受信もしないようにしてもよい。また、全てのノード部i,jではなく、一部のノード部iのみが一部のノード部jに対してのみに以下の式に示す処理を行ってもよい。言い換えれば、i∈~V, j∈~N(i), b∈~Bとして、少なくとも1つのノード部iが、少なくとも1つのノード部jに双対補助変数yi|j,b (t+1)を送信し、ノード部jが出力した双対補助変数yj|i,b (t+1)を受信する。
Figure 0007309004000170
ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて、双対補助変数の更新を行う(ステップS6)。すなわち、i∈~V, j∈~N(i), b∈~Bとして、ノード部iが、zi|j,b (t+1)=yj|i,b (t+1)とする処理を行う。なお、ステップS6の処理は、ステップS5において双対補助変数yj|i,b (t+1)を受信した場合以外は行わなくてよい。すなわち、ステップS6の処理は、双対補助変数yj|i,b (t+1)を受信したノード部iのみが行えばよい。
Figure 0007309004000171
ノード部1,…,Vは、t=t+1とする(ステップS7)。すなわち、ノード部1,…,Vは、tを1だけインクリメントする。
ノード部1,…,Vは、t=Tであるか判定し(ステップS8)、t=Tであれば処理を終了する。t=Tでない場合には、ステップS2の処理に戻る。
このように、それぞれ入力データが記憶されており、情報を互いに送受信しながら、教師データ及び上記入力データに基づいて主変数を用いた写像を機械学習する複数のノード部を含む機械学習システムにおいて、機械学習で用いられるコスト関数に代えて、コスト関数の上界となる代理凸関数を最小化するように機械学習が行われる。言い換えれば、複数のノード部が、情報を互いに送受信しながら、それぞれの入力データに基づいて共通するある1つの主変数を用いた写像を機械学習するステップを含む機械学習方法において、
複数のノード部は、機械学習に本来対応する非凸関数のコスト関数に代えて、コスト関数の上界となる代理凸関数を最小化するように機械学習が行われる。
また、代理凸関数は、コスト関数の主変数に関する一次勾配の式、又は、コスト関数の主変数に関する一次勾配の式及び二次勾配の式で表されている。
コスト関数に代えてコスト関数の上界となる代理凸関数を用いることで、コスト関数が凸関数でない場合にも機械学習を行うことができる。また、ノード部iの間で主変数が送受信されないため、従来よりも秘密性が高い機械学習を行うことができる。
《変形例》
[変形例1]
i=1,…,Vとして、ノード部iにDi個のデータが蓄積されているが、Diは時間によって変化してもよい。オンラインの最適化にも対応可能である。このとき、コスト関数は、以下のよう書ける
Figure 0007309004000172
[変形例2]
ステップS5において、ノード部iは、双対補助変数yi|j,b (t+1)ではなく、双対変数λi|j,b (t+1)を送受信してもよい。
この場合、ステップS6の処理は行われない。ステップS6以外のステップの処理は上記と同様に行われる。
[変形例3]
以下では、伝送容量を圧縮するための工夫について説明する。
最適化処理が収束するにつれて、更新差分が0に近づく。その性質を利用して、非可逆な圧縮処理をすれば、更に伝送容量を低く抑えられるはずである。
情報圧縮の方法については様々考えられるが、更新差分を伝送しあうというアイデアを基軸に、(i) フロアリングベースの圧縮処理と、(ii) エントロピー符号化ベースの圧縮処理がある。
まず、参照データがときどき更新されるとし、そのデータとの差分データを変数vとおく。ここで、vi|j,b (t+1)は、更新差分情報である。vi|j,b (t+1)は、収束するほど、0に近い数字に偏る傾向がある。vi|j,b (t+1)は、本来、ノード間で交換したい情報である。mi|j,b (export)は、既に得ている参照情報である。
Figure 0007309004000173
そのvに圧縮処理Cを適用する。
Figure 0007309004000174
(i) フロアリングベースの圧縮処理の場合には、vを構成するそれぞれの要素と閾値thrを比較し、閾値以下であれば0にするような処理をする。thrは、所定の0より大きな所定の数であり、例えば1×10-5等の非常に小さな数である。
Figure 0007309004000175
(ii) エントロピー符号化ベースの圧縮処理の場合には、出現確率に応じてシンボルを割り当てるような処理をしてuを生成する。例えば、出現確率が値に対して、短いシンボルを割り当てることによりuを生成する。
このとき、コスト関数を一般形式で記述した場合の合意形成アルゴリズムは以下のようになる。
T回更新するとして、t∈{0,…,T-1}に対して、以下の(1)から(10)の処理を行う。
(1)双対変数更新
Figure 0007309004000176
(2)主変数更新
Figure 0007309004000177
(3)双対補助変数更新
Figure 0007309004000178
mod (t, Tinterval)=0である場合には、以下の(4)から(6)の処理を行う。すなわち、たまに参照データを更新する。ここで、Tintervalは、所定の正の整数である。
(4) 参照データの更新
Figure 0007309004000179
(5) ノード間で情報交換 (エッジごとに独立(非同期)でよい。)
Figure 0007309004000180
(6)交換して得た情報を使って双対補助変数更新
Figure 0007309004000181
mod (t, Tinterval)=0でない場合には、以下の(7)から(10)の処理を行う。すなわち、ほとんどの時刻で更新差分を伝送しあう。
(7) 更新差分を計算
Figure 0007309004000182
(8) データを圧縮する
Figure 0007309004000183
(9) 圧縮されたデータをノード間で交換
Figure 0007309004000184
(10) 交換して得た情報を使って双対補助変数更新
Figure 0007309004000185
このような伝送容量の削減を行うために、上記の実施形態において、ノード部iは、ステップS5からステップS6の処理に代えて、以下に説明するステップS9からステップS16の処理を行えばよい。他の処理は、上記の実施形態と同様であるため、ここでは重複説明を省略する。図8に、伝送容量の削減を行った機械学習方法の例の流れ図を示す。
ノード部1,…,Vは、mod (t, Tinterval)=0であるか判定する(ステップS9)。
mod (t, Tinterval)=0である場合には、ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて参照データの更新を行う(ステップS10)。すなわち、ノード部iは、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式に基づいて参照データの更新を行う(ステップS10)。
Figure 0007309004000186
ノード部i(より詳細には、ノード部iの送受信部11)は、mi|j,b (export)を別のノード部jに対して送信する処理と、別のノード部jが送信したmj|i,b (import)を受信する処理と、の少なくとも何れかを行う、すなわち、以下の式に示すようにノード部の間で情報交換を行う(ステップS11)。例えば、ノード部iは、ノード部iの学習部10が得たmi|j,b (export)をノード部iの送受信部11がノード部jに対して送信し、ノード部iの送受信部11がノード部jから受信したmj|i,b (import)をノード部iの学習部10に入力するように動作する。また、全てのノード部i,jではなく、一部のノード部iのみが一部のノード部jに対してのみに以下の式に示す処理を行ってもよい。言い換えれば、i∈~V, j∈~N(i), b∈~Bとして、少なくとも1つのノード部iが、少なくとも1つのノード部jにmi|j,b (export)を送信し、ノード部jが出力したmj|i,b (import)を受信する(ステップS11)。
Figure 0007309004000187
ノード部i(より詳細には、ノード部iの学習部10)は、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式に示すように、交換して得た情報を使って双対補助変数zi|j,b (t+1)の更新を行う(ステップS12)。
Figure 0007309004000188
mod (t, Tinterval)=0でない場合には、ノード部i(より詳細には、ノード部iの学習部10)は、以下の式に基づいて更新差分を計算する(ステップS13)。すなわち、ノード部iは、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式により定義されるvi|j,b (t+1)の計算を行う。
Figure 0007309004000189
ノード部i(より詳細には、ノード部iの学習部10)は、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式に基づいて、データを圧縮することにより符号をui|j,b (t+1)生成する(ステップS14)。このデータの圧縮は、非可逆であってもよい。ここで、Cは、フロアリングベースの圧縮処理、エントロピー符号化ベースの圧縮処理等の所定の圧縮処理を意味する。
Figure 0007309004000190
ノード部i(より詳細には、ノード部iの送受信部11)は、ui|j,b (t+1)を別のノード部jに対して送信する処理と、別のノード部jが送信したuj|i,b (t+1)を受信する処理と、の少なくとも何れかを行う、すなわち、以下の式に基づいて、圧縮されたデータをノード部間で交換する(ステップS15)。例えば、ノード部iは、ノード部iの学習部10が得たui|j,b (t+1)をノード部iの送受信部11がノード部jに対して送信し、ノード部iの送受信部11がノード部jから受信したuj|i,b (t+1)をノード部iの学習部10に入力するように動作する。また、全てのノード部i,jではなく、一部のノード部iのみが一部のノード部jに対してのみに以下の式に示す処理を行ってもよい。言い換えれば、i∈~V, j∈~N(i), b∈~Bとして、少なくとも1つのノード部iが、少なくとも1つのノード部jに符号ui|j,b (t+1)を送信し、ノード部jが出力した符号uj|i,b (t+1)を受信する(ステップS15)。
Figure 0007309004000191
ノード部i(より詳細には、ノード部iの学習部10)は、i∈~V,j∈~N(i),b∈~Bのそれぞれに対して、以下の式に基づいて、双対補助変数zi|j,b (t+1)の更新を行う(ステップS16)。
Figure 0007309004000192
なお、ステップ12において、ノード部iは、以下に例示するD-R分割ベースの更新を行ってもよい。通常βは1/2が使われる。
Figure 0007309004000193
また、ステップS16において、ノード部iは、以下に例示するD-R分割ベースの更新を行ってもよい。通常βは1/2が使われる。
Figure 0007309004000194
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
《プログラム及び記録媒体》
機械学習システムを、1つのコンピュータによって実現してもよい。この場合、機械学習システムの各部が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、機械学習システムの処理がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、各部の処理は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理の少なくとも一部をハードウェア的に実現することとしてもよい。
以下、本発明の実施形態である第3実施形態及び第4実施形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
各実施形態の説明に先立って、この明細書における表記方法について説明する。
_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
<技術的背景>
本願では、リゾルヴェント作用素やケーリー作用素を用いる代わりに、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いる。つまり、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づき、変数更新則を構成する。以下、詳細に説明する。
《1:ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の定義》
まず、ブレグマンダイバージェンスBについて説明する。ブレグマンダイバージェンスBは連続で微分可能な狭義凸関数Dを用いて以下のように定義される(以後、連続で微分可能な狭義凸関数のことを単に狭義凸関数という)。
Figure 0007309004000195
関数Dとして任意の狭義凸関数を用いることができる。なお、ユークリッド距離もブレグマンダイバージェンスの一種である。また、ブレグマンダイバージェンスBが関数Dを用いて定義されることを明示するために、ブレグマンダイバージェンスBDと書くこともある。
狭義凸関数Dは、ある種の連続性を有する関数である。具体的には、狭義凸関数Dは、強凸(SC: strong convex)とリプシッツ平滑(LS: Lipschitz smooth)という性質を有する。これらの性質は以下のように表現できる。
(性質1)2次のテーラー展開を用いると、関数Dに対して、点wの周りにおいて以下の近似式が成り立つ。
Figure 0007309004000196
ここで、ヘシアン行列HD(w) (HD(w)∈Rm×m)は、正定値行列である。
Figure 0007309004000197
なお、行列A,Bに対して、次式は行列B-Aが正定値であることを表す。
Figure 0007309004000198
(性質2)関数DのLS(上界)とSC(下界)は、任意のベクトルh∈Rmを用いて、以下のように表現できる。
Figure 0007309004000199
ここで、ヘシアン行列KD, MD (KD∈Rm×m, MD∈Rm×m)は、正定値行列である。また、ヘシアン行列HD(w)との間に以下の関係が成り立つ。
Figure 0007309004000200
次に、ブレグマンダイバージェンスを用いて、リゾルヴェント作用素、ケーリー作用素を一般化する。一般化したリゾルヴェント作用素、ケーリー作用素をそれぞれブレグマンリゾルヴェント作用素、ブレグマンケーリー作用素という。なお、ブレグマンリゾルヴェント作用素については参考非特許文献2に記載がある。
(参考非特許文献2: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は、次式で与えられる。
Figure 0007309004000201
なお、以下のように関数Dを二乗したL2ノルムを用いて定義すると、ブレグマンダイバージェンスBはユークリッド距離に対応し、ブレグマンリゾルヴェント作用素Rnとブレグマンケーリー作用素Cnはそれぞれリゾルヴェント作用素Ωn、ケーリー作用素Ψnに対応する。具体的に説明する。関数Dの劣微分は以下のようになる。
Figure 0007309004000202
関数Dの劣微分をブレグマンリゾルヴェント作用素Rnとブレグマンケーリー作用素Cnにそれぞれ代入すると、リゾルヴェント作用素Ωn、ケーリー作用素Ψnが得られる。
Figure 0007309004000203
《2:ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の収束率》
ここでは、ブレグマンリゾルヴェント作用素、ブレグマンケーリー作用素の収束率に関して、2つのケースについて説明する。
[ケース1]:関数G1は、狭義凸関数である、すなわち、強凸(SC)かつリプシッツ平滑(LS)である。
このとき、先述した通り、以下の性質が成り立つ。
(性質1)2次のテーラー展開を用いると、関数G1に対して、点wの周りにおいて以下の近似式が成り立つ。
Figure 0007309004000204
(性質2)関数G1のLS(上界)とSC(下界)は、任意のベクトルh∈Rmを用いて、以下のように表現できる。
Figure 0007309004000205
ここで、ヘシアン行列HG_1(w), KG_1, MG_1は、以下の関係をもつ。
Figure 0007309004000206
この2つの性質を用いて、以下の定理1と定理2が証明できる。
(定理1)関数G1がSCかつLSである場合、ブレグマンレゾルヴェント作用素R1は以下の収束率をもつ。
Figure 0007309004000207
式(4-8)に含まれる係数σmax,1, σmin,1は次式で与えられる。ここで、Λmaxは最大固有値、 Λminは最小固有値を表す。
Figure 0007309004000208
なお、狭義凸関数Dとして、以下の条件を満たすものを用いる。
Figure 0007309004000209
(定理2)関数G1がSCかつLSである場合、ブレグマンケーリー作用素C1は以下の収束率をもつ。
Figure 0007309004000210
式(4-12)に含まれる係数η1は次式で与えられる。
Figure 0007309004000211
係数σ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の周りにおいて以下の近似式が成り立つ。
Figure 0007309004000212
(性質2)関数G2のLS(上界)とSC(下界)は、任意のベクトルh∈Rmを用いて、以下のように表現できる。
Figure 0007309004000213
ここで、ヘシアン行列HG_2(w), KG_2, MG_2は、以下の関係をもつ。
Figure 0007309004000214
関数G1について成り立つ定理1、定理2と同様の定理が、関数G2についても成り立つ。
(定理3)関数G2がSCかつLSである場合、ブレグマンレゾルヴェント作用素R2は以下の収束率をもつ。
Figure 0007309004000215
式(4-17)に含まれる係数σmax,2, σmin,2は次式で与えられる。
Figure 0007309004000216
なお、狭義凸関数Dとして、以下の条件を満たすものを用いる。
Figure 0007309004000217
(定理4)関数G2がSCかつLSである場合、ブレグマンケーリー作用素C2は以下の収束率をもつ。
Figure 0007309004000218
式(4-20)に含まれる係数η2は次式で与えられる。
Figure 0007309004000219
係数σmax,2, σmin,2は式(4-18)、式(4-19)で与えられるものである。
《3:一般化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)を以下のように変形していく。
Figure 0007309004000220
ここで、以下の関係を持つ、w(w∈Rm)の補助変数z(z∈Rm)を導入する。
Figure 0007309004000221
変数zを用いてさらに変形していく。
Figure 0007309004000222
これより、以下の通り、一般化P-R型単調作用素分割が得られる。
Figure 0007309004000223
式(4-22)と式(3-1)から、式(3-1)のケーリー作用素をブレグマンケーリー作用素に置き換えたものが式(4-22)になっていることがわかる。
一般化P-R型単調作用素分割の変数更新則は、w(∈Rm)の補助変数x, y, z(x∈Rm, y∈Rm, z∈Rm)を用いて式(4-22)を分解することにより得られる。
Figure 0007309004000224
式(4-23)の演算を具体化する。つまり、以下のように変形する。
Figure 0007309004000225
さらに積分形にすることにより、以下を得る。
Figure 0007309004000226
式(4-25)の演算についても同様に具体化すると、以下が得られる。
Figure 0007309004000227
次に、一般化P-R型単調作用素分割の収束率について説明する。ケース1、ケース2に場合分けして、収束率を導出する。まず、ケース1について説明する。ケース1については、ブレグマンケーリー作用素C1の非拡大性しか仮定できない(つまり、定理2は成り立つが、定理4は成り立たない)。したがって、式(4-23)~(4-26)より、ztの収束率は以下の不等式で表される。
Figure 0007309004000228
式(4-29)より、ztとzの停留点z*との誤差は以下のように評価できる。
Figure 0007309004000229
同様に、zt+1とzの停留点z*との誤差は以下のように評価できる。
Figure 0007309004000230
式(4-30)と式(4-31)より、以下の関係を得る。
Figure 0007309004000231
よって、t回の更新を経たときの誤差(収束率)は以下で表される。
Figure 0007309004000232
次に、ケース2について説明する。ケース2については、ブレグマンケーリー作用素C1,C2の非拡大性を担保できる(つまり、定理2、定理4のいずれも成り立つ)。したがって、式(4-23)~(4-26)より、ztの収束率は以下の不等式で表される。
Figure 0007309004000233
ケース1と同様にして、以下の関係を得る。
Figure 0007309004000234
式(4-33)、式(4-36)からわかるように、ケース1、ケース2いずれの場合も、ηiを小さくすることができれば、収束率を高くすることができる。
[一般化D-R型単調作用素分割]
一般化D-R型単調作用素分割は式(4-22)に平均化作用素を加えることで得られる。
Figure 0007309004000235
式(4-37)と式(3-2)から、式(3-2)のケーリー作用素をブレグマンケーリー作用素に置き換えたものが式(4-37)になっていることがわかる。
一般化D-R型単調作用素分割の変数更新則は、w(∈Rm)の補助変数x, y, z(x∈Rm, y∈Rm, z∈Rm)を用いて式(4-37)を分解することにより得られる。
Figure 0007309004000236
次に、一般化D-R型単調作用素分割の収束率について説明する。ケース1、ケース2に場合分けして、収束率を導出する。まず、ケース1について説明する。ケース1については、ブレグマンケーリー作用素C1の非拡大性しか仮定できない(つまり、定理2は成り立つが、定理4は成り立たない)。したがって、式(4-38)~(4-41)より、ztの収束率は以下の不等式で表される。
Figure 0007309004000237
よって、t回の更新を経たときの誤差(収束率)は以下で表される。
Figure 0007309004000238
次に、ケース2について説明する。ケース2については、ブレグマンケーリー作用素C1,C2の非拡大性を担保できる(つまり、定理2、定理4のいずれも成り立つ)。したがって、式(4-38)~(4-41)より、ztの収束率は以下の不等式で表される。
Figure 0007309004000239
式(4-43)及び式(4-45)からわかるように、ケース1、ケース2いずれの場合も、ηiを小さくすることができれば、αを1に近づけていくことにより、収束率を高くすることができる。なお、αを1に近づけていくということは、一般化D-R型単調作用素分割を一般化P-R型単調作用素分割に近づけていくことを意味する。
《4:高収束率を得るためのブレグマンダイバージェンス設計》
一般化P-R型単調作用素分割や一般化D-R型単調作用素分割による変数更新則を用いることにより、最適解を求めることができる。ここでは、より高速に最適解を求めることができるような、ブレグマンダイバージェンスの設計(関数Dの設計)について説明する。具体的には、2つの設計方法について説明する。
まず、これまでの議論で得られた結果についてまとめる。ケース1、ケース2いずれの場合も、式(4-13)で与えられるη1、式(4-21)で与えられるη2を0に近づけることにより、一般化P-R型単調作用素分割の変数更新則、一般化D-R型単調作用素分割の変数更新則いずれであっても高い収束率で最適解に収束する。
Figure 0007309004000240
このηiを0に近づけることは、式(4-9)、式(4-10)、式(4-18)、式(4-19)で与えられる固有値σmax,i, σmin,iを1に近づけることで実現できる。最大固有値σmax,i、最小固有値σmin,iとも1に近づけることは、固有値分布が平滑になることに対応する。
Figure 0007309004000241
固有値を1に近づけるためには、関数Dのヘシアン行列HDの逆行列が関数Giのヘシアン行列HG_iの逆行列となるように設計するとよい。
Figure 0007309004000242
関数Giは式(4-5)、式(4-14)の近似式により表現されることから、関数Dを次式のような2次式で表現し、ヘシアン行列HDを適切に設計することで、式(4-47)を実現できる。
Figure 0007309004000243
式(4-48)をブレグマンダイバージェンスの定義式である式(4-1)に代入すると以下を得る。
Figure 0007309004000244
[ニュートン法に従うブレグマンダイバージェンス設計]
式(4-49)に従いブレグマンダイバージェンスを設計する際、式(4-47)を最も忠実に満たすようにするには、ヘシアン行列HDを式(4-50)に従うように設計するとよい。なお、この設計は、二次収束性の最適化法としてよく知られているニュートン法に通じるものである。式(4-50)の代わりに、BFGS法などのヘシアン行列の近似計算法を用いてもよい。
Figure 0007309004000245
なお、実数ε>0は学習のステップサイズを決めるパラメータに相当し、ヘシアン行列HD (2GD)の固有値が0より大きく1以下に収まるように選ぶ必要がある。
また、式(4-50)では、(case2)において相加平均を用いたが、相加平均の代わりに、相乗平均を用いてもよい。
Figure 0007309004000246
式(4-50)(式(4-50’))は、ケース1、ケース2に分けてヘシアン行列HDを設計していることを示している。ケース2の場合、関数G1、G2の双方に対して、式(4-47)を満たすようにすることが理想的であるが、実際、このことを担保するのは難しい。そこで、ケース2について、式(4-50)(式(4-50’))のように設計することにした。この設計が好ましい理由は、ヘシアン行列に関して、以下の数学的性質が成り立つためである。具体的に説明する。まず、ヘシアン行列HDの逆行列を計算する。
Figure 0007309004000247
ここで、式(4-47)式のようにHD -1とHG_iを掛け合わせると、以下のようになる。
Figure 0007309004000248
これらの2つの式は、HG_1とHG_2が近いほど、式(4-47)を満たすようになることを示している。
[加速勾配法に従うブレグマンダイバージェンス設計]
ニュートン法に従うブレグマンダイバージェンス設計を用いた場合、実際の変数更新則では、ヘシアン行列HDの逆行列を計算する必要があるが、この計算には非常に大きなコストがかかる。この計算コストの問題を克服するために、式(4-47)の再現性を多少犠牲にして、ヘシアン行列HDの逆行列の計算コストを下げることにする。このような設計として、加速勾配法に従うブレグマンダイバージェンス設計を説明する。この設計は簡単に説明すると、ヘシアン行列HDを対角行列に制約したうえで、式(4-47)をできるだけ満たすようにヘシアン行列HDを設計するものである。なお、この設計は、超一次収束として知られている加速勾配法に通じるものである。
加速勾配法を実現するための方法は様々提案されている。例えば、モメンタム法、AdaGrad法、Adam法、RMSProp法などがある。ここでは、RMSProp法を用いた設計について説明する。
Figure 0007309004000249
なお、実数ε>0は学習のステップサイズを決めるパラメータに相当し、ヘシアン行列HD (AGD)の固有値が0より大きく1以下に収まるように選ぶ必要がある。
また、式(4-51)では、(case2)において相加平均を用いたが、相加平均の代わりに、相乗平均を用いてもよい。
Figure 0007309004000250
また、LG_1とLG_2は基本的には対角行列となることを想定された行列であり、RMSProp法では以下のように設計する。
Figure 0007309004000251
ただし、ヘシアン行列HDの逆行列の計算コストを多少犠牲にしてもよい場合、LG_1, LG_2は必ずしも対角行列である必要はない。非対角成分も用いる場合のRMSProp法では以下のように設計する。
Figure 0007309004000252
《5:エッジコンピューティングにおける合意形成問題への適用》
ここでは、エッジコンピューティングにおける合意形成問題を例として、ブレグマンダイバージェンスを用いて一般化された単調作用素分割を用いた再帰的な変数更新則である変数更新アルゴリズムについて説明する。
式(3-3)~式(3-6)に対応する再帰的な変数更新則は以下のようになる。
Figure 0007309004000253
式(4-54)が一般化P-R型単調作用素分割に、式(4-55)が一般化D-R型単調作用素分割に対応する。
なお、変数更新則の導出に際して、ブレグマンケーリー作用素C2が以下の式を満たすことを用いた。その証明については省略するが、非特許文献4に示された証明戦略をブレグマンケーリー作用素に適用すれば得られる結果である。
Figure 0007309004000254
また、式(4-48)を用いる際の関数Dの劣微分とその逆作用素は以下のようになる。
Figure 0007309004000255
ここで、ヘシアン行列HD(z)とその逆行列HD -1(z)は、いずれも以下のようなブロック対角化行列となる。
Figure 0007309004000256
以下、式(4-52)~式(4-55)の再帰的な変数更新則をノードごとに非同期で変数を更新できるようにしたアルゴリズムについて説明する。式(4-52)には潜在変数pと双対変数wの更新が含まれており、潜在変数pと双対変数wの取り扱いに関して以下説明する2つの方法が考えられる。
[方法1]
この方法は、従来法と同様、罰則項を用いてpの最適化を行った後、wの最適化を行う。
まず、罰則項を用いて、pの最適化を行う。
Figure 0007309004000257
次にwの最適化を行う。
Figure 0007309004000258
式(4-61’)の結果を式(4-53)に代入すると、以下の双対変数λの更新則を得る。
Figure 0007309004000259
この式は双対変数wを用いなくても双対変数λが得られることを示している。
式(4-52)~(4-55)の変数更新則を具体的に表わすと以下のようになる。
Figure 0007309004000260
なお、式(4-54)、式(4-55)については、式(4-63)、式(4-64)、式(4-65)に分けた。これは、ノードごとに非同期で変数を更新できるようにするためである。
この更新則をノードごとに変数を更新できるようにすると、図12に示すアルゴリズムが得られる。なお、このアルゴリズムにおけるヘシアン行列HDは、式(4-50)や式(4-51)を用いて設計するのが好ましい。
[方法2]
この方法は、双対変数wの更新を行い、必要に応じて潜在変数pの更新を行う。
式(4-52)を解くため、pをwの関数として表現して最適化する。2次のテーラー展開を用いて、関数F1を以下のように近似表現する。
Figure 0007309004000261
これを関数F1 *に代入すると、以下のようにpをwの関数とした場合の最適値p(w)が得られる。
Figure 0007309004000262
右辺の括弧内をpに関して微分し、それが0となる点(つまり、最適点)を探すと、以下のようになる。
Figure 0007309004000263
これを式(4-52)に代入すると、wの更新式を得る。
Figure 0007309004000264
右辺の括弧内をwに関して微分し、それが0となる点(つまり、最適点)を探すと、以下のようになる。
Figure 0007309004000265
式(4-66)より、pはwの関数として表現されているので、pの更新式は以下のようになる。
Figure 0007309004000266
式(4-53)に式(4-67)を代入することにより、以下の更新式を得る。
Figure 0007309004000267
式(4-68)、式(4-69)、式(4-54)、式(4-55)より変数更新則を具体的に表わすと以下のようになる。
Figure 0007309004000268
この更新則をノードごとに変数を更新できるようにすると、図13に示すアルゴリズムが得られる。なお、このアルゴリズムにおけるヘシアン行列HDは、式(4-50)や式(4-51)を用いて設計するのが好ましい。
図12のアルゴリズムと図13のアルゴリズムを比較すると、ノード間で交換される変数に違いがある。つまり、図12のアルゴリズムでは、潜在変数と双対変数の変形を交換しているのに対して、図13のアルゴリズムでは双対変数の変形のみ交換している。双対変数の変形のみ交換すればよくなったことにより、図13のアルゴリズムの方が情報の秘匿化/暗号化という点において図12のアルゴリズムよりも優れていると言える。
《6:実験及びその結果》
以上説明した変数更新則の効果について確認するため、収束率に関する実験を行った。実験では、図14のような2種類のグラフ構成をもった分散計算器(エッジコンピューティングシステム)を用いた。分散計算器の各ノードにはランダムに生成した異なるデータセットを配置し、潜在変数の収束率を計測した。
コスト関数F1には、以下のものを用いた。
Figure 0007309004000269
ここで、vi,uとsi,uはノードiにおける入力データと教師データの組、piはノードiにおける潜在変数である。
また、潜在変数の誤差を測定する尺度には以下のものを用いた。
Figure 0007309004000270
ここで、p*は潜在変数pの最適値、pi tはt回の更新で得られたノードiにおける潜在変数の値、m=p’Vである。
図15に実験結果を示す。B-MOS(GD)は従来の方法(図11のアルゴリズム)、B-MOS(AGD)は加速勾配法(AGD)によりヘシアン行列を設計した場合の本願の方法(図13のアルゴリズム)、B-MOS(2GD)はニュートン法によりヘシアン行列を設計した場合の本願の方法(図13のアルゴリズム)を示す。なお、D-ADMMはB-MOS(GD)とは異なる別の従来の方法を示す。この図からわかるように、いずれのグラフ構造においても、本願の方法の方が、従来の方法と比較して収束率が高くなる。特に、ニュートン法に従ってヘシアン行列を設計した場合に、最も高い収束率が得られる。
《7:微分を用いた表現》
《1:ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の定義》の冒頭部において、関数Dは微分可能な狭義凸関数であると仮定したことから、関数Dの劣微分を関数Dの微分としても《1:ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の定義》から《5:エッジコンピューティングにおける合意形成問題への適用》までの議論は成り立つ。具体的には、《1:ブレグマンレゾルヴェント作用素とブレグマンケーリー作用素の定義》から《5:エッジコンピューティングにおける合意形成問題への適用》までの説明における“関数Dの劣微分”との記載を“関数Dの微分”とした説明が成り立つ。以下、主たる式に関して劣微分を微分で置き換えた式を示す。
関数Dの微分を用いた場合、ブレグマンダイバージェンスBは、以下のように定義される。
Figure 0007309004000271
ここで、∇は関数を微分する演算を表す。
また、狭義凸関数Dの(性質1)、(性質2)は、以下のように表現できる。
(性質1)2次のテーラー展開を用いると、関数Dに対して、点wの周りにおいて以下の近似式が成り立つ。
Figure 0007309004000272
(性質2)関数DのLS(上界)とSC(下界)は、任意のベクトルh∈Rmを用いて、以下のように表現できる。
Figure 0007309004000273
ブレグマンリゾルヴェント作用素Rnとブレグマンケーリー作用素Cnは、次式で与えられる。
Figure 0007309004000274
関数DをL2ノルムの二乗を用いて定義する場合、関数Dと関数Dの微分は以下のようになる。
Figure 0007309004000275
この場合、ブレグマンリゾルヴェント作用素Rnとブレグマンケーリー作用素Cnは、劣微分を用いた場合と同様、リゾルヴェント作用素Ωn、ケーリー作用素Ψnとなる。
Figure 0007309004000276
一般化P-R型単調作用素分割は、劣微分の場合と同様、次式のようになる。
Figure 0007309004000277
そして、一般化P-R型単調作用素分割の変数更新則は、w(∈Rm)の補助変数x, y, z(x∈Rm, y∈Rm, z∈Rm)を用いて式(4-22)*を分解することにより得られる。
Figure 0007309004000278
また、式(4-23)*を変形すると、次式が得られる。
Figure 0007309004000279
式(4-25)*も同様に変形すると、次式が得られる。
Figure 0007309004000280
一般化D-R型単調作用素分割も、劣微分の場合と同様、次式のようになる。
Figure 0007309004000281
そして、一般化D-R型単調作用素分割の変数更新則は、w(∈Rm)の補助変数x, y, z(x∈Rm, y∈Rm, z∈Rm)を用いて式(4-37)*を分解することにより得られる。
Figure 0007309004000282
劣微分の場合と同様、関数Dを式(4-48)の2次式で表現し、ブレグマンダイバージェンスの定義式である式(4-1)*に代入することにより、以下を得る。
Figure 0007309004000283
ただし、式(4-48)における関数Dの更新は、毎ステップ行われるわけではない。具体的には、関数Dが強凸性であることを満たすため、以下の式で表される条件を満たす場合に限り、任意のタイミングで関数Dの微分∇Dの更新が行われる。したがって、当該条件が満たされない場合には、関数Dの微分∇Dの更新は行わない。
Figure 0007309004000284
エッジコンピューティングにおける合意形成問題へ適用した場合における、式(3-3)~式(3-6)に対応する再帰的な変数更新則は以下のようになる。
Figure 0007309004000285
なお、変数更新則の導出に際して、ブレグマンケーリー作用素C2が以下の式を満たすことを用いた。
Figure 0007309004000286
また、式(4-48)を用いる際の関数Dの微分とその逆作用素は以下のようになる。
Figure 0007309004000287
《8:高次凸性を用いたブレグマンダイバージェンス設計》
《4:高収束率を得るためのブレグマンダイバージェンス設計》で説明した2つのブレグマンダイバージェンス設計手法では、ブレグマンダイバージェンスの計量を決める関数Dを2次式に限定したときにどのように設計すればよいのかについて論じた。ここでは、2次以上の高次凸性を用いて、更なる高速収束を可能にする関数Dの設計について説明する。なお、以下では関数Dの微分∇Dの設計について説明するが、変数更新の際に使用するのは∇Dであるので、∇Dの設計に関して説明しても一般性を失うことはない。
式(4-48)及び式(4-49)*において暗に仮定されていたことであるが、関数Dの設計により停留点を変更しないようにするために、関数Dは∇D(0)=0を満たすこと、かつ、関数Dは微分可能な狭義凸関数であることの2点に着目する。関数Giは微分可能であると仮定する。つまり、関数Giの微分∇Giは存在するものと仮定する。なお、関数Giそのものが微分可能でなくても、例えば平滑化などの処理により関数Giを微分可能な関数とすることができるため、関数Giは微分可能であると仮定しても問題ない。
このとき、次式で表される条件のもと、∇Dを更新することにより、関数Giが2次以上の凸性を含む場合に高速収束が見込める。
Figure 0007309004000288
ただし、∇Dの更新は、関数Dが強凸性であることを満たすため、以下の式で表される条件を満たす場合に限り、任意のタイミングで行われる。したがって、当該条件が満たされない場合には、∇Dの更新は行わない。
Figure 0007309004000289
実用上、複数の高次(3次以上)の凸性の和として関数Giを表現する場合(例えば、高次のテーラー展開を用いて関数Giを狭義凸関数として表現する場合)には、解析的にwの最適解を得ることが難しいことが多い。このような場合には、和を用いる代わりに、単一の高次項のみを用いて関数Dを表現するのが一つの有用な実装法となる。この場合、次式により関数Dを表現すればよい。
Figure 0007309004000290
<第3実施形態>
以下、図16~図17を参照して潜在変数学習装置100を説明する。図16は、潜在変数学習装置100の構成を示すブロック図である。図17は、潜在変数学習装置100の動作を示すフローチャートである。図16に示すように潜在変数学習装置100は、モデル学習部120と、記録部190を含む。
潜在変数学習装置100は、学習データを用いて、機械学習の対象となるモデルの潜在変数w∈Rm(mは1以上の整数)を学習する。ここで、モデルとは、入力データを入力とし、出力データを出力とする関数のことであり、学習データとは、モデルの潜在変数の学習に用いる入力データ、または、モデルの潜在変数の学習に用いる入力データと出力データの組のことをいう。なお、入力データと出力データの組を学習データとする場合、出力データのことを教師データということもある。
図17に従い潜在変数学習装置100の動作について説明する。
S120において、モデル学習部120は、学習データを用いて、所定の手順により潜在変数wを学習する。以下、その手順について、具体的に説明する。
(手順1)
ここでは、ブレグマンダイバージェンスを用いた学習手順について説明する。
まず、モデル学習部120は、学習データを用いて、潜在変数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)を用いて、モデル学習部120は、コスト関数G(w)を最小化するwの停留点w*∈RmとのブレグマンダイバージェンスBD(BD(w||w*)またはBD(w*||w))が0に近づくように、潜在変数wを学習する。なお、関数Dは、任意に設計可能な狭義凸関数である。また、停留点w*のことを不動点w*ともいう。
(手順2)
ここでは、<技術的背景>で説明したように、単調作用素分割を用いて構成される潜在変数の更新規則を用いた学習手順について説明する。<技術的背景>では、N=2の場合について詳細に説明したが、単調作用素分割を用いて潜在変数の更新規則を構成できる任意のNについて、以下説明するような学習手順を構成することができる。例えば、N=3の場合についても、N=2の場合と同様、単調作用素分割の変形が可能であることが数学的に証明できるので、同様の学習手順を構成することができる。
まず、モデル学習部120は、学習データを用いて、潜在変数wを学習する際に用いるセットアップデータを計算する。例えば、上述のコスト関数G(w)の他、関数Dと関数Giを用いて定義されるブレグマンリゾルヴェント作用素Ri(1≦i≦N)、ブレグマンリゾルヴェント作用素Riを用いて定義されるブレグマンケーリー作用素Ci(1≦i≦N)をセットアップデータとして計算する。
次に、ブレグマンリゾルヴェント作用素Ri(1≦i≦N)とブレグマンケーリー作用素Ci(1≦i≦N)を用いて、潜在変数wの値を再帰的に計算する。具体的には、更新回数のカウントに用いる変数(以下、カウンタともいう)をtとし、モデル学習部120は、ブレグマンリゾルヴェント作用素Ri(1≦i≦N)とブレグマンケーリー作用素Ci(1≦i≦N)を用いて、潜在変数wのt+1回目の更新結果であるwt+1を再帰的に計算する。
なお、カウンタtは、0以上の整数値をとることになる。
N=2の場合における、一般化P-R型単調作用素分割及び一般化D-R型単調作用素分割を用いて構成される潜在変数の更新規則を用いた学習手順を実行するモデル学習部120について説明する。以下、図18~図19を参照してモデル学習部120について説明する。図18は、モデル学習部120の構成を示すブロック図である。図19は、モデル学習部120の動作を示すフローチャートである。図18に示すようにモデル学習部120は、初期化部121と、潜在変数計算部122と、第1補助変数計算部123と、第2補助変数計算部124と、第3補助変数計算部125と、カウンタ更新部126と、終了条件判定部127を含む。
図19に従いモデル学習部120の動作について説明する。ここでは、潜在変数wの補助変数x, y, z∈Rmを用いる。
S121において、初期化部121は、カウンタtを初期化する。具体的には、t=0とする。また、初期化部121は、セットアップデータを計算する。
S122において、潜在変数計算部122は、式(5-1)により、補助変数zのt回目の更新結果であるztから潜在変数wのt+1回目の更新結果であるwt+1を計算する。
S123において、第1補助変数計算部123は、式(5-2)により、S122で用いたztとS122で計算したwt+1から補助変数xのt+1回目の更新結果であるxt+1を計算する。
S124において、第2補助変数計算部124は、式(5-3)により、S123で計算したxt+1から補助変数yのt+1回目の更新結果であるyt+1を計算する。
S125において、第3補助変数計算部125は、補助変数zのt+1回目の更新結果であるzt+1を計算する。具体的に説明する。一般化P-R型単調作用素分割を用いる場合、第3補助変数計算部125は、式(5-4)により、S123で計算したxt+1とS124で計算したyt+1から補助変数zのt+1回目の更新結果であるzt+1を計算する。また、一般化D-R型単調作用素分割を用いる場合、第3補助変数計算部125は、式(5-5)により、S122で用いたztとS123で計算したxt+1とS124で計算したyt+1から補助変数zのt+1回目の更新結果であるzt+1を計算する(ただし、αは0<α<1を満たす実数である)。
S126において、カウンタ更新部126は、カウンタtを1だけインクリメントする。具体的には、t←t+1とする。
S127において、終了条件判定部127は、カウンタtが所定の更新回数τ(τは1以上の整数とする)に達した場合(つまり、t=τとなり、終了条件が満たされた場合)は、そのときの潜在変数wの値wτを出力して、処理を終了する。それ以外の場合、S122の処理に戻る。つまり、モデル学習部120は、S122~S125の計算を繰り返す。なお、S125で計算したzt+1は、次の繰り返し計算におけるS122とS123で用いられる。
Figure 0007309004000291
《高収束率を実現するための関数Dの条件》
コスト関数G(w)を最小化するwの停留点w*への収束率を高くするためには、関数Dを以下の条件を満たす関数にすればよい。
(条件)関数Dは、そのヘシアン行列が関数Gi(w)のヘシアン行列の逆行列に近くなるような関数である。
なお、上記条件は、“関数Dは、そのヘシアン行列の逆行列と関数Gi(w)のヘシアン行列の積が単位行列に近くなるような関数である”ということもできる。
N=2の場合、<技術的背景>で説明したように、ニュートン法や加速勾配法に従って、関数Dのヘシアン行列を以下のように計算すればよい。
[ケース1]:関数G1は、狭義凸関数である、すなわち、強凸(SC)かつリプシッツ平滑(LS)である場合。
Figure 0007309004000292
(ただし、ε>0は実数)
なお、実数εは、ヘシアン行列HDの固有値が0より大きく1以下に収まるように選ばれる。
[ケース2]:関数G1, G2は、いずれも狭義凸関数である、すなわち、いずれも強凸(SC)かつリプシッツ平滑(LS)である場合。
Figure 0007309004000293
(ただし、ε>0は実数)
なお、実数εは、ヘシアン行列HDの固有値が0より大きく1以下に収まるように選ばれる。
式(5-6)及び式(5-8)がニュートン法に従った場合であり、式(5-7)及び式(5-9)が加速勾配法に従った場合である。なお、行列LG_1, LG_2は式(5-10)及び式(5-11)により与えられる行列である。
Figure 0007309004000294
または、行列LG_1, LG_2は式(5-12)及び式(5-13)により与えられる行列である。
Figure 0007309004000295
式(5-10)及び式(5-12)の行列LG_1は、関数G1(w)の勾配を用いて計算される行列である。また、式(5-11)及び式(5-13)の行列LG_2は、関数G2(w)の勾配を用いて計算される行列である。
なお、[ケース2]における式(5-8)及び式(5-9)の代わりに、次式のような相乗平均を用いてもよい。
Figure 0007309004000296
なお、先のケース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のヘシアン行列を計算することができる。
上記第3実施形態の説明では、劣微分を用いて説明したが、<技術的背景>で説明したように劣微分の代わりに微分を用いてもよい。この場合、式(5-1)~式(5-5)の代わりに次式を用いればよい。
Figure 0007309004000297
また、微分を用いる場合は、次式で表される条件のもと、∇Dを更新するようにしてもよい。
Figure 0007309004000298
ただし、∇Dの更新は、以下の式で表される条件を満たす場合に限り、任意のタイミングで行うものとする。
Figure 0007309004000299
本実施形態の発明によれば、機械学習の対象となるモデルの潜在変数を高速に学習することができる。本実施形態の発明によれば、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づき、変数更新則を構成することにより、停留点(最適解)への収束が高速になるように、潜在変数を更新することができる。また、ブレグマンダイバージェンスの定義に用いる凸関数を適切に構成することにより、停留点への収束が高速になるような、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づく変数更新則を構成することができる。
<第4実施形態>
ここでは、<技術的背景>の《5:エッジコンピューティングにおける合意形成問題への適用》で説明した2つの変数更新アルゴリズム(図12及び図13のアルゴリズム)に対応する実施形態について説明する。
以下、図20を参照して潜在変数学習システム20を説明する。図20は、潜在変数学習システム20の構成を示すブロック図である。図20に示すように潜在変数学習システム20は、V個(Vは1以上の整数)の潜在変数学習装置2001, …, 200Vを含む。潜在変数学習装置200i(i∈v={1,…,V})は、先のエッジコンピューティングにおける合意形成問題に関する説明におけるノードに対応するものである。
また、各潜在変数学習装置200iはネットワーク900に接続しており、必要に応じて潜在変数学習装置200j(j≠i)と通信する。ネットワーク900には、例えば、インターネットを用いることができる。
以下、図21を参照して潜在変数学習装置200を説明する。図21は、潜在変数学習装置200の構成を示すブロック図である。図21に示すように潜在変数学習装置200は、モデル学習部220と、通信部280と、記録部290を含む。
潜在変数学習装置200iは、学習データを用いて、機械学習の対象となるモデルの潜在変数pi∈Rp’(p’は1以上の整数)を学習する。学習データは、すべての潜在変数学習装置200iに共通であってもよいし、潜在変数学習装置200iごとに異なるものであってもよい。
次に、図22~図23を参照してモデル学習部220を説明する。図22は、モデル学習部220の構成を示すブロック図である。図23は、モデル学習部220の動作を示すフローチャートである。図22に示すようにモデル学習部220は、初期化部221と、潜在変数計算部222と、第1双対変数計算部223と、同期用変数更新部224と、第2双対変数計算部225と、カウンタ更新部226と、終了条件判定部227を含む。
図23に従いモデル学習部220の動作について説明する。具体的な説明に入る前に、いくつか記号について説明する。これらの記号は、これまでの議論で用いてきたものであり、以下の説明は、そのまとめに相当するものである。
v={1,…,V}は、潜在変数学習装置200群のインデックスの集合を表す。また、N(i)は、潜在変数学習装置200iと通信をする潜在変数学習装置200群のインデックスの集合を表す。
潜在変数pi, pj(ただし、j∈N(i))に対して、λi|j∈Rp’を潜在変数学習装置200iに帰属する双対変数、λj|i∈Rp’を潜在変数学習装置200jに帰属する双対変数とする。また、同様に、潜在変数pi, pj(ただし、j∈N(i))に対して、zi|j∈Rp’を潜在変数学習装置200iに帰属する双対変数、zj|i∈Rp’を潜在変数学習装置200jに帰属する双対変数とする。
関数F1,i(pi):Rp’→Rを、学習データを用いて計算される、潜在変数piを最適化するためのコスト関数(ただし、F1,i(pi)は閉真凸関数)とする。
Ai|j∈Rp’×p’を次式により与えられるp’×p’の実数行列とする。
Figure 0007309004000300
関数Di|j:Rp’→R(ただし、j∈N(i))を潜在変数学習装置200iに帰属する狭義凸関数とする。
なお、ξi|j, ζiを潜在変数学習装置200j(ただし、j∈N(i))から送信されたデータを格納するための潜在変数学習装置200iの変数とする。以下、ξi|j, ζiのことを同期用変数ともいう。また、tを変数の更新回数をカウントするための変数(以下、カウンタともいう)、τ(τは1以上の整数)を所定の更新回数とする。このτは、後述するS222~S225の繰り返し計算の回数の上限を表す。
以降の説明では、Si(i∈v={1,…,V})は、V個の潜在変数学習装置2001, …, 200Vを示すものとする。したがって、潜在変数学習システム20は、潜在変数学習装置Si(i∈v)を含み、潜在変数学習装置Si(i∈v)は、学習データを用いて、所定の手順により潜在変数piを学習する。以下、図23を参照してその手順について説明する。
S221において、初期化部221は、カウンタtを初期化する。具体的には、t=0とする。また、初期化部221は、セットアップデータを計算する。例えば、コスト関数F1,i(pi)がその一例である。
S222において、潜在変数計算部222は、次式により、双対変数zi|jのt回目の更新結果であるzi|j tと変数ζiのt回目の更新結果であるζi tから潜在変数piのt+1回目の更新結果であるpi t+1を計算する。
Figure 0007309004000301
ただし、zi|j 0及びζi 0には適当な初期値が設定されているものとする。また、γ(γ>0)は所定の実数とする。
S223において、第1双対変数計算部223は、j∈N(i)について、次式により、S222で用いたzi|j tとS222で計算したpi t+1から双対変数λi|j(j∈N(i))のt+1回目の更新結果であるλi|j t+1を計算する。
Figure 0007309004000302
ここで、HD_i|jは関数Di|jのヘシアン行列を表す。つまり、HD_i|j -1はその逆行列である。
S224において、同期用変数更新部224は、通信部280を用いて、次式により、潜在変数学習装置Sj(j∈N(i))の学習により得られる値を変数ξi|j, ζi(j∈N(i))のt+1回目の更新結果であるξi|j t+1, ζi t+1として受信し、変数ξi|j, ζiを更新する。
Figure 0007309004000303
S225において、第2双対変数計算部225は、j∈N(i)について、次式により、双対変数zi|j(j∈N(i))のt+1回目の更新結果であるzi|j t+1を計算する。
Figure 0007309004000304
ここで、αは0<α<1を満たす実数である。
なお、式(6-1)は一般化P-R型単調作用素分割を用いる場合、式(6-2)は一般化D-R型単調作用素分割を用いる場合に対応する。
S226において、カウンタ更新部226は、カウンタtを1だけインクリメントする。具体的には、t←t+1とする。
S227において、終了条件判定部227は、カウンタtが所定の更新回数τに達した場合(つまり、t=τとなり、終了条件が満たされた場合)は、そのときの潜在変数piの値pi τを出力して、処理を終了する。それ以外の場合、S222の処理に戻る。つまり、モデル学習部220は、S222~S225の計算を繰り返す。なお、S225で計算したzi|j t+1は、次の繰り返し計算におけるS222とS223で用いられる。
なお、ヘシアン行列HD_i|jは、式(5-6)~式(5-9)を用いて設計するのが好ましい。
(変形例1)
上述の手順は、図12のアルゴリズムに対応するものである。ここでは、図13のアルゴリズムに対応する手順について説明する。当該手順では、潜在変数を交換する必要がないため、変数ζiを用いない。
潜在変数学習装置200は、図21に示すように、モデル学習部220の代わりに、モデル学習部230を含む。以下、図24~図25を参照してモデル学習部230を説明する。図24は、モデル学習部230の構成を示すブロック図である。図25は、モデル学習部230の動作を示すフローチャートである。図24に示すようにモデル学習部230は、初期化部231と、第1双対変数計算部232と、潜在変数計算部233と、同期用変数更新部234と、第2双対変数計算部235と、カウンタ更新部236と、終了条件判定部237を含む。
図25に従いモデル学習部230の動作について説明する。
S231において、初期化部231は、カウンタtを初期化する。具体的には、t=0とする。また、初期化部231は、セットアップデータを計算する。
S232において、第1双対変数計算部232は、j∈N(i)について、次式により、双対変数zi|jのt回目の更新結果であるzi|j tと潜在変数piのt回目の更新結果であるpi tから双対変数λi|j(j∈N(i))のt+1回目の更新結果であるλi|j t+1を計算する。
Figure 0007309004000305
ただし、zi|j 0及びpi 0には適当な初期値が設定されているものとする。また、HD_i|jは関数Di|jのヘシアン行列、HF_1,iは関数F1,iのヘシアン行列を表す。つまり、HD_i|j -1及びHF_1,i -1はそれらの逆行列である。∂F1,iは関数F1,iの劣微分を表す。
S233において、潜在変数計算部233は、次式により、潜在変数piのt+1回目の更新結果であるpi t+1を計算する。
Figure 0007309004000306
ここで、wi|j tは双対変数wi|jのt回目の更新結果を表す。
S234において、同期用変数更新部234は、通信部280を用いて、次式により、潜在変数学習装置Sj(j∈N(i))の学習により得られる値を変数ξi|j(j∈N(i))のt+1回目の更新結果であるξi|j t+1として受信し、変数ξi|jを更新する。
Figure 0007309004000307
S225において、第2双対変数計算部225は、j∈N(i)について、次式により、双対変数zi|j(j∈N(i))のt+1回目の更新結果であるzi|j t+1を計算する。
Figure 0007309004000308
ここで、αは0<α<1を満たす実数である。
なお、式(6-1)は一般化P-R型単調作用素分割を用いる場合、式(6-2)は一般化D-R型単調作用素分割を用いる場合に対応する。
S236において、カウンタ更新部236は、カウンタtを1だけインクリメントする。具体的には、t←t+1とする。
S237において、終了条件判定部237は、カウンタtが所定の更新回数τに達した場合(つまり、t=τとなり、終了条件が満たされた場合)は、そのときの潜在変数piの値pi τを出力して、処理を終了する。それ以外の場合、S232の処理に戻る。つまり、モデル学習部230は、S232~S235の計算を繰り返す。なお、S235で計算したzi|j t+1は、次の繰り返し計算におけるS232とS233で用いられる。
なお、ヘシアン行列HD_i|jは、式(5-6)~式(5-9)を用いて設計するのが好ましい。
本実施形態の発明によれば、機械学習の対象となるモデルの潜在変数を高速に学習することができる。本実施形態の発明によれば、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づき、変数更新則を構成することにより、停留点(最適解)への収束が高速になるように、潜在変数を更新することができる。また、ブレグマンダイバージェンスの定義に用いる凸関数を適切に構成することにより、停留点への収束が高速になるような、ブレグマンリゾルヴェント作用素やブレグマンケーリー作用素を用いた単調作用素分割に基づく変数更新則を構成することができる。
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
上述の本発明の実施形態の記載は、例証と記載の目的で提示されたものである。網羅的であるという意思はなく、開示された厳密な形式に発明を限定する意思もない。変形やバリエーションは上述の教示から可能である。実施形態は、本発明の原理の最も良い例証を提供するために、そして、この分野の当業者が、熟考された実際の使用に適するように本発明を色々な実施形態で、また、色々な変形を付加して利用できるようにするために、選ばれて表現されたものである。すべてのそのような変形やバリエーションは、公正に合法的に公平に与えられる幅にしたがって解釈された添付の請求項によって定められた本発明のスコープ内である。

Claims (11)

  1. w∈Rmを機械学習の対象となるモデルの潜在変数、G(w)(=ΣiGi(w)):Rm→Rを学習データを用いて計算される、潜在変数wを最適化するためのコスト関数(ただし、関数Gi(w) (Nを2以上の整数とし、iは1≦i≦Nを満たす整数とする)は閉真凸関数)、D:Rm→Rを狭義凸関数、Ri(1≦i≦N)を関数Dと関数Giを用いて定義されるブレグマンリゾルヴェント作用素、Ci(1≦i≦N)をブレグマンリゾルヴェント作用素Riを用いて定義されるブレグマンケーリー作用素とし、
    ブレグマンリゾルヴェント作用素Ri(1≦i≦N)とブレグマンケーリー作用素Ci(1≦i≦N)を用いて、潜在変数wのt+1回目の更新結果であるwt+1を再帰的に計算するモデル学習部と
    を含む潜在変数学習装置。
  2. 請求項に記載の潜在変数学習装置であって、
    N=2、x, y, z∈Rmをそれぞれ潜在変数wの補助変数とし、
    前記モデル学習部は、
    次式により、補助変数zのt回目の更新結果であるztから潜在変数wのt+1回目の更新結果であるwt+1を計算する潜在変数計算部と、
    Figure 0007309004000309

    次式により、前記ztと前記wt+1から補助変数xのt+1回目の更新結果であるxt+1を計算する第1補助変数計算部と、
    Figure 0007309004000310

    次式により、前記xt+1から補助変数yのt+1回目の更新結果であるyt+1を計算する第2補助変数計算部と、
    Figure 0007309004000311

    次式により、前記xt+1と前記yt+1から補助変数zのt+1回目の更新結果であるzt+1を計算する第3補助変数計算部とを含む
    Figure 0007309004000312

    ことを特徴とする潜在変数学習装置。
  3. 請求項に記載の潜在変数学習装置であって、
    N=2、x, y, z∈Rmをそれぞれ潜在変数wの補助変数とし、
    前記モデル学習部は、
    次式により、補助変数zのt回目の更新結果であるztから潜在変数wのt+1回目の更新結果であるwt+1を計算する潜在変数計算部と、
    Figure 0007309004000313

    次式により、前記ztと前記wt+1から補助変数xのt+1回目の更新結果であるxt+1を計算する第1補助変数計算部と、
    Figure 0007309004000314

    次式により、前記xt+1から補助変数yのt+1回目の更新結果であるyt+1を計算する第2補助変数計算部と、
    Figure 0007309004000315

    次式により、前記ztと前記xt+1と前記yt+1から補助変数zのt+1回目の更新結果であるzt+1を計算する第3補助変数計算部とを含む
    Figure 0007309004000316

    (ただし、αは0<α<1を満たす実数)
    ことを特徴とする潜在変数学習装置。
  4. 請求項に記載の潜在変数学習装置であって、
    関数Dは、そのヘシアン行列が関数Gi(w)のヘシアン行列の逆行列に近くなるような関数である
    ことを特徴とする潜在変数学習装置。
  5. 請求項に記載の潜在変数学習装置であって、
    N=2とし、
    関数G1(w)が、強凸かつリプシッツ平滑である、または、強凸かつリプシッツ平滑であると仮定できる場合に、関数Dのヘシアン行列を、次式により計算する
    Figure 0007309004000317

    (ただし、ε>0は実数)
    ことを特徴とする潜在変数学習装置。
  6. 請求項に記載の潜在変数学習装置であって、
    N=2とし、
    関数G1, G2のそれぞれが、強凸(SC)かつリプシッツ平滑(LS)である、または、強凸(SC)かつリプシッツ平滑(LS)であると仮定できる場合に、関数Dのヘシアン行列を、次式により計算する
    Figure 0007309004000318

    (ただし、ε>0は実数)
    ことを特徴とする潜在変数学習装置。
  7. 請求項に記載の潜在変数学習装置であって、
    N=2とし、
    関数G1(w)が、強凸かつリプシッツ平滑である、または、強凸かつリプシッツ平滑であると仮定できる場合に、関数Dのヘシアン行列を、次式により計算する
    Figure 0007309004000319

    (ただし、ε>0は実数、LG_1(w)は関数G1(w)の勾配を用いて計算される行列)
    ことを特徴とする潜在変数学習装置。
  8. 請求項に記載の潜在変数学習装置であって、
    N=2とし、
    関数G1, G2のそれぞれが、強凸(SC)かつリプシッツ平滑(LS)である、または、強凸(SC)かつリプシッツ平滑(LS)であると仮定できる場合に、関数Dのヘシアン行列を、次式により計算する
    Figure 0007309004000320

    (ただし、ε>0は実数、LG_1, LG_2はそれぞれ関数G1(w)、関数G2(w)の勾配を用いて計算される行列)
    ことを特徴とする潜在変数学習装置。
  9. w∈Rmを機械学習の対象となるモデルの潜在変数、G(w)(=ΣiGi(w)):Rm→Rを学習データを用いて計算される、潜在変数wを最適化するためのコスト関数(ただし、関数Gi(w) (Nを2以上の整数とし、iは1≦i≦Nを満たす整数とする)は閉真凸関数)、D:Rm→Rを狭義凸関数、Ri(1≦i≦N)を関数Dと関数Giを用いて定義されるブレグマンリゾルヴェント作用素、Ci(1≦i≦N)をブレグマンリゾルヴェント作用素Riを用いて定義されるブレグマンケーリー作用素とし、
    潜在変数学習装置が、ブレグマンリゾルヴェント作用素Ri(1≦i≦N)とブレグマンケーリー作用素Ci(1≦i≦N)を用いて、潜在変数wのt+1回目の更新結果であるwt+1を再帰的に計算するモデル学習ステップと
    を含む潜在変数学習方法。
  10. 請求項に記載の潜在変数学習方法であって、
    関数Dは、そのヘシアン行列が関数Gi(w)のヘシアン行列の逆行列に近くなるような関数である
    ことを特徴とする潜在変数学習方法。
  11. 請求項1ないしのいずれか1項に記載の潜在変数学習装置としてコンピュータを機能させるためのプログラム。
JP2022037711A 2018-04-12 2022-03-11 潜在変数学習装置、潜在変数学習方法、プログラム Active JP7309004B2 (ja)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
JP2018076814 2018-04-12
JP2018076816 2018-04-12
JP2018076815 2018-04-12
JP2018076817 2018-04-12
JP2018076817 2018-04-12
JP2018076814 2018-04-12
JP2018076815 2018-04-12
JP2018076816 2018-04-12
JP2018202397 2018-10-29
JP2018202397 2018-10-29
PCT/JP2019/015973 WO2019198815A1 (ja) 2018-04-12 2019-04-12 機械学習システム、機械学習方法、プログラム
JP2020513461A JP7091446B2 (ja) 2018-04-12 2019-04-12 機械学習システム、機械学習方法、プログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020513461A Division JP7091446B2 (ja) 2018-04-12 2019-04-12 機械学習システム、機械学習方法、プログラム

Publications (2)

Publication Number Publication Date
JP2022066553A JP2022066553A (ja) 2022-04-28
JP7309004B2 true JP7309004B2 (ja) 2023-07-14

Family

ID=68164056

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020513461A Active JP7091446B2 (ja) 2018-04-12 2019-04-12 機械学習システム、機械学習方法、プログラム
JP2022037711A Active JP7309004B2 (ja) 2018-04-12 2022-03-11 潜在変数学習装置、潜在変数学習方法、プログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020513461A Active JP7091446B2 (ja) 2018-04-12 2019-04-12 機械学習システム、機械学習方法、プログラム

Country Status (3)

Country Link
US (1) US20210158226A1 (ja)
JP (2) JP7091446B2 (ja)
WO (1) WO2019198815A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132514B1 (en) * 2020-03-16 2021-09-28 Hong Kong Applied Science and Technology Research Institute Company Limited Apparatus and method for applying image encoding recognition in natural language processing
JPWO2022269680A1 (ja) * 2021-06-21 2022-12-29

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014527417A (ja) 2011-06-23 2014-10-16 エスワイエヌシー−アールエックス、リミテッド 管腔の背景の鮮明化
US20150302317A1 (en) 2014-04-22 2015-10-22 Microsoft Corporation Non-greedy machine learning for high accuracy

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047566B2 (en) 2013-03-12 2015-06-02 Oracle International Corporation Quadratic regularization for neural network with skip-layer connections

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014527417A (ja) 2011-06-23 2014-10-16 エスワイエヌシー−アールエックス、リミテッド 管腔の背景の鮮明化
US20150302317A1 (en) 2014-04-22 2015-10-22 Microsoft Corporation Non-greedy machine learning for high accuracy

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SRIDHAR MAHADEVAN et al.,PROXIMAL REINFORCEMENT LEARNING: A NEW THEORY OF SEQUENTIAL DECISION MAKING IN PRIMAL-DUAL SPACES,ARXIV,2014年05月26日,インターネット:<URL:https://arxiv.org/pdf/1405.6757.pdf>

Also Published As

Publication number Publication date
JPWO2019198815A1 (ja) 2021-06-17
JP2022066553A (ja) 2022-04-28
JP7091446B2 (ja) 2022-06-27
US20210158226A1 (en) 2021-05-27
WO2019198815A1 (ja) 2019-10-17

Similar Documents

Publication Publication Date Title
JP7309004B2 (ja) 潜在変数学習装置、潜在変数学習方法、プログラム
JP7179835B2 (ja) モデル生成装置、モデル生成方法、プログラム
Wang et al. Improved architectures and training algorithms for deep operator networks
US9213788B2 (en) Methods and apparatus for constructing and analyzing component-based models of engineering systems
Eftang et al. Parameter multi‐domain ‘hp’empirical interpolation
Hunt et al. Quantile lower bounds to reliability based on locally optimal splits
Chakrabarty et al. State and unknown input observers for nonlinear systems with delayed measurements
US20200394276A1 (en) Simulation-based optimization on a quantum computer
CN113254716B (zh) 视频片段检索方法、装置、电子设备和可读存储介质
JP2017016384A (ja) 混合係数パラメータ学習装置、混合生起確率算出装置、及び、これらのプログラム
Zhao et al. Robust estimation and shrinkage in ultrahigh dimensional expectile regression with heavy tails and variance heterogeneity
Pan Distributed optimization and statistical learning for large-scale penalized expectile regression
Muhammadhaji et al. Synchronization stability on the BAM neural networks with mixed time delays
Gaby et al. Neural control of parametric solutions for high-dimensional evolution pdes
Kelley et al. Explicit pseudo-transient continuation
D’Ambrosio et al. Blow-up profile for solutions of a fourth order nonlinear equation
Pei et al. Multiple solutions for a Kirchhoff-type equation
Yi et al. Progressive iterative approximation for extended cubic uniform B-splines with shape parameters
Ling et al. Modified relaxed CQ methods for the split feasibility problems in Hilbert spaces with applications
Hao et al. A stochastic homotopy tracking algorithm for parametric systems of nonlinear equations
Pu et al. A novel maximum likelihood-based stochastic gradient algorithm for Hammerstein nonlinear systems with coloured noise
Shanbrom The Puiseux characteristic of a Goursat germ
Bopardikar et al. On incremental approximate saddle-point computation in zero-sum matrix games
Channark et al. Generalized and optimal sequence of weights on a progressive‐iterative approximation method with memory for least square fitting
Xin et al. Higher order accuracy analysis of the second-order normal form method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230303

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: 20230627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230704

R150 Certificate of patent or registration of utility model

Ref document number: 7309004

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150