11 2022 档案
摘要:# 实现Trie树: 字典套字典 class Trie(): def __init__(self): self.child = {} def insert(self, word): current_node = self.child for e in word: if e not in curren
阅读全文
摘要:离线学习算法:A3C, PPO, TRPO 在线学习算法:DDPG,训练不稳定,容易陷入局部最优 SAC: 离线策略,随机策略,最大化累积奖励的同时最大化策略的熵(更好地探索环境,熵值越高,策略越随机,目标的奖励越大) Soft Actor-Critic 算法公式: α越大,策略的随机性越强 算法流
阅读全文
摘要:PPO算法是离线学习法,样本效率利用率低,且对连续动作空间情况处理能力弱,无法精细控制 DDPG-深度确定性策略梯度算法,离线学习、处理连续动作空间 DDPG构造一个确定性策略,采用梯度上升法最大化Q值(动作-状态价值价值网络) 在行为策略上引入一个随机噪声N,加大对未知的探索 用到4个神经网络,使
阅读全文
摘要:连续性问题处理 """ @Date :2022/11/2 @Fun: 倒立摆控制 """ import random import gym import torch import numpy as np from matplotlib import pyplot as plt from IPytho
阅读全文
摘要:关键点: PPO基于TRPO算法,算法实现更加简单,PPO能学习的相对较好,应用也更加广泛 广义优势近似(GAE)求解优势函数值 先L函数求近似 在最大化价值 PPO惩罚与PPO截断,后者效果更好 TROP目标函数: PPO-截断目标函数: """ @Date :2022/11/2 @Author
阅读全文
摘要:Actor(策略网络)和 Critic(价值网络) Actor 要做的是与环境交互,并在 Critic 价值函数的指导下用策略梯度学习一个更好的策略。 Critic 要做的是通过 Actor 与环境交互收集的数据学习一个价值函数,这个价值函数会用于判断在当前状态什么动作是好的,什么动作不是好的,进而
阅读全文
摘要:基于策略的学习方法:直接显示地学习一个目标策略 策略梯度基于策略的方法基础 基于策略的学习方法:寻找最优策略并最大化这个策略在环境的期望回报 让策略更多地采样到带来较高Q值的动作 import random import gym import torch import numpy as np fro
阅读全文
摘要:引入优势函数A,优势函数A = 状态动作价值函数Q - 状态价值函数V。 在同一状态下,所有动作的优势值为零。因为,所有的动作的状态动作价值的期望就是状态价值。 实现代码: import random import gym import torch import numpy as np from m
阅读全文
摘要:解决DQN的高估问题。即利用一套神经网络的输出选取价值最大的动作,但在使用该动作的价值时,用另一套神经网络计算该动作的价值。 import random import gym import torch import numpy as np from matplotlib import pyplot
阅读全文
摘要:import random import gym import torch import numpy as np from matplotlib import pyplot as plt from IPython import display env = gym.make("CartPole-v0"
阅读全文
摘要:现在我们想在类似车杆的环境中得到动作价值函数,由于状态每一维度的值都是连续的,无法使用表格记录,因此一个常见的解决方法便是使用函数拟合(function approximation)的思想。由于神经网络具有强大的表达能力,因此我们可以用一个神经网络来表示函数。 import random impor
阅读全文
摘要:基于Q-learning,加入数据反刍机制,更多地利用已有样本,温故而知新(离线学习) import numpy as np import random # 获取一个格子的状态 def get_state(row, col): if row!=3: return 'ground' if row ==
阅读全文
摘要:On-policy 和 Off-policy 差异,更新量方式不同 Q-learning是srasa的改进版,效果要更好更实用,从悬崖问题中看出,Q-learning智能体可以贴着悬崖达到目标点(而saras总是离悬崖最远走) 离线策略所需的训练数据并不一定是当前策略采样得到,离线策略算法能够重复使
阅读全文
摘要:import numpy as np import random # 获取一个格子的状态 def get_state(row, col): if row != 3: return 'ground' if row == 3 and col == 0: return 'ground' if row ==
阅读全文
摘要:import numpy as np import random # 获取一个格子的状态 def get_state(row, col): if row!=3: return 'ground' if row == 3 and col == 11: return 'terminal' if row =
阅读全文
摘要:import os import gym import numpy as np from matplotlib import pyplot as plt env = gym.make('FrozenLake-v1', is_slippery=False, map_name='4x4', desc=[
阅读全文
摘要:# 获取一个格子的状态 def get_state(row, col): if row!=3: return 'ground' if row == 3 and col == 11: return 'terminal' if row == 3 and col == 0: return 'ground'
阅读全文
摘要:# 获取一个格子的状态 def get_state(row, col): if row!=3: return 'ground' if row == 3 and col == 11: return 'terminal' if row == 3 and col == 0: return 'ground'
阅读全文
摘要:import numpy as np # 状态转移概率矩阵 P = np.array([ [0.9, 0.1, 0.0, 0.0, 0.0, 0.0], [0.5, 0.0, 0.5, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.6, 0.0, 0.4], [0.0, 0.0
阅读全文
摘要:import numpy as np import random #状态转移概率矩阵 #很显然,状态4(第5行)就是重点了,要进入状态4,只能从状态2,3进入(状态2,3对于完成此项任务价值很大) P = np.array([ [0.5, 0.5, 0.0, 0.0, 0.0], [0.5, 0.0
阅读全文
摘要:import numpy as np import random probs = np.random.uniform(size=10) rewards = [[1] for _ in range(10)] probs, rewards # 贪婪算法 def greedy_choose_one():
阅读全文
摘要:功能:对于特定数据集和分布,分布与数据拟合越好,此统计量越小。可以用Anderson-Darling 统计量确定数据是否符合t 检验的正态假设。 help:
阅读全文