(57)【要約】【課題】スパース推定を精度よく高速に行う。【解決手段】最適化装置は、分割部と、正則化処理部と、誤差比算出部と、出力部とを有する。分割部は、目的変数と説明変数とを含む学習データを複数の分割データに分割する。正則化処理部は、分割された各分割データにおいて、学習データの構造抽出に用いるための第１のデータに対して正則化処理を実行し、ゼロとなる第１の要素を抽出する。誤差比算出部は、分割された各分割データのテストデータにおいて、学習データの誤差比の算出に用いるための第２のデータに対し、第２のデータに対する重回帰を行なった結果である第１の重回帰と、第２のデータから第１の要素を除いた第３のデータに対する重回帰を行なった結果である第２の重回帰との誤差比が所定値以上であるモデルを候補モデルとして抽出する。出力部は、抽出された各候補モデルについて、ゼロが所定回数以上の要素をゼロに置換したモデルを出力する。【選択図】図１
2020095397.tif 000002
【特許請求の範囲】
【請求項１】
目的変数と説明変数とを含む学習データを複数の分割データに分割する分割部と、
分割された各分割データにおいて、前記学習データの構造抽出に用いるための第１のデータに対して正則化処理を実行し、ゼロとなる第１の要素を抽出する正則化処理部と、
分割された各分割データのテストデータにおいて、前記学習データの誤差比の算出に用いるための第２のデータに対し、前記第２のデータに対する重回帰を行なった結果である第１の重回帰と、前記第２のデータから前記第１の要素を除いた第３のデータに対する重回帰を行なった結果である第２の重回帰との誤差比が所定値以上であるモデルを候補モデルとして抽出する誤差比算出部と、
抽出された各候補モデルについて、ゼロが所定回数以上の要素をゼロに置換したモデルを出力する出力部と、
を有することを特徴とする最適化装置。
【請求項２】
前記正則化処理部は、前記第１のデータに基づいてイジング形式で表したデータのアニーリングにより前記正則化処理を行う、
ことを特徴とする請求項１に記載の最適化装置。
【請求項３】
前記イジング形式で表す際の２進展開に用いる数列数をｌとし、前記アニーリングの上限ビット数をＮｂとし、前記学習データの列数をｎとした場合に、ｎ（ｌ＋２）≦Ｎｂを満たす最大の整数であるｌを前記２進展開に用いる数列数とする計算部をさらに有する、
ことを特徴とする請求項２に記載の最適化装置。
【請求項４】
前記分割部は、前記学習データの分割後のデータに含まれる係数の上限および係数の下限が所定の条件を満たす前記分割データに分割する、
ことを特徴とする請求項１乃至３のいずれか一項に記載の最適化装置。
【請求項５】
目的変数と説明変数とを含む学習データを複数の分割データに分割し、
分割された各分割データにおいて、前記学習データの構造抽出に用いるための第１のデータに対して正則化処理を実行し、ゼロとなる第１の要素を抽出し、
分割された各分割データのテストデータにおいて、前記学習データの誤差比の算出に用いるための第２のデータに対し、前記第２のデータに対する重回帰を行なった結果である第１の重回帰と、前記第２のデータから前記第１の要素を除いた第３のデータに対する重回帰を行なった結果である第２の重回帰との誤差比が所定値以上であるモデルを候補モデルとして抽出し、
抽出された各候補モデルについて、ゼロが所定回数以上の要素をゼロに置換したモデルを出力する、
処理をコンピュータが実行することを特徴とする最適化方法。
【請求項６】
目的変数と説明変数とを含む学習データを複数の分割データに分割し、
分割された各分割データにおいて、前記学習データの構造抽出に用いるための第１のデータに対して正則化処理を実行し、ゼロとなる第１の要素を抽出し、
分割された各分割データのテストデータにおいて、前記学習データの誤差比の算出に用いるための第２のデータに対し、前記第２のデータに対する重回帰を行なった結果である第１の重回帰と、前記第２のデータから前記第１の要素を除いた第３のデータに対する重回帰を行なった結果である第２の重回帰との誤差比が所定値以上であるモデルを候補モデルとして抽出し、
抽出された各候補モデルについて、ゼロが所定回数以上の要素をゼロに置換したモデルを出力する、
処理をコンピュータに実行させることを特徴とする最適化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、最適化装置、最適化プログラムおよび最適化方法に関する。
【背景技術】
【０００２】
従来、学習データより学習モデル（以下、単に「モデル」ともよぶ）を作る教習あり学習において、重回帰（ｙ＝Ｘβ＋ξ）で真のモデル（β）を推定する際に、データの性質から、学習データにスパース性が要求されることがしばしばある。
【０００３】
なお、重回帰の式におけるｙは、学習データに含まれる目的変数であり、例えば学習用の画像データにおける画像の意味（“２”が描かれている画像における“２”）である。Ｘは、学習データに含まれる説明変数であり、例えば学習用の画像データにおける画像（ピクセル）である。βは、学習モデルである。ξは、学習データに含まれるノイズである。
【０００４】
図１１は、重回帰においてスパース性が要求されることを説明する説明図である。図１１に示すように、ケースＣ１では、ノイズが除去され、ｙ＝“２”に対応する画素以外が“０”となっていることから、重回帰においてモデル（β）が見れば良い場所はｙ＝“２”に対応するｘのピクセルに限定される。このため、ｙ＝“２”とする精度の高いモデルが得られることとなる。これに対し、ケースＣ２では、重回帰においてノイズ（ξ）でモデル（β）が目移りすることから、精度の低いモデルとなる。
【０００５】
このスパース性の要求を満たすため、学習データに対して、データがスパースなところ（例えば値の殆どが定数（≒０））を抽出するスパース推定を行い、ノイズなどの除去を行っている。このようなスパース推定を行う学習では、予測誤差に正規化項を加えた次の式（１）に示すような最適化問題を解くこととなる。
【０００６】
【数１】
2020095397.tif 000003
【０００７】
しかしながら、式（１）はＮＰ困難なため、現実的な時間で解を得ることが困難であることから、Ｇｒｉｄ  ＳｅａｒｃｈまたはＬ１正則化でスパース推定を行う手法が知られている。
【０００８】
Ｇｒｉｄ  Ｓｅａｒｃｈは、βの０成分をしらみつぶしで探索し、探索候補のリストを事前に作成する。そして、作成したリスト内の探索候補（Ｌ）に限定した通常の回帰（ｍｉｎβ∈Ｌ｜｜ｙ−Ｘβ｜｜２２）を実行する。
【０００９】
また、Ｌ１正則化は、次の式（２）に示すように、正規化項をＬ１ノルムに緩和して最適化問題を解く手法である。
【００１０】
【数２】
2020095397.tif 000004
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特表２０１６−５３１３４３号公報
【特許文献２】特開２０１６−１２３８５３号公報
【特許文献３】特開２００５−２２２４２２号公報
【非特許文献】
【００１２】
【非特許文献１】Tibshirani,  R.  (1996),  “Regression  Shrinkage  and  Selection  via  the  Lasso,”  Journal  of  the  Royal  Statistical  Society,  Ser.  B,  58,  267-288.
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記の従来技術では、スパース推定を精度よく高速に行うことが困難であるという問題がある。例えば、Ｇｒｉｄ  Ｓｅａｒｃｈでは、ある程度の精度を保証するために探索候補を増やそうとすると探索候補数が指数的に増えるため、計算時間が多大なものとなる。また、Ｌ１正則化では、Ｌ１ノルムに緩和するため近似解となり、例えばデータの偏りによって精度が悪くなる場合がある。
【００１４】
１つの側面では、スパース推定を精度よく高速に行うことを可能とする最適化装置、最適化プログラムおよび最適化方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
１つの案では、最適化装置は、分割部と、正則化処理部と、誤差比算出部と、出力部とを有する。分割部は、目的変数と説明変数とを含む学習データを複数の分割データに分割する。正則化処理部は、分割された各分割データにおいて、学習データの構造抽出に用いるための第１のデータに対して正則化処理を実行し、ゼロとなる第１の要素を抽出する。誤差比算出部は、分割された各分割データのテストデータにおいて、学習データの誤差比の算出に用いるための第２のデータに対し、第２のデータに対する重回帰を行なった結果である第１の重回帰と、第２のデータから第１の要素を除いた第３のデータに対する重回帰を行なった結果である第２の重回帰との誤差比を求める。そして、誤差比算出部は、誤差比が所定値以上であるモデルを候補モデルとして抽出する。出力部は、抽出された各候補モデルについて、ゼロが所定回数以上の要素をゼロに置換したモデルを出力する。
【発明の効果】
【００１６】
本発明の一実施態様によれば、スパース推定を精度よく高速に行うことができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施形態にかかる最適化装置の機能的構成を例示するブロック図である。
【図２】図２は、実施形態にかかる最適化装置の動作例を示すフローチャートである。
【図３】図３は、学習データの分割を説明する説明図である。
【図４】図４は、動作主体とデータの流れを説明する説明図である。
【図５】図５は、Ｔｒａｉｎデータに対するアニーリングを説明する説明図である。
【図６】図６は、ｊ∈Ｒを除去した重回帰を説明する説明図である。
【図７】図７は、動作主体とデータの流れを説明する説明図である。
【図８】図８は、要素の０化を説明する説明図である。
【図９】図９は、動作主体とデータの流れを説明する説明図である。
【図１０】図１０は、最適化プログラムを実行するコンピュータの構成の一例を示す図である。
【図１１】図１１は、重回帰においてスパース性が要求されることを説明する説明図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、実施形態にかかる最適化装置、最適化方法および最適化プログラムを説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する最適化装置、最適化方法および最適化プログラムは、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００１９】
［最適化装置の機能構成］
図１は、実施形態にかかる最適化装置の機能的構成を例示するブロック図である。図１に示す最適化装置１は、目的変数と、説明変数とを含む学習データの入力を受け付ける。そして、最適化装置１は、受け付けた学習データに対して、式（１）に関する最適化問題を解いてデータがスパースなところ（例えば値の殆どが定数（≒０））を抽出するスパース推定に関する演算処理を行う。
【００２０】
具体的には、最適化装置１は、入力された目的変数と説明変数とを含む学習データを同数のＫ個に分割（以後、Ｋ分割と呼ぶ）する。次いで、最適化装置１は、Ｋ分割された各分割データにおいて、学習データの構造抽出に用いるためのＴｒａｉｎ（訓練）データに対してＬ０正則化の正則化処理を実行し、ゼロとなる要素を抽出する。具体的には、最適化装置１は、Ｔｒａｉｎデータに基づいて式（１）をイジング形式で表したデータのアニーリングによりＬ０正則化の正則化処理を行い、ゼロとなる要素を抽出する。このように、最適化装置１は、イジング形式で表したデータのアニーリングにより、ダイレクトなＬ０正則化を現実的な速度で最適化することができる。
【００２１】
次いで、最適化装置１は、分割された各分割データにおける、検証用のＴｅｓｔ（テスト）データに対する重回帰の結果と、Ｔｅｓｔデータから０となる要素を除いたデータに対する重回帰の結果とを求める。そして、最適化装置１は、求めた２つの重回帰の結果の誤差比が所定値（ｐ）以上であるモデルを候補モデルとして抽出する。最適化装置１は、上記の処理をＫ分割したデータ分繰り返し行って抽出された各候補モデルについて、ゼロが所定回数以上の要素をゼロに置換したモデルを出力する。
【００２２】
このように、最適化装置１は、Ｌ１ノルムに緩和することなく、Ｌ０正則化の正則化処理によりデータの偏りを回避したスパース性を抽出でき、スパース推定を精度よく行うことができる。このようなスパース推定に関する機能構成について、例えば、最適化装置１を次のように構成する。
【００２３】
例えば、最適化装置１は、サーバコンピュータなどのコンピュータである。最適化装置１は、１台のコンピュータとして実装してもよく、また、複数台のコンピュータによるコンピュータシステムとして実装してもよい。すなわち、以下に説明する最適化装置１の構成は、複数台のコンピュータによる情報処理システムで処理を分散して実行してもよい。なお、本実施形態では、最適化装置１を１台のコンピュータとした場合を例として説明する。
【００２４】
図１に示すように、最適化装置１は、ビット数計算部１１、データ分割部１２、イジングモデルアニーリング部１３、スパース構造反映部１４、重回帰部１５、モデル候補判定部１６、スパース構造判定部１７および出力部１８を有する。
【００２５】
入力部１０は、演算に関する学習データやパラメータなどのデータの入力を受け付ける処理部である。入力部１０は、入力された学習データを学習データテーブル２１に格納し、パラメータをパラメータテーブル２０に格納する。
【００２６】
学習データは、例えば学習用の画像データにおける画像の意味などの目的変数（ｙ）と、学習用の画像データにおける画像（ピクセル）などの説明変数（Ｘ）とを含む、モデル生成用の教師データである。パラメータは、演算時に用いる各種パラメータである。
【００２７】
例えば、パラメータテーブル２０に格納されるパラメータには、イジング形式で表す際に、２進展開による整数近似で用いる数列数（ｌ）、モデルの整数近似用の数列（ａ０，…，ａｌ）がある。数列数（ｌ）は、例えば１以上の整数であり、ユーザが設定した値の他、ビット数計算部１１が計算した値であってもよい（詳細は後述する）。また、数列（ａ０，…，ａｌ）は、例えばユーザが設定した実数値などである。
【００２８】
また、パラメータには、正則化項の係数（λ１，λ２）、学習データの分割数（Ｋ）、学習データにおけるＴｒａｉｎデータ／Ｔｅｓｔデータの比率（ｑ：Ｔｒａｉｎ側の割合）がある。正則化項の係数（λ１，λ２）は、例えばユーザが設定した０以上の実数値などである。学習データの分割数（Ｋ）は、例えばユーザが設定した１以上の整数値である。なお、分割後のデータに含まれる係数の上限および係数の下限が所定の条件を満たすように分割する場合は、分割数（Ｋ）の他に、処理を繰り返す回数ｉｔｒｍａｘ（１以上の整数）を含めてもよい（詳細は後述する）。Ｔｒａｉｎデータ／Ｔｅｓｔデータの比率（ｑ：Ｔｒａｉｎ側の割合）は、例えばユーザが設定した０〜１の実数値であり、ｑ＝０．８などがよく用いられる値である。
【００２９】
また、パラメータには、モデル候補を決定する際に用いる閾値（ｐ）、最終モデルを決定する際に用いる閾値（Ｎ）がある。閾値（ｐ）は、例えばユーザが設定した０〜１の実数値である。閾値（Ｎ）は、例えばユーザが設定した１以上の整数値である。
【００３０】
ビット数計算部１１は、イジングモデルアニーリング部１３におけるデータのビット数を計算する処理部であり、学習データ（Ｘ）の列数（ｎ）および整数近似の数列数（ｌ）に対して、ｎ（ｌ＋２）とするビット数を計算する。ここで、ビット数計算部１１は、イジングモデルアニーリング部１３の上限ビット数をＮとして、ｎ（ｌ＋２）≦Ｎを満たす最大の整数であるｌを計算する。そして、ビット数計算部１１は、得られたｌの値を２進展開による整数近似で用いる数列数（ｌ）としてパラメータテーブル２０に格納する。これにより、最適化装置１は、アニーリングの上限ビット数（Ｎ）により近づけるような数列数（ｌ）での整数近似を行うことができる。
【００３１】
データ分割部１２は、パラメータテーブル２０における学習データの分割数（Ｋ）をもとに、学習データテーブル２１に格納された学習データを同数のＫ個にＫ分割する処理部である。すなわち、データ分割部１２は、分割部の一例である。
【００３２】
具体的には、データ分割部１２は、学習データの列をランダムに並び替えて、同数のＫ個に分けることで分割データを得る。次いで、データ分割部１２は、Ｋ分割により得られた分割データを分割データテーブル２２に格納する。
【００３３】
また、データ分割部１２は、上記のＫ分割において、学習データの分割後のデータに含まれる係数の上限および係数の下限が所定の条件を満たすように分割してもよい。
【００３４】
具体的には、データ分割部１２は、Ｋ分割を実施した際に、各分割でデータに含まれる係数の上限および係数の下限が所定の条件を満たすか否かをチェックする。一例として、データ分割部１２は、学習データ（Ｘ）に含まれるｘについて、ｍａｘａ，ｂ，ｃ，ｄｘ（ｉ）ａｂｘ（ｉ）ｃｄ−ｍｉｎａ，ｂ，ｃ，ｄｘ（ｉ）ａｂｘ（ｉ）ｃｄがイジングモデルアニーリング部１３における上限ビット数整数値の範囲内（例えば１６ｂｉｔ整数値）に収まるか否かをチェックする。満たさない場合、データ分割部１２は、再度ランダムにＫ分割を実行し、条件を満たすまで（パラメータテーブル２０のｉｔｒｍａｘに設定された繰り返し回数を上限として）繰り返し行う。これにより、データ分割部１２は、イジングモデルアニーリング部１３における上限ビット数による整数値の範囲内に係数の上限および下限が収まるように、データを分割できる。
【００３５】
イジングモデルアニーリング部１３は、分割データテーブル２２に格納された各分割データにおいて、Ｔｒａｉｎデータに対してＬ０正則化の正則化処理を実行し、ゼロとなる要素を抽出する処理を行う処理部である。すなわち、イジングモデルアニーリング部１３は、正則化処理部の一例である。
【００３６】
具体的には、イジングモデルアニーリング部１３は、分割データテーブル２２に格納された各分割データを読み出し、パラメータテーブル２０におけるＴｒａｉｎデータ／Ｔｅｓｔデータの比率（ｑ）をもとに区分けしてＴｒａｉｎデータを取り出す。次いで、イジングモデルアニーリング部１３は、Ｔｒａｉｎデータに基づいて、式（１）のβを整数近似によるイジング形式で表したデータのアニーリングによりＬ０正則化の正則化処理を行い、ゼロとなる要素（βｊ＝０）を抽出する。次いで、イジングモデルアニーリング部１３は、抽出したゼロとなる要素（βｊ＝０）をスパース候補記録テーブル２３に格納する。
【００３７】
具体的には、イジングモデルアニーリング部１３は、式（１）をイジング形式で表すためのイジングｂｉｔとしてσ（ｊ）ｉ，τｊ∈｛０，１｝を用意する。ここで、σ（ｊ）ｉは、モデル（β）表現用のイジングｂｉｔである。また、τｊは、Ｌ０正則化項の表現用のイジングｂｉｔである。
【００３８】
次いで、イジングモデルアニーリング部１３は、βｊをｆ（σ（ｊ）０，…，σ（ｊ）ｌ）で２進展開による整数近似を行う。具体的には、イジングモデルアニーリング部１３は、式（３）に示すように、パラメータテーブル２０の数列（ａ０，…，ａｌ）を用いてモデル（β）を表現する。
【００３９】
【数３】
2020095397.tif 000005
【００４０】
なお、数列の具体例としては、次のようなＢｉｎａｒｙ、Ｕｎａｒｙ、Ｓｅｑｕｅｎｔｉａｌ、Ｆｉｂｏｎａｃｃｉがある。
Ｂｉｎａｒｙ：ａｉ＝２ｉ
Ｕｎａｒｙ：ａｉ≡１
Ｓｅｑｕｅｎｔｉａｌ：ａｉ＝ｉ
Ｆｉｂｏｎａｃｃｉ：ａｉ＝ａｉ−１＋ａｉ−２
【００４１】
また、イジングモデルアニーリング部１３は、“τｊ＝０”⇔“β＝０”を表現するために、Σｉ（１−τｊ）σ（ｊ）ｉを追加する。以上により、イジングモデルアニーリング部１３は、次の式（４）のように、イジング形式で式（１）を表現する。
【００４２】
【数４】
2020095397.tif 000006
【００４３】
次いで、イジングモデルアニーリング部１３は、Ｔｒａｉｎデータに基づいて式（４）のようにイジング形式で表現したデータについて、アニーリング処理（例えばデジタルアニーリング（ＤＡ））を実行して最適化する。次いで、イジングモデルアニーリング部１３は、最適化によってＬ０正則化した結果から、ゼロとなる要素（βｊ＝０）を抽出する。次いで、イジングモデルアニーリング部１３は、ゼロとなる要素（βｊ＝０）のｊをスパース候補記録テーブル２３に記録する。
【００４４】
スパース構造反映部１４は、学習データテーブル２１に格納された学習データについて、スパース候補記録テーブル２３に記録されたゼロとなる要素やスパース構造判定部１７における判定結果をもとに、スパース構造を反映する処理を行う処理部である。具体的には、スパース構造反映部１４は、ゼロとなる要素（モデルβ）をβｊ＝０とする。
【００４５】
重回帰部１５は、分割データテーブル２２に格納された分割データについて重回帰（ｍｉｎβ｜｜ｙ−Ｘβ｜｜２２）を行い、モデル（β）を推定する処理を行う処理部である。重回帰部１５は、重回帰の結果（モデル（β））を重回帰結果記録テーブル２４に格納する。
【００４６】
例えば、重回帰部１５は、分割データテーブル２２に格納された各分割データにおける、検証用のＴｅｓｔデータに対する重回帰を行い、この重回帰の結果（β）を重回帰結果記録テーブル２４に格納する。また、重回帰部１５は、スパース候補記録テーブル２３に記録されたゼロとなる要素（βｊ＝０）をもとにスパース構造反映部１４によりＴｅｓｔデータから０となる要素が除去されたデータ（ｊ∈Ｒを除去）に対する重回帰を行い、この重回帰の結果（β〜）を重回帰結果記録テーブル２４に格納する。
【００４７】
モデル候補判定部１６は、重回帰結果記録テーブル２４に格納された２つの重回帰の結果（β、β〜）の誤差比をもとに、β〜を候補モデルとするか否かの判定を行う処理部である。具体的には、モデル候補判定部１６は、分割された各分割データにおける、検証用のＴｅｓｔデータに対する重回帰の結果（β）と、Ｔｅｓｔデータから０となる要素を除いたデータに対する重回帰の結果（β〜）との誤差比について、次の式（５）が成り立つか否かを求める。そして、誤差比がパラメータテーブル２０における閾値（ｐ）以上である場合（式（５）が成り立つ場合）、モデル候補判定部１６は、β〜を候補モデルとし、候補モデルテーブル２５に格納する。すなわち、モデル候補判定部１６は、誤差比算出部の一例である。
【００４８】
【数５】
2020095397.tif 000007
【００４９】
スパース構造判定部１７は、候補モデルテーブル２５に格納された各候補モデル（β〜）をもとに、最終的なスパース構造を判定する処理を行う処理部である。具体的には、スパース構造判定部１７は、β〜ｊ＝０となったβ〜がパラメータテーブル２０における閾値（Ｎ）個以上ある要素を最終的なスパース構造と判定する。
【００５０】
スパース構造反映部１４では、スパース構造判定部１７の判定結果を受けて、最終的にスパース構造と判定された要素をゼロに置換したモデルを出力する。すなわち、スパース構造反映部１４は、出力部の一例である。
【００５１】
重回帰部１５では、スパース構造反映部１４により最終的にスパース構造と判定された要素をゼロに置換し、βｊ＝０となったｊを除いた重回帰で最終的なモデル（β）の具体的な値を求める。
【００５２】
出力部１８は、重回帰部１５による重回帰で求められた最終的なモデル（β）の具体的な値を処理結果として出力する処理部である。
【００５３】
［処理の流れ］
次に、最適化装置１が実行する最適化方法における処理の流れについて説明する。図２は、実施形態にかかる最適化装置１の動作例を示すフローチャートである。
【００５４】
図２に示すように、処理が開始されると、データ分割部１２は、目的変数（ｙ）と、説明変数（Ｘ）とを含む学習データをＫ分割する（Ｓ１）。
【００５５】
図３は、学習データの分割を説明する説明図である。図３に示すように、データ分割部１２は、学習データにおける目的変数（ｙ）と、説明変数（Ｘ）とについて、列をランダムに並び替えて同数のＫ個にＫ分割する。これにより、データ分割部１２は、（ｙ（１），Ｘ（１）），…，（ｙ（Ｋ），Ｘ（Ｋ））の分割データを得る。
【００５６】
図４は、動作主体とデータの流れを説明する説明図である。より具体的には、図４は、図２におけるＳ１〜Ｓ４に関連する動作主体とデータの流れを太字で示している。図４に示すように、データ分割部１２は、Ｓ１において、得られた分割データ（ｙ（１），Ｘ（１）），…，（ｙ（Ｋ），Ｘ（Ｋ））を分割データテーブル２２に格納する。
【００５７】
次いで、最適化装置１は、各分割データ（ｙ（ｉ），Ｘ（ｉ））について、Ｓ２〜Ｓ７のループ処理（Ｆｏｒ  ｉ＝１，…Ｋ、ｉ＜−ｉ＋１）を実行する。
【００５８】
ループ処理が開始されると、イジングモデルアニーリング部１３は、分割データ（ｙ（ｉ），Ｘ（ｉ））における、ｑ割のＴｒａｉｎデータ（（ｙ（ｉ），Ｘ（ｉ））Ｔｒａｉｎ）に対し、Ｌ０正則化を適用したアニーリング（ＤＡ：デジタルアニーリング）を実行する。
【００５９】
図５は、Ｔｒａｉｎデータに対するアニーリングを説明する説明図である。図５に示すように、分割データ（ｙ（ｉ），Ｘ（ｉ））について、パラメータテーブル２０におけるＴｒａｉｎデータ／Ｔｅｓｔデータの比率（ｑ）をもとに、Ｔｒａｉｎデータと、Ｔｅｓｔデータとに区分する。そして、イジングモデルアニーリング部１３は、Ｔｒａｉｎデータに対し、デジタルアニーリングを実施してゼロとなる要素（βｊ＝０）を抽出する。
【００６０】
次いで、イジングモデルアニーリング部１３は、アニーリングで求められたβの０化要素をスパース候補記録テーブル２３に記録する（Ｓ４）。具体的には、図４に示すように、イジングモデルアニーリング部１３は、“βｊ＝０”となったｊをスパース候補記録テーブル２３に記録する。
【００６１】
次いで、重回帰部１５は、分割データのＴｅｓｔデータ（（ｙ（ｉ），Ｘ（ｉ））Ｔｅｓｔ）に対し、０化したβ〜と、全要素のβそれぞれで重回帰を行う（Ｓ５）。
【００６２】
具体的には、重回帰部１５は、Ｓ５において、Ｔｅｓｔデータ（（ｙ（ｉ），Ｘ（ｉ））Ｔｅｓｔ）に対し、通常の重回帰（ｍｉｎβ｜｜ｙ−Ｘβ｜｜２２）を行い、モデル（β）を得る。
【００６３】
また、重回帰部１５は、Ｔｅｓｔデータ（（ｙ（ｉ），Ｘ（ｉ））Ｔｅｓｔ）において一部除去（ｊ∈Ｒを除去）した重回帰（ｍｉｎβ〜｜｜ｙ−Ｘβ〜｜｜２２）を行い、モデル（β〜）を得る。
【００６４】
図６は、ｊ∈Ｒを除去した重回帰を説明する説明図である。図６に示すように、ｊ∈Ｒを除去した重回帰では、Ｔｅｓｔデータ（（ｙ（ｉ），Ｘ（ｉ））Ｔｅｓｔ）において、イジングモデルアニーリング部１３により抽出されたゼロとなる要素（ｊ）を除いて重回帰を行う。
【００６５】
図７は、動作主体とデータの流れを説明する説明図である。より具体的には、図７は、図２におけるＳ５〜Ｓ６に関連する動作主体とデータの流れを太字で示している。
【００６６】
図７に示すように、重回帰部１５は、Ｓ５において、Ｔｅｓｔデータ（（ｙ（ｉ），Ｘ（ｉ））Ｔｅｓｔ）における通常の重回帰でモデル（β）を得る。また、重回帰部１５は、Ｔｅｓｔデータ（（ｙ（ｉ），Ｘ（ｉ））Ｔｅｓｔ）における一部除去（ｊ∈Ｒを除去）した重回帰でモデル（β〜）を得る。次いで、重回帰部１５は、得られたモデル（β、β〜）を重回帰結果記録テーブル２４に格納する。
【００６７】
次いで、モデル候補判定部１６は、重回帰結果記録テーブル２４に格納された２つの重回帰の結果（β、β〜）の誤差比をもとに、誤差比が閾値以上のβ〜をモデル候補として候補モデルテーブル２５に保持する（Ｓ６）。
【００６８】
最適化装置１では、上記のＳ２〜Ｓ７のループ処理を、各分割データに対して実施した後に、ループ処理を終了する。これにより、候補モデルテーブル２５には、各分割データについて、モデル候補判定部１６による判定の結果、モデル候補として残ったβ〜が格納される。
【００６９】
ループ処理に次いで、スパース構造判定部１７は、候補モデルテーブル２５に格納され、モデル候補に残ったβ〜に対し、０化された要素がパラメータテーブル２０における閾値（Ｎ）回以上の要素を最終的なスパース構造と判定する。スパース構造反映部１４では、スパース構造判定部１７の判定結果をもとに、最終的なスパース構造とするモデル、すなわちスパース構造と判定された要素を０化したモデルを出力する（Ｓ８）。
【００７０】
図８は、要素の０化を説明する説明図である。図８に示すように、β〜（１）〜β〜（Ｋ）において、β１では、０となったβ〜がｎ以上である。このようなβ１については、最終的にスパース構造と判定し、β１＝０とする。
【００７１】
次いで、重回帰部１５は、スパース構造反映部１４により最終的にスパース構造と判定された要素を０化し、βｊ＝０となったｊの要素を除いた重回帰で最終的なモデル（β）の具体的な値を求める。次いで、出力部１８は、重回帰部１５による重回帰で求められた最終的なモデル（β）の値を処理結果として出力する（Ｓ９）。
【００７２】
図９は、動作主体とデータの流れを説明する説明図である。より具体的には、図９は、図２におけるＳ８〜Ｓ９に関連する動作主体とデータの流れを太字で示している。図９に示すように、重回帰部１５は、学習データテーブル２１の学習データ（ｙ，Ｘ）について、スパース構造と判定された要素を０化（一部除去）した重回帰で最終的なモデル（β）の具体的な値を求める。次いで、出力部１８では、重回帰部１５により得られたβの値を出力する。
【００７３】
［効果］
以上のように、最適化装置１は、データ分割部１２と、イジングモデルアニーリング部１３と、モデル候補判定部１６と、スパース構造反映部１４とを有する。データ分割部１２は、入力部１０より入力された、目的変数と説明変数とを含む学習データを複数の分割データに分割する。イジングモデルアニーリング部１３は、分割された各分割データにおいて、学習データの構造抽出に用いるためのＴｒａｉｎデータ（第１のデータ）に対してＬ０正則化の正則化処理を実行し、ゼロとなる要素（第１の要素）を抽出する。具体的には、イジングモデルアニーリング部１３は、Ｔｒａｉｎデータに基づいてβを整数近似によるイジング形式で表したデータのアニーリングによりＬ０正則化の正則化処理を行い、βｊ＝０となる要素を抽出する。
【００７４】
モデル候補判定部１６は、分割された各分割データにおいて、Ｔｅｓｔデータ（第２のデータ）に対する重回帰の結果と、Ｔｅｓｔデータからβｊ＝０となる要素を除いたデータに対する重回帰の結果との誤差比が所定値（ｐ）以上であるモデル（β〜）を候補モデルとして抽出する。スパース構造反映部１４は、抽出された各候補モデル（β〜）について、ゼロが所定回数（Ｎ回）以上の要素をゼロに置換したモデルを出力する。
【００７５】
このように、最適化装置１は、Ｌ１ノルムに緩和することなく、Ｌ０正則化の正則化処理によりデータの偏りを回避したスパース性を抽出でき、スパース推定を精度よく行うことができる。また、最適化装置１は、Ｔｒａｉｎデータに基づいてイジング形式で表したデータのアニーリングにより、ダイレクトなＬ０正則化を現実的な速度で最適化することができる。
【００７６】
また、最適化装置１のビット数計算部１１は、イジング形式で表す際の２進展開に用いる数列数をｌとし、アニーリングの上限ビット数をＮｂとし、学習データの列数をｎとした場合に、ｎ（ｌ＋２）≦Ｎｂを満たす最大の整数であるｌを２進展開に用いる数列数とする。ｌは大きいほど２進展開における整数近似の近似精度が良くなる。したがって、最適化装置１は、アニーリングの上限ビット数（Ｎｂ）により近づけるようなｌでの整数近似を行うことで、より高精度なアニーリングを行うことが可能となる。
【００７７】
また、データ分割部１２は、学習データの分割後のデータに含まれる係数の上限および係数の下限が所定の条件を満たす分割データにＫ分割する。学習データの分割後のデータ（ｘ）について、イジングモデルアニーリング部１３におけるアニーリングでＬ０正則化する際に、係数の上限／下限は、ｍａｘａ，ｂ，ｃ，ｄｘ（ｉ）ａｂｘ（ｉ）ｃｄ／ｍｉｎａ，ｂ，ｃ，ｄｘ（ｉ）ａｂｘ（ｉ）ｃｄで与えられる。そして、これら係数は、イジングモデルアニーリング部１３における上限ビット数（Ｎｂ：例えば１６ｂｉｔ）整数値に収まることを要する。よって、データ分割部１２は、係数の上限および係数の下限が所定の条件、具体的にはｍａｘａ，ｂ，ｃ，ｄｘ（ｉ）ａｂｘ（ｉ）ｃｄ−ｍｉｎａ，ｂ，ｃ，ｄｘ（ｉ）ａｂｘ（ｉ）ｃｄが１６ｂｉｔ整数値の範囲内に収まるように分割することで、イジングモデルアニーリング部１３における上限ビット数による整数値の範囲内でアニーリングを行うことができる。
【００７８】
［その他］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、入力部１０、ビット数計算部１１、データ分割部１２、イジングモデルアニーリング部１３、スパース構造反映部１４、重回帰部１５、モデル候補判定部１６、スパース構造判定部１７および出力部１８の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ（Central  Processing  Unit）及び該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７９】
［最適化プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、最適化プログラムを実行するコンピュータシステムの一例を説明する。図１０は、最適化プログラムを実行するコンピュータの構成の一例を示す図である。
【００８０】
図１０に示すように、コンピュータ４００は、ＣＰＵ４１０、ＨＤＤ（Hard  Disk  Drive）４２０、ＲＡＭ（Random  Access  Memory）４４０を有する。これら４００〜４４０の各部は、バス５００を介して接続される。
【００８１】
ＨＤＤ４２０には入力部１０、ビット数計算部１１、データ分割部１２、イジングモデルアニーリング部１３、スパース構造反映部１４、重回帰部１５、モデル候補判定部１６、スパース構造判定部１７および出力部１８と同様の機能を発揮する最適化プログラム４２０Ａが予め記憶される。なお、最適化プログラム４２０Ａについては、適宜分離してもよい。
【００８２】
また、ＨＤＤ４２０は、各種情報を記憶する。例えば、ＨＤＤ４２０は、ＯＳや各種プログラム、パラメータテーブル２０、学習データテーブル２１、分割データテーブル２２、スパース候補記録テーブル２３、重回帰結果記録テーブル２４および候補モデルテーブル２５に関する各種情報を記憶する。
【００８３】
そして、ＣＰＵ４１０が、最適化プログラム４２０ＡをＨＤＤ４２０から読み出して実行することで、上記の実施形態の各処理部を実行するプロセスを動作させる。すなわち、このプロセスは、入力部１０、ビット数計算部１１、データ分割部１２、イジングモデルアニーリング部１３、スパース構造反映部１４、重回帰部１５、モデル候補判定部１６、スパース構造判定部１７および出力部１８と同様の動作を実行する。
【００８４】
なお、上記した最適化プログラム４２０Ａについては、例えば、コンピュータ４００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させてもよい。そして、コンピュータ４００がこれらから最適化プログラム４２０Ａを読み出して実行するようにしてもよい。
【００８５】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ４００に接続される「他のコンピュータ（又はサーバ）」などに最適化プログラム４２０Ａを記憶させておく。そして、コンピュータ４００がこれらから最適化プログラム４２０Ａを読み出して実行するようにしてもよい。
【００８６】
以上の実施形態に関し、さらに以下の付記を開示する。
【００８７】
（付記１）目的変数と説明変数とを含む学習データを複数の分割データに分割する分割部と、
分割された各分割データにおいて、前記学習データの構造抽出に用いるための第１のデータに対して正則化処理を実行し、ゼロとなる第１の要素を抽出する正則化処理部と、
分割された各分割データのテストデータにおいて、前記学習データの誤差比の算出に用いるための第２のデータに対し、前記第２のデータに対する重回帰を行なった結果である第１の重回帰と、前記第２のデータから前記第１の要素を除いた第３のデータに対する重回帰を行なった結果である第２の重回帰との誤差比が所定値以上であるモデルを候補モデルとして抽出する誤差比算出部と、
抽出された各候補モデルについて、ゼロが所定回数以上の要素をゼロに置換したモデルを出力する出力部と、
を有することを特徴とする最適化装置。
【００８８】
（付記２）前記正則化処理部は、前記第１のデータに基づいてイジング形式で表したデータのアニーリングにより前記正則化処理を行う、
ことを特徴とする付記１に記載の最適化装置。
【００８９】
（付記３）前記イジング形式で表す際の２進展開に用いる数列数をｌとし、前記アニーリングの上限ビット数をＮｂとし、前記学習データの列数をｎとした場合に、ｎ（ｌ＋２）≦Ｎｂを満たす最大の整数であるｌを前記２進展開に用いる数列数とする計算部をさらに有する、
ことを特徴とする付記２に記載の最適化装置。
【００９０】
（付記４）前記分割部は、前記学習データの分割後のデータに含まれる係数の上限および係数の下限が所定の条件を満たす前記分割データに分割する、
ことを特徴とする付記１乃至３のいずれか一に記載の最適化装置。
【００９１】
（付記５）目的変数と説明変数とを含む学習データを複数の分割データに分割し、
分割された各分割データにおいて、前記学習データの構造抽出に用いるための第１のデータに対して正則化処理を実行し、ゼロとなる第１の要素を抽出し、
分割された各分割データのテストデータにおいて、前記学習データの誤差比の算出に用いるための第２のデータに対し、前記第２のデータに対する重回帰を行なった結果である第１の重回帰と、前記第２のデータから前記第１の要素を除いた第３のデータに対する重回帰を行なった結果である第２の重回帰との誤差比が所定値以上であるモデルを候補モデルとして抽出し、
抽出された各候補モデルについて、ゼロが所定回数以上の要素をゼロに置換したモデルを出力する、
処理をコンピュータが実行することを特徴とする最適化方法。
【００９２】
（付記６）前記第１の要素を抽出する処理は、前記第１のデータに基づいてイジング形式で表したデータのアニーリングにより前記正則化処理を行う、
ことを特徴とする付記５に記載の最適化方法。
【００９３】
（付記７）前記イジング形式で表す際の２進展開に用いる数列数をｌとし、前記アニーリングの上限ビット数をＮｂとし、前記学習データの列数をｎとした場合に、ｎ（ｌ＋２）≦Ｎｂを満たす最大の整数であるｌを前記２進展開に用いる数列数とする処理をさらにコンピュータが実行する、
ことを特徴とする付記６に記載の最適化方法。
【００９４】
（付記８）前記分割する処理は、前記学習データの分割後のデータに含まれる係数の上限および係数の下限が所定の条件を満たす前記分割データに分割する、
ことを特徴とする付記５乃至７のいずれか一に記載の最適化方法。
【００９５】
（付記９）目的変数と説明変数とを含む学習データを複数の分割データに分割し、
分割された各分割データにおいて、前記学習データの構造抽出に用いるための第１のデータに対して正則化処理を実行し、ゼロとなる第１の要素を抽出し、
分割された各分割データのテストデータにおいて、前記学習データの誤差比の算出に用いるための第２のデータに対し、前記第２のデータに対する重回帰を行なった結果である第１の重回帰と、前記第２のデータから前記第１の要素を除いた第３のデータに対する重回帰を行なった結果である第２の重回帰との誤差比が所定値以上であるモデルを候補モデルとして抽出し、
抽出された各候補モデルについて、ゼロが所定回数以上の要素をゼロに置換したモデルを出力する、
処理をコンピュータに実行させることを特徴とする最適化プログラム。
【００９６】
（付記１０）前記第１の要素を抽出する処理は、前記第１のデータに基づいてイジング形式で表したデータのアニーリングにより前記正則化処理を行う、
ことを特徴とする付記９に記載の最適化プログラム。
【００９７】
（付記１１）前記イジング形式で表す際の２進展開に用いる数列数をｌとし、前記アニーリングの上限ビット数をＮｂとし、前記学習データの列数をｎとした場合に、ｎ（ｌ＋２）≦Ｎｂを満たす最大の整数であるｌを前記２進展開に用いる数列数とする処理をさらにコンピュータに実行させる、
ことを特徴とする付記１０に記載の最適化プログラム。
【００９８】
（付記１２）前記分割する処理は、前記学習データの分割後のデータに含まれる係数の上限および係数の下限が所定の条件を満たす前記分割データに分割する、
ことを特徴とする付記９乃至１１のいずれか一に記載の最適化プログラム。
【符号の説明】
【００９９】
１…最適化装置
１０…入力部
１１…ビット数計算部
１２…データ分割部
１３…イジングモデルアニーリング部
１４…スパース構造反映部
１５…重回帰部
１６…モデル候補判定部
１７…スパース構造判定部
１８…出力部
２０…パラメータテーブル
２１…学習データテーブル
２２…分割データテーブル
２３…スパース候補記録テーブル
２４…重回帰結果記録テーブル
２５…候補モデルテーブル
４００…コンピュータ
４１０…ＣＰＵ
４２０…ＨＤＤ
４２０Ａ…最適化プログラム
４４０…ＲＡＭ
５００…バス
Ｃ１、Ｃ２…ケース
【図１】
2020095397.tif 000008
【図２】
2020095397.tif 000009
【図３】
2020095397.tif 000010
【図４】
2020095397.tif 000011
【図５】
2020095397.tif 000012
【図６】
2020095397.tif 000013
【図７】
2020095397.tif 000014
【図８】
2020095397.tif 000015
【図９】
2020095397.tif 000016
【図１０】
2020095397.tif 000017
【図１１】
2020095397.tif 000018