icoxfog417 / baby-steps-of-rl-ja

Pythonで学ぶ強化学習 -入門から実践まで- サンプルコード
Apache License 2.0
431 stars 262 forks source link

p44のコード #6

Closed ExpIPiP1E0 closed 5 years ago

ExpIPiP1E0 commented 5 years ago

指摘事項

baby-steps-of-rl-ja/DP/planner.pyの99〜104行目ですが, expected_rewardsに入っているQはaction_probがかかっていて,Policy(a|s) * Q(s,a)となっているので, 単純に103行目ではmax_reward = sum(expected_rewards)となるのではないでしょうか?(max_rewardという名前と整合的では無いですが)

指摘箇所

ページ番号: 44

実行環境

エラー内容

(例外のメッセージ、ログ、画面ショットなどを添付)

icoxfog417 commented 5 years ago

書籍中はmaxを取っていますが、これはご指摘の通りsumを取るのが正です。Policy Iterationではmaxではなく確率を掛けたsum=期待値を取っているので。

修正はPull Requestで行い、指摘箇所の修正がGitHub上でわかるようにしたいと思います。

icoxfog417 commented 5 years ago

修正しました https://github.com/icoxfog417/baby-steps-of-rl-ja/pull/7/files

逆強化学習でもPolicy Iterationを使っていたため、そこも修正しています(あとtypoがあったため併せて修正しています)。なお、逆強化学習を行うために使っているPolicy Iterationは書籍中に掲載していないため、書籍面での修正はありません。