想成为机器学习工程师?这份自学指南你值得收藏

简介:
本文来自AI新媒体量子位(QbitAI)

这篇文章的作者为Andrey Nikishaev,他既是一个软件开发者,也是一个创业者。

7643b13ae2a43a982b0d75874a8e222c70abe8ce

如何成长为一名机器学习工程师?

经常有人这么问,而这篇文章就尝试回答这个问题,其中会谈到关于机器学习的方方面面,从简单的线性回归到最新的神经网络。你不仅将学习如何使用这些技术,还将学习如何从头开始构建它们。

这个指南主要面向计算机视觉(CV),这也是掌握一般知识的最快方式,从CV中获取的经验可以简单地应用到机器学习的其他领域。

我们将使用TensorFlow作为框架。这些课程需要你会Python,虽然不要求你是大师,但至少要懂基本的知识。(另外,都是英语授课)

温馨提示,学习知识与动手实践相结合效果更佳。

1. 课程

1.1 约翰霍普金斯大学的实用机器学习

课程总共4周,用户评分:4.4(5分制,下同)

地址:

https://www.coursera.org/learn/practical-machine-learning#syllabus

1.2 斯坦福大学的机器学习

课程总共11周,用户评分:4.9。授课教师是大名鼎鼎的吴恩达。

地址:

https://www.coursera.org/learn/machine-learning

上面两节课,会教给你数据科学和机器学习的基本知识,并为下面的学习做好准备。

1.3 CS231n:面向视觉识别的卷积神经网络

总共16个课时,目前已更新为2017春季的最新版本。李飞飞是这节课程的导师。

地址:

http://cs231n.stanford.edu/

现在才算步入正轨。这是网上最好的机器学习与计算机视觉课程。

ae5385f658a4e26a0cad4b162a5fee6c43ec138f

1.4 Google讲深度学习

整个课程大约耗时三个月,导师为Google首席科学家Vincent Vanhoucke,以及Google Brain的技术负责人Arpan Chakraborty。

在这个课程中,将会教授深度学习的原理、设计可以从复杂的大型数据集学习的智能系统、训练和优化基本的神经网络、CNN、LSTM等。

地址:

https://www.udacity.com/course/deep-learning--ud730

选修课。你可以只看其中练习的部分。

1.5 CS224d:面向自然语言处理的深度学习

总共17个课时。

地址:

http://cs224d.stanford.edu/

选修课。推荐给那些需要用到NLP的同学。课程内容也很棒。

1.6 深度学习电子书

Leonardo Araujo dos Santos整理的深度学习电子书。

地址:

https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/

选看。这是一本涉及诸多机器学习领域的好书。

2. 练习

这部分给了一堆教程和项目的清单,你应该逐一尝试并了解它们的工作原理,以及考虑如何进行改进提升。这个列表的存在,只是为了增加你对机器学习的兴趣,所以遇到一些困难也别气馁,当你准备好就可以随时上手练习。

2.1 TensorFlow上的简单练习

Kadenze学院出品,总共5个课时。

地址:

https://www.kadenze.com/courses/creative-applications-of-deep-learning-with-tensorflow-iv/info

2.2 Tensorflow菜谱

这部分内容来自Nick McClure的电子书《TensorFlow Machine Learning Cookbook》。

地址:

https://github.com/nfmcclure/tensorflow_cookbook

2.3 Tensorflow-101教程部分

这是一个用Python和Jupyter Notebook编写的教程。试图为TensorFlow初学者提供尽可能的详细解释,希望对大家有用~

地址:

https://github.com/sjchoi86/Tensorflow-101

2.4 快速风格迁移网络

地址:

https://github.com/lengstrom/fast-style-transfer

这个教程展示了如何使用神经网络,将名画的风格迁移到任何一张照片上。

42064a865e7c78ab879d955e751bec1231f40feb

2.5 图像分割

这是一个使用TensorFlow实现的完全卷积网络。作者Marvin Teichmann还提供了如何把这部分代码集成到你的语义分割管道中的示例。

地址:

https://github.com/MarvinTeichmann/tensorflow-fcn

2.6 使用SSD实现物体识别

物体识别最快(也是最简单)的模型之一

地址:

https://github.com/balancap/SSD-Tensorflow

2.7 面向物体识别和语义分割的快速掩膜RCNN

地址:

https://github.com/CharlesShang/FastMaskRCNN

2.8 强化学习

地址:

https://github.com/dennybritz/reinforcement-learning

非常有用,特别是当你想搭建一个机器人或者下一个DotA AI时。

2.9 Google大脑团队的Magenta项目

地址:

https://github.com/tensorflow/magenta/tree/master/magenta/models

这个项目旨在通过神经网络创造出色的艺术和音乐作品。

2.10 深度双边学习实时图像增强

地址:

https://groups.csail.mit.edu/graphics/hdrnet/

一个很棒的图像增强算法,来自Google。

2.11 自动驾驶汽车项目

地址:

https://github.com/udacity/self-driving-car

想造一辆自动驾驶汽车么?这是一个很好的入门。

3. FAQ

1e00b579737236b0f7eca22ab7d5d03fe58426e6

如果中途卡住了怎么办?

