博文

目前显示的是 七月, 2017的博文

关于为什么Q-Learning与DQN有效

图片
前言: 我之前看了不少Q-Learning的介绍和deep mind的两篇论文:play atari with deep reinforcement learning与human control through deep reinforcement learning,后来复习的时候思考了很久为什么DQN会有效,按照 a painless q learning tutorial 里面的例子写了一个 Q-Learning的代码 和 Q-Learning笔记 ,想明白了原因。如果理解有误欢迎指正。 本文假设读者明白q-learning和DQN,如果不够明白请参考上面提到的三篇资料和我写的笔记 Q-Learning: Q-Learning是通过迭代来更新Q表的,在更新Q值时,采取ϵ-greedy实际上就是以ϵ的概率进行贪心,$1-\epsilon$的概率进行蒙特卡罗。Q表按照下面的公式进行更新: 从公式中可以看出,当前位置的Q值(价值)等于当前位置的瞬时回报+在当前位置采取所有动作之后的最大Q值(价值)。 以a painless q learning tutorial中的例子为例,如下图所示(左图为地图,右图中的数字表示回报$R(state, action)$: 使用这个地图定义Q表和R(回报)表: 当我们的目标为5时,我们定义到达5的回报为100,经过第一轮迭代之后,Q表中$$[1,5]、[4,5]、[5,5]$$的Q值就是$$R(any state, 5) + \gamma \times Max[Q(next state, all actions)]=100+\gamma  \times 0=100$$,其他"[状态,动作]对"的Q值为0.而重点在于之后的迭代,当遇到第二轮迭代的时候,$$[3,1]、[3,4]、[0,4]$$的Q值由0变为$$0+\gamma \times100$$,实际上Q值在不断地向所有可行初始位置反向扩散,由于$\times<1$,而距离目的地越近,Q值也就越大。也就是说,选择Q值最大的路径就是最优路线。 观看Q表的扩散,可以运行我写的小程序,使用jupyter notebook运行。 地址在 这里 ,也可以通过网页直接观察在我电脑

如何在终端(apt)使用ShadowSocks代理--tsocks简介及教程

2019年6月12日更新:不再建议使用tsocks,建议使用proxychains-ng 有的时候安装Google的包,还是会连接失败,而apt本身不支持socks代理。近期hosts不给力,所以还是要靠ShadowSocks。这里简要介绍一下tsocks。 安装方法: 用apt就能装 配置方法: 编辑/etc/tsocks.conf 如果没有以下信息,则加入: local = 127.0.0.0/255.0.0.0 server = 127.0.0.1 server_type = 5 server_port = 1080 其中,第一行指定不走代理的ip',我们指定凡是127开头的都不走代理。server_type官方要求为5才能用,剩下俩看名字就知道是干啥的,采取默认即可。 使用方法: tsocks command 测试: tsocks curl ip.cn tsocks curl google.com 使用apt: sudo tsocks apt update 注意:经过尝试发现sudo要放在tsocks前面,否则apt会走不了代理。 可以试试我写的 apt bash小脚本 ,把它放到/usr/local/bin并加入可执行权限就可以运行。

免费ShadowSocks帐号分享网页

之前在 这里 写的一个小爬虫,我把它做成了网页,放在了openshift-v3上面,这样就不用自己部署了。 点击这个链接查看: ss . pythonic . life 如果你想部署到自己的服务器或openshift帐号上,可以 点击这里 查看源码和部署指南。 如果用起来觉得不错,不妨给我加个星呗~ 这里可以直接看我的网页:

此博客中的热门博文

Flash被淘汰后打开swf文件的最佳方法

[SOLVED] Supermicro cannot connect to VGA video port or iKVM

MacBook日文键盘四种输入模式输入法切换(同样适用于其他布局的键盘)