(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】最適解獲得プログラム、最適解獲得方法および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20231129BHJP
G06N 99/00 20190101ALI20231129BHJP
【FI】
G06N20/00
G06N99/00 180
(21)【出願番号】P 2019181396
(22)【出願日】2019-10-01
【審査請求日】2022-06-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】大田 栄二
(72)【発明者】
【氏名】秋間 学尚
【審査官】北川 純次
(56)【参考文献】
【文献】特表2019-502988(JP,A)
【文献】米国特許出願公開第2019/0026631(US,A1)
【文献】米国特許出願公開第2019/0095798(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
訓練データの生成元であるデータを用いて生成された目的関数に対応する変数を含む複数の訓練データを用いて、変分オートエンコーダを学習し、
学習済みの変分オートエンコーダに前記複数の訓練データを入力して
得られた潜在変数の平均値の集合から、所望の目的関数に該当する範囲のサンプリング集合を生成し、
前記学習済みの変分オートエンコーダを用いて、
前記サンプリング集合をデコードすることで前記所望の目的関数の最適解を獲得する
処理を実行させることを特徴とする最適解獲得プログラム。
【請求項2】
前記学習する処理は、前記
所望の目的関数に影響を与える
変数および特定値を
さらに含む訓練データを用いて、前記変分オートエンコーダを学習し、
前記生成する処理は、前記学習済みの変分オートエンコーダに前記複数の訓練データを入力して得られた潜在変数の平均値の集合から、前記所望の目的関数に該当する範囲のサンプリング集合を生成し、
前記獲得する処理は、前記学習済みの変分オートエンコーダを用いて、
前記サンプリング集合をデコードすることで、最適解である前記所望の目的関数と前記変数との組み合わせを獲得することを特徴とする請求項1に記載の最適解獲得プログラム。
【請求項3】
前記学習済みの変分オートエンコーダの入力データに前記複数の訓練データを与え、前記学習済みの変分オートエンコーダの潜在空間上
において、前記複数の訓練データをそれぞれの特徴量の類似度の高い目的関数が集中して配置される解空間を構成
する処理をコンピュータに更に実行させ、
前記生成する処理は、生成された前記解空間において前記所望の目的関数に該当する範囲のサンプリング集合を生成し、
前記獲得する処理は、前
記サンプリング集合を、前記学習済みの変分オートエンコーダのデコーダに入力して、前記所望の目的関数の最適解
を獲得することを特徴とする請求項
1に記載の最適解獲得プログラム。
【請求項4】
コンピュータが、
訓練データの生成元であるデータを用いて生成された目的関数に対応する変数を含む複数の訓練データを用いて、変分オートエンコーダを学習し、
学習済みの変分オートエンコーダに前記複数の訓練データを入力して
得られた潜在変数の平均値の集合から、所望の目的関数に該当する範囲のサンプリング集合を生成し、
前記学習済みの変分オートエンコーダを用いて、
前記サンプリング集合をデコードすることで前記所望の目的関数の最適解を獲得する
処理を実行することを特徴とする最適解獲得方法。
【請求項5】
訓練データの生成元であるデータを用いて生成された目的関数に対応する変数を含む複数の訓練データを用いて、変分オートエンコーダを学習する学習部と、
学習済みの変分オートエンコーダに前記複数の訓練データを入力して
得られた潜在変数の平均値の集合から、所望の目的関数に該当する範囲のサンプリング集合を生成する特定部と、
前記学習済みの変分オートエンコーダを用いて、
前記サンプリング集合をデコードすることで前記所望の目的関数の最適解を獲得する獲得部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適解獲得プログラム、最適解獲得方法および情報処理装置に関する。
【背景技術】
【0002】
従来から、与えられた条件(制約条件)の下で、望ましさの尺度(目的関数)に関して、最も良い解(最適解)を求める最適化問題が知られている。一般的に、変数間に交互作用が存在しない場合、どのような最適化手法を用いても、目的関数に関する最適解を比較的容易に求めることができる。ところが、多くの問題では、変数間の交互作用が定量的には分からないが存在するため、変数の組合せ集合により形成される目的関数の曲面である解空間には複数の山や谷が存在する多峰性である。このようなことから、近年では、探索手法に工夫を凝らし、探索回数を削減して最適解を高速に獲得する数理計画法、シミュレーテッド・アニーリング、遺伝的アルゴリズムなどのメタヒューリスティック、応答曲面法などの技術が利用されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-8499号公報
【文献】特開2010-146068号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術による高速化の効果は、解空間の複雑さに依存しており、複雑な解空間の場合、局所解の捕捉や探索回数が増加して最適化に膨大な時間を要する。例えば、解空間が多峰性のように最適化が存在するか否かが既知ではない空間の場合には、膨大な時間がかかるものの、そもそも最適解に到達することもできない可能性もある。
【0005】
一つの側面では、最適解の獲得にかかる時間を短縮することができる最適解獲得プログラム、最適解獲得方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
第1の案では、最適解獲得プログラムは、コンピュータに、目的関数を含む複数の訓練データを用いて、変分オートエンコーダを学習する処理を実行させる。最適解獲得プログラムは、コンピュータに、学習済みの変分オートエンコーダに前記複数の訓練データを入力して、前記複数の訓練データをそれぞれの特徴量の類似度を特定する処理を実行させる。最適解獲得プログラムは、コンピュータに、前記学習済みの変分オートエンコーダを用いて、所望の目的関数と類似度の高いデータ群から目的関数の最適解を獲得する処理を実行させる。
【発明の効果】
【0007】
一つの側面では、最適解の獲得にかかる時間を短縮することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施例1にかかる情報処理装置を説明する図である。
【
図2】
図2は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図3】
図3は、訓練データの生成例を説明する図である。
【
図4】
図4は、目的関数の集合の生成例を説明する図である。
【
図5】
図5は、特性値の集合の生成例を説明する図である。
【
図6】
図6は、変数の集合の画像化例を説明する図である。
【
図7】
図7は、目的関数の集合の画像化例を説明する図である。
【
図8】
図8は、特性値の集合の画像化例を説明する図である。
【
図10】
図10は、全体的な処理の流れを示すフローチャートである。
【
図11】
図11は、訓練データの生成処理の流れを示すフローチャートである。
【
図12】
図12は、最適解の獲得処理の流れを示すフローチャートである。
【
図13】
図13は、目的関数、変数、特性値の集合の算出を説明する図である。
【
図15】
図15は、潜在空間を生成するVAEの構造と損失を説明する図である。
【
図16】
図16は、潜在空間における検証データの分布を説明する図である。
【
図17】
図17は、学習データの復元画像を説明する図である。
【
図18】
図18は、潜在空間における節点波形の復元画像を説明する図である。
【
図19】
図19は、潜在空間におけるパラメータおよび電力効率の復元画像を説明する図である。
【
図20】
図20は、潜在空間におけるLmパラメータの分布を説明する図である。
【
図21】
図21は、潜在空間におけるLrパラメータの分布を説明する図である。
【
図22】
図22は、潜在空間におけるCrパラメータの分布を説明する図である。
【
図23】
図23は、潜在空間における電力効率の分布を説明する図である。
【
図24】
図24は、電力効率分布とランダム抽出を説明する図である。
【
図25】
図25は、電力効率分布のシミュレーション値と推定値を説明する図である。
【
図26】
図26は、推定値とシミュレーション値との誤差を説明する図である。
【
図27】
図27は、推定値とシミュレーション値との電力効率の比較を説明する図である。
【発明を実施するための形態】
【0009】
以下に、本願の開示する最適解獲得プログラム、最適解獲得方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0010】
[情報処理装置の説明]
図1は、実施例1にかかる情報処理装置10を説明する図である。
図1に示す情報処理装置10は、変分オートエンコーダ(VAE:Variational Autoencoder)を用いた学習モデルを学習し、ユーザが所望する尺度(目的関数)に対する最適解を求めるコンピュータ装置の一例である。
【0011】
VAEは、入力データを潜在空間に次元圧縮することで、入力データの特徴量を学習する。その際、類似度の高いデータを潜在空間の任意点に集中させて配置する特徴がある。
図1に示すように、実施例1にかかる情報処理装置10では、この特徴に着目して、VAEの訓練データに、正解情報に対応する目的関数、変数、特性値を与えてVAEを学習する。
【0012】
その後、学習が終了すると、情報処理装置10は、学習済VAEの潜在空間を用いて、類似度の高い目的関数が集中して配置される解空間を構成する。そして、情報処理装置10は、
図1に示すように、潜在空間においてユーザの尺度に対応する目的関数が属するサンプリング集合を生成する。
【0013】
続いて、情報処理装置10は、生成したサンプリング集合より、学習済VAEのデコーダを用いて、所望の目的関数の最適値を推論により獲得し、目的関数の最適値を与える変数および特性値を学習済VAEのデコーダを用いて推論により獲得する。このようにして、情報処理装置10は、複雑な解空間の場合でも高速に最適解を獲得することができる。
【0014】
[機能構成]
図2は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。
図2に示すように、情報処理装置10は、通信部11、記憶部12、制御部20を有する。
【0015】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、管理者の端末から各処理の開始要求を受信し、学習結果や最適解の獲得結果などを管理者の端末に送信する。
【0016】
記憶部12は、データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。例えば、記憶部12は、データDB13、訓練データDB14を記憶する。
【0017】
データDB13は、訓練データの生成元となる学習データを記憶するデータベースである。例えば、データDB13は、各種センサなどによりセンシングされたセンシングデータや管理者により入力された各種データなどを記憶する。
【0018】
訓練データDB14は、VAEの学習に利用する訓練データを記憶するデータベースである。例えば、訓練データDB14は、後述する訓練データ生成部21によって、データDB13に記憶されるデータから生成された訓練データを記憶する。
【0019】
制御部20は、情報処理装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、訓練データ生成部21、学習部22、集合生成部23、獲得部24を有する。なお、訓練データ生成部21、学習部22、集合生成部23、獲得部24は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0020】
訓練データ生成部21は、データDB13に記憶されるデータを用いて、訓練データを生成する処理部である。具体的には、訓練データ生成部21は、データDB13に記憶されるデータから目的関数、変数、特性値を特定し、VAEに入力するために、目的関数、変数、特性値それぞれに対応する画像データを生成して、訓練データとして訓練データDB14に格納する。
【0021】
図3は、訓練データの生成例を説明する図である。
図3に示すように、訓練データ生成部21は、目的関数、変数、特性値などの各変数(Πなど)の変動範囲を設定し、変数の集合を生成する。なお、変数の集合におけるkは訓練データの数を示し、mは変数の数を示し、qは変数データの次元を示す。
【0022】
続いて、訓練データ生成部21は、変数の集合に対して数値計算や測定などにより、目的関数(Γ)の集合と特性値(Λ)の集合を生成する。なお、目的関数の集合におけるnは目的関数の数を示し、rは目的関数データの次元を示し、特性値の集合におけるoは特性値の数を示し、sは特性値データの次元を示す。
【0023】
その後、訓練データ生成部21は、変数の集合、目的関数の集合、特定値の集合それぞれを画像化し、画像化変数、画像化目的関数、画像化特性値の集合を生成し、この集合を訓練データとして生成する。なお、tは画像化変数の次元を示し、uは画像化目的関数の次元を示し、vは画像化特性値の次元を示す。
【0024】
(訓練データ生成の具体例)
ここで、
図4から
図8を用いて、上述した訓練データの生成の具体例を説明する。ここでは、一例として、回路設計における設計パラメータの最適化を例にして説明する。
図4は、目的関数の集合の生成例を説明する図である。
図5は、特性値の集合の生成例を説明する図である。
図6は、変数の集合の画像化例を説明する図である。
図7は、目的関数の集合の画像化例を説明する図である。
図8は、特性値の集合の画像化例を説明する図である。
【0025】
まず、訓練データ生成部21は、変数の集合、目的関数の集合、特性値の集合を生成する。具体的には、
図4に示すように、訓練データ生成部21は、変数の集合として、「回路素子パラメータ(インダクタンス、キャパシタンス)の組み合わせ」をn個生成する。そして、訓練データ生成部21は、変数の集合をLTspice(登録商標)などの回路シミュレータなどに入力して、目的関数の集合として「電力効率、電力損失」の組み合わせをn個生成する。
【0026】
同様に、
図5に示すように、訓練データ生成部21は、変数の集合「回路素子パラメータ(インダクタンス、キャパシタンス)の組み合わせ1~n」を回路シミュレータなどに入力して、特性値の集合として「時系列電圧波形(以下では単に「電圧波形」と記載する場合がある)、時系列電流波形(以下では単に「電流波形」と記載する場合がある)」の組み合わせをn個生成する。
【0027】
続いて、訓練データ生成部21は、変数の集合、目的関数の集合、特性値の集合それぞれを画像化して、画像化変数、画像化目的関数、画像化特性値を生成する。具体的には、
図6に示すように、訓練データ生成部21は、変数の1つであるn個のインダクタンス1~nそれぞれを、変数の値に応じて画像濃度を設定することで画像化する。なお、もう一つの変数であるキャパシタンスについても同様に画像化される。
【0028】
また、
図7に示すように、訓練データ生成部21は、目的関数の1つであるn個の電力効率1~nそれぞれを、目的関数の値に応じて画像濃度を設定することで画像化する。なお、もう一つの目的変数である電力損失についても同様に画像化される。
【0029】
また、
図8に示すように、訓練データ生成部21は、特性値の1つであるn個の電圧波形1~nそれぞれを、それぞれの波形が示されるように画像化する。なお、もう一つの目的変数である電流波形についても同様に画像化される。
【0030】
図2に戻り、学習部22は、訓練データDB14に記憶される訓練データを用いて、VAEを学習する処理部である。具体的には、学習部22は、訓練データである「画像化変数、画像化目的関数、画像化特性値」をVAEに入力し、VAEを学習する。そして、学習部22は、学習が終了すると、学習結果として学習済みのVAEまたは学習済みVAEを構成する各種パラメータを記憶部12に格納する。なお、学習を終了するタイミングは、所定数以上の訓練データを用いた学習が完了した時点や復元誤差が閾値未満となった時点など、任意に設定することができる。
【0031】
ここで、学習対象のVAEについて説明する。
図9は、VAEの学習を説明する図である。なお、
図9の説明では、必要に応じてベクトルXなどを単にXと記載する場合がある。
図9に示すように、VAEは、エンコーダとデコーダとを有する。エンコーダは、入力データ(ベクトルX)が入力されると、潜在変数zが従う正規分布のパラメータμ(ベクトル)とΣ(ベクトル)を生成する。すなわち、エンコーダは、入力データ(ベクトルX)の特徴を圧縮してN次元のガウス分布の平均μと分散Σを出力し、その2つをもとにして潜在変数Zをサンプリングで求める。デコーダは、サンプリングされた潜在変数から入力データを復元する。そして、VAEは、入力データと復元データとの差分を用いた誤差逆伝搬により、エンコーダとデコーダそれぞれのニューラルネットワークの重みを調節する。
【0032】
具体的には、
図9の(1)は、n次元標準正規分布N
n(0,I)からランダムにサンプリングされたn次元ベクトルである。
図9の(2)は、2つのベクトルの要素毎の積(アダマール積)であり、ベクトルZは平均μ、分散Σのn次元正規分布N
n(ベクトルμ,ベクトルΣ)からランダムにサンプリングされたn次元ベクトルと等価である。
【0033】
また、
図9の(3)におけるD
KL(P||Q)は、2つの確率分布PとQのカルバック・ライプラー距離(以下、KL距離と記載する場合がある)であり、PとQの差異を図る尺度である。KL距離は、PとQが完全に一致するときのみゼロで、それ以外は正の値となる。正則化損失の最小化により、類似性の高い画像が潜在空間中の近くの点にデコードされるようになる。
図9の(4)は、復元損失の近似として、入力Xと出力X´との二乗和誤差や交差エントロピー誤差などが用いられる。後述する回路設計の例では、交差エントロピー誤差を用いる。なお、E[A]はAの期待値を表す。
【0034】
このように設計されたVAEにおいて、訓練データの集合ζ={X1,X2,・・・Xn}に対し、Lossを最小化するようにエンコーダとデコーダのパラメータを学習する。なお、エンコーダとデコーダは、階層的なニューラルネットワーク(NN)から構成される。ここで、Lossを最小化するようにNNの重みとバイアスのパラメータを調整する過程がVAEの学習プロセスである。
【0035】
図2に戻り、集合生成部23は、学習済みのVAEを用いて、サンプリング集合を生成する処理部である。例えば、集合生成部23は、学習部22によって学習された学習済みのVAEに、訓練データDB14に格納される訓練データを与えて(入力して)、類似度の高い目的関数が集中して配置される解空間(目的関数の高い部分、低い部分が集中)を生成する。そして、集合生成部23は、生成した解空間においてユーザが所望する目的関数と類似するサンプリング集合を生成し、獲得部24に出力する。
【0036】
獲得部24は、学習済みのVAEを用いて、目的関数の最適解を獲得する処理部である。例えば、獲得部24は、集合生成部23により生成されたサンプリング集合に対して、学習済みのVAEを用いてデコードすることで、サンプリング集合から画像化変数、画像化目的関数、画像化特性値の各集合を復元する。そして、獲得部24は、画像化変数、画像化目的関数、画像化特性値の各集合を数値化し、最適解である目的関数、変数、特性値の組み合わせを獲得する。なお、獲得部24は、獲得した最適解を記憶部12に格納したり、ディスプレイに表示したり、管理端末に送信したりする。
【0037】
[処理の流れ]
次に、上述した各処理部で実行される処理の流れを説明する。ここでは、全体的な処理、訓練データの生成、最適解の獲得の各処理について説明する。
【0038】
(全体的な処理)
図10は、全体的な処理の流れを示すフローチャートである。
図10に示すように、処理が開始されると、訓練データ生成部21は、訓練データの生成を実行し(S101)、学習部22は、訓練データによるVAEの学習を実行する(S102)。
【0039】
続いて、集合生成部23は、学習済みVAEの潜在空間におけるサンプリング集合を生成する(S103)。そして、獲得部24は、学習済みVAEにサンプリング集合を与えて、目的関数、変数、特性値の集合を算出し(S104)、目的関数の最小値(または最大値)を獲得する(S105)。
【0040】
ここで最適解が獲得できない場合(S106:No)、訓練データ生成部21は、各変数の変動範囲を広げる等の再設定を行って、再学習用の訓練データを生成する(S107)。その後、S102以降が繰り返される。
【0041】
一方、獲得部24は、最適解が獲得できた場合(S106:Yes)、獲得した目的関数、変数、特性値の集合を出力する(S108)。
【0042】
(訓練データの生成処理)
図11は、訓練データの生成処理の流れを示すフローチャートである。
図11に示すように、訓練データ生成部21は、各変数の変動範囲を設定し(S201)、変数の集合を生成する(S202)。
【0043】
続いて、訓練データ生成部21は、変数の集合を入力として、数値計算や測定等により、目的関数の集合を生成する(S203)。また、訓練データ生成部21は、変数の集合を入力として、数値計算や測定等により、特性値の集合を生成する(S204)。
【0044】
そして、訓練データ生成部21は、変数の集合から画像化変数の集合を生成し(S205)、目的関数の集合から画像化目的関数の集合を生成し(S206)、特性値の集合から画像化特性値の集合を生成する(S207)。
【0045】
(最適解の獲得処理)
図12は、最適解の獲得処理の流れを示すフローチャートである。
図12に示すように、集合生成部23は、学習済みVAEに訓練データの集合を与えて潜在変数の平均値の集合を算出する(S301)。例えば、集合生成部23は、訓練データの集合ζ={X
1,X
2,・・・X
n}を学習済みVAEのエンコーダに入力し、潜在変数の平均値の集合Ωを取得する。
【0046】
続いて、集合生成部23は、潜在変数の平均値の集合より、潜在変数の範囲(最小、最大)を算出する(S302)。そして、集合生成部23は、潜在変数の範囲よりサンプリング集合を生成する(S303)。例えば、集合生成部23は、ユーザが所望する目的関数に該当する範囲のサンプリング集合Mを生成する。なお、iはサンプリング集合の数であり、jは潜在空間(潜在変数の平均値)の次元である。その後、獲得部24は、サンプリング集合をデコードし(S304)、最適解を獲得する(S305)。
【0047】
図13は、目的関数、変数、特性値の集合の算出を説明する図である。
図13に示すように、獲得部24は、潜在変数におけるサンプリング集合Mを学習済みVAEのデコーダに入力し、復元結果として画像化変数D´(d´
1~d´
n)、画像化目的関数E´(e´
1~e´
n)、画像化特性値F´(f´
1~f´
n)の集合ζ={X´
1,X´
2,・・・X´
n}を取得する。なお、X´には、{D´
1~m,E´
1~n,F´
1~o}が含まれる。そして、獲得部24は、画像化変数D´、画像化目的関数E´、画像化特性値F´の集合それぞれを数値化し、変数π´
1~π´
nの集合Π´、目的関数γ´
1~γ´
nの集合Γ、特性値λ´
1~λ´
nの集合Λを生成する。
【0048】
[具体例]
次に、上述した最適解の獲得の具体例を説明する。ここでは、LLC電流共振回路の回路設計における設計パラメータの最適化を例にして説明する。
【0049】
(回路図)
まず、設計対象となる回路図について説明する。
図14は、具体例で使用する回路図を示す図である。
図14に示すように、ここでは、2つのリアクトルLr,LmとコンデンサCrとを有するLLC電流共振回路を例にして説明する。また、
図14に示すように、4つの観測点における節点波形と3つのパラメータ(Cr,Lr,Lm)の画像データを用いて、学習および最適解の獲得を実行する。なお、4つの観測点が現象を示す上記特性値に対応し、3つのパラメータが上記変数に対応し、電力効率が上記目的関数に対応する。
【0050】
(学習データ)
次に、設計パラメータの最適な組み合わせを獲得するためのVAEの学習に利用する学習データについて説明する。ここでは、回路パラメータの変化に対して敏感な4つの観測点1~4の波形をマルチチャネルの画像データとして与え、出力電流は電力効率変化の影響が大きい最大値を用いる。なお、潜在空間は出力電流毎に異なると予測する。
【0051】
また、節点波形、電力効率に敏感で設計変更が比較的容易に可能な回路パラメータ(Cr,Lr,Lm)のパラメータ値をマルチチャネルの画像データ(全ピクセルをパラメータ値、最大値で正規化)として与える。さらに、電力効率をマルチチャネルの画像データ(全ピクセルを電力効率)として与える。なお、各画像サイズは、120×120とする。以上より、チャネル数は、観測点数+パラメータ数+電力効率=4+3+1=8とする。また、学習データの数は961個とする。なお、Lmは設計値を使用し、LrとCrは設計値から-30%から+30%の範囲を2%刻みで変動させる。
【0052】
このような環境において、具体例では、潜在空間において任意点をランダムに抽出し、推論した回路パラメータ組合せを設計パラメータとして採用し、シミュレーションを実施して、回路部品最適化の良否を確認する。
【0053】
(VAE)
次に、学習対象であるVAEについて説明する。
図15は、潜在空間を生成するVAEの構造と損失を説明する図である。
図15に示すように、学習対象のVAEは、4段のCNN(Convolutional Neural Network)と2段のFC(Full-Connected)層を有するエンコーダと、1段のFC層と2段のCNNを有するデコーダとから構成される。学習データの数は、各パラメータのステップの2乗=(31)
2=961とし、そのうちの10%の96個を検証データ、残りの865個を訓練データとして使用する。また、学習時のバッチサイズを16、学習のエポック数を100とし、最適化アルゴリズムであるオプティマイザとしてNadamを使用する。また、1エポックの訓練時間を3秒とする。
【0054】
このような条件により学習された学習済みのVAEの損失(Loss)を
図15の下図に示す。
図15の横軸は学習のエポック数であり、縦軸は損失である。
図15に示すように、訓練データを用いたときの損失(Training loss)が0.2817、検証データを用いたときの損失(Validation loss)が0.2863であり、VAEは、上記学習条件により十分に学習できていることがわかる。
【0055】
なお、検証に使用した検証データの分布を
図16に示す。
図16は、潜在空間における検証データの分布を説明する図である。
図16に示すように、潜在空間上の点が潜在空間(0,0)を中心に分布し、偏りがなく均一な分布となっていることから、学習データの変動範囲を表現できており、
図15に示した検証結果の信頼性も高いと判断できる。
【0056】
(復元結果)
次に、
図17から
図19を用いて、VAEによる復元結果を説明する。
図17は、学習データの復元画像を説明する図である。
図18は、潜在空間における節点波形の復元画像を説明する図である。
図19は、潜在空間におけるパラメータおよび電力効率の復元画像を説明する図である。
【0057】
図17では、4つの観測点と3つのパラメータと電力効率の8つの学習データに対応する画像(学習画像)と、その学習画像を入力して得られる復元画像とを示している。
図17に示すように、観測点波形、パラメータ、電力効率の学習画像と復元画像は一致傾向にあり、VAEが十分に学習できていることがわかる。
【0058】
図18では、観測点1から4で観測された波形の復元画像を示している。なお、各観測点波形の時間は2周期分、振幅は最小から最大区間で補正している。
図18に示すように、各観測点波形の復元画像は、連続的な波形の微小変動である。ただし、学習データの波形変動が小さいため観測点波形の特徴量を学習できているかを完全に把握することは難しい面もある。
【0059】
図19では、3つのパラメータ(Cr,Lr,Lm)と電力効率の復元画像を示している。なお、各パラメータについては、最大値で規格化し、電力効率については、最小から最大の範囲で規格化している。
図19に示すように、各パラメータの復元画像は概ね連続的なパラメータ変動を示しており、VAEでパラメータの特徴量を学習できていると判断することができる。同様に、電力効率の復元画像は概ね連続的なパラメータ変動を示しており、VAEで電力効率の特徴量を学習できていると判断することができる。
【0060】
(潜在空間の調査・検証)
次に、学習済みVAEに対して、訓練データ(入力データ)を入力して、入力データを復元した復元結果と入力データとを比較することにより、学習済みVAEを検証した結果について説明する。
【0061】
まず、各パラメータの分布の検証を説明する。
図20は、潜在空間におけるLmパラメータの分布を説明する図である。
図21は、潜在空間におけるLrパラメータの分布を説明する図である。
図22は、潜在空間におけるCrパラメータの分布を説明する図である。
図23は、潜在空間における電力効率の分布を説明する図である。なお、各パラメータ値および電力効率は、復元画像全ピクセルの平均値を採用した。
図20から
図23では、学習データが潜在空間で実際はどこに分類されていたかを示す学習データの分布と、潜在空間からグリッド上でサンプリング(抽出)した点がどのような値を持っているかを示す復元値とを図示する。なお、
図20から
図23の縦軸は、潜在空間上に形成した解空間の2次元座標であり、横軸は、潜在空間上に形成した解空間の1次元座標である。また、分布の横に示す縦の数値は、解空間次元であり、ここでは2次元の例を図示している。この場合、(0,0)が解空間の中心である。
【0062】
図20に示すように、VAEに入力したパラメータLmの学習データの分布と、学習済みのVAEによる復元されたパラメータLmの復元値とを比較すると、学習データと復元値の分布傾向は概ね同一傾向(一定値)であり、パラメータLmの分布を学習できていると判断することができる。
【0063】
また、
図21に示すように、VAEに入力したパラメータLrの学習データの分布と、学習済みのVAEによる復元されたパラメータLrの復元値とを比較すると、学習データと復元値の分布傾向は概ね同一傾向(一定値)であり、パラメータLrの分布を学習できていると判断することができる。
【0064】
図22に示すように、VAEに入力したパラメータCrの学習データの分布と、学習済みのVAEによる復元されたパラメータCrの復元値とを比較すると、学習データと復元値の分布傾向は概ね同一傾向(一定値)であり、パラメータCrの分布を学習できていると判断することができる。
【0065】
また、
図23に示すように、VAEに入力した電力効率の学習データの分布と、学習済みのVAEによる復元された電力効率の復元値とを比較すると、学習データと復元値の分布傾向は概ね同一傾向(一定値)であり、電力効率の分布を学習できていると判断することができる。
【0066】
(設計パラメータ組合せの獲得)
次に、学習済みVAEに対して、訓練データを入力することにより、潜在空間上でサンプリング集合を生成し、サンプリング集合を復元することで、最適な設計パラメータの組み合わせを獲得する具体例について説明する。
【0067】
図24は、電力効率分布とランダム抽出を説明する図である。ここでは、
図24に示すように、電力効率分布から任意の点をランダムに200点抽出する。そして、抽出した各点を用いて、各パラメータを推定し、設計パラメータを獲得する。
【0068】
次に、電力効率のシミュレーション値と、電力効率の学習済みVAEによる推定値との比較を説明する。
図25は、電力効率分布のシミュレーション値と推定値を説明する図である。なお、潜在空間における電力効率(縦軸)の分布を示す。
図25の(1)に示すように、学習データに利用した電力効率の分布は、シミュレーション値と推定値とにおいて同じ傾向を示している。また、
図25の(2)に示す電力効率の低い部分では、シミュレーション値と推定値とでは若干異なる傾向にあるが、
図25の(3)に示す電力効率の高い部分では、シミュレーション値と推定値とでは同じ傾向にある。
【0069】
次に、電力効率のシミュレーション値と、電力効率の学習済みVAEによる推定値との誤差を説明する。
図26は、推定値とシミュレーション値との誤差を説明する図である。なお、
図26では、絶対誤差(縦軸)と相対誤差(縦軸)それぞれの分布を示す。
【0070】
絶対誤差について、
図26の(1)に示すように、学習データ内では概ね絶対誤差±0.0011以下であるが、
図26の(2)に示すように、学習データの領域外の一部で誤差が若干大きい。また、誤差の頻度分布は概ね正規分布の傾向を示している。
【0071】
相対誤差について、
図26の(3)に示すように、学習データ内では概ね相対誤差±0.12以下であるが、
図26の(4)に示すように、学習データの領域外の一部で誤差が若干大きい。また、誤差の頻度分布は概ね正規分布の傾向を示している。
【0072】
図27は、推定値とシミュレーション値との電力効率の比較を説明する図である。
図27では、
図14に示した電源回路(LLC電流共振)の電力効率について、シミュレーション値と学習済みVAEを用いた推定値とを示している。
図27に示すように、絶対誤差±0.002の検証データは、学習データの内挿領域の95.5%、全体の62.5%を網羅し、絶対誤差±0.003の検証データは、学習データの内挿領域の100%、全体の82.0%を網羅する。ここでは、絶対誤差±0.003以下に検証データの82%が包含されており(特徴量分布におけるランダムな200点で検証)、設計指標を最大化するパラメータ変数の組み合わせ候補の獲得を行った。
【0073】
(設計パラメータ組合せの最適化)
次に、
図28を用いて、
図27で取得した設計パラメータ組合せについて、最大電力効率となるパラメータ組み合わせの獲得について説明する。
図28は、最適解の獲得を説明する図である。
【0074】
図28に示す最適解の獲得では、学習データ内の電力効率分布から10,000点をランダムに抽出し、学習済みVAEのエンコーダにより生成される潜在空間上において最大電力効率となる最適点を獲得する。そして、学習済みVAEのデコーダを用いて最適点より各パラメータを推定し、設計パラメータの最適値を獲得した。
【0075】
図28に示すように、設計パラメータLm、Lr、Crそれぞれの最適解と設計値(設計値上で得られる最適解)との誤差は許容できる範囲内で収まっている。また、電力効率の推論値とシミュレーション値とのそれぞれについて、最適解と設計値との誤差も許容できる範囲内で収まっている。つまり、実施例1で説明した学習済みVAEを用いて獲得した最適値は、設計パラメータ範囲(学習データ内)における最適な設計パラメータ組合せと同一傾向である。
【0076】
[効果]
上述したように、実施例1にかかる情報処理装置10は、目的関数を含む訓練データを用いてVAEを学習し、学習済みVAE(エンコーダ)に訓練データを入力して、潜在空間上で類似度の高い目的関数を配置する。そして、情報処理装置10は、任意の目的関数を含むサンプリング集合を生成し、学習済みVAE(デコーダ)に入力して復元することで、最適解を獲得する。
【0077】
この結果、情報処理装置10は、問題の解空間が複雑な場合でも、高速に最適解を獲得することができる。また、情報処理装置10は、目的関数が集中して配置される解空間を構成でき、学習済みVAEの内挿により、少ないデータ数で最適解を獲得することができる。
【0078】
さらに、情報処理装置10は、
図20等に示すように、解空間の特徴量を学習済みVAEの潜在空間を用いて表現して出力することもできる。このため、学習済みVAEにより最適解を獲得できずに、学習済みVAEを再学習する場合でも、各変数の変動範囲を容易に正確に再設定することができ、再学習の精度を向上させることができる。例えば、1度目の学習時のLmパラメータの分布が
図20の場合、
図20の分布を参照して、2度目の学習データの分布を広げたり、別の分布となるような学習データを生成したりすることができる。
【実施例2】
【0079】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0080】
[データや数値等]
上記実施例で用いたデータ例、数値例、閾値、表示例等は、あくまで一例であり、任意に変更することができる。また、訓練データには、正解情報である目的関数が含まれていてればよく、目的関数に影響を与える変数等を任意に選択することができる。上記実施例では、目的関数等を画像化する例を説明したが、これに限定されるものではなく、グラフなど画像の特徴量を表現できる他の情報を採用することができる。また、具体例では、回路設計におけるパラメータの最適解を例にして説明したが、あくまで一例であり、他の分野にも適用することができる。
【0081】
また、上記実施例では、変分オートエンコーダを用いた例を説明したが、これに限定されるものではなく、類似度の高い目的関数を集約させることができる他の機械学習を用いることもできる。
【0082】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0083】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0084】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0085】
[ハードウェア]
図29は、ハードウェア構成例を説明する図である。
図29に示すように、情報処理装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図29に示した各部は、バス等で相互に接続される。
【0086】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、
図2に示した機能を動作させるプログラムやDBを記憶する。
【0087】
プロセッサ10dは、
図2に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図2等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、情報処理装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、訓練データ生成部21、学習部22、集合生成部23、獲得部24等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、訓練データ生成部21、学習部22、集合生成部23、獲得部24等と同様の処理を実行するプロセスを実行する。
【0088】
このように、情報処理装置10は、プログラムを読み出して実行することで最適解の獲得方法を実行する情報処理装置として動作する。また、情報処理装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0089】
10 情報処理装置
11 通信部
12 記憶部
13 データDB
14 訓練データDB
20 制御部
21 訓練データ生成部
22 学習部
23 集合生成部
24 獲得部