问题

非CS背景,如何快速上手机器学习?

回答
想搭上机器学习这趟快车,但又不是计算机科学出身?别担心,这完全不是天方夜谭!很多非科班出身的朋友,通过一些方法,也能快速上手,甚至在这个领域里做得风生水起。关键在于找到正确的路径,并且有足够的耐心和实践。

下面我就尽量详细地跟你聊聊,一个没有CS基础的人,该如何一步步地“登陆”机器学习的星球。我尽量用大白话,让你觉得就像是朋友在给你支招一样。

第一步:打好地基——这玩意儿是啥,它是怎么运作的?

在你跃跃欲试去敲代码之前,咱们得先明白这玩意儿到底是个啥。机器学习,顾名思义,就是让机器自己去“学习”,而不是我们一步一步地告诉它“怎么做”。

理解核心概念(抛开术语,看本质):
监督学习 (Supervised Learning): 就像你给孩子看很多猫和狗的图片,并且告诉他“这是猫”,“那是狗”。最后,他就能自己分辨了。模型通过“带标签”的数据来学习,目标是预测未知数据的标签。比如,预测房价(已知房屋面积、位置等信息,预测价格)、识别垃圾邮件(已知邮件内容,判断是否为垃圾邮件)。
无监督学习 (Unsupervised Learning): 就像你给孩子一堆玩具,让他自己去分类。他可能会按照颜色、形状或者大小把玩具分开。模型在这种情况下,没有“正确答案”来指导,它需要自己去发现数据中的模式和结构。比如,客户分群(根据购买行为将客户分成不同群体)、降维(将高维数据压缩成低维,方便可视化或处理)。
强化学习 (Reinforcement Learning): 想象一下训练一只小狗。你让它做了好事,就给它奖励;做错了,就得不到奖励,甚至会受点小小的“惩罚”。通过不断的尝试和反馈,它就知道什么是好的行为。模型通过与环境交互,根据“奖励”或“惩罚”来调整自己的策略,以获得最大的累积奖励。比如,训练机器人走路、玩游戏(AlphaGo)。

数学基础(别怕,真的没你想的那么可怕):
线性代数: 主要用来表示和处理数据。比如,数据可以看成一个个向量(数字列表),矩阵(表格)就是数据的集合。知道向量的加减、乘法,以及矩阵的运算,对理解很多算法至关重要。重点: 别一开始就去啃高深的数学书,先找一些“机器学习数学基础”或者“零基础学线性代数”之类的入门教程,它们会把必要的概念讲清楚,而且会告诉你为什么需要这些。
微积分: 主要用来优化模型。模型在学习过程中,总是在寻找一个“最佳状态”,比如让预测错误尽可能小。微积分中的“导数”和“梯度”就是帮助我们找到这个最佳状态的“方向盘”。重点: 同样,找入门级的教程,理解“梯度下降”这个核心思想就行。知道它能帮助我们一点点地调整参数,让模型越来越好。
概率论与统计学: 这是机器学习的灵魂。很多模型都是基于概率来做预测的,而且我们用统计学来理解数据、评估模型的好坏。比如,数据的均值、方差,以及一些概率分布(正态分布等)。重点: 理解“概率”、“条件概率”、“贝叶斯定理”这些基本概念,它们是很多算法的基石。

怎么学这些数学?

视频教程: 强烈推荐 B站 上有很多优秀UP主,专门用非常通俗易懂的方式讲解机器学习相关的数学知识。搜索“机器学习数学入门”、“零基础学线性代数/微积分/概率论”等等,你会找到很多宝藏。
可视化工具: 有些网站或库(比如 Python 的 `matplotlib` 或 `seaborn`)可以帮你把数学概念可视化,这样理解起来会直观很多。
关联学习: 在学习机器学习算法的时候,遇到不明白的数学概念,再去针对性地查阅和学习,这样更有目标性。

第二步:上手实践——工欲善其事,必先利其器

光说不练假把式。有了初步的理论概念,就要开始动手实践了。

编程语言选择——Python是你的首选:
为什么是Python? Python 语法简洁,易于上手,而且拥有极其丰富的机器学习库(就像是已经帮你造好了很多工具箱),生态系统非常成熟。对于非CS背景的朋友来说,学习曲线会平缓很多。
Python基础: 如果你对Python完全陌生,那先花点时间学学Python的基础语法,比如变量、数据类型(列表、字典)、循环、条件语句、函数等。这部分同样可以在B站、网易云课堂、慕课网等平台找到大量的免费入门教程。

必备的Python库:
NumPy: 用于进行科学计算,特别是多维数组(向量、矩阵)的操作。它是很多其他库的基础。
Pandas: 用于数据处理和分析,非常适合处理表格型数据,就像Excel一样强大,但更灵活。
Matplotlib / Seaborn: 用于数据可视化,把数据画成图,让你更容易理解数据的分布和模型的效果。
Scikitlearn (sklearn): 这是机器学习的“瑞士军刀”,包含了大量的经典机器学习算法(分类、回归、聚类、降维等)和数据预处理工具。它是你入门机器学习最重要、最核心的库。

安装和环境搭建:
Anaconda: 强烈建议安装 Anaconda。它是一个Python科学计算发行版,自带了Python、NumPy、Pandas、Scikitlearn等常用库,并且自带了Jupyter Notebook,可以让你边写代码边看结果,非常方便。
Jupyter Notebook / JupyterLab: 这是最适合做机器学习实验的工具。它是一个交互式环境,可以让你在浏览器里写代码、运行代码、展示结果,还可以插入文字、图片、公式,方便记录和分享。

第三步:学习经典算法——从模仿到理解

在掌握了Python和一些基础库之后,就可以开始学习具体的机器学习算法了。

从简单到复杂,循序渐进:
线性回归 (Linear Regression): 预测一个连续值,比如预测房价。这是最简单的监督学习算法。
逻辑回归 (Logistic Regression): 用于分类问题,比如判断一封邮件是不是垃圾邮件。虽然名字里有“回归”,但它其实是用来做分类的。
K近邻 (KNearest Neighbors, KNN): 根据“最近的邻居”来做判断,非常直观。
决策树 (Decision Tree): 就像流程图一样,一步步做出决策,容易理解。
支持向量机 (Support Vector Machine, SVM): 找到一个“最佳的边界”来区分不同类别。
KMeans 聚类: 最常用的无监督学习算法,用于将数据分成K个簇。

