机器学习:基础面试知识点

简介: 机器学习:基础面试知识点

机器学习必会面试知识点

标量(scalar)

标量是一个独立存在的数,比如线性代数中的一个实数5就可以被看作一个标量,所以标量的运算相对简单,与平常做的算数运算类似。

向量(vector)

向量指一列顺序排列的元素,我们通常习惯用括号将这些元素扩起来,其中每个元素都又一个索引值来唯一的确定其中在向量中的位置。
在这里插入图片描述

矩阵(matrix)

矩阵是二维数组,其中的每一个元素被两个索引而非一个所确定,我们通常会赋值矩阵粗体大写变量名称,比如一个实数矩阵Height=m,Weight=n,如图所示
在这里插入图片描述
矩阵在机器学习中用到的很多,比如我们有N个用户,每个用户有M个特征,那这个数据集就可以用一个NM的矩阵表示,还有在卷积神经网路中我们输入模型的最初的数据是一个图片,我们读取图片上的像素点(Pixel)作为输入,一张256256的一张图片,实质上就可以用256*256的矩阵表示。

张量(tensor)

在几何代数中,张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量是为0阶张量,矢量视为一阶张量,矩阵视为二阶张量,例如一张彩色图片,可以表示成一个三阶张量,因为彩色图片的每个像素点可以看成一个(RGB)3*1的矩阵[12,242,43](也可以看作二维张量),然后我们把这些像素点拼接成一个面,就变成了三维张量,如图所示:在这里插入图片描述

The end to end(非端到端)

传统机器学习的流程往往由多个独立的模块组成,比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词、词性标注、句法分析、语义分析等多个独立步骤,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果,这是非端到端的。

End to end(端到端)

从输入端到输出端会得到一个预测结果,将预测结果和真实结果进行比较得到误差,将误差反向传播到网络的各个层之中,调整网络的权重和参数直到模型收敛或者达到预期的效果为止,中间所有的操作都包含在神经网络内部,不再分成多个模块处理。由原始数据输入,到结果输出,从输入端到输出端,中间的神经网络自成一体(也可以当做黑盒子看待),这是端到端的。

Sota

sota实际上就是State of the arts 的缩写,指的是在某一个领域做的Performance最好的model,一般就是指在一些benchmark的数据集上跑分非常高的那些模型。

Benchmark、Baseline

Benchmark和baseline都是指最基础的比较对象。你论文的motivation来自于想超越现有的baseline/benchmark,你的实验数据都需要以baseline/benckmark为基准来判断是否有提高。唯一的区别就是baseline讲究一套方法,而benchmark更偏向于一个目前最高的指标,比如precision,recall等等可量化的指标。举个例子,NLP任务中BERT是目前的SOTA,你有idea可以超过BERT。那在论文中的实验部分你的方法需要比较的baseline就是BERT,而需要比较的benchmark就是BERT具体的各项指标。

深度学习基础:矩阵和向量相乘

设矩阵矩阵A,B相乘结果为矩阵C,可以用下面公式表示:
$$a_{i,j}*b_{j,i}=C_{i,i}$$
其中当矩阵与向量相乘是,可以把向量看成一个矩阵的特殊情况,比如矩阵A为一个n*1的矩阵

如何判断正定矩阵?

1、所有顺序主子式大于0.
2、特征值全为正。
3、标准型中主对角元素全为>0。
4、正惯性指数等于n。
5、合同于单位矩阵等于E(规范形为E)
6、存在可逆矩阵C使$C^TC$=该矩阵。

机器学习:导数与偏导数

导数和偏导数没有本质区别,都是当自变量的变化趋于0时,函数值的变化量与自变量变化量的比值的极限(如果极限存在的话)。

一元函数,一个y对应一个x,导数只有一个。

二元函数,一个z对应一个x和一个y,有两个导数:一个z对x的导数,一个z对y的导数,也叫做偏导数。

求偏导数时要注意,对一个变量求导,另一个变量视为常数,只对改变量求导,从而将偏导数的求解转化为了一元函数的求解。

有可逆矩阵X,$X^TX$为什么为半正定矩阵?

如果有一个$n*n$的实对称矩阵定义为A,一个n维的vector定义为x,如果满足$x^TAx>=0$,就可以把实对称矩阵A定义为半正定矩阵,我们从数学函数的角度来理解,初中二次函数$Y = x^2$是恒定大于等于0的,我们可以把·$x^TAx>=0$理解为$Y = Ax^2$的高纬度映射,因为A在二次函数中的作用是改变图形的开口大小,并不影响值域范围,所以我们A换成n*n的单位矩阵I,单位矩阵I(单位矩阵也为实对称矩阵),I的的一维的矩阵是1,变成了y=$x^2$,他是核定大于等于0的,映射到高维度,$x^TIX>=0$,又因为I可以去掉,所以$X^TX$也是恒定大于0的,所以$X^TX$是半阵。在这里插入图片描述

