简介
机器学习:监督学习、非监督学习、强化学习
- 模仿人类和动物的试错机制进行学习
- 智能体与环境交互,根据当前的环境状态s,按照一定策略采取行动a,获得回报r
- 目标:获取最大累积期望回报

脉络介绍:

gym库-CliffWalking
安装标准化实验环境
pip install gym
CliffWalking:悬崖寻路问题,4*12网格,红色为悬崖,36为起始,47为目标
动作:0-4,上右下左,如果移出除网络则不变
奖励:{-1,100},与悬崖为-100,否则为-1

SARSA
行动选择策略:ε-greedy,以ε的概率进行探索,以1-ε的概率进行利用
Q值更新:根据下一次实际行动更新,胆小,选择离悬崖远的路线
td_target += gamma * Q[next_state, next_action]
Q[state, action] += lr * (td_target - Q[state, action])
Q-learning
行动选择策略:ε-greedy,以ε的概率进行探索,以1-ε的概率进行利用
Q值更新:选取最优的行动更新Q值,胆大,最终选择离悬崖近的路线
td_target += gamma * max(Q[next_state, :])
Q[state, action] += lr * (td_target - Q[state, action])
示例
SARSA
import numpy as np
import pandas as pd
import gym
from tqdm import tqdm
def max_index(a):
# return np.argmax(a)
candidate = np.where(a == np.max(a))[0]
index = np.random.randint(0, len(candidate))
return candidate[index]
def eps_greedy(Q, state):
a = Q[state, :]
if np.random.random() < 1 - eps:
return max_index(a)
return np.random.randint(0, len(a)) # [start,end)
def calc_policy(Q):
state_number = Q.shape[0]
policy = np.zeros(shape=state_number, dtype=np.int8)
for i in range(state_number):
policy[i] = np.argmax(Q[i, :])
return policy
# 0123:{上右下左}
def print_optimal_action

博客围绕强化学习展开,介绍其模仿试错机制,智能体与环境交互获最大累积期望回报。以gym库CliffWalking为例,阐述悬崖寻路问题。重点对比SARSA和Q - learning,二者行动选择策略相同,但Q值更新方式不同,SARSA胆小,Q - learning胆大。
最低0.47元/天 解锁文章
1491

被折叠的 条评论
为什么被折叠?



