1、误认为学习机器学习,要先补齐所有的前期知识
误认为学习机器学习,要先补好全部的数学基础,然后在学习python,最后学习机器学习的算法。
你可能听很多人说过,机器人学习需要很强的数学基础,然后你就疯狂地开始补数学基础,你开始学习线性代数、概率论等知识。
你的规划是7月份补数学基础,8月份学习Python,9月份开始正式学习机器学习。抱着严谨的态度,你要把数学知识都弄懂了才进行下一个环节。最后你的机器学习,始于数学而终于数学。以这样的心态学习下去,机器学习从入门到放弃,你可能不需要一个月。
学习机器学习,你不需要在准备阶段把需要的数学基础全部都补齐才开始,你可以边学边补充。用的什么补什么,这样效果比较好,而且印象深刻。
2、不要搜集过多的资料,要按照自己的需求搜集合适的资料。
很多时候的你们,学习一门语言或者课程的时候,都想着资料越多越好,不管用不用,我先收集了再说。
这就导致了你的很多资料和视频都在百度云盘中睡大觉,正如你们看知乎一样,不管答主写了啥,先收藏再说,后期看不看我不知道,反正收藏等于学会这一点准没错。这就导致了你们看了五花八门的帖子,还区分不出来答主所要表达的核心观点。
所以我说,选择你所需要的合适资料就行,比如你要学习自然语言处理,你就搜集自然语言处理的资料,别的五花八门的暂时不要关心,遇到非常好的资料也要分类区分一下。现在的方向越来越多,资料也越来越多,你想都看完是不可能的。
有针对的选则是很重要的,不然你就会像没有目标的苍蝇一样,飞来飞去,最后啥也没学会。
下面说一下机器学习如何入门?
1、准备一些数学资料(课本即可)
你需要准备一些数学资料供你随时学习,如果你实在不放心可以先用几天的时候复习一下。
线性代数:
(1) 向量
(2) 基本概念、常见运算(向量加法、向量乘以标量、向量点乘)、向量性质(线性相关、线性相关的几何意义、正交、 正交 vs 线性无关)
(3)线性变换与线性函数
(4) 线性变换、 线性函数(可加性、齐次性)
(5)矩阵
(6)m x n 矩阵、矩阵的基本运算、矩阵运算的规律、矩阵与线性变换的关系、相关基本概念(矩阵的秩、列秩、行秩、满秩矩阵、子式、余子式、零矩阵)、对称矩阵、对角矩阵、可对角化和对角化、相似矩阵和相似变换、 正交矩阵和正交变换、 用正交阵对对称阵进行合同变换、实对称矩阵、正定、半正定、负定、半负定
(7)特征值及特征向量
(8)定义、几何意义、特征空间、几何重数、主特征向量、标准正交基、特征向量与系数方程、特征值的性质
(9)奇异值分解
(10)主成分分析(PCA)
概率论和统计学:
(1)随机事件的概念,概率的定义与计算方法
(2)随机变量与概率分布,尤其是连续型随机变量的概率密度函数和分布函数
(3)条件概率与贝叶斯公式
(4)常用的概率分布,包括正态分布,伯努利二项分布,均匀分布
(5)随机变量的均值与方差,协方差
(6)随机变量的独立性
(7)最大似然估计
微积分:
函数(求解函数的极值、分析函数的性质)
极限
上确界与下确界
导数(导数与函数的单调性、导数与函数的极值、导数与函数的凹凸性、向量与矩阵求导)
Lipschitz连续性
一些公式(泰勒公式、牛顿-莱布尼兹公式等)
不定积分
定积分
变上限积分
常微分方程
梯度
链式法则
Hessian矩阵
多元函数(多元函数的极值判别法则、多元函数的凹凸性判别法则)
多重积分
2、学习python基础知识学习
(1)很多人喜欢搞一本厚厚的书来看,虽然看完了但是还不会用Python,这是最大的悲哀,可以选则一个网站进行入门练习。
(2)搭建一个Python环境。
(3)然后学习一些常见的Pythonn库。
(4)找一些demo练手。
3、学习机器学习的原理知识
学习机器学习的基本概念和算法的原理,你可以通过看书,看视频来学习。
喜欢看书的同学在入门阶段可以看李航《统计学习方法》、周志华《机器学习》。其实看书是很无聊的,我推荐你们先去找一些网上的公开课程学习学习,比如吴恩达《Machine Learning by Andrew Ng》、李宏毅 – 机器学习公开课、贪心科技 – 人工智能与机器学习。
吴恩达老师课程内容严谨,对数学不好的同学们很友好,有时候会数学问题会单独拉出来说。贪心科技的李文哲的课程对于小白用户还是专业人士都非常友好,不仅仅会涉及到机器学习的知识还会说到一些基础的知识并且实操项目多,很多网课呢都是教一些基础知识然后给个demo,学起来很被动。
我建议你们刚开始先找贴合实际和自己感兴趣的课先看一下,培养自己的兴趣,要不然你们可能一个月就从入门到放弃。
千万不要一开始是就学了一些不良的习惯,啥原理没学,就学什么开始用Python调包,那不是算法工程师,那是调包工程师。
要从问题的定义—>确定是有监督还是无监督学习—->了解一些概率如样本集、测试集、特性、标签等。
——>学习相关的算法原理。
4、深入学习
找到一个自己感兴趣的课程深入学习,跟着步骤学习一些原理知识、算法、demo,附带项目实操。就比如我经过比较后选则了人工只能与机器学习的实践课,进行系统的学习。
报课程的主要目的是找一些实战项目来巩固自己的基础知识,这门课覆盖了机器学习的所有核心算法,最主要的是实战和理论的相结合。
该课程从机器学习的基础知识开始,每个章节都会有demo或者项目练手,并且还有助理老师答疑,解决自己不会的问题。
课程内容包是一门中级课程。面向今后打算从事AI 岗位的职场人士以及在校学生。主要目标是通过专业课程的学习掌握岗位所需的AI核心技能。针对每一个核心技术,都有关于知识点的详细推导过程同时课程上面也配备了数十个案例来自不同领域、配备综合性的项目作业。不仅仅有理论课程还有专业的项目实操,通过实操将理论和实践结合起来,真正做到学过了就会使用。
内容包括包括什么是人工只能,机器学习的规划、线性回归、逻辑回归、模型的泛化、一些基础的算法和项目实战,通过将机器学习放进人工智能的大框架里学习,帮助我们更好的理解一些概念,将所学知识串联起来,掌握综合性的技能。
个人体验:
1、知识点结合项目的方式真的非常nice,不仅可以通过项目测试我们的基础知识的掌握程度,而且可以在项目中巩固基础知识。同时demo配合只看视频的被动学习,让我们的学习更主动。该课程不管是对于机器学习初步入门者还是职场人士都非常友好,老师的讲解非常细致周到。
2、所有练习都可在平台在线完成,免去了很多下载软件搭配环境的时间。这就减少了很多小白用户的第一个难点,环境的搭建,我认识很多同学可能搭建个环境要好几天甚至一周的时间。
3、课程的项目多并且全,项目贴合实际生活,让每个机器学习算法都不是高高在上,都能落地。例如在课程中的零售场景中的用户分层,我们可以了解到算法是怎么给用户分层的。并且可以了解算法背后的商家的一些套路和提高用户体验的方法。
可以设想一下, 公司最近要推广一个新的产品,需要去把消息推送给潜在的客户,发给哪些用户是个问题,这就需要提前做好用户分层,并把每个用户群体打上相应的标签,之后再做针对性的推广。在这个项目,用到了经典的RFM模型、基于AI驱动的K-Means聚类分析法等。同时,也会涉及到效果评估、调参等细节。
课程团队由李文哲、Jerry Yuan主讲,老师都是业内资深工程师。
李文哲老师曾任金融科技独角兽公司的首席科学家、美国亚马逊的高级工程师,先后负责过聊天机器人、量化交易、自适应教育、金融知识图谱等项目,并在AAAI、KDD、AISTATS等顶会上发表过15篇以上论文,并荣获IAAI,IPDPS的最佳论文奖,多次出席行业峰会发表演讲。分别在USC, TAMU,南开攻读博士、硕士和本科。在荷兰访问期间,师从AI顶级学者Max Welling教授。
Jerry Yuan拥有14年人工智能、推荐系统、自然语言处理、数字图像和视频处理项目经验,主导多款核心推荐系统的研发,是人工智能、分布式系统、云计算方面的专家。曾师从中国科学院王守觉院士从事人脸识别研究、共同发表论文。在美国博士期间,主要研究NASA(美国航天局)支持的基于人工智能的空间天气预测项目。先后在AI相关会议和杂志上发表过15篇以上的论文。
5、项目实战与项目总结
(1)自己去寻找项目实战,你可以通过你的老师学校找到一些项目,或者是去开源网站如git。这个阶段你主要是要了解目前企业一般用到的主流算法,这些主流算法解决实际中的那个问题,效果怎么样。并查阅相关论文,看看有没有什么能优化的地方,如果让你来做,你会选则什么模型,什么算法。中间遇到问题怎么解决。
(2)课程项目
如果你报了一个系统的课程,你就只需要老老实实把课程后的项目都给完成了,这些课程都是企业最新的项目积累。例如广告点击率预测,情感分析项目、信用卡欺诈预测都是现在热门的项目。
在这个项目中你学习到了哪些知识,要总结复盘,用到哪些经典的算法,有什么优点有什么缺点。对比用过的算法总结出自己的代码库或者是项目库。
给自己定时间计划
比如我自己的学习规划
第一天——了解python并安装好环境:去网站上下载一个python下载版本,搭配好运行环境。
第一周到第二周——整理好所需要的数学资料,并抽空看一下,把自己会的不会的都标记一下。下载一些python的学习文档,比如《简明Python教程》,《笨办法学Python》等等。通过学习语法,掌握python中的关键字语法,函数语法,数学表达式、变量、数据结构、语法等等等
了解Python是什么,都能做些什么? 知道什么是变量、算法、解释器 Python基本数据类型 列表和元组的操作方法 字符串操作方法 基本的字典操作方法
掌握 if、else、while、for、continue、break和列表推导式等这些语句的使用,还有程序中的异常处理。
第三周——找一些机器学习的公开课看一下,培养自己的兴趣,确定适合自己或者自己比较感兴趣的老师。
第四-第十二周——找一门合适的课程系统的学习一下,主要学习问题的分析,遇到什么样的问题选则什么样的算法,算法的原理知识,学习demo及自己拆解研究demo。
第十三周——尝试做点小项目,尝试用一些算法解决我们项目中遇到的一些问题,看看能处理到什么地步,一般技术都是为业务服务的,尝试处理实际的业务。现实和理想差距还是蛮大的,所以说实践是检验真理的唯一标准。
第十四周以后——复盘总结。
注意事项
学习机器学习要注意以下几点:
(1)光看书=白看
a、 分解算法原理,使用软件工程中最经典的2/8原则。看某个算法能否解决百分之80的问题,剩下百分之20的在想办法解决。
b、 利用番茄学习法来学习。
c、 整理自己的模块代码形成我们自己的代码库、算法库。
d、 每天记得复盘。
(2)熟悉Linux操作系统
Linux操作系统的学习内容旨在帮助大家迅速掌握如何使云服务器和Linux操作系统。Linux操作系统是多数企业部署的服务和产品所使用的操作系统环境,可以在Windows或macOS这类对用户更友好的操作系统上进行项目项开发,但是最终这些项目很有可能被部署在云服务器和Linux操作系统上。
(3)了解python的一些工具
编译软件:Spyder、Eclipse、PyCharm、Visual
Studio Code
随便下载一个熟练使用它,掌握它的快捷键。
(4)学习算法原理
这个阶段一定要耐得住寂寞,不要感觉原理知识都是数学就放弃,试着自己推导公式,慢慢来,慢慢磨。这个阶段很痛苦,但是却很有用。
(5)其它的建议:
基础知识+视频+项目实战,循环渐进的学。使用复用的思维模型+专项练习的方式,可以提高你的学习效率。
你还需要了解一些行业的业务,技术都是服务业务的,业务理解不清楚,开发也是在走弯路。写代码时候,想清楚再写避免推倒了从来。