学习方法:
理解算法原理: 找一些讲解清晰的视频或文章,理解算法的核心思想、数学原理(不需要完全精通,知道大概是怎么回事就行)以及它解决了什么问题。
看代码实现: 重点看 Scikitlearn 库是如何实现这些算法的。学会调用这些函数,设置参数。
动手实践: 找一些公开的数据集(比如 Kaggle、UCI 机器学习仓库),用你学到的算法去解决实际问题。这是最重要的一步!

第四步:拥抱数据——数据是机器学习的燃料

机器学习的效果很大程度上取决于数据的质量和处理方式。

数据获取:
公开数据集: Kaggle、UCI 机器学习仓库、Google Dataset Search 是获取免费数据集的好地方。
自己爬取: 如果你有特定领域的数据需求,可以学习一下网络爬虫(Python 的 Scrapy、BeautifulSoup 库)。

数据预处理 (Data Preprocessing): 这是机器学习流程中非常重要但又容易被忽略的环节。
缺失值处理: 数据中经常会有缺失的部分,你需要决定如何填充(比如用平均值、中位数)或删除。
异常值处理: 找出数据中不寻常的值,决定是保留还是移除。
特征工程 (Feature Engineering): 这是将原始数据转化为机器学习模型可以使用的“特征”的过程。比如,从日期中提取“星期几”、“月份”;将文本数据转化为数字表示。这一步往往能极大地提升模型性能,也需要创造力。
特征缩放 (Feature Scaling): 很多算法对特征的尺度很敏感,比如将所有特征的值都缩放到 [0, 1] 或均值为0、方差为1的范围内,这能让模型训练更稳定、速度更快。

数据可视化: 再次强调!用图表来理解你的数据,比如直方图、散点图、箱线图等,能帮助你发现数据中的规律和问题。

第五步:模型评估与调优——让你的模型更“聪明”

光把模型训练出来还不够,你还需要知道它做得好不好,以及怎么能做得更好。

模型评估指标:
分类问题: 准确率 (Accuracy)、精确率 (Precision)、召回率 (Recall)、F1Score、ROC曲线和AUC值。
回归问题: 均方误差 (MSE)、均方根误差 (RMSE)、平均绝对误差 (MAE)、R² 分数。
关键: 理解这些指标分别代表什么,它们在什么情况下更重要。

过拟合 (Overfitting) 与欠拟合 (Underfitting):
过拟合: 模型在训练集上表现很好,但在未见过的数据(测试集)上表现很差。就像学生死记硬背了考题答案,但换个题就不会了。
欠拟合: 模型在训练集和测试集上表现都不好。就像学生压根没学好。
理解: 知道为什么会发生这两种情况(比如模型太复杂、数据量不够),以及如何避免(比如正则化、交叉验证、增加数据)。

模型调优 (Hyperparameter Tuning):
机器学习模型有很多参数,有些是模型在学习过程中自动调整的(比如权重),有些是我们在训练前就设定的(比如学习率、K近邻中的K值),后者被称为“超参数”。
网格搜索 (Grid Search)、随机搜索 (Random Search): 这些是常用的寻找最佳超参数组合的方法。

第六步:深入学习——迈向更广阔的天地

当你掌握了基础的机器学习算法后,就可以根据自己的兴趣和需求,去探索更深入的领域了。

深度学习 (Deep Learning):
神经网络 (Neural Networks): 深度学习的核心就是多层神经网络。
框架: TensorFlow 和 PyTorch 是目前最主流的深度学习框架。它们提供了强大的工具来构建和训练复杂的神经网络。
应用: 图像识别、自然语言处理(比如机器翻译、文本生成)、语音识别等。
学习路径: 建议先学习深度学习的基础概念,比如感知机、反向传播、激活函数、损失函数等,然后再学习如何使用 TensorFlow 或 PyTorch。

自然语言处理 (Natural Language Processing, NLP):
如何让机器理解和处理人类的语言。
涉及:文本分词、词向量、循环神经网络 (RNN)、长短期记忆网络 (LSTM)、Transformer 模型(如 BERT、GPT)。

计算机视觉 (Computer Vision, CV):
如何让机器“看见”和理解图像。
涉及:图像预处理、卷积神经网络 (CNN)、目标检测、图像分割。

一些给非CS背景朋友的建议:

1. 从小处着手,不要贪多: 一开始不要想着把所有算法都学会,先挑一两个最简单的,比如线性回归、逻辑回归,然后一个一个地去理解和实践。
2. 找到你的“兴趣点”: 机器学习应用非常广泛,你可能对预测股市感兴趣,或者对分析社交媒体数据感兴趣,或者对让机器人玩游戏感兴趣。找到一个你真正感兴趣的应用场景,会让你更有动力学下去。
3. 动手!动手!动手! 理论学得再好,不实践都是空谈。多找数据集,多写代码,多调参,多犯错,从错误中学习。
4. 善用社区和资源:
Kaggle: 不仅有数据集,还有很多大神分享的代码和解决方案,是学习的宝库。
GitHub: 很多优秀的机器学习项目和代码都在这里。
Stack Overflow: 遇到问题,很有可能在这里找到答案。
在线课程平台: Coursera (吴恩达的机器学习课程非常经典,虽然是英文,但可以配字幕看,或者找中文翻译版)、edX、Udemy 等。
5. 多交流,多提问: 加入相关的学习社群,或者找一些一起学习的朋友,互相讨论,互相帮助。
6. 保持耐心和好奇心: 学习机器学习是一个持续的过程,不可能一蹴而就。遇到困难是很正常的,关键是要保持好奇心,不断探索。

最后,分享一个我个人的学习经验:

当初我也是非科班出身,一开始接触机器学习,感觉数学名词一大堆,代码也看不懂。我是这么过来的:

