JP2019074890A - 関数学習装置、関数計算装置、関数学習方法、関数計算方法、及びプログラム - Google Patents

関数学習装置、関数計算装置、関数学習方法、関数計算方法、及びプログラム Download PDF

Info

Publication number
JP2019074890A
JP2019074890A JP2017199891A JP2017199891A JP2019074890A JP 2019074890 A JP2019074890 A JP 2019074890A JP 2017199891 A JP2017199891 A JP 2017199891A JP 2017199891 A JP2017199891 A JP 2017199891A JP 2019074890 A JP2019074890 A JP 2019074890A
Authority
JP
Japan
Prior art keywords
function
learning
unit
leaf
representing
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.)
Granted
Application number
JP2017199891A
Other languages
English (en)
Other versions
JP6799519B2 (ja
Inventor
允裕 中野
Masahiro Nakano
允裕 中野
柏野 邦夫
Kunio Kashino
邦夫 柏野
松井 知子
Tomoko Matsui
知子 松井
大地 持橋
Daichi Mochihashi
大地 持橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017199891A priority Critical patent/JP6799519B2/ja
Publication of JP2019074890A publication Critical patent/JP2019074890A/ja
Application granted granted Critical
Publication of JP6799519B2 publication Critical patent/JP6799519B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】連続的でない関数であっても、所望の精度で近似することができるようにする。【解決手段】入力データと出力データとの組を複数含む観測データに基づいて、当該ニューラルネットワークの入力層と隠れ層との間の重みを求めるための重み関数であって、当該重みのインデックスが連続的である重み関数を学習する関数学習部210が、入力データの範囲を表す領域を階層的に分割したことを表す二分木構造であって、各リーフが階層的に分割された領域を表す一般化ポリア木について、各リーフに割り当てられる実数を表すポリア木パラメータと、階層分割とを、階層的に分割された領域の各々では、当該領域に属する入力データがガウス過程でモデル化され、当該重み関数により求められる、入力データに適用される重みが、当該入力データが属する各階層の領域を表す各リーフに割り当てられたポリア木パラメータの乗算を用いて定められるように学習する。【選択図】図1

Description

本発明は、関数学習装置、関数計算装置、関数学習方法、関数計算方法、及びプログラムに関し、特に、ニューラルネットワークを用いた関数を計算するための関数学習装置、関数計算装置、関数学習方法、関数計算方法、及びプログラムに関する。
機械学習における関数近似問題の分野では、観測データ

は何でも良いが、典型的にはベクトルデータ)が与えられたときに、それぞれに対応する

は何でも良いが、典型的には整数スカラー)が与えられ、下記の式(1)を満たす関数f(典型的には

)を学習する問題を扱っている。
の与え方によって分類問題、識別問題、回帰問題などの様々な機械学習課題に用いることができ、xの与え方によって、音声・言語・動画・画像等の様々なメディアに適用することができる(xはそれらのメディアの特徴ベクトルを用いられることが多い)。
<多重解像度ガウス過程>
ガウス過程は平均と共分散で支配される関数への確率的生成モデルとして利用することができ、特に機械学習分野では関数近似問題への定番の道具として広く定着している。
ガウス過程の肝はその共分散を司るカーネルの設計にあり、その選び方によってなめらかさや周期性などの所望の性質を対象に埋め込むことが出来る。
しかし、実用的な意味においては、観測データ近傍や周期構造に対しては非常に精密なモデル化を達成することが出来るものの、広範囲のデータに共通する性質の埋め込みは苦手としている。
非特許文献1では、関数の定義域を階層分割によって木構造に細分化し、その性質が木構造の根から末端まで継承されていく形の多重解像度のガウス過程を与える方法を提案している。
これによって、データ近傍や周期構造のみならず、広範囲に渡す性質を関数の中に埋め込むことに成功した。
<深層学習の連続版>
また、近年機械学習分野において著しい活躍を示している深層学習のうち、非特許文献2では簡単のため一層のニューラルネットワークモデルを例として取り上げられている。
今定義域

が与えられたもとで、

