机器学习应该如何入门?

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
简介: 机器学习应该如何入门?

在从事机器学习算法研究3年之际,和大家分享一下我在ML方向上的入门方法!

无论是做算法还是开发、产品,认识自己是第一步。了解自己的特质、能力、兴趣爱好,再去做方向选择。


每一种选择都不分好坏或对错,只是要承担这个选择带来的所有结果,相信不同的选择下的人生都会有各自的圆满。


本文的宗旨:


  1. 指出一些自学误区
  2. 推荐近年精品资料
  3. 分享切实可行的机器学习入门路线
  4. 给出进阶/深入研究的方法


0. 背景



本科时我是一个很贪玩的人,几乎每个周末都不在学校待着,掺和在一群骑行、登山、旅行者的队伍中。实验室有一次开组会,老师提到神经网络,听的我一头雾水。怎么计算机学院的老师,还兼职搞起生物了?


到了大三,我想着必须得学点什么了,不然毕不了业,于是选择了入门门槛较低的安卓开发。


有几个月,我每天在宿舍啃《第一行安卓代码》,看b站的开发教程。

最终为了完成课程设计,我做出了几个还过得去的demo,比如订票app和炸弹人小游戏。




模拟QQ堂的小游戏

空闲时我会写写博客,当时分享的技术内容也已安卓为主。


总的来说,本科时目标比较模糊,机器学习0基础,以被动学习为主;好在考研成功上岸,没有完全荒废


读硕士后,发现身边很多同学都在研究AI,CV、NLP、ASR各行其道,人工智能的烈火烧得正旺。


因为我几乎没有任何基础,只能从Python和理论部分学起。


来实验室的最初3个月,我每天只做三件事:1)恶补python;2)看吴恩达的机器学习启蒙课;3)学习爬虫,帮师兄爬取语料。


因为做爬虫和文本分析的缘故,我对自然语言产生了兴趣,能让机器懂得文字的含义是很酷的一件事。于是我3个月后,我真正开始接触NLP,从分词、文本分类等底层任务做起。


学习到现在3年的时间,我真正喜欢上了NLP研究。在科研和实习过程中,边踩坑,边收获了一些发明专利和顶会论文,认识了很多业界大咖;在前不久的校招中,成功拿下不少大厂的offer


以上是我大学期间的经历。以此为背景,这篇回答的目标读者主要是零基础、想自学入门机器学习的朋友,包括:


  • 在校学生
  • 非计算机行业从业者
  • 已工作想将机器学习和本职工作结合的朋友


1. 关于机器学习的误区和陷阱



在分享具体方法前,我先谈谈机器学习的常见误区,其中一些是自己踩过的坑。


1.1 盲目报班

在这个日益内卷的时代,得益于机器学习的前沿性和高薪资,很多人还是不顾一切的往“坑”里冲。庞大的市场,让很多AI培训课雨后春笋般涌现。

研一时,实验室的一个同学在网易云课堂花了2000多元报了一门机器学习课程,上了没几节就放弃了。


我薅了把羊毛,登他的号去上网课。结果发现每节课不过是用简单的PPT介绍了常见机器学习算法,最后用sklearn开源库跑了一个简单demo。其内容在任何一本机器学习书或免费网课上都能找到。


因三分钟热度和优美的文案,很多时候我们稀里糊涂成了任人宰割的韭菜

我的建议是,不要盲目报班。先认真想一想自己是否喜欢算法和编程?

如果不确定或不希望盲目消费,建议你先尝试着读完这篇文章


1.2 收集大量资料和实体书

关于机器学习的资料和书籍层出不穷。我见过很多同学从网上收集了一堆pdf资料,或者买了一箩筐的书,认真地打开封面,合上,然后再也没有看过。


微调大佬的想法一致,在入门阶段,建议“小而精”的选择资料,选择近期出版且口碑良好的书籍。量不在多,在精。


这不仅有助于读者脚踏实地学完这些资料,还能树立信心,集中精力重点突破。在第三部分的机器学习入门阶段中,我会介绍2本书2门网课,进阶阶段推荐了4本书。

这些内容我都认真学习过,如果你不想花钱,我可以帮助你免费学到所有内容。


1.3 没打好基础,不敢开始学习

很多书的前言部分,都备注了读者需要具备概率论、编程等各项基础,导致一些同学没打好基础前,不敢开始学习。


其实学习本不是一蹴而就的事儿,把高数、概率论、编程全过一边再开始上手机器学习,先不说能不能坚持下来,时间性价比实在是太低了。换句话说,等你做好准备,和你同期开始学习的同学可能已经在大厂入职了。


更好的方法是,边学边补,哪里不会补哪里。在实践中学习,更容易保持动力和干劲。


1.4 求速成,狂奔式学习

和1.3相反,部分同学期望速成;刷完一节课两本书,会调包,认为自己已然玩捏于机器学习于股掌之中。然而,此言差矣。


学习不是百米赛跑而是马拉松。所谓基础不牢,地动山摇。

作为技术人,对自身技术负责,既是持续发展的必要条件也是职业道德。作为初学者,需要你稳扎稳打,在不敢开始和急于求成之间,寻找合适的度。


