質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

1回答

926閲覧

遺伝的アルゴリズムのパラメーターに関して

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2018/08/03 04:07

Rubyで遺伝的アルゴリズムのプログラミングを書きましたが、上手く最適解にたどり着きません。
プログラミング自体は問題なく動作しているのですが、遺伝的アルゴリズム自身のパラメーターはどのような合理的理由で決めれば良いのでしょうか?

変動可能な遺伝的アルゴリズムのパラメーターは、
1.個体数 (1世代で作り出す数)
2.交叉個数(世代の中で適応度が優れた個体3つの中から、2つを選び一様交叉する個数)
3.突然変異個数(2で交叉した個体のパラメーターをランダムに1つ選び、ランダムに上下させる)
4.世代数(何回ループするか)

それぞれ1〜4まで、どのような判断で遺伝的アルゴリズムのパラメーターを決めれば良いのでしょうか?

最適なパラメーターを決定するために、遺伝的アルゴリズムを使っているのに、遺伝的アルゴリズム自身のパラメーターがわからないという状況です。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

本質的にパラメータといえるのは2と3です。

1は多いほど有利です。4はある程度収束するまで回せば良いです。

2の交叉は、挙動に直結しますから色々やってチューニングしてみることをおすすめします。

3の突然変異は、多めにすると局所最適解に引っかかりづらくなりますが、多すぎるとぜんぜん収束しなくなります。

投稿2018/08/03 04:35

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/05 12:46

回答ありがとうございます。 3の突然変異ですが、いくつかの参考資料を見る限り、1%程が良いとされているようですが、いまのプログラムでは世代の30%程にしています。にもかかわらず、局所最適解に収束してしまいます。 また、2の交叉ですが、いまはエリート主義で結果が良かったエリートの3つの中から、2つを選び一様交叉していますが、このやり方は間違っていますでしょうか?
hayataka2049

2018/08/05 12:56 編集

エリート主義だときついのかもしれませんね エリート主義でもtop10%くらいは候補にしてみるとか、ルーレット方式などに切り替えるといったアプローチが有効かもしれません あと、必ず大域最適解が得られるというものではないので、その点は気にしてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問