1. 先看吴恩达的公开课(带中文字幕的): 主要是为了建立一个宏观的理解,知道机器学习大概是怎么回事,有哪些主要方向。
2. 学Python基础: 很快学会了Python的基本语法。
3. 重点攻克 NumPy 和 Pandas: 感觉数据处理是基础中的基础,花了很多时间在这上面,通过不断地处理不同格式的数据来熟悉这两个库。
4. 跟着 Scikitlearn 跑例子: 找一些 Kaggle 上的入门级比赛,比如 Titanic 生存预测,一步步地跟着网上的教程(或者自己找的别人的代码)去实现。重点是理解每一步代码的作用,而不是死记硬背。
5. 遇到不懂的数学,就去查: 比如看到“梯度下降”,就去搜“用大白话解释梯度下降”,找到能看懂的视频或文章,大概了解原理就继续往下学。
6. 不要怕犯错: 错误信息是最好的老师。仔细阅读错误提示,然后尝试去解决。

总而言之,非CS背景学习机器学习,靠的是目标明确、方法得当、持续实践和一点点毅力。不要被“CS背景”这个标签吓倒,很多伟大的机器学习研究者也不是科班出身。祝你学习顺利,早日踏上机器学习的奇妙旅程!

网友意见

user avatar

利益相关:非CS背景(本硕数学专业),人工智能萌新研究者


最近,国家人力资源社会保障部发布了《人工智能训练师国家职业技能标准》 这一方面展示了国家层面对于人工智能行业的职业规范化意图,另一方面也将吸引更多人从事AI相关岗位。



那么,非CS专业背景,如何快速上手机器学习呢?


针对这个问题,我要从三个角度去回答:

为什么要使用机器学习?机器学习和自己有什么关系?如何动手操作?

注:机器学习是人工智能的子集。在下文描述中将同时提到这两个概念,为方便理解,可不做特别区分。


为什么要使用机器学习?

人工智能到底有啥好的?很多人或许只从别人的口中听闻,从相关上市公司资料中获取,从短视频中刷到,有定性的感受却并没有定量的认知。



上面这张图出自斯坦福大学的CS 3329P 实用机器学习课程(介绍机器学习在工业界的应用),说的是著名咨询公司麦肯锡的一项调研(见右图),图中数值描述的是使用机器学习之后,在2019年各行业的公司年营收增长情况,我们能非常直观地观察到有半数以上公司获得了至少 6% 的增长。那么我们也能预想到,这些公司将继续将机器学习用于生产经营,谋得更大收益。

在北上广深的朋友,我建议多多参加各大厂的科技展或者机构的学术研讨会,既能走马观花增长见识,也能和工程师们请教和讨论问题。




上面简单列举了几个有意思的会展场景,特别是最近一次亚马逊云科技中国峰会上海场中,我看到了使用NLP技术的资产盘活机器人,基于CV技术的智能车型车损照片识别机器人,基于多模态技术的智能金融视频生产机器人,还有基于“云+端”云原生的遥感技术服务……可以说,参加科技展或许是最快最全面了解到了解领域数字化,自动化和智能化应用的一种方式。




这不,最近亚马逊云科技中国又开启了re:Invent城市巡讲活动,可以上会了解到很多机器学习的前沿应用。


机器学习和自己有什么关系

如果对机器学习确实已有一个较为全面的了解,下定决心要使用它,或者未来投身这个领域靠它吃饭,那么在正式动手前还得梳理一下和机器学习的关系。

一般来说有两类人急切希望使用机器学习:

第一类是具有一定的数理基础和编程能力,已经知道人工智能领域和他们的技术栈差异不大,学习AI技术后能快速获得更大收益的人,他们缺少的是机器学习知识和具体的实践经验。他们需要的是打通数据流,训练模型,维护模型;

第二类是泛AI行业(比如金融、医疗、教育等)领域专家,他们应该在自己原本的领域有一定的深入研究(虽然不一定是AI领域),期望通过使用机器学习使得自己的工作更加智能化,谋求更大的收获。这些人知道哪些数据是重要的,以及如何获取,并且可以论证机器学习模型对业务的影响。



使用机器学习其实并没有那么高大上,它也遵循问题建模的基本流程:

提出问题做出假设、收集数据、建立模型、部署模型、监控模型,然后收集新数据重新建模,不断迭代优化。

与行业外的认知不同,机器学习工程师并非专注构造一些精妙的模型,他们的很多工作时间都需要花在数据收集和清洗上。非机器学习专业的人士,如果已经掌握了数据处理的思路和技巧,那么其实是可以较为平滑地转到机器学习行业的。经过一段时间的努力后,这些人可以逐渐成为数据科学家(聚焦数据挖掘,模型训练和部署)和机器学习专家(训练,选择,调整 SOTA 机器学习模型)。



当然也会有人问,自己的数理基础和编程能力缺缺,也没有在自己原本的专业或行业深耕的经验,但还是想快速转行机器学习……那我建议还是稳扎稳打比较好呢亲。


如何动手操作?

终于到动手环节了无需死记硬背,带着问题去做项目才能走得最快。


那么在明确需要通过机器学习手段做什么项目后,新手通常会面临三个老大难的问题:

配不好环境,买不起GPU,写不好代码


说到配环境,首先系统平台选用Linux还是Windows这个问题就能把很多人拦在外面了,好在现在大多数机器学习软件库还是能同时支持这些主流系统(虽然有时候会有一些莫名其妙的问题,但多多查询总能解决的)。我认为如果需要从事机器学习的职业,那必然要使用深度学习(这也是当下最有效最主流的研究方向),也肯定会面临使用GPU加速的情况,与其到时候再学,还不如一开始就搞定GPU的运行环境。那么就得面临安装显卡驱动,安装CUDA和cuDNN的问题(我个人一直很头疼这个,特别是需要有时候需要安装多个共存的CUDA环境)。搞定系统和确定需要使用GPU以后,还得选择语言和安装对应的依赖库,我个人建议使用Python语言(比较容易上手,而且有广泛的使用人群),Anaconda(Python数据科学发行版,可以理解为已经集成了非常多的数据科学工具,而且还能很方便的管理软件虚拟环境),PyTorch深度学习框架(参考 @微调 师兄的2021 年了,TensorFlow 和 PyTorch 两个深度学习框架地位又有什么变化吗?)。除此以外最好学会使用命令行安装各种其他需要的软件库。如果很熟练的话,我相信能在半天内搞定上面的环境配置,反之可能得鼓捣一两天。