矩阵不可逆的原因

1.特征x1与特征x2线性相关(例如x1为厘米,x2为米,100x1=x2),遇到此状况可去掉一个参数。
2.数据太少,但是数据的维度太大。

可采用伪逆计算法。

机器学习:变量与随机变量的区别

随机变量

随机变量表示随机现象(在一定条件下并不是总出现相同结果)中各种结果的实值函数(一切可能的样本点),发生概率不为1且大于0的变量都属于随机变量,随机变量具有随机性与不确定性,但是在随机变量的值落在某一个范围的概率是一定会的。例如:筛子的点数,某一时间内公共汽车的乘车人数。。。。。
随机变量与模糊变量的不确定性的本质差别在于,后者测定的结果,仍具有不确定性,即模糊性。

变量与随机变量的区别

当变量的取值概率不是1是,变量就变成了随机变量,当随机变量的取值概率是1时,随机变量就变成了变量。
比如:
当变量x的值为100的概率为1时,那么x=100就是确定了的,不会再有变化,除非进一步运算。
当变量x的值为100的概率不是1时,比如取值为50和100的概率都为50%,那么取值就会随着条件变化而变化。

特征值分解与特征向量

特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么。
如果说一个向量v是一个方阵A的特征向量,将一可以表示成下面形式
A v = λ v Av=\lambda v
Av=λv

λ \lambdaλ为特征向量v的特征值,特征值分解是将一个矩阵分解为如下形式:
A = Q ∑ Q − 1 A=Q\sum Q^{-1}
A=Q∑Q
−1

其中Q是这个矩阵A的特征向量所组成的矩阵,∑ \sum∑是一个对角矩阵,每一个对角线元素就是一个特征值,里面的特征值有大到小排列,这些特征值所对应的特征向量就是描述这个矩阵变化方向,(从主要的变化到次要的变化排序)。也就是说矩阵A的信息可以由其特征值和特征向量表示。

对于矩阵为高纬的情况下,那么这个矩阵就是高维空间下的一个线性变换,可以想像,这个变化也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那就对应了这个矩阵最主要的N个变化方向,我们利用这前N个变化方向,就可以近似这个矩阵(变换)。

机器学习基础:独立性与条件独立性

独立性

