| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Policy-based Reinforcement learning -> 正文阅读 |
|
[人工智能]Policy-based Reinforcement learning |
强化学习这一章会讲基于策略的强化学习Policy-based Reinforcement learning前言说明一下:这是我的一个学习笔记,课程链接如下:最易懂的强化学习课程 一、policy函数我们回顾一下Action-Value Functions: ??所以说只要有了一个好的策略函数π,我们就可以用π来自动控制agent运动,但是我们怎样才能得到这个策略函数呢? ??假如这个游戏只有5个动作10个状态那很好办,我们画一张5*10的表,表里面每一格对应一个概率,我们通过玩游戏将这50个概率值算出来就可以了,但是超级玛丽这种游戏有无数个状态,我没法将每个状态的每个动作的概率记在一张表里,想要agent自动玩超级玛丽这种游戏,我没法直接算策略函数。 ??所以我得到函数近似,学出来一个函数来近似策略函数,函数近似的方法有很多,可以用线性函数、神经网络等,如果用神经网络的话,我们可以将这个函数称为Policy network策略网络,把它记为π(a|s;θ),这里的θ是神经网络的参数,一开始θ是初始化的,然后我们通过学习来改进θ,如果是超级玛丽这个问题我们可以将神经网络设置为: 二、state value function??我们来看状态价值函数state value function,并且对它做函数近似。 ??state-value function,状态价值函数Vπ,Vπ是Qπ的期望,把Qπ中的动作A积掉,这里的动作A被当做随机变量,概率密度函数是π,将A消掉,这样的话Vπ只和策略函数π、当前的状态s有关了,给定策略函数π,Vπ可以评价当前状态的好坏,Vπ越大证明当前的胜算越大,给定状态S,Vπ可以评价策略π的好坏,如果π很好,Vπ就比较大,胜算就大,反之胜算就小。 ??如果A是离散变量,Qπ的期望就可以这样展开: 三、ploicy-based reinforcement learning??下面我们讲ploicy-based reinforcement learning(策略学习) ??现在,我们将Vπ中的π用神经网络来替代,Vπ就变成V(St;θ),这里的θ是神经网络中的参数。 3.1 策略学习的主要思想??我们刚才用了策略网路来近似策略函数,这样一来,状态价值函数就可以写成: ??V可以评价状态s和策略网络的好坏,给定状态s,策略网络越好,v的值就越大,那么怎么才能然v的值变得越来越好呢? ??基于这个想法,我们就可以把目标函数定义为V(s;θ)的期望,记为J(θ),这个期望是关于s求的,这里把s作为一个随机变量用期望给去掉,这样一来变量只剩下θ了,目标函数J(θ)就是对策略网络的评价,策略网络越好,J(θ)越大,所以呢,策略学习policy based learning目标就是改进θ,使得J(θ)越大越好,怎么样才能使J(θ)越大,怎么去改进θ呢? ??我们需要采用策略梯度算法policy gradient ascent,让agent玩游戏,每一步都会观测到一个不同的状态s,这个s就相当于是从状态的概率分布中随机抽样得来的,θ的更新我们用下列公式: ??我们用梯度上升来更新θ,这里的β是学习率,其中V(s;θ)关于θ求导不是梯度,真正的梯度是J(θ)关于θ求导,这里的V(s;θ)关于θ求导是一个随机梯度,随机性来源于s,为什么要用梯度上升呢?因为我们需要J(θ)越来越大,这里V(s;θ)关于θ的倒数我们称它为策略梯度-policy gradient。 3.2 如何求策略梯度??下面我们讲为怎么求policy gradient ??最终我们能够得到下列公式: ??有了上述两个公式,我们就能够实际计算策略梯度了: ??我们将π(a|s;θ)关于θ的倒数和Qπ的乘积作为函数f(a,θ),对于每个动作a,我们将f(a,θ)的值计算出来就好了。 ??这里就需要做蒙特卡洛近似,将其近似算出来: ??我们已经用推导了policy gradient策略梯度,并且知道怎么样使用策略梯度来学习策略网络。下面我们总结下: 四、总结期待大家和我交流,留言或者私信,一起学习,一起进步!麻烦大家可用关注公众号:AI那些事,感谢!!! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 18:22:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |