machine-learning - 机器如何知道哪一步可以获得最大奖励?
问题描述
据我了解,强化学习将从行动中获得回报。
但是,在玩电子游戏时,大多数步骤(例如:街头霸王)都没有奖励(奖励== 0),最终,我们得到了奖励(例如:玩家获胜,奖励= 1),有这么多很多动作,机器如何知道哪一个是赢得这场比赛的关键?
解决方案
在强化学习中,奖励可以是立即的或延迟的[ 1 ]:
- 直接的回报可能是:
- 如果智能体赢得比赛,则非常积极(这是击败对手的最后一个动作);
- 如果代理输掉比赛,负值非常低;
- 如果该动作对您的对手造成伤害,则为阳性;
- 如果代理失去健康点,则为负数。
- 延迟奖励是由可能通过当前操作获得的未来奖励引起的。例如,向左移动一步可能会导致在下一步中它避免被击中并且可以击中对手。
强化学习算法,例如Q-learning,选择给出最高期望奖励的动作。该奖励会随着当前奖励(时间t的r)和可能的未来奖励(等式中的最后一个值,max Q,基于时间t+1及以后的动作)不断更新:
A Beginner's Guide to Deep Reinforcement Learning中提供了有关(深度)强化学习的更多详细信息以及一些游戏应用示例。
推荐阅读
- jsp - 通过变量索引访问哈希元素
- c# - How to add a textbox row inside the datagrid wpf
- docker - 在 windows 的 jenkins 中配置“Docker Host Uri”时连接被拒绝。怎么解决?
- google-sheets - Zapier: Update google spread sheet row
- scala - 在需要时提取期权价值的优雅方式
- node.js - XMLHttpRequest 'Access-Control-Allow-Origin'... the response must not be the wildcard '*' when the request's credentials mode is 'include'
- javascript - 如何使用 ajax 向具有多对多关系的数据库添加行?
- javascript - 在 Vue.js 我不能使用 this.(nameOfObject) 来绑定数据
- google-apps-script - 如何获取 google 日历 SERIAL 事件的所有条目
- reactjs - 有多个模块的名称只是大小写不同(ReactJS、Babel、样式组件)