プロが教える店舗&オフィスのセキュリティ対策術


こちらの動画を参照して、進化計算アルゴリズムの一つであるGPを用いて関数を同定したいです。
GPではランダムに遺伝子(数式を木構造で表したもの)を生成し、適応度と呼ばれるものが最小となる関数を探索する手法ですが、複数個の特定のデータ(xi, yi)は通るという制約を設けたうえで、残りのデータを使用し、適応度を最小とするような関数を探索することは可能なのでしょうか。

質問者からの補足コメント

  • ご回答ありがとうございます。
    アドバイスいただいた通り特定の点における残差を罰則項のようなものとして適合度関数を修正した結果、以前よりも良い結果が得られた気がします。

    追加の質問になってしまい申し訳ないのですが、GPで関数を生成した場合、パラメータの数はどのようにして扱うのでしょうか。
    例えば、上記の方法で適合度関数を定義し、GPで関数を生成するとしても様々な結果が得られると思います。AICなどを計算する際に、パラメータの数を必要としますが、このように毎度得られる関数が異なるものではどのようにしてパラメータの数をカウントしますか。最大世代数、終端、非終端記号などのハイパーパラメータから求めることなどできるのでしょうか。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/10/11 11:39

A 回答 (2件)

要は適合度の作り方です。


通したい特定点を通らないときに大きなペナルティーを与えて適合度が非常に大きくなるようにします。(適合度が最小の関数を選択する場合)
# 適合度という名称だと最大化したくなりますけど

例えば必ず通したい特定点のインデックス集合S={i|(xi,yi)}、それ以外のインデックス集合X={j|(xj,yj)}として適合度(解離度?)を
 T(f)=M(Σ(i∈S)(yi-f(xi))^2)+Σ(j∈X)(yj-f(xj))^2
とします。定数Mを10^6とか大きい数値にすると、Sの点を通らないfは評価数値が大きくなるので最小化の最適解としては選ばれにくくなります。

GPでは制約を確実に守らせるハード制約は構成できないので、基本的には上記の戦略となります。
この回答への補足あり
    • good
    • 0

うーん、一部の点を通ることを強制した時点でAICでパラメータ数を使う前提が成り立たない気がするので、AICの導出過程に戻って情報量規準の作り直しをした方が良いかな。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!