を近似する問題を考える。
隠れ因子の数をhとし活性化関数をg(例えばシグモイド関数)、Vを入力から隠れ層への重み行列、a,・・・,aを隠れ層から出力への重みを定数バイアスとすると、このニューラルネットワークの入出力関係は以下のように表せる。
ただし、Vは行列Vのi番目の列ベクトルとする。
ニューラルネットワークの能力を端的に表すのがHornikらによって示されたUniversal approximation theoremであり、その主張の概要は、活性化関数をシグモイド関数とする一層のニューラルネットワークは、任意の連続関数を所望の精度で近似できるというものである。
非特許文献2では、離散的なインデックスi=1,2,・・・,hを連続的に拡張する方法を示しており、affineパラメータ化と呼ばれる方法とガウス過程への帰着の二通りの実現方法を与えた。
Emily Fox and David Dunson, Multiresolution Gaussian Processes. In Advances in Neural Information Processing Systems, 2013. Nicolas Le Roux and Yoshua Bengio, Continuous Neural Networks, Artificial Intelligence and Statistics, 2008.
本発明は、標準的なニューラルネットワーク(より具体的には可算個の隠れユニットによって構成されるニューラルネットワーク)の抱える課題を解決することを目指したものである。
すなわち、ニューラルネットワークに対するUniversal approximation theoremの主張(一層のニューラルネットワークは任意の連続関数を所望の精度で近似できる)は応用実用上非常に強力ではあるが、一方で離散的な関数への近似に用いることが出来ない、という問題がある。
例えば、下記の式(3)のような関数は、一層のシグモイド関数の線形結合では所望の精度で近似することは出来ない。
そして、ニューラルネットワークを深層にすることでは、この問題の本質的な解決には繋がらない。
本発明は、この課題を鑑みてなされたものであり、元の関数が連続的でない場合に対しても、所望の精度で近似した関数を学習することができる関数学習装置、関数学習方法、及びプログラムを提供することを目的とする。
また、元の関数が連続的でない場合に対しても、所望の精度で近似した関数を計算することができる関数計算装置、関数計算方法、及びプログラムを提供することを目的とする。
本発明に係る関数学習装置は、ニューラルネットワークを用いた入出力関係を表す関数を学習する関数学習装置であって、入力データと出力データとの組を複数含む観測データに基づいて、前記ニューラルネットワークの入力層と隠れ層との間の重みを求めるための重み関数であって、前記重みのインデックスが連続的である重み関数を学習する関数学習部を含んで構成され、前記関数学習部は、入力データの範囲を表す領域を階層的に分割したことを表す二分木構造であって、各リーフが階層的に分割された領域を表す一般化ポリア木について、各リーフに割り当てられる実数を表すポリア木パラメータと、階層分割とを、階層的に分割された領域の各々では、前記領域に属する入力データがガウス過程でモデル化され、前記重み関数により求められる、入力データに適用される重みが、前記入力データが属する各階層の領域を表す各リーフに割り当てられたポリア木パラメータの乗算を用いて定められるように学習する。
また、本発明に係る関数学習方法は、ニューラルネットワークを用いた入出力関係を表す関数を学習する関数学習装置における関数学習方法であって、関数学習部が、入力データと出力データとの組を複数含む観測データに基づいて、前記ニューラルネットワークの入力層と隠れ層との間の重みを求めるための重み関数であって、前記重みのインデックスが連続的である重み関数を学習するステップを含み、前記関数学習部が学習するステップについては、入力データの範囲を表す領域を階層的に分割したことを表す二分木構造であって、各リーフが階層的に分割された領域を表す一般化ポリア木について、各リーフに割り当てられる実数を表すポリア木パラメータと、階層分割とを、階層的に分割された領域の各々では、前記領域に属する入力データがガウス過程でモデル化され、前記重み関数により求められる、入力データに適用される重みが、前記入力データが属する各階層の領域を表す各リーフに割り当てられたポリア木パラメータの乗算を用いて定められるように学習する。
本発明に係る関数学習装置及び関数学習方法によれば、関数学習部が、入力データと出力データとの組を複数含む観測データに基づいて、ニューラルネットワークの入力層と隠れ層との間の重みを求めるための重み関数であって、重みのインデックスが連続的である重み関数を学習する。
そして、関数学習部は、入力データの範囲を表す領域を階層的に分割したことを表す二分木構造であって、各リーフが階層的に分割された領域を表す一般化ポリア木について、各リーフに割り当てられる実数を表すポリア木パラメータと、階層分割とを、階層的に分割された領域の各々では、前記領域に属する入力データがガウス過程でモデル化され、前記重み関数により求められる、入力データに適用される重みが、前記入力データが属する各階層の領域を表す各リーフに割り当てられたポリア木パラメータの乗算を用いて定められるように学習する。
このように、ポリア木パラメータと、階層分割とを、階層的に分割された領域の各々では、当該領域に属する入力データがガウス過程でモデル化され、入力データに適用される重みが、入力データが属する各階層の領域を表す各リーフに割り当てられたポリア木パラメータの乗算を用いて定められるように学習ことにより、元の関数が連続的でない場合に対しても、所望の精度で近似した関数を学習することができる。
また、本発明に係る関数学習装置は、前記関数学習部が、各リーフのポリア木パラメータと前記階層分割とを初期化する初期化部と、前記観測データと、前記階層分割とに基づいて、前記観測データ、前記階層分割、及び前記ポリア木パラメータを用いて予め定められた目的関数を最適化するように、各リーフのポリア木パラメータを更新するポリア木パラメータ更新部と、前記観測データと、各リーフのポリア木パラメータとに基づいて、前記目的関数を最適化するように、前記階層分割を更新する階層分割更新部と、予め定められた反復終了条件を満たすまで、前記ポリア木パラメータ更新部による更新と、前記階層分割更新部による更新とを繰り返させる反復判定部と、を含むことができる。
また、本発明に係る関数学習方法は、前記関数学習部が学習するステップが、初期化部が、各リーフのポリア木パラメータと前記階層分割とを初期化するステップと、ポリア木パラメータ更新部が、前記観測データと、前記階層分割とに基づいて、前記観測データ、前記階層分割、及び前記ポリア木パラメータを用いて予め定められた目的関数を最適化するように、各リーフのポリア木パラメータを更新するステップと、階層分割更新部が、前記観測データと、各リーフのポリア木パラメータとに基づいて、前記目的関数を最適化するように、前記階層分割を更新するステップと、反復判定部が、予め定められた反復終了条件を満たすまで、前記ポリア木パラメータ更新部による更新と、前記階層分割更新部による更新とを繰り返させるステップと、を含むことができる。
本発明に係る関数学習装置及び関数学習方法によれば、初期化部が、各リーフのポリア木パラメータと前記階層分割とを初期化し、ポリア木パラメータ更新部が、前記観測データと、前記階層分割とに基づいて、前記観測データ、前記階層分割、及び前記ポリア木パラメータを用いて予め定められた目的関数を最適化するように、各リーフのポリア木パラメータを更新する。
そして、階層分割更新部が、前記観測データと、各リーフのポリア木パラメータとに基づいて、前記目的関数を最適化するように、前記階層分割を更新し、反復判定部が、予め定められた反復終了条件を満たすまで、前記ポリア木パラメータ更新部による更新と、前記階層分割更新部による更新とを繰り返させる。
このように、観測データ、階層分割、及びポリア木パラメータを用いて予め定められた目的関数を最適化するように、各リーフのポリア木パラメータを更新し、観測データと、各リーフのポリア木パラメータとに基づいて、目的関数を最適化するように、階層分割を更新し、反復終了条件を満たすまでこれらの更新を繰り返させることにより、元の関数が連続的でない場合に対しても、必要なパラメータの数を無制限に増やすことが出来れば原理的には所望の精度で近似した関数を学習することができる。
本発明に係る関数計算装置は、ニューラルネットワークを用いた入出力関係を表す関数を計算する関数計算装置であって、上記の関数学習装置によって学習された重み関数を用いた前記ニューラルネットワークの関数により、入力データに対する出力データを計算する関数計算部を含んで構成される。
また、本発明に係る関数計算方法は、ニューラルネットワークを用いた入出力関係を表す関数を計算する関数計算方法であって、関数計算部が、上記の関数学習方法によって学習された重み関数を用いた前記ニューラルネットワークの関数により、入力データに対する出力データを計算するステップを含む。
本発明に係る関数計算装置及び関数計算方法によれば、関数計算部が、上記の関数学習装置によって学習された重み関数を用いた前記ニューラルネットワークの関数により、入力データに対する出力データを計算することにより、元の関数が連続的でない場合に対しても、所望の精度で近似した関数を計算することができる。
本発明に係るプログラムは、上記の関数学習装置又は関数計算装置の各部として機能させるためのプログラムである。
本発明の関数学習装置、関数学習方法、及びプログラムによれば、元の関数が連続的でない場合に対しても、所望の精度で近似した関数を学習することができる。
また、本発明の関数計算装置、関数計算方法、及びプログラムによれば、元の関数が連続的でない場合に対しても、所望の精度で近似した関数を計算することができる。
本発明の実施の形態に係る関数学習装置の構成を示す概略図である。 抽出されたリーフが終端だった場合の追加候補の生成の例を示す図である。 抽出されたリーフが終端だった場合の修正候補の生成の例を示す図である。 抽出されたリーフが終端だった場合の融合候補の生成の例を示す図である。 抽出されたリーフが終端でない場合の修正候補の生成の例を示す図である。 本発明の実施の形態に係る関数学習装置における関数学習のためのアルゴリズムの例を示す図である。 本発明の実施の形態に係る関数学習装置の関数学習処理フローを示すフローチャートである。 本発明の実施の形態に係る関数学習装置のポリア木パラメータの更新処理フローを示すフローチャートである。 本発明の実施の形態に係る関数学習装置の階層分割の更新処理フローを示すフローチャートである。 本発明の実施の形態に係る関数計算装置の構成を示す概略図である。 本発明の実施の形態に係る関数計算装置の関数計算処理フローを示すフローチャートである。
以下、本発明の実施の形態について図面を用いて説明する。
<本発明の実施の形態に係る関数学習装置の原理>
<<一般化ポリア木とガウス過程の融合によるニューラルネットワークモデルの拡張>>
まず、本発明の実施の形態に係る関数学習装置の原理について説明する。
ニューラルネットワークの表現能力を上げるべく、深層にする以外のもう一つの有力な方法として、Le Rouxらによって提案された隠れ層の連続拡張が挙げられる(非特許文献2)。
具体的には、前述のニューラルネットワークモデルにおける隠れユニットのインデックスを連続にすることによって実現することができる。

