(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-07
(45)【発行日】2024-08-16
(54)【発明の名称】最適化方法、最適化装置、及びプログラム
(51)【国際特許分類】
G06N 99/00 20190101AFI20240808BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2021084644
(22)【出願日】2021-05-19
【審査請求日】2023-10-04
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】中村 健吾
(72)【発明者】
【氏名】安田 宜仁
(72)【発明者】
【氏名】坂上 晋作
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2020-24621(JP,A)
【文献】NAKAMURA, Kengo et al.,Practical Frank-Wolfe Method with Decision Diagrams for Computing Wardrop Equilibrium of Combinatorial Congestion Games,Proceedings of the AAAI Conference on Artificial Intelligence [online],Vol.34, No.2,2020年,pp.2200-2209,https://cdn.aaai.org/ojs/5596/5596-13-8821-1-10-20200512.pdf,[2024年7月16日検索]
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
組合せ制約を持つ最適化問題の解と、前記解の勾配とを計算するための最適化方法であって、
前記最適化問題の目的関数となる凸関数のパラメータと、前記目的関数の勾配関数と、前記組合せ制約を表現するゼロサプレス型二分決定グラフとを入力する入力手順と、
前記パラメータと、前記勾配関数と、前記ゼロサプレス型二分決定グラフとに基づいて、微分可能なFrank-Wolfe法により、前記最適化問題の解を計算する解計算手順と、
前記解の計算過程に基づいて、自動微分により、前記解の前記パラメータに関する勾配を計算する勾配計算手順と、
をコンピュータが実行し、
前記微分可能なFrank-Wolfe法は、Softmin操作を用いて前記目的関数の値の勾配方向を計算することで、前記解を計算する、最適化方法。
【請求項2】
前記解計算手順は、
予め初期化されたベクトルに対する前記Softmin操作の結果から前記勾配方向を計算する点を決定し、
前記勾配関数を用いて前記点における勾配方向を計算し、前記勾配方向に前記ベクトルを更新する、
ことを繰り返した後、各繰り返しにおける前記Softmin操作の結果から前記解を計算する、請求項1に記載の最適化方法。
【請求項3】
前記解計算手順は、
前記ゼロサプレス型二分決定グラフの各ノードのボトムアップ順に、前記Softmin操作の対象となるベクトルの要素のうち、前記ノードのラベル値に対応する要素の値と、前記ノードの1-子ノードに対応する第1の配列値と、前記ノードの0-子ノードに対応する第1の配列値とを用いて、前記ノードに対応する第1の配列値を計算し、
前記ゼロサプレス型二分決定グラフの各ノードのトップダウン順に、前記ノードに対応する第1の配列値と、前記ノードの0-子ノードに対応する第1の配列値と、前記ノードに対応する第2の配列値とを用いて、前記ノードの0-子ノードに対応する第2の配列値と、前記ノードの1-子ノードに対応する第2の配列値と、前記Softmin操作の結果を表すベクトルの要素のうち、前記ノードのラベル値に対応する要素の値とを更新する、ことで前記Softmin操作の結果を計算する、請求項2に記載の最適化方法。
【請求項4】
前記最適化問題の解と、前記解の前記パラメータに関する勾配とを所定の出力先に出力する出力手順、が更に含まれる請求項1乃至3の何れか一項に記載の最適化方法。
【請求項5】
組合せ制約を持つ最適化問題の解と、前記解の勾配とを計算するための最適化装置であって、
前記最適化問題の目的関数となる凸関数のパラメータと、前記目的関数の勾配関数と、前記組合せ制約を表現するゼロサプレス型二分決定グラフとを入力する入力部と、
前記パラメータと、前記勾配関数と、前記ゼロサプレス型二分決定グラフとに基づいて、微分可能なFrank-Wolfe法により、前記最適化問題の解を計算する解計算部と、
前記解の計算過程に基づいて、自動微分により、前記解の前記パラメータに関する勾配を計算する勾配計算部と、
を有し、
前記微分可能なFrank-Wolfe法は、Softmin操作を用いて前記目的関数の値の勾配方向を計算することで、前記解を計算する、最適化装置。
【請求項6】
コンピュータに、請求項1乃至4の何れか一項に記載の最適化方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化方法、最適化装置、及びプログラムに関する。
【背景技術】
【0002】
微分可能な最適化は、近年、機械学習等の分野で注目を集めている技術である。最適化問題とは、ベクトルyが決められた範囲内y∈Cを動くときに、ある関数f(y)が最小(又は最大)になる点をCの中から探す問題である。このような問題は数理計画とも呼ばれ、例えば工場の生産計画や配送計画等の現実的な問題を数式で表現すると自然と現れる問題である。
【0003】
いま、最適化問題における関数fがパラメータθによってf(y;θ)とパラメータ化された状況を考える。θは、例えば配送計画問題においては道路の混雑度合いのようなものだと思える。このとき興味があるのは、パラメータθを変化させることによって、最適化問題の解がどのように変化するか、ということである。これを知るために、最適化問題の解のパラメータθに関する勾配を求める、というのが「微分可能な最適化」の枠組みで行うことである。勾配を知ることができれば、パラメータθが少し変化したときに最適化問題の解がどちらの方向に動くのかを知ることができる。例えば機械学習においては、θは学習対象のモデルのパラメータに相当し、最適化問題の解の勾配を求めることで、最適化の結果をフィードバックしてパラメータのチューニングに用いることができる。
【0004】
ここで、特に、ベクトルが動ける範囲Cが組合せ制約と呼ばれる凸多面体で表され、関数f(・;θ)は凸関数という状況を考える。これらは様々な応用例で実際に現れる性質である。
【0005】
f(y;θ)をC内で最小化する解をy(θ)と書くことにすると、これの勾配∇y(θ)を求める方法は大きく分けて2つ存在する。
【0006】
1つ目は、非特許文献1等に記載されているように、陰関数定理と呼ばれる数学の定理とKKT条件と呼ばれる最適性の条件から、勾配∇y(θ)が満たすべき方程式を導き出し、その方程式を実際に解くことで勾配を求める方法である。この方法は、組合せ制約の凸多面体が少ない数の等式や不等式で表現できる場合には有効な方法である。
【0007】
2つ目は、反復的な最適化手法で最適化問題の解y(θ)を求め、その計算過程と非特許文献2等に記載されているような自動微分という技術とを用いて勾配∇y(θ)を求めるという手法である。ここで、ベクトルが動ける範囲が組合せ制約になっている場合によく用いられる最適化手法としては、非特許文献3等に記載されているFrank-Wolfe法が挙げられる。Frank-Wolfe法は、多面体への射影という困難な計算をすることなく組合せ制約下における凸関数最小化を行うことができるため、組合せ制約が複雑な場合であっても計算しやすい最適化手法である。
【先行技術文献】
【非特許文献】
【0008】
【文献】Akshay Agrawal, Brandon Amos, Shane Barratt, Stephen Boyd, Steven Diamond, and J. Zico Kolter. Differentiable convex optimization layers. In Proceedings of Advances in Neural Information Processing Systems 32 (NeurIPS 2019), pp. 9562-9574, 2019.
【文献】Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel. Backpropagation applied to handwritten zip code recognition. Neural Computation, Vol. 1, pp. 541-551, 1989.
【文献】Martin Jaggi. Revisiting Frank-Wolfe: projection-free sparse convex optimization. In Proceedings of the 30th International Conference on Machine Learning (ICML 2013), PMLR Vol. 28, pp. 427-435, 2013.
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上記の2つの方法はいずれも、特に複雑な組合せ制約の最適化問題に対する勾配を求めるのには適さない。
【0010】
まず1つ目の方法に関しては、組合せ制約の種類によっては凸多面体が少ない数の等式や不等式で表現できない場合があり、その場合は方程式のサイズが大きくなり現実的な時間で勾配を求めることが難しくなる、という問題点がある。例えば、巡回セールスマン問題という問題に対応する組合せ制約は、これを表現するために、問題のサイズに対して指数本の等式や不等式が必要となることが知られている。
【0011】
一方で、2つ目の方法に関しては、最適化手法としてFrank-Wolfe法を用いる場合、Frank-Wolfe法は線形最小化と呼ばれる離散的な操作を含むため、自動微分の技術が使えない、という問題点がある。離散的な操作が含まれると、それによって求まる解y(θ)はパラメータθに関して不連続となってしまうため、勾配∇y(θ)を求めることができない。
【0012】
本発明の一実施形態は、上記の点に鑑みてなされたもので、複雑な組合せ制約の最適化問題の解とその勾配とを効率的に求めることを目的とする。
【課題を解決するための手段】
【0013】
上記目的を達成するため、一実施形態に係る最適化方法は、組合せ制約を持つ最適化問題の解と、前記解の勾配とを計算するための最適化方法であって、前記最適化問題の目的関数となる凸関数のパラメータと、前記目的関数の勾配関数と、前記組合せ制約を表現するゼロサプレス型二分決定グラフとを入力する入力手順と、前記パラメータと、前記勾配関数と、前記ゼロサプレス型二分決定グラフとに基づいて、微分可能なFrank-Wolfe法により、前記最適化問題の解を計算する解計算手順と、前記解の計算過程に基づいて、自動微分により、前記解の前記パラメータに関する勾配を計算する勾配計算手順と、をコンピュータが実行し、前記微分可能なFrank-Wolfe法は、Softmin操作を用いて前記目的関数の値の勾配方向を計算することで、前記解を計算する。
【発明の効果】
【0014】
複雑な組合せ制約の最適化問題の解とその勾配とを効率的に求めることができる。
【図面の簡単な説明】
【0015】
【
図1】本実施形態に係る最適化装置のハードウェア構成の一例を示す図である。
【
図2】本実施形態に係る最適化装置の機能構成の一例を示す図である。
【
図3】最適解及びその勾配の計算処理の流れの一例を示すフローチャートである。
【
図4】微分可能Frank-Wolfe法のアルゴリズムの一例を説明するための図である。
【
図5】ZDDによるSoftmin計算のアルゴリズムの一例を説明するための図である。
【発明を実施するための形態】
【0016】
以下、本発明の一実施形態について説明する。本実施形態では、微分可能なFrank-Wolfe法により効率的に最適解とその勾配を求めることが可能な最適化装置10について説明する。
【0017】
本実施形態では、従来のFrank-Wolfe法に代わって、離散的な操作を必要としない新たな最適化手法である微分可能Frank-Wolfe法を提案し、この微分可能Frank-Wolfe法により最適解を求める。この微分可能Frank-Wolfe法は、従来のFrank-Wolfe法で必要な線形最小化と呼ばれる離散的な操作を、Softminと呼ばれる操作に置き換えたものである。
【0018】
最適化問題の解y(θ)を求める手法として微分可能Frank-Wolfe法を用いることで、自動微分の技術により勾配∇y(θ)を求めることができる。更に、この微分可能Frank-Wolfe法は、単に最適化手法としてみた場合でも、従来のFrank-Wolfe法よりも理論的な収束速度が速く、性能の良い手法となっている。
【0019】
一方で、微分可能Frank-Wolfe法で用いるSoftminと呼ばれる操作は複雑な操作であり、Softminを効率的に計算できなければ微分可能Frank-Wolfe法を現実的な時間で実行することはできない。そこで、本実施形態では、特に制約が組合せ制約の場合に、参考文献1に記載されているゼロサプレス型二分決定グラフ(Zero-suppressed Binary Decision Diagram,以下ZDDと呼ぶ。)を用いることで、Softminを効率的に計算できる方法も提案する。ZDDは、組合せ制約Cが少ない数の等式や不等式で表現できない場合であっても、そのもととなる組合せの集まりを小さく表現できることが多いため、一般に複雑な組合せ制約の問題に対しても用いることができる。
【0020】
<組合せ制約>
まず、組合せ制約について説明する。各アイテムに対して番号を付与し、n個のアイテムの集合を{1,・・・,n}と書くことにして、これらのアイテムの組合せの集合Fを考える。また、アイテムの組合せS⊆{1,・・・,n}に対して、その指示ベクトル1Sを、n次元のベクトルであって、アイテムiがSに含まれるならばi番目の要素は1、そうでなければi番目の要素は0となるようなベクトルであるものとする。このとき、組合せ集合Fに対応する組合せ制約Cを、以下のようなn次元空間中の多面体と定義する。
【0021】
【数1】
この組合せ制約Cは、直感的には、組合せ集合F内の各組合せの重ね合わせ(すなわち、重み付き和)によって動ける空間だと思うことができる。このとき、z
Sの値が、組合せSの重さに対応する。このような制約は、後述する応用例等の様々な場面で現れ得る制約である。
【0022】
<ZDD>
次に、ZDDの構造について説明する。ZDDは、ノードと向きのあるエッジの集まりでできたループのないグラフ(有向非巡回グラフ、DAG:Directed Acyclic Graph)で組合せ集合を表現するデータ構造である。ZDDは終端ノードと分岐ノードの2種類のノードを持つ。終端ノードはそのノードを始点するエッジ(枝)を持たないノードであり、
【0023】
【数2】
と、⊥終端ノードとの2種類の終端ノードがあり、1つのZDDは各終端ノードを高々1つずつ持つ。以下では、前者の終端ノードを「第1終端ノード」、後者の終端ノードを「第2終端ノード」とも呼ぶ。
【0024】
分岐ノードは終端ノードではないノードのことであり、各分岐ノードにはそのノードを始点とするエッジ(枝)が必ず2つ存在し、それぞれ0-枝、1-枝と呼ばれる。分岐ノードvに対して、その分岐ノードvを始点する0-枝が指す先のノードを0-子ノードと呼び、v0と書くことにする。同様に、分岐ノードvに対して、その分岐ノードvを始点する1-枝が指す先のノードを1-子ノードと呼び、v1と書くことにする。また、各分岐ノードvにはラベルと呼ばれる整数値vlv∈{1,・・・,n}が付随しており、これがアイテムの番号と対応している。なお、終端ノードに関してはラベルの値をn+1としておく。
【0025】
このとき、各0-枝と1-枝は必ずラベルが小さい方のノードから大きい方のノードに向かうようにする。すなわち、任意の分岐ノードvに対してvlv<(v0)lvとvlv<(v1)lvとが成り立つようにする。
【0026】
ここで、例えば組合せ集合Fがあるグラフ構造のマッチングや閉路、木、経路等の部分構造を表現している場合には、参考文献2に記載されているフロンティア法により組合せ集合Fを表現するZDDを効率的に構築することができる。また、参考文献1に記載されているApply演算を用いることで、任意の組合せ集合に対してその組合せ集合を表現するZDDを構築することができる。そこで、以下では、組合せ制約Cを表現するものとして、そのもととなる組合せ集合Fそのものが与えられるのではなく、組合せ集合Fを表現するZDDが最適化装置10に与えられるものとする。
【0027】
<最適化装置10のハードウェア構成>
次に、本実施形態に係る最適化装置10のハードウェア構成を
図1に示す。
図1に示すように、本実施形態に係る最適化装置10は一般的なコンピュータ又はコンピュータシステムのハードウェア構成で実現され、入力装置101と、表示装置102と、外部I/F103と、通信I/F104と、プロセッサ105と、メモリ装置106とを有する。これらの各ハードウェアは、それぞれがバス107により通信可能に接続される。
【0028】
入力装置101は、例えば、キーボードやマウス、タッチパネル等である。表示装置102は、例えば、ディスプレイ等である。なお、最適化装置10は、例えば、入力装置101及び表示装置102のうちの少なくとも一方を有していなくてもよい。
【0029】
外部I/F103は、記録媒体103a等の外部装置とのインタフェースである。最適化装置10は、外部I/F103を介して、記録媒体103aの読み取りや書き込み等を行うことができる。なお、記録媒体103aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
【0030】
通信I/F104は、最適化装置10を通信ネットワークに接続するためのインタフェースである。プロセッサ105は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等の各種演算装置である。メモリ装置106は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等の各種記憶装置である。
【0031】
本実施形態に係る最適化装置10は、
図1に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、
図1に示すハードウェア構成は一例であって、最適化装置10は、他のハードウェア構成を有していてもよい。例えば、最適化装置10は、複数のプロセッサ105を有していてもよいし、複数のメモリ装置106を有していてもよい。
【0032】
<最適化装置10の機能構成>
次に、本実施形態に係る最適化装置10の機能構成を
図2に示す。
図2に示すように、本実施形態に係る最適化装置10は、入力部201と、最適化部202と、勾配計算部203と、出力部204とを有する。これら各部は、例えば、最適化装置10にインストールされた1以上のプログラムが、プロセッサ105に実行させる処理により実現される。
【0033】
入力部201は、最適化装置10に与えられた各種情報(パラメータθ、そのパラメータの下で最適化したい関数(目的関数)の勾配∇f(・;θ)、及び組合せ制約Cを表現するZDD Z)を入力する。なお、ここでいう勾配∇f(・;θ)は凸関数f(y;θ)のyに関する勾配のことであり、最終的に求めたい勾配∇y(θ)(つまり、最適解y(θ)のパラメータに関する勾配∇y(θ))とは別のものである。以下では、∇f(・;θ)のことを関数勾配と呼ぶことにする。
【0034】
最適化部202は、入力部201によって入力された各種情報に基づいて、微分可能Frank-Wolfe法により、組合せ制約C内で凸関数f(・;θ)を(近似的に)最小化する解y(θ)(つまり、最適解y(θ))を計算する。
【0035】
勾配計算部203は、最適化部202が最適解y(θ)を計算した際の計算過程に基づいて、非特許文献2等に記載されているような自動微分により、最適解y(θ)のパラメータに関する勾配∇y(θ)を計算する。
【0036】
出力部204は、最適化部202によって計算された最適解y(θ)と、勾配計算部203によって計算された勾配∇y(θ)とを予め決められた任意の出力先にする。なお、最適解y(θ)及びその勾配∇y(θ)の出力先としては、例えば、表示装置102やメモリ装置106であってもよいし、通信I/F104を介して接続されるサーバや端末等であってもよい。
【0037】
<最適解y(θ)及びその勾配∇y(θ)の計算処理>
次に、最適解y(θ)及びその勾配∇y(θ)の計算処理の流れを
図3に示す。
図3に示すように、本実施形態に係る最適化装置10は、ステップS101~ステップS104の各処理を実行する。
【0038】
ステップS101:まず、入力部201は、与えられたパラメータθと関数勾配∇f(・;θ)とZDD Zとを入力する。
【0039】
ステップS102:次に、最適化部202は、上記のステップS101で入力されたパラメータθと関数勾配∇f(・;θ)とZDD Zとに基づいて、微分可能Frank-Wolfe法により、組合せ制約C内で凸関数f(・;θ)を(近似的に)最小化する最適解y(θ)を計算する。また、このとき、自動微分に必要な計算過程がメモリ装置106に格納される。なお、微分可能Frank-Wolfe法の詳細については後述する。
【0040】
ステップS103:次に、勾配計算部203は、上記のステップS102で最適解y(θ)を計算した際の計算過程に基づいて、非特許文献2等に記載されているような自動微分により、最適解y(θ)のパラメータに関する勾配∇y(θ)を計算する。
【0041】
ステップS104:そして、出力部204は、上記のステップS102で計算された最適解y(θ)と、上記のステップS103で計算された勾配∇y(θ)とを出力する。
【0042】
≪微分可能Frank-Wolfe法≫
次に、微分可能Frank-Wolfe法のアルゴリズムの一例を
図4に示す。このアルゴリズムの入力はパラメータθ∈Θ、η>0、T∈Z
>0であり、出力は凸関数f(・;θ)を(近似的に)最小化するy(θ)∈Cである。ここで、η及びTは事前に値に決定されるパラメータである。なお、Θはパラメータθが取り得る値の集合である。また、アルゴリズム中に出現するc
*,s
*,x
*(*は任意の整数値)はいずれもn次元ベクトルである。
【0043】
まず、最適化部202は、c0=0、s0=0、αt=t(t=0,・・・,T)とする(1行目)。すなわち、最適化部202は、c0とs0をn次元のゼロベクトルに初期化すると共に、各αt(t=0,・・・,T)をtに初期化する。
【0044】
次に、最適化部202は、x-1=x0=μF(c0)とする(2行目)。ここで、μF(・)は組合せ集合Fの下でのSoftmin操作である。組合せ集合Fを表現するZDD Zを用いてSoftmin操作を計算する方法の詳細については後述する。
【0045】
次に、最適化部202は、t=1,・・・,Tに対して4行目~6行目を繰り返し実行する(3行目)。4行目では、最適化部202は、st-1-αt-1xt-2+(αt-1+αt)xt-1を計算し、その計算結果をstとする。5行目では、最適化部202は、(2/(t(t+1)))stという点における関数勾配∇f(・;θ)とη及びαtとの積に対してct-1を加算した結果をctとする。6行目では、最適化部202は、xt=μF(ct)、すなわちctに対してSoftmin操作を行った結果をxtとする。
【0046】
そして、4行目~6行目を繰り返しが終わった後、最適化部202は、(2/(T(T+1)))(α1x1+・・・+αTxT)をy(θ)として出力する(7行目)。
【0047】
≪ZDDによるSoftmin計算≫
次に、ZDDによるSoftmin計算のアルゴリズムの一例を
図5に示す。このアルゴリズムの入力は組合せ集合Fを表現するZDD Z、n次元ベクトルc∈R
nであり、出力はcに対するSoftmin操作の結果μ
F(c)∈Cである。このアルゴリズム中に出現するyはn次元ベクトルである。また、D及びPはZDD Zの各ノードに対応する要素を持つ配列であり、ノードv(終端ノード又は分岐ノード)に対応する要素をそれぞれD
v及びP
vと書く。
【0048】
まず、最適化部202は、配列Dの要素のうち、第1終端ノード及び第2終端ノードに対応する要素をそれぞれ0及び+∞に初期化すると共に、yをn次元のゼロベクトルに初期化する(1行目)。すなわち、最適化部202は、
【0049】
【0050】
次に、最適化部202は、ZDD Zの分岐ノードvをボトムアップ順(つまり、ラベルの値が大きい順)に走査し、各分岐ノードvに対して3行目を繰り返し実行する(2行目)。3行目では、最適化部202は、分岐ノードvに対応するDvを、その0-子ノードv0及び1-子ノードv1にそれぞれ対応するDv0及びDv1と、n次元ベクトルcの要素のうちのvlv番目の要素とから計算する。すなわち、最適化部202は、
【0051】
【0052】
次に、最適化部202は、ZDD Zの根ノードr(つまり、ラベルの値が最も小さいノード)に対応するPrを1に初期化する(4行目)。また、最適化部202は、ZDD Zの根ノード以外の各ノードvにそれぞれ対応するPvを0に初期化する(5行目)。
【0053】
次に、最適化部202は、ZDD Zの分岐ノードvをトップダウン順(つまり、ラベルの値が小さい順)に走査し、各分岐ノードvに対して7行目~9行目を繰り返し実行する(6行目)。7行目では、最適化部202は、p=exp(Dv-Dv0)とする。8行目では、最適化部202は、Pv0に対してpPvを足し込むと共に、Pv1に対して(1-p)Pvを足し込む。9行目では、最適化部202は、n次元ベクトルyの要素のうちのvlv番目の要素に対して(1-p)Pvを足し込む。
【0054】
そして、7行目~9行目の繰り返しが終わった後、最適化部202は、n次元ベクトルyを、cに対するSoftmin操作の結果μF(c)として出力する。
【0055】
<まとめ>
以上のように、本実施形態に係る最適化装置10は、離散的な操作を必要としない新たな最適化手法である微分可能Frank-Wolfe法により、最適解y(θ)を計算する。これにより、自動微分より、最適解y(θ)のパラメータに関する勾配∇y(θ)を求めることができるようになる。
【0056】
また、本実施形態に係る最適化装置10は、最適解y(θ)を計算する際に微分可能Frank-Wolfe法で必要なSoftminという操作を、組合せ制約を表現するZDDを用いて効率的に計算する。これにより、複雑な組合せ制約を持つ凸最適化問題に対しても微分可能Frank-Wolfe法を適用することができるようになる。
【0057】
<応用例>
以下、本実施形態の応用例について説明する。
【0058】
≪応用例1≫
まず、混雑ゲームにおける均衡の最適化への応用例について説明する。混雑ゲームとは、互いに協力しないプレイヤーたちが、いくつかの資源を奪い合う、もしくは資源を割り当てる状況をモデル化したものである。混雑ゲームは、例えば、通信量が多いほど遅延が増大する通信路からなる通信ネットワークにおいて多くの人が通信を行う状況や、交通量が多いほど時間がかかる道からなる道路ネットワークにおいて多くの人が移動する状況等を模すことできる。
【0059】
混雑ゲームでは、アイテム集合N={1,・・・,n}に対して、各プレイヤーはアイテムの組合せS⊆Nを選ぶことになる。ただし、どのようなアイテムの組合せを選べるかは予め決められており、そのような組合せを集めた集合は戦略集合と呼ばれる。また、戦略集合の中身の各要素(つまり、アイテムの組合せ)は戦略と呼ばれる。
【0060】
各アイテムはそのアイテムを選んだ人の割合が多いほどコストが多くかかるように設定されており、各プレイヤーが受けるコストは、そのプレイヤーが選んだ戦略中に含まれるアイテムのコストの和となる。このとき、各プレイヤーは互いに協力せず、各自勝手になるべくコストが小さい戦略を選ぼうとする。
【0061】
混雑ゲームにおいて重要な状態として、均衡状態と呼ばれる状態がある。均衡状態とは、各プレイヤーが不満に思わない状態のことであり、互いに協力しないプレイヤーたちが各自でコスト最小の状態に行き着こうとした結果として行き着く状態のことである。この均衡状態を求めることができれば、例えば、通信ネットワークや道路ネットワークの設計時に、その設計により各通信路や道路にどの程度の混雑が発生するか、またプレイヤーの実際のコストがどの程度になるかをシミュレーションすることが可能となる。
【0062】
均衡状態に関連する重要な問題として、均衡の最適化が挙げられる。これは、均衡状態における各プレイヤーのコストがなるべく小さくなるようなアイテムのコストを、様々な制約の下で求める問題である。例えば、通信ネットワークにおいて、あるリンクに予算をかければかけるほど、多くの通信量に対しても遅延の発生を低下させることができる一方で、全体で使える予算は限られている場合に、どのように予算を割り振れば均衡状態における遅延の発生(コスト)を最も低下させることができるか、という問題が考えられる。この問題は、上記の予算等といった外部から変えられるパラメータをθだと思い、f(・;θ)をパラメータθの下でのポテンシャル関数と呼ばれる関数、制約Cを戦略集合に対応する組合せ制約とすると、f(・;θ)をC内で最小化した結果のy(θ)のコストが小さくなるように、パラメータθをチューニングする問題だと思える。したがって、この問題は、本実施形態で説明した微分可能Frank-Wolfe法により解y(θ)を計算した上で、その解y(θ)のパラメータに関する勾配∇y(θ)を自動微分により計算することで、効率的に解くことができる。
【0063】
≪応用例2≫
次に、参考文献3に記載されているDecision focused learningと呼ばれる機械学習の枠組みへの応用例について説明する。
【0064】
例えば巡回セールスマン問題では、グラフの形に加えて各辺の長さの情報が与えられた上で全頂点を巡る最短の巡回路を求める、というように、一般に最適化問題では辺の長さといったパラメータが入力された上で問題が解かれる。しかしながら、場合によっては辺の長さといったパラメータが陽には与えられず、別の特徴量から予測しなければならない状況が考えられる。機械学習では、特徴量とパラメータの組で表されたデータがいくつか与えられているときに、それらのデータを用いて、特徴量からパラメータを予測するモデルを学習することになる。
【0065】
ここで、予測されたパラメータを用いた最適化問題の解が、なるべく真のパラメータに対しても良い解となるように、予測モデルを学習するということを考える。
【0066】
従来では、後段の最適化問題とは独立に、パラメータの予測誤差をなるべく小さくするように予測モデルを学習するということが行われていたが、この方法だと、仮にパラメータの予測誤差が小さかったとしても、予測したパラメータを用いた最適化問題の解が、真のパラメータに対しても良い解になるとは限らなかった。そこで、後段の最適化問題を微分可能な最適化手法により解き、解のパラメータに関する勾配を予測モデルにフィードバックすることで、予測モデルを学習する、ということを提案しているのがDecision focused learningの枠組みである。
【0067】
参考文献3では、微分可能な最適化手法として陰関数定理を用いているため、複雑な組合せ制約を持つ最適化問題に対しては適用ができない。これに対して、本実施形態で説明した微分可能Frank-Wolfe法を微分可能な最適化手法として用いることで、例えば巡回セールスマン問題等といった複雑な組合せ制約を持つ最適化問題に対してもDecision focused learningの枠組みを適用できるようになる。
【0068】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【0069】
[参考文献]
参考文献1:Shin-ichi Minato. Zero-suppressed BDDs for set manipulation in combinatorial problems. In Proceedings of the 30th ACM/IEEE Design Automation Conference (DAC 1993), pp. 272-277, 1993.
参考文献2:Jun Kawahara, Takeru Inoue, Hiroaki Iwashita, and Shin-ichi Minato. Frontier-based search for enumerating all constrained subgraphs with compressed representation. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Vol. E100.A, pp. 1773-1784, 2007.
参考文献3:Bryan Wilder, Bistra Dilkina, and Milind Tambe. Melding the data-decisions pipeline: decision-focused learning for combinatorial optimization. In Proceedings of The Thirty-Third AAAI Conference on Artificial Intelligence (AAAI 2019), pp. 1658-1665, 2019.
【符号の説明】
【0070】
10 最適化装置
101 入力装置
102 表示装置
103 外部I/F
103a 記録媒体
104 通信I/F
105 プロセッサ
106 メモリ装置
107 バス
201 入力部
202 最適化部
203 勾配計算部
204 出力部