2. 前期准备



2.1 软件设备

明确了误区,我们来做一些基础的准备工作。


首先,你需要在电脑上安装好相应的编程环境。以运行python为例,环境搭建方法有直接下载安装包或下载Anaconda发行包,可以选择的集成开发环境有pychram和VSCode,适合大中型项目开发,debug非常方便。


但入门阶段,我建议下载Anaconda包,选择交互式笔记本jupyter lab作为编程环境,可以分块查看代码运行结果,不易出错。详细安装过程可以参考:Python安装方法JupyterLab最全详解,如果你还在使用Notebook,那你就out了!



jupyter lab交互界面

关于操作系统,首选Linux,对各种模型训练有最好的兼容性,而且使用GPU非常方便。

mac和windows系统也可以做很多简单的机器学习实验。实际应用中,开发大型机器学习项目一般通过VSCode或Pycharm,远程接入Linux服务器完成。


2.2 硬件设备


个人笔记本电脑是完全可以入门机器学习的。最初1年的学习,我在自己的15年老Mac Air上完成了很多实验分析。


关于一些大型项目,或者涉及神经网络需要GPU显卡加速的情况,最简单的方法是“蹭”实验室或公司的计算资源。


如果是咱们学生党,既没钱,实验室计算卡资源又不够用,却入了机器学习的门...别着急,我们还有白嫖方案:


百度PaddleCloud和谷歌Colab平台,都提供了免费的底层计算资源和GPU。谷歌Colab已经把免费卡升级到了P100和V100,薅羊毛快乐再次加倍!详细可以戳:

谷歌Colab有了V100加持,薅羊毛快乐再次加倍


mp.weixin.qq.com/s/vOgP6pszcbczBDvbhwkA2Qmp.weixin.qq.com/s/vOgP6pszcbczBDvbhwkA2Q



3. 机器学习升级打怪



有了初始化装备,游戏即将开始,请同学们抓紧跟上。


3.1 入门,小试牛刀(精品书、视频课推荐) 3-6个月

入门机器学习,前期需要掌握的基础主要包括机器学习算法理论、coding、高数/线性代数/概率论。


很多人推荐的《西瓜书》和《统计学习方法》,包含了大量数学推导和证明,我觉得并不太适合零基础的读者入门。


结合自身学习经验,关于机器学习我推荐1门网课和1本精品书。网课部分,强烈建议看吴恩达机器学习系列课程。内容侧重于原理和工程实现,对初学者友好。国内b站就能免费观看:



有了理论基础,coding自然必不可少。下面推荐一本机器学习神书《Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow》。


书中介绍了大量经典的机器学习算法,并且都给出了具体的实现案例。换句话说,通过这本书大家不仅收获了原理,还锻炼了编程,将算法进行实践应用,一举多得


Python是学习机器学习必不可少的工具之一。如果你是零基础,建议从《笨方法学python》入手,书中包含了Python最基础重要的知识点。


如果不想看书,推荐一个Python在线学习博客:Python教程

会有同学纠结一开始到底该学哪一门编程语言,C++,Python,Java?其实语言的学习有很多相通之处。如果想从事机器学习,建议从相对简单的Python入手,后期结合实际需求,学习其他编程语言。


至于高数/线性代数/概率论,我建议你跟着b站up主宋浩老师的课程就足够了,有空时可以多刷几集。宋老师的课幽默风趣,通俗易懂。


如果某节课的进度条特别长,不用慌,大概率有段子!



学完以上内容,我相信你已经对机器学习从理论和实践上有了初步的认识。前期掌握好基础为后续学习提供了重要保证。


对了,高数/线性代数/概率论的内容特别多,学习过程可以贯穿机器学习的各个阶段。


3.2 进阶,初露锋芒(选择细分领域,算法热身赛)3-5个月


经过入门阶段的学习,这时候大家可以选择性阅读《西瓜书》、《花书》、《统计学习方法》,进一步夯实基础。


机器学习包含了众多细分领域,当掌握前期基础后,你可以结合兴趣和实际,选择一个细领域进阶强化。常见领域包括:纯机器学习算法、自然语言处理、图像识别、计算机视觉、语音识别、强化学习等,每个领域又可分为科研工程两条道路。


科研偏学术研究,工程偏业务落地。


我在硕士期间主要从事自然语言处理研究,在进阶和3.3深入阶段,我会以NLP为例进一步谈谈机器学习的i强化路线。


NLP常和深度学习挂钩,进阶部分我推荐3本近年的精品书单。


第一本是《Python自然语言处理实战》,书中包含分词、命名实体识别、关键词提取、句法分析、情感分析、基于深度学习的NLP算法等,同样是理论和实战相结合的一本书。



另外两本分别是《Python深度学习》和《Pytorch深度学习》,掌握两大深度学习主流框架Keras和Pytorch,能让你方便地上手机器学习和深度学习项目。


如果你感兴趣,也可以私信或给我留言,我把电子版pdf发送给你。



