• Model-based reinforcement learning

    Model-based reinforcement learning和model-free reinforcement learning很难区分和界定,这篇文章记录一下几片关于model-based的文献,对于这几年做的强化学习做一个总结。

    参考文献:

    《Model-based Reinforcement Learning: A Survey》

    读后总结:这篇文章写的不清不楚,没有啥干货,讲的太浅显了。

  • 使用ADP设计线性系统最优控制器

    搞了很久的ADP(Adaptive dynamic programming),但是,仿真总是会出现一些问题,因为从我个人的理解来看,很多ADP文章其实都是局部且异步的PI或者VI算法。根据《Reinforcement Learning: An Introduction》书中所介绍的方法,PI和VI都是对于离散的状态空间来说的。如果对于具有连续的状态空间的问题来说,需要采用近似的算法来拟合其值函数。本文是对多篇ADP文章进行的总结和仿真。主要包括:

    1. 《Nearly optimal control laws for nonlinear systems with saturating actuators using a neural network HJB approach》2004年
    2. 《Discrete-Time Nonlinear HJB Solution Using Approximate Dynamic Programming: Convergence Proof》2008年
    3. 《Policy Iteration Adaptive Dynamic Programming Algorithm for Discrete-Time Nonlinear Systems》2014年
    4. 《Discrete-Time Local Value Iteration Adaptive Dynamic Programming: Convergence Analysis》2018年
  • 上海交通大学硕士博士学位论文批量下载工具

    上海交通大学有一个硕士博士学位论文系统 ,里面有所有的硕士博士学位论文,但是由于其网站速度非常慢(论文拆分成一张一张图片),经常打开的时候挂了,严重影响体验。所以写了这么一个批量下载某个专业所有硕士或者博士学位论文的小工具。

  • 科研论文撰写与自定义语料库

    去年上《学术英语》课程的时候学过了科研语料库的使用,但当时没咋写论文,所以实际操作体验效果不明显,但是最近在润色之前写的一篇论文,又想到了这个语料库的使用,于是用了一下,发现效果还不错,本博客记录一下语料库的使用。同时,给出制作语料库的Python脚本。

  • Safe learning框架综述

    本文主要是对《Learning-Based model predictive control: Toward Safe Learning in Control》文章中Section5中所引用的文章的笔记和理解,以及safe reinforcement learning一个简单的综述和分析。

    介绍safe reinforcement learning不同的思路和方法(以2021TAC文章为例)

    综述文章《Learning-based model predictive control: Toward Safe Learning in Control》,文中主要对三个方向进行阐述和介绍:1. learning the system dynamics 2. Learning the controller design 3. MPC for safe learning. 其中,前两个都是很常规的操作,对于第三个,结合当前很火的safe reinforcement learning,文中列举了几个工作。这篇文章主要是ETH的实验室的人做的工作,其引用了很多自己实验室的工作。

    通常基于学习的控制算法,例如强化学习,已经在高维度的控制问题中取得了巨大进展,但是由于系统物理约束的存在,大部分的工作都不能保证安全性,尤其是在迭代学习的过程中,为了解决这个问题,2011年的一篇文章《Guaranteed safe online learning of a bounded system》提出了一个安全性框架,通过在必要的时候使用一个基于模型的控制器来进行控制,否则使用一个基于学习的控制器进行控制,来最优化损失函数。

  • MPC笔记和理解

    最近在准备拟定自己的研究方向及资格考试答辩,然而,看了很多,发现实在太难确定方向了,旁人都建议说边做边找,做的过程中慢慢再挖掘并补充,且自己以前的确看的太多太杂了(虽然也是不得已而为之),现在已经是第二年快结束了,该定下来研究方向了,遂不再继续广泛挖掘,直接专注于某一个具体的小点进行深入研究。和实验室师兄一起解决SMPC的问题,这周先整理下MPC相关的笔记和理解。

  • Input Convex Neural Network复现及仿真验证

    《Input Convex Neural Networks》

    《Optimal Control Via Neural Networks: A Convex Approach》

    对于复杂系统的控制往往分为两步,对系统的辨识和控制器的设计。 深度神经网络被证明在辨识任务中取得了重大成功,但是,由于这些辨识出来的系统往往是非线性和非凸的,其控制器很难设计,所以,实际系统往往还是用线性模型去逼近,尽管这些线性模型的拟合能力很弱,因此,往往设计出来的控制器的性能都不行。

    这两篇文章,主要提出了ICNN及其改进网络结构,ICNN的特点就是对于输入是凸的,第一篇文章主要提出了ICNN这一网络结构,通过将神经网络的前向通道中的权重设置为非负值,这一简单的改变,就可以将神经网络变为输入凸的,且该网络的拟合能力并为受到较大的影响。

    这篇文章主要完成3点:

    1. 复现ICNN,原版的ICNN是用tensorflow写的,代码不全,且使用了较老的库版本,运行不了,在此采用pytorch进行复现出一个通用程序。
    2. 对于一个给定的函数:,利用普通的DNN,和ICNN进行对比,验证ICNN的拟合能力(验证的过程使用相同的网络层数,每层的节点数,学习率等参数)。
    3. 对于《Input Convex Neural Networks》中的simulation中的synthetic 2D example和《Optimal Control Via Neural Networks: A Convex Approach》中的APPENDIX中的Toy Example分别进行复现及仿真验证。
  • 科研论文各段落表达整理背诵

    上一篇博客中,科研论文常用句式语法汇总整理,每天将所看论文中的优秀的语句进行摘录整理,经过一个月的使用(其实也就不到一周,中间春节没有学习),感觉也还是有点不得劲,所以,这篇博客是对论文的各部分的段落进行整理,翻译成中文,最好能背诵下来(笨办法,先试试看,毕竟身边没人教我hhhh)。

    这篇博客将长期更新,分为5个部分,包括abstract, Introduction, method, simulation, conclusion,争取做到每天更新,每天看一篇论文,在学习其内容的同时,摘录其优秀的整段文字,并进行分类整理。

    每天整理并背诵一段话。

  • 科研论文常用句式语法汇总整理

    科研论文写作和平常的写作不太一样,从我自己写下来的感觉,发现自己写的英文句式很死板,读上去没有那些native的作者的语言的感觉,因此需要进行专业训练。训练方式就是模仿那些作者的文字。

    这篇博客将长期更新,分为5个部分,包括abstract, Introduction, method, simulation, conclusion,争取做到每天更新,每天看一篇论文,在学习其内容的同时,整理其值得学习借鉴的语法句式,分类整理。

    对于每一篇文章,每一个section找5句有特色的句子,将其中文意思和英文表单都整理一下,因为从实际写作的角度来看,很多情况下我们无法写出合适的英文表达,有一部分原因是因为我们使用中文都无法准确将我们想要表达的内容表达出来,所以英译汉也是一个十分重要的部分。

    通过不断整理,相当于整理了一个可供中文查询的数据库,例如,我想搜"关系",直接可以搜到整理到的相关的语句表达。

    在阅读文献的时候,将好的语句表达用不同颜色标注一下。

  • Tensorboard中的图放到论文中

    最近写了一篇强化学习用于供水管网的论文,算法的训练过程中用到了Tensorboard(stable-baselines提供了tansorboard的接口)来可视化训练数据,但是,tensorboard的图直接放入到论文中会显得很难看,包括xlabel和ylabel需要重新定义,图片的风格需要修改等等操作直接在tensorboard中很难操作,需要将这些数据导出来,然后使用matplotlib和seaboarn来进行plot,这篇博客记录一下如何将tensorboard中的数据进行导出并画图。

1234510