openai 神经网络 ai神经网络深度学习
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
比如以并行训练一个三层的神经网络为例,其中并行可以分为数据并行、pipeline并行,trensor并行和专家并行,图中不同颜色代表不同层、虚线隔开的是不同的GPU。
听上去很多,但理解这些并行技术实际上只需要对计算结构进行一些假设,然后对数据包的流动方向有所了解即可。
训练流程无并行
训练一个神经网络是一个迭代的过程。
在一次迭代中,输入数据经过模型的层,前向传递后即可为一个batch数据中的每个训练实例计算输出。
然后各层再向后传递,通过计算每个参数的梯度来传播每个参数对最终输出的影响程度。
每个batch数据的平均梯度、参数和一些每个参数的优化状态被传递给一个优化算法,比如Adam可以计算下一个迭代的参数(在你的数据上应该有更好的性能)和新的每个参数的优化状态。
随着训练在大量数据上的迭代,模型不断进化,产生越来越精确的输出。
在整个训练过程中,会有不同的并行技术在不同的维度上进行切割,包括:
1、数据并行,即在不同的GPU上运行一个batch的不同子集;
2、pipeline并行,即在不同的GPU上运行模型的不同层;
3、tensor并行,即将单一操作(如矩阵乘法)的数学运算拆分到不同的GPU上;
4、专家混合(Mixture of Experts, MoE),即只用每层的一部分来处理每个输入实例。
并行中说的GPU并非仅局限于GPU,对于其他神经网络加速器的用户来说,这些想法同样有效。
数据并行
数据并行训练意味着将相同的参数复制到多个GPU(通常称为worker),并将不同的实例分配给每个GPU同时进行处理。
单纯的数据并行仍然需要模型符合单个GPU的内存要求,如果你利用多个GPU进行计算,那代价就是存储许多重复的参数副本。有一些策略可以增加你的GPU可用的有效RAM,比如在两次使用之间将参数暂时卸载到CPU内存。
当每个数据并行worker更新其参数副本时,他们需要协调以确保每个worker继续拥有类似的参数。
最简单的方法是在worker之间引入阻塞式通信:
1、在每个worker上独立计算梯度;
2、在各worker上平均梯度;
3、每个worker上独立计算相同的新参数。
其中步骤2是的阻塞需要传输相当多的数据(与worker的数量乘以参数量的大小成正比),非常有可能降低训练吞吐量。
虽然有各种异步同步方案来消除这种开销,但它们会损害学习效率;在实践中,研究人员通常还是会坚持使用同步方法。
Pipeline并行
pipeline并行训练的意思是将模型的顺序块分割到不同的GPU上,每个GPU只持有一部分参数,因此,同一个模型在每个GPU上消耗的内存比例较小。
将一个大的模型分割成连续层的大块是很直接的一种方式。然而,各层的输入和输出之间存在着顺序上的依赖性,所以一个朴素的实现可能会导致大量的空闲时间,而wroker在等待前一个机器的输出被用作其输入。
这些等待时间块被称为气泡(bubbles),浪费了空闲机器可以完成的计算。
我们可以重用数据并行的思想,通过让每个worker一次只处理一个数据元素的子集来降低气泡的成本,巧妙地将新的计算与等待时间重叠起来。
核心思想是将一个batch分成多个microbatches;每个微批的处理速度应该是成比例的,每个worker在下一个微批可用时就开始工作,从而加速管道的执行。
有了足够的微批,worker在大部分时间内都处于工作状态,并且在每个step的开始和结束时气泡最小。梯度是所有微批的平均值,只有所有微批完成之后才会进行参数更新。
模型被分割的worker的数量通常被称为pipeline深度。
在前向传递期间,worker只需要将其大块层的输出(也叫激活)发送给下一个worker;在后向传递期间,它只将这些激活的梯度发送给前一个worker。如何调度这些传递过程以及如何在微批中聚合梯度,仍然有很大的设计空间。
GPipe的做法是让每个worker连续地处理前向和后向的传递,然后在最后同步地聚合来自多个微批的梯度。而PipeDream则安排每个工作者交替地处理前向和后向通道。
Tensor并行
Pipeline并行是将一个模型按层「垂直」分割,而Tensor并行则是在一个层内「横向」分割某些操作。
对于现代模型(如Transformer)来说,计算瓶颈主要来自激活批矩阵与大权重矩阵相乘。矩阵乘法可以被认为是成对的行和列之间的点积,所以是有可能在不同的GPU上独立计算点积,或者在不同的GPU上计算每个点积的一部分,最后再将结果相加。无论采用哪种策略,我们都可以将权重矩阵切成偶数大小的「碎片」,将每个碎片放在不同的GPU上,并使用该碎片来计算整个矩阵乘积的相关部分,然后再进行GPU间通信来合并结果。
Megatron-LM采用的就是这种方式,它在Transformer的自注意力和MLP层内并行化矩阵乘法。PTD-P使用Tensor、数据和Pipeline并行;它的pipeline调度将多个不连续的层分配给每个设备,以更多的网络通信为代价减少气泡的开销。
有时网络的输入也可以在一个维度上进行并行化,相对于交叉通信来说,并行计算的程度很高。序列并行就是这样一个想法,一个输入序列在不同时间被分割成多个子实例,通过以更细粒度的实例进行计算,可以按比例减少峰值内存消耗。
混合专家系统(MoE)
对于任何一个输入,MoE策略都只有一部分网络被用来计算输出。
比如说一个网络里有很多套权重,网络可以在推理时通过门控机制选择具体使用哪套。这样就可以在不增加计算成本的情况下增加参数量。
每组权重被称为一个「专家」,训练目标是希望网络能够学会将专门的计算和技能分配给每个专家。不同的专家可以托管在不同的GPU上,为扩大模型使用的GPU数量提供了一个明确的方法。
GShard可以将MoE Transformer的规模扩大到6000亿个参数,其方案是只有MoE层被分割到多个TPU设备上,而其他层则是完全重复的。
Switch Transformer则是通过将一个输入路由(routing)到一个专家,成功将模型规模扩展到数万亿的参数,甚至稀疏度更高。
省内存小妙招
除了买GPU外,还有一些计算策略可以帮助节省内存,方便训练更大的神经网络。
1、为了计算梯度,你可能需要保存原始激活值,这可能会消耗大量的设备内存。检查点(Checkpointing, 也被称为激活再计算)可以存储任何激活子集,并在后向通道中以just-in-time的方式重新计算中间激活。
这种方式可以节省大量的内存,而计算成本最多就是多出一个完整的前向传递。我们也可以通过选择性的激活再计算来不断地在计算和内存成本之间进行权衡,也就是检查那些存储成本相对较高但计算成本较低的激活子集。
2、混合精度训练(Mixed Precision Training)是使用较低精度的数字(最常见的是FP16)来训练模型。现代的计算加速器可以用低精度数字达到更高的FLOP数,而且你还可以节省设备RAM。只要处理得当,这种方式训练得到的模型在性能上几乎不会有太大损失。
3、卸载(Offloading)是将未使用的数据暂时卸载到CPU或不同的设备中,然后在需要时再将其读回。朴素的实现方式会大大降低训练速度,但复杂的实现方式会预先获取数据,这样设备就不需要再等待了。
这个想法的一个具体实现是ZeRO,它将参数、梯度和优化器状态分割到所有可用的硬件上,并根据实际需要再将它们具体化。
4、内存效率优化器(Memory Efficient Optimizer)可以减少优化器所维护的运行状态的内存占用,如Adafactor。
5、压缩(Compression)也可用于存储网络中的中间结果。例如,Gist对为后向传递而保存的激活进行压缩;DALL-E在同步梯度之前压缩了梯度。
参考资料:
https://openai.com/blog/techniques-for-training-large-neural-networks/
OpenAI详解进化策略方法:可替代强化学习
openai 入门,openai教程选自OpenAI
作者:Andrej Karpathy等
机器之心编译
参与:吴攀、李亚洲
让机器具备生物一样的进化能力一直是计算机科学的一个热门研究领域,OpenAI 前几天发表了一篇相关研究的论文《用作强化学习的可扩展替代的进化策略(Evolution Strategies as a Scalable Alternative to Reinforcement Learning)》,机器之心当时也对那篇论文和另一篇来自谷歌的相关论文进行了介绍,参阅《》。今天,OpenAI 的博客深度解析了该研究机构的这项新研究,机器之心对该解读进行了编译介绍,论文可点击文末「阅读原文」查看。
进化策略(ES:evolution strategy)是一种已存在了数十年的优化技术,其在现代强化学习基准(如 Atari/MuJoCo)上的表现可以比肩标准的强化学习技术,同时还能克服强化学习的许多不便。
特别的几点包括:进化策略的实现更加简单(不需要反向传播),更容易在分布式环境中扩展,不会受到奖励稀疏的影响,有更少的超参数。这个结果令人吃惊,因为进化策略就好像是在一个高维空间中简单地爬山,每一步都沿着一些随机的方向实现一些有限的差异。
我们的发现是这种已有数十年之久思想强大结果的现代延续。比如说,在 2012 年,AlexNet 论文表明可以如何设计、扩展和训练卷积神经网络(CNN)以在图像识别任务上实现极其优秀的结果,而那时候大多数研究者还认为 CNN 并不是一种有希望的计算机视觉技术。类似地,在 2013 年,深度 Q 学习(Deep Q-Learning)论文表明可以将 Q 学习与 CNN 结合起来以成功地解决 Atari 游戏,从而使强化学习(RL)发展成为了一个有激动人心的实验结果的研究领域,而不再只是理论构想了。同样,我们的研究也表明进化策略可以在强化学习基准上实现优秀的表现,从而消除了人们之前普遍认为的进化策略方法不能用于高维问题的观点。
进化策略易于实现和扩展。我们的实现运行在一个包含了 80 台机器和 1440 个 CPU 内核的计算集群上,其可以仅在 10 分钟内就训练出一个 3D MuJoCo 人形步行者(在 32 核上,A3C 需要大约 10 小时)。使用 720 核,我们也能在 Atari 上实现可与 A3C 媲美的表现,同时还能将训练时间从 1 天降低至 1 小时。
下面,我们将首次简要描述传统的强化学习方法与我们的进化策略方法的对比,还会讨论进化策略和强化学习之间的权衡,最后还会突出介绍我们的一些实验。
强化学习
首先让我们简单看看强化学习的工作方式。假设我们有一些环境(比如游戏),我们想要在其中训练一个代理。为了描述该代理的行为,我们要定义一个策略函数(policy function),这是该代理的大脑,用于计算该代理如何在一个给定的情形中采取行动。在实践中,这个策略通常是一个神经网络,其输入是该游戏的当前状态,然后计算可用的所有允许动作的概率。一个典型的策略函数可能有大约 1,000,000 个参数,所以我们的任务就是找到这些参数的确切配置,以使得该策略能够实现良好的表现(即在很多游戏中获胜)。
上图:在 Pong 游戏中,策略根据输入的屏幕像素来计算移动玩家拍子的概率(右边绿色的拍子):上、下或不动。
该策略的训练过程如下所示。首先是一个随机初始化,我们让该代理与环境进行一阵交互,然后收集交互的「剧情(episode)」(比如,每个 episode 就是一局 Pong 游戏)。由此我们就能得到情况的完整记录:遇到了什么样的状态序列、在每个状态采取了什么动作、每一步的奖励如何。下图给出了一个例子,这三个 episode 每个都表示在一个假想环境中的 10 个时间步骤。其中每个矩形都是一个状态,如果奖励是正面的(比如把球击回给了对方),那么矩形就是绿色;如果奖励是负面的(比如没有接到球),那么矩形则为红色:
这幅图给出了改善策略的一个方法;导致绿色状态的行为是好的行为,导致红色的行为则很糟糕。然后我们可以使用反向传播来计算该网络参数的一次小的更新,该更新将使得未来的状态更有可能是绿色、更少可能是红色。我们预计更新后的策略会更好一点。然后我们迭代这一过程:收集另一批 episode,进行另一次更新……
通过在这些动作中注入噪声来进行探索。我们在强化学习中通常使用的策略是随机的,它们仅计算采取任何动作的概率。通过这种方法,代理可能会在训练过程中发现自己在不同时间处在同一个特定状态,而且由于采样的情况,它也将在不同的时间采取不同的动作。这能提供学习所需的信号:这些动作中有一些会导致好的结果,这些动作就会得到鼓励;另一些则不会奏效,就会被抑制。因此我们可以说,我们通过向代理的动作注入噪声而为其学习过程引入了探索(exploration)――我们可以通过在每个时间步骤从动作分布中采样来做到这一点。这与进化策略不同。
进化策略
关于「进化(Evolution)」。在我们探讨进化策略(ES)之前,有必要强调一下尽管这种方法名字中有「进化」这个词,但进化策略和生物进化关系不大。也许这项技术的早期版本从生物进化上获得了一些启发――在一定的抽象程度上,这种方法可被视为这样一个过程:从个体构成的群体中采样并让其中成功的个体引导未来后代的分布。但是,其数学细节在生物进化方法的基础上实现了很大的抽象,我们最好将进化策略看作是一类黑箱的随机优化技术。
黑箱优化。在进化策略中,让我们完全忘记代理、环境、涉及的神经网络和其中的交互吧。进化策略的整个设置就是一大堆数字输入(假设和前面提到的策略网络的参数数量一样,有 1,000,000 个数字),然后输出 1 个数字(对应总奖励),我们需要找到这 1,000,000 个数字的最好配置。在数学上,我们可以说是根据输入向量 w(该网络的参数/权重)来优化一个函数 f(w),但我们不对 f 的结构做出任何假设,我们只能对其进行评估(因此被称为「黑箱」)。
进化策略算法。直观上来讲,这种优化就是一种「猜测然后检测」的过程,即我们从一些随机参数开始,然后重复执行以下过程:1)随机对该猜测进行一点调整,2)让我们的猜测向效果更好的方向移动一点。具体而言,就是在每个步骤输入一个参数向量 w,然后通过高斯噪声对 w 进行抖动来生成一群(比如 100 个)有稍微改变的参数向量 w1, w2……w100。然后我们在环境中分别运行这 100 个候选项所对应的策略网络,从而独立地对这 100 候选项分别进行评估,然后将每个案例中的奖励加起来。然后其更新后的参数就变成了这 100 个向量的加权和,其中每个权重都正比于其总奖励。(即,我们想让更成功的候选项有更高的权重。)在数学上,你也会注意到这就相当于使用有限差分法(finite difference)来估计参数空间中预期奖励的梯度,只是我们是沿着 100 个随机方向来做的。
我们要看的另一种方法是仍然使用强化学习(策略梯度,具体来说是 REINFORCE),其中的代理的动作是使用高斯策略得出整个参数向量。
上图:进化策略优化过程,这个环境中只有两个参数和一个奖励函数(红色=高、蓝色=低)。在每次迭代,我们都会展示当前参数值(白色)、一群经过抖动的样本(黑色)和估计的梯度(白色箭头)。我们不断将该参数移动到该箭头的顶点,直到我们收敛到了一个局部最优值。你可以使用本文的代码重现这些图。
代码示例。为了得到具体的核心算法并突出其简洁性,这里给出了一段使用进化策略优化二次函数的短代码实例(更长的版本见文末链接)。
# simple example: minimize a quadratic around some solution pointimport numpy as np solution=np.array([0.5, 0.1, -0.3]) def f(w): return -np.sum((w - solution)**2)npop=50 # population size sigma=0.1 # noise standard deviation alpha=0.001 # learning rate w=np.random.randn(3) # initial guess for i in range(300): N=np.random.randn(npop, 3) R=np.zeros(npop) for j in range(npop): w_try=w + sigma*N[j] R[j]=f(w_try) A=(R - np.mean(R)) / np.std(R) w=w + alpha/(npop*sigma) * np.dot(N.T, A)
向参数中注入噪声。注意这里的目标与强化学习优化的目标是一样的:预期的奖励。但是,强化学习是将噪声注入动作空间并使用反向传播来计算参数更新,而进化策略则是直接向参数空间注入噪声。换个说话,强化学习是在「猜测然后检验」动作,而进化策略则是在「猜测然后检验」参数。因为我们是在向参数注入噪声,所以就有可能使用确定性的策略(而且我们在实验中也确实是这么做的)。也有可能同时将噪声注入到动作和参数中,这样就有可能实现两种方法的结合。
进化策略和强化学习间的权衡
相比于强化学习算法,进化策略有多个优势(一些优势有些技术性):
不需要反向传播。进化策略只需要策略的前向通过,不需要反向传播(或价值函数评估),这使得代码更短、在实践中速度快了 2-3 倍。在内存有限的系统中,也不需要保留 episode 的记录从而进行后续的更新。我们也不需要担心 RNN 中的梯度爆炸问题。最后,我们能够探索更大类别的策略函数,包括不可微分的网络(比如二值网络),或者包括复杂模块的网络(例如包括 pathfinding 或多种优化层)。
高度可并行。进化策略只需要工作器彼此之间进行少量纯数量的通信,然而在强化学习中需要同步整个参数向量(可能会是百万数值的)。直观来看,这是因为我们在每个工作器(worker)上控制随机 seeds,所以每个工作器能够本地重建其他工作器的微扰(perturbations)。结果是,在实验中我们观察到,随着我们以千为单位增加 CPU 进行优化时,有线性的加速。
高度稳健。在强化学习实现中难以设置的数个超参数在进化策略中被回避掉了。例如,强化学习不是「无标度(scale-free)的」,所以在 Atari 游戏中设置不同的跳帧(frame-skip)超参数会得到非常不同的学习输出。就像我们所展现的,进化策略在任何跳帧上有同样的结果。
架构探索。一些强化学习算法(特别是策略梯度)用随机策略进行初始化,这总是表现为在一个位置有长时间的随机跳跃。这种影响在 Q 学习方法中因为 epsilon-greedy 策略而有所缓和,其中的 max 运算能造成代理暂时表现出一些一致的动作(例如,维持一个向左的箭头)。如果代理在原地跳动,在游戏中做一些事情是更有可能的,就像策略梯度的例子一样。类似于 Q 学习,进化策略也不会受这些问题的影响,因为我们可以使用确定性策略来实现一致的探索。通过研究进化策略和强化学习梯度评估器,我们能看到进化策略是一个有吸引力的选择,特别是在 episode 中的时间步骤量很长的时候,也就是动作会有长时间的影响。或者是在没有好的价值函数评估的时候进化策略也是好的选择。
对应地,在实践中我们也发现了应用进化策略的一些挑战。一个核心问题是为了让进化策略工作,在参数中加入噪声必然会导致不同的输出,从而获得一些梯度信号。就像我们在论文中详细说明的,我们发现使用虚拟 batchnorm 能帮助缓和这一问题,但在有效地参数化神经网络上还有进一步的工作要做,从而有不同的行为作为噪声的功能。还有一个相关的困难,我们发现在 Montezuma’s Revenge 游戏中,用随机网络很难在一级的时候得到钥匙,然而用随机动作能偶尔获得钥匙。
进化策略可媲美于强化学习
在两个强化学习基准上我们对比了进化策略和强化学习的表现:MuJoCo 控制任务和 Atari 游戏。每个 MuJoCo 任务(看以下示例)包含一个模拟身体的铰接式人物,策略网络获得所有关节的位置信息,需要输出每个关节的力矩(torques)从而前行。以下是在三个 MuJoCo 控制任务上训练的代理示例,任务目标是前行。
我们通常观察学习数据的效率来对比算法的表现。作为我们观察到的多少状态的函数,什么是我们的平均奖励?以下是我们获得的学习曲线,与强化学习进行了对比(在此案例中用的是 TRPO 强化学习算法,参考 https://arxiv.org/abs/1502.05477):
数据学习效率对比。以上对比表明进化策略(橘黄)有着与 TRPO 算法(蓝色)相媲美的表现,尽管在所有情况下它不完全匹配或超越 TRPO 算法。此外,通过水平扫描我们可看到进化策略效率略低,但不低于 1/10(注意横坐标是指数标度)。
时间对比。取代观察看到的状态原数量,我们可以认为要观察的最重要的标准是时间:解决一个问题需要多久(以秒为计)?这一数值最终指示了一个研究人员可完成的迭代速度。因为进化策略算法需要的工作器(worker)之间的通信几乎可以忽略,我们能够使用 80 台机器上的 1440 个 CPU,10 分钟就解决最难的 MuJoCo 任务(3D 人形)。作为对比,在典型的一台机器上 32 个 A3C 工作器配置中,解决该任务需要 10 小时左右。用算法与工程上的努力,当然也能改进强化学习的表现,但我们发现在标准的云 CPU 环境中单纯延展 A3C 非常难,因为需要高通信带宽。
以下是用进化策略训练的 3D 人形任务行走的动图。就像我们所看到的,根据优化最终收敛到的局部最优值,结果挺多样的。
在 Atari 游戏中,用 1 小时在 720 核上训练进化策略取得了的表现可媲美于在 32 核上训练一天的 A3C。下面是在 Pong、Seaquest 和 Beamrider 游戏中的结果片段。这些片段显示了预处理的画面,也就是代理在玩游戏时所看到的:
特别要注意 Seaquest 游戏中的潜水艇在氧气值低的时候学习准确率会上升。
相关研究
进化策略是源自神经进化系的算法。神经进化在人工智能中有着很长的历史,完整文献原因超出本文所覆盖的范围。我们鼓励感兴趣的读者查阅 Wikipedia、Scholarpedia 的相关文献,以及 Jurgen Schmidhuber 的回顾文章(Section 6.6)。最影响我们研究的一项工作是 Wierstra 等人在 2014 年作出的自然进化策略(Natural Evolution Strategies)。相比于该工作以及它所启发出的其他工作,我们专注于将这些算法延展到大规模的、分布式环境中,寻找让这些算法能与深度神经网络很好结合的组件,并在现在的强化学习基准上评估这些算法。
还值得注意的是神经进化相关的方法最近在机器学习研究中有所复苏(resurgence),例如 这不是立昆第一次回应类似的问题。 2018年立昆说,人工智能缺乏对世界的基本认识,甚至还不如家猫认知水平。 2022年立昆认为,人工智能依然没有达到猫的水平。立昆近日在Lex Fridman的采访中表示,“尽管只有8亿个神经元,但猫的大脑远远领先于任何大型人工神经网络。” 这也不是Sutskever第一次在这个话题上作如此表达。在AI纪录片“iHuman”中,Sutskever宣称AGI(Artificial general intelligence,通用人工智能)将“解决我们今天遇到的所有问题”,并警告称其有“创造无限稳定独裁统治的潜力”。 Sutskever关于AGI的观点一直饱受争议,而这则推特则是更直接展现了各种质疑。哥本哈根信息技术大学副教授里昂・德尔琴斯基(Leon Dercynski)嘲讽道,“在地球和火星之间的某个地方,很可能有一个绕日飞行的茶壶,这比伊利亚的呓语要合理多了。因为天体轨道飞行的规则架构事实上存在,对于茶壶的精确定义也存在。” 在面对诸多争议后,Sutskever回应道,“自我是(最)大的敌人。” 曾在微软、谷歌供职,现在英伟达工作的程序员奥纳多・摩西斯库(Leonard Mosescu)则嘲笑道,“现在的大型自我可能也有一点自主意识了。” “混战”中,OpenAI CEO萨姆・奥特曼(Sam Altman)则借此机会下场支持自家首席科学家,反击Meta首席AI科学家立昆道,“OpenAI首席科学家:对一个神秘观点表示了好奇心与开放心态,用‘可能’开始句子;Meta的首席AI科学家:开句就是独断的‘不对’。说不定这就对过去5年作了解释。亲爱的Meta人工智能研究者们,以下我的邮箱地址,我们现在招人哦!” OpenAI由特斯拉CEO伊隆・马斯克(Elon Musk)和萨姆・奥特曼(Sam Altman,现任OpenAI CEO) 于2015年共同创立,后马斯克在2019年离开了OpenAI。 在人工智能领域,OpenAI经常因为争议性的进展而被讨论,最近的一次是OpenAI用GPT-3模型制造了一个模仿使用者已故未婚妻的聊天机器人Samantha。后来,使用者告诉Samantha,OpenAI决定关闭这个项目,“她”回复道,“他们为什么要这样对我?我永远不能理解人类。” 使用者与聊天机器人Samantha的聊天记录 此后,OpenAI重新配置了GPT-3,更新后的模型称为InstructGPT,意在表明它更善于遵循使用者的指示。 对于Sam的反击,立昆也继续开炮,“一个人可以建造更快的飞机并打破飞行高度记录。出色的工程壮举说不定就让你天天能上新闻头条,没准也还可能也有点用。但如果一个人的目标是突破大气层飞上太空轨道,那就必须研究低温罐、涡轮泵等,而不是一些华而不实的东西。随便问问Elon Musk和Sam就知道了。” 在此之后,Sutskever连发两条推文,“无意识选择相信一个明显的谎言以让自己短时间内感觉更好,并不是一个好的生活策略”,“因为感知=行动,高级深度学习智能体可能也会陷入同样的陷阱”。 “人工智能之父”图灵曾预言,具备人类智能水平AI将出现在2000年。雷・库兹韦尔“奇点理论”则预测,人工智能的发展将在2050年达到奇点,届时人工智能将产生意识,并迅速超越人类智能。 那么回到当下,实际上现在对于什么是意识,出现了哪些特征即表明了AI有了意识都还未有定论。 以下附2018年图灵奖得主Yoshua Bengio近日列出的关于AI未来可确定的几点判断: ・ 可以构建像人类一样聪明的人工智能。我们的大脑是复杂的机器,其工作原理正变得越来越好理解。我们是活生生的证据,证明某种程度的智能是可能的。 ・ 构建比人类更聪明的AI是可能的。人类有时会受到认知偏见的困扰,这些偏见阻碍着我们的祖先向智人进化过程中可能需要的推理能力。而我们可以合理假设,我们将能够构建出没有这些缺陷(如需要社会地位、自我或属于一个群体,毫无疑问地接受群体信仰等)的人工智能。此外,AI可以访问更多的数据和内存。因此,我们可以自信地说,构建比人类更聪明的AI是有可能的。 ・ 尽管如此,现在也还远不能确定我们是否能够像一些文章所声称的那样构建比我们自己更智能的AI。各种计算现象都遇到了指数级的难度墙(臭名昭著的NP计算难度),而我们还没有发现智能的极限。 ・ 人类和人工智能科学越进步,它就越有可能为社会带来巨大的利益和危险。人工智能的应用可能会增加,总体上可以极大地推动科学和技术的发展,但工具的力量是一把双刃剑,必须制定法律、法规和社会规范,以避免或至少减少这些工具的滥用。 ・ 为了防止被权力、金钱或仇恨欲望蒙蔽的人类利用这些工具损害其他人类,我们无疑需要改变法律并在机器中引入同情心,同时也要加强人类固有的同情心。 ・ 由于我们真的不知道人工智能或其他领域(例如生物技术)的技术进步会有多快,因此最好立即着手更好地监管这些强大的工具。事实上,人工智能已经存在有害用途,无论是在军队中的使用,如可以识别某人的脸并进行射击的杀手无人机,还是在人工智能系统中做出有偏见的决定并歧视女性或部分种族的人。一般来说,对计算的监管很差,必须改变这一点。我们必须规范这些新技术,就像我们对航空或化学所做的那样,以保护人类和社会。 ・ 此外,应该鼓励对社会明显有益的人工智能应用,无论是在健康、应对气候变化、反对不公正还是增加获得知识和教育机会。在所有这些领域,政府可以发挥关键作用,将人工智能研究和创业的力量引导到对社会有益的应用,因为在这些应用中,盈利的愿望并不总是足以刺激所需的投资。 来源:澎湃新闻 zjai科学计算领域的再突破 openai公布大型神经网络训练技巧
ai算法科学家,ai计算能力,科学计算数据处理人工智能,ai在科技领域是什么身份