写点什么

这才是机器学习正确高效的学习路线!

作者:Jackpop
  • 2023-02-04
    浙江
  • 本文字数:3801 字

    阅读完需:约 12 分钟

程序员宝藏库https://gitee.com/sharetech_lee/CS-Books-Store


最近几年人工智能和深度学习备受推崇,所以有不少同学不管三七二十一就一头扎进去投入到 CV 的大队伍中。


然而,对于基础的统计学、机器学习一知半解,似懂非懂,最终进入工作岗位才发现「高不成低不就」,技术浅的不愿意干、技术太深的干不了。


所以,我个人更加建议能够从基础学起,系统扎实的学一下机器学习。


我一向认为,在学习一样技术之前不要太着急,首先要弄清楚它到底是什么、然后学习的时候也能够更加清晰明了一些。


今天,就从三个方面介绍如何学习机器学习:


  • 什么是机器学习?

  • 如何学机器学习?

  • 怎么进阶机器学习?


话不多说,下面开始介绍。

一、 什么是机器学习?

什么是机器学习?它和人工智能、深度学习有什么关系?


  • 人工智能是计算机学科的一个分支,一个技术领域和方向的统称。

  • 机器学习是人工智能的一个子领域,从过去的数据样本中获得知识的过程,并利用这些知识来做出未来的预测,它可以作为一种数据挖掘技术使用。

  • 深度学习是机器学习的一个子领域,它是一种具有更多功能的机器学习技术,因为它试图模仿人脑中的神经元,它是一种将现象学习为概念的嵌套层次结构,每个概念都与更简单的概念有关,例如,卷积神经网络。


看到这里,应该很清楚的区分数据挖掘和后两者之间的区别,下面再详细的从特征工程、方法等方面解释一下机器学习和深度学习的区别。

特征工程

这是一个利用领域知识提取数据的重要特征,然后将其输入学习算法的过程。这个过程确保数据中的模式对学习算法更加明显。


在机器学习中,大多数应用的特征需要由专家来识别。这个过程需要大量的时间和精力。


在深度学习中,算法会自行提取特征。

解决问题的方法

当使用传统的机器学习算法解决问题时,建议将问题分解成更小的部分,解决它们,然后将它们的输出结合起来,得到最终结果。


而深度学习则建议从头到尾,端到端的解决这个问题。


例如,假设有一个动物识别问题,一张图片可能有多种动物。


机器学习首先会识别图像中可能存在的物体,然后分别预测或识别它们中的每一个。


而深度学习会输入完整的图像并一次性输出物体的位置和名称。

数据

与传统的机器学习算法相比,深度学习算法通常需要更多的数据才能给出较好的表现。

硬件

与传统的机器学习相比,深度学习是计算密集型的(因为有更多的矩阵乘法),因此对硬件和计算性能有更高的要求。

训练时间

基于前两点,深度学习在数据量、计算量都要比传统机器学习大很多,因此,深度学习在训练模型方面也会耗费更多时间。

二、如何学机器学习?

机器学习是一个很模糊且宽泛的话题,关于它的书籍、博客、视频课程也是非常多的,我认为如果希望做一些宏观的了解,看一些网上的文章就行。如果希望深入学习,个人建议还是系统的看看相关的书籍、视频课程,然后尽量动手实现一下,因为当你动手实现的时候你会对它的理解更加深刻。


机器学习可以从两个方向说起:学习算法和应用领域,如果把应用领域也囊括在内的话,那包含的学习内容就太多了,


  • 数据挖掘

  • 计算机视觉

  • 自然语言处理

  • 搜索引擎

  • ......


以上每个应用领域都能找到很多相关的书籍或者课程,因此就没必要把它们全部罗列出来了。


单从学习算法来说,它可以分为如下几个种类:


  • 监督学习

  • 无监督学习

  • 半监督学习

  • 增强学习


按研究阶段和研究内容综合来划分又可以这样进行分类:


  • 传统机器学习(后面称机器学习)

  • 深度学习


我就从以上这 3 个方向开始 介绍一下相关的优质学习资源。

机器学习

视频课程


《机器学习》-吴恩达


[中英字幕]吴恩达机器学习系列课程_哔哩哔哩_bilibiliwww.bilibili.com/video/BV164411b7dx/?spm_id_from=333.337.search-card.all.click


提及机器学习,入门课程当然少不了吴恩达的入门经典课程《机器学习》,虽然目前关于机器学习的教程层出不穷,但是绝大多数都是各教育机构为分取蛋糕而创作出的产物,难免良莠不齐,内容不严谨,所以尽管老掉牙,我还是会首推吴恩达的这门《机器学习课程》,


《机器学习与神经网络》-Geoffrey Hinton


Hinton 机器学习与神经网络中文课 - 网易云课堂 study.163.com/course/courseMain.htm?courseId=1003842018&trace_c_p_k2=3ce7a362f80f4a46a7d8c2435cb7ee65


图灵奖得主、人工智能领域三位顶尖大牛之一,我想从事 AI 领域的应该对 Hinton 都不陌生,从他的文章中就可以看的出来,非常有深度,严谨,他的这门课程也保持了一贯作风。但是,这门课也有一个问题,就是语速相对较快,一遍要跟着理解英语,一遍要去理解他所阐述的知识,我觉得这还是一件挺吃力的事情。


《机器学习》-李宏毅


李宏毅机器学习 2019(国语)_哔哩哔哩_bilibiliwww.bilibili.com/video/av46561029/


