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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 机器学习:基础面试知识点

机器学习必会面试知识点

标量(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帧的数据不是每一帧都有气球,只要有一帧有气球,那么我们就认为这个数据包中有气球,只有当所有的视频的帧都没有气球,才是没有气球的,从这里学习去哪一段视频是否有气球出现称为多实例学习的问题。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
30天前
|
Android开发
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制
|
30天前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
30天前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
|
1月前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
27 3
|
1月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
1月前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
25 2
|
1月前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
49 1
|
1月前
|
Android开发
Android面试高频知识点(1) 图解 Android 事件分发机制
Android面试高频知识点(1) 图解 Android 事件分发机制
39 1
|
2月前
|
Web App开发 前端开发 Linux
「offer来了」浅谈前端面试中开发环境常考知识点
该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
「offer来了」浅谈前端面试中开发环境常考知识点
|
1月前
|
XML 前端开发 Android开发
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制
下一篇
无影云桌面