ただし、

は隠れ層から出力への重み関数、

は入力から隠れ層への重み関数である。
また、2つのユークリッド空間の次元m、dは自由に定めることができる。特に、uの取りうる集合Eを

にとると、すなわち、uをスカラーとすると、下記の式(5)に書き直すことができる。
さらに、aの逆関数をAとし、t=A(u)の変数変換を導入し、V(t):=V(A−1(t))と書き直すと、下記の式(6)が得られる。
より分かりやすく積分範囲を[0,1]に制限すると、すなわち、z=(t−t)/αなる変数を導入し、αはEの長さ、t=inf(A−1(E))とすると、下記の式(7)が得られる。
この拡張は、通常の可算個の隠れユニットを持つニューラルネットワークモデルを包含している。具体的には、V(z)=Vi(pi−1≦z<p)のようなステップ関数を選ぶことによって、通常のニューラルネットワークに帰着することができる。
また、この拡張のもとでも標準的なUniversal approximation theoremの主張する能力は継承される。つまり、任意の連続関数を所望の精度で近似することが可能である。この拡張により離散的な関数への近似も可能になったかは不明である。
Le Rouxらの深層学習の連続拡張は、当該分野に大いなる期待を与えたものの、発案からその後10年経った現在、その拡張方法は定着していない。その一番の原因が実際の表現方法の限界にある。
Le Rouxらは2つの表現方法を提案している。1つはVへのaffine近似、もう1つは、カーネル法を用いたガウス過程化である。
特に、ガウス過程としての解釈は、Le Rouxらの仕事よりも以前から見出されており、その意味で深層学習の連続学習はその表現方法がネックとなって当該分野への貢献に繋がらなかった。
本発明の実施の形態は、上記Vへの表現法としてポリア木と呼ばれるディリクレ過程を包含する広いクラスの確率過程をさらに一般化したものを適用する。
e=(e,・・・,e)をバイナリ系列、

を[0,1]の入れ子状の階層分割、A={α,α>0}を正の実数の集合として、一般化ポリア木を下記式(8)〜(10)のような確率生成モデルとする。
一般化ポリア木はAの与え方によってVを連続的にも離散的にも支配することができる。仮に、α=αe0+αe1とした場合、これはインド料理店過程を用いた可算無限ニューラルネットワークモデルと密接な関係を与えることができる。
上記の一般化ポリア木に基づく非可算無限ニューラルネットワークモデルは、モデル構成としては期待通りの性質を持っている一方で、応用実用上の問題が残る。
すなわち、従来、ポリア木を用いた確率モデルへの推論は難問であることが知られており、既存の近似推論アルゴリズムの多くは、ポリア木が本来持っている連続関数への表現能力を捨てることに相当している。
実際、連続関数へのフィッティングを行う場合においては、推論すべきパラメータが非可算無限存在することとなり、現在の計算機における素朴な方法でこれを実現する方法は無い。
そこで、連続関数への表現能力を失うことなくデータへのフィッティング推論が可能な表現が必要となる。本発明の実施の形態は、一般化ポリア木とカーネル法の融合によって、連続関数への表現能力を失うことなくデータへのフィッティング推論が可能な表現を実現する。
カーネル法に基づくニューラルネットワークは、下記の式(11)の関数表現からなるガウス過程と捉えることができる。ただし、g(u)=g(x・u)とする。
これを一般化ポリア木を用いた非可算無限ニューラルネットワークの観点から見た際には、入れ子構造を持つ階層分割が深さ0となっている状況と捉えることができる。このことに注目すると、上記カーネル法に基づく深層学習表現と、一般化ポリア木に基づく非可算無限ニューラルネットワークとの融合として、下記の式(12)に示すモデル化にたどり着く。
すなわち、関数fがaとgによる内積の形で表示できる。ここで、