我觉得对于英语水平有限的同学来说看一门英文的课程还是很吃力的,比如我,每当涉及到英语都会觉得头疼。如果你也一样,可以选择看一下李宏毅的《机器学习》,这门课也是一门机器学习的入门经典,目前已经更新到 2019 版,不仅内容详细,而且授课语言轻松风趣。


书籍


《机器学习》-周志华


这本书很适合机器学习入门,没有过多的公式推导,也没有晦涩难懂的词汇,理论与示例相结合,阐述非常详细。



《统计学习方法》-李航


和周志华老师的机器学习不同,《统计学习方法》这本书籍有更多的公式推导和理论证明,可以这样概括两者的区别:《机器学习》更偏重于算法原理,让你知道每个算法怎么实现的,步骤是什么。《统计学习方法》会深扒原理背后的理论支撑,这样有助于更加深入的理解机器学习算法,对后续深入研究会有很多好处,当然,随之而来的就是对于初学者看着满篇的公式也会让人觉得很头疼。


《机器学习实战》- Peter Harrington


就如同这本书的名称一样,它更加突出实战,它不过多的讨论算法的原理和优缺点,简单的介绍一下算法的流程步骤,然后接下来更多的篇幅就是围绕实战展开,会给出一个示例,然后逐步编程实现,这样有助于让自己发现学习理论过程中容易忽略的点,进一步加深对机器学习的理解,我认为这本书还是很有必要看一下的,毕竟仅仅学习理论知识难免会落入“纸上谈兵”的困境,实践才能出真知。


我个人建议可以用《机器学习》+《机器学习实战》的组合进行学习,《统计学习方法》可以在学习一段时间机器学习之后,希望更加深入了解机器学习时抽空好好看一下,推导一下里面的公式。



总结


以上课程和书籍都有一个共性,就是直接从神经网络、感知机、贝叶斯、KNN 这些机器学习算法开始讲起,而机器学习是一门交叉学科,它涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。如果希望在机器学习领域做更加深入的研究,我认为还需要把这些相关的知识学习一下。当然,如果日常工作是强业务类型,更加偏重于机器学习的应用而不是偏重模型调优,我觉得上述这些课程和书籍已经够用了。

深度学习

视频课程


  • 斯坦福 CS20:http://web.stanford.edu/class/cs20si/index.html

  • 吴恩达深度学习工程师:https://mooc.study.163.com/smartSpec/detail/1001319001.htm

  • 卡耐基梅隆大学深度学习导论:https://www.bilibili.com/video/av34151455/

  • 李宏毅深度学习:https://www.bilibili.com/video/av9770302/


书籍


  • 《深度学习》-Goodfellow、Bengio

  • 《Python 深度学习》-弗朗索瓦·肖莱



  • 《深度学习入门》-斋藤康毅


三、怎么进阶机器学习?

多看、多练!


这是互联网/IT 领域一个通用的法则,无论是学一门编程语言还是机器学习,重点都是在掌握基础理论之后通过实战项目达到多看、多练的效果。


多看的目的是为了学习别人的用法,多练的目的是加深自己的理解。


推荐 5 个 github 热门的机器学习项目,涵盖传统机器学习、深度学习,同时还可以学习 tensorflow、pytorch 这两个机器学习平台。

tensorflow_course


tensorflow_course 是一个 gihub 资源,目前已经 9.5k 个 star,受欢迎程度可见一斑,上面有传统算法,例如线性回归、支持向量机,也有深度学习算法,例如卷积神经网络,能够让你在学习机器学习的过程中进一步熟练 tensorflow。

tensorflow_cookbook


这也是一个 github 项目资源,虽然不如上面这个火热,但是目前也拥有 4.1k 个 star,和上面这个资源有些类似之处,包括传统算法和深度学习算法的实现,可以边学习机器学习知识、边学习深度学习平台。

Awesome Machine Learning


一个很棒的机器学习框架,github 39k+star,按编程语言进行整理,包括但不限于 C/C++、Python、Java、JS、matlab、Rust。



每种语言有包含传统机器学习、计算机视觉、自然语言处理、数据挖掘、数据可视化等项目。

Awesome-Pytorch-list


目前 5.4k 个 star,这个资源可以称得上是大合集,包括计算机视觉、自然语言处理、教程和示例、优秀文章的实现,非常全面。

Awesome Deep Learning


书籍、文章、教程、视频、讲座、数据集,应有尽有的一个深度学习资源列表。


建议大家有空可以多浏览 Github,有很多好用的开源免费工具。但是,目前 Github 上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐 Github 上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖 C++、JAVA、JavaScript、Python、Go 等不同编程语言。此外,还有一些开源工具、优秀的技术文章,建议大家看一下:


https://gitee.com/sharetech_lee/DevWeekly


hello,大家好,我是 Jackpop,重点大学本科毕业后保送到哈工大计算数学专业读研,有多年国内头部互联网、IT 公司工作经验,先后从事过计算机视觉、推荐系统、后端、数据等相关工作。如果同学们在升学考研、职业规划、高考志愿、简历优化、技术学习等方面有困惑,欢迎大家前来咨询!

发布于: 刚刚阅读数: 3
用户头像

Jackpop

关注

还未添加个人签名 2020-09-16 加入

公众号:平凡而诗意,微信:code_7steps,全网粉丝超20万,技术进阶、优质资源、实用工具,欢迎关注!

评论

发布
暂无评论
这才是机器学习正确高效的学习路线!_Jackpop_InfoQ写作社区