10kai
Summary
TLDRこのビデオスクリプトでは、動的計画法と遺伝的アルゴリズムについて解説しています。動的計画法は、変数が取る値の組み合わせを効率的に最小化するための方法で、特に2変数関数で表せる場合に適しています。スクリプトでは、具体的な問題設定とアルゴリズムのステップを説明し、最短経路探索の例を通じて理解を深めています。一方、遺伝的アルゴリズムは、個体とその評価に基づいて最適解を探索する手法で、交差、突然変異、および個体選択のメカニズムを通じて進化させます。実数値GAを使用した身体運動生成の研究も紹介され、最適解へのアプローチが示されています。
Takeaways
- 📚 このスクリプトでは、動的計画法と遺伝的アルゴリズムについて紹介しています。
- 🔍 動的計画法は、変数が取る値の組み合わせを最小化または最大化する問題を効率的に解決する手法です。
- 🔢 特に、関数が2変数関数で表せる場合、動的計画法は非常に効率的な解決策を提供します。
- 💡 動的計画法のアルゴリズムでは、順に各変数の最適値を求め、最終的な最適解を導きます。
- 🔄 神経カエルモデルは、複雑な最適化問題を解決する際に有用で、例えば巡回セールスマン問題を解決するのに使われます。
- 🧠 神経カエルモデルは、情報表現をニューロンのネットワークとして捉え、学習を通じて最適解を見つける。
- 🤖 遺伝的アルゴリズムは、自然選択や遺伝子突变などの生物学的メカニズムを模倣して最適解を探索する。
- 🌐 遺伝的アルゴリズムでは、個体群を生成し、評価に基づいて最適な個体を選択して次の世代へと進化させます。
- 🔬 実数値GAは、2進数ではなく実数値を用いて個体を表現し、連続的な問題に適した最適化手法として活用できます。
- 🏆 動画では、GAを用いた実験結果が紹介されており、解析的手法と比較して高い一致性が示されています。
- 🔍 最後に、スクリプトは興味のある読者に、更に深く学ぶために書籍やインターネットを活用するよう促しています。
Q & A
動的計画法とはどのようなアルゴリズムですか?
-動的計画法は、変数が特定の値を取る関数を最適化する問題を解決するためのアルゴリズムです。特に、関数が2変数関数で表せる場合に効率的に働く方法です。このアルゴリズムでは、各変数の値を順に決定し、前の変数の値に基づいて後の変数の最適な値を求めます。
動的計画法で使用される関数Jの2変数関数表現とは何を意味しますか?
-関数Jの2変数関数表現は、関数Jを2つの変数のみで表現することができることを示します。例えば、H1はx1とx2の関数、H2はx2とx3の関数などと定義されます。これにより、動的計画法を適用し、各変数の組み合わせを効率的に評価することができます。
動的計画法のアルゴリズムの基本的なステップを教えてください。
-動的計画法の基本的なステップは以下の通りです。まず、F1(x1)のような1変数関数の値を求めます。次に、x2の値を固定して、F1+H1のような2変数関数の最大値を求め、その最適なx1の値を記録します。このプロセスをすべてのx2の値に対して繰り返します。最終的には、FNとDN-1の値を求め、最適解を決定します。
最短経路探索問題で動的計画法を使用する場合、どのように関数Jの値を評価しますか?
-最短経路探索問題では、関数Jの値がスコアとして機能し、その値が最大になるような変数x1, x2, ..., xnの組み合わせが最短経路を表します。動的計画法を用いて、各変数の値を順に決定し、最終的なFNの値を最大化することが目標です。
神経カエルモデルとはどのようなものですか?
-神経カエルモデルは、神経回路のような構造を持つネットワークモデルです。各ユニットが相互に結合し、特定の問題を解決するために使用されます。例えば、巡回セールスマン問題(TSP)のような最適経路探索問題や、人の運動を生成する計算モデルなどで応用されています。
遺伝的アルゴリズム(GA)とはどのようなアルゴリズムですか?
-遺伝的アルゴリズムは、自然選択や遺伝的な特性を模倣した最適化アルゴリズムです。個体を表現し、それらを親から子へ伝承することで、問題の最適解を探索します。交差(クロモソームの入れ替え)や突然変異(遺伝子の反転)などの操作を行い、最適な解を生成します。
遺伝的アルゴリズムで使用される「交差」と「突然変異」は何を意味しますか?
-交差は、2つの親個体から新しい子個体を生成するプロセスで、親個体の遺伝子の一部を入れ替えます。突然変異は、個体の特定の遺伝子の値をランダムに反転させることで、遺伝子の多様性を増加させます。これにより、新たな解が発見される可能性があります。
実数値GAとはどのようなアルゴリズムですか?
-実数値GAは、遺伝的アルゴリズムの一種で、個体の表現に実数値を使用します。これにより、連続的な問題空間を扱うことができます。交差や突然変異の操作は、実数値の平均やランダムな変更を意味します。これにより、滑らかな最適化が行われます。
遺伝的アルゴリズムでの個体の評価値とは何ですか?
-個体の評価値は、その個体が問題の解としてどれほど適しているかを示す指標です。評価値が高い個体ほど、問題に対するより良い解を表す可能性があります。遺伝的アルゴリズムでは、評価値に基づいて親個体を選択し、次の世代を生成します。
遺伝的アルゴリズムで使用される「エリート保存戦略」と「ルーレット戦略」とは何ですか?
-エリート保存戦略は、評価値が高い個体を優先的に選択して親個体にする戦略です。ルーレット戦略は、評価値が高い個体が選ばれる確率を高くする一方で、評価値の低い個体も一定の確率で選択されることを意味します。これにより、多様な解を探索することができます。
Outlines
😀 動的計画法の基本とアルゴリズム
動的計画法について説明し、変数関数を最適化する問題を解決する方法を紹介。N変数関数fを最大化し、各変数XiがM個の値を取る場合の計算方法を説明。動的計画法は2変数関数で表せる場合に効率的で、F1X1からFNXNまでの値を求め、最適解を決定するプロセスを詳細に説明。具体例として最短経路探索問題を用いて、アルゴリズムの適用方法を解説。
😉 動的計画法の具体例:最短経路問題
最短経路問題を例に、動的計画法の適用方法を詳細に説明。4変数関数Jの最適値を求める問題を設定し、F1からF4までの値を計算する方法を紹介。具体的な計算例を用いて、各変数の値を決定し、最終的な最短経路を導くプロセスを解説。
🤔 神経カエルモデルによる最適化
神経カエルモデルを使用した最適化について触れる。特に巡回セールスマン問題(TSP)を例に、神経回路モデルで問題を解決する方法を紹介。都市間の移動距離を最小化する目的関数を使用し、神経カエルモデルの学習プロセスを説明。また、人の運動を生成する神経カエルモデルについても簡単に触れる。
🤖 神経カエルモデルの応用と構造
神経カエルモデルの応用とその構造について詳しく説明。努力変化最小モデルに基づく人の運動生成モデルを紹介し、そのネットワークの設定方法と重み調整の重要性を強調。さらに、身体の準モデルや逆モデルを使用した運動生成についても触れる。
🔬 遺伝的アルゴリズム(GA)の概要
遺伝的アルゴリズム(GA)について概要を説明。個体を2進数で表現し、親個体から子個体を生成するプロセスを紹介。交差(クロモソームの入れ替え)と突然変異(個体の部分反転)を使用して多様な子個体を生み出す方法を解説。評価値に基づいて最適解を求めるプロセスについても説明。
🧬 実数値GAによる運動生成
実数値GAを使用して身体の運動を生成する方法について詳細に説明。実数値ベクトルを使用して個体を表現し、スプライン補間を用いて運動を生成するプロセスを紹介。交差や突然変異の方法をカスタマイズし、滑らかな運動軌道を生成する方法を解説。
🏆 実数値GAの結果と応用
実数値GAを使用して最適解を求めた結果を紹介。運動生成の例として、解析的に求めた最適運動とGAで生成された運動の一致性を比較。経由点を通る運動の生成についても触れる。最終的に、GAを使用した最適化の有効性を示す。
Mindmap
Keywords
💡動的計画法
💡ジェネティックアルゴリズム
💡2変数関数
💡最適化問題
💡巡回セールスマン問題
💡神経カエルモデル
💡実数値GA
💡スプライン補間
💡評価値
💡交差(クロスオーバー)
💡突然変異
💡エリート保存戦略
💡ルーレット戦略
Highlights
動的計画法とジェネティックアルゴリズムについて説明する
動的計画法は変数関数の最適化問題を効率的に解く方法
関数が2変数関数で表せる場合に動的計画法が有効
問題設定ではN変数関数fを最大化し、各変数Xiが有限値を取る場合を考える
動的計画法のアルゴリズムは、各変数について順に最適値を求める
具体例として最短経路探索問題を動的計画法で解く方法を説明
関数Jの最大化問題で、各変数の最適値が最短経路を決定
動的計画法の計算過程はゴールから逆向きに探索することで最適解を求める
神経カエルモデルによる最適化問題の解決方法を紹介
巡回セールスマン問題を神経カエルモデルで解く方法
神経カエルモデルは階層的ではなく、各ユニットが相互に結合
身体の運動を生成する神経カエルモデルの提案
努力変化最小モデルに基づく人の運動生成モデルの紹介
遺伝的アルゴリズム(GA)の概要とその適用範囲
遺伝的アルゴリズムでは個体を2進数で表現し、評価値に基づいて最適解を求める
実数値GAを使用して身体の運動を生成する研究の紹介
実数値GAでは個体を実数値ベクトルで表現し、運動をスプライン曲線で近似
実数値GAの親個体生成方法と評価値の計算方法の説明
遺伝的アルゴリズムの選択戦略(エリート保存戦略、ルーレット戦略)の紹介
実数値GAを使用した運動生成の結果と解析的解との比較
Transcripts
と皆さんこんにちは今回は動的計画法と
ジェネティックアルゴリズムについてお話
をしようと思いますでまず動的計画法に
ついてお話をし
ます変数が産値を取る関数を最小化すると
いう場合にはその産値の全ての組み合わせ
についてあの調べないといけないという
ことがありますでまですからま非常にその
えま大変計算量ということになるんです
けどもえしかしですねま関数がえっと2
変数関数の場で表せる場合には非常にこ
効率よく特方法が存在しますでまその1つ
の方法が動的計画法ということになり
ますでまず問題設定について説明をします
でえN変数X1からXNまでのN変数関数
fというものを考えてこのN変数関数fを
最大にするところのX1からXNまでのえ
各値を求める問題を考えますでここでえ
変数Xiはえま利3値を取ってまMI個の
算値つまりA1からAmiのMi個の算値
を取ると場合を考えますでえ関数Jがです
ねこの式でえ与えられるものとしてでこの
関数Jが2変数関数の場で表されるという
風に考えますでつまりこの式で書いてある
ようにH1っていうのはx1とX2の関数
になってますしえH2っていうのはX2と
X3の関数になってますでこのようにえ2
変数関数の場で表される場合を考えると
いうわけ
ですえそれでは動的計画法のアルゴリズム
について説明をしますでまず
F1X1っていうののはX1のみの関数
ですからえまX1の取る値に対するえF1
の値はすぐに求まるということになります
でえ次にですねえあるX2の値に固定をし
てでその時のX1の取りうる全ての値に
関してF1+H1というものを
めてでそのえ最大の値をF
2x2に代入をしてでえこの時最大となる
時のX1の値をD1x2に確のし
ますでこれをx2のトリール全ての値に
対してえ同よに行いますでまこれまこの
言葉でねえ説明したことを式で書くとま
こういう風になるというわけですねでこの
時関数Jっていうものはこの1番下に書い
てるようにF2x2というものを使ってえ
このように書き表すことができるという
わけ
ですでえ同様にですねえF3とD2に関し
てもま求めるとまこの式に書いてあるよう
にえ求めるとでえこれをですねずっと
繰り返していてえまFNとDN-1まで
こう求めていくま1番最後にななるんです
けどもまここまでえ繰り返しずっと求めて
いくというわけですねでえこの計算が
終わった後にま最適会をこう決定すると
いうことになるんですけどもお実はですね
まずこれこの計算していったこう逆向きに
こう考えていくんですね1番最後のこの
FNを最大にする時のお
XNというものをえD-1のこう配列から
ですね求めてそれをXNスタという風にし
ますでその時の値をまJスタ=ま
FNXNスタという風にましておきますで
えこのこれをですねえっとNからあ次N-
1をやって次N-2をやってっていう風に
どんどんどんどんそのえN=1のところ
までですねえこう遡ってえ求めていくと
いうことを繰り返していきますえそういう
風にすることによってえ最適解が求まると
いうのがえ動的計画法ということになり
ますただまこういう風に言ってもね
なかなかその理解できないと思いますので
ちょっと具体的なねちょっとま例を説明し
ながらこのアルゴリズムについて説明して
いきたいと思い
ますでえ例えばですねま最短系の探索って
いうものをここで考えるんですけどももう
こですそのえスコアが最大になった場合に
最短経路になるということをちょっと考え
てでこれを表現したその関数Jっていう
ものを考えますでこの関数Jの値がま
スコアがえ最大になるようなX1とかX2
とかX3とかX4の値が決まればそれが
最短経路ということになるとねこまここで
はその4変数の場合をこう考えるという
わけですま考えますでこの4変数の値ま
最適な値が決まればこれが最短経路になる
ということなんですねでそれをですねえま
先ほど説明しそのアルゴリズムでえF1
からF4までのこう値をこうずっとこう
計算していくわけですねでえその時にえF
1っというものはえX1の角値に対して
計算をしてここでその例えばX1が0の時
には2ですですよとでx1が1の時には1
ですよX1が2の時には3ですよていう風
にF1の値をこう記入するわけですねで
同様にこれX2の値がま1の場合2の場合
3の場合はそれぞれこのF2にずっとこう
いう風にえ書いていくわけですねまこの図
では全ての値は書いてないですけどもま
書くわけですねで同様にこのF3F4に
ついてもまこに記入をしていくという風に
しますでえま記入した後にえま最適ケルを
決定するということなんですけどもここで
はまGがゴールから逆向きに探索をして
いくていうことを考えますでえまGから
こう見た時にえこのX4が2がこ最大に
なってたとしますでこのX4がその2の時
にこの2にこう繋がってるですねえ繋がっ
てる3本の中の最大が22だったとします
そうするとこのx3の時の-1っていう
ものを採用しますで次にまた同様にこのx
3の時のXあ-1に繋がっているこの3つ
の経路のうちえ最大になるものが13でえ
X2の3に繋がってるという風にするとえ
この経路13になってる経路を選択すると
でえま同様にx2に関してもこの6ま8
ですね8になってるものが最大の場合には
x1が1の場合をに決定するとでこういう
風にえ逆向きに探索していくと実はX1が
1の時x2が3の時でx3が-1の時でX
4が2の時がま最適な経路になるつまり
最短経路になるという風にま解が出てくる
とまこれがま動的計画法ということになり
ますでえっともう少しねえ具体的に説明を
していきたいと思いますえっとそれでは
ですねま先ほどのね例のま具体的な計算
方法について説明をしていきますでえここ
ではですねえこのF1H1H2H3という
ものがこの左の表のようにですね
あらかじめ与えられてるという風にします
でこの与えられてる表に基づいてえさっき
え説明したようにえF1とかF2とかねえ
1とかD2とかっていうのをこう求めて
いくとでそれがえ右の表になっていますで
この右の表の作り方についてえ説明をし
ますでここでそのえ赤になってますけども
例えばこれえHあF1+H1を計算する時
にx2=1の場合を考えますでx2=1の
場合の計算はええまずですねえ左の表のF
1のX1の取り入る値の値は213です
からえこの右の表の赤線のように213と
いう風に記入をしますでえ次にですねこの
H1の表を見てもらって
えx2=1の場合のえ11のこう値って
いうのは313になってますねですから
この右の表に313という風に書くわけ
です
ねでこれを同様にしてX2=2の場合とX
2=3の場合についてま同様方にこう表に
記入をしていくというわけですでえ次に
ですね今度はこの表がえ右の1番上の表が
完成したらえx2=1の時の最大になっ
てるx1を見ますえX1の時には3+3の
6が最大ですからこの時x1の値は2に
なりますからこれをその下の表に記入する
わけですね6と2っていうのを記入すると
で同様にしてX2=X2=2の時にはこの
場合え5+2の7が最大ですでその時のX
値は0ですから7と0というものを下の表
に書くとで同様にこれも8と1っていう
ものを書いてえ2つ目のその表を完成さ
せるとでこの処理をですねえ中段の表とか
1番下の表のようにこう繰り返していく
わけですねでこの表ができましたらえ
先ほど言ってたようなあ図にですねえXあ
F1からF2F3F4という風にそれぞれ
の結合してるところにこのFの値をこう
記入していくわけですね
ま関数fとか関数Dの表ですねの作成の
仕方っていうものを今説明したわけです
けどもなんかそれだけではね本当になんか
経路探索っていうのがなんかその実感とし
わかないと思いますのでで一応これあのえ
書籍からのこれもコピーなんですけども
あのま今説明した表を作成するということ
がですねえま経路探索になってるっていう
ことをこれ説明してやるまコピーなのでえ
まちょっとま分からない人はねちょっと
これをま読んでみてくださいでえでえま
最終的にま先ほど説明したあ図がこう完成
するわけですけどもえま先ほど説明しまし
たけどもえまこういう図が完成するま
つまりそのえそれぞれ結合してるところの
F1の値とかねF2の値F3の値F4の値
っていうの全てのところにこう記入して
いくわけですねでそれでえGがゴールです
からこう逆向きに探索をしていってえそう
するとえそのF4が2の時にまず最大に
なるからそこがFF4の時が2が選択され
てでえF4が2の時にこう繋がってる3つ
の経路のうちえ22が最大になるでその
22っていうのはx3が-1の時だとだ
からこの-1を採用するとでえx3が-1
にこう繋がってる経路の最大は13でで
その時x2が3の時であるとだからこの
13になってる経路ね選ぶというわけです
ねでこれをま繰り返していくとま最大の
経路が求まるとでもまえその結果そのX1
が1x2が3x3が-1X4が2の時にえ
最短経路ということにこうなるわけですね
ですからまこういう風にしてえ最適会って
いうものをこう求めることができるという
のがあ動的計画法ということになります
でえま次にですねえ神経カエルモデルに
よる最適化についてまお話をするんです
けどもまここでは本当にその触りだけのね
本当に簡単にその紹介だけにとめてきたい
と思い
ますでまずですねまこれ神経カエルモデル
によってえ最適問題が解けるということが
非常にこう話題になったえ純回セールス
マン問題っていうのがありますでこれは
もうえ1982年にホップフィールドに
よってこう提案されたやつなんですけども
実はこういうえN都市を1回ずつ訪問する
最適経路を求める問題っていうのはこれ
NP困難な問題ということでえ計算量が
都市数が増加すにすれてこう指数関数的に
こう急激に増加するという問題という性質
がありますですからまあ3年とか4年とか
ね5年とかっていう都数が少ない時はいい
んですけどもまそれがもう50年とか
100年とかになってくるともう産量が
こう爆発するということになりますでこう
いった巡回セールスマン問題があこういっ
た神経回路モデルによってえ結構簡単に
解けるっていうことがまこのホップ
フィールドによってこう報告されたわけ
ですねでまこれについてももう簡単にしか
ま説明しないですけどもまこの下の図に
書いてあるようにえこれも階層的な神経
カルモデルではなくてえ各ユニット感が
相互に結合しているっていうネットワを
考えますでえっとその相互に結合していて
で縦と横では必ず1個しか選ばれないとだ
から縦方向を見ても1個しか選ばれてない
し横方向を見ても1個しか選ばれないよう
にまネットワークをこうま設定しとくわけ
ですねでえま結合過重としてはまこのえ
対称性が保証されていてえまこのええ総合
結合ですねえまAとBというものを結合し
てる時のAからBとBからAというまえ
結合過重のま重みっていうものが等しい
ですよとでまたえま移動距離ですねま移動
距離に関する目的関数を最小化するという
しないといけないのでま都市間の距離に
関してえその重みというものは決定されて
いるとですからまこの問題はその学習する
ということではなくてえ都市間の距離とか
ねえに基づいてえそれぞれのユニット感の
重みというものを事前に決定しておくて
いうことになりますですからこういう事前
にうまくこうネットワークのこう結合の
重みというものを設定しておけばですね
あとはもうバント走らせるだけということ
にこうなるわけですねでそれをこう走ら
せると確かま右の方はこれ50年ぐらい
ですかねま50年ぐらいのこの最短経路の
求まるた会ということになってま結構短
時間にえこういった最適会が求まるという
ことでえ非常にこう話題になりましたま
興味のある人はあ巡回セールスマン問題と
かねホップフィールドとかまこれ略して
TSP問題とかねも言われたりしますので
まそういうので検索してみると面白いと
思い
ますでえまたですねえっとま人の運動を
生成するような神経カルモデルというもの
も提案されていてでえこれはまあのまた
そのね実際の最適化のその実例ということ
でえま人の運動を生成する計算モデルに
ついてこうお話をするんですけどもまその
中でこうトル変化最小モデルっていうのが
ありますでこの努力変化最小モデルに
基づいてま人の身体の運動っていうのを
こう生成するということが提案されてるん
ですけどもまそそのえ努力変化最小モデル
にもづいたまあ神経変えるモデルですねに
よってこう起動生成するというものが
カトラによってこう提案をされていますで
ま詳しいことはもう話はしませんけどもま
こういう丸で書いてるのがそれぞれの
ユニットでその結合がま神経カルモデルと
いうことなんですねですからこういった
神経カルモデルがまたくさんこう繋がって
ですねでまそれぞれ1個があえ離3時間の
1個1個にこう対応しているっていうもの
ですですからこのえ縦方向にずっと並ん
でるのがま各時間の神経カモデルがこう
たくさん並んでるというネットワークに
なりますでこういうネットワークもま事前
にそのうまくですねえ結合過重っていう
ものを決定しておいてあげるとえまこの
トル変化最小モデルに基づいた起動生成が
できるというわけですね
ででこその後にですねえこういった神経
カエルモデルとは別にえまこれもま川さん
たちのグループでこう和田さんっていうね
え方がそのやられた研究なんですけどもま
これもトル変化最小モデルの起動生成です
からあのま同じなんですけどもま何が違う
かというと神経カルモデルの構造が違うと
いうことですでどう構造が違うかというと
ちょっと見づらいですけどもその右の方に
準モデルていうのが書いてありますこれ準
モデルってのは身体の準モデルですです
から準運動額モデルとか準合力学モデルと
かねいう身体の準モデルで下に書いてる逆
モデルがこれも身体の逆モデルでえ逆運動
額モデルとか逆道理学モデルという身体の
逆モデルになりますで実はこの身体の順
モデルとか逆モデルを使ってこのこれ反
時計周りにこれくるくるくるくる回るよう
な構造になってるんです
ねでまこういうくるくるくるくるこう回り
ながらま近事的なトルク変化最小モデルを
実現する部分とかトルクの閉化とかですね
まそういったものこうがあるんですけども
これを反時計周りにこうくるくるくるくる
こう回してるうちにだんだんトルク変化
最小モデルに基づいた起動になってくると
いう神経回路モデルになりますですからま
この場合の方が非常にこう小規模な神経
改良モデルになってえるということですね
まこういったあ神経変えるモデルでもえま
努力変化最小モデルに基づいた最適な運動
というものを生成することができるという
意味でのま最適化を実現する神経カエル
モデルということになりますまこのように
ですねえま神経カエルモデルを使っても
最適解を求めるということができますので
えまねえこういったことでも少しえ考えて
もらったらいいかなという風に思いますで
ま神経カルモデルに関することはもうこの
ぐらいにしてねえ次に進みたいと思い
ます次に遺伝的アルゴリズムについて説明
をしますま一般的にはGAと呼ばれてる
アルゴリズムになり
ますでこの遺伝的アルゴリズムではえま
情報表現するたものをこれ個体という風に
言いますでこの個体の表現は一般的には
こう2進数でこう表現をされましてえ
例えばこの個体Aっていうのは1
10111とまこういう2進数でえ答ま
情報が表現されるわけですねでえこの個体
をですねま子個体とか親個体とかねえいう
風にこう2種類考えるんですけどもまずえ
右の図のようにねえ親個体が2つあるとし
ますここではえ親個体がABCDEFと
いう親個体と123456っていう親個体
がま2個あったとしますでここでま縦の赤
の点線でえ区切ってですね左手と右手を
こう入れ替えるということを考えますでえ
ま親の個体のね親個体の上はですねABB
3c56になるし下の方は12cdeEF
という風にこうなるわけですねこうやって
その2つの親個体から別な小個体を生成
するということができますでこのえまこの
赤の点線の位置っていうのはこれもこう
ランダムにこう選んだりしますのでえま
これでその2つの親個体からえたくさんの
個個体を生成するということができますで
さらにはですねま1個の親個体からまその
ここではABBCのBっていうものが選ば
れてますけどもまランダムにですねどれか
1個をこう選択するとでそのどれ選択され
た1個が
えここではそのまラージBにこうなって
ますけどもまあの0だったものがあ1に
なるとかね1だったものが0になるという
風にこう反転させるわけですねそういう風
にこう1部分だけえランダムに選択してえ
それを反転させるとでこれを突然変異って
いう風に言いますでまですからこの突然
変異の選ぶ位置とかですねえ個数とかです
ね変えればえ1つの親個体からたくさんの
個個体を生成することができるとまこう
いう風にしてま親個体からあたくさんの
個体てっていうものを生成することが
できるというわけ
ですでま次にその全体の流れですけどもお
まずですねえ1番初期になる親子体を生成
をしますね例えばこれえま100個なら
100個の親個体を生成するわけですねで
次にこの100個の親個体からあ個個体を
生成するんですけども先ほど言った交差と
か突然変異で生成をしますでこの時例えば
まえ親個体が100個だったらあ個体を
500個生成するとかねこたくさんの個
個体というのを生成しますでま500個
生成したとするとまそれぞれの個個体の
評価をしますまどのぐらいいいかどの
ぐらい悪いかとかねそういう評価値をえ
求めてえま各個体ごとにえ評価値を求め
ますで評価値を求めてでその一番評価の
いいものがえその終了判定の条件を満たし
てばイエスということでえ終了で最適会が
求まるということになるんですけどもま
満たしていなければノーということでえ
例えばさっきの500個の個個体の中から
あ次世代の親子体をまた100個選ぶとで
えそれでその次の個個体をまた同様に生成
をするとこれがま1世代のループという
ことになってこれをこうずっと世代ごとに
ずっとこのループを繰り返していくわけ
ですねでそうするとまだんだんそのの最適
な回にえ近い回がこう出てくると出現して
くるというのがま遺伝的アルゴリズムに
なり
ますでえまここではねまこのぐらいの説明
にしておきますけどもま興味にある人はね
ま遺伝的アルゴリズムとかGAで検索して
もらえればもっと詳しくね出てますのでえ
調べてもらったらいいかなという風に思い
ますえっとそれではですねま最近ちょっと
私がままこういうGAを使ってねえ身体の
運動を生成するというちょっと研究をして
ますのでまあのそのGAについてま
ジェネティックアルゴリズムについて説明
するんですけどもまあの私の場合はですね
実は自数値GAというものを使っています
えま何が違うかというと先ほど説明した
GAっていうのはま2進数で情報を表現し
てたわけですけどもま私が今使ってる実数
値GAというものは2進数ではなくてえ
実数値を使うとねね実数値でえ情報を表現
するとま個体を表現するということでえ
身体の運動を生成するていうことを
ちょっと今やってい
ますでえま全体的な流れはですねま先ほど
とまほとんど同じなんですけどもまずまあ
初期の世代の親個体を生成してえ交差とか
あ突然変異とかによって個個体を生成して
でまちょっとこれ次数値で使ってますので
えちょっとま滑らかに保管するようなねえ
後事のスプライン保管とかっていうことを
やってえま運動のま核関節の核のね個個体
からあえ腕姿性とかていうのをこう計算し
たりしてえそれでその各個個体のこう評価
値を計算するとでえま次世代の親子体を索
してこれがま世代のループということで
ここでこうくるくる回すということになり
ますでこれもこれがま最適会が得られる
までこう繰り返すということでま基本的な
流れはこう同じなんですけどもま一応その
実数値値を使ってるっていうところだけが
違ってるということ
ですでえまここでその実数値GAについて
説明します実数値GAではえまどういう
個体の表現かというとま当然ま実数値の
ベクトルになりますで今その身体の運動
っていうものをこう生成したいという風に
考えてるので例えばこのま腕の手先の位置
ですね腕の手先の位置のこう起動を生成
するっという問題考えた時にま手先の位置
を縦軸に取って横軸が時間に取るんです
けどもえっとここでこ利3時間っていうの
を取りますね0から6まであるんですけど
6がま運動が終了した時刻とね0が運動
開始した時刻というのをこれえこれ7等分
6等分になるんですね6等分にした時のえ
7点ね6等分にするとこの黒丸で書いてる
7点があるんですですけどもこの7点の
実数値ですね手先の位置の実数値っという
ものをでこうえベクトルで表すとですから
まこの6次元のこうベクトルになるという
わけです
ねでえじゃあこのえ6次元のね利3の
こんなんだとその運動王にならないのでま
この各点の間を5次のスプライン保管に
よってえ保管することによって各時刻の
手先の位置っていうものをま表すという
ことになりますですからまあGAに使う
ですねえ表現はこういうえ利3のその
え手先の位置を持つこうベクトルになって
でこの
お次数値のベクトルからえ5次の
スプライン保管によって各時刻の手先の
位置っていうのを求めて運動が生成される
ということになりますですからまあこの
あの実数値ベクトルですねえ実数値ベクト
ルっていうものを使ってまGAと同じよう
な
あ処理をしていくとまつまりそのえ親個体
からあ個個体を生成していくということを
考えますでえコ個体の生成について説明を
しますでまこねこっから説明することはね
ちょっと私があ考えたアルゴリズムになる
のでえかなりそのえま一般的なものでは
ないんですけどもちょっと私が考えた
アルゴリズムということでまちょっと
ちょっと聞いといてもらったらいいかなと
思いますでまずですねま平均っていうのは
ま親個体1と親個体にのこ平均をすると
いうことでまそのまんまですねだから2つ
の親個体の平均ととって個個体を1個生成
するということになりますでコサーはも
ほとんどまさっきと同じでえま親個体1と
親個体2があった時にま右半分と左半分を
こう入れ替えるということによってこ個体
をこう生成するとでただしえこういう風に
してしまうとこう非常にその手先の軌道と
いうものがこう急激に変化するということ
にねえなってしまってこう不連続な部分が
こ出てきてしまうのでえ一応この交差をし
た後にこう閉化という処理をしてこうえ
各点が滑らかに変化にするような処理をし
ますでえ次にこう突然変異ですけどもま
突然変異に関してもこの理3の点の1個
ランダムに選択をしてですねでそこにえま
突然変異ということでえっと何かそのえ
変異をさせるとそれでこ個体を生成するん
ですけどもこの場合もここでこう不連続に
こう変化するような
あになりますのでま閉化をしてこう滑らか
に変化するようにするとねでこの突然変異
もえまえ普通の突然変異とエリート突然
変異というも2種類行っていいてま突然
変異っていうのはその親個体の中から本当
にもう本当にランダムに親個体を選択する
んですけどもこのエリート突然変異って
いうものは非常に評価の高い親子体の方が
選ばれやすくするとねえ評価の高い親個体
をできるだけえ選択するようにしたものが
エリート突然変異ということになりますで
まこういう2種類の突然変異でえ個体を
生成しています
でま次世代の親子体をどうやって選択する
かっていうことなんですけどもまこれも
えっと2種類の親子体でえま生成え選択し
ていますでこのエリート保存戦略っていう
のはえま本当にエリートですねま評価値の
非常にいいね評価値のいい個体親個体を
選択するというわけですねでえあとその
ルーレット戦略っていうのはえ評価値の
いい個体が選ばれる確率を高くするんだ
けどもま評価値の悪い個体もある程度選ば
れるようにするというものがこう
ルーレット戦略ということになりますでま
このえ2種類の選択方法でですねえ親子
っていうのを選択をしてい
ますでえま実際にそのいろんな初期地から
ですねまあの親個体を最初に作るわけです
けどもその親個体の作り方が毎回こう
変わりますのででええそれで親子体の作り
方をこう毎回変えてえ何回かこう走らせて
みるとその評価値っていうものは縦軸に
とってえ世代ですねえ世代を横軸に取ると
この世代ごとに評価値がどういう風に減っ
てくるかっていうものをこれブロッとして
やるんですけどもまあの初期にね選んだ
親子体の初期値によってえその評価値の
減り方ってのがまかなり違いますよねま
かなり違いますけどもまあこの今の
アルゴリズムだと100世代ぐらいでほぼ
えね評価値が最小になっていてえま最適会
がある程度求まるているということがあ
分かるかと思い
ますでこれがあの最適会を求めた結果に
なりますでこれはですねあの以前変分法の
ところでお話をしたあジ最小モデルに
基づいたあの運動生成っていうのをねえ
説明したと思うんですけどもえっとま
ジーク最初モデルの場合だと解析的に最適
な回が数式として求まるてましたよねで
それがこの赤で書いてありますでえ今回
そのえこの実数値GAで求まるたのがこう
緑で書いてあるんですけどもこのペアレン
トって書いてあるそのマークがですねこう
利3の実数値のベクトルをこう丸で書いて
あってでこの実践で書いてあるのがまこの
スプラ保管して求まるた実際の運動という
ことなんですけどもえま
このXYとかねあとこれえタンジンベロス
ティって書いてこれ接線速度ですねえだ
からどういう風に見てもまかなりぴったり
一致するということでまこの実際えね自
最小機動でも解析的で求めた数式ですね
最適会の数式とこのG数値GAで求めた会
というものがまほぼ1一致してるという
ことがあ分かるかと思い
ますでまたですねこういった邪悪最小機動
っていうのは経由点を通るような運動でも
できるんですけどもあのまこれについても
こうやってみるとですねほぼ赤と緑がこう
一致してるとでただま若干ちょっとずれて
ますけどもこれはもうえっと100世代
ぐらいでそのえストップさせてしまったの
でまだからもう少しこう世代をねえ
たくさんやればあ先ほどと同じようにね
ほとんど緑と赤がこう一致するという
ところまで行けると思いますまこのように
えま実実数値GAでもですねえま最適会
っていうものを決定することができると
いうま1つの実例を紹介しまし
たで以上で説明終わりますけどもま今日は
え動的計画法とか神経カルモデルとかあ
ジェネティックアルゴリズムについて説明
をしたんですけどもあの全部本当その本当
に簡単にねごく簡単にこう説明をしました
のでえま興味のある人は書籍とかあネット
とかにはね色々情報がありますからあ調べ
てもらったらいいかなという風に思います
はい今日はこれで終わりたいと思います
Browse More Related Video
5.0 / 5 (0 votes)