除了看书,这一阶段我推荐大家参与一个和研究领域相关的算法比赛。比赛平台包括国内的阿里天池DataFountainbiendata,国际的kaggle,不仅可以通过一个完整的项目,在实际应用中提升对算法的理解,还可能收获不菲的奖金哦。



当然一开始可能会碰到很多问题,这里分享两个秘诀:(1)和小伙伴组队刷比赛,互相交流鼓劲,比单人solo收获更大;(2)通过github、比赛交流群、搜索引擎等途径,主动寻找解决方案。


2019年,我和室友参加了科大讯飞举办的应用分类挑战赛。这是我们第一次参加算法比赛,经过2个月的讨论和坚持,获得了第2名,也收获了第一笔比赛奖金。



如果没有合适的比赛,可以在博客或Github上找几个合适的项目练手,先参考别人的方法和代码,再自己实现一遍,你的思路一定会清晰很多。


进阶阶段,coding能力也得提一提。推荐这本豆瓣评分9.4的《流畅的Python》,阅读时会感觉一个博学但温柔的大叔在跟你侃侃而谈。如果想省钱,可以直接下载一个微信读书就能在线阅读了。



微信读书

3.3 深入,如鱼得水(比赛 / paper / 实习 / 专利) 4-12个月


恭喜你!经过两个阶段的学习,你已经具备了相当不错的理论和实践基础。

不过,在越来越多人涌入机器学习的今天,当前学习的内容还不够用。之前在创业公司实习期间,我曾有幸帮助公司面试了超过30位985/211计算机相关专业的同学,给我的一个感触是


虽然做机器学习的人非常多,但真正能在某个领域深入钻研,并有显著学术产出 or 解决实际问题能力的同学,只是少数


如何在某个领域深入钻研呢?


对于科研能力强(coding、英文写作、思路敏捷)的同学,可以在CCF-A顶会中发表paper。这是证明自己能力最简洁的方式。同实验室就有硕士期间发表7篇以上A类顶会的巨佬,还没毕业就被阿里高薪挖走了╮(╯▽╰)╭

当然,发paper是有一定门槛的;已经参加工作的读者,更是很难挤出时间发表学术论文。如果对自己的实力和精力没有清晰认识,很有可能付出和产出不成正比。


通过实习提升工程实践和解决实际问题能力的门槛相对低一些,是适合大部分同学(例如像我这样零基础)深入钻研的方式


作为商业公司,无论技术多么酷炫,如果不能落地,缺乏足够多的业务支撑,很容易被竞争对手击毙。所以企业对于候选人的实习和项目经历都相当重视。


除此之外,在知名比赛中获得Top5,发表发明专利,也是研究产出的优良证明。这两部分我之后会另开文章介绍。


切记,无论处于学习的哪个阶段,碰到问题要学会主动学习、主动解决问题,熟练运用Github、技术博客等工具。为了保持技术和视角的前沿性,建议大家适当读一些论文,途径包括订阅Arxiv,关注机器学习顶级会议,如ICML/ACL/NIPS等。


4. 心里话



写了快5500字,分享也暂时接近尾声了,还有什么不明白的地方可以留言告诉我,我都会看到,也会尽力解答。

最后,再和大家啰嗦几句心里话:

机器学习是一门多领域交叉学科,涉及计算机基础、统计学甚至心理学,从零入门肯定是艰苦的。你需要经历一段孤独、劳累、高饱和的学习奋斗期,打磨好自己的基础,才能和名校或科班出身的同学PK。


所谓高风险,高回报,这又是一条非常有前景的道路。因为以机器学习为核心的人工智能是大势所趋,有很大的应用市场。


不仅是大厂,很多和新兴科技创业公司都急缺机器学习相关人才;高门槛确保你的薪资待遇不会差。



某网站机器学习岗位招聘信息

所以当你内心有目标和梦想的时候,不要害怕失败,勇敢的尝试一次吧。趁年轻,多多学习,给自己多一次机会,有何不可呢!


辛辛苦苦,过舒服日子;舒舒服服,过辛苦日子。


当然,以上内容主要是我自身的学习方法总结,大家还是需要慢下来了解自己,调好心态,制定最适合的学习计划。


想好之后,请朝着既定目标努力前进吧。正像歌中唱的那样 “不经历风雨,怎能见彩虹,没有人能随随便便成功!”

相关文章
|
2月前
|
机器学习/深度学习 数据采集 算法
深入了解机器学习:从入门到应用
【10月更文挑战第6天】深入了解机器学习:从入门到应用
|
17天前
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
37 2
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
34 1
|
20天前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
34 0
|
22天前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
30 0
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
24 1
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
64 2
|
2月前
|
机器学习/深度学习 人工智能 数据挖掘
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第6天】在人工智能领域,机器学习已成为核心技术。本文指导初学者使用Python与Scikit-learn入门机器学习,涵盖基本概念、环境搭建、数据处理、模型训练及评估等环节。Python因简洁性及其生态系统成为首选语言,而Scikit-learn则提供了丰富工具,简化数据挖掘与分析流程。通过实践示例,帮助读者快速掌握基础知识,为进一步深入研究奠定坚实基础。
32 4
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
555 1