は、

の時のみ機能している。すなわち、下記の式(13)であることを意味している。
これによって、

は、平均を一般化ポリア木によって与えられるV(B)、共分散を

においてのみ非零となったガウス過程に従うものとしてモデル化することができる。
本モデルは素朴なマルコフ連鎖モンテカルロ法による推論が可能となっている。すなわち、階層分割を更新するステップと、階層分割における末端での局所的なガウス過程フィッティングを行うステップを交互に繰り返していくことで、事後分布へ漸近していくようなマルコフ連鎖を構成することができる。
さらに、この推論法において、本来の我々の理想であるVに関する連続的な関数・離散的な関数どちらともへの近似能力を失うことはない。
有限の観測データにフィッティングを行う状況において、推論できる解消度が離散的な関数に限定されることが標準的な振る舞いではあるが、モデルとしては連続的な関数への候補を考慮した上での学習を行うことができる。
<<確率的生成モデル>>
関数

が単一のガウス過程から生成されたものだとすると、すなわち、一般化ポリア木の深さが0であった場合は、平均関数

と、共分散関数

とを用いて、下記の式(14)のように表現する。
ガウス過程の象徴的な性質は、任意の

に対して、常に下記の式(15)が成り立つことである。
ここで、Gaussian(μ,K)は、平均μ、共分散行列Kとする多変量ガウス分布を表し、μ=[q(x),・・・,q(x)],[K]i,j=c(x,x)である。
一般化ポリア木が深さmであった場合は、下記の式(16)のように表現することができる。
ただし、c

に対して与えられた共分散関数である。典型的には、この共分散関数cは、人手で設計するのが一般的であり、例えばガウスカーネルを選ぶことができる。
このように、一般化ポリア木とガウス過程の融合によるニューラルネットワークモデルを拡張し、これを確率的生成モデルの形で記述することで、本発明の実施の形態に係る関数学習装置によって、元の関数が連続的でない場合に対しても、所望の精度で近似することができるようにする。
<本発明の実施の形態に係る関数学習装置の構成>
次に、本発明の実施の形態に係る関数学習装置の構成について説明する。図1は、本発明の実施の形態に係る関数学習装置の構成を示す概略図である。
本発明の実施の形態に係る関数学習装置10は、ニューラルネットワークを用いた入出力関係を表す関数を学習する装置である。この関数学習装置10は、CPUと、RAMと、後述する関数学習処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
図1に示すように、関数学習装置10は、入力データと出力データとの組を複数含む観測データを入力する入力部100と、入力部100に入力された観測データから、ニューラルネットワークを用いた入出力関係を表す関数を学習する演算部200と、演算部200によって学習された関数を出力する出力部300とを備えて構成される。
入力部100は、既知のキーボード、記憶装置などの入力器により実現される。また、入力部100は、インターネット等のネットワークを介して観測データを入力するネットワークインターフェースでも良い。
出力部300は、ディスプレイ、プリンタ、磁気ディスクなどで実装される。
演算部200は、ニューラルネットワークの入力層と隠れ層との間の重みを求めるための重み関数であって、当該重みのインデックスが連続的である重み関数を学習する関数学習部210を備えて構成される。
関数学習部210は、入力データの範囲を表す領域を階層的に分割したことを表す二分木構造であって、各リーフが階層的に分割された領域を表す一般化ポリア木について、各リーフに割り当てられる実数を表すポリア木パラメータと、階層分割Πとを、階層的に分割された領域の各々では、当該領域に属する入力データがガウス過程でモデル化され、当該重み関数により求められる、入力データに適用される重みが、当該入力データが属する各階層の領域を表す各リーフに割り当てられたポリア木パラメータの乗算を用いて定められるように学習する。
本実施形態では、関数学習部210は、提案モデルを観測データにフィッティングさせる方法として、マルコフ連鎖モンテカルロ法による推論手法の例によって、関数の学習を行う。
具体的には、関数学習部210は、反復的に、入力データxと出力データyとの組を複数含む観測データ(x,y),・・・,(x,y)が与えられたもとで、ポリア木パラメータ{Y}(バイナリ木構造の全リーフに1つずつ実数を持つパラメータ)、

の階層分割

