0-学习路线

yizhihongxing

超详细的算法学习路线

https://cuijiahua.com/blog/2020/10/life-73.html

 

主要分为 4 个部分:数学基础、编程能力、算法基础、实战。

1、数学基础

在机器学习算法中,涉及到最为重要的数学基本知识有两个:线性代数概率论

这两也是大学的必修课了,如果知识早已还给老师,也没关系,哪里不会学补哪里

线性代数研究的是线性空间的性质,数据通常会被表示为欧式空间中的点,而这些点经过一系列变换后会映射到另一个空间,在新的空间中隐藏在数据中的规律才得以显现。

所以线性代数作为研究空间的一门科学,是入门机器学习的最要基础之一

视频:推荐 MIT 的老教授 Gilbert Strang 的线性代数上课视频。

没学过线代的同学会发现这门课程,讲得清晰而且直观,深入线代的精髓,完全不是那种理论堆砌的讲法,而且老教授幽默风趣,很有人格魅力。

英文不好,也不用担心,字幕是中文的

 

概率论是研究不确定性的一门科学,生活处处是概率。机器学习算法需要对现实情况建模,自然是少不了将概率论作为工具。

这门课入门并不难,大家可以挑一本评分还可以的书开始学习。

这里推荐陈希儒的《概率论与数理统计》,讲得很详细,如同听一个老者回忆自己的概率与统计心得,相信读者也会有所收获。

 

2、编程能力

编程语言,需要至少掌握两门, Python 和 C++。

工作中,Python 主要用于处理数据算法调研模型训练的工作,而 C++ 则是负责工程落地

算法工程师,需要针对落地场景,对算法的可靠性和实时性等方面进行优化,C++ 工程能力必不可少。

Python 是一门非常友好的编程语言,不但易于入门而且功能强大,在进行机器学习算法开发的过程中会大量使用 Python。

视频:我上学看的第一个视频,就是小甲鱼 Python 课程,风趣幽默,涉及Python 语法基础、网络爬虫、Pygame 飞机大战等内容,内容很丰富。

 

C++是一种面向对象的程序设计语言,无论你是做算法,还是做开发,亦或者是做测开。C++ 都应该掌握,它是一个基础的编程语言。学会了这门编程语言,再学其它,就会更得心应手。

视频:这部分推荐慕课网的免费教程,很好的入门视频,老师讲得绘声绘色、形象生动、通熟易懂。

 

想进阶,进一步学习,直接上 LeetCode。

力扣可以从 HOT 100 或 精选算法 200 题刷起,题目相对于《剑指Offer》要增加一些难度,但每道题目都有对应的解题思路和答案。

坚持刷完 200 道,大多的面试轻松搞定,完全够用。

当然要面试谷歌级别的大佬,Hard 题是不能放过的。

刷题地址:https://leetcode-cn.com/

 

3、算法基础

恭喜大家,在做了前面这么多基础工作之后,终于可以开始入门机器学习算法了。

机器学习

视频:推荐吴恩达老师的机器学习视频,吴恩达是整个领域的巨头之一,学术地位很高。同时,他出的视频也对新手非常友好,入门的不二之选。

下载地址(提取码:jack ):

链接:https://pan.baidu.com/s/1OglLhzB5gWHrK_pkAWF2Sg

教材:还是那句话,光看不练是不行的。《机器学习实战》,理论结合实战,适合新手。

在线阅读地址:https://cuijiahua.com/blog/ml/

 

深度学习

深度学习是现在的算法工程师绕不开的一个子领域,是机器学习的子集。

视频:还是推荐吴恩达老师的深度学习视频,也是对新手非常友好。

下载地址(提取码:jack ):

链接:https://pan.baidu.com/s/1TShDS2_jioxMRhFv2253aQ

教材:说实话,深度学习,我并没有看过书,都是视频+ Github 开源项目学习的,不过被誉为深度学习领域圣经的“花书”,可以备一本。

下载地址(提取码:jack):

