背景
もやは前回からの続きとは言えないぐらいQiitaでは間が空いてしまったものの、モチベーションは概ね変わりなく、作成したガジェットや公開されているサイト(livetrack24やxcontest)か飛行ログを収集し、分析するところまで目処がつき、状態をフィードバックする手段も作成してあるので、もう少し個別のケースに対応したより良い手段を教えてくれるようにしたい。
作りたいもの
- 与えられた地域のサーマルマップ的なもの
- 与えられたコースに合わせて最適なルートを計算する強化学習テンプレ
1.サーマルマップ作成
概ね以下の手順で作成できるのではないかと
- 対象エリアを一辺10メートルの六角形で区分する(ゆくゆくは高度方向もいれたマップにする)
- 取集した飛行ログの各ポイントを分割した六角形のに割り当て、上昇、下降の平均と撮りそのままその六角形の報酬とする。飛行経路が割当たらなかった六角形は全て-2点の報酬とする(20メートル進む間に2メートル下がるイメージ)
2.コースの設定、飛行経路の計算
- 2025年8月尾神岳の大会を想定して、パイロンの箇所に対応する六角形の場所を特定する
- 各パイロンに対応する六角形のエリアに特に高い報酬を設定する
- 飛行方向は常に進行方向に対して正面、右斜め前、左斜め前の制限をつけ、パイロンを通過した際の報酬は飛行経路を守っていない場合は得られないように行動を制限する。
- 出来上がった経路と当日上位の選手の経路を比較し、評価する
まずはテスト的に作成してみる
以前に強化学習をした際には全て手作りをしたが、今はとても良い環境が整っているので全てお任せしてみる(これが出来そうだから改めてやってみる気になった。うまくゆかなかったら別の方法を考えるか時が満ちるのを待つ!)
kiroにお願いしてみる
お願いするだけである程度まで進めてくれるのはわかっているが、強化学習を環境の設定からというのは初めて。これができれば朗報でしかない
まずは最初のお願い

なんてこった、、出来たっていうじゃないか、、結果を確認する

動いている!しかも強化学習話でよく聞く同じところをぐるぐる回って点数を稼いでいる!
学習としては失敗しているものの、よくある悪い例が自分の作った環境で再現されてなぜか嬉しい(^^)
行動に制限を加えて改めて実行すると以下のような結果が得られた

中身の性差はさらに必要だが、概ね思った方向に動いている気がする。
すごい時代になったものだ、、
実際に尾神岳周辺をヘックスに分割してみる
お上だけパラグライダー基地を中心に南北100メートル東西50メートルを1辺10mの六角形で分割するコードを作るように指示するとこんな感じ。ヘックス番号を中心から螺旋状に設定するのも指示するだけで出来てしまった。
勢いなので、報酬とアクションの制限を設定してQ学習するところをお願いしてみる

なんか、、何かがうまくいっていないが、ベースはできている気がする。
これまではここまで来るのに相当の体力を要していたが、kiro様がここまで言葉でお願いするだけでやってくれるので本来やるべきであった分析に集中できる気がする。もっとも、ここまでコードを全然書いていないのでkiro様の作成されたコードの理解からしなければならないが、それすらも手伝ってもらえることを思うと「もう一人じゃないんだ」という気にすらなってくる。
すごい時代になったものだ、、
ネクストアクション
- 意図しない処理になっていないか確認する
- マップの範囲を拡大し、実際に設定されたパイロンに報酬を設定する
- 報酬の獲得に順番の概念を入れる
ここまででパイロンを直線的に結んだ経路が最適パスとして表示されるようになるはず
- マップに収集した飛行経路から報酬を設定する
- 再度、経路の学習をする
この結果を上位入賞者の経路と比較してどんなものか!
