编译 | Arno
来源 | analyticsvidhya
概述
我喜欢机器学习开源社区,作为一个有抱负且资深的数据科学家,我的大部分学习来自开源的资源和工具。
如果你还没有接受机器学习中开源工具的美妙之处 -- 那么你就错过了很多东西!开源社区规模庞大,对新工具的支持态度令人难以置信,并且接受了机器学习民主化的概念。
你必须已经了解流行的开源工具,如R,Python,Jupyter notebooks等等。但是,除了这些流行的工具之外还有一些低调神秘的机器学习工具存在,这些并不像它们“同行”那样出色,但可以成为许多机器学习任务的救星。
在本文中,我们将介绍21种用于机器学习的开源工具。我强烈建议你花一些时间了解下我提到的每个工具。除了我们通常在课程和视频中学到的东西之外,还有很多需要学习的地方。
请注意,其中许多是基于Python的库或工具,因为让我们知道Python是一种多功能的编程语言!
我们将开源机器学习工具分为以下5类:
面向非程序员的开源机器学习工具
用于机器学习模型部署
大数据开源工具
用于计算机视觉,NLP和音频
对于非程序员或是没有技术背景的人来说,机器学习看起来很复杂。这是一个广阔的领域,可以想象可能第一次接触机器学习会多么令人生畏。那么没有编程经验的人能否在机器学习中取得成功?
事实证明,你们可以!这里有一些工具可以帮助你跨越鸿沟并进入机器学习世界:
https://www.youtube.com/watch?v=OGweVw57kus
还有许多有趣、免费和开源的软件可以方便我们进行机器学习,而无需编写(大量)代码。
另一方面,你可以考虑一些付费的开箱即用服务,例如Google AutoML,Azure Studio,Deep Cognition和Data Robot。 部署机器学习模型是你应该注意然而最容易被忽视但重要的任务之一。它几乎肯定会在面试中出现,所以你可能也很熟悉这个话题。
以下是一些框架,可以更轻松地将你的项目部署到现实世界的设备中。
TensorFlow Lite :TensorFlow Lite是一组工具,可帮助开发人员在移动设备(Android和iOS),嵌入式和物联网设备上运行TensorFlow模型。它旨在简化在网络“边缘”的设备上执行机器学习,而不是从服务器来回发送数据。
TensorFlow.js :TensorFlow.js可以成为你在网络上部署机器学习模型的首选。它是一个开源库,可让你在浏览器中构建和训练机器学习模型。它具有GPU加速功能,并且还自动支持WebGL。你可以导入现有的预训练模型,并在浏览器中重新训练整个现有的机器学习模型!
3. 用于大数据的开源机器学习工具
大数据是一个研究如何分析、系统地从数据集中提取信息,或者处理传统数据处理应用软件无法处理的太大或太复杂的数据集的领域。想象一下,每天处理数百万条推文进行情绪分析。这感觉像是一项艰巨的任务,不是吗?
别担心!以下是一些可以帮助你用于大数据的工具。
4. 用于计算机视觉、NLP和音频的开源机器学习工具 “如果我们想让机器思考,我们需要教它们看东西。” ——李飞飞博士谈计算机视觉
Tesseract OCR :你是否使用过一些创造性的应用程序,可以通过智能手机摄像头扫描文件或购物账单,或者仅仅通过给支票拍照就可以把钱存入银行账户?所有这些应用程序都使用我们称之为OCR或光学字符识别软件。Tesseract就是这样一个OCR引擎,它可以识别超过100种语言。它也可以通过训练来识别其他语言。
Detectron : Detectron是Facebook AI Research研究小组的软件系统,它实现了最先进的目标检测算法,包括Mask R-CNN。它是用Python编写的,并由Caffe2深度学习框架提供支持。
BERT as a Service :你们所有的NLP爱好者都应该听说过BERT,谷歌中开创性的NLP架构,但是你们可能还没有遇到过这个非常有用的项目。BERT -as-a-service使用BERT作为句子编码器,并通过ZeroMQ将其作为服务托管,允许你仅用两行代码将句子映射成固定长度的表示形式。
Google Magenta :这个库提供了操作源数据(主要是音乐和图像)的实用工具,使用这些数据来训练机器学习模型,最后从这些模型生成新的内容。可以通过下面的链接进一步了解如何使用Google Magenta:
https://www.youtube.com/watch?v=pM9u9xcM_cs
5. 用于强化学习的开源工具
当谈到机器学习时,RL是最近的热门话题。强化学习(RL)的目标是训练能够与环境交互并解决复杂任务的智能代理,并将其应用于机器人、自动驾驶汽车等领域。
推动了这一领域的快速发展是通过让代理玩游戏,如标志性的Atari控制台游戏,古老的Go游戏,或专业的视频游戏Dota 2或Starcraft 2,所有这些都提供了富有挑战性的环境,在这些环境中,新的算法和思想可以以一种安全和可重复的方式快速测试。以下是一些RL最有用的训练环境:
https://www.youtube.com/watch?v=F8DcgFDT9sc
OpenAI Gym : Gym是一个用于开发和比较强化学习算法的工具包。它支持教代理从学会走路到玩乒乓球或弹球等游戏。
Unity ML Agents : Unity Machine Learning Agents Toolkit (ML-Agents)是一个开放源码的Unity插件,它可以将游戏和仿真作为训练智能代理的环境。通过一个简单易用的Python API就可以使用强化学习、模仿学习、神经进化或其他机器学习方法来训练代理。
Project Malmo : Malmo平台是一个基于Minecraft构建的复杂AI实验平台,旨在支持人工智能的基础研究。它由微软开发。可以通过下面的链接视频了解更多:
https://www.youtube.com/watch?v=KkVj_ddseO8
总结 从上面的一组工具可以明显看出,当我们考虑数据科学和人工智能相关的项目时,开源是我们要走的路。我可能只是触及了冰山一角,但是有许多工具可以用于各种各样的任务,使作为数据科学家的实验变得更容易,而只需要知道在哪里查找即可。。 在本文中,我们涵盖了5个有趣的数据科学领域,而如果没有代码、ML部署、大数据、视觉/NLP/声音和强化学习,就没有人真正谈论ML。这个5个方面,我个人认为在考虑人工智能的真实世界价值时产生的影响最大。
— 完 —
扫码关注人工智能头条 围观一个假的 AI