当前位置: 首页 > 科技观察

迁移学习,让深度学习变得简单...

时间:2023-03-20 21:36:58 科技观察

在不久的过去,数据科学团队需要一些东西来有效地利用深度学习:新颖的模型架构,可能是内部设计的,以访问大型和可能专门的一些数据集大规模模型训练需要硬件或资金。这阻碍了深度学习,将其限制在满足这些条件的少数项目中。然而,在过去的几年里,情况发生了变化。在Cortex,用户正在推出新一代基于深度学习的产品,与以前不同的是,这些产品并非全部使用独特的模型架构构建。这一进步背后的驱动力是迁移学习。什么是迁移学习?从广义上讲,迁移学习是指在针对特定任务训练的模型中积累知识,例如,识别照片中的花朵可以迁移到另一个模型以帮助不同的相关任务(例如识别某人皮肤上的黑色素瘤)进行预测.注意:如果您想深入研究迁移学习,SebastianRuder写了一本很棒的介绍性书籍。迁移学习有多种方法,但一种被广泛采用的方法是微调。在这种方法中,团队采用预训练模型并删除/重新训练模型的最后一层,以专注于新的相关任务。例如,AIDungeon是一款开放世界文字冒险游戏,因其令人信服的AI生成故事而迅速流行起来:值得注意的是,AIDungeon并非由Google的研究实验室之一开发。是一个工程师建造的项目。AIDungeon的创建者NickWalton并没有从头开始设计模型,而是采用了OpenAI的GPT-2这一最先进的NLP模型,并根据自己选择的冒险文本对其进行了微调。这项工作之所以有效,是因为在神经网络中,初始层侧重于简单、通用的特征,而最后一层侧重于更多特定于任务的分类/回归。Ng通过想象一个图像识别模型来可视化这些层及其相对特异性水平:事实证明,基础层的常识通常可以很好地转化为其他任务。在AIDungeon的例子中,GPT-2对简单的英语有相对高级的理解,只需在最后几层进行一点再训练,它就可以在它选择的冒险类型中表现出色。通过这个过程,工程师可以在几天内将模型部署到一个新的领域,获得相对较新的结果。为什么迁移学习是下一代机器学习驱动软件的关键前面,作者提到了机器学习和深度学习需要的有利条件,尤其是有效利用这些条件。您需要访问大型、干净的数据集,需要设计高效的模型,还需要训练它的方法。这意味着在某些地区或没有某些资源的项目在默认情况下是不可行的。现在,通过迁移学习,这些瓶颈正在被消除:1.小数据集不再是决定性因素。深度学习通常需要大量标记数据,而这在许多领域根本不存在。迁移学习可以解决这个问题。例如,哈佛医学院附属的一个研究小组最近部署了一个模型,该模型可以“根据胸片预测长期死亡率,包括非癌症死亡”。由于数据集包含约50,000张标记图像,研究人员没有从头开始训练CNN(卷积神经网络)所需的数据。相反,他们采用了预训练的Inception-v4模型(在包含超过1400万张图像的ImageNet数据集上训练),并使用迁移学习通过稍微修改架构来使模型适应他们的数据集。最后,他们的CNN仅使用一张胸部图像就成功地为每位患者生成了与患者实际死亡率相关的风险评分。其次,模型可以在几分钟而不是几天内完成训练。在海量数据上训练模型不仅是获取大数据集的问题,也是资源和时间的问题。比如谷歌开发比较高级的图像分类模型异常时,他们训练了两个版本:一个是ImageNet数据集(1400万张图片),一个是JFT数据集(3.5亿张图片)。在60个NVIDIAK80GPU上进行各种优化训练,运行一个ImageNet实验需要3天。JFT的实验耗时一个多月。然而,现在预训练的Xception模型已经发布,团队可以更快地微调自己的版本。例如,伊利诺伊大学和阿贡国家实验室的一个团队最近训练了一个模型,将星系图像分类为螺旋或椭圆:尽管只有35,000个标记图像的数据集,但他们能够使用NVIDIAGPU对Xception进行精细处理调整。在GPU上运行时,该模型能够以每分钟超过20,000个星系的超人速度对星系进行分类,准确率为99.8%。3.你不再需要风险投资来训练模型谷歌可能不太关心成本,因为在60个GPU上训练Xception模型需要几个月的时间。然而,对于任何没有谷歌规模预算的团队来说,模型训练的价格是一个真正令人担忧的问题。例如,当OpenAI首次发布GPT-2结果时,他们发布了模型架构,但出于对误用的担忧,并未发布完整的预训练模型。作为回应,布朗大学的一个团队按照本文描述的架构和训练过程复制了GPT-2,将模型称为OpenGPT-2。他们花了大约50,000美元进行训练,但他们的表现不如GPT-2。如果一个模型的性能低于最先进的水平,那么50,000美元对于任何没有大量资金构建真实软件的团队来说都是一个巨大的风险。在构建AIDungeon时,NickWalton通过微调GPT-2完成了项目。OpenAI投入了大约27,118,520页文本和数千美元来训练模型,沃尔顿无需重新创建任何模型。相反,他使用了从chooseyourstory.com截取的一组更小的文本,并在完全免费的GoogleColab中对模型进行了微调。机器学习工程正在成为一个真正的生态系统与软件工程相比,从一个相当标准的模型来看,人们普遍认为生态系统是“成熟的”。一种涵盖某些极端功能的新编程语言即将出现,人们会将其用于特殊案例、研究项目和玩具。在此阶段,任何使用它的人都必须从头开始构建所有基本实用程序。接下来,这个社区中的人们开发库和项目,提取通用实用程序,直到工具稳定用于生产。在这个阶段,使用它构建软件的工程师不关心发送HTTP请求或连接数据库,所有这些都被抽象掉了,工程师只关心构建他们的产品。换句话说,Facebook构建了React,Google构建了Angular,而工程师们使用它们来构建产品。随着迁移学习的发展,机器学习工程正朝着这个方向发展。随着OpenAI、谷歌、Facebook等科技巨头发布强大的开源模型,机器学习工程师的“工具”变得更加强大和稳定。机器学习工程师不再花时间在PyTorch或TensorFlow中从头开始构建模型,而是使用开源模型和迁移学习构建产品,这意味着新一代机器学习驱动的软件即将出现。现在,机器学习工程师只需要担心如何将这些模型投入生产。深度学习不再困难。