更快更强,深度学习新库fastai“落户”PyTorch

clipboard.png

几天前,有人统计了历年ICLR论文录用者使用的深度学习框架,发现虽然TensorFlow还高居榜首,但PyTorch近一年来的使用数据已经翻了3倍,能够和TF比肩。这是个使人惊讶的消息,也让很多从业者开始正视这一发展趋势,筹备“双修”事宜。在下文中,论智给读者带来的是fast.ai发布的一个简便、好用的PyTorch库——对PyTorch感兴趣的读者不妨先从这个库开始试手。python

随着互联网和知识传播的深度结合,如今在线课程对许多人来讲已经不是新鲜事物。在深度学习领域,最受学生欢迎的MOOC课程平台有三个:Fast.ai、deeplearning.ai /Coursera和Udacity。其中,由于Jeremy Howard化繁为简、实战为上的独特授课风格,Fast.ai给人的印象一直很“接地气”:git

研究如何快速、可靠地把最早进的深度学习应用于实际问题。
提供Fast.ai库,它不只是让新手快速构建深度学习实现的工具包,也是提供最佳实践的一个强大而便捷的资源。
课程内容简洁易懂,以便尽量多的人从研究成果和软件中收益。
国庆期间,Fast.ai发布一个新的、面向深度学习的免费开源库——fastai。这是个PyTorch库,虽然仍是预览版,但它目前已经为最重要的深度学习应用程序和数据类型提供了一致的API,且相比其余深度学习库,它在准确性和速度上有显着提升,同时所需的代码大大减小。github

感兴趣的开发者能够访问fastai的 GitHub 进行安装: github.com/fastai/fastai/算法

fastai库
从去年宣布开发开始,历时18个月,fastai深度学习库v1.0终于和你们见面了。在项目启动之初,开发人员就曾介绍过PyTorch做为一个平台的优点:能够利用常规python代码的灵活性和各类函数构建、训练神经网络,能够解决更普遍的问题……服务器

如今,通过Fast.ai团队和PyTorch团队的共同努力,咱们迎来了一个为计算机视觉、文本、表格数据、时间序列、协同过滤等常见深度学习应用提供单一一致界面的深度学习库。这意味着,若是你已经学会用fastai建立实用的计算机视觉(CV)模型,那你就能够用一样的方法建立天然语言处理(NLP)模型,或是软件支持的其余模型。网络

早期用户使用反馈
GitHub上的语义代码搜索架构

Fast.ai的课程是GitHub的数据科学家和高管(包括CEO在内)提升数据素养的一个重要途径,其中,Github的高级机器学习科学家Hithl Husain在过去两年中一直经过Fast.ai学习深度学习,他认为这些MOOC课程开启了Github的数据新时代,使数据科学家们更有信心解决机器学习中的最新问题。框架

做为fastai的第一批使用者,Hithl Husain和他的同事Ho-Hsiang Wu最近发布了一个实验版工具“语义代码搜索”,容许开发者直接经过意义而不是关键词匹配来查找代码, 这意味着最佳搜索结果不必定包含你搜索的单词 。在 官方博客文章 中,他们介绍了本身弃用Tensorflow Hub转而投向fastai的缘由,称后者能更轻松地访问最早进的架构(如AWD LSTMs)和技术(如随机重启循环学习率)。机器学习

clipboard.png

语义代码搜索模块化

在过去的12个月里,Husain一直在体验预发布版本的fastai库。他表示:

我之因此选择fast.ai,是由于它能在保证相同性能的状况下,用模块化、高级API实现最早进的技术和创新,同时减小计算量。语义代码搜索只是冰山一角,销售、营销、反欺诈,人们能用fastai为各行各业带去革命性的变化。

生成音乐

Christine McLeavey Payne是从上一期Fast.ai深度学习课程中脱颖而出的一名学生。她的人生经历很是丰富:从旧金山交响乐团的古典钢琴师,到金融领域的HPC专家,再到斯坦福大学的神经科学和医学研究员。如今,她已经在OpenAI开启了又一段人生旅途,而在近期的OpenAI项目中,她用fastai建立了一个能生成钢琴曲和室内音乐的LSTM——Clara。

fastai是一个了不得的资源,即使是我这样刚接触深度学习的新手,也能用短短几行代码就获得fastai模型。我不彻底知道这些先进技术背后的原理,但个人模型能运行,并且训练用时更短,性能也更好。