再到GPU,因为现在虚拟货币行情高涨,持续了一年多的时间,导致显卡价格也一直处于高点,原价GPU一卡难求。有很多人和我一样,发出难以弄到充足算力的悲鸣。如果放到以前,我肯定会推荐大家咬咬牙购买显卡,因为只要使用超过一年半载的,绝对比在云平台上租用划算,但当下确实应该多考虑租用算力资源,度过难关。实验室一块GPU都没有怎么做深度学习这个问题下也有很多朋友提出了折中方案,白嫖平台算力(比如 Google Colab、Kaggle、天池等平台会有一些免费使用时长),或者选用部署已预训练好的模型只在本地微调,又或者更换到不需要太多计算资源的研究方向(比如小样本学习,图神经网络等)。

担心代码写不好或许是非CS专业的人的共性了。这里想要说明的是,其实学习编程和掌握一门新语言很像,需要有使用环境(比如有很多外国朋友交流可以帮你掌握外语日常对话)和动机(比如想要出国留学也会逼着自己掌握语言能力)。那么兼顾使用环境和动机的编程场景就是找到一个感兴趣的项目并用编程实现它。这个小项目可以是解决一个生活中的痛点(想要一次性下载喜欢的明星写真集),也可以是工作的更高需求(比如想要批量处理一大堆Excel文件整理数据)。动手实现这样的一个个小项目,不论是编程技能熟练度还是自己的获得感,都能大大提升。


当然,上面的三个痛点也有一些公司注意到并提供一站式的解决方案。比如最近亚马逊云科技推出了 SageMaker Studio Lab,它有几个很好的特点:开箱即用,免费和提供云端存储。如果对这方面了解的朋友,此前应该也使用过其他家的训练服务,而与其相比,亚马逊云科技的产品会有两个优势,(云产品巨头提供的)稳定的云端服务,以及云边端协作的模型部署服务。

开箱即用听起来可能不太具体,但用实际场景举例就更好了。使用云端训练服务可以在几分钟内生成任意指定的硬软件环境实例,需要的显卡、配套的CUDA和科学计算环境等等都可以一键部署并马上投入使用。这个时候就无需和复杂的环境配置事项斗争,可以专心工作了。

除此以外,针对不擅长或者不愿意编程的朋友,SageMaker Canvas 在云服务的基础上加上了无码流程,无需了解任何编程相关的细节,仅用鼠标点击和拖拽控件,就能完成从数据读取、模型建模训练再到模型部署的全流程。而且还能一键将你的工作数据,模型和梳理流程分享给你的同事和合作伙伴。



总的来说,想要从CS转行机器学习,最重要的是有这个信念,然后早日动手操作。选择合适的平台和工具能大大加速你的成长,早日祝你达成愿望。




动起来吧,我的朋友们,就从今日开始~

user avatar

这个问题我会答!17年的时候我写了一篇如何自学的机器学习的文章,现在也快万赞了。趁着这个机会我来更新一下内容,望大家广而告之。

早该学学了!

0. 目标读者

这篇回答的目标读者是计划零基础自学的朋友,对数学/统计/编程基础要求不高,比如:

  • 在读学生
  • 非计算机行业的读者
  • 已经工作但想将机器学习/数据分析和自己的本职工作相结合的朋友

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

1.1. 不要试图掌握所有的相关数学知识再开始学习

在很多相关的回答中,我都一再强调不要试图补足数学知识再开始学习机器学习。一般来说,大部分机器学习课程/书籍都要求:

  • 线性代数:矩阵/张量乘法、求逆,奇异值分解/特征值分解,行列式,范数等
  • 统计与概率:概率分布,独立性与贝叶斯,最大似然(MLE)和最大后验估计(MAP)等
  • 优化:线性优化,非线性优化(凸优化/非凸优化)以及其衍生的求解方法如梯度下降、牛顿法、基因算法和模拟退火等
  • 微积分:偏微分,链式法则,矩阵求导等
  • 信息论、数值理论等

一般人如果想要把这些知识都补全再开始机器学习往往需要很长时间,容易半途而废。而且这些知识是工具不是目的,我们的目标不是成为优化大师。建议在机器学习的过程中哪里不会补哪里,这样更有目的性且耗时更低。

同理,也没有必要苦练编程再开始。

1.2. 不要把深度学习作为入门第一课

虽然很多人都是冲着深度学习来的,但把深度学习作为机器学习第一课不是个好主意。原因如下:

  • 深度学习的黑箱性更加明显,很容易学得囫囵吞枣
  • 深度学习的理论/模型架构/技巧还在一直变化当中,并未尘埃落定
  • 深度学习实验对硬件要求高,不太适合自学或者使用个人电脑进行学习

更多讨论可以看我的回答:深度学习的教学和课程,与传统 CS 的教学和课程有什么区别?

1.3. 不要收集过多的资料 & 分辨资料的时效性

机器学习的资料很多,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书的人我也常常能够看到。

机器学习的发展和变化速度很快。在入门期间,建议“小而精”的选择资料,选择近期出版的且口碑良好的书籍。我不止一次的提到这个例子:

在很多深度学习的教科书中,尤其是10年以前的教科书中都还依然把Sigmoid当作默认的激活函数。但事实上,整流函数(ReLu)以及其拓展变形函数,如Leaky ReLu早就成为了主流的深度学习激活函数。但因为知识的滞后性,很多课程/书籍甚至都没有介绍ReLu的章节。

一般来说,我比较推荐近5年内出版的书籍,或者10年以后出版的书籍。有些书籍虽然是经典,比如Tom Mitchell的《机器学习》,但因为其出版已经超过20年,还是不建议大家购买。

在这篇文章中我所推荐的书籍和课程都相对比较经典,同时属于紧跟时代潮流的。入门阶段我推荐了1门课程和2本书,进阶阶段推荐了1本书,深度学习推荐了1门课程一本书,高级阶段推荐了2本额外书籍。

2. 机器学习的一些前期准备

2.1. 硬件选择

