めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

「ITエンジニアのための強化学習理論入門」(初版1刷)正誤表

誤植の訂正

p.123(第2段落の第2文)

誤:そして次は、α=1.0の場合です。
正:そして次は、α=0.0の場合です。

p.193 (下から6行目の末尾)

誤:極端に小さな値( 10^{-10}
正:極端に小さな値( -10^{10}

コードの訂正

GitHub 上のコードも修正してあります。

p.253([MGT-04]のコメント部分)

誤:

21:      return 0, s_new, True   # Reward, Next state, Game over
22:    return 1, s_new, False    # Reward, Next state, Game over

正:

21:      return 0, s_new, True   # Reward, Next position, Is game over?
22:    return 1, s_new, False    # Reward, Next position, Is game over?
p.213 (SARSA の実装コード:[MSA-05])

誤:

16:      a_new = agent.policy[s]

正:

16:      a_new = agent.policy[s_new]

※ この修正に伴い、コードの実行結果が少し変化するため、関連する本文の内容を次のように変更させていただきます。

p.214([MSA-09] の出力結果とその直後の一文)

[変更前]

############
#++++++++++#
#         +#
#######   +#
#         +#
#  ++++++++#
#  + #######
#  +       #
#  +++++++G#
############

 ここでは、ε=0 を指定して、ランダムな行動は混ぜないようにしていますが、最短の経路を学ぶことはできていないようです。先に説明したように、SARSAでは、 ランダムな行動が混ざったデータを本来の行動ポリシーに基づいたデータとみなして 学習します。そのため、学習結果にこのような変動が発生します。

[変更後]

############
#+++++++   #
#      +   #
#######+   #
#    +++   #
#   ++     #
#   +#######
#   ++     #
#    +++++G#
############

 この例では、うまく最短の経路が学習できているようです。ただし、先に説明したように、SARSAでは、ランダムな行動が混ざったデータを本来の行動ポリシーに基づいたデータとみなして学習するため、もう少し複雑な問題になると、最短経路の学習に失敗する可能性が大きくなります(章末の演習問題2を参照)。

p.216(図4.13)

[変更後]

#----------#
#S        G#
#   ####   #
#   ####   #
#          #
#          #
#          #
############

※ SARSA が最短経路の学習に失敗しやすくなるように、迷路の形を変更しました。

p.218(図4.17:SARSAによる学習結果)

[変更後]

#----------#
#+        G#
#+  ####  +#
#+  ####+++#
#++++++++  #
#          #
#          #
############