链接:https://pan.baidu.com/s/1Pv3DbB2Eqp1oK0PlgTHxbA

深度学习框架

深度学习框架有很多,Tensorflow、Pytorch、Paddle、MXNet、Caffe等。

我在工作过程中,用的最多的是 Pytorch,其次是 Tensorflow。

新手上手,推荐先学 Pytorch,可以直接看 Yunjey Choi 大佬的 Github 教程,简单入门:

项目地址:

https://github.com/yunjey/pytorch-tutorial

Pytorch 深度学习框架学习,也可以看我写的 Pytorch 深度学习实战系列教程,有垃圾分类、图像分割等结合实战的小项目。

Github 开源代码 Star 400+,fork 250+。

项目地址:

https://github.com/Jack-Cherish/Deep-Learning

我也将这个系列打包成了本地 pdf,喜欢离线看,也可以直接下载。

下载地址(提取码:jack):

链接:https://pan.baidu.com/s/1PXkcKJa-ZJ0fWeqVduCoZA

 

4、实战

实战实战,文章反复提到了这么多次,仅仅这些还是远远不够的。

因为更多时候,你是跟着视频 or 文章的思路去实战,这缺少了独立思考的过程。

学了这么多,你并没有独立完成过一个项目,数据怎么处理,怎么分析问题,用什么算法解决问题,也没有独立思考过。

算法工程师的岗位竞争也比较激烈的,为了在茫茫人海中脱颖而出,我们需要以团队个人的形式,独立完成一些项目,只有这样,你才能更具竞争力。

对于学生党,做项目,最简单直接的方法就是参加竞赛

推荐两个参加竞赛的地方,一个是国外的 Kaggle,另一个是国内的阿里云天池

两个竞赛的奖金也都很丰富,根据自己的喜好,参赛即可。

Kaggle:Kaggle: Your Machine Learning and Data Science Community

阿里天池:https://tianchi.aliyun.com/competition/gameList/activeList

既能打比赛,又能赢奖金,何乐而不为呢?

三、资料打包

本文提到的资料,我都打包了,可以直接全部打包带走

下载地址(提取码:jack):

链接:https://pan.baidu.com/s/12tbVrUF056pY7aCyMpgl1w

PS:有能力支持正版的,资料觉得不错,可以去购买支持一波正版。

 

计算机原理:

计算机科学速成课:https://www.bilibili.com/video/av21376839

操作系统:https://www.bilibili.com/video/BV1js411b7vg

数学:

MIT老教授Gilbert Strang线性代数:https://www.bilibili.com/video/BV1at411d79w

编程语言:

Python:https://www.bilibili.com/video/BV1Fs411A7HZ

C++:https://www.imooc.com/search/?words=C%2B%2B

观看顺序是:起航篇、离港篇、封装篇、继承篇、多态篇、模板篇。

数据结构https://www.bilibili.com/video/BV1JW411i731

剑指Offer刷题笔记:https://github.com/Jack-Cherish/LeetCode

 

算法基础:

机器学习:https://www.bilibili.com/video/BV164411b7dx

深度学习:https://www.bilibili.com/video/BV1FT4y1E74V

JackCui机器学习教程:https://github.com/Jack-Cherish/Machine-Learning

Pytorch框架:https://www.bilibili.com/video/BV1Rv411y7oE

Tensorflow框架:https://www.bilibili.com/video/BV1kW411W7pZ