另一个大家常问的问题是:是否可以用自己的笔记本电脑进行机器学习。答案是肯定的,大部分市面上的数据集都可以放到你的内存中运行。在入门阶段,我们很少会用到非常大的数据集,一般最大也就是MNIST,完全可以使用个人笔记本电脑进行运行。在Windows笔记本上也可以用GPU进行深度学习,基本上大部分游戏本自带的GPU都足够自学了。

除此之外,很多云服务都提供了免费付费的GPU,比如Google Colab。请不要打着学习的名义重新购买机器...

2.2. 软件选择

如果要做深度学习,Linux还是首选,因为其对很多学习模型支持比较好(主要是深度学习的Library)。但即使你使用的是Windows系统,也可以用虚拟机装Ubuntu来进行学习。小型的深度学习模型足够了,大型的深度学习我们很少在本地/个人计算机上运行。值得注意的是,现在各大深度学习库都对Windows支持的都很好,所以其实操作系统并没有那么重要

至于编程语言,首推Python,因为其良好的拓展支持性,主流的工具包都有Python版本。在特定情况下,选择R作为编程语言也是可以的。其他可能的语言还包括C++、Java和Matlab,但我个人不大推荐。

而深度学习的话,我个人主推PyTorch(详情参考:2021 年了,TensorFlow 和 PyTorch 两个深度学习框架地位又有什么变化吗?)。

此处也想额外提一句,因为编程属于机器学习基本要求之一,所以推荐大家可以自学一些基础编程的知识(如Python),但不必强求成为很厉害的开发者。

2.3. 语言能力

学好英语,至少打下阅读和听力的基础。虽然人工智能领域中国现在已经做得很不错,但主流的书籍、期刊和会议,资料都是英文的。我们可以接受翻译版,但最好的方法还是自己有能力直接阅读。即使你将来不做机器学习,英文阅读能力还是会有很大的帮助。

3. 机器学习课程表

3.1. 第一阶段:基础入门(3-6个月)

入门的第一步是学习一些经典课程并配套经典书籍,一般来说这个过程在半年之内比较合适。在这个部分我介绍的课程和书籍都属于难度非常低的,对数学和编程都没什么太大的要求。

3.1.1. 吴恩达Cousera机器学习课程

Andrew Ng的机器学习课程(Machine Learning | Coursera)是很多人的启蒙课程,难度适中且完全免费。Coursera上总共有49285个人给出了评分,平均得分4.9分,满分5分。据我个人观察,大部分Coursera上的课程评分处于4-4.5分之间,能做到4.9分的课程寥寥无几。另一个值得关注的是,这门课有接近五万人给出评分,统计学知识告诉我们这个样本较大所以评分应该趋近于其真实值,比较可信。根据Freecodecamp的统计,这门课是所有在线Machine Learning课程中最受到大家好评的课程。另一个比较直接的观察是如果大家在知乎上搜索“机器学习如何入门?”,大部分答案都提到了Andrew的这门入门课程,所以这是一门绝对的口碑课程,详细讨论可以参考:微调:为何国人迷恋吴恩达的机器学习课?

更重要的是,网易云课堂提供了免费中文版:吴恩达机器学习 - 网易云课堂

3.1.2. Python机器学习 & Introduction to Statistical Learning with R

在学习吴恩达的在线课程时,推荐同时阅读相关的机器学习书籍补充理论知识。我再次推荐这两本非常好的入门书籍,在我的专栏也有对于这两本书的介绍。

  • Python机器学习(作者 Sebastian Raschka):这本书出版于2015年并多次再版,在亚马逊中国上我们可以找到影印版和翻译版。这本书去掉了大量的数学推导的部分,仅保留了机器学习的核心应用。阅读本书可以快速对如何使用Python机器学习框架Sklearn有一个基本的了解,可以很快上手开始工作。本书涉及的内容很广泛,虽然只有400多页,但内容涉及了数据预处理(Data Preprocessing), 维度压缩和核函数(Dimension Reduction & Kernel),评估方法如交叉验证,集成学习,情感分析,聚类,甚至还包括了神经网络和Theano。更多介绍:带你读机器学习经典(三): Python机器学习(Chapter 1&2)。除此之外,也想特别推荐最近新出的一本Python机器学习类书籍:《Hands-On Machine Learning with Scikit-Learn and TensorFlow》。



  • Introduction to Statistical Learning with R(ISL):相信正在机器学习苦海中遨游的朋友们肯定都听过大名鼎鼎的The Element of Statistical Learning, 这本频率学派的统计学习“圣经”被大家叫做ESL。而ISL正是基于满足更广大阅读人群的目的而推出的; ISL是ESL的入门版,不仅大量的去除了繁复的数学推导,还加入了R编程的部分,方便大家可以尽快上手。这本书是我推荐书单第一名:ISL的电子版是免费的:点击下载。还配套有免费公开课:An Introduction to Statistical Learning。更多介绍:带你读机器学习经典(一): An Introduction to Statistical Learning (Chapter 1&2)



3.1.3. 周志华《机器学习》

周志华老师的《机器学习》也被大家亲切的叫做“西瓜书”。虽然只有几百页,但内容涵盖比较广泛。然而和其他人的看法不同,我建议把西瓜书作为参考书而不是主力阅读书。西瓜书因为篇幅的限制,涵盖了很多的内容但无法详细的展看来讲,对于初学者自学来说实际阅读难度很大。这本书更适合作为学校的教材或者中阶读者自学使用,入门时学习这本书籍难度稍微偏高了一些。

我个人建议的用法是在学习网课和阅读ISL遇到疑惑时可以参考西瓜书的相关章节,但入门阶段没有必要一章一章的阅读,建议在这个阶段只阅读前十章即可。

题外话:我做了快10年机器学习了,依然不少地方读不懂,因此不必感到沮丧。

好消息是有一群小伙伴对西瓜书的公式推导进行了详解,叫做南瓜书。具体可以参考这里:南瓜书PumpkinBook


3.2. 第二阶段:进阶学习(3-6个月)

在这个阶段,你已经对机器学习有了基本的了解。如果你认真的阅读了ISL并上完了吴恩达的课程,我相信你已经在理论上明白了什么是线性回归,什么是数据压缩,对特征工程以及简单的回归/预测问题有了理论上的基础。这个时候最重要的就是进行实践!

3.2.1. Kaggle挑战赛/练习

