首页 AI学术青年与开发者社区

从星际2深度学习环境到神经机器翻译,上手机器学习这些开源项目必不可少

沐沐mumu  

2018-01-15

雷锋网 AI 研习社按:本文主要编译于 Github 的文章「Getting started with machine learning」(原文链接:https://github.com/collections/machine-learning)。另外,雷锋网 AI 研习社在原文的基础上补充了部分开源项目,为 AI 开发者提供更加详细的 AI 项目和资源。

机器学习是用数据来学习、概括、预测的研究。近几年,随着数据的开发、算法的改进以及硬件计算能力的提升,机器学习技术得以快速发展,不断延伸至新的领域。从模式识别到电子游戏,开发者们通过训练 AI 算法实现了各种各样好玩的应用:

MarI/O 

源码地址:https://pastebin.com/ZZmSNaHX

一段用神经网络和遗传算法写的程序,可以玩「超级马里奥世界」。

Richard-An/Wechat_AutoJump

GitHub 地址:https://github.com/Richard-An/Wechat_AutoJump

AI 玩微信跳一跳的正确姿势。

lllyasviel/style2paints

GitHub 地址:https://github.com/lllyasviel/style2paints

AI 漫画线稿自动上色工具。

tensorflow/magenta

GitHub 地址:https://github.com/tensorflow/magenta

机器智能音乐与艺术生成器。

jbhuang0604 / awesome-computer-vision

GitHub 地址:https://github.com/jbhuang0604/awesome-computer-vision

很不错的计算机视觉资源。

虽然研究者们在机器学习领域取得了让人兴奋的成果,不过我们仍然处于机器学习发展的早期阶段。

对于刚接触机器学习的开发者来讲,想要理解什么是机器学习,首先要搞懂三个部分:输入、算法、输出。

输入:驱动机器学习的数据

输入指的是算法和训练模型需要的数据集,从源代码到统计数据,数据集可以包括任何东西:

GSA/data 

GitHub 地址:https://github.com/GSA/data

来自美国总务管理局的分类数据。

GoogleTrends / data 

GitHub 地址:https://github.com/GoogleTrends/data

Google 开源数据的索引

nationalparkservice / data 

GitHub 地址:https://github.com/nationalparkservice/data

一个非官方的美国国家公园数据库。

fivethirtyeight / data

GitHub 地址:https://github.com/fivethirtyeight/data

新闻网站 FiveThirtyEight 上的一些代码和数据。

zalandoresearch/fashion-mnist

GitHub 地址:https://github.com/zalandoresearch/fashion-mnist

一个类似 MINIST 的时尚产品数据库。

beamandrew / medical-data

GitHub 地址:https://github.com/beamandrew/medical-data

机器学习医疗数据清单。

src-d / awesome-machine-learning-on-source-code

GitHub 地址:https://github.com/src-d/awesome-machine-learning-on-source-code

与机器学习相关的链接和论文的代码。

PAIR-code/facets

GitHub 地址:https://github.com/PAIR-code/facets

机器学习数据集可视化工具。

由于我们需要这些数据来训练机器学习算法,所以获取高质量的数据集是如今机器学习领域的最大挑战之一。

算法:如何处理和分析数据

机器学习算法可利用数据执行特定的任务,最常见的机器学习算法有如下几种:

1.监督学习。

监督学习使用以及标注过的和结构化的数据,通过制定一组输入数据集合所需的输出,机器可以学习如何识别目标并且映射到其他的学习任务上。

例如,在决策树的学习中,数值可通过应用一组输入数据的决策规则来预估:

igrigorik / decisiontree

GitHub 地址:https://github.com/igrigorik/decisiontree

基于 ID3 的机器学习决策树算法的实现。

2.无监督学习

无监督学习是使用非结构化数据来发现模式和结构的过程。监督学习可能会使用电子表格作为数据的输入,而无监督学习可能会用来理解一本书或者一篇文章。

例如,无监督学习是自然语言处理中非常流行的方法:

keon / awesome-nlp

GitHub 地址:https://github.com/keon/awesome-nlp

专门用于自然语言处理(NLP)的资源清单列表。

3.增强学习

增强学习可要求算法实现一个特定的目标,它通过奖惩的方式使 Agent 行为性能达到最大。

例如,增强学习可以用于开发自动驾驶汽车或者教会一个机器人如何生产物件。

openai / gym

GitHub 地址:https://github.com/openai/gym

一个用于开发和比较增强学习算法的工具包。

aikorea / awesome-rl

GitHub 地址:https://github.com/aikorea/awesome-rl

专门用于强化学习的资源清单。

一些可以用于练习的项目

umutisik / Eigentechno

GitHub 地址:https://github.com/umutisik/Eigentechno

音乐循环的主成分分析

jpmckinney / tf-idf-similarity

GitHub 地址:https://github.com/jpmckinney/tf-idf-similarity

在 Ruby gem 上用 tf * idf 来计算文本之间的相似度。

scikit-learn-contrib / lightning

GitHub 地址:https://github.com/scikit-learn-contrib/lightning

Python 的大规模线性分类、回归和排名。

gwding / draw_convnet

GitHub 地址:https://github.com/gwding/draw_convnet

用于说明卷积神经网络(ConvNet)的 Python 脚本。

一些库和工具:

scikit-learn / scikit-learn

GitHub 地址:https://github.com/scikit-learn/scikit-learn

用 Python 实现机器学习。

tensorflow / tensorflow

GitHub 地址:https://github.com/tensorflow/tensorflow

一个采用数据流图(data flow graphs),用于数值计算的开源软件库

Theano / Theano

GitHub 地址:https://github.com/Theano/Theano

可以高效定义、优化、评估涉及多维数组数学表达式的 Python 库。

shogun-toolbox/shogun

GitHub 地址:https://github.com/shogun-toolbox/shogun

高效的开源机器学习工具。

davisking / dlib

GitHub 地址:https://github.com/davisking/dlib

用 C++ 编写的机器学习与数据分析应用工具包。

apache / predictionio

GitHub 地址:https://github.com/apache/predictionio

面向开发者和机器学习工程师的机器学习服务器,基于Apache Spark,HBase 和 Spray 。

更多的深度学习框架,可查看文章:

迎来 PyTorch,告别 Theano,2017 深度学习框架发展大盘点

输出:最终的结果

机器学习的输出结果可以是一种识别颜色的模式,也可以是简单的网页色调分析,或者是某个置信区间里的预估值。总之,输出的结果可以是任何事情。

获取输出结果的方式有以下几种:

  • 分类:为数据集中的每一个项目生成一个输出值

  • 回归:给出数据,预测所考虑变量最可能的值

  • 聚类:将相似模式的数据聚集在一起

以下是几个应用例子:

deepmind / pysc2

GitHub 地址:https://github.com/deepmind/pysc2

DeepMind 用增强学习玩星际争霸2。

gokceneraslan / awesome-deepbio

GitHub 地址:https://github.com/gokceneraslan/awesome-deepbio

一个用于生物计算领域的深度学习应用程序清单。

buriburisuri / ByteNet

GitHub 地址:https://github.com/buriburisuri/ByteNet

用 DeepMind ByteNet 实现的,基于 Tensorflow 的法语转英语翻译器。

OpenNMT/OpenNMT

GitHub 地址:https://github.com/OpenNMT/OpenNMT

Torch 上的开源神经机器翻译。

准备好开始上手机器学习了吗?

好好利用开源项目来掌握机器学习,你也可以像下面的开发者那样贡献出你的资源:

机器学习:

josephmisiti / awesome-machine-learning

https://github.com/josephmisiti/awesome-machine-learning

一些机器学习框架、库和软件的清单。

ujjwalkarn/Machine-Learning-Tutorials

https://github.com/ujjwalkarn/Machine-Learning-Tutorials

机器学习和深度学习的教程、文章以及其他的一些资源。

深度学习

awesome-deep-learning

https://github.com/ChristosChristofidis/awesome-deep-learning

一些不错的深度学习教程、项目和社区。

fastai / courses

https://github.com/fastai/courses

fast.ai 课程。

Tensorflow:

jtoy / awesome-tensorflow

GitHub 地址:https://github.com/jtoy/awesome-tensorflow

TensorFlow 资源清单 http://tensorflow.org

nlintz / TensorFlow-Tutorials

GitHub 地址:https://github.com/nlintz/TensorFlow-Tutorials

TensorFlow 的简单教程。

pkmital / tensorflow_tutorials

GitHub 地址:https://github.com/pkmital/tensorflow_tutorials

一些 TensorFlow 的基础知识和有趣的应用。

最后,雷锋网(公众号:雷锋网) AI 研习社再附上两个程序员佛系注释,愿佛祖保佑你们编程无 Bug。

Guicai-Li/OneDay

https://github.com/Guicai-Li/OneDay

YondoL/Buddha

https://github.com/YondoL/Buddha/blob/master/index.html

0条评论