如何用免费GPU学习AI算法?这篇算法资源大集锦别错过

2019-10-14 15:30:24 浏览数 (1)

飞桨开发者投稿

上一次写了篇薅GPU百度AI Studio计算资源的文章,收到很多AI算法初学者私信,问我能不能补充一些AI Studio的学习资源。有求必应向来是我的风格,于是我加入了AI Studio和飞桨(PaddlePaddle)开发者QQ群,为大家收集了一些资源,涵盖了从入门到高阶的各种常用算法和代码。为了阅读连贯性,本文先简单介绍一下AI Studio,然后讲解下免费GPU资源政策的变化与怎么拿,最后按照从入门到高阶,介绍一些能帮助你尽快掌握各种算法的资源。

AI Studio是什么

AI Studio是百度提供的一个针对AI学习者的在线一体化开发实训平台。平台集合了AI教程, 深度学习样例工程, 各领域的经典数据集, 云端的运算及存储资源, 以及比赛平台和社区。 你可以把AI Studio看成国产版的Kaggle。和Kaggle类似,AI Studio也提供了GPU支持,但百度AI Studio在GPU上有一个很明显的优势。

Kaggle 最近把Tesla K80的GPU升级到了P100,确实比以前快不少,但AI Studio采用的是Tesla V100的GPU,更胜一筹。下表对比了两款GPU性能:

AI Studio 提供了基于ipython和Jupyter Notebook的在线方案, 几乎是当前所有机器学习/深度学习的主流方案。AI Studio 支持的深度学习框架是飞桨。比起偏向于研究的TensorFlow,飞桨偏向于应用。通常TensorFlow的几行代码,飞桨一行就解决了。个人感觉飞桨对于初学者来说还是很友好的。

如何获得免费算力卡

我之前写过一篇文章关于如何薅百度AI Studio的GPU羊毛的文章, 详细的大家可以参考一下。不过距离上次薅羊毛到现在也三个月过去了,百度的免费GPU算力政策发生了变动,而且是往更好的变动。之前是每日运行项目送12个小时算力,现在是每天送24小时!我的天,这意味着可以24/7的不间断的跑,用之不竭啊!我跑了一下项目,算力卡马上来了。

目前在开发者QQ群里听到的消息是至少持续一个月的赠送,不知道下个月还有没,所以大家赶紧薅起来,好好利用这免费的高性能GPU资源来「炼丹」。

获取算力方法使用资格很简单。点进https://aistudio.baidu.com/aistudio/questionnaire?activityid=525,按照内容提示填写好信息,审核后管理员会给你发放一批算力卡。有了这批算力卡你就可以开始在GPU你的项目,而且运行项目又送算力卡,就像鸡生蛋蛋生鸡一样,算力取之不竭。

AI Studio精选项目大合集

点击“阅读原文”或打开以下链接查看所有项目:

https://aistudio.baidu.com/aistudio/messagedetail/42

零基础新手如何利用好AI studio

熟悉Python的读者可以跳过这节。

纯新手可能还不知道怎么用AI Studio。其实很简单。下面提供了很多教程,都是jupyter notebook形式的。你点开链接,会看到一个fork按钮,然后在弹出的框里,输入项目名称和项目名字。

完成后,会弹出对话框问你是否现在运行

点击”运行项目”,就会为你打开一个运行环境。

进去之后,点击”运行”按钮,弹出选择环境。

然后选择运行环境。没算力卡?没关系。点击上面的点击申请,按照提示一步步点进去,提交成功后一段时间就有免费的算力拿了。

以下的所有链接都是一个个Jupyter Notebook,想要修改代码和运行的话,就按照上面说的步骤fork了然后运行。

深度学习新手入门项目合集:

https://aistudio.baidu.com/aistudio/projectdetail/128773

即使你是Python新手也没关系,AI Studio社区提供了新手入门教程,不需要你在本地搭建环境,直接在AI Studio提供的环境跑例程,增删改代码,测试自己的想法。Python新手项目:《Python零基础速成课》。

学完了上面的新手Python课程,在开始深度学习前想实战一下Python技巧?这里有个Python爬虫项目,教你从豆瓣爬电影数据,很适合用来巩固Python技巧,而且项目还教你用数据帧(dataframe)格式来显示爬来的数据,为后续学习机器学习项目打好基础,请参照:《Python入门-豆瓣电影爬取》。

做完上述的分类器是否找到了一点入门的感觉?做点实用的吧。买房是每个人的人生大事?机器学习是否能让你预测房价未来走势呢?下面这个示例项目将采用线性回归模型,带着你探索这个问题,可查看:《波士顿房价预测》。

通过以上问题,是否对机器学习更有感觉了? 是否觉得以上模型太简单,无法跟上你快速进步的步伐?好嘞,现在开始学习深度学习模型。首先从计算机视觉入门。

计算机视觉入门最基础的一个数据集是MNIST。MNIST共包含了70000个手写数字图像,数字范围从0-9。我们现在就要开发一个模型,让模型能分辨手写的0-9,详情请查看《深度学习入门CV-手写数字识别》。

