π 为什么会等于四
我是在差不多三年前看到过这张图的. 曾经对极限完全不了解的我, 简单的认为由于边长一直不变, 所以不能这么算. 前几天有个同学的问题突然又激发了我对这个问题的思考, 突然意识到了之前的我对这个问题理解的浅显, 弄明白了这样论证的问题所在以及它为什么看起来如此正确.
为什么是错误的?首先, 我们自然知道 $\pi=3.1415926\cdots$ , 而上面的论证中不断的重复折叠所得到的周长, 最终都不会收敛于圆的周长 (一直等于 $4$) . 但是这里就会有人疑惑了: 为什么最终得到的 $4$ 不是圆的周长呢? 明明折到最后就是个圆呀? 而这, 其实源于我们对图中表述 不断的重复 和 一个图形怎样才是圆形 的理解的混乱所致.
什么是不断的重复?在数学中, 有一个对应的概念, 即为极限. 重复次数设为 $n$ , 然后 $\lim n\to\infty$ 就可以认为是不断的重复了.
一个图形怎样才是圆形?为了方便表述, 我们只考虑一个单位半圆 (半径为 $1$) 的圆弧
通过适当的建系, 可以通过一个函数来描述它, 我们用 $f(x)$ 来表示这个半圆. 现在, 我们列出两个关于判定 ...
强化学习类论文常用表达
由于自己英文实在是差, 所以把一些经常在论文里见到的却不太认得的表达记下来. 许多数学概念都有维基百科的相关链接, 要进去得 FQ , 如果你的浏览器可以装插件, 建议使用集装箱.
表达
词性
意义
probability distribution
n.
概率分布
discounted
adj.
有折扣的
finite
n.
有限的
infinite-horizon
n.
无限时间跨度
factor
n.
因子
denote
v.
表示
stochastic
adj.
随机的
standard definitions
n.
标准定义
unnormalized
adj.
非规范的
frequency
n.
频率
notation
n.
符号
imply
v.
暗示
nonnegative
adj.
非负的
guarantee
v.
保证
constant
adj.
不变的
deterministic
adj.
决定性
nonzero
adj.
非零的
algorithm
n.
算法
converge
...
理解皮亚诺公理第五条
先上皮亚诺公理:
0 是自然数;
每一个确定的自然数 a,都有一个确定的后继数 a’,a’ 也是自然数;
对于每个自然数b、c,b = c 当且仅当 b 的后继数 = c 的后继数;
0 不是任何自然数的后继数;
任意关于自然数的命题,如果证明:它对自然数 0 是真的,且假定它对自然数 a 为真时,可以证明对 a’ 也真。那么,命题对所有自然数都真。
第五条公理事实上保证了数学归纳法的正确性. 但是看到这里也许就会有些疑惑, 数学归纳法的成立是自然的呀? 为什么还需要一个第五公理? 对于自然数 $0$ 成立, 并且可以从 $a$ 正确推出 $a'$ 成立, 不就能从 $0$ 开始一直推然后遍历整个自然数集么?
但事实上并非如此, 我们之所以会认为 “能从 $0$ 开始一直推然后遍历整个自然数集” 是因为我们被现有的自然数集的概念束缚住了, 认为某个数 $a$ 一定能由 $0$ 一直取后继数得到. 但是我们仔细查看公理, 并没有说明 (事实上也无法证明) 一个自然数一定可以由 $0$ 一直取后继数得到. 并且虽然公理 4 说明了 $0$ 不是任何自然数的后继数, 但是这并不代 ...
Gym 中的 gym.spaces
每了解到一种就来这里做个记录.
Box表示一个 n 维框, 即由 n 个数字描述这个空间.
Box.high打印一个一维数组, 其中元素值为各个描述这个空间的数字的极大值.
Box.low打印一个一维数组, 其中元素值为各个描述这个空间的数字的极小值.
Box.sample()从可能的数值中随机采样.
Discrete表示固定范围的非负数, 可以看做一些非负离散值的集合.
Discrete.n可能的数值的总数.
Discrete.sample()从可能的数值中随机采样.
Anaconda + PM2 部署 Jupyter 在服务器
背景最近学习发现电脑换来换去很麻烦, 然后就想到要把 Jupyter 部署在云服务器上, 正好服务器放在腾讯云也吃灰很久了, 就拿来玩一玩. 这里的所有操作都基于 Centos , 当然 Ubuntu 也适用, 但是要将教程中所有 root 换成 home/用户名 , 比如 home/ubuntu .
部署 Jupyter安装 Anaconda可以前往清华镜像源选择对应版本, 找到你想要的 Anaconda3 版本, 通过下面的指令进行下载
1wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.07-Linux-x86_64.sh # Anaconda3-2020.07-Linux-x86_64.sh 可以更换成你自己选择的版本
然后安装
1bash Anaconda3-2020.07-Linux-x86_64.sh # 同样更换你自己选择的版本
然后一路 enter / yes 就完事.
添加环境变量接着添加环境变量.
1sudo vi /etc/profile
输入密码后进入文件 ...
GAE 算法
准备众所周知, 策略梯度有多种写法, 总的来说, 在保持策略梯度不变的情况下, 策略梯度可以写作$$
g=\mathbb{E}\left[\sum_{t=0}^{\infty}\Psi_t\nabla_\theta \log\pi_0(a_t\mid s_t)\right]\tag{1}
$$ 其中 $\Psi$ 可以是$$
\begin{aligned}
1.\;&\sum\nolimits_{t=0}^\infty r_t&轨迹的总回报\\\\
2.\;&\sum\nolimits_{t'=t}^\infty r_{t'}&动作后轨迹的总回报\\\\
3.\;&\sum\nolimits_{t'=t}^\infty r_{t'}-b(s_t)&基线形式\\\\
4.\;&Q^{\pi}(s_t,a_t)&状态-动作价值函数\\\\
5.\;&A^{\pi}(s_t,a_t)&优势函数\\\\
6.\;&r_t+V^{\pi}(s_{t+1})-V^\pi(s_t)&\text{TD}\,残差
\end{aligned}
$$ 其中$$
\begi ...
零成本搭建网页代理
网页代理是非常简单的一种代理方式, 我们借助 CloudFlare 与 jsproxy 项目可以免费搭建自己的网页代理.
准备首先, 你需要有 Github 和 CloudFlare 账号 (怎么注册就不用我教了吧…) 并登陆.
Githubfork jsproxy 项目,
然后进入到自己 fork 的 jsproxy 项目中, 进入 Settings 并下拉, 拉到 Github Pages 这一项
将 Select branch 设置成 gh-pages , 并 Save (这里我已经设置过了所以无法点击), 重新刷新并来到同样的位置, 它会显示大概如下内容
Your site is published at https://xxxx.github.io/jsproxy/
后面那串网址就是你的 Pages 地址, 记住它.
CloudFlare进入主页, 然后进入 Workers ,
并创建 Worker,
然后在左侧的 “脚本” 区写下如下代码, 其中第 6 行中 https://xxxx.github.io/jsproxy 需要替换成你的 Pages 地址 (就是我 ...
零成本制作随机图片 API
最近有小伙伴问我 api.yunist.cn 这个 API 是怎么做的, 其实非常简单, 用 LeanCloud 的免费实例做的, 废话不多说, 开干!
准备创建账号及应用先去 LeanCloud 注册个账号 (建议使用国际版, 这样绑定域名的时候不需要备案, 域名已经备案了的请无视) . 然后去控制台创建一个应用, 选择开发版, 名字就叫 image-api 吧.
下载命令行工具详情请看安装命令行工具.
登录并初始化项目命令行输入
1lean login
登录, 然后按照提示选择区域并输入 LeanCloud 用户名和密码完成登录.
然后随意创建一个新文件夹, 进入里面执行
1lean init
然后会输出大概类似下面的信息
1234[?] Please select an app: 1) Valine-Admin 2) image-api =>
输入 2 , 回车, 然后又会出现
1234567[?] Please select a language 1) Node.js 2) Python 3) Java 4) PHP 5) Others =>
输入 4 回车 ...
Spinning Up 研究笔记 (一) - VPG
解决报错代码文件在 spinup/alogs/pytorch/vpg/vpg.py . 我们尝试运行代码, 然后就报错了…
12345678910...usage: ipykernel_launcher.py [-h] [--env_name ENV_NAME] [--render] [--lr LR]ipykernel_launcher.py: error: unrecognized arguments: -f xxxx.jsonAn exception has occurred, use %tb to see the full traceback.SystemExit: 2xxxx/anaconda3/lib/python3.7/site-packages/IPython/core/interactiveshell.py:xxxx: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D. warn("To exit: use 'exit', 'qui ...
Spinning Up 研究笔记 (零) - 开端
这个 “零” 主要是说明我写这个笔记的目的以及一些期望. Spinning Up 算是第一个我真正学习的 RL 项目, 我希望把 Spinning Up 项目中实现的算法都讲解一遍.
准备首先 clone 下 spinningup 项目 (不要告诉我你连 Git 都没下载),
1git clone https://github.com/openai/spinningup.git
然后按照spinningup 安装教程将该装的都装一遍, 接下来的代码都在其中执行.
已经完成的
参考资料
OpenAI Spinning Up 文档
Spinning Up Github 项目