【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
**开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **
收入x 消费水平y 1.0 0.5 1.2 0.8 1.5 1.3 现在的问题是:请问在一个社会中,收入水平为1.5的人群,消费水平如何?
首先,把路人甲的数据放在坐标系里可视化一下
在中学阶段,我们学过一个概念,叫线性最小二乘法,它的实现思路是:首先给出一个点集,然后用一条直线去拟合这个点集,使所有点到这条直线的距离最小——误差最小。现在让我们做出这样一条直线。
得出的这条直线能干嘛呢?能用来预测!我们现在可以根据这条直线来判断任意收入水平下,你的消费水平如何。
在这个例子中,这三个点就是经验,我们是根据路人甲已有的经验来预测的,在机器学习中,经验表现为数据;而这条直线就叫模型,模型体现的是数据内部蕴含的潜在模式和规律。
有人会说,你这也太扯淡了,就用一个人的三个数据就能做收入水平预测这么大的课题?
确实是这样,所以机器学习需要的数据量是非常大的,只有在大数据的支持下,得到的模型才有实际意义。比如说,我们又采样了一部分人群的数据,得到的结果如下
再次应用最小二乘法,我们发现直线变了。数据量越大、质量越高,其现实意义越强、偶然性越小。所以机器学习模型就会随之变得有效(称为泛化性,但这个概念后面再说),我们可以认为系统性能得到了改善。
这是符合我们人类认知规律的!**随着我们经历的事情越来越多,阅历也就是经验越来越丰富,对事物的认识也越来越深刻。**可能过去我们对某个事物的错误认识,会在接下来的人生阶段得到纠正,这就是机器学习的道理。
事实上,我们在高中就接触机器学习了,上面说的最小二乘法就是后面介绍线性回归等模型的理论基础!
所以机器学习的概念实质上并没有想象得那么高大上,就是机器模仿人的学习,从数据内部获得潜在客观规律的过程。
2 ACM 班总教头:俞勇
最近,彪悍的上海交大 ACM 班俞勇教授团队推出了一本重量级新书——《动手学机器学习》。这对于技术人来说是难得的福音,因为它一次性讲明白了机器学习这回事。
上海交大 ACM 班到底有多彪悍?看看它的杰出校友们吧。
科研领域有在斯坦福任教的杨笛一,有在卡耐基梅隆大学任教的陈天奇,他也是 XGBoost 作者、TVM发起人。企业界则有依图科技联合创始人林晨曦,第四范式创始人戴文渊。MXNet 的作者大神李沐,其所著的《动手学深度学习》更是诸多技术人的必读经典。
因此 ACM 班在业界享有中国 AI 人才的“黄埔军校”之称。了不起的成就背后是伟大的愿景,ACM 班的创立者俞勇教授一直在为培养中国的图灵奖得主而努力。颁发图灵奖的机构就是 ACM(美国计算机协会),可见俞勇教授给 ACM 班取名时就寄予了多么深切的期望。
3 动手学习机器学习
《动手学机器学习》的定位是在引领初学者入门,在内容设置上是从讲解基础理论算法开始,逐渐进入有监督学习模型与无监督学习模型的论述,力求让学习者系统化掌握机器学习的主干知识。
本书的主创团队有三位作者,除了总教头俞勇教授,还有将教学成果整理成书的张伟楠副教授,他在强化学习、数据挖掘、知识图谱等领域颇有建树。作者赵寒烨也在强化学习、机器学习方面有着深入的研究。
实力如此强劲的技术天团,为本书在业界树立了权威的标杆
下面对书中四个主要部分的内容进行说明。
- 机器学习基础
在基础部分,主要是帮助学习者抓住最核心的概念和原理,讲解了最基础的两个算法:KNN(K 近邻算法)和线性回归。基于这两个算法讨论了机器学习的基本思想与实验原则。
扎实掌握好这部分内容,就具备了在大部分机器学习场景中上手实践解决问题的能力。- 参数化模型
本部分主要是讨论监督学习任务的参数化模型,包括逻辑斯谛回归、双线性模型、神经网络与多层感知机、卷积神经网络、循环神经网络等内容。
这些方法的共通特征,主要是基于数据的损失函数对模型参数求梯度,进而更新模型。- 非参数化模型
这部分聚焦在监督学习的非参数化模型上,包括支持向量机、决策树、集成学习与梯度提升决策树等内容。之所以将非参数模型单独作为一个部分,是为了让学习者从原理和代码方面更好地体会与参数化模型的区别、优劣。- 无监督模型
本部分讨论了对于没有标注的数据进行处理的无监督学习方法,包括 K 均值聚类、主成分分析、概率图模型、EM 算法、自动编码器等内容。
对无监督学习进行了不同任务、不同技术角度的讨论,让学习者可以充分体会与监督学习的区别。
《动手学机器学习》的最大亮点就是为动手实践提供了傻瓜式的体验环境,主创团队将 ACM 班的实践成果精炼出来,理论与代码相结合,让学习者可以平滑上手。
书中包括机器学习的概念定义、理论分析和算法过程和可运行代码。学习者可根据自己的学习状况,灵活选择想要阅读的内容。
不过,毕竟不是零基础入门,在动手之前学习者要具备两项基础能力,一是数学概念和数理统计知识,包括矩阵运算、概率分布和数值分析方法等;二是基本的 Python 的编程能力,能看懂代码并调试运行。
本书丰富的技术案例涵盖了基础算法、监督学习的参数化模型与非参数化模型,以及非监督模型。对于书中提到的知识点,学习者都可以亲手实践。主创团队对代码示例进行了精心选择,力求功能简洁且易修改。
《动手学机器学习》的内容在成书之前就经过了 ACM 班的教学检验,书中的原理讲解、算法说明、代码案例都在教与学的互动中去芜存菁,可以说这本书就是思考与实践的淬炼结晶。
当先进的教学成果走出校园,在业界传播普及机器学习知识,推动了产业的发展时,也引得大佬们交口称赞。
从根本上说,机器学习是一门研究算法的学科,而这些算法的作用,就在于能够通过非显式编程的形式,利用经验数据提升某个任务的性能指标。
所以这里的难度在于,即使我们理解了算法,也无法从结果倒推回去,这是难以还原的。显式编程则直观得多,直接针对问题给出解答,例如要对一组数据排序,就实现一个快速排序算法。
对于学习者来说,要将机器学习在自己的业务领域内应用好,就要转变思维,“往后站一步”,从显式编程转为编写机器学习算法程序。这就是非显式编程的含义,在不同任务中,基于任务自身的数据,训练出一个解决问题的模型。
《动手学机器学习》就是要帮助学习者系统化地理解机器学习,弄明白算法原理,学会用非显式编程解决自己的问题。书中对每种算法都给出了开箱即用的示例代码,学习者轻松扩展一下就可以用在实际工作中。