原文链接:https://www.cnblogs.com/cheng020406/p/17294681.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:0-学习路线 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • python广度搜索解决八数码难题

    下面是关于“Python广度搜索解决八数码难题”的完整攻略。 1. 什么是八数码难题 八数码难题是一种经典的数学难题,它的目标是将一个3×3的方格中的数字从初始状态移动到目标状态。在移动过程中,每次只能将一个数字移动到空格中,最终达到目标状态。 2. 广度搜索算法 广度搜索算法是一种常用的搜索算法它的目标是从起始状态开始,逐步扩展搜索空间,直到找到目标状态。…

    python 2023年5月13日
    00
  • Go语言数据结构之二叉树必会知识点总结

    Go语言数据结构之二叉树必会知识点总结 二叉树是一种非常重要的数据结构,它被广泛应用于算法、数据处理等领域。在Go语言中,使用二叉树可以实现很多高级数据结构和算法。本文将为大家介绍二叉树相关的基本知识和操作,以及如何利用Go语言实现二叉树。 什么是二叉树? 二叉树是一种树形结构,由一个根节点和两个子树组成。它的每个节点最多有两个子节点,称为左子节点和右子节点…

    数据结构 2023年5月17日
    00
  • java数据结构排序算法之树形选择排序详解

    Java数据结构排序算法之树形选择排序详解 什么是树形选择排序 树形选择排序是对选择排序的一种改进和优化,它是通过利用完全二叉树的性质对选择排序进行了改进而得到的一种高效的排序算法。 树形选择排序通过将待排序的元素构建成一颗完全二叉树,然后从叶子节点向上比较,选择出最小的元素,并交换位置。这样子,每次选择最小元素的时候,减少了元素之间的比较次数,从而提高了排…

    数据结构 2023年5月17日
    00
  • python实现中文分词FMM算法实例

    下面是详细讲解“Python实现中文分词FMM算法实例”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 FMM算法是一种基于正向最大匹配的中文分词算法,其基本思想是从左到右扫描待分词文本,每次取出最长的词进行匹配,直到扫描完整个文本。具体步骤如下: 从左到右扫描待分词文本; 取出最长的词进行匹配; 如果匹配成功,则将该词作为分词结果; …

    python 2023年5月14日
    00
  • NTP时间同步服务器(频率同步)包含帧同步、载波同步、位同步

    NTP时间同步服务器(频率同步)包含帧同步、载波同步、位同步 NTP时间同步服务器(频率同步)包含帧同步、载波同步、位同步 京准电子科技官微——ahjzsz 同步的概念   同步技术是数字通信系统中非常重要的技术。一般来说数字通信系统要实现多种同步功能才能实现正确的数据通信任务。其技术目标是实现不同地域收发双方的同步通信互联,实现一致的信息数据交换,因此,通…

    算法与数据结构 2023年4月17日
    00
  • Python实现的几个常用排序算法实例

    Python实现的几个常用排序算法实例 排序算法是计算机科学中的基本算法之一,它的主要目的是将一组数据按照一定的顺序排列。在Python中,可以使用简单代码实现几个常用的排序算法。本文将详细讲解Python实现的几个常用排序算法的过程,并提供两示例说明。 冒泡排序 冒泡排序是一种简单的排序算法,它的基本思想是通过相邻元素的比较和交换来实现排序。具体过程如下:…

    python 2023年5月13日
    00
  • mosn基于延迟负载均衡算法 — 走得更快,期待走得更稳

    前言 这篇文章主要是介绍mosn在v1.5.0中新引入的基于延迟的负载均衡算法。 对分布式系统中延迟出现的原因进行剖析 介绍mosn都通过哪些方法来降低延迟 构建来与生产环境性能分布相近的测试用例来对算法进行验证 地址:https://github.com/mosn/mosn/pull/2253 在开始聊基于延迟的负载均衡算法之前,先介绍下什么是负载均衡——…

    算法与数据结构 2023年5月8日
    00
  • C利用语言实现数据结构之队列

    C语言实现队列的完整攻略 什么是队列 队列是一种线性数据结构,它有两个端点:队头和队尾。新的元素插入到队尾,每次从队头取出一个元素。这就类似于人们排队买票,新的买票者排在队尾,每当售票员完成一笔交易,队列头的买票者出队。 基本操作 队列主要有以下3个基本操作: 入队(enqueue):将一个元素添加到队列的尾部 出队(dequeue):从队列的头部移除一个元…

    数据结构 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部