最近,华为和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. 增补博客 第八篇 python 中国大学排名数据分析与可视化

    [题目描述]以软科中国最好大学排名为分析对象,基于requests库和bs4库编写爬虫程序,对2015年至2019年间的中国大学排名数据进行爬取:(1)按照排名先后顺序输出不同年份的前10位大学信息, ...

  2. Java动态获取实现类 Class.forName(clazz).newInstance()和applicationContext.getBean, bean Map寻找方式,Java Map定义和初始化方法

    Java动态获取实现类 Class.forName(clazz).newInstance()和applicationContext.getBean, bean Map寻找方式,Java Map定义和初 ...

  3. tampermonkey脚本 百度搜索屏蔽CSDN

    // ==UserScript==// @name         屏蔽CSDN// @namespace    http://tampermonkey.net/// @version      20 ...

  4. 2019 香港区域赛 BDEG 题解

    B.Binary Tree 题意:给你一棵二叉树.有两个游戏者,回合制,他们每次可以删去这棵二叉树中的一棵满二叉树.求最后谁赢. 解法:每一棵满二叉树有奇数个节点,那么每次游戏者只能删去奇数个节点,所 ...

  5. Hbase第二课:Hbase架构与基础命令

    目录 HBase架构与基础命令 一.了解HBase 1.1 HBase概述 1.2 HBase处理数据 1.3 HBase与HDFS 二.HBase相关概念 2.1 分布式数据库 2.2 列式存储 2 ...

  6. 【动画进阶】类 ChatGpt 多行文本打字效果

    今天我们来学习一个有意思的多行文本输入打字效果,像是这样: 这个效果其实本身并非特别困难,实现的方式也很多,在本文中,我们更多的会聚焦于整个多行打字效果最后的动态光标的实现. 也就是如何在文本不断变长 ...

  7. Mac Docker设置国内镜像加速器

    安装docker 点我直达 设置国内加速镜像 { "experimental": false, "features": { "buildkit&quo ...

  8. C# 线程与进程

    一.前台线程与后台线程对象 为什么要用多线程? 1.让计算机"同时"做多件事情,节约时间. 2.多线程可以让一个程序"同时"处理多个事情. 3.后台运行程序,提 ...

  9. Oracle 启用、禁用触发器

    基本语法 启用指定表中所有触发器(trigger) alter table table_name enable all triggers; 语法: alter table 表名 enable all ...

  10. 教你基于MindSpore用DCGAN生成漫画头像

    本文分享自华为云社区<[昇思25天学习打卡营打卡指南-第二十天]DCGAN生成漫画头像>,作者:JeffDing. DCGAN生成漫画头像 在下面的教程中,我们将通过示例代码说明DCGAN ...