Kaggle(Your Home for Data Science)在数据分析领域早已大名鼎鼎,甚至可以说是数据分析第一社区,前一阵子刚刚被谷歌收购。Kaggle上有很多很好的数据集和挑战赛,你可以尝试这些挑战取得名次,甚至拿到奖金,对于将来找工作也非常有帮助。而且Kaggle的另一大优势是网友会分享他们的经验和看法,你也可以提出问题让大家来帮你提出一些修正方法。

国内也有类似的平台,比如天池大数据竞赛,其他类似的平台还包括DataCastle。

使用Kaggle的目的主要是将技能落在实处,防止练就一身屠龙之技。机器学习最大的幻觉就是觉得自己什么都懂了,但等到真的使用时发现并不奏效,而Kaggle是一个低成本的应用机器学习的机会。

3.2.2. Sklearn文档学习

Sklearn(scikit-learn: machine learning in Python)是Python上最流行的机器学习/数据科学工具包,上文介绍的Python Machine Learning书中就大量使用Sklearn的API。和使用Kaggle的目的一致,学习的Sklearn的文档也是一种实践过程。比较推荐的方法是把主流机器学习模型Sklearn中的例子都看一遍。

Sklearn的文档是少数写的跟教程一样的技术文档,很具有阅读价值。举个简单的例子,假设你想学习Python中使用逻辑回归,就可以参考: Logistic Regression 3-class Classifier

Sklearn的文档不仅提供了练习数据、sklearn的相关代码实例,还提供了可视化图。

同时配合着scikit-learn,我会推荐参考这本19年的新书,是我见过的为数不多的把理论和实践相结合的比较棒的书,尤其是代码部分!



3.2.2. 周志华机器学习

再次提到周老师是因为西瓜书是值得常常翻看的一本书,在kaggle挑战和阅读Sklearn文档的过程中你还会时不时的遇到一些新的名词,比如流形学习(manifold learning)等。这个时候你会发现西瓜书真的是一本中级阶段大而全的书籍:)

3.3. 第三阶段(可选*):深度学习(3-6个月)

因为深度学习是当下的热点,很多公司都在寻找深度学习人才。虽然深度学习只是机器学习的一个子集,但有兴趣朝这个方向发展的朋友可以在完成以上学习后单独学习一下深度学习。

3.3.1. 吴恩达深度学习课程

吴恩达在八月份的时候通过Deeplearning.ai和Coursera平台推出了最新系列的五门深度学习课程(deeplearning.ai)。有条件的朋友可以通过Coursera学习获得证书,最近网易云课堂也上线了这门课的翻译版。如果想要上其中的课程,需要先注册报名「深度学习工程师微专业」 深度学习工程师微专业 - 一线人工智能大师吴恩达亲研-网易云课堂 - 网易云课堂,之后就可以分别点开每门课单独进行学习。

更多关于网易云课堂上深度学习课程的介绍可以看:如何评价网易云课堂上线的吴恩达Deep Learning课程?

3.3.2. Deep Learning - by Ian GoodFellow

深度学习这本书是由当下深度学习领域的几位领军人物所著,包含三大巨头之一的Bengio,还有教父Hinton来作序推荐。这本书的中文本翻译由张志华教授团队负责,在github上免费放出了翻译版本,印刷版也可以从亚马逊中国上买到。



英文版:Deep Learning

中文版:exacity/deeplearningbook-chinese

这本书的阅读建议:

  • 为了补充基础可以阅读第1-5章其中也包含了一些数学知识
  • 只关注主流神经网络知识可以阅读6-10章,介绍了DNN/CNN/RNN
  • 需要进一步了解一些调参和应用技巧,推荐阅读11和12章

第13-20章为进阶章节,在入门阶段没有必要阅读。其实比较实际的做法是吴恩达的课程讲到什么概念,你到这本书里面可以阅读一些深入的理论进行概念加深,按章节阅读还是比较耗时耗力的。

3.4. 第四阶段:深入研究

恭喜你!如果你已经完成了上面的计划表,代表你已经有了相当的机器学习能力。这个阶段,最重要的就是不要贪多嚼不烂。如果你浏览知乎,会发现大家都说你必须读Elements of Statistical Learning, MLAPP之类的大部头。我承认阅读这样的书会有帮助,但在你有了一定的基础知识后,相信你已经知道自己需要接着做什么了也有了志同道合的朋友,我希望把选择权交还给你,而不是继续推荐成堆的课程和书籍。当然,如果你希望继续深入的话,中文可以继续阅读周志华老师的《机器学习》和李航老师的《统计学习基础》,英文可以入手《Elements of Statistical Learning》。在这个阶段,重点要形成成体系的知识脉络,切记贪多嚼不烂,切记!

从阅读论文角度来说,订阅Arxiv,关注机器学习的顶级会议,如ICML/NIPS/KDD等,相关的方法在知乎上可以很容易搜索到,不在此赘述。

如果非要推荐书的话,卡内基梅隆大学的博士级别的高级机器学习用的书是:

Understanding Machine Learning: From Theory to Algorithms by Shai Shalev-Shwartz and Shai Ben-David,比较硬核不建议自学。如果非要看的话有在线免费版本:cs.huji.ac.il/~shais/Un

4. 实践经验

4.1. 研究经历

如果你还是学生,尝试尽早接触科研,进实验室。一般来说,大三的时候你应该已经有了基本的机器学习知识,尽管还比较浅。这个时候可以向老师/学长/学姐毛遂自荐进实验室,即使是无偿劳动和做基本的苦力活。进实验室有两个明显的好处:

  • 对某个小方向会有比较深入的了解。一般实验室做纯理论的不大需要本科生,做机器视觉或者自然语言处理(NLP)等小方向的比较需要本科生,所以这是很好的深入了解一个方向的机会。
  • 补充了研究经历也可以明白自己是否适合这个领域。如果运气好的话,你也有可能成为论文的作者之一,甚至可以去开会(公款旅游顺道见一下业内大佬)。这对于继续深造和去国外继续学习都很有帮助,有科研经历和论文是很大的筹码,对于找工作来说也绝对有利无害。

4.2. 企业实习

