1.问题设置:MDP(Markov decision process)
2.学习目标:reward(maximale Bewertung)
3.PL中对应的问题的维度//??
4.策略学习(Policy learning)
就是通过寻找一个动作序列 a1,...an ,使得最终可以得到最高的评价。
(Finde eine Aktionssequenz a1,...,an ) so dass dadurch die maximale Bewertung aufgesammelt wird.)
五元式表示(非确定性的):
指以俄国数学家Andrei Andreijewitsch Markov的名字命名的一种决策模型。一般用五元式(S,A,T,r, p0 )表示:
S:表示状态集
A:表示动作集合(Action)
T:是一个映射 T:S*A*S → [0,1]。T(s,a,s’)=p(s’|s,a)表示从状态s通过动作a到达状态s’的概率
r:就是reward的意思了,表示映射:S*A*S → R。
p0 :表示开局分布,就是初始状态为对应状态的概率。
公式表示(确定性的):
在这里我们这样表示状态的转化(一般可通过观察获得)
最优目标函数(optimale Zielfunktion):
idea:
V∗^(s) 是 V∗(s) 的估计值
π∗(s)=argmaxa [ r(s,a)+γV∗^(δ(s,a)) ]
学习过程(Lernen):
随机初始化 V∗^(s) //随机真的好吗?
do forever:{
选取一个状态 st
执行目前最优动作,并得到对应的下一状态:
st+1=δ(st,π∗(st))
V∗^(st)=rt+γV∗^(st+1)
}
上面这个方法的问题是学习过程缓慢(do forever)(und hartes Ersetzen不知指啥??)
另外,在上面的算法中,似乎缺少了调整目标函数的语句??
//感觉思路和EM一样??
//下图左上为初始图,右上为对应的reward,下图为最优路径
稍微修改了点学习过程
随机初始化 V∗^(s)
repeat:{
选择一个状态 st
repeat:{
st+1=δ(st,π∗(st)) ;
V∗^(st)=V∗^(st)+α[rt+γV∗^(st+1)−V∗^(st)]
st=st+1
直到 st=terminal 推出循环
}
}
同样这个方法还是存在问题:
1.r(s,a), δ(s,a) (也就是状态转化的结构图)必须事先知道。
2.使用 π∗(s),换句话说就是学习速度慢
Q(s,a)表示在状态s通过动作a,可以获得的最大的reward。
目标:得出Q方法的估计值 Q^(s,a)
学习方法:
初始化: ∀s,a Q^(s,a)=0
选择状态s
do forever:{
选择动作a并执行他
r=reward
s’= δ(s,a)
update: Q^(s,a)=r+γmaxa′Q^(s′,a′)
s=s’
}
//为什么不把对应的max Q记录到V中,这样就不用每次都进行比较了啊,应为改变当前状态的Q,一定会同时改变当前状态的V,所以觉得还是可行的啊??
相较于前面的方法,这里当前状态的最优路径的选择,则比较简单了(naiv):
每一轮循环都把状态s的 Q^(s,a) 向目标方向进行调整:
问题:
在连续状态空间中存在的问题(kontinuierlicher Zustandsraum):
1.不可能把Q值存储在一个loop-up表中//????????
(Speichern der Q-Werte in der lookup-Tabelle unmöglich)
2.循环次数过高(sehr hohe Anzhal von Lerniterationen nötig)
解决方案:
与神经元网络结合使用
//这个完全不会?????????等看完神经元网络再说吧???
问题:
状态的转变受概率P(s’|s,a)限制
解决方案:
使用期望值:
动机:
为什么需要从动作序列中学习呢?
因为有时候reward必须进过一系列的动作后才能得到.比如下围棋,光看当前一步,觉得下得不咋样,必须多走几步后才能看出他的价值。
而另外有时候只有接近目标了才能对现在的动作做出评价:
后续的动作可能导致差得结果//??不知是啥意思???理解不能
(bei langen Aktionssequenzen kann erst am Ende der Sequenz gelernt werden
nachfolgend Aktionen können für den schlechten Ausgang verantwortlich sein)
前面我们已经看过了当只考虑最邻近reward(就是直接相邻)的情况,现在我们要看的是,当我们把往下n步的reward都考虑在内的情况。
首先先看一下状态reward序列:
上图中上面的为Forward View,下面的为Backward View。
/*
其中Forward View并不是很了解,看了两份材料,一份说就按照前面提到权值直接判断就是了和往下看一步的情况一样,而另外一份却说,因为Forward View没有很好的因果关系,因此不能直接的被实现。原文就是图中的那句话。
具体咋弄的,等有时间再研究吧
*/
那么就直接看Backward View吧。
Backward View:
Backward View需要为每一个状态附上一个新的变量(trace Variable)e_t(s),他的定义如下:
1.initalize Q(s,a)arbitrarily and e(s,a)=0 all s,a
2.Repeat (for each episode)
initialize s,a
Repeat (for each step of episode):
Take a, observe reward r,and next state s'
Choose a' from s' using policy derived from Q(e.g. €-greedy)
d=r+g*Q(s',a')-Q(s,a)
e(s,a)=e(s,a)+1
For all s,a:
Q(s,a)=Q(s,a)+a*d*e(s,a)
e(s,a)=l*g*e(s,a)
s=s'
a=a'
until s is terminal
//下面还有几个例子,比如电梯操控,TD-Gammon,BISAM。以后在看吧,感觉前面的都还没弄懂呢,总之看完后有种很怪得感觉,很矛盾,像是简单和复杂的综合题。待研究????????
文章浏览阅读3.1k次。千兆以太网主流标准千兆以太网络技术早在上世纪90年代末就已成熟,其中,1995年国际标准化组织TIA/EIA颁布了1000Base-TX标准,该标准的目的是把双绞线用于千兆以太网中,其目的是在6类非屏蔽双绞线(UTP)上以1000Mbps速率传输100米。1000Base-TX基于4对双绞线,采用快速以太网中与100Base-TX标准类似的传输机制,是以两对线发送,两对线接收。由于每对线缆本身不进..._bi_da+
文章浏览阅读3.2k次,点赞3次,收藏55次。# 准备工作warning = ["傻", "蠢", "笨", "呆", "愚"] # 敏感词users = [{"user_name": "张三", "user_password": "18546732149"}, {"user_name": "manger", "user_password": "000000"}, {"user_name": "user1", "user_password": "123456"}]def menu(): while True: ._python实习报告图书
文章浏览阅读4.8k次。Python3.X 成功解决 module 'cv2' has no attribute 'xfeatures2d',建议安装3.3.0.10版本的contrib,更高版本的contrib里面专利保护了SIFT和SURF. 请执行 pip uninstall opencv-python 执行pip install opencv-contrib-python==3.3.0.10_module 'cv2.cv2' has no attribute 'xfeatures2d
文章浏览阅读3.5k次。概述看见这段开头,你应该听过Retrofit的大名但是没有真正的运用过,或者用过Retrofit1.9但是没有跟上更新的进度。无论什么原因,你都该好好了解下这篇博客。1.9和2.0.1版本差别很大。网上相关的教程很少,又因为是初探,所以本篇博客会用一个Demo说明Retrofit2.0.1的用法, Retrofit GitHub地址:https://github.com/square/retro_androdi retrofit2支持版本
文章浏览阅读7.9k次,点赞7次,收藏28次。目录一.什么是Hooks?1.useState的作用2.useEffect的作用3.useContext的作用二、对Hooks的思考1.高阶组件实现逻辑复用高阶组件版本的计数器2.renderProps实现逻辑复用renderProps版本的计数器3.Hooks实现逻辑复用Hooks版本的计数器4.给计数器增加第二个功能——变换颜色三、源码git..._react 高阶组件、render props、hooks 有什么区别
文章浏览阅读6.4k次,点赞4次,收藏2次。1.添加依赖<!--spring-缓存依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency>2.配置Cache@Configurationpublic class SpringCachingConfig_springboot cache配置
文章浏览阅读683次。DescriptionMost crossword puzzle fans are used to anagrams--groupsof words with the same letters in different orders--for exampleOPTS, SPOT, STOP, POTS and POST. Some words however do not have thisa_most crossword puzzle fans are used to anagrams — groups of words with the
文章浏览阅读1.4k次。使用会员抵扣券跳转到购买会员界面,支付时抵扣相应金额。使用方案抵扣券跳转到方案推荐的深度页面,选择方案支付时抵扣相应金额。查看可用的优惠券,可选择使用优惠券。我的优惠券页面点击某商品抵扣券后的“去使用”能否跳转到对应类型的商品页面。显示已失效的优惠券,显示优惠券类别,到期时间。失效优惠券按失效时间排序,显示前10的优惠券,剩下的优惠券不显示:优惠券选择页面:不可选择的优惠券置灰;支付页显示可用优惠券的数量,点击后跳转到选择优惠券页面,选择好优惠券后跳转到支付页。优惠券按照优惠额度排序。检测在我的页面优惠券点_设计一个购物优惠卷测试用例
文章浏览阅读405次。1. 原始数据介绍原始数据为4个格式为xls的excel文件格式为:第1行为变量名,第2行及之后为数据,变量数量为8个。每个excel含义745行数据(包括首行变量名)。4个excel的数据共745*4=2980行。2.打开vba运行界面,输入相应代码。3.运行后,结果如下。程序提示:合并了4个excel文件,并列出了各个excel文件的名称。合并后的数据第1行为空行。列数为8列。总行数为2981,减去空行即:含数据的行数为2980,恰好为4个原始Excel文件的数据总量。.._vba 多个excel合并成一个,并以增加一列等于每个excel的文件名
文章浏览阅读674次。find 目录 -type f -exec touch {} +_怎么更新gcno的时间戳
文章浏览阅读427次。1)通过id进行批量查询测试demo: @Test public void test04() { List<User> userList = userMapper.selectBatchIds(Arrays.asList("1388048014324580354", "1392340666326999041")); userList.forEach(System.out::println); }sql执行结果:==> Prepar_mybatisplus 条件搜索 get请求
文章浏览阅读5.6k次,点赞4次,收藏15次。Python字符串转义字符含义’ 单引号str1 = “hello,‘world’”str1“hello,‘world’”"双引号str2 = ‘hello,“world”’str2‘hello,“world”’print(str2)hello,“world”\a发出系统响铃声\b退格符\n换行符\t横向制表符(TAB)\v纵向制表符\r回车符\f换页符\o八进制数代表的字符\x十六进制代表的字符\0表示一个空字符\反斜杠..._python \a