を逐次的に更新する。
なお、A={α,α>0}、共分散関数c、及び反復回数については、あらかじめ与えられているものとする。
ここで、当該推論手法は、推論すべき各パラメータの更新候補を確率的に生成し、その更新を受理・棄却する操作を確率的に行う。その受理・棄却の操作のためには、下記の式(17)で表す目的関数Lを用いる。
ただし、L及びLは、下記の式(18)で表される。
より具体的には、関数学習部210は、初期化部212と、ポリア木パラメータ更新部214と、階層分割更新部216と、反復判定部218とを含んで構成される。
初期化部212は、各リーフのポリア木パラメータと前記階層分割とを初期化する。
具体的には、初期化部212は、まず、一般化ポリア木について、各リーフに割り当てられる実数を表すポリア木パラメータ{Y}に対して、その確率的生成モデル(事前分布)から乱数を生成し、生成した乱数をポリア木パラメータ{Y}の初期値とする。
次に、初期化部212は、階層分割Πに対して、その確率的生成モデル(事前分布)から乱数を生成し、生成した乱数を階層分割Πの初期値とする。
そして、初期化部212は、ポリア木パラメータ{Y}の初期値、及び階層分割Πの初期値を、ポリア木パラメータ更新部214に渡す。
ポリア木パラメータ更新部214は、観測データと、階層分割とに基づいて、観測データ、階層分割、及びポリア木パラメータを用いて予め定められた目的関数Lを最適化するように、各リーフのポリア木パラメータを更新する。
具体的には、ポリア木パラメータ更新部214は、各パラメータYが、Beta(ae0,ae1)の事前分布に従うことを利用して、当該Yの更新先の候補を決定し、目的関数Lに基づいた確率に従って、当該Yを更新する。
まず、ポリア木パラメータ更新部214は、現在の更新前のパラメータのもとで、目的関数Lを計算し、その値をLoldとしておく。
次に、Beta(ae0,ae1)に従う乱数を生成し、これをYの更新先の候補とする。そして、候補のYを用いて目的関数Lを計算し、その値をLnewとする。
新しいYの更新先の候補に関して、以下の式(19)に基づいて確率を計算し、その確率に基づいてその候補を受理するか否かを判断する。
受理された場合、候補のYを新しいYとして更新し、受理されなかった場合、現在のYを維持する。
そして、ポリア木パラメータ更新部214は、更新後のポリア木パラメータ{Y}を階層分割更新部216に渡す。
階層分割更新部216は、観測データと、各リーフのポリア木パラメータとに基づいて、目的関数Lを最適化するように、階層分割を更新する。
具体的には、階層分割更新部216は、まず、バイナリ系列e={e,・・・,e)が表す二分木の全てのリーフの中から一様分布に基づいて、1つのリーフBを抽出する。
次に、抽出したリーフBが、終端であるか否かを判断し、(1)抽出したリーフBが終端である場合、(2)抽出したリーフBが終端でない場合のそれぞれについて、下記のように階層分割Πを更新する。
(1)抽出したリーフBが終端である場合、一様分布の確率に従って、以下の追加、修正、融合の3つの操作のうち1つを実行する。
<<追加>>
追加では、抽出したリーフBに対して、一様な線形分割を乱数により生成し、更新先の候補を生成する。
そして、現在の分割により計算される目的関数Lの値をLold、更新先の候補を用いて計算される目的関数Lの値をLnewとして、下記の式(20)による確率を求める。
求めた確率に基づいて、新しい候補を更新先として受理するか否かを決定し、受理された場合に、新しい候補を更新先として採用する。受理されない場合は、現在の分割を維持する。
図2は、抽出されたリーフが終端だった場合の追加候補の生成の例を示す図である。
図2に示すように、抽出したリーフBが、終端である場合(図2の左図)、抽出したリーフBに対して追加候補が生成される(図2の右図)。
<<修正>>
修正では、抽出したリーフBの親リーフ(これをBe’と書くことにする)に対して、一様な線形分割を乱数により生成し、更新先の候補を生成する。
そして、現在の分割により計算される目的関数Lの値をLold、更新先の候補を用いて計算される目的関数Lの値をLnewとして、下記の式(21)による確率を求める。
求めた確率に基づいて、新しい候補を更新先として受理するか否かを決定し、受理された場合に、新しい候補を更新先として採用する。受理されない場合は、現在の分割を維持する。
図3は、抽出されたリーフが終端だった場合の修正候補の生成の例を示す図である。
図3に示すように、抽出したリーフBが、終端である場合(図3の左図)、抽出したリーフBの親リーフBe’に対して修正候補が生成される(図3の右図)。
<<融合>>
融合では、抽出したリーフBの親リーフBe’に対して、その子ノードにあたる分割を削除し融合を更新先の候補とする。
そして、現在の分割により計算される目的関数Lの値をLold、更新先の候補を用いて計算される目的関数Lの値をLnewとして、下記の式(22)による確率を求める。
求めた確率に基づいて、新しい候補を更新先として受理するか否かを決定し、受理された場合に、新しい候補を更新先として採用する。受理されない場合は、現在の分割を維持する。
図4は、抽出されたリーフが終端だった場合の融合候補の生成の例を示す図である。
図4に示すように、抽出したリーフBが、終端である場合(図4の左図)、抽出したリーフBの親リーフBe’の子ノードが削除され、融合候補が生成される(図4の右図)。
(2)抽出したリーフBが終端でない場合、一様分布によって以下の修正の操作を実行する。
この場合の修正では、抽出したリーフBの親リーフBe’に対して、子ノードの分割への矛盾の無い範囲で、一様な線形分割を乱数により生成し、更新先の候補を生成する。
そして、現在の分割により計算される目的関数Lの値をLold、更新先の候補を用いて計算される目的関数Lの値をLnewとして、下記の式(23)による確率を求める。
求めた確率に基づいて、新しい候補を更新先として受理するか否かを決定し、受理された場合に、新しい候補を更新先として採用する。受理されない場合は、現在の分割を維持する。
図5は、抽出されたリーフが終端でない場合の修正候補の生成の例を示す図である。
図5に示すように、抽出したリーフBが、終端でない場合(図5の左図)、抽出したリーフBの親リーフBe’に対して、子ノードの分割への矛盾の無い範囲で、修正候補が生成される(図5の右図)。
そして、階層分割更新部216は、ポリア木パラメータ{Y}、及び更新した階層分割Πを、反復判定部218に渡す。
反復判定部218は、予め定められた反復終了条件を満たすまで、ポリア木パラメータ更新部214による更新と、階層分割更新部216による更新とを繰り返させる。
具体的には、反復判定部218は、ポリア木パラメータ更新部214による更新、及び階層分割更新部216による更新の回数が、あらかじめ指定された反復回数に到達しているか否かを判断する。
反復回数に達していない場合、反復判定部218は、ポリア木パラメータ{Y}、及び階層分割Πを、ポリア木パラメータ更新部214に渡し、ポリア木パラメータ更新部214による更新と、階層分割更新部216による更新とを繰り返させる。
一方、反復回数に達している場合、反復判定部218は、ポリア木パラメータ{Y}、及び階層分割Πを、出力部300に渡す。
出力部300は、反復判定部218から受け取ったポリア木パラメータ{Y}、及び階層分割Πを、出力する。
具体的には、出力部300は、ポリア木パラメータ{Y}、及び階層分割Πを記憶媒体に保存しておく。
<本発明の実施の形態に係る関数学習装置の作用>
図6は、本発明の実施の形態に係る関数学習装置における関数学習のための推論アルゴリズムの例を示す図である。
Algorithm1の説明のため、図7において、本発明の実施の形態に係る関数学習処理フローを示すフローチャートを示す。
入力部100に観測データが入力されると、演算部200において、図7に示す関数学習処理フローが実行される。
まず、ステップS100において、初期化部212が、入力部100に入力された入力データと出力データとの組(x,y)を複数含む観測データを受け取る。
なお、共分散関数c、及び反復回数は予め定められていても良いし、入力部100に入力されても良い。
ステップS110において、初期化部212は、ポリア木の深さmと、各リーフのポリア木パラメータ{Y}と、階層分割Πとを、それぞれの事前分布から生成される乱数を用いて初期化して、ポリア木パラメータ更新部214へ渡す。
ステップS120において、反復判定部218は、反復回数をカウントするための変数iに1を設定しておく。
ステップS130において、ポリア木パラメータ更新部214は、観測データと、階層分割Πとに基づいて、観測データ、階層分割Π、及びポリア木パラメータ{Y}を用いて予め定められた目的関数Lを最適化するように、各リーフのポリア木パラメータ{Y}を更新する処理を行う。
ステップS140において、階層分割更新部216は、観測データと、各リーフのポリア木パラメータ{Y}とに基づいて、目的関数Lを最適化するように、階層分割Πを更新する処理を行う。
ステップS150において、反復判定部218は、iが反復回数(例えば、1000)より小さいか否かを判定する。
iが反復回数より小さい場合(ステップS150のYES)、ステップS160において、反復判定部218は、iに1を加算し、ステップS130へ戻る。そして、ポリア木パラメータ{Y}の更新処理と、階層分割Πの更新処理を、iが反復回数に達するまで繰り返す。
一方、iが反復回数以上である場合(ステップS150のNO)、ステップS170において、出力部300は、最終的なポリア木パラメータ{Y}と、階層分割Πとを出力する。
ここで、ステップS130におけるポリア木パラメータ{Y}の更新処理について、図8を用いて説明する。図8は、ポリア木パラメータの更新処理フローを示すフローチャートである。
ステップS200において、ポリア木パラメータ更新部214は、長さm以下の全てのバイナリ系列eから、1番目のバイナリ系列eを選択する。
ステップS210において、ポリア木パラメータ更新部214は、Yの現在の値から、式(17)に従ってLoldを算出する。
ステップS220において、ポリア木パラメータ更新部214は、Yの新しい候補をBeta(ae0,ae1)から生成し、式(17)に従ってLnewを算出する。
ステップS230において、ポリア木パラメータ更新部214は、式(19)に従って確率を計算し、当該確率に従ってYの新しい候補を受理するか否かを判定する。
の新しい候補を受理する場合(ステップS230のYES)、ステップS240において、ポリア木パラメータ更新部214は、Yの新しい候補をYとして更新する。
一方、Yの新しい候補を受理しない場合(ステップS230のNO)、Yの新しい候補をYとして更新せずに、ステップS250に進む。
ステップS250において、長さm以下の全てのバイナリ系列eのうち、未処理のバイナリ系列eが存在するか否かを判定する。
未処理のバイナリ系列eが存在する場合(ステップS250のYES)、ステップS260において、次のバイナリ系列eを選択し、ステップS210〜ステップS240を繰り返す。
一方、未処理のバイナリ系列eが存在しない場合(ステップS250のNO)、リターンする。
次に、ステップS140における階層分割Πの更新処理について、図9を用いて説明する。図9は、階層分割の更新処理フローを示すフローチャートである。
ステップS300において、階層分割更新部216は、長さm以下の全てのバイナリ系列eのうち、1番目のバイナリ系列eを選択する。
ステップS310において、階層分割更新部216は、選択されたバイナリ系列eに対応するリーフBが終端であるか否かを判定する。
が終端である場合(ステップS310のYES)、ステップS320において、実行する操作を、一様分布に従って、追加、修正、融合のうちの何れかを選択する。
当該選択することについては、例えば、一様分布Uniform(1/3,1/3,1/3)に従って追加、修正、融合のうち何れかを選択する。
ステップS330において、階層分割更新部216は、選択した操作が追加か否かを判定する。
選択した操作が追加である場合(ステップS330のYES)、ステップS340において、選択されたバイナリ系列eに対応するリーフBに対して、一様な線形分割を乱数により生成したものを、更新先の候補として生成する。その後、ステップS390に進む。
一方、選択した操作が追加でない場合(ステップS330のNO)、ステップS350において、選択した操作が修正であるか否かを判定する。
選択した操作が修正である場合(ステップS350のYES)、ステップS360において、選択されたバイナリ系列eに対応するリーフBの親リーフBe’に対して、一様な線形分割を乱数により生成し、更新先の候補を生成する。その後ステップS390に進む。
一方、選択した操作が修正でない場合(ステップS350のNO)、選択された操作は融合であるため、ステップS370において、選択されたバイナリ系列eに対応するリーフBの親リーフBe’に対して、その子ノードにあたる分割を削除し、融合を更新先の候補とする。
一方、Bが終端でない場合(ステップS310のNO)、ステップS380において、選択されたバイナリ系列eに対応するリーフBの親リーフBe’に対して、子ノードの分割への矛盾の無い範囲で、一様な線形分割を乱数により生成し、更新先の候補を生成する。
ステップS390において、現在の分割により計算される目的関数Lの値をLoldとして算出する。
ステップS400において、更新先の候補を用いて計算される目的関数Lの値をLnewとして算出する。
ステップS410において、階層分割更新部216は、操作に応じて式(20)〜式(23)に従って確率を計算し、当該確率に従って新しい候補を更新先として受理するか否かを判定する。
新しい候補を更新先として受理する場合(ステップS410のYES)、ステップS420において、新しい候補を更新先として階層分割Πを更新する。
新しい候補を更新先として受理しない場合(ステップS420のNO)、階層分割Πを更新せずに、ステップS430に進む。
ステップS430において、未処理のバイナリ系列eが存在するか否かを判定する。
未処理のバイナリ系列eが存在する場合(ステップS430のYES)、ステップS440において、次のバイナリ系列eを選択し、ステップS310〜ステップS420を繰り返す。
一方、未処理のバイナリ系列eが存在しない場合(ステップS430のNO)、リターンする。
以上説明したように、本発明の実施の形態に係る関数学習装置、関数学習方法、及びプログラムによれば、ポリア木パラメータと、階層分割とを、階層的に分割された領域の各々では、当該領域に属する入力データがガウス過程でモデル化され、入力データに適用される重みが、入力データが属する各階層の領域を表す各リーフに割り当てられたポリア木パラメータの乗算を用いて定められるように学習ことにより、元の関数が連続的でない場合に対しても、所望の精度で近似した関数を学習することができる。
<本発明の実施の形態に係る関数計算装置の構成>
次に、本発明の実施の形態に係る関数計算装置の構成について説明する。図10は、本発明の実施の形態に係る関数計算装置の構成を示す概略図である。
本発明の実施の形態に係る関数計算装置20は、ニューラルネットワークを用いた入出力関係を表す関数を計算する装置である。この関数計算装置20は、CPUと、RAMと、後述する関数計算処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
図10に示すように、関数計算装置20は、入力データを入力する入力部400と、入力部400に入力された入力データについて、ニューラルネットワークを用いた入出力関係を表す関数を計算する演算部500と、演算部500によって計算された結果を出力する出力部600とを備えて構成される。
入力部400は、既知のキーボード、記憶装置などの入力器により実現される。また、入力部400は、インターネット等のネットワークを介して観測データを入力するネットワークインターフェースでも良い。
出力部600は、ディスプレイ、プリンタ、磁気ディスクなどで実装される。
演算部500は、記憶部520と、関数計算部530とを含んで構成される。
記憶部520は、上記の関数学習装置10によって学習された重み関数が記憶されている。
具体的には、記憶部520は、共分散関数cと、上記の関数学習装置10の出力部300が出力した、ポリア木パラメータ{Y}、及び階層分割Πとが記憶されている。
関数計算部530は、記憶部520によって記憶されている上記の関数学習装置10によって学習された重み関数を用いたニューラルネットワークの関数により、入力部400から入力された入力データxに対する出力データyを計算する。
具体的には、上記式(16)を用いてy(=f(B))を計算する。ただし、