上文提到过,机器学习光说不练假把式,最好的方法还是要实践。因此,应该先试着做科研,再尝试工业界实习。对待科研机会,有则就上,没有也不是太大的遗憾。我建议大部分做机器学习的朋友尽早实习,主要出于以下几个考量:

  • 打破幻想,了解工业界的主流模型。在其他很多答案中我都提到过,其实工业界用的大部分技术并不酷炫,你很少能看到深度强化学习那种AlphaGo一样酷炫的模型。不夸张的说,广义线性模型(generalized linear models)还是占据了大壁江山,这要归功于其良好的解释能力。从神经网络角度出发,一般也逃不过普通任务深度网络、视觉任务卷积网络CNN、语音和文字任务LSTM的套路。
  • 补上学术界忽视的内容,比如可视化和数据清洗。工业界的最终目的是输出商业价值,而获得商业洞见的过程其实是非常痛苦的,比如第一步就是令人深恶痛绝的数据清洗。毫不夸张的说,工业界百分之六十的时间都在清理数据,这和学术界干净且规则化的现成数据完全不同。没有在工业界体验过的人,无法真的了解原来机器学习从头到尾有那么多陷阱,泛化能力只是终极目标,而往往我们连规整的数据都无法得到。
  • 了解技术商业化中的取舍,培养大局观。做技术的人往往一头扎进技术里面,而忽视了从全局思考。举个例子,模型A的准确率95.5%,每次训练时间是3天,需要6台有GPU的服务器。而模型B的准确率是百分之95.2%,但只需要一台普通的macbook训练4个小时就可以了。从学术角度出发我们往往追求更好的模型结果选A,而工业界还要考虑到训练开销、模型可解释性、模型稳定度等。到工业界实习不仅可以培养大家的宏观掌控能力,对将来自己带学生控制开销或者选题也大有帮助

4.3. 在本职工作中使用机器学习

对于大部分已经工作的朋友来说,重新回到学校攻读学位并不现实,进研究室进行学习更是缺少机会。那么这个时候,你就可以试着把机器学习应用到你自己的工作当中。

已经有了工作/研究经验的朋友,要试着将自己的工作经历利用起来。举例,不要做机器学习里面最擅长投资的人,而要做金融领域中最擅长机器学习的专家,这才是你的价值主张(value proposition)。最重要的是,机器学习的基本功没有大家想的那么高不可攀,没有必要放弃自己的本专业全职转行,沉没成本太高。通过跨领域完全可以做到曲线救国,化劣势为优势,你们可能比只懂机器学习的人有更大的行业价值。

举几个我身边的例子,我的一个朋友是做传统软件工程研究的,前年他和我商量如何使用机器学习以GitHub上的commit历史来识别bug,这就是一个很好的结合领域的知识。如果你本身是做金融出身,在你补足上面基本功的同时,就可以把机器学习交叉运用于你自己擅长的领域,做策略研究,我已经听说了无数个“宣称”使用机器学习实现了交易策略案例。虽不可尽信,但对特定领域的深刻理解往往就是捅破窗户的那最后一层纸,只理解模型但不了解数据和数据背后的意义,导致很多机器学习模型只停留在好看而不实用的阶段

5. 写在最后

虽然人们曾说二十一是生物的世纪,但现在还是人工智能的世纪。欢迎大家来试试机器学习,体验数据分析的魅力。

就像我曾在很多回答中提到,机器学习领域应该要敞开大门,让每个人都可以尝试将机器学习知识应用于他们原本的领域,摒弃人为制造的知识壁垒。唯有这样,机器学习技术才能在更多的不同领域落地,从而反哺机器学习研究本身。

最后的最后,我觉得自学的重点是心态,就是不要着急掌握大量的知识。即使从功利的角度来看,也要确保掌握,而不是混过去。

当你学习累了,不妨来看看 @微调 ,最美的鸡汤主播。