是否太容易就到达90%多的准确率?没事,这里有不一样的MNIST数据,叫fashion-mnist,但这次不是手写数字,而是十类时装(T-Shirt、连衣裙、鞋子、外套等),你还能保持同样高准确率吗?详情请查看《Fashion-MNIST数据集》。

除了计算机视觉,NLP(自然语言处理)也是深度学习里很热门的领域。想入门NLP,何不先试试文本分类呢?详情请查看《深度学习入门NLP-文本分类》。

如果你是一个新手,经过上述项目的训练,你应该算是稍微入门了。接下来就是要进阶了。

1. 进阶学习者如何利用好AI studio学习深度学习算法

深度学习进阶总是痛苦的,主要的原因是没有足够示例,有示例也不够详细,有详细的示例但又不知道从哪个看起。为了让读者快速入门,我按照从容易到复杂的顺序,总结了一些示例,根据示例所属的领域,难易程度,我分了两个主要部分:

  • 计算机视觉(CV)
  • 自然语言处理(NLP)

计算机视觉(CV)

项目地址:

https://aistudio.baidu.com/aistudio/projectdetail/128832

首先我们可以学习与实践下图像分类的算法。

图像分类是根据图像的信息将不同类别图像区分开来, 是计算机视觉中重要的基本问题. 图像分类按粒度粗细也分两种,粗细度的是识别类型,比如这是猫还是狗;细粒度是给你一张照片, 让你用模型识别这是缅因猫, 还是挪威森林猫)。

现在我们先做粗粒度的猫狗识别分类器。我们的任务是训练一个分类器,去分辨哪些是猫,哪些是狗。详情请查看《卷积神经网络实践-猫狗分类》。

如果你掌握了上面的猫狗分类器,那恭喜你,对深度学习图像分类模型又有了更进一步的了解。接下来我们要做细粒度的东西,是什么呢?就是现在很火的人脸识别。下面介绍个简单的人脸识别模型。这个模型还能识别出章子怡的照片呢!想知道怎么弄的吗?点开链接探究吧。详情请查看《卷积神经网络-人脸识别初探》。

你也许学习完上面两个示例,会提出疑问,猫狗识别是判断一张照片里面的是猫还是狗, 但一张照片里如果有10只猫, 5只狗该怎么办? 模型真的知道那个物体是目标吗?有什么办法让模型知道目标呢?那就要先使用目标检测, 把猫猫狗狗的位置圈定出来, 然后再逐一处理。顺便一提,听起来高大上的无人驾驶技术, 目标检测也是其核心技术之一哦。接下来介绍几个目标检测的模型。

主流的目标检测算法主要分为两个类型:

1)two-stage方法,其主要思路是先通过启发式方法(selective search)或者CNN网络产生一系列稀疏的候选框,再对这些候选框进行分类与回归。two-stage方法的优势是准确度高;代表算法是R-CNN系列算法。想更深入研究是怎么回事?AI Studio社区提供了详尽的Mask RCNN教程:

https://aistudio.baidu.com/aistudio/projectdetail/122273。

除了Mask RCNN,另一个齐名的是Faster-RCNN

https://aistudio.baidu.com/aistudio/projectdetail/122275

2)one-stage方法,如YOLO和SSD,其主要思路是均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,然后利用CNN提取特征后直接进行分类与回归,整个过程只需要一步,所以其优势是速度快(所以在移动设备等低性能平台上常用),但是均匀的密集采样的一个重要缺点是训练比较困难,这主要是因为正样本与负样本(背景)极其不均衡,导致模型准确度稍低。

我在AI Studio社区找到了Yolo和SSD的教程。

YOLO教程使用的数据集是自定义的螺丝螺母数据集,以下教程涵盖了YOLO v3和YOLO v3-tiny,不仅让你能学好YOLO,而且还提供了可以部署在低能耗设备上的模型。

接下来要介绍的是SSD。下面这个教程使用的是基于预训练好的mobile-net训练的SSD,使用的数据集是 pascal-voc。

关于计算机视觉的进阶内容先介绍到这里,接下来介绍进阶的NLP内容。还想学更高阶的CV模型算法请移步到下一章。

自然语言处理 (NLP)

项目地址:

https://aistudio.baidu.com/aistudio/projectdetail/128857

我们又回到了NLP技术领域了。 假设我们已经学过前面爬豆瓣的那课, 我们获取了某部著名电影的评论, 我们怎么知道它的口碑究竟如何呢? 通过这篇文章, 我们可以透过语言直接看到人类的情绪。不过为了方便起见,我们下面这个例子并不直接用之前采集的数据集,而是用的是已经处理好的IMDB电影数据集。详情请查看《循环神经网络NLP-情感分类》。

