强化学习论文研读(一)——Where Do Rewards Come From?

强化学习领域,传统的要素为环境,观察表述,奖励,动作,这里的奖励完全由环境给出,论文提出一种内部驱动的奖励系统,如下图所示:

本文将奖励分为内部驱动的奖励和外部驱动的奖励,二者相互作用指导智能体的行动。

这在生物学上有一定的依据,生物在进化中学习到了很多的品质,比如喜欢探索,好奇心,这些品质即使没有外部奖励,一些生物的个体依然会保持,可见其合理性。

论文使用两个实验证明,使用自身相关的奖励,比单纯使用外部的适应度奖励更好。

论文使用的算法为Q-learning。

一是饥饿-口渴实验:

条件是这样的,一个智能体,在一个6*6的网格中寻找食物和水,二者随机分布在网格当中,agent到达食物的点,并且执行吃的动作,就可以增加适应去,下一时刻立即又饿了,但是这个智能体会口渴,在口渴状态下无法吃食物,喝完水之后有0.1的概率随机的边的口渴,水和食物都无限供应。吃食物为外部的奖励,喝水不会增加适应度,为内部的奖励。

最终比较好的智能体使用的策略如下:agent在口渴且饥饿的状态下,会朝水的点走,在不口渴且饥饿的状态下,会朝食物走。

最终得到,在考虑口渴的奖励函数,比不考虑奖励的agent适应能力更强,虽然考虑口渴的因素不会直接增强适应度。

二是盒子实验:

在6*6的格子空间里,有2个随机位置的箱子,agent只有到达箱子位置,打开箱子,吃掉里边的食物,增加使用度。一个关闭的箱子打开后一定有食物,箱子打开后,有0.1的概率再关闭,关闭之后再打开再次有食物。

湿度度为agent迟到食物的数量,本文使用的奖励:吃掉食物的数量和agent是否把箱子打开。

打开箱子的动作,不会增加实用度,指agent好奇心的体现。

最终表现显然,有好奇心的agent表现更好。

如果在前5000步,任何盒子都没有食物,5000步之后才给食物,喜欢探索的agent同样很有优势,因为提前把盒子打开了:

可以看到,使用内部的参数做奖励,表现很好。

这幅图是平均开箱数的图,使用内部奖励的agent更喜欢开箱。

最终的得到结论:

agent自身的内部奖励会影响agent整体的适应度。

 

疑惑:

感觉实验有点牵强,因为内部的动作和外部的奖励有一个固定的状态转换概率,其实相当于间接的增加外部奖励的比率,感觉有点问题。


http://www.niftyadmin.cn/n/957411.html

相关文章

这是什么bug

* vuex in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader-v16/dist??ref--0-1!./src/components/HeaderCart.vue?vue&typescript&langjs…

强化学习论文研读(二)——Playing Atari with Deep Reinforcement Learning

DQN系列算法的开山之作,这里的dqn通常称为NIPS-DQN,后来还有nature-DQN,更加好用。 论文的一些理解 Q-Learning的伪代码: NIPS-DQN的伪代码: 有以下几个关键点: 一是图像的处理: 将图像压缩成…

头部文件有一个bug

1、HeaderSearch.vue <template><div class"headerSearch"><input type"search" v-model.trim"keyword"><button click"search">搜索</button></div> </template><script> export d…

torch.gather()通俗理解

torch.gather(input, dim, index, outNone) → Tensor input (Tensor) – 源张量 dim (int) – 索引的轴 index (LongTensor) – 聚合元素的下标 out (Tensor, optional) – 目标张量 >>> t torch.Tensor([[1,2],[3,4]]) 1 2 3 4 >>> torch.gather(t,1,…

setup放在哪里试可不可以运行

<template><div>{{ count }} {{ object.foo }}</div> </template><script>import { ref, reactive } from vueexport default {setup() {const count ref(0)const object reactive({ foo: bar })// 暴露到template中return {count,object}}} &…

t-SNE实践——sklearn教程

声明&#xff1a; 参考sklearn官方文档 How to Use t-SNE Effectively.&#xff08;翻译&#xff1a;如何高效地使用t-SNE&#xff09; t-SNE t-SNE是一种集降维与可视化于一体的技术&#xff0c;它是基于SNE可视化的改进&#xff0c;解决了SNE在可视化后样本分布拥挤、边界…

疑难点。。

setup ref等 key watch

强化学习论文研读(三)——Human-level control through deep reinforcement learning

提出nature-DQN算法的论文&#xff0c;主要改进&#xff1a; 使用bata-buffer的方式随机储存状态回放&#xff0c;消除数据的相关性&#xff0c;平滑数据的分布。使用定期&#xff08;T1&#xff09;更新Q的方式&#xff0c;使减少与当前目标的相关性&#xff0c;也就是所谓的…