CS229 - MachineLearning - 12 强化学习笔记

Ng的机器学习课,课程资源:cs229-课件    网易公开课-视频

问题数学模型:

五元组{S、a、Psa、γ、R},分别对应 {状态、行为、状态s下做出a行为的概率、常数、回报}。

优化目标:

选择一个policy以获得最佳报酬:E[R(s0)+γR(s1)+γ2R(s2)+......],常数γ的存在可以保证尽量快地获得收益。

优化函数:

根据贝尔曼方程,

R(s)表示执行此策略获得的直接收益,后面那一堆是执行了此策略以后再后面的行为获得的收益。

最优策略满足:

那么在s状态下的最有策略是满足以下等式的行为:

这样,就可以迭代计算了。

求解方法:

但实际操作中Psa是未知的,所以需要先统计次数,针对课上举的机器人移动的例子,Ng解释说可以先让机器人随便走,统计到达每个状态的次数。

所以强化学习的完整实现过程是这样:

时间: 2024-10-04 08:16:53

CS229 - MachineLearning - 12 强化学习笔记的相关文章

2015.12.01学习笔记

本日学习课程简介:RAID,LVM,ip配置, 磁盘列阵 RAID 即为「Redundant Array of Independent Drives」或「Redundant Array of Inexpensive Drives (or Disks)」的简写,一般俗称「磁盘阵列」,就是以两台或更多的硬盘,组成一个或增加传输速度,或增大总容量,或增加文件备份的大磁盘. NO RAID 正常的数据存储,一但磁盘损坏,数据丢失,无任何安全性 RAID0 将数据平均分散在所有硬盘内,传输速度快,但一台硬

信息安全系统设计基础 第12周学习笔记

第八章代码 exec1: execvp()会从PATH 环境变量所指的目录中查找符合参数file 的文件名,找到后便执行该文件,然后将第二个参数argv传给该欲执行的文件.如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中.在结果中我们可以看出exevp函数调用成功没有返回,所以没有打印出“* * * ls is done. bye”. exec2: exec1的区别就在于exevp函数的第一个参数,exec1传的是ls,exec2直接用的arglist[0],不过由定

20135302魏静静——课本1-2章学习笔记

第一章 Linux内核简介 一.Unix Unix是一个强大.健壮和稳定的操作系统. Unix——支持抢占式多任务.多线程.虚拟内存.换页.动态链接和TCP/IP网络. 二.操作系统和内核简介 操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分. 内核独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限.这种系统态和被保护起来的内存空间,统称为内核空间.在系统中运行的应用程序通过系统调用来与内核通信. 应用程序完成其工作的基本行为方式是: 应用程序通过系统

4月12日学习笔记——jQuery事件

下面是在 jQuery 中最常使用的 bind()方法举例:$("#testDiv4").bind("click", showMsg); 我们为 id 是 testDiv4 的元素, 添加 click 事件的事件处理函数 showMsg. 使用 jQuery 事件处理函数的好处: 1. 添加的是多播事件委托,也就是为 click 事件又添加了一个方法,不会覆盖对象的 click 事件原有的事件处理函数. 1 $("#testDiv4").bind

4月12日学习笔记——jQuery管理包装集

创建新的元素 (1)使用 HTML DOM 创建元素 1 //使用 Dom 标准创建元素 2 var select = document.createElement("select"); 3 select.options[0] = new Option("加载项 1", "value1"); 4 select.options[1] = new Option("加载项 2", "value2"); 5 sel

12.swoole学习笔记--锁机制

<?php //创建锁对象 $lock=new swoole_lock(SWOOLE_MUTEX);//互斥锁 echo "创建互斥锁\n"; //开始锁定 主进程 $lock->lock(); if(pcntl_fork() > 0){ sleep(1); //解锁 $lock->unlock(); }else{ echo "子进程 等到锁\n"; //上锁 $lock->lock(); echo "子进程 获取锁\n&qu

不错的Spring学习笔记(转)

Spring学习笔记(1)----简单的实例 ---------------------------------   首先需要准备Spring包,可从官方网站上下载.   下载解压后,必须的两个包是spring.jar和commons-logging.jar.此外为了便于测试加入了JUnit包.   在Myeclipse中创建Java项目.   编写一个接口类,为了简单,只加入了一个方法.   Java代码   1.package com.szy.spring.interfacebean;  

设计模式学习笔记(目录篇)

设计模式学习笔记(目录篇) 为了方便查看,特此将设计模式学习笔记系列单独做一个目录. 1   设计模式学习笔记(一:命令模式) 2   设计模式学习笔记(二:观察者模式) 3   设计模式学习笔记(三:装饰模式) 4   设计模式学习笔记(四:策略模式) 5   设计模式学习笔记(五:适配器模式) 6   设计模式学习笔记(六:责任链模式) 7   设计模式学习笔记(七:外观模式) 8   设计模式学习笔记(八:迭代器模式) 9   设计模式学习笔记(九:中介者模式) 10  设计模式学习笔记(

lua学习笔记10:lua简单命令行

前面多次用了命令行,这次就好好学下命令行: 一 格式 lua [options][script][args] 二 具体命令 -e 直接将命令传个lua -l 加载一个文件 -i 进入交互模式 例如,终端输入: lua -e "print(math.sin(12))" lua学习笔记10:lua简单命令行,布布扣,bubuko.com