其实情感分类是一个很重要的技术,我之前做过对股票市场的情感分析算法,可以找出市场情感对股市走向的影响。不过如果你觉得情感分类还是太简单的话,那恭喜你,你的进步是飞快的。那你接下来可以试试更难的,就是机器翻译。飞桨框架收集了一个叫WMT-14的数据集,提供了193319条训练数据和6003条测试数据,应该够你探索的了。详情请查看《深度学习进阶NLP-机器翻译》。

2.高阶学习者如何利用好AI studio

和前面一样,还是分计算机视觉和NLP(自然语言处理)两个主要方向来介绍项目:

计算机视觉(CV)

分类识别还不够?来个人体姿态估计和追踪的项目来轰炸一下你的大脑吧。下面这个项目是尝试复现论文《Simple Baselines for Human Pose Estimation and Tracking》里的结构。项目名:《人体姿态估计与追踪之关键点检测》。

接下来介绍一个激动人心的技术:GAN。生成对抗网络(Generative Adversarial Network,简称GAN) 是一种非监督学习的方式, 通过让两个神经网络相互博弈的方法进行学习。GAN由一个生成网络和一个判别网络组成, 生成网络从潜在的空间(latent space)中随机采样作为输入, 其输出结果需要尽量模仿训练集中的真实样本。判别网络的输入为真实样本或生成网络的输出, 其目的是将生成网络的输出从真实样本中尽可能的分辨出来。而生成网络则尽可能的欺骗判别网络, 两个网络相互对抗, 不断调整参数。生成对抗网络常用于生成以假乱真的图片。此外, 该方法还被用于生成影片, 三维物体模型等。我们将利用GAN,做个图像风格迁移的项目:《风格迁移之图像翻译Pix2Pix》。

自然语言处理 (NLP)

现在对话聊天机器人是很火的方向。但是要使得聊天机器人表现得懂用户,那就需要识别对话情绪。专注于识别智能对话场景中用户的情绪。在这方面百度发布了自己的模型ERNIE。通过建模海量数据中的词、实体及实体关系,学习真实世界的语义知识。相较于 BERT 学习原始语言信号,ERNIE 直接对先验语义知识单元进行建模,增强了模型语义表示能力。下面这个项目将带你学习ERNIE:《ERNIE对话情绪识别》。

之前我们讲过语言情感分类和语言翻译,你会觉得这不是很简单吗,对机器来说小儿科。但如果让机器来做阅读理解呢,或者让机器去回答问题呢,有想过吗?有个模型的提出让以上这些问题都有了希望,这个模型就是BERT(Bidirectional Encoder Representations from Transformers)。想知道BERT是什么,怎么工作的?下面这个项目能帮到你:《语义表示模型 BERT》

机器阅读理解(MRC)是自然语言处理(NLP)中的关键任务之一,需要机器对语言有深刻的理解才能找到正确的答案。机器阅读理解领域有个著名的模型叫BiDAF模型(Bi-Directional Attention Flow for Machine Comprehension)。下面这个项目将会帮助你了解更多:《机器阅读理解之BiDAF模型》。

3.其他AI Studio上的学习项目

由于CV和NLP是热门研究领域,以上项目都只提到CV和NLP。但深度学习的研究范围和应用范围很广,只是限于篇幅原因不能一一详尽。为了照顾到更多领域的读者,以下还收集了一些推荐算法的AI Studio的项目,这里仅列举一下,不再一一介绍。有兴趣的读者可以研究下

  • 基于飞桨PaddlePaddle的SR-GNN推荐算法 https://aistudio.baidu.com/aistudio/projectdetail/124382
  • 个性化推荐之多视角Simnet模型 https://aistudio.baidu.com/aistudio/projectdetail/122294
  • 飞桨PaddlePaddle分布式推荐算法实践 https://aistudio.baidu.com/aistudio/projectdetail/124378
  • 用飞桨PaddlePaddle实现个性化推荐 https://aistudio.baidu.com/aistudio/projectdetail/127567
  • 标签推荐算法之TagSpace https://aistudio.baidu.com/aistudio/projectdetail/122298
  • 推荐算法gru4rec之飞桨PaddlePaddle实现 https://aistudio.baidu.com/aistudio/projectdetail/122296

意犹未尽,还需要找更多的AI Studio深度学习项目?或者遇到问题不知道怎么解决?可以去下面两个地方寻找帮助。

  • 项目合集页,在这里有很多官方和其他机器学习爱好者发布的项目:https://aistudio.baidu.com/aistudio/projectoverview/public/1
  • 论坛社区,如果你出现难解的问题,不妨上来看看有没人遇到过同样的情况:https://ai.baidu.com/forum/topic/list/192

小结

本文介绍了一个免费赠送GPU算力的深度学习平台AI Studio。首先介绍了AI Studio是什么,在性能上有什么优势,同时也介绍了如何获得免费GPU算力。最后用大量的篇幅介绍了如何利用好AI Studio上的学习资源,实现深度学习从入门到高阶。

现在每天赠送24小时算力,简直是天上掉下的羊毛,不薅白不薅。羊毛不是天天有,该出手时就出手!

https://aistudio.baidu.com/aistudio/messagedetail/42

0 人点赞