遺伝的な手法の様々な問題とその解決テクニック
実用的な遺伝的アルゴリズムのテクニック
minmax法: スケーリング手法に主に使われる.例えば,学習後半で最適なfitnessを選択するためにこれが使われる.
roulette手法: 交叉や突然変異によるfitnessの変動が著しい場合,このトーナメント選択手法を用いると効果的である.
条件付きトーナメント選択: 個体の情報量(もしくはハミング距離)を用いて交叉や突然変異,選択を行うこと.
幾つかの遺伝的な学習における問題.
(1) ヒッチハイキングの問題:二点交叉,またはそれに準ずる交叉であると著しく学習が遅くなる現象.
解決策:
①一様交叉を使う
②スワップミューテーション,フリップビット変異を利用する.
どちらも,世代単位で局所的な位置に交換範囲を絞っているのでヒッチハイキングの問題が発生しがちなのであれば,逆により高い効果を発揮する.
注] 一点交叉は現在では非常に非効率なため,利用されていない.二点交叉もスキーマ定理によって成長比率が悪いことが分かる.
(2) トラップ問題: 大域的最適解が孤立している. (trap(u) = k-1-u (u!=k), k(u=k))
解決策:
① GA-NS
② アンサンブリング
③ 多目的最適化手法の応用
これらはすべて総合的な判断を段階的に行っていく手法となっている.
(3)交叉競合: 交叉が大域的最適解を見つけるのに十分必要な選択圧の調整がされておらず,選択圧が交叉のその効果を打ち消してしまうほどに強い状態のこと.
解決策:
① GA + ESを用いる. (最適な個体のバリエーションを増やす.)
② 絶対的に選択圧を小さくすること. (多種多様なトレードオフを考えているにもかかわらず,重要なポイントになってくる.) エリート主義を少なくとも条件付きにする.
③ 真の多様性の為にできることを考える. (個体を保全するだけにとどまらない考えができる.)
注] 基本的に交叉の割合は0.2前後に保たれているが,その比率は様々な問題で変化することはない. 適切な集団サイズなどが決定すればそれは正確に決定できる.
(4):勾配消失
Genetic ProgrammingではMLと同じく,より葉に近い部分のノードの活性化が反映されなくなる可能性が高くなる.
解決策:
①: 突然変異を下層で精度よく値が伝えられるようなアルゴリズムにする.
②: fitnessをスケーリングする.
③: dropoutを取り入れる.
④: 木を多段階にする.
(5): ハイパーパラメーターの調整が面倒である.
問題に応じて最適なパラメータの決定やその調整を考える必要がある.
解決策:
①: ESを用いたハイパーパラメーターの決定をする.
②: メタヒューリスティックなアルゴリズムでハイパーパラメーターの調整をする.
以上はすべて完全に私個人の見解ですのですべてをそのまま鵜呑みにしないでください.これが間違っていると主張してくださる研究者やその他の関連分野の方がいらっしゃればコメントしてください.