两个随机变量x,y,概率分布表示称两个因子的乘积形式,一个因子只包含x,另一个因子只包含y,两个随机变量相互独立。
条件有时为不独立的事件之间带来独立,有时也会吧本来独立的事件带来不独立。
举例:$(P(XY)=P(X)P(Y)$,事件X和事件Y独立,此时给定Z,$P(X,Y|Z) \not=P(X|Z)P(Y|Z)$
事件独立时,联合概率等于概率的乘积(也就是事件处于独立同分布时),这是一个非常好的数学性质,然而不幸的是,无条件的独立是十分稀少的,因为大部分的情况事件之间之间都是相互影响的。

条件独立性

给定Z的情况下,X和Y条件独立,当且仅当$$X\bot Y|Z \Leftrightarrow P(X,Y|Z)=P(X|Z)P(Y|Z)$$
X和Y是依赖于Z,而不是直接产生的。
举例:定义如下事件:
X:明天下雨;
Y:明天地面是湿的;
Z:今天是否下雨;
Z时间的成立,对X,Y均有影响,然而,在Z事件成立的前提下,今天的地面情况对明天是否下雨没影响。

机器学习基础:大数据与深度学习的关系

概念

大数据通常被定义为“超出常用软件工具捕获的数据集,管理和和处理的能力”的数据集。
机器学习关心的问题是如何构建计算机程序使用经验自动改进。
数据挖掘是从数据中提取模式特性的算法应用。在数据挖掘中,重点在于算法应用,而不是算法本身。


关系

机器学习与数据挖掘的关系:数据挖掘是一个过程,在此过程中机器学习算法被用作提取数据集中潜在有价值模式的工具。

大数据与深度学习的关系如下:深度学习是一种模拟模拟大脑的行为,可以从所学习的对象的机制以及行为等等很多相关的地方学习,模仿行为以及思维。深度学习对于大数据的发展有帮助,深度学习对于大数据技术开发的每一个阶段均有帮助,不管书数据的分析、建模还是挖掘,只有深度学习,这些东西才会一一得到实现。深度学习转变了解决问题的思维,很多时候发现问题到解决问题,走一步看一步,不是一个主要的解决问题的手段,在深度学习基础上,要求我们从开始到最后都要基于同一个目标,为了优化那个最终的目标去畸形数据处理以及将数据放在数据应用平台上去,大数据的深度学习需要一个框架,在大数据方面的深度学习都是从基础的角度出发,深度学习需要一个框架或者一个系统的总体而言,需要将你的大数据通过深度分析变为现实这就是他们的直接关系。

多实例学习综述

概念

多实例学习(multiple instance learning):已知包含多个数据的数据包和数据包的标签,训练智能算法,将数据包映射到标签的过程,在有的问题中也同时给出包内每个数据的标签。

举例

比如说一段视频由很多张图片组成,假如10000张,那么我们判断视频里是否包含某一物体,比如气球。单张标注每一帧的是否有气球时间成本太大,通常人们看一遍说这个视频里是否有气球,就得到了多实例学习的数据,10000帧的数据不是每一帧都有气球,只要有一帧有气球,那么我们就认为这个数据包中有气球,只有当所有的视频的帧都没有气球,才是没有气球的,从这里学习去哪一段视频是否有气球出现称为多实例学习的问题。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
21天前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
63 2
|
21天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
32 2
|
21天前
|
XML 分布式计算 监控
Oozie工作流管理系统设计与实践:面试经验与必备知识点解析
【4月更文挑战第9天】本文详述了Oozie工作流管理系统的核心概念,包括安装配置、Workflow XML、Action、Coordinator和Bundle XML定义。此外,讨论了工作流设计实践,如监控调试、自动化运维,并对比了Oozie与其他工作流工具的差异。文中还分享了面试经验及解决实际项目挑战的方法,同时展望了Oozie的未来发展趋势。通过学习,读者能提升Oozie技术能力,为面试做好充分准备。
27 0
|
21天前
|
数据采集 消息中间件 监控
Flume数据采集系统设计与配置实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入探讨Apache Flume的数据采集系统设计,涵盖Flume Agent、Source、Channel、Sink的核心概念及其配置实战。通过实例展示了文件日志收集、网络数据接收、命令行实时数据捕获等场景。此外,还讨论了Flume与同类工具的对比、实际项目挑战及解决方案,以及未来发展趋势。提供配置示例帮助理解Flume在数据集成、日志收集中的应用,为面试准备提供扎实的理论与实践支持。
31 1
|
21天前
|
存储 分布式计算 大数据
HBase分布式数据库关键技术与实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析了HBase的核心技术,包括数据模型、分布式架构、访问模式和一致性保证,并探讨了其实战应用,如大规模数据存储、实时数据分析及与Hadoop、Spark集成。同时,分享了面试经验,对比了HBase与其他数据库的差异,提出了应对挑战的解决方案,展望了HBase的未来趋势。通过Java API代码示例,帮助读者巩固理解。全面了解和掌握HBase,能为面试和实际工作中的大数据处理提供坚实基础。
34 3
|
21天前
|
SQL 存储 分布式计算
Hive数据仓库设计与优化策略:面试经验与必备知识点解析
本文深入探讨了Hive数据仓库设计原则(分区、分桶、存储格式选择)与优化策略(SQL优化、内置优化器、统计信息、配置参数调整),并分享了面试经验及常见问题,如Hive与RDBMS的区别、实际项目应用和与其他组件的集成。通过代码样例,帮助读者掌握Hive核心技术,为面试做好充分准备。
|
21天前
|
机器学习/深度学习 SQL 分布式计算
Spark核心原理与应用场景解析:面试经验与必备知识点解析
本文深入探讨Spark核心原理(RDD、DAG、内存计算、容错机制)和生态系统(Spark SQL、MLlib、Streaming),并分析其在大规模数据处理、机器学习及实时流处理中的应用。通过代码示例展示DataFrame操作,帮助读者准备面试,同时强调结合个人经验、行业趋势和技术发展以展现全面的技术实力。
|
21天前
|
消息中间件 监控 大数据
Kafka消息队列架构与应用场景探讨:面试经验与必备知识点解析
【4月更文挑战第9天】本文详尽探讨了Kafka的消息队列架构,包括Broker、Producer、Consumer、Topic和Partition等核心概念,以及消息生产和消费流程。此外,还介绍了Kafka在微服务、实时数据处理、数据管道和数据仓库等场景的应用。针对面试,文章解析了Kafka与传统消息队列的区别、实际项目挑战及解决方案,并展望了Kafka的未来发展趋势。附带Java Producer和Consumer的代码示例,帮助读者巩固技术理解,为面试做好准备。
26 0
|
2月前
|
消息中间件 NoSQL 网络协议
Java面试知识点复习​_kaic
Java面试知识点复习​_kaic
|
13天前
|
数据可视化 Python
Python模型评估与选择:面试必备知识点
【4月更文挑战第17天】本文深入探讨了Python模型评估与选择在面试中的关键点,包括性能度量、过拟合与欠拟合识别、模型比较与选择、模型融合和偏差-方差权衡。强调了避免混淆评估指标、忽视模型验证和盲目追求高复杂度模型的常见错误,并提供相关代码示例,如交叉验证、网格搜索和超参数调优。通过理解这些概念和技巧,可在面试中展示出色的数据科学能力。
32 12