最近,华为和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呢?的更多相关文章

  1. 【整理】强化学习与MDP

    [入门,来自wiki] 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的 ...

  2. 强化学习之 免模型学习(model-free based learning)

    强化学习之 免模型学习(model-free based learning) ------ 蒙特卡罗强化学习 与 时序查分学习 ------ 部分节选自周志华老师的教材<机器学习> 由于现 ...

  3. (译) 强化学习 第一部分:Q-Learning 以及相关探索

    (译) 强化学习 第一部分:Q-Learning 以及相关探索 Q-Learning review: Q-Learning 的基础要点是:有一个关于环境状态S的表达式,这些状态中可能的动作 a,然后你 ...

  4. 强化学习读书笔记 - 02 - 多臂老O虎O机问题

    # 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...

  5. 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)

    强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...

  6. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

  7. 强化学习之Q-learning ^_^

    许久没有更新重新拾起,献于小白 这次介绍的是强化学习 Q-learning,Q-learning也是离线学习的一种 关于Q-learning的算法详情看 传送门 下文中我们会用openai gym来做 ...

  8. 强化学习 - Q-learning Sarsa 和 DQN 的理解

    本文用于基本入门理解. 强化学习的基本理论 : R, S, A 这些就不说了. 先设想两个场景:  一. 1个 5x5 的 格子图, 里面有一个目标点,  2个死亡点二. 一个迷宫,   一个出发点, ...

  9. TensorLayer官方中文文档1.7.4:API – 强化学习

    API - 强化学习¶ 强化学习(增强学习)相关函数. discount_episode_rewards([rewards, gamma, mode]) Take 1D float array of ...

  10. 强化学习(十九) AlphaGo Zero强化学习原理

    在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学 ...

随机推荐

  1. chrome edge CORS 允许跨域

    edge: edge://flags/#block-insecure-private-network-requests chrome: 在谷歌浏览器地址栏输入"chrome://flags/ ...

  2. C#.NET 操作FTP

    工具类: using System; using System.Collections.Generic; using System.IO; using System.Net; namespace Co ...

  3. 你唯一需要的是“Wide Events”,而非“Metrics、Logs、Traces”

    Charity Majors 的这句话可能是对科技行业当前可观察性状态的最好总结--完全的.大规模的混乱.大家都很困惑.什么是 trace?什么是 span?一行日志就是一个 span 吗?如果我有日 ...

  4. 什么是 MyBatis 的接口绑定,有什么好处?

    接口映射就是在 MyBatis 中任意定义接口,然后把接口里面的方法和 SQL 语句绑定,我们直接调用接口方法就可以,这样比起原来了 SqlSession 提供的方法我们可以有更加灵活的选择和设置.

  5. AGE SORT

    AGE SORT 你有所有城市的人的年齡資料,而且這城市的人們都大於1歲,且都不會活超過100歲.現在你有個簡單的任務以升冪去排序所有的年齡 Input 接下來會有很多筆的資料,每筆資料從輸入n 開始 ...

  6. Docker镜像下载慢/失败?Linux代理使用不便?想在无Docker环境下载镜像?试试我这款开源项目吧

    我要在这里放一段代码块 // 这是一段防爬代码块,我不介意被文章被爬取,但请注明出处 console.log("作者官网:https://www.hanzhe.site"); co ...

  7. JavaScript:Function:函数(方法)对象

    <!DOCTYPE html><html>    <head>        <meta charset="utf-8">      ...

  8. 修改Oracle数据表空间存储位置

    查看数据文件的存储路径: SQL> select name from v$datafile; NAME --------------------------------------------- ...

  9. 关于Collection和Map的笔记

    此二者在日常编程中,用得太频繁,所以多少有必要记录下,便于需要的时候翻翻. 但鉴于它们的后代太多,逐一牢记有有点难度,所以学习上应该把握以下几点即可: 含义 重要区别 常用的实现类和工具 关注要点:有 ...

  10. Linux驱动:输入子系统(input-subsystem) 分析

    Linux驱动:输入子系统 分析 参考: https://www.cnblogs.com/lifexy/p/7542989.html https://blog.csdn.net/myselfzhang ...