准备好在机器学习之路上再迈出一大步了吗?使用试验性数据集、流行的数据科学库和框架是个好的开始,但如果想在竞争中脱颖而出,必须有所突破,使自己与众不同。
最佳途径就是运用数据科学领域最新技术完成项目。想成为计算机视觉领域的专家吗?那就去学习最先进的目标检测算法。如果希望在自然语言处理(NLP)方面有所建树,那就学习Transformer模型的各种特性和分支。
重点是,要一直有所准备并乐于钻研最新的数据科学技术。数据科学是发展最快的领域之一,作为数据科学家的我们也需要不断学习成长。
本文带你来看看GitHub上创建于2019年8月的7个数据科学项目。笔者所选项目的范围十分广泛,涉及从机器学习到强化学习的诸多领域。
本文将这些数据科学项目分为三大类:
- 机器学习项目
- 深度学习项目
- 编程项目最好的数据科学项目" src="http://p9.pstatp.com/large/pgc-image/bdc119a2c04647449f7e723dafb1d748" _fcksavedurl="http://p9.pstatp.com/large/pgc-image/bdc119a2c04647449f7e723dafb1d748" width="1" height="1">
机器学习项目
pyforest——用一行代码导入所有Python数据科学库
笔者非常喜欢这个Python库。正如标题所述,所有常用的数据科学库都可以通过一个pyforest库导入。看看笔者从该库的Github仓库中摘录的示例:
激动了吗?Pyforest目前包括pandas、NumPy、matplotlib等数据科学库。
只需调用pip install pyforest这一指令在机器上安装该库,就能用一行代码导入所有流行的Python数据科学库。
- from pyforest import *
太神奇了!你一定也会像笔者这样享受使用它的过程。
HungaBunga – 另一种使用sklearn库搭建机器学习模型的方式
如何从搭建好的机器学习模型中选出最合适的那一个?如何确保发挥作用的是正确的超参数?这些都是数据科学家需要解答的关键问题。
相较于其他大多数数据库,HungaBunga项目能让用户更快地找到答案。它会利用所有可能的超参数来运行sklearn库中的所有模型(是的,所有!),随后通过交叉验证对模型进行排序。
下面是导入所有模型(包括分类模型和回归模型)的方式:
- from hunga_bunga import HungaBungaClassifier, HungaBungaRegressor
看看下面这篇全面讨论了监督机器学习算法的文章:
- 常用的机器学习算法(使用Python和R语言)
深度学习项目
DeepMind发布的用于强化学习的Behavior Suite(bsuite)
最近Deepmind连年增长的巨额亏损成了新闻。但是必须承认,这家公司在强化学习研究方面仍遥遥领先。他们在这一领域投入大量人力物力,认为强化学习是人工智能的未来。
下面介绍他们最新的开源产品——bsuite。这一项目集合了许多实验的成果,这些实验旨在理解强化学习对象的核心性能。
笔者喜欢这一研究领域,因为它必然会努力达成两个目的(每个Github仓库达成一个):
- 收集有价值且可推广运用的项目,这些项目会捕捉到在设计高效通用的机器学习算法时遇到的关键问题。
- 以通用尺度为标准,通过对象的表现研究其行为。
这个Github仓库详细解释bsuite的使用方式。
读者肯定听说过BERT。它基于Transformer架构,是自然语言处理(NLP)领域最流行的框架,并且正被越来越广泛地应用。
但是注意:运行它可能需要大量的资源。那么数据科学家该如何在自己的机器上运行BERT呢?更进一步,使用DistilBERT!
DistilBERT是Distillated-BERT的略称,由PyTorch转换框架团队开发。它是在BERT架构基础上搭建的一个小型且便宜的Transformer模型。开发团队称DistilBERT比BERT运行速度快60%,而性能与BERT相差不到5%。
这一Github仓库讲述了DistilBERT和Python代码协同工作的方式。可以点击下方链接了解更多有关PyTorch-Transformers框架及其在python中的使用方法。
- Pytorch-Transformers简介:一个非常神奇的NLP库(借助Python代码)
ShuffleNet Series ——一个极其高效、用于移动设备的卷积神经网络
接下来介绍的是计算机视觉项目!ShuffleNet是一个计算效率极高的卷积神经网络架构,适用于计算力有限的移动设备。
这个Github仓库包含了以下ShuffleNet模型(对,不止一个):
- ShuffleNet: 一个极其高效、用于移动设备的卷积神经网络
- ShuffleNetV2: 高效CNN架构设计的实用建议
- ShuffleNetV2+: ShuffleNetV2的强化版本
- ShuffleNetV2.Large: ShuffleNetV2的深化版本
- OneShot: 通过均匀抽样进行单通路单样本神经架构的研究
- DetNAS: 目标检测技术的支撑性研究
RAdam –提高学习率方差
目前,发布时间不到两周的RAdam项目已经得到了1200多颗星星的评价。足以证明这个仓库非常给力!
RAdam的开发者在其论文中(https://arxiv.org/pdf/1908.03265.pdf)表明,深度学习技术的收敛问题是由于在模型训练的早期阶段,自适应学习率的方差过大。
RAdam是Adam的一个新版本,可以修正自适应学习率的变化。这个版本在普通的Adam优化器基础上做出了切实改进,改善了方差问题。
处理不同学习率时RAdam的表现与Adam和SGD的对比如下(X轴代表训练轮数):
一定要查阅下面关于机器学习优化的指南(其中包含Adam的相关内容):
编程项目
ggtext –用于ggplot2的升级版文本渲染
对于社区中的所有R语言用户,尤其对于那些经常使用ggplot2包的用户(几乎每个人),这个项目会非常实用。
Ggtext包让用户能够对生成的图像进行富文本渲染。下面是一些可以通过ggtext完成的操作:
- 产生一个新的名为element_markdown()的主题元素,它能将文本渲染为markdown语言或者HTML
- 在坐标轴中插入图像(如下图所示)
- 使用geom_richtext()函数创建markdown/HTML标签(如下图所示)
这个GitHub仓库包含了一些直观的例子,读者可以在自己的机器上重复这些示例。
Ggtext目前还不能通过CRAN调用,用户需要下载并通过下面的指令从GitHub安装它: