GitHub超全机器学习工程师成长路线图,开源两日收获3700+Star!【转】
作者 | 琥珀
出品 | AI科技大本营(ID:rgznai100)
近日,一个在 GitHub 上开源即收获了 3700+ Star 的项目,引起了营长的注意。据介绍,该项目以 TensorFlow 和 Scikit-learn 的机器学习框架的基础库为例,详细介绍了如何成为一名机器学习工程师的成长路径。
该项目的作者还是一位来自意大利的 IT 工程师,名叫 Giacomo Ciarlini,十分帅气的有没有?
作者首先强烈推荐了《Scikit-Learn 与 TensorFlow 机器学习实用指南》一书。之外,他还上传了全球顶尖大学和开源组织的学习资源,并收集了理论和示例,以及对选择最佳资源的建议。
内容主要分为四大部分:
一、先决条件
Python
Jupyter Notebook
需要掌握的基本数学知识
机器学习全貌
二、使如何使用 Scikit-Learn 进行机器学习
为什么是 Scikit-Learn?
端到端机器学习项目
线性回归
分类
训练模型
支持向量机
决策树
合奏学习和随机森林
无监督学习
结语和期待
三、通过 TensorFlow 训练的神经网络
为何选择 TensorFlow?
使用 TensorFlow
ANN - 人工神经网络
CNN - 卷积神经网络
RNN - 递归神经网络
训练网络:最佳实践
自动编码
强化学习
四、工具
机器学习项目
数据科学工具
博客 / YouTube 频道 / 网站
每个标签下,作者都有详细的解释并给出了实战操作的资源,实乃良心之作!下面,就由营长来详细介绍下这个项目里有哪些值得一看的资源(并附上部分教程链接)。
一、先决条件
Python
基础知识:https://pythonprogramming.net/introduction-learn-python-3-tutorials/
作者还建议,除了对 Python 熟悉掌握外,还可以了解下 Numpy,它是数学运算的重要模块,可以有助于你在后面 Python 环境中导入 Tensor 数据类型。
Python3 安装地址:https://realpython.com/installing-python/
PyCharm Community Edition(一个用于 Python 开发的完整 IDE,为实验设置一个新的 Python 虚拟环境)
安装地址:https://www.jetbrains.com/pycharm/download/#section=windows
Jupyter Notebook
是一个开源的 Web 应用程序,帮助用户创建和共享文档,包括 live code,方程,可视化,叙述文本。例如,数据清洗、数值模拟、统计建模、数据可视化、机器学习等。
需要掌握的基本数学知识
在作者看来,数学是机器学习背后的重要基础。但重要的是,掌握主要概念并认识到这些数学方法的应用领域和局限性。
他给出了三个课程链接,分别是:
线性代数:https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/
概率基础和统计:https://www.edx.org/course/introduction-to-probability-0
其他数学资源:https://explained.ai/matrix-calculus/index.html#sec4.5
机器学习全貌
最后,还要通过一篇科普读物,了解整个机器学习全貌:https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/ch01.html
二、如何使用 Scikit-Learn 进行机器学习?
安装 Scikit-Learn
python pip install -U scikit-learn
如果安装时遇到一些问题,可能是你更新到最新版本的 pip,所以在同一个文件夹内运行:
python -m pip install --upgrade pip
- 为什么是 Scikit-Learn?
Scikit-Learn 是机器学习任务中最完整、最成熟,且记录完整的库之一。它开箱即用,具有强大而先进的模型。
端到端机器学习项目
Kaggle,作为机器学习和通用数据科学项目的首选平台,它提供了大量免费数据集,以及有趣的挑战和 ML 模型实验。
线性回归
线性回归是最简单的机器学习形式,也是模型训练的起点。
可以参看吴恩达的理论课程:https://www.youtube.com/watch?v=W46UTQ_JDPk&list=PLoR5VjrKytrCv-Vxnhp5UyS1UjZsXP0Kj&index=2
分类
如果想要从不同的可能性中预测结果,分类则是最重要的机器学习任务之一。最简单的情况是二元分类问题。
训练模型
作者列举了 ML 任务中训练模型的一些技术,在 Google Crash 教程中可以找到:
梯度下降:https://developers.google.com/machine-learning/crash-course/reducing-loss/gradient-descent
学习率:https://developers.google.com/machine-learning/crash-course/reducing-loss/learning-rate
SGD:https://developers.google.com/machine-learning/crash-course/reducing-loss/stochastic-gradient-descent
正则化:https://www.youtube.com/watch?v=Q81RR3yKn30
支持向量机
是创建 ML 模型的另一种经典算法。
除了理论解释外,还有更多实战策略:
https://www.youtube.com/watch?v=g8D5YL6cOSE
决策树
集成学习和随机森林
集成学习(Ensemble Learning)的思路是利用了几款 ML 模型的所有不同特征、优劣势,以期得到最有可能性的预测结果。
集成学习基础知识:
https://www.youtube.com/watch?v=9VmKYwX_U7s
随机森林最经典实践:
https://www.youtube.com/watch?v=3kYujfDgmNk
无监督学习
涵盖了无监督学习的介绍、解释,以及与监督学习、强化学习之间的差别。
关于涉及的两个重要技术:关联规则(Association Rules)和聚类,作者分别提供了示例和教程。
三、通过 TensorFlow 训练的神经网络
在本节中,作者主力推荐斯坦福大学深度学习课程以及其他网络教程,帮助学习者快速了解这些内容。其中包括 ANN、CNN、RNN 等不同种类的机器学习模型。实际上,作者花了很长时间去理解神经网络的理论和应用,包括阅读博客、官网论坛、学习路径。
他给出了“三步走”的建议:
通过斯坦福大学教程了解神经网络的主要概念,不要过多担心一些数学解释,而要关注什么和为什么;
使用理论 + 教程 + 示例(如 RNN 理论 + RNN 教程 + RNN 示例),每次只深度探讨一个主题;
每探讨完一个主题,就回溯一遍斯坦福大学的课程。这种方式将帮助你完全理解所有公式,并将课程中提到的 “数学” 相关知识联系起来,触类旁通。
作者表示,以上这种方式可根据需要重复多次,然后在你的头脑中构建一个良好的通用模型。
斯坦福大学课程 PPT 地址:http://cs231n.stanford.edu/slides/2018/
为何选择 TensorFlow?
目前,TensorFlow 已经企业里实现机器学习算法的事实标准。
在安装 TensorFlow 库之前,你只需在 Python 安装文件夹中打开一个终端并运行此命令:
python pip install tensorflow
- ANN - 人工神经网络
CNN - 卷积神经网络
RNN - 递归神经网络
训练网络:最佳实践
自动编码
强化学习
以上细节就不一一细讲了。
四、其他资源
除了上述内容之外,作者还收集了大量文章、网络应用程序、最佳实践、项目和存储库。
机器学习项目
工具
YouTube 频道
博客
以及,其他值得一看的网站
作者最后表示,将在接下来的时间里对不同的主题进行扩充,包括:无监督学习、机器学习心态框架(如何像数据科学家一样思考)、使用 Pandas 进行数据处理和准备、特征选择、特色工程、扩展参数优化部分、Keras 库、TensorFlow 2.0、如何在 AWS、Azure 上部署模型等。
GitHub超全机器学习工程师成长路线图,开源两日收获3700+Star!【转】的更多相关文章
- 阿里巴巴年薪800k大数据全栈工程师成长记
大数据全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - Full Stack (需fanqiang).他把全栈工程师定义为对性能影响有着深入理解的技术通才.自那以后 ...
- 2019 Java 全栈工程师进阶路线图,一定要收藏
技术更新日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点松哥是深有体会的. 我刚开始学习 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,我相信这也是很多初学者经常面 ...
- 【转】Linux从入门到精通——运维工程师成长路线图——CTO马哥Linux视频教学
加油! http://edu.51cto.com/roadmap/view/id-2.html#6853467-sqq-1-36881-57ccc7d95ea58df839decd91bd220170
- PHP全栈工程师学习大纲
一.高性能网站开发功力提升 时间 标题 内容概要 2015-12-28 开学典礼以及工程师成长路线图 工程师成长的发展路径图.三个阶段,在各个阶段需要提升自己的地方,从技术上也讲了一些提高分析代码的工 ...
- 2019年java全栈工程师学习大全
技术更新日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点我是深有体会的. 我刚开始学习 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,我相信这也是很多初学者经常面临 ...
- 【转】iOS超全开源框架、项目和学习资料汇总
iOS超全开源框架.项目和学习资料汇总(1)UI篇iOS超全开源框架.项目和学习资料汇总(2)动画篇iOS超全开源框架.项目和学习资料汇总(3)网络和Model篇iOS超全开源框架.项目和学习资料汇总 ...
- iOS超全开源框架、项目和学习资料汇总--数据库、缓存处理、图像浏览、摄像照相视频音频篇
iOS超全开源框架.项目和学习资料汇总--数据库.缓存处理.图像浏览.摄像照相视频音频篇 感谢:Ming_en_long 的分享 大神超赞的集合,http://www.jianshu.com/p/f3 ...
- 超全的 Vue 开源项目合集,签收一下
超全的 Vue 开源项目合集,签收一下 xiaoge2016 前端开发 1周前 作者:xiaoge2016 链接: https://my.oschina.net/u/3018050/blog/2049 ...
- 库、教程、论文实现,这是一份超全的PyTorch资源列表(Github 2.2K星)
项目地址:https://github.com/bharathgs/Awesome-pytorch-list 列表结构: NLP 与语音处理 计算机视觉 概率/生成库 其他库 教程与示例 论文实现 P ...
随机推荐
- Oracle 网络配置与管理
[学习目标] Oracle 监听器是一个服务器端程序,用于监听所有来自客户端的请求,并为其提供数 据库服务.因此对监听器的管理与维护相当重要. 本章主要内容是描述对Oracle 监听器 ...
- Laravel框架中Blade模板的用法
1. 继承.片段.占位.组件.插槽 1.1 继承 1.定义父模板 Laravel/resources/views/base.blade.php 2.子模板继承 @extends('base') 1.2 ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- CenOS常用命令
reset 作用:清屏 cd Change the shell working dirctory 切换工作目录 用法 输入cd+“空格”+“/”+“目录” 示例:cd /home 切换到home目录 ...
- C#检查服务状态和启动关闭服务
WinForm 判断服务状态,显示服务名称和状态 https://blog.csdn.net/u013063880/article/details/78626200 C#获得服务,判断服务状态,启动服 ...
- JVM启动过程
JVM启动过程包括:加载.连接.初始化 1.加载:就是将class文件加载到内存.详细的说是,将class文件加载到运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封 ...
- ZOJ - 3471
壮压水一水,刚开始脑残了非要开两维dp... #include<cstdio> #include<cstring> #include<algorithm> #def ...
- Codeforces Round #441(Div.2) F - High Cry
F - High Cry 题目大意:给你n个数,让你找区间里面所有数或 起来大于区间里面最大数的区间个数. 思路:反向思维,找出不符合的区间然后用总数减去.我们找出每个数掌控的最左端 和最右端,一个数 ...
- 【Java】 剑指offer(55-2) 平衡二叉树
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一棵二叉树的根结点,判断该树是不是平衡二叉树.如果某二叉树 ...
- 如何在MacBook的以太网端口上成功运行DHCP服务器?
我的目标是在我的MacBook以太网端口上安装一个以太网交换机,我将通过DHCP连接几个Raspberry Pi连接,每个都将运行VNC服务器进行远程访问,我希望我的互联网可以从我的MacBook的W ...