在 OpenAI 的研究过程中,我们发布了新一批 7 个未解决的问题。就像我们最初发布的研究需求 [1],由此催生了几篇论文,如 Image-to-Markup Generation with Coarse-to-Fine Attention[2]、Parallel Trust Region Policy Optimization with MultipleActors[3]、Generative Latent Attentive Sampler[4]、Learning from the memory of Atari 2600[5] 等。我们希望,这些问题能够成为欢迎新手们进入这个领域的有趣而有意义的方式,同时也让从业者磨练他们的技能(这也是在 OpenAI 得到一份工作的一个好方法)。
如果你不确定从哪里开始的话,以下是一些解决的入门问题。
注:“★”为该问题的难度系数
★训练一个 LSTM 来解决 XOR 问题:即给定一个位序列,确定它的奇偶性。LSTM[6] 应该使用序列,一次一个位,然后在序列末尾输出正确答案。测试以下两种方法:
生成长度为 50 的随机 100,000 个二进制字符串的数据集。训练 LSTM,你会得到什么样的表现?
生成随机 100,000 个二进制字符串的数据集,其中每个字符串的长度是独立的,在 1 到 50 之间随机选择。然后训练 LSTM。它成功了吗?和上一种方法有什么区别吗?
★将经典的贪吃蛇游戏的克隆副本作为 Gym[7] 环境,并通过你选择的强化学习算法:近段策略优化(Proximal Policy Optimization,PPO)算法 [8] 来解决它。把智能体进行游戏的视频给我们(@openai)发推,你能训练出能够赢得比赛的策略吗?
AI 前线: Gym 是 OpenAI 为测试和开发 RL 算法而设计的环境 / 任务的模块集合。它让用户不必再创建复杂的环境。Gym 用 Python 编写,它有很多的环境,比如机器人模拟或 Atari 游戏。它还提供了一个在线排行榜,供人们比较结果和代码。简而言之,Gym 是一款用于研发和比较强化学习算法的工具包,它支持训练智能体(agent)做任何事——从行走到玩 Pong 或围棋之类的游戏,都在范围中。
近段策略优化算法是 OpenAI 发布的一种新型的强化学习算法,该算法的实现和调参十分简单,并且它的性能甚至要超过现阶段最优秀的方法。因为该算法实现非常简单并且有优秀的性能,PPO 已经成为了 OpenAI 默认使用的强化学习算法。
★★Slitherin’。实现并解决一个多玩家贪吃蛇游戏(见 slither.io 的灵感)的克隆副本作为 Gym 的环境。
环境:有一个相当大的场地与多条蛇;吃到随机出现的水果时,蛇会变长;一条蛇在与另一条蛇、自身或墙壁相撞时会死亡;当所有的蛇死亡时,游戏就结束了。游戏一开始有两条蛇。智能体:使用自己选择的 RL 算法 [9][10] 进行自玩来解决环境问题。您需要尝试各种方法来克服自玩的不稳定性(这就像人们所见 GAN 的不稳定性)。例如,根据过去的政策分配,尝试训练现行政策。哪种方法效果最有效?
检查习得行为:智能体是否学会了追逐食物并避开其他蛇的能力?智能体是否学会攻击、陷害,或联合起来对付竞争对手?
★★★分布式 RL 的参数平均。 探讨参数平均方案对 RL 算法中样本复杂度(Sample complexity)[11] 和通信量的影响。虽然最简单的解决方案是,在每次更新时,平均每个 worker 的梯度,但你可以通过独立更新 worker,然后不要常常平均参数,以节省通信带宽 [12]。在 RL 中,这样做可能还有一个好处:在任何时候我们都会有不同参数的智能体,这可能会让我们得以进行更好的探索。另一种可能就是使用像 EASGD(Elastic Averaging SGD,弹性平均梯度下降法)[13] 的算法,它可以在每次更新时,将参数部分地结合在一起。
AI 前线:样本复杂度,是指学习机器以高概率学习到某个 “成功的”函数所需要的训练数据的数目。
因为训练深度神经网络是非常好使的过程,比如用卷积神经网络去训练一个目标识别任务需要好几天来训练。为了缩短这一过程,现在有一种方法是充分利用集群的资源,加快训练速度。SparkNet 是基于 Spark 的深度神经网络架构,是建立在 Apache Spark 和 Caffe 深度学习库的基础之上的。而 Apache Spark 是围绕速度、易用性和复杂分析构建的大数据处理框架。EASGD,使不同工作机之间不同的 SGD 以一个“弹性力”连接,也就是一个储存于参数服务器的中心变量。这允许局部变量比中心变量更大地波动,理论上允许了对参数空间更多的探索。经验表明,提高的探索能力有助于在寻找新的局部极值中提升(优化器的)表现。
★★★基于生成模型的不同游戏间的迁移学习。 按以下所述操作:
为 11 个 Atari[14] 游戏制定良好的策略。从每场游戏的策略中,生成 10,000 条轨迹,每个轨迹 1000 步。
将一个生成模型(如 Transformer[15])与 10 场游戏产生的轨迹相匹配。
然后在第 11 场游戏中对那个模型进行微调。
你的目标是量化 10 场游戏的预训练的好处。这个模型需要多大程度的预训练才能发挥作用呢?当第 11 场游戏的数据量减少 10 倍时,效果大小如何变化?减少 100 倍呢?
★★★线性注意力的 Transformers。 Transformers 模型使用带 softmax 的“Soft Attention”模型。如果我们可以使用线性注意力(linear attention)(可将其转换为快速权重 [16] 的 RNN),那么我们可以使用所得到的的 RL 模型。具体而言,在庞大的环境中使用 Transformers 进行 RL 部署是不切实际的。但运行一个具有快速权重的 RNN 是非常可行的。你的目标是:采取任何余元建模任务;训练 Transformers,然后找到一种方法,在不增加参数总数的情况下,使用具有不同超参数的线性注意力 Transformers,来获得每个字符 / 字的相同位元。只有一个警告:这很可能是个无法实现的结果。但是有条或许有用的提示:与使用 softmax 的注意力模型相比,具有线性注意力的 Transformers 可能需要更高维度的 key/value 的向量,这点可以在不显著增加参数数量的前提下完成。
AI 前线: Soft Attention 模型,由论文 Neural machine translation by jointly learning to align and translate[17] 提出,并将其应用到机器翻译。此处 soft,意即在求注意力分配概率分布时,对于输入锯子中任意一个单词都给出个概率,这就是概率分布。而 softmax 用于多分类过程中,它将多个神经元的输出,映射到 (0,1) 区间内,可以看成概率来理解,从而进行多分类。转换器(transformers)是 Apache Spark 机器学习框架中的管道组件,是包括特征变换和学习模型的一种抽象。
★★★习得数据增强(Data Augmentation)。您可以使用习得的 VAE[18] 数据来执行“习得数据增强”。首先要对输入数据上训练一个 VAE,然后将每个训练点编码到一个潜在空间,然后在潜在空间中应用简单的(例如高斯)扰动,然后解码回观察空间。我们可以用这种方法来获得改进的泛化吗?这种数据增强的一个潜在好处是,它可以包括许多非线性变换,如视点变化和场景闪电的变化。我们能近似于标签不变的转换集吗?
AI 前线: VAE 即 Variational Autoencode,变分自编码器。VAE 可用于对先验数据分布进行建模。它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。VAE 是一个使用学好的近似推断的有向模型,可以纯粹地使用基于梯度的方法进行训练。数据增强(Data Augmentation)是为了在深度学习中避免出现过拟合(Overfitting),通常我们需要输入充足的数据量.为了得到更加充足的数据,我们通常需要对原有的图像数据进行几何变换,改变图像像素的位置并保证特征不变。
★★★★强化学习中的正则化。实验研究(和定性解释)不同正则化方法对所选 RL 算法的影响。在有监督的深度学习中,正则化对于改进优化 [19] 和防止过拟合具有极其重要的定义,其方法非常成功,如中途退出(Dropout)[20]、批量归一化(batch normalization)[21] 和 L2 正则化(L2 regularization)[22]。然而,人们并没有从正则化的强化学习算法收益,比如策略梯度 [23] 和 Q-learning[24]。顺便提一句,在 RL 中,人们通常使用比监督学习更小的模型,因为大型模型的表现更差——可能是因为它们过于适合最近的经验。要开始的话,可以阅读这篇论文:Regularization in Reinforcement Learning。[25] 这是一个相关但更古老的理论研究。
AI 前线: Q-learning 是强化学习中的一个很有名的算法。Q-lerning 的目标是达到目标状态 (Goal State) 并获取最高收益,一旦到达目标状态,最终收益保持不变。
★★★★★奥林匹克不等式问题(Olympiad Inequality Problems)的自动化解决方案。奥林匹克不等式问题很容易表达,但解决这些问题通常需要巧妙的手法 [26]。建立一个奥林匹克不等式问题的数据集,编写一个可以解决大部分问题的程序。目前尚不清楚机器学习在这里是否有用,但您可以使用一个学习策略来减少分支因素。
AI 前线:国际奥林匹克数学竞赛(International Mathematical Olympiad,IMO)素有“数学世界杯”之称,每年举办一次,由参赛国轮流主办。目的是为了发现并鼓励世界上具有数学天份的青少年,为各国进行科学教育交流创造条件,增进各国师生间的友好关系。它是国际科学奥林匹克历史最长的赛事,是国际中学生数学大赛,在世界上影响非常之大。
[1] OpenAI:Requests for Research
[2] Image-to-Markup Generation with Coarse-to-Fine Attention
[3] Parallel Trust Region Policy Optimization with MultipleActors
[4] Generative Latent Attentive Sampler
[5] Learning from the memory of Atari 2600
[6] Attention Is All You Need
[7] Github/gym
[8] Proximal Policy Optimization Algorithms
[9] AlphaGo Zero: Learning from scratch
[10] Competitive Self-Play
[11] Sample complexity
[12] SparkNet: Training Deep Networks in Spark
[13] Deep learning with Elastic Averaging SGD
[14] Atari
[15] Attention Is All You Need
[16] Using Fast Weights to Attend to the Recent Past
[17] Neural Machine Translation by Jointly Learning to Align and Translate
[18] Tutorial-What is a variational autoencoder?
[19] FIXING WEIGHT DECAY REGULARIZATION IN ADAM
[20] Dropout
[21] Batch Normalization — What the hey?
[22] Differences between L1 and L2 as Loss Function and Regularization
[23] Policy gradient methods
[24] Q-learning
[25] Regularization in Reinforcement Learning
[26] Olympiad Inequalities
如果觉得内容不错,记得给我们「留言」和「点赞」,给小编鼓励一下!