史上最完整机器学习自学攻略!我不相信有人看完这份不会把它加进

浏览量:981 时间:2020-06-24阅读:403点赞:567

史上最完整机器学习自学攻略!我不相信有人看完这份不会把它加进

问耕/编译整理

本文经 AI 新媒体量子位(公众号 ID:QbitAI)授权转载,转载请联繫出处

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

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

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

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

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

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

1. 课程

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

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

1.2 史丹佛大学的机器学习

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

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

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

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

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

史上最完整机器学习自学攻略!我不相信有人看完这份不会把它加进

1.4 Google 讲深度学习

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

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

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

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

总共 17 个小时。

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

1.6 深度学习电子书

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

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

2. 练习

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

2.1 TensorFlow 上的简单练习

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

2.2 Tensorflow 菜谱

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

2.3 Tensorflow-101 教程部分

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

2.4 快速风格迁移网络

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

史上最完整机器学习自学攻略!我不相信有人看完这份不会把它加进

2.5 图像分割

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

2.6 使用 SSD 实现物体识别

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

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

2.8 强化学习

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

2.9 Google 大脑团队的 Magenta 项目

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

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

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

2.11 自动驾驶汽车项目

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

3. FAQ

史上最完整机器学习自学攻略!我不相信有人看完这份不会把它加进

如果中途卡住了怎麽办?

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

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

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

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

哪里可找到最新的资料?

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

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

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

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

如何更好地调整超参数?

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

详情可以参考 这个网址

相关文章