从简单的线性回归(linear regressoin)到最新的神经网络(neural network),我们将引导你学习机器学习(ML:machine learning)的各个方面,不仅学习如何使用它们,而且学习如何从头开始构建它们。 这条学习路径的很大一部分是以计算机视觉(CV: Computer Vision)为导向的,因为它是获得机器学习领域的知识的最快方法,CV的经验可以简单地转移到任何ML领域。 我们将使用TensorFlow作为ML框架,因为它是目前看来最有前途的机器学习框架,并且可以直接用于生产环境。 如果你在学习理论和实践的同时加以实践,那么学习效果会更好。 此外,如果你想尝试解决现实生活中的实际问题,我建议你在Kaggle注册,因为这种竞赛有助于丰富你的简历。 基本技能要求:Python。 你不需要是一个Python专家,掌握基本的知识就够了。碰到问题可以查手册。 1. 课程1.1 约翰霍普金斯大学的实用机器学习 网址: https://www./learn/practical-machine-learning 1.2 斯坦福大学的机器学习 网址: https://www./learn/machine-learning 这两个课程主要是关于数据科学和机器学习方面的基本知识,让你为解决真正的问题做好基础知识的准备。 1.3 Andrew Ng的深度学习课程 网址:https://www./specializations/deep-learning 1.4 CS231n:用于视觉识别的卷积神经网络2017 网址:http://cs231n./ 这是你可以在互联网上找到有关ML&CV的最好的课程之一。 它不仅会告诉你计算机视觉现在可以达到的高度,而且会帮你打好基础以便进一步深入。 1.5 Google深度学习 网址:https://www./course/deep-learning--ud730 可选课程。 你可以只学习其中的实战部分。 1.6 CS224d:使用深度学习进行自然语言处理 网址:http://cs224d./ 如果要使用自然语言处理(NLP: Natural Language Processing)技术,可以选择这门课程。 嗯,很棒的课程。 1.7 深度学习书 网址:https://leonardoaraujosantos./artificial-inteligence/content/ 很好的手册,涵盖ML的诸多方面。 2.实用部分这份清单包括许多教程和项目,你可以尝试、理解它们是如何工作的,并考虑如何进行改进。 这个清单是为了增加你对ML的专业知识了解和兴趣而整理的,所以如果其中某些任务对你现在来说还很难,那么不妨在你打好基础以后再回头学习。 2.1 Kadenze的Tensorflow简明实践课程 网址:https://www./courses/creative-applications-of-deep-learning-with-tensorflow-iv/info 2.2 Tensorflow码书 网址:https://github.com/nfmcclure/tensorflow_cookbook 2.3 Tensorflow-101教程集 网址:https://github.com/sjchoi86/Tensorflow-101 2.4 快速风格迁移网络 网址:https://github.com/lengstrom/fast-style-transfer 讲解如何使用神经网络将绘画风格迁移到任何照片上。 2.5 图像分割 网址:https://github.com/MarvinTeichmann/tensorflow-fcn 2.6 使用SSD进行对象检测 网址:https://github.com/balancap/SSD-Tensorflow SSD是用于对象检测的最快、也更简单的模型之一。 2.7 用于对象检测和分割的快速掩码递归卷积网络 网址:https://github.com/CharlesShang/FastMaskRCNN 2.8 强化学习 网址:https://github.com/dennybritz/reinforcement-learning 强化学习是非常有用的机器学习技术,特别是如果你想打造一个智能机器人或下一个Dota AI :) 2.9 来自Google Brain团队的Magenta项目 网址:https://github.com/tensorflow/magenta/tree/master/magenta/models 该项目旨在利用神经网络创作艺术和音乐。 成果相当可观。 2.10 用于实时图像增强的深度双边学习 网址:https://groups.csail./graphics/hdrnet/ 来自Google的新算法,用于图片增强 2.11 自动驾驶项目 网址:https://github.com/udacity/self-driving-car 想让你的车实现全自动驾驶? - 这是一个很好的起点。 3.常见问题如果卡住了怎么办?首先,你必须明白,ML不是100%精确的 - 大多数情况下只能是一个很好的猜测和大量的调整迭代。 因此,在大多数情况下,因为你花费在模型训练上的时间和资源的限制,靠自己提出一些独特的想法是非常困难的。 所以尽量不要试图自己找出解决方案 - 搜索论文、项目、可以帮助你的人。 越快获得经验越好。 有些网站可以帮助你:
为什么论文中有错误?很可惜,但并不是所有的技术人员都想公开其工作,但是他们都需要出版物才能获得资助和声誉。 所以有些人只是公布一部分材料,或者是故意在公式中引入错误。 这就是为什么搜索代码要好于论文。 你应该把这些论文看作是某个问题已经得到解决的证据或事实。 在哪里可以找到最新的资料?我使用这几个网站来跟踪机器学习领域的最新进展:
首先你可以找到的不仅仅是一篇论文,而且其中包含有实验代码,所以更实用。 使用云计算还是笔记本电脑?云计算是密集型计算的最佳选择。 对于学习和测试而言,使用带有CUDA图形卡的PC /笔记本电脑则要便宜得多。 例如,我使用装有GTX GeForce 960M显卡的笔记本电脑训练所有的模型。 当然,如果你已经有云或可以免费获得的云资源,可以使用它。 如何改进模型超参数的调整?训练中的主要问题是需要时间。 你不能坐下来一直盯着训练数据看。 出于这个原因,我建议你使用网格搜索(grid search)。 基本上,只需创建超参数集和模型体系结构,然后一个接一个地运行并保存结果。 因此,你可以在晚上进行训练,并在第二天比较结果,从而找出最好的参数。 你可以看看在sklearn库中是如何进行网格搜索的, 建议你收藏这篇文章,我相信你会时不时地需要它:-) 原文:How To Become A Machine Learning Engineer: Learning Path |
|