(57)【要約】  制御変数が角度のように周期性を持つ場合であっても、ベイズ的最適化を効率的に実行し得る、最適化処理装置、最適化処理方法、及びコンピュータ読み取り可能な記録媒体を提供する。最適化処理装置１００は、目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、共分散関数設定部１０と、共分散関数を用いた目的関数のベイズ推定を利用して、目的関数の最適化を実行する、最適化処理部２０とを備えている。
2016151864.tif 000002
【特許請求の範囲】
【請求項１】
目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、共分散関数設定部と、
前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、最適化処理部と、
を備えている、ことを特徴とする最適化処理装置。
【請求項２】
前記共分散関数設定部が、複数の前記制御変数それぞれ毎に、写像によって得られた２次元空間に共分散関数を定義し、得られた各共分散関数を組み合せて、新たな共分散関数を定義し、
前記最適化処理部が、組み合わせによって得られた前記新たな共分散関数を用いて、前記目的関数のベイズ推定を行なう、
請求項１に記載の最適化処理装置。
【請求項３】
前記最適化処理部が、
前記制御変数の定義域において、制御変数の値と目的関数の値とを含む組データを、設定された組数だけ、ランダムに発生させる、データ発生部と、
前記組データを用いて、前記制御変数、前記目的関数、及び前記共分散関数に基づいて定義された尤度関数を、最大化することによって、前記共分散関数に含まれるパラメータを更新する、パラメータ更新部と、
更新された前記パラメータ、前記制御変数、及び前記目的関数を用いて、前記目的関数の予測分布における平均及び分散を算出する、予測分布算出部と、
算出された前記平均及び分散を用いて、前記目的関数の予測分布を更新する、予測分布更新部と、
更新された前記予測分布を用いて、定義された関数の最適化を行うことにより、目的関数の定義域における最適な制御変数の候補を抽出する、候補探索部と、
を備えている、請求項１に記載の最適化処理装置。
【請求項４】
前記最適化処理部が、更に、前記候補探索部によって抽出された候補の中から、前記目的関数の最適解を特定する、最適解出力部を備えている、
請求項２または３に記載の最適化処理装置。
【請求項５】
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を有する、ことを特徴とする最適化処理方法。
【請求項６】
コンピュータに、
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御変数が周期性を有する目的関数を最適化する、最適化処理装置及び最適化処理方法に関し、更には、これらを実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来から、種々の分野において、目的関数f(x)、x∈A⊂Rdにおける「x」を最小化する試み（最適化）が行なわれている（下記数１参照）。なお、Aはコンパクト集合、すなわち有界閉集合であるとする。また、目的関数f(x)は、「閉形式を持たない」、「関数値の出力を得るのに時間がかかる」、「勾配情報を容易に利用できない」、又は「非凸である」といった性質を有しているとする。【０００３】
【数１】
2016151864.tif 000003
【０００４】
このような目的関数f(x)に対する最適化方法としては、ベイズ的最適化が知られている。ベイズ的最適化は、目的関数に対してガウス過程を設定し、目的関数のベイズ予測と最適化とを交互に繰り返すことで逐次的に最適解を探索する手法である（例えば、非特許文献１参照。）。ベイズ的最適化は、複雑なシミュレータに対する最適化、深層学習などの機械学習手法のハイパーパラメータチューニングに使用されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】J. Snoek, H. Larochelle and R. Adams. “Practical Bayesian optimization of machine learning algorithms.”  In Advances in Newral Information Processing Systems 25, pages 2960-2968, 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ベイズ的最適化において、上述したように目的関数に対して、事前にガウス過程が設定されているのは、制御変数が近い値を取る場合には、目的関数も近い値を取るという前提が存在するからである。【０００７】
しかしながら、ガウス過程の挙動は共分散関数によって決定されるため、最適化の精度はどのような共分散関数を選択するかに依存しており、最適化の精度が著しく低下してしまうことがある。これは、通常、共分散関数のモデルとしては、ガウス型共分散関数又はMate’rn共分散関数が使用されるが、これらの共分散関数は制御変数が周期性を持つ場合、定義域の境界近辺での近さを正確に表現できないことによる。【０００８】
ここで、上記の問題について、角度データを例として挙げて説明する。２つの制御変数を角度x,x’∈[0,360]としたとき、(x,x’)=(1,359)と、(x,x’)=(179,181)とは、xとx’との「近さ」としては同じである。しかしながら、ガウス型共分散関数を用いた場合は、xとx’との差の値は大きく異なってしまう。このため、既存の共分散関数が用いられるベイズ的最適化においては、上述したように最適化の精度が著しく低下する可能性がある。【０００９】
本発明の目的の一例は、上記問題を解消し、制御変数が角度のように周期性を持つ場合であっても、ベイズ的最適化を効率的に実行し得る、最適化処理装置、最適化処理方法、及びコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の一側面における最適化処理装置は、
目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、共分散関数設定部と、
前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、最適化処理部と、
を備えている、ことを特徴とする。【００１１】
また、上記目的を達成するため、本発明の一側面における最適化処理方法は、
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を有する、ことを特徴とする。【００１２】
更に、上記目的を達成するため、本発明の一側面におけるコンピュータ読み取り可能な記録媒体は、
コンピュータに、
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とする。
【発明の効果】
【００１３】
以上のように、本発明によれば、制御変数が角度のように周期性を持つ場合であっても、ベイズ的最適化を効率的に実行することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態における最適化処理装置の構成の一例を概略的に示すブロック図である。
【図２】図２は、本発明の実施の形態における最適化処理の構成の一例を具体的に示すブロック図である。
【図３】図３は、本発明の実施の形態で用いられる共分散関数について説明する図である。
【図４】図４は、本発明の実施の形態における最適化処理装置の動作の一例を示すフロー図である。
【図５】図５は、従来からの共分散関数を用いた場合の最適化の結果を示す図である。
【図６】図６は、本発明の実施の形態の具体例における最適化の結果を示す図である。
【図７】図７は、本発明の実施の形態における最適化処理装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１５】
（発明の概要）
本発明では、目的関数f(x)の制御変数を単位円周上に写像することによって共分散関数を定義し、この共分散関数を用いて、ベイズ的最適化が行なわれる。具体的には、まず、各制御変数を単位円周上の１点に写像し、そして、制御変数毎に、単位円周がある２次元空間に対して妥当な共分散関数を定義する。次に、制御変数全体に対する共分散関数の正定値性が保たれるように、各制御変数について定義された共分散関数同士を組み合わせて、例えば、共分散関数同士を合算したり、積算したりして、新たな共分散関数を定義する。そして、このようにして定義された新たな共分散関数が用いられて、ベイズ的最適化が実行される。
【００１６】
つまり、本発明では、上述の共分散関数は、周期性を持つ制御変数の「近さ」を、正確に反映できるので、ベイズ的最適化における目的関数の予測精度が向上する。そして、結果として、最適解の候補探索において、最適解の探索の効率性が向上する。本発明は、特に、実行可能領域の境界近辺に最適解がある場合に効果を発揮する。
【００１７】
（実施の形態）
以下、本発明の実施の形態における、最適化処理装置、最適化処理方法、及びプログラムについて、図１〜図６を参照しながら説明する。
【００１８】
［装置構成］
最初に、本実施の形態における最適化処理装置の概略構成について説明する。図１は、本発明の実施の形態における最適化処理装置の構成の一例を概略的に示すブロック図である。
【００１９】
図１に示すように、本実施の形態における最適化処理装置１００は、共分散関数設定部１０と、最適化処理部２０とを備えている。共分散関数設定部１０は、目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する。最適化処理部２０は、共分散関数を用いた目的関数のベイズ推定を利用して、目的関数の最適化を実行する。
【００２０】
続いて、図２を用いて、本実施の形態における最適化処理装置１００をより具体的に説明する。図２は、本発明の実施の形態における最適化処理の構成の一例を具体的に示すブロック図である。
【００２１】
図２に示すように、本実施の形態において、最適化処理装置１００の最適化処理部２０は、データ発生部２１と、パラメータ更新部２２と、予測分布算出部２３と、予測分布更新部２４と、候補探索部２５と、最適解出力部２６とを備えている。
【００２２】
また、本実施の形態では、共分散関数設定部１０は、複数の制御変数それぞれ毎に、写像によって得られた２次元空間に妥当な共分散関数を定義し、得られた各共分散関数を組み合せて、新たな妥当な共分散関数を定義する。このため、最適化処理部２０は、この組み合わせによって得られた新たな共分散関数を用いて、目的関数のベイズ推定を行なう。
【００２３】
以下に、本実施の形態で用いられる共分散関数について図３を用いて詳細に説明する。図３は、本発明の実施の形態で用いられる共分散関数について説明する図である。まず、目的関数f(x)について{f(x)}が、平均0、共分散関数kを持つガウス過程に従うとすると、任意のnに対して、下記の数２が成立する。なお、共分散関数は、「カーネル」と呼ばれることもある。
【００２４】
【数２】
2016151864.tif 000004
【００２５】
また、下記の数３は、共分散関数に含まれるカーネルパラメータを示している。以下において、表記を簡便にするためθは省略する。
【００２６】
【数３】
2016151864.tif 000005
【００２７】
ところで、各要素が角度のような周期性を持つ変数から構成されるベクトルをx∈[0,360]dとしたときに、各要素に対して、下記の数４に示す写像を考える。また、下記の数４において、Tは転置を表している。
【００２８】
【数４】
2016151864.tif 000006
【００２９】
上記数４の写像は、xを二次元平面における単位円周上の１点に変換する。図３に示すように、(1,359)と(179,181)との２点は、元の１次元空間では、それぞれ異なるユークリッド距離を示している（図３上側）。しかし、上記数４に示す写像によれば、２点は、変換先において、同じユークリッド距離を示すことになる（図３下側）。
【００３０】
よって、変換先の２次元空間で共分散関数を定義し、この共分散関数を採用すれば、各要素間の「近さ」を正確に考慮することができる。
【００３１】
また、変数ベクトル間の「近さ」を正確に反映した共分散関数は、各要素（各制御変数）に対して上記の方法で定義した共分散関数を、正定値性が保たれるような形式で組み合わせることによって構成することができる。
【００３２】
一般的に、妥当な共分散関数をk1(x,x’)、k2(x,x’)としたとき、k1(x,x’)+k2(x,x’)と、k1(x,x’)k2(x,x’)も妥当な共分散関数となる。
【００３３】
また、x=(xa,xb)T、ka、kbを、それぞれxa、xbの空間上で妥当な共分散関数だとすると、ka(xa,xa’)+ kb(xb,xb’)、 ka(xa,xa’)kb(xb,xb’)も妥当な共分散関数となる。これらの性質は、下記の参照文献に記載されている。
参照文献：C. Bishop. (2006). Pattern Recognition and Machine Learning. Springer, New York.
【００３４】
そして、上記の参照文献に記載されている性質を用いて、元のd次元空間に妥当な共分散関数を構成すればよい。例えば、x,x’∈[0,360]dに対して、下記の数５又は数６の形式が考えられる。
【００３５】
【数５】
2016151864.tif 000007
【００３６】
【数６】
2016151864.tif 000008
【００３７】
ここで、ki(1≦i≦d)、 kj,k(1≦j≦d, 1≦k≦pj)は、既存の共分散関数である。共分散関数の例としては、下記の数７に示すガウス型共分散関数、下記の数８に示すMate’rn共分散関数が挙げられる。
【００３８】
【数７】
2016151864.tif 000009
【００３９】
【数８】
2016151864.tif 000010
【００４０】
また、データ発生部２１は、制御変数の定義域において、制御変数の値と目的関数の値とを含む組データ（以下「初期データ」とも表記する。）を、設定された組数だけ、ランダムに発生させる。
【００４１】
具体的には、データ発生部２１は、台をA（コンパクト集合）とする一様分布から、n個の制御変数x1,…,xnを乱数発生させ、結果としてn組の初期データ{(xi, f(xi))}i=1,…,nを取得する。
【００４２】
また、パラメータ更新部２２は、データ発生部２１が発生させた初期データを用いて、尤度関数を、最大化することによって、共分散関数に含まれるパラメータ（以下「カーネルパラメータ」とも表記する。）を更新する。尤度関数は、制御変数、目的関数、及び共分散関数に基づいて定義されている。
【００４３】
具体的には、パラメータ更新部２２は、それまでに得られている入出力の組（組データ：{(xi, f(xi))}i=1,…,n’、n≦n’）から、下記の数９に示す周辺尤度を最大化することにより、新しいカーネルパラメータθ*を取得する。なお、下記の数９において、Σn’としては、共分散関数設定部１０によって定義された共分散関数が使用される。
【００４４】
【数９】
2016151864.tif 000011
【００４５】
予測分布算出部２３は、更新されたパラメータ、制御変数、及び目的関数を用いて、目的関数の予測分布における平均および分散を算出する。具体的には、予測分布算出部２３は、更新されたカーネルパラメータθ*に基づいて、予測分布の平均と分散を計算する。
【００４６】
既に得られているn’組の入出力の組（組データ）を{(xi, f(xi))}i=1,…,n’、新しい入力x*に対する出力をf(x*)とすると、予測分布は下記の数１０〜数１４の通りとなる。
【００４７】
【数１０】
2016151864.tif 000012
【００４８】
【数１１】
2016151864.tif 000013
【００４９】
【数１２】
2016151864.tif 000014
【００５０】
【数１３】
2016151864.tif 000015
【００５１】
【数１４】
2016151864.tif 000016
【００５２】
そして、予測分布算出部２３は、上記数１０〜数１４において、{(xi, f(xi))}i=1,…,n’と、更新されたカーネルパラメータθ*とを、上記数１１及び数１２に代入することにより、予測分布の平均と分散とを計算する。
【００５３】
また、予測分布更新部２４は、予測分布算出部２３によって算出された平均及び分散を用いて、目的関数の予測分布を更新する。具体的には、予測分布更新部２４は、算出された平均と分散とを用いて上記数１０を更新する。
【００５４】
候補探索部２５は、更新された予測分布を用いて、下記に定義された関数の最適化を行うことにより、目的関数の定義域における最適な制御変数の候補（以下「最適解候補」と表記する。）を抽出する。具体的には、候補探索部２５は、更新された予測分布の情報（例えば、平均及び分散）を用いた獲得関数αn’(x)を最大化する。そして、候補探索部２５は、最大化の結果として得られた最適解x*を目的関数f(x)に対する最小化問題の最適解候補とする。
【００５５】
獲得関数の例としては、下記の数１５及び数１６が挙げられる。なお、下記の数１６に示すLower Confidence Boundでは、最大化ではなく、最小化することによって最適解の候補が見つけ出される。
【００５６】
【数１５】
2016151864.tif 000017
【００５７】
【数１６】
2016151864.tif 000018
【００５８】
また、候補探索部２５は、最適解候補を抽出すると、そのことをパラメータ更新部２２に通知する。上述したパラメータ更新部２２、予測分布算出部２３、予測分布更新部２４、及び候補探索部２５、それぞれによる一連の処理は、事前に設定された回数だけ、複数回反復される。
【００５９】
最適解出力部２６は、パラメータ更新部２２から候補探索部２５までによる、一連の処理の複数回の反復によって抽出された最適解候補の中から、目的関数f(x)の最適解を特定し、これを出力する。具体的には、本実施の形態では、最適解出力部２６は、今までに得られた最適解の候補の中で最小値をとる値、すなわち下記の数１７を最適解として出力する。
【００６０】
【数１７】
2016151864.tif 000019
【００６１】
［装置動作］
次に、本発明の実施の形態における最適化処理装置１００の動作について図４を用いて説明する。図４は、本発明の実施の形態における最適化処理装置の動作の一例を示すフロー図である。以下の説明においては、適宜図１〜図３を参酌する。また、本実施の形態では、最適化処理装置１００を動作させることによって、最適化処理方法が実施される。よって、本実施の形態における最適化処理方法の説明は、以下の最適化処理装置１００の動作説明に代える。
【００６２】
図４に示すように、最初に、共分散関数設定部１０が、後述のステップＡ３〜Ａ６で使用する共分散関数を定義する（ステップＡ１）。具体的には、共分散関数設定部１０は、制御変数毎に、写像によって得られた２次元空間に妥当な共分散関数を定義し、得られた各共分散関数を組み合せて、後述のステップＡ３〜Ａ６で使用する共分散関数を定義する
【００６３】
次に、データ発生部２１が、初期データの組数と制御変数の定義域とを入力として、設定された組数の初期データを発生させる（ステップＡ２）。
【００６４】
次に、パラメータ更新部２２は、ステップＡ２で発生した初期データを用いて、尤度関数を最大化させて、カーネルパラメータを更新する（ステップＡ３）。次に、予測分布算出部２３は、ステップＡ３で更新されたパラメータ、制御変数、及び目的関数を用いて、目的関数の予測分布における平均および分散を算出する（ステップＡ４）。
【００６５】
次に、予測分布更新部２４は、ステップＡ４で算出された平均及び分散を用いて、目的関数の予測分布を更新する（ステップＡ５）。次に、候補探索部２５は、更新された予測分布を用いて、獲得関数の最適化を行うことにより、最適解候補を抽出する（ステップＡ６）。
【００６６】
また、ステップＡ３〜Ａ６は、事前に設定された回数だけ、反復される。但し、ステップＡ３については、反復の度に実行する必要はない。ステップＡ３については、例えば、５回反復する度に、１回実行するようにしても良い。
【００６７】
ステップＡ３〜Ａ６が設定された回数だけ実行されると、最適解出力部２６は、ステップＡ６で抽出された候補の中から、目的関数f(x)の最適解を特定し、これを出力する（ステップＡ７）。
【００６８】
［具体例］
次に、本実施の形態の具体例について以下に説明する。以下の具体例においては、目的関数は、下記の数１８に示す通りとする。
【００６９】
【数１８】
2016151864.tif 000020
【００７０】
データ発生部２１は、初期データとして、(x1,x2,x3)=(-1,2,3)の３点を発生させているとする。また、共分散関数設定部１０は、共分散関数として、θ1=0.5としたMate’rn共分散関数を使用するとする。このときカーネルパラメータを新しく取り直して設定すると、共分散関数は、下記数１９の通りとなる。
【００７１】
【数１９】
2016151864.tif 000021
【００７２】
上記数１９に示す共分散関数は、しばしば「指数型共分散関数」と呼ばれる関数である。また、本具体例では、上記数１９に示す共分散関数は、下記の数２０に示すように書き換えられる。
【００７３】
【数２０】
2016151864.tif 000022
【００７４】
本具体例では、上記数１９及び数２０に示した共分散関数を用いて、図４に示したステップＡ３〜Ａ６が実行され、ベイズ的最適化の結果の比較が行なわれる。また、ステップＡ３〜Ａ６の実行回数は「１０」回とする。但し、ステップＡ３については、１回目に実行した後は、５反復ごとに１回実行する。また、ステップＡ６においては、獲得関数として、上記数１５に示すExpected Improvementが使用されているとする。
【００７５】
そして、従来からの共分散関数を用いた場合は、最適値はx=3.1416において0.9422となるが、本具体例では、最適値はx=-2.810において0.9999となる。目的関数の最適値は、x=2.8において1.0なので、本具体例によれば、精度が良い最適解が選択されている。
【００７６】
また、図５は、従来からの共分散関数を用いた場合の最適化の結果を示す図である。図６は、本発明の実施の形態の具体例における最適化の結果を示す図である。図５に示すように、従来手法では、右側の端点において最適解の候補（observations）が集中してしまっている。これに対して、図６に示すように、本具体例においては、端点の両側において最適解の候補（observations）が効率よく探索されており、結果として大域的最適解に近い値が選択されている。なお、図５及び図６中のハッチングが施されている部分は、標準偏差である。
【００７７】
［実施の形態の効果］
このように、本実施の形態では、従来からの共分散関数とは異なる、周期性を持つ制御変数の「近さ」を正確に反映できる共分散関数が用いられて、ベイズ的最適化が実行される。このため、本実施の形態によれば、制御変数が角度のように周期性を持つ場合であっても、ベイズ的最適化を効率的に実行することができる。
【００７８】
［応用例］
続いて、本実施の形態における最適化処理装置の応用例について以下に説明する。
【００７９】
応用例１：
本実施の形態は、人工衛星信号の誤差最小化に利用できる。この場合、制御変数として、地上から見た人工衛星の位置角度が用いられ、目的関数として、信号誤差を算出する関数が用いられる。
【００８０】
人工衛星から発せられた信号を地上の装置で受信する状況を考える。地上の装置を東西南北の全方位に向けられる場合、装置の位置は基準方向からの角度となる。この装置に本実施の形態における最適化処理装置を搭載することにより、信号誤差を最小にするように各時刻における装置の向きを精度良く制御できる。
【００８１】
応用例２：
本実施の形態は、スタジアム周辺における太陽光パネルの効率的配置に利用できる。この場合、制御変数として、太陽光パネルの位置（基準方向からの角度）が用いられ、目的関数として、１日の発電量を算出する関数が用いられる。
【００８２】
太陽光パネルの設置にかかる費用を小さくするために、パネルの個数をできるだけ少なくする必要がある。指定したパネルの個数をスタジアムの用な円形の施設の周辺に配置するとき、各パネルの位置は基準方向からの角度によって決定される。この角度を入力として、シミュレータを用いて１日の発電量を算出する状況を考える。シミュレータ内に、本実施の形態における最適化処理装置を組み込むことで、１日の太陽の動きを考慮した上で発電量が最大になるような各太陽光パネルの位置を精度良く算出できる。
【００８３】
応用例３：
本実施の形態は、塗装部分の品質向上に利用できる。この場合、制御変数として、スプレーの射出角度が用いられ、目的関数として、スプレーが吹きかけられた部分（塗装部分）の厚さのばらつきを算出する関数が用いられる。
【００８４】
工場の生産ラインにおいて、車体にスプレーを射出する場合、射出部分に対するスプレーの位置により、スプレーが散布された塗装部分の厚さのばらつきに変化が生じる。このばらつきが大きいとフロント部分に微細な凹凸が生じるので品質低下へとつながる。車体に対するスプレーの位置は基準方向からの角度として表せるので、本実施の形態における最適化処理装置を生産ラインに搭載することにより、厚さのばらつきが最小となるように、スプレーの最適射出位置を精度良く算出できる。
【００８５】
応用例４：
本実施の形態は、巡警時間帯の最適化による軽微犯罪の抑制に利用できる。この場合、制御変数として、巡警開始時刻（巡警時間は固定）が用いられ、目的関数として、１日の総犯罪件数を算出する関数が用いられる。
【００８６】
巡警開始時刻は、２４時間制で表現したとき、００：００：００と２４：００：００とは異なる値ではあるが、表現が異なるだけで、実際に表す時刻は同一である。つまり、時刻は２４時間の周期性を持つ周期変数である。
【００８７】
この場合、以下の方法を用いて、１週間の総犯罪件数を最小にするような巡警開始時刻を見つけることができる。最初に、毎日できるかぎり異なった開始時刻で１か月間巡警を行う。結果として、約３０組の開始時刻とその日の総犯罪件数とが得られる。そのデータに対して、本実施の形態における最適化処理装置を搭載した装置を用いれば、総犯罪件数が最小になるような巡警開始時刻を精度良く算出できる。
【００８８】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、図４に示すステップＡ１〜Ａ７を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における最適化処理装置と最適化処理方法とを実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、共分散関数設定部１０及び最適化処理部２０として機能し、処理を行なう。
【００８９】
ここで、本実施の形態におけるプログラムを実行することによって、最適化処理装置を実現するコンピュータについて図７を用いて説明する。図７は、本発明の実施の形態における最適化処理装置を実現するコンピュータの一例を示すブロック図である。
【００９０】
図７に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００９１】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００９２】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００９３】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００９４】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【００９５】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１２）によって表現することができるが、以下の記載に限定されるものではない。
【００９６】
（付記１）
目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、共分散関数設定部と、
前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、最適化処理部と、
を備えている、ことを特徴とする最適化処理装置。
【００９７】
（付記２）
前記共分散関数設定部が、複数の前記制御変数それぞれ毎に、写像によって得られた２次元空間に共分散関数を定義し、得られた各共分散関数を組み合せて、新たな共分散関数を定義し、
前記最適化処理部が、組み合わせによって得られた前記新たな共分散関数を用いて、前記目的関数のベイズ推定を行なう、
付記１に記載の最適化処理装置。
【００９８】
（付記３）
前記最適化処理部が、
前記制御変数の定義域において、制御変数の値と目的関数の値とを含む組データを、設定された組数だけ、ランダムに発生させる、データ発生部と、
前記組データを用いて、前記制御変数、前記目的関数、及び前記共分散関数に基づいて定義された尤度関数を、最大化することによって、前記共分散関数に含まれるパラメータを更新する、パラメータ更新部と、
更新された前記パラメータ、前記制御変数、及び前記目的関数を用いて、前記目的関数の予測分布における平均及び分散を算出する、予測分布算出部と、
算出された前記平均及び分散を用いて、前記目的関数の予測分布を更新する、予測分布更新部と、
更新された前記予測分布を用いて、定義された関数の最適化を行うことにより、目的関数の定義域における最適な制御変数の候補を抽出する、候補探索部と、
を備えている、付記１に記載の最適化処理装置。
【００９９】
（付記４）
前記最適化処理部が、更に、前記候補探索部によって抽出された候補の中から、前記目的関数の最適解を特定する、最適解出力部を備えている、
付記２に記載の最適化処理装置。
【０１００】
（付記５）
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を有する、ことを特徴とする最適化処理方法。
【０１０１】
（付記６）
前記（ａ）のステップにおいて、複数の前記制御変数それぞれ毎に、写像によって得られた２次元空間に共分散関数を定義し、得られた各共分散関数を組み合せて、新たな共分散関数を定義し、
前記（ｂ）のステップにおいて、組み合わせによって得られた前記新たな共分散関数を用いて、前記目的関数のベイズ推定を行なう、
付記５に記載の最適化処理方法。
【０１０２】
（付記７）
前記（ｂ）のステップが、
（ｂ１）前記制御変数の定義域において、制御変数の値と目的関数の値とを含む組データを、設定された組数だけ、ランダムに発生させる、ステップと、
（ｂ２）前記組データを用いて、前記制御変数、前記目的関数、及び前記共分散関数に基づいて定義された尤度関数を、最大化することによって、前記共分散関数に含まれるパラメータを更新する、ステップと、
（ｂ３）更新された前記パラメータ、前記制御変数、及び前記目的関数を用いて、前記目的関数の予測分布における平均及び分散を算出する、ステップと、
（ｂ４）算出された前記平均及び分散を用いて、前記目的関数の予測分布を更新する、ステップと、
（ｂ５）更新された前記予測分布を用いて、定義された関数の最適化を行うことにより、目的関数の定義域における最適な制御変数の候補を抽出する、ステップと、
を有する、付記５に記載の最適化処理方法。
【０１０３】
（付記８）
前記（ｂ）のステップが、更に、
（ｂ６）前記候補探索部によって抽出された候補の中から、前記目的関数の最適解を特定する、ステップを有する、
付記６に記載の最適化処理方法。
【０１０４】
（付記９）
コンピュータに、
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【０１０５】
（付記１０）
前記（ａ）のステップにおいて、複数の前記制御変数それぞれ毎に、写像によって得られた２次元空間に共分散関数を定義し、得られた各共分散関数を組み合せて、新たな共分散関数を定義し、
前記（ｂ）のステップにおいて、組み合わせによって得られた前記新たな共分散関数を用いて、前記目的関数のベイズ推定を行なう、
付記５に記載のコンピュータ読み取り可能な記録媒体。
【０１０６】
（付記１１）
前記プログラムが、
前記コンピュータに、前記（ｂ）のステップとして、
（ｂ１）前記制御変数の定義域において、制御変数の値と目的関数の値とを含む組データを、設定された組数だけ、ランダムに発生させる、ステップと、
（ｂ２）前記組データを用いて、前記制御変数、前記目的関数、及び前記共分散関数に基づいて定義された尤度関数を、最大化することによって、前記共分散関数に含まれるパラメータを更新する、ステップと、
（ｂ３）更新された前記パラメータ、前記制御変数、及び前記目的関数を用いて、前記目的関数の予測分布における平均及び分散を算出する、ステップと、
（ｂ４）算出された前記平均及び分散を用いて、前記目的関数の予測分布を更新する、ステップと、
（ｂ５）更新された前記予測分布を用いて、定義された関数の最適化を行うことにより、目的関数の定義域における最適な制御変数の候補を抽出する、ステップと、
を実行させる命令を含んでいる、
付記５に記載のコンピュータ読み取り可能な記録媒体。
【０１０７】
（付記１２）
前記プログラムが、
前記コンピュータに、前記（ｂ）のステップとして、更に、
（ｂ６）前記候補探索部によって抽出された候補の中から、前記目的関数の最適解を特定する、ステップを実行させる命令を含んでいる、
付記６に記載のコンピュータ読み取り可能な記録媒体。
【産業上の利用可能性】
【０１０８】
以上のように、本発明によれば、制御変数が角度のように周期性を持つ場合であっても、ベイズ的最適化を効率的に実行することができる。本発明は、人工衛星からの信号を受信する受信装置、太陽光発電システムの設計装置、塗装ラインにおける管理装置、警備管理装置等に利用できる。
【符号の説明】
【０１０９】
１０  共分散関数設定部
２０  最適化処理部
２１  データ発生部
２２  パラメータ更新部
２３  予測分布算出部
２４  予測分布更新部
２５  候補探索部
２６  最適解出力部
１００  最適化処理装置
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2016151864.tif 000023
【図２】
2016151864.tif 000024
【図３】
2016151864.tif 000025
【図４】
2016151864.tif 000026
【図５】
2016151864.tif 000027
【図６】
2016151864.tif 000028
【図７】
2016151864.tif 000029
【手続補正書】
【提出日】平成29年7月6日(2017.7.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、共分散関数設定部と、
前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、最適化処理部と、
を備えている、ことを特徴とする最適化処理装置。
【請求項２】
前記共分散関数設定部が、複数の前記制御変数それぞれ毎に、写像によって得られた２次元空間に共分散関数を定義し、得られた各共分散関数を組み合せて、新たな共分散関数を定義し、
前記最適化処理部が、組み合わせによって得られた前記新たな共分散関数を用いて、前記目的関数のベイズ推定を行なう、
請求項１に記載の最適化処理装置。
【請求項３】
前記最適化処理部が、
前記制御変数の定義域において、制御変数の値と目的関数の値とを含む組データを、設定された組数だけ、ランダムに発生させる、データ発生部と、
前記組データを用いて、前記制御変数、前記目的関数、及び前記共分散関数に基づいて定義された尤度関数を、最大化することによって、前記共分散関数に含まれるパラメータを更新する、パラメータ更新部と、
更新された前記パラメータ、前記制御変数、及び前記目的関数を用いて、前記目的関数の予測分布における平均及び分散を算出する、予測分布算出部と、
算出された前記平均及び分散を用いて、前記目的関数の予測分布を更新する、予測分布更新部と、
更新された前記予測分布を用いて、定義された関数の最適化を行うことにより、目的関数の定義域における最適な制御変数の候補を抽出する、候補探索部と、
を備えている、請求項１に記載の最適化処理装置。
【請求項４】
前記最適化処理部が、更に、前記候補探索部によって抽出された候補の中から、前記目的関数の最適解を特定する、最適解出力部を備えている、
請求項２または３に記載の最適化処理装置。
【請求項５】
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を有する、ことを特徴とする最適化処理方法。
【請求項６】
コンピュータに、
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を実行させる、プログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、制御変数が周期性を有する目的関数を最適化する、最適化処理装置及び最適化処理方法に関し、更には、これらを実現するためのプログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明の目的の一例は、上記問題を解消し、制御変数が角度のように周期性を持つ場合であっても、ベイズ的最適化を効率的に実行し得る、最適化処理装置、最適化処理方法、及びプログラムを提供することにある。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を実行させる、ことを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１０４
【補正方法】変更
【補正の内容】
【０１０４】
（付記９）
コンピュータに、
（ａ）目的関数の制御変数を単位円周上に写像することによって共分散関数を定義する、ステップと、
（ｂ）前記共分散関数を用いた前記目的関数のベイズ推定を利用して、前記目的関数の最適化を実行する、ステップと、
を実行させる、プログラム。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１０５
【補正方法】変更
【補正の内容】
【０１０５】
（付記１０）
前記（ａ）のステップにおいて、複数の前記制御変数それぞれ毎に、写像によって得られた２次元空間に共分散関数を定義し、得られた各共分散関数を組み合せて、新たな共分散関数を定義し、
前記（ｂ）のステップにおいて、組み合わせによって得られた前記新たな共分散関数を用いて、前記目的関数のベイズ推定を行なう、
付記９に記載のプログラム。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
（付記１１）
前記コンピュータに、前記（ｂ）のステップとして、
（ｂ１）前記制御変数の定義域において、制御変数の値と目的関数の値とを含む組データを、設定された組数だけ、ランダムに発生させる、ステップと、
（ｂ２）前記組データを用いて、前記制御変数、前記目的関数、及び前記共分散関数に基づいて定義された尤度関数を、最大化することによって、前記共分散関数に含まれるパラメータを更新する、ステップと、
（ｂ３）更新された前記パラメータ、前記制御変数、及び前記目的関数を用いて、前記目的関数の予測分布における平均及び分散を算出する、ステップと、
（ｂ４）算出された前記平均及び分散を用いて、前記目的関数の予測分布を更新する、ステップと、
（ｂ５）更新された前記予測分布を用いて、定義された関数の最適化を行うことにより、目的関数の定義域における最適な制御変数の候補を抽出する、ステップと、
を実行させる、
付記９に記載のプログラム。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１０７
【補正方法】変更
【補正の内容】
【０１０７】
（付記１２）
前記コンピュータに、前記（ｂ）のステップとして、更に、
（ｂ６）前記候補探索部によって抽出された候補の中から、前記目的関数の最適解を特定する、ステップを実行させる、
付記１０に記載のプログラム。
【国際調査報告】
2016151864.tif 000030
2016151864.tif 000031