首先,你得明白机器学习不是100%精确的东西,大多数情况下只是一个很好的猜测,并且需要大量的调整迭代。大多数情况下,想出一个独特的点子是非常困难的,因为你的时间和资源将耗费在训练模型上。

所以,不要自己想解决方案。去搜索论文、项目,以及求助他人,积攒的经验越多,你会干的越好。给几个可能有用的网站:

http://www.gitxiv.com

http://www.arxiv-sanity.com

https://arxiv.org

https://stackoverflow.com

为什么论文不能完全解决这个问题,为什么论文有些地方是错的?

很遗憾,并不是所有的科技人员都想把他们的成果公之于众,但他们都需要发表论文来获得“名“或者”利”。所以一些人可能只发布部分素材,或者给出错误的公式。所以找到代码永远比找到论文更有用。

哪里可找到最新的资料?

参考上面推荐过的几个网站,尤其是gitxiv.com,不仅仅能找到论文,而且还能找到代码,所以特别实用。

我应该用云计算还是台式机/笔记本电脑?

云更适用于有大量计算需求的情况。对于学习和测试来说,使用台式机/笔记本电脑要便宜得多,当然前提是配有支持CUDA的显卡。比方,我自己就用一个笔记本训练模型,显卡是带有690CUDA核心的GTX GeForce 960M。

当然,如果有免费的云资源可用,当然要用。

如何更好地调整超参数?

训练的主要问题是时间。你不可能一直坐在那看着训练数据。因此,我建议你使用Grid Search。基本上,只需要创建一组超参数和模型架构,然后一个接一个的运行,并保存结果。这样就能晚上训练,白天比较结果,找到最有希望的那个。

详情可以参考这个网址:

http://scikit-learn.org/stable/modules/grid_search.html

本文作者:问耕
原文发布时间:2017-08-21 
相关文章
|
3月前
|
机器学习/深度学习 人工智能 搜索推荐
【数据挖掘】2022年深信服科技机器学习工程师笔试
总结了深信服科技机器学习工程师笔试中的几道题目及其解答,涉及数据结构、机器学习评估指标和过拟合缓解方法等内容。
92 1
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 历史笔试详解
文章汇总并解析了百度机器学习/数据挖掘工程师/自然语言处理工程师历史笔试题目,覆盖了多分类任务激活函数、TCP首部确认号字段、GMM-HMM模型、朴素贝叶斯模型、SGD随机梯度下降法、随机森林算法、强连通图、红黑树和完全二叉树的高度、最长公共前后缀、冒泡排序比较次数、C4.5属性划分标准、语言模型类型、分词算法、贝叶斯决策理论、样本信息熵、数据降维方法、分箱方法、物理地址计算、分时系统响应时间分析、小顶堆删除调整等多个知识点。
41 1
【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 历史笔试详解
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 2023届校招笔试详解
百度2023届校招机器学习/数据挖掘/自然语言处理工程师笔试的题目详解
76 1
|
3月前
|
存储 机器学习/深度学习 PyTorch
深入理解GPU内存分配:机器学习工程师的实用指南与实验
给定一个模型架构、数据类型、输入形状和优化器,你能否计算出前向传播和反向传播所需的GPU内存量?
38 0
|
机器学习/深度学习 人工智能 监控
如何成为机器学习工程师
机器学习工程师是一个综合要求很高的交叉学科岗位,要求从业者学习很多必要技能和工具,以应对实际项目中遇到的各种挑战。 本文能为励志成为机器学习工程师的人提供一个清晰的成长路线图。
389 1
如何成为机器学习工程师
|
机器学习/深度学习
「机器学习」机器学习工程师的2020 路线图
「机器学习」机器学习工程师的2020 路线图
|
SQL 机器学习/深度学习 Web App开发
【实验】阿里云大数据助理工程师认证(ACA)- 机器学习实现基本统计分析
【实验】阿里云大数据助理工程师认证(ACA)- 机器学习实现基本统计分析
158 0
【实验】阿里云大数据助理工程师认证(ACA)- 机器学习实现基本统计分析
|
机器学习/深度学习 人工智能 算法
Interview:机器学习算法工程师求职九大必备技能之【数学基础、工程能力、特征工程、模型评估、优化算法、机器学习基本概念、经典机器学习模型、深度学习模型、业务与应用】(建议收藏,持续更新)
Interview:机器学习算法工程师求职九大必备技能之【数学基础、工程能力、特征工程、模型评估、优化算法、机器学习基本概念、经典机器学习模型、深度学习模型、业务与应用】(建议收藏,持续更新)
Interview:机器学习算法工程师求职九大必备技能之【数学基础、工程能力、特征工程、模型评估、优化算法、机器学习基本概念、经典机器学习模型、深度学习模型、业务与应用】(建议收藏,持续更新)
|
机器学习/深度学习 数据采集 人工智能
自学成才的机器学习工程师十诫
自律和自学这两个词不能掉以轻心。一个人必须对自己的教育和启蒙负责。如果你忽略它,别人就会为你做选择。
136 0
|
机器学习/深度学习 人工智能 算法
AI工程师面试知识点:机器学习算法类
AI工程师面试知识点:机器学习算法类
AI工程师面试知识点:机器学习算法类