CS229 - MachineLearning - 12 强化学习笔记
Ng的机器学习课,课程资源:cs229-课件 网易公开课-视频
问题数学模型:
马尔科夫过程五元组{S、a、Psa、γ、R},分别对应 {状态、行为、状态s下做出a行为的概率、常数、回报}。
一个简化的例子如下,假设移动机器人可以有如下位置,中间画×处不能走,目标是左上角,不希望走左上第二个格子:

那么机器人可以有11个状态S;在每个状态上都可以往四个方向走,因此a={N,S,W,E};
为了给机器人正确的奖励惩罚政策,给定左上角位置的回报为+1,左上第二个格子回报为-1,其他格子-0.01(为了让机器人尽快走到目标点)。
γ是常数,这里给0.99。

红色箭头表示一个策略。
优化目标:
选择一个策略π(policy)以获得最佳报酬:E[R(s0)+γR(s1)+γ2R(s2)+......],常数γ的存在可以保证尽量快地获得收益。
为此定义value function:给定初始状态s0,选择一个策略π使得收益最大。
优化函数:

根据贝尔曼方程,

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

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

这样,就可以迭代计算了。
求解方法:

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

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

之前的课件到这里就结束了,但现实世界中的问题极其复杂,是无法简化成上述格子的,看今年更新的课件又加了好几页,讲离散化和维度灾难and so on.
扩展:
以自动驾驶汽车为例,车子的状态是连续变化的,离散化以后维度也是大大的,解决方案是给定一个状态转换模型:

未完待续,不知道什么时候续。
2017.12.02
最近在看图像处理相关的东西,想了一下机器学习、机器视觉之间的关系,机器学习更接近于提供一个原理性的东西,机器视觉选用各种工具来解决这个问题,进而想到,搞机器学习其实还是人在学习,你去学习这个世界的表达方法、演化规则,然后让机器帮你实现。
CS229 - MachineLearning - 12 强化学习笔记的更多相关文章
- 20135202闫佳歆--week3 课本1-2章学习笔记
第一章 Linux内核简介 一.Unix Unix是一个强大.健壮和稳定的操作系统. 简洁 绝大部分东西都被当做文件对待.这种抽象使对数据和对设备的操作都是通过一套相同的系统调用借口来进行的:open ...
- 4月12日学习笔记——jQuery事件
下面是在 jQuery 中最常使用的 bind()方法举例:$("#testDiv4").bind("click", showMsg); 我们为 id 是 te ...
- 4月12日学习笔记——jQuery操作属性和样式
区分 DOM 属性和元素属性 <img src="images/image.1.jpg" id="hibiscus" alt="Hibiscus ...
- 4月12日学习笔记——jQuery管理包装集
创建新的元素 (1)使用 HTML DOM 创建元素 //使用 Dom 标准创建元素 var select = document.createElement("select"); ...
- 1-2 maven学习笔记(7-8章)
一,生命周期和插件 1.除了坐标.依赖和仓库之外,maven的另外两个核心概念就是声明周期和插件. 生命周期和插件协同工作,密不可分. 清理 初始化 编译 测试 打包 集成测试 验证 部署 站点生成 ...
- centos7下docker1.12.5学习笔记
一.Docker简介 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相 ...
- 机器学习12—FP-growth学习笔记
test12.py #-*- coding:utf-8 import sys sys.path.append("fpGrowth.py") import fpGrowth from ...
- 12.swoole学习笔记--锁机制
<?php //创建锁对象 $lock=new swoole_lock(SWOOLE_MUTEX);//互斥锁 echo "创建互斥锁\n"; //开始锁定 主进程 $loc ...
- 李宏毅强化学习完整笔记!开源项目《LeeDeepRL-Notes》发布
Datawhale开源 核心贡献者:王琦.杨逸远.江季 提起李宏毅老师,熟悉强化学习的读者朋友一定不会陌生.很多人选择的强化学习入门学习材料都是李宏毅老师的台大公开课视频. 现在,强化学习爱好者有更完 ...
随机推荐
- 防止atoi函数内存越界
函数形式为: int atoi(const char *nptr); 函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非 ...
- mysql之show engine innodb status解读(转)
add by zhj: 我第一次知道这个命令是线上服务出了问题,然后同事用这个命令去查看死锁.但用这个命令看死锁有一定的局限性,它只能看到最后一次死锁, 而且只能看到死锁环中的两个事务所执行的最后一条 ...
- MATLAB中产生随机数的那些函数
1.产生从imin~imax的m*n矩阵 randi([imin,imax],m,n); 2.产生1~n的无重复随机整数 randperm(n);
- Spring事务管理详解_基本原理_事务管理方式
1. 事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交,那在没有Spring帮我们管理事 ...
- python+rabbitMQ实现生产者和消费者模式
(一)安装一个消息中间件,如:rabbitMQ (二)生产者 sendmq.py import pika import sys import time # 远程rabbitmq服务的配置信息 user ...
- 字符集更改步骤,mysql乱码
关键字:Mysql乱码,mysql字符集修改 #字符集更改步骤~
- RN Animated透明度动画
主要代码解析: 如果我们希望吧Animated.Value从0变化到1,把组件位置从60px移动到0px,把不透明度从0编导1,就可以使用style的属性来实现 <Animated.Text s ...
- MACD:黄白线、红绿柱与0轴关系
一.MACD的基本问题: (1)参数:统一用12,26,9 (2)MACD 位正.位不正原则 以下四种情况是黄白线.红绿柱与0轴关系的完全分类,行情出不了这四种情况, 即便黄白线在0轴单边反复缠绕 ...
- 关于Redis的配置
Redis-配置 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时,Redis默认会把pid ...
- Mysql事务原理介绍
事务 一个事务会涉及到大量的cpu计算和IO操作,这些操作被打包成一个执行单元,要么同时都完成,要么同时都不完成. 事务是一组原子性的sql命令或者说是一个独立的工作单元,如果数据库引擎能够成功的对数 ...