强化学习是否可以AI4Science呢?
最近,华为和Google都推出了AI的天气预报系统(发表了nature、science论文,但是没开放公众使用),可以说这个传统的Science问题已经被AI算法解决,这也说明了传统Science问题是可能被AI解决的,这也证明了AI4Science是具备可行性的。
传统的Science问题如果用一个简单的话来进行解释,那就是一个复杂的方程组,可能是高幂次计算的,也可能是偏微分的,总之,是一个极为复杂的方程组,并且其变量元素数量极为庞大(比如,500个输入变量,甚至是1000个输入变量的高纬度的方程组),而天气预报则是这个类型中的一个经典问题。
使用Science方法来求解天气预报问题就是用大规模的计算机(高性能计算,HPC)来对该问题进行求解,求解这个高纬度的复杂方程组,而AI4Science的方法来解决这个问题则是根据历史中的各个地方的天气情况的数值进行AI预测的训练,比如说之前使用Science方法计算5日后的北京天气情况需要利用北京及其周边地区的前三日的天气情况的数值(气压、温度、气旋等等,可能是1000个变量的数值),然后用这个Science的方程组(物理学、地球学、地理学、气象学等多学科给出的方程组,带有约束的方程组)来进行求解,而AI方法则是根据已知过去几十年时间内世界各地的天气数值,然后拟合出这么一个函数,只要输入某地区的周边的一定时间的天气情况的数值就可以推断出几天后该地区的天气情况。
可以说,Science方法的计算就是用仿真方程组来进行计算,天气预报、地震预报、空气动力学计算、流体力学的计算、nuclear weapon的爆炸方程式的计算等等,这些科学问题都是用这种计算方程组的方式来进行求解的。由于利用这种方程组求解往往需要耗费大量的算力的,也是为啥各个国家都大力的投资搞高性能计算,如,我国的天河超算、银河超算、太湖超算,等等,但是由于这种方式的计算代价太大,因此在真实的计算中往往会适当的采取近似的方法来进行计算,因此往往导致计算的精度下降,这也是为什么天气预报总是好像不太准确的。但是这些Science问题的方程组都是固定,不同的是这些方程组的输入变量的数值是不同的,那么这是不是也是可以用神经网络来进行拟合呢,这也是现在的AI4Science的解决思路。
那么这里的问题是强化学习算法是否也可以同样使用AI4Science的方法来解决呢?
比如,我们可以获得足够的电力驱动的6轴机械臂的控制数据,我们把这个数据作为一个拟合函数的输入值,然后获得该机器臂的动力学特性的一种中间表示,然后在根据这个中间表示获得到该条件下这个机器臂的最优控制策略,那么是不是就实现了强化学习问题的AI4Science呢。
但是,这里的对强化学习的这种思考其实和前面提到的science问题的AI4Science是不同的,因为前面提到的science问题的AI4Sience问题的解决方法难点在神经网络的具体结构的设计上,其逻辑性理解起来还是比较易懂的,而对于强化学习来说这或许就没有这么简单了。强化学习最终的学习目标是获得一个state和action的映射关系,这里假设一个机器人的状态维度为100,而动作维度为30,因此,我们的最终学习目标就是一个输入维度为100,而输出维度为30的一个映射函数。考虑到AI4Science的可行性,这里我们需要对一个机器臂的所有的数值进行AI4Science的处理,这里的一个前提就是一个机器臂的物理控制特性是固定的,也就是说一个机械臂的行为表现是由其电机的动力数值、机械臂质量、扭矩、转角等等物理数值限制的,也或者说根据物理公式,我们在知道一个机器臂的质量、支点位置、自由度数量等参数后,再给定具体的电机的转角等等信息,我们是可以根据公式计算出机器臂的下一步的具体位置状态的。在现有的强化学习的构架下,我们是不需要知道机器臂的具体特性的,我们只需要知道不同的机械臂的具体状态下(机械臂的位置信息等等)下一步的电机驱动的情况(电机转角等100个维度信息)应该是怎么样的。
由于机器臂的最优控制策略是可以利用公式计算出来的,而不同型号的机器臂,不同的具体参数的机器臂,我们往往都需要重新计算并得到其最优的控制策略。如果我们可以把机器臂的所有参数,所有可以影响到机器臂性能的硬件参数,输入给神经网络,训练出对某种情况下的机械臂的动力学的表示,比如,把机器臂的各个电机的动力值、阻力值、机械臂的质量和重心等等,从而得到某种对该类型机械臂的动力学的一种表示,而后获得一个新型号的机器臂,我们都可以利用之前训练的神经网络来获得该类型机械臂的东西学的潜在表示,并快速可以计算出该机械臂的最优的控制策略。
假设我们有10000个型号的机器臂机器人,不同型号之间的机械臂的动力参数,阻力参数,机器臂的重心和质量都都是不同的,但是这10000个不同型号的机器臂的运动都是遵守基本的物理学公式的,那么我们可以不可以对这些机器臂的运动数据进行建模,不是用数学公式建模,而是用神经网络来进行建模呢。比如我们通过对这10000个机器臂的运动数据建立成一个运动大模型,每个机器臂的数据也包括重量、质量、阻尼,等等,当我们获得到这个机器臂的运动大模型之后我们就相当于获得了一个可以快速学习的强化学习环境模型,这时候我们如果有了一个新的型号的机器臂,我们根据这新的型号的机械臂的具体参数和实际的运动数据来微调这个运动大模型,那么我们是不是可以快速的获得到一个适配于这个新的机械臂的运动大模型呢,这时候我们有了这个新型号机器臂的运动模型也就意味着我们有了这个机器臂的强化学习的环境模型了,那么我可以利用这个模型快速的训练属于这个机械臂的强化学习模型,这里我们可以暂且把这种算法叫做元模型学习算法。
强化学习是否可以AI4Science呢?的更多相关文章
- 【整理】强化学习与MDP
[入门,来自wiki] 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的 ...
- 强化学习之 免模型学习(model-free based learning)
强化学习之 免模型学习(model-free based learning) ------ 蒙特卡罗强化学习 与 时序查分学习 ------ 部分节选自周志华老师的教材<机器学习> 由于现 ...
- (译) 强化学习 第一部分:Q-Learning 以及相关探索
(译) 强化学习 第一部分:Q-Learning 以及相关探索 Q-Learning review: Q-Learning 的基础要点是:有一个关于环境状态S的表达式,这些状态中可能的动作 a,然后你 ...
- 强化学习读书笔记 - 02 - 多臂老O虎O机问题
# 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...
- 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)
强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...
- 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)
强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...
- 强化学习之Q-learning ^_^
许久没有更新重新拾起,献于小白 这次介绍的是强化学习 Q-learning,Q-learning也是离线学习的一种 关于Q-learning的算法详情看 传送门 下文中我们会用openai gym来做 ...
- 强化学习 - Q-learning Sarsa 和 DQN 的理解
本文用于基本入门理解. 强化学习的基本理论 : R, S, A 这些就不说了. 先设想两个场景: 一. 1个 5x5 的 格子图, 里面有一个目标点, 2个死亡点二. 一个迷宫, 一个出发点, ...
- TensorLayer官方中文文档1.7.4:API – 强化学习
API - 强化学习¶ 强化学习(增强学习)相关函数. discount_episode_rewards([rewards, gamma, mode]) Take 1D float array of ...
- 强化学习(十九) AlphaGo Zero强化学习原理
在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学 ...
随机推荐
- NOIP 2023 三值逻辑
problem 我们定义 \(\text{T}\) 对应 \(n + 1\),\(\text{U}\) 对应 \(n + 2\),\(\text{F}\) 就是 \(-\text{T}\). 现在我们 ...
- C++中 符号的优先级
符号 运算顺序 :: 从左至右 a++ a-- type() type{} a() a[] . -> 从左至右 ! ~ ++a --a +a -a (type) sizeof &a *a ...
- Vue学习:14.工程化开发&脚手架
0基础如何进入IT行业? 简介:对于没有任何相关背景知识的人来说,如何才能成功进入IT行业?是否有一些特定的方法或技巧可以帮助他们实现这一目标? 方向一:学习路径 1.明确兴趣和目标:首先确定你对IT ...
- 升级babel7后,直接引用element-ui中没有暴露出来的组件image-viewer.vue导致的打包错误
问题 & 解决方案 升级babel7后,原先代码中像这样直接引用element-ui组件的地方,出现了报错 Module parse failed: Unexpected token (1:0 ...
- Python数据类型(数字,字符串,[列表],(元组),{字典:字典值},{列表,列表2})
Python数据类型(数字,字符串,[列表],(元组),{字典:字典值},{列表,列表2}) # 1. # Python3 数字(Number) # Python 数字数据类型用于存储数值. # 数据 ...
- Css实现浏览滚动条效果
Css实现浏览滚动条效果 前言 也是有大半个月没有更新文章了,大部分时间都在玩,然后就是入职的事.今天就更新一个小知识,刷抖音的时候看到的,感觉还不错. 属性介绍 关键属性animation-time ...
- Chrome插件:Postman Interceptor 调试的终极利器
今天给大家介绍一款非常实用的工具--Postman Interceptor. 这个工具可以捕捉任何网站的请求,并将其发送到Postman客户端. 对于经常和API打交道的程序员来说,Postman I ...
- Apline部署K3s的Agent
之前我们在Ubuntu上部署了K3s的Server节点(传送门),这次我们加入两台K3s的Agent节点搭建一个K3s的3节点工作环境. 需要准备好网络环境,确保三台VM之间是可以ping通的,设置好 ...
- 嵌入式ARM端测试手册——全志T3+Logos FPGA评估板(下)
前 言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu18.04.4 64bit 虚拟机:VMwa ...
- Restful和WebService区别
简介 Restful是一种架构风格,其核心是面向资源,更简单: 而webService底层SOAP协议,主要核心是面向活动: 两个都是通过web请求调用接口 RESTful是什么 REST就是(REp ...