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上的学习资源,实现深度学习从入门到高阶。