最近,华为和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. The sultion of P4959

    problem & blog 首先我们看到 \(x,y\) 有可能为负数,所以我们先把它旋转到第一象限. 然后我们发现如果 \(x_a \ge x_b\) 且 \(y_a \ge y_b\) ...

  2. 白话理解和使用DOCKER VOLUME

    Docker使用Volume来管理宿主机和容器内数据的映射  什么是数据卷(Volume)Docker镜像被存储在一系列的只读层中.当我们创建一个容器时,Docker会读取镜像(只读),并在其顶部添加 ...

  3. C#.NET与JAVA互通之DES加密V2024

    C#.NET与JAVA互通之DES加密V2024   配置视频:     环境: .NET Framework 4.6 控制台程序 JAVA这边:JDK8 (1.8) 控制台程序   注意点: 1.由 ...

  4. 第一篇Scrum冲刺博客--原班人马打造队

    0 项目地址 点此进入 1 第一次开会/任务认领 1.1 第一次例会(2024.4.27) 第一次开会照片记录 1.2 开发认领 在查看老师在实验报告中学长的博客给了我一定的启发,我在腾讯表格中创建了 ...

  5. error while loading shared libraries: liblzma.so.5: cannot open shared object file: No such file or directory

    CentOS6安装mongo报错 error while loading shared libraries: liblzma.so.5: cannot open shared object file: ...

  6. python json反序列化为对象

    在Python中,将JSON数据反序列化为对象通常意味着将JSON格式的字符串转换为一个Python的数据结构(如列表.字典)或者一个自定义的类实例.虽然Python的标准库json模块不提供直接将J ...

  7. 【资料分享】RK3568核心板规格书(4x ARM Cortex-A55(64bit),主频1.8GHz)

    1 核心板简介 创龙科技SOM-TL3568是一款基于瑞芯微RK3568J/RK3568B2处理器设计的四核ARM Cortex-A55全国产工业核心板,每核主频高达1.8GHz/2.0GHz.核心板 ...

  8. [UG 二次开发 python] 导出BOM表(包含图片)

    只导出最底层的零件,零件的属性已经设置好,零件的截图生成后,放在零件的同一个文件夹下 用到了 xlsxwriter # nx: threaded # 导出BOM表 __version__ = &quo ...

  9. Java使用不同方式优雅拆分业务逻辑

    如何处理复杂的业务逻辑 在实际的业务开发当中,经常会遇到复杂的业务逻辑,可能实现出来的代码并没有什么问题,但是代码的可读性很差. 那么在实际开发中如何避免大面积的 if-else 代码块的问题? 补充 ...

  10. PLSQL 无法查询带中文的WHERE条件

    今天遇到一个坑爹的问题,plsql无法查询带where条件的语句,是因为plsql中Oracle的客户端字符集和服务器上的不一样造成的,需要新增系统环境变量,特意记录下解决办法. 第一步:查询服务器上 ...