である。これは、式(16)が、式(12)と等価な能力を実現できることが、従来の結果から導かれるためである。なお、式(12)は関数f(x)がaとgによる内積の形で表示できることを表している。
ここで、上記式(16)を計算する際には、Bに入力データxを代入することにより計算する。
ここで、Bに入力データxを代入した上記式(16)の計算結果は、決定的に1つの値を持つ訳ではない。式(16)の右辺が表すように、出力データyはガウス過程に従うことを意味しているからである。
すなわち、上記式(16)の計算結果は、出力データyがある値である確率が、どの程度あるか、を表す。
なお、出力データyを1つの値に定めるようにしてもよい。
出力データyを1つに定める典型的な方法としては、例えば、ガウス過程の平均値を用いる方法、つまり、V(x)をそのまま用いてしまう方法がある。この場合には、式(10)により、xが属するリーフのうちもっとも深いリーフeに対応するVの値を算出すればよい。
そして、関数計算部530は、出力データyを、出力部600に渡す。
出力部600は、関数計算部530から受け取った出力データyを出力する。
<本発明の実施の形態に係る関数計算装置の作用>
図11は、本発明の実施の形態に係る関数計算処理フローを示すフローチャートを示す。
入力部400に入力データxが入力されると、演算部500において、図11に示す関数計算処理フローが実行される。
まず、ステップS500において、関数計算部530が、入力部400に入力された入力データxを受け取る。
ステップS510において、関数計算部530は、記憶部520から、共分散関数cと、上記の関数学習装置10によって学習されたポリア木パラメータ{Y}、及び階層分割Πとを読み込む。
ステップS520において、関数計算部530は、ポリア木パラメータ{Y}、階層分割Π、及び共分散関数cを用いたニューラルネットワークの関数により、入力データxに対する出力データyを計算する。
ステップS530において、出力部600は、出力データyを出力する。
以上説明したように、本発明の実施の形態に係る関数計算装置、関数計算方法、及びプログラムによれば、関数計算部が、上記の関数学習装置によって学習された重み関数を用いたニューラルネットワークの関数により、入力データに対する出力データを計算することにより、元の関数が連続的でない場合に対しても、所望の精度で近似した関数を計算することができる。
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
10 関数学習装置
20 関数計算装置
100 入力部
200 演算部
210 点群データ取得部
210 関数学習部
212 初期化部
214 ポリア木パラメータ更新部
216 階層分割更新部
218 反復判定部
300 出力部
400 入力部
500 演算部
520 記憶部
530 関数計算部
600 出力部

