遺伝的アルゴリズムなどのメタヒューリスティクス(最適化アルゴリズム)の特徴や使用する際の注意点

分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。

x の選択、サンプルの生成、分子構造の生成、ハイパーパラメータの最適化、モデルの逆解析などに、遺伝的アルゴリズムなどのメタヒューリスティクスが用いられます。

GAPLS, GASVR でモデルの推定性能がよくなるように説明変数の選択をしよう![Pythonコードあり]
遺伝的アルゴリズム (Genetic Algorithm, GA) を使って説明変数を選択する話です。2つの手法である Genetic Algorithm-based Partial Least Squares (GAPLS) Geneti...
[Pythonコードあり] スペクトル解析における波長領域や時系列データ解析におけるプロセス変数とその時間遅れを選択する方法
遺伝的アルゴリズム (Genetic Algorithm, GA) を使って回帰モデルの推定性能がよくなるように、説明変数 (記述子・特徴量・入力変数) を選択する手法を以前解説しました。 今回は、スペクトル解析における波長選択と、時系列デ...
GAPLSやGASVRだけでなくGA+回帰分析手法で変数選択・特徴量選択
分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y =...
機械学習モデルを大域的・局所的に解釈する方法
分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y =...
(適応的)実験計画法において潜在的な実験候補数が非常に膨大な時にはどうすれば良いか
分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y =...
物性や活性の推定値が大きくなるように、メインの骨格と側鎖を遺伝的アルゴリズムで最適化して、新たな化学構造を生成するPythonプログラムを公開します
以前に、Structure Generator based on R-Group (SGRG) という化学構造を生成する Python プログラムを公開しました。 メインの骨格を一つに設定して、その自由結合手に結合する側鎖を、フラグメントの...
GMR と GA を用いた逆解析の結果の扱い方
分子設計・材料設計・プロセス設計において分子記述子・合成条件・製造条件・プロセス条件などの特徴量 x と物性・活性・特性などの目的変数 y との間で数理モデル y = f(x) を構築し、そのモデルを活用して y の目標値を達成するための ...

 

とても便利な方法で、私もよく活用していますが、使い方や出てきた結果の解釈の仕方を間違うと、誤った結論を導いてしまう恐れがありますので、ここでは遺伝的アルゴリズムなどのメタヒューリスティクスの特徴や使用する際の注意点について説明します。

 

結果が収束しているか確認する

例えば遺伝的アルゴリズムでは、基本的に世代を重ねるごとに適合度が上がっていき、いずれ収束します。世代数が十分でないと収束しないまま終了してしまう、すなわち、まだ適合度が向上する余地があるにもかかわらず、中途半端な状態で終了してしまいます。計算が終了したら、結果が収束しているか確認しましょう。

 

計算するごとに結果が変わる

ちゃんと収束していても、改めて、初期値や乱数のシードが変わった後に計算すると、収束した結果が変わることがあります。場合によっては、全く同じ結果が出ることがほとんどないこともあります。これはメタヒューリスティクスを活用した最適化の特徴として仕方がありません。

例えば、特徴量選択・変数選択の時に、ある x と相関の高い x が代わりに選ばれてしまったり、目的関数を計算する際のクロスバリデーションで評価する際の分割の仕方で結果が変わったり、初期値によって収束する結果が変わったりします。

 

目的関数を最大化、もしくは最小化しているに過ぎない

遺伝的アルゴリズムなどのメタヒューリスティクスでは、目的関数を向上させることにおいて非常に優秀です。ただし、優秀だからこそ、本来の解析の目的と、目的関数を最大化する方向とがズレていると、間違った方向に最適化されてしまいます。例えば、x の選択をする際に、回帰分析におけるクロスバリデーション後の r2 乗を目的関数とすると、他の方法と比較して、クロスバリエーション後の r2 乗の値は大きくなることが多いです。ただし、回帰分析の本来の目的は外部データに対する予測性能を上げることであり、クロスバリデーション後の r2 が高いからと言って、その外部データに対する予測性能が高いとは限りません。もちろん、近いところにはあると思いますが、クロスバリデーション後の r2 乗を上げれば上げるほど、外部データに対する予測精度が上がるわけではなく、クロスバリデーションの結果だけが良くなるといった可能性もあります。

遺伝的アルゴリズムの実行結果は変化しやすく、またオーバーフィットしやすい、その対処法とは?
遺伝的アルゴリズム (Genetic Algorithm, GA) などの最適化アルゴリズムを駆使して、何らかの問題における最適解を探索することが行われます。例えば変数選択もしくは特徴量選択において GA を用いるときには、GA の染色体で...

 

目的関数を適切に設定することはもちろんのこと、目的関数と本来の目的とが完全に一致しているわけではない時には、繰り返し計算をする中で、上で一つ前に述べたように結果が変わりますが、その中で目的関数が最大のものを選択するのではなく、複数の結果を一つ一つ眺めて全体で議論する方が良いでしょう。

 

以上です。これらの特徴や注意点を踏まえて、是非メタヒューリスティクスを活用していただければと思います。

 

以上です。

質問やコメントなどありましたら、X, facebook, メールなどでご連絡いただけるとうれしいです。

タイトルとURLをコピーしました