0%

Pytorch有非常多的函数,这篇文章长期更新,记录使用到的函数。

参考资源:

  1. Pytorch cheat sheet

Categorical

官方文档:https://pytorch.org/docs/stable/distributions.html

CLASS torch.distributions.categorical.Categorical(probs=None, logits=None, validate_args=None)

作用:创建一个以probs为参数的类别分布

采样的样本是\(\{0,...,K-1\}\)个整数,其中,\(K\)probs的长度。

如果probs是一维的,那么就是对对应的index进行采样。

如果probs是二维的,那么相当于对一批一维的数组进行采样。

阅读全文 »

上次读PEP8还是很多年前的事情了,现在重新读一下,看看有没有新的收获

简介

本文档给出了构成主要Python发行版中标准库的Python代码的编码约定。

很多项目有自己的编码规定,优先权更高。

  • 代码的可读性非常重要
  • 代码规范可以在项目中获得一致性
阅读全文 »

实验室有一台I7-3770,32GB内存的服务器,虽然没有显卡,但是用来作为编译机器还是可以的,所以装了一个Proxmox系统来进行管理,可以很方便的开虚拟机,实验室的小伙伴能一起使用了。

阅读全文 »

本文是对《Policy Gradient Adaptive Dynamic Programming for Data-Based Optimal Control》文章的整理归纳

期刊:《IEEE TRANSACTIONS ON CYBERNETICS》2019影响因子:11.079

这篇文章考虑了离散时间非线性系统的无模型的最优控制问题,提出了一个基于数据的策略梯度自适应动态规划算法(PGADP),使用离线和在线的数据而不是数学模型,使用梯度下降方法来改进策略,这篇文章还证明了PGADP算法的收敛性。

简介

最优控制问题一般需要求解一个复杂的Hamilton-Jacobi-Bellman equation,对于非线性系统,很难求出解析解,用ADP求解该方程在近年来取得了较大的成果。

主要分为三大类:

  • model based:用ADP来近似求解HJBE
  • partially model based:既用模型也用数据
  • model free:模型未知,完全从数据中学习控制策略
阅读全文 »

本文是对Sutton的《Reinforcement learning An introduction》书中第13章Policy Gradient Methods部分的总结,主要包括Policy Gradient方法的离散时间情形下的公式推导REINFORCE算法REINFORCE with Baseline算法Short Corridor with switched actions环境下的仿真

Policy Gradient

和PG算法相对应的是基于action-value的方法,这些方法学习动作的价值然后根据这些价值的大小选择行为,但是对于PG算法来说,直接学习一个参数化的策略,该策略的输入是状态,输出是动作,策略可以直接选择动作而不是依据价值函数进行判断,用\(\theta \in R^d\)来表示策略的参数,可以将需要学习的策略写成:\(\pi(a|s, \theta)=Pr\{A_t=a|S_t=s,\theta_t=\theta\}\),意思是在t时刻,当agent处于状态\(s\),选择动作\(a\)的概率,PG算法的目标就是求这个\(\pi(a|s, \theta)\)

策略参数的学习需要基于某种性能度量\(J(\theta)\)的梯度,PG方法的目标是最大化性能指标,所以它们的更新近似于\(J\)的梯度上升:

\[\boldsymbol{\theta}_{t+1}=\boldsymbol{\theta}_{t}+\alpha \widehat{\nabla J\left(\boldsymbol{\theta}_{t}\right)}\]

其中,\(\widehat{\nabla J\left(\boldsymbol{\theta}_{t}\right)} \in \mathbb{R}^{d}\)是一个随机估计,它的期望是性能指标对它的参数\(\boldsymbol{\theta}_{t}\)的梯度的近似。所有符合这个框架的算法都是策略梯度方法。

阅读全文 »

本文主要是对文章《A Survey of Deep Learning Applications to Autonomous Vehicle Control》的整理

期刊:IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS

影响因子:6.3

对于自动驾驶,设计一个满足所有驾驶场景的控制器是一个非常大的挑战因为真实的环境非常复杂且很多场景没有办法去测试。然而,深度学习方法展现出了很好的前景,对于复杂和非线性控制问题,它不光有非常好的性能,而且学习出来的规则很容易迁移到另一个新的场景中。这篇论文对近年来所有用深度学习方法解决自动驾驶问题的文献做了综述,自动驾驶涉及了多学科的内容和方法,该文主要综述控制问题而非感知问题。分析了优缺点,给出了存在的挑战。

阅读全文 »

基金推荐与投资记录系统:如何成为一名合格的韭菜!

项目背景

基金相比于股票,收益要更加稳定,不需要过多专业知识且无需花自己大量的时间去盯盘,适合有一些闲钱却又不会投资的人进行投资。

今年2月份以来我开始投资基金,使用支付宝进行购买。

在投资的过程中,我发现了几个问题:

阅读全文 »

2019年3月份看到了有人安利Manjaro,装电脑上用了一年,分享一下使用一年的感受。

先说结论,我上个月换回了Ubuntu。

Manjaro的优点

  1. 装软件非常方便,基本上各种软件在软件源中都能找到,并直接安装,而且安装的都是新版本。
  2. 包括CUDA,显卡管理软件(忘记叫什么了,可以设置使用集显或独显或只用cuda)。
  3. WIKI资料很丰富,出了问题可以直接查。
阅读全文 »

问题背景

不确定动态系统的鲁棒控制近年来受到了控制界的广泛关注[1],对于很多场景,例如化学过程,电力系统,机器人和航天工程中,被控系统往往不能够得到精确的数学模型或被控系统存在不确定性,因此获得系统的鲁棒性能对系统的精准控制起着重要作用。

鲁棒稳定性和最优控制器的设计具有一定的关系[2],求解鲁棒控制器在某些条件下可以转化为求解一个最优控制器的问题,对于离散时间线性系统来说,求解最优控制器,就是求解代数Riccatic方程,对于非线性系统,就是求解HJB方程。然而,对于一般的非线性系统,HJB方程的解析解可能不存在,通常,使用迭代的算法进行求解,可以采用ADP(approximate dynamic programming)的方法进行求解。

近些年,强化学习在解决不确定环境下的决策问题上取得了巨大的成功[3],通常,强化学习算法可以分为on-policy和off-policy两类算法,on-policy算法将每次迭代后的策略运用到被控对象上,而off-policy优化的策略和与环境交互的策略不一定是一个策略,即策略的更新可以在多步迭代以后。

目前,对于不确定性离散时间线性系统的鲁棒控制问题,已经有一些团队采用强化学习方法,在系统动力学信息完全未知或部分未知的情况下,使用自适应动态规划的算法,对贝尔曼方程进行求解。

本文章对使用强化学习求解线性离散时间不确定性鲁棒控制器的问题进行综述。

阅读全文 »

当阅读完一篇论文后,可能会对论文做一些整理,论文中的公式有时候非常多且复杂,本篇博客记录一些提高生产力的工具

Mathpix:将论文中的公式识别成latex或者mathml格式

有一款软件:Mathpix,能够将公式识别成latex或者mathml格式。

使用该软件需要使用邮箱注册账户,免费版一个月只能识别50次,也有一个开发版,一个月能识别1000次,但是需要信用卡验证,对于国内用户来说,比较麻烦。

这里给出一个解决办法:使用临时邮箱,待免费套餐使用完后,重新注册账户,测试了几个免费邮箱服务,大多被mathpix识别了,https://temp-mail.org/en/ 这个我测试了一下,没有被mathpix识别,可以用于注册。

阅读全文 »