类似的话题

  • 回答
    想搭上机器学习这趟快车,但又不是计算机科学出身?别担心,这完全不是天方夜谭!很多非科班出身的朋友,通过一些方法,也能快速上手,甚至在这个领域里做得风生水起。关键在于找到正确的路径,并且有足够的耐心和实践。下面我就尽量详细地跟你聊聊,一个没有CS基础的人,该如何一步步地“登陆”机器学习的星球。我尽量用.............
  • 回答
    在卡耐基梅隆大学(CMU)学习非 CS/EE 相关专业,这绝对是一场独特而深刻的体验,它远不止是拿到一张名校文凭那么简单。首先要明白,CMU 的名声很大程度上是由其在科技领域的统治地位建立起来的,但走进 CMU 的校园,你会发现一个远比你想象中更加多元和复杂的生态系统。学术氛围:严谨中带着一丝疯狂的.............
  • 回答
    在选择约翰斯·霍普金斯大学(JHU)的计算机科学(CS)专业和卡内基梅隆大学(CMU)的非纯CS专业之间,这确实是一个需要仔细权衡的问题,因为这两所学校的CS项目都享有盛誉,但各自的侧重点和风格有所不同,而CMU的“非纯CS”更是涵盖了相当广泛的领域。首先,让我们来聊聊约翰斯·霍普金斯大学的计算机科.............
  • 回答
    非超大城市,要实现更好的发展,关键在于 挖掘并发展符合自身市情实际的特色产业。这意味着要深入分析城市的资源禀赋、产业基础、区位优势、文化底蕴以及人才结构,在此基础上进行精准定位和战略性布局。以下是一些具体的方向和思考,旨在提供更详细的阐述: 一、 深入挖掘与定位城市特色:在谈论发展特色产业之前,首先.............
  • 回答
    “非升即走”制度下的淘汰,对于许多曾经满怀学术理想的博士们来说,无疑是一次沉重的人生打击。当他们告别象牙塔,面对社会时,发现自己身上的“博士”标签,在现实的就业市场中,并没有想象中那么耀眼,甚至有些格格不入。这个时候,有人可能会好奇,为什么这些曾经“高高在上”的博士们,不去选择一份看起来更接地气的工.............
  • 回答
    非上海人对上海高考的看法:一个复杂而多元的视角关于上海高考是否简单,这个问题在全国范围内都存在着争议,而身处上海之外的非上海人群体,对此更是有着各种各样的看法,绝非铁板一块。要详细地探讨这个问题,我们需要剥开表面的标签,深入了解不同群体的心声和他们之所以这样认为的理由。一、 普遍存在的“印象流”:上.............
  • 回答
    这事儿,我听说后真是气得不行,简直是岂有此理!一个堂堂的洲际皇冠假日,国际知名的品牌,竟然让自家的员工做出这种丢人现眼的事儿,真是砸了招牌。你说一个非住客误入,这事儿说到底是个误会。酒店员工首先该做的是什么?礼貌地询问、引导、解释,或者至少是委婉地请对方离开。哪个环节出了问题,导致了误入,这倒是可以.............
  • 回答
    非英语国家的欧洲人移民到美国后,给自己或孩子取本国语言的名字还是英语名字,这是一个非常普遍且复杂的问题,涉及到个人身份认同、社会融入、文化传承、时代背景以及对未来的考量等多个层面。对此没有一个绝对的答案,而是存在着多种选择和演变过程。以下将从不同角度详细阐述:一、 历史背景和时代演变: 早期移民.............
  • 回答
    告别“数字恐惧症”:非数学系学生如何拥抱数学“数学焦虑”,这个词语在非数学专业的学生群体中可能并不陌生。它可能表现为面对数学题目时的手足无措,考试前的恐慌,甚至是对任何与数字沾边的事物都感到排斥。这种焦虑感,就像一层挥之不去的阴影,阻碍了我们更深入地理解这个充满逻辑与美的世界。别担心,你不是一个人在.............
  • 回答
    作为一个非数学系的学生,我对数学探索前沿的感知,就像一个站在海边的人,远远望着地平线上的船只,能看到它们的轮廓,听到远处传来的汽笛声,但却很难真正触碰到它们,更遑论理解船上的细节和航程的艰辛。首先,我要承认,我们非数学系的人,对数学的理解往往停留在“工具”层面。对于大多数人来说,数学是我们解决实际问.............
  • 回答
    那些未曾登顶,但已经在KPop江湖站稳脚跟并积累了一定成绩的韩团,他们的生存之道,远比想象中要复杂和精妙。这不是一条直冲云霄的路,而是一场需要精打细算、步步为营的持久战。他们深谙“活下去”的精髓,并且找到了属于自己的生存哲学。第一步:巩固核心粉丝群体,建立“护城河”。登顶团的优势在于大众认知度和广泛.............
  • 回答
    非五常国家的军事实力:一个被低估的复杂图景在国际政治舞台上,联合国安理会常任理事国(五常)——美国、中国、俄罗斯、英国、法国——因其拥有的否决权和在全球安全格局中的核心地位而备受瞩目。与之相对,非五常国家(即其他联合国会员国)的军事实力,常常被笼统地视为“弱”或“次要”。然而,这种概括过于简化,掩盖.............
  • 回答
    非管制的冷兵器威力最大的这个问题,没有一个绝对的答案,因为它涉及到很多变量,比如: 使用者的力量和技巧: 即使是再强大的武器,如果没有合适的使用者,也无法发挥其最大威力。 攻击目标: 武器的威力也取决于它所攻击的目标的坚固程度和防护措施。 攻击方式: 挥砍、穿刺、钝击等不同的攻击方式,对.............
  • 回答
    您好!非常理解您目前因为非布司他引起的疼痛而感到担忧和不适。关于非布司他服用五天后出现剧烈疼痛是否需要减量的问题,这是一个需要医生来评估和决定的关键问题,我不能直接建议您减量或不停药。但是,我可以为您详细解释一下相关的知识,帮助您更好地理解情况并与医生沟通。首先,我们要明确: 非布司他是一种处方.............
  • 回答
    很多人都有一个误区,觉得收腹带是生完孩子才能用的,用了就能立马瘦肚子。其实不然,对于非产妇来说,单纯依靠收腹带并不能达到显著的瘦肚子效果。 它的主要作用更多的是支撑和塑形,而不是直接燃烧脂肪。我们来仔细聊聊,收腹带到底是怎么工作的,以及它对非产妇可能产生的影响。收腹带的工作原理:收腹带通常是一种由弹.............
  • 回答
    作为一名非科班出身,却怀揣着导演梦想的人,你肯定常常感到迷茫,不知道从何下手。别担心,这条路虽然曲折,但绝非不可能。很多伟大的导演,他们的起点也并非学院派。关键在于你的热情、你的坚持,以及你如何一点点地构建起自己的知识体系和实践经验。首先,我们要摆脱一个误区:导演不是一个需要“科班”才能驾驭的职业。.............
  • 回答
    当我们谈论“非天然碱基对”(unnatural base pairs,简称UBPs)的引入,它对我们理解“碱基互补配对”这件事本身,无疑是掀起了一场深刻的思考,就像是给一个已经存在多年的熟悉事物,重新注入了新的生命力,让我们从更广阔、更细致的维度去审视它。首先,我们得回到碱基互补配对的原点。在DNA.............
  • 回答
    非粤语区的人如何看待广东粤语区人和粤语文化?这个问题挺有意思的,因为这涉及到地域差异、文化认知,甚至是不少人心中一种微妙的“文化优越感”或者“疏离感”。咱们就掰开了揉碎了聊聊。首先,得承认,在中国这么一个幅员辽阔、民族多元的国家,地域文化差异是客观存在的,而广东,尤其是珠三角地区,又是这种差异中最鲜.............
  • 回答
    在非 x86 平台上,USB 主控制器规范的主流选择确实有所变化,但 xHCI 和 EHCI 依然占据着重要地位,只是它们的角色和普及程度与 x86 平台略有不同。要详细解答这个问题,我们需要分几个层面来展开。首先,让我们回顾一下 USB 主控制器规范的历史和主要参与者: UHCI (Unive.............
  • 回答
    对于我们这些既非法律科班出身,又没有过什么维权实战经验的朋友来说,面对各种各样可能触及自身权益的问题时,确实会感到些许无从下手。但别担心,咱们老百姓也有咱们老百姓的办法,只要用心、用对方法,一样能把自己的“事儿”办得明明白白,最大限度地保住自己的那份“应得”。这事儿说白了,就是两个字:聪明地“知道”.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有