她的音乐生成模型基于上课期间她构建的一个语言模型,利用fastai库对NLP最新技术的支持,她在短短两周内就完成了这个音乐生成项目,并取得了很好的初步成果。这是fastai库实用性的一个典例,只需少许修改,开发者就能把文本分类模型改为音乐生成模型,这在实践中能节省大量时间和精力。

clipboard.png

IBM Watson高级研究员对音乐生成器Clara的评价

艺术创做

建筑师、投资者Miguel Pérez Michaus一直在用预发布版本的fastai进行他的“Style Reversion(风格还原)”实验。所谓“风格还原”,就是把风格迁移后的图像恢复成本来的样子,以下图所示:

clipboard.png

风格还原

他表示:“我喜欢用fastai创做,由于它能实现Keras不能实现的东西,好比生成‘不标准’的东西。”做为早期用户,他在过去12个月中目击了fastai的更新迭代:

我很幸运地体验了fastai的A测版本,虽然只是Alpha版,但它充分展现了本身的实用性和灵活性,并且容许我这样具备领域知识但没有正式计算机科学背景的人上手操做。fastai会变得愈来愈好。对于深度学习的将来,我我的有一点粗浅的认识,就是咱们必需要详细掌握黑盒背后的真实技术原理,在这种状况下,我认为fastai会广受欢迎。

学术研究

在NLP领域,波兰语一直是一个挑战,由于它是一种形态丰富的语言,如波兰语形容词会根据名词的数和性而变化。企业家Piotr Czapla和Marcin Kardas是深度学习咨询公司n-wave的联合创始人,基于 Cutting Edge Deep Learning For Coders 这门课程中显示的思路,他们用fastai开发了一种新的波兰语文本分类算法,并在波兰顶级NLP学术竞赛中得到一等奖,有关这项新研究的论文即将发布。

根据Czapla的说法,fastai库对他们的成功相当重要:

fastai适合那些没有上百台服务器的普通人,这是我很喜欢它的一点。它支持快速开发和原型设计,并融入了全部最好的深度学习实践。同时,Fast.ai课程是我开始学习深度学习的指路明灯,从上课的那天起,我才开始思考深度学习能作什么。

示例:计算机视觉领域的迁移学习
Kaggle上有一个很是受欢迎的竞赛项目:Dogs vs Cats。参赛者须要编写一个算法来分类图像是包含狗仍是猫。这也是Fast.ai课程中常常涉及的一个竞赛,由于它表明了一类重要问题:基于预训练模型的迁移学习。

咱们将以此为例,从 所需代码量、准确性和速度 三个指标上比较Keras和fastai的差别。如下是用fastai进行2-stage微调时的全部代码——不只要编写的代码很是少,设置的参数也很是少:

data = data_from_imagefolder(Path('data/dogscats'),
ds_tfms=get_transforms(), tfms=imagenet_norm, size=224)
learn = ConvLearner(data, tvm.resnet34, metrics=accuracy)
learn.fit_one_cycle(6)
learn.unfreeze()
learn.fit_one_cycle(4, slice(1e-5,3e-4))

下表是两个深度学习库的差别对比:

clipboard.png

Keras是如今最流行的训练神经网络的方法之一,以上数据虽然是片面的,但fastai的改进能从侧面说明Keras并不完美,它还有很大的改善空间。而不管是Keras仍是其余深度学习库,要完成一样的任务,它们所需的代码量都远远超过fastai,相应的,它们的训练时间会更长,且模型性能不必定会更好。

此外,fastai在NLP任务上也有强劲表现。下表是ULMFiT论文中的一幅截图,显示了文本分类算法ULMFiT与IMDb数据集中排名靠前的算法的相对偏差:

clipboard.png

文本分类性能总结

fastai是目前惟一提供此算法的库,因为该算法是内置的,你能够直接参考上面的Dogs vs Cats代码复现论文结果。如下是训练ULMFiT语言模型的方法:

data = data_from_textcsv(LM_PATH, Tokenizer(), data_func=lm_data)
learn = RNNLearner.language_model(data, drop_mult=0.3,
pretrained_fnames=['lstm_wt103', 'itos_wt103'])
learn.freeze()
learn.fit_one_cycle(1, 1e-2, moms=(0.8,0.7))
learn.unfreeze()
learn.fit_one_cycle(10, 1e-3, moms=(0.8,0.7), pct_start=0.25)

来源: www.fast.ai/2018/10/02/fastai-ai/

编译:Bot

相关文章
相关标签/搜索