Claims (7)

  1. ニューラルネットワークを用いた入出力関係を表す関数を学習する関数学習装置であって、
    入力データと出力データとの組を複数含む観測データに基づいて、
    前記ニューラルネットワークの入力層と隠れ層との間の重みを求めるための重み関数であって、前記重みのインデックスが連続的である重み関数を学習する関数学習部を含み、
    前記関数学習部は、入力データの範囲を表す領域を階層的に分割したことを表す二分木構造であって、各リーフが階層的に分割された領域を表す一般化ポリア木について、各リーフに割り当てられる実数を表すポリア木パラメータと、階層分割とを、
    階層的に分割された領域の各々では、前記領域に属する入力データがガウス過程でモデル化され、
    前記重み関数により求められる、入力データに適用される重みが、前記入力データが属する各階層の領域を表す各リーフに割り当てられたポリア木パラメータの乗算を用いて定められるように学習する
    関数学習装置。
  2. 前記関数学習部は、
    各リーフのポリア木パラメータと前記階層分割とを初期化する初期化部と、
    前記観測データと、前記階層分割とに基づいて、前記観測データ、前記階層分割、及び前記ポリア木パラメータを用いて予め定められた目的関数を最適化するように、各リーフのポリア木パラメータを更新するポリア木パラメータ更新部と、
    前記観測データと、各リーフのポリア木パラメータとに基づいて、前記目的関数を最適化するように、前記階層分割を更新する階層分割更新部と、
    予め定められた反復終了条件を満たすまで、前記ポリア木パラメータ更新部による更新と、前記階層分割更新部による更新とを繰り返させる反復判定部と、
    を含む請求項1記載の関数学習装置。
  3. ニューラルネットワークを用いた入出力関係を表す関数を計算する関数計算装置であって、
    請求項1または2記載の関数学習装置によって学習された重み関数を用いた前記ニューラルネットワークの関数により、入力データに対する出力データを計算する関数計算部
    を含む関数計算装置。
  4. ニューラルネットワークを用いた入出力関係を表す関数を学習する関数学習装置における関数学習方法であって、
    関数学習部が、入力データと出力データとの組を複数含む観測データに基づいて、前記ニューラルネットワークの入力層と隠れ層との間の重みを求めるための重み関数であって、前記重みのインデックスが連続的である重み関数を学習するステップを含み、
    前記関数学習部が学習するステップについては、入力データの範囲を表す領域を階層的に分割したことを表す二分木構造であって、各リーフが階層的に分割された領域を表す一般化ポリア木について、各リーフに割り当てられる実数を表すポリア木パラメータと、階層分割とを、
    階層的に分割された領域の各々では、前記領域に属する入力データがガウス過程でモデル化され、
    前記重み関数により求められる、入力データに適用される重みが、前記入力データが属する各階層の領域を表す各リーフに割り当てられたポリア木パラメータの乗算を用いて定められるように学習する
    関数学習方法。
  5. 前記関数学習部が学習するステップは、
    初期化部が、各リーフのポリア木パラメータと前記階層分割とを初期化するステップと、
    ポリア木パラメータ更新部が、前記観測データと、前記階層分割とに基づいて、前記観測データ、前記階層分割、及び前記ポリア木パラメータを用いて予め定められた目的関数を最適化するように、各リーフのポリア木パラメータを更新するステップと、
    階層分割更新部が、前記観測データと、各リーフのポリア木パラメータとに基づいて、前記目的関数を最適化するように、前記階層分割を更新するステップと、
    反復判定部が、予め定められた反復終了条件を満たすまで、前記ポリア木パラメータ更新部による更新と、前記階層分割更新部による更新とを繰り返させるステップと、
    を含む請求項4記載の関数学習方法。
  6. ニューラルネットワークを用いた入出力関係を表す関数を計算する関数計算方法であって、
    関数計算部が、請求項4または5記載の関数学習方法によって学習された重み関数を用いた前記ニューラルネットワークの関数により、入力データに対する出力データを計算するステップを含む関数計算方法。
  7. コンピュータを、請求項1若しくは請求項2記載の関数学習装置、又は、請求項3記載の関数計算装置の各部として機能させるためのプログラム。
