
副題がCによるロボット・プログラミングなんですが、ここでいうCとはC言語とかC++とか具体性がない。ないのだが、これを見た多くの人はC言語であってC++ではないと捉えるであろう。
ワタクシもそうであった。ところが第三章までの例題はC言語ではないのである。
new が出てきたり、関数の引数に hage ( ….., int &sd) というのが出てきた。関数名はhageではないけど分かってね。newはC++でインスタンスを作る際の、int &sdってのはC++の参照渡しっていうものなんだで。。。。
どうして気づいたかというか、まずは動かしてみようっと・・・という敬虔なクリック教徒の信者であるワタクシは出版社から例題downloadして、解凍してVScodeで開いてクリッククリックなのだが、そこにたどり着くまでに別の苦労もしたけど略する。
gcc でビルドしようとしてエラー出たのである。なんでや。VSCodeの右クリック・Run Codeでクリック、クリックたのしーーってのがワタクシの流派である。。。。そんなのあるのか。
つまり、この時点ではVScodeのtasks.json等の設定に問題があるのか? と考えた。なのでTerminal で手動でビルドしたがエラーである。これはTerminalのPowerShellに問題があるのかと考えて、PowerShell 5, PowerShell 7,さらにはCmd で試してダメだったのだった。
そこで、冷静にProgram Source Codeを眺めた次第である。なんだよ、これC++じゃんか。バカタレ、書けよ、キチンと書けよ、著者はどのような環境で動作確認したのか書けよバカタレ。
で、g++でビルドして動いた次第である。つーか、ビルドでエラーでたら気づくだろ、読まん買ったのか・・・・(´・ω・`)
そして、内容だが、実は第三章のチーズ製造器は説明が丁寧である。良いのである。原理的な説明のために小さなProgramを書き、それをテストするProgramを書き。そういうのを繰り返して最後にProgramを統合するという流れである。C++特有の記述が多いわけではない。配列の初期設定でポインターのポインターで二次元配列を作り、そこでインスタンスを new で作る。初期値を配列に入れる。メモリ確保したものは開放する。そこもC++の基本通りである。
他に上の参照渡しを使う。C++はこのぐらいである。
なるほど強化学習とはこういうものか、という感触を得る手がかりにはなった。このProgramでこのパラメータだとこういう結果になる・・・という事は分かったが強化学習について理解したわけではない。これだけで強化学習が理解出来る奴は「一を知って十を知るタイプ」のスッゲー便利な脳味噌を持っているヤツだけだろ。
まず基本の数式
//Q値の更新
Updated_Q = (1 - alpha) * Qtable[s][a] + alpha * (reward + gamma * Q_max);
学習係数 alpha,減衰係数 gamma、報酬 reward ----- これらの値はどうやって決めるん?
さらに、
//行動の選択
a = epsilon_greedy(epsilon, s, num_a, Qtable);
確率を使うε – greedy法が登場するのだが、この epsilonの値はどうやって決めるん?
というようにワケワカメなのである。ここらパラメータの最適化はこの本の想定読者のレベルを超・超えるで。。。 というわけで参考文献が紹介されていた。しかも英文だ。誰が読むかバカタレ・・・・(笑)
第四章ではオモチャが登場。VStone社のビュートローパーとかいう、三輪車か。右側車輪ドライブ用モーター、左側車輪ドライブ用モーターを制御してライントレースするようだ。H8マイコンボードを使っている。なのでH8の開発環境が必要になろう。購入するとDVDでついてくるのか、サイトからdownloadするのかは知らない。
これに強化学習のソフトを載っけようってものらしい。それなくても付属ソフトでライントレースは可能であると思われるが、こういうものは実物がないので放置で放棄。
付属のソフトよりも著者のProgram実装したものが滑らかでスイスイとライントレースした・・・・かどうかは知らない。
もう一つ例題があったが放置。
というわけで、三章Programが動作するので、次はパラメータ変えてどうなるかを見る。さらに例題として「迷路」もある。これは「チーズ製造器」をちょっと修正しているようなのでそのうちトライですね。
それにしてもワタクシが言いたいのは こんな不親切な本は初めてだ!! (笑) 例題はどのような環境で動作確認しました、という事も書かない著者の感性を疑う次第である。
頭の良いヤツラは自分が分かっていると他人も分かっていると勘違いする事が多々ある。著者もそうであろう。ワタクシのような凡庸で善良な市民は親切な説明が必要なのであーーーるよ。
つーか、オーム社はよく出版したな(笑)
posted by toinohni at 17:24| 東京 ☀|
Comment(0)
|
ソフト系雑学
|

|