JP2017199891A 2017-10-13 2017-10-13 関数学習装置、関数計算装置、関数学習方法、関数計算方法、及びプログラム Active JP6799519B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017199891A JP6799519B2 (ja) 2017-10-13 2017-10-13 関数学習装置、関数計算装置、関数学習方法、関数計算方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017199891A JP6799519B2 (ja) 2017-10-13 2017-10-13 関数学習装置、関数計算装置、関数学習方法、関数計算方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2019074890A true JP2019074890A (ja) 2019-05-16
JP6799519B2 JP6799519B2 (ja) 2020-12-16

Family

ID=66544765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017199891A Active JP6799519B2 (ja) 2017-10-13 2017-10-13 関数学習装置、関数計算装置、関数学習方法、関数計算方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6799519B2 (ja)

Also Published As

Publication number Publication date
JP6799519B2 (ja) 2020-12-16

Similar Documents

Publication Publication Date Title
Wilson et al. A Lyapunov analysis of accelerated methods in optimization
Baymurzina et al. A review of neural architecture search
Zanette et al. Limiting extrapolation in linear approximate value iteration
JP2005276225A (ja) テーブルを使用したツリーの学習
WO2022252455A1 (en) Methods and systems for training graph neural network using supervised contrastive learning
CN111063398A (zh) 一种基于图贝叶斯优化的分子发现方法
Xu et al. Graph partitioning and graph neural network based hierarchical graph matching for graph similarity computation
Lainscsek et al. Global modeling of the Rössler system from the z-variable
Koppel et al. Breaking bellman’s curse of dimensionality: Efficient kernel gradient temporal difference
JP6190771B2 (ja) パラメータ推定方法、装置、及びプログラム
Joshi et al. Efficient karyotyping of metaphase chromosomes using incremental learning
JP6465440B2 (ja) 解析装置、方法、及びプログラム
JP6799519B2 (ja) 関数学習装置、関数計算装置、関数学習方法、関数計算方法、及びプログラム
Marthaler An overview of mathematical methods for numerical optimization
JP7045150B2 (ja) 連続最適化問題の大域的探索装置及びプログラム
CN116467466A (zh) 基于知识图谱的编码推荐方法、装置、设备及介质
CN110866838A (zh) 基于转移概率预处理的网络表示学习算法
Grigas et al. Stochastic in-face frank-wolfe methods for non-convex optimization and sparse neural network training
CN114842247A (zh) 基于特征累加的图卷积网络半监督节点分类方法
CN114492165A (zh) 基于亲缘选育方法的参数优化方法及系统
JP6745507B2 (ja) パラメータ推定装置、方法、及びプログラム
Aloui et al. Maximizing the Domain of attraction of nonlinear systems: A PSO optimization approach
Rivier et al. Non‐parametric measure approximations for constrained multi‐objective optimisation under uncertainty
JP2019095894A (ja) 推定装置、学習装置、学習済みモデル、推定方法、学習方法、及びプログラム
Xu et al. RSRM: Reinforcement Symbolic Regression Machine

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201120

R150 Certificate of patent or registration of utility model

Ref document number: 6799519

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150