机器学习中的数学笔记

如果问你为什么要学习数学,你回答“处理数字”,那么如果问你为什么要学习音乐,你的回答会是“处理音符“吗?

1. 什么是梯度?

分析:辅导视频

:首先梯度是一个矢量,表示函数在该点处沿着梯度的方向变化最快,变化率为梯度的大小。比如对于二元函数$z=f(x,y)$,在平面区域D具有一阶连续偏导数。某点的梯度为:

\[ 某点梯度 = \frac{\partial Z}{\partial Y} + \frac{\partial Z}{\partial X}\]

形象的可以理解为跑向山顶最快的方向。

2. 什么是极大似然估计?

分析: 辅导视频

首先,概率密度函数用来描述随机变量取某个值时,取值点所对应的概率的函数。

例如下面就是一个概率分布函数

\[ f(x; \mu, \sigma) = \frac{1}{\sigma \sqrt{2 \pi}} exp(-\frac{(x - \mu)^2}{2 \sigma^2})\]

$x$是随机变量,$\mu 和\sigma$ 都是参数

其次,明确概率和似然的区别

  • 概率:是在已知一些概率分布参数的情况下,预测观测的结果。
  • 似然:是在已之观测结果的情况下,对概率分布的参数进行估值。

极大似然估计的目的在于找到一个最符合当前观测数据的概率分布

最后,进入正题,我们假设有一组观察到的数据,一共有N个,$X_{observation} = {x_1, x_2, ... , x_N}$我们将$X_observation$里的数据点带入到$f(x; \mu, \sigma)$里,得到每个数据点在我们假设概率分布中的出现的可能性。

\[P(x_1 | \mu, \sigma),P(x_2 | \mu, \sigma), ...,P(x_3 | \mu, \sigma)\]

那么这一组数据$X_{observation}$在概率分布中出现的可能性就是他们的乘积:

\[L(\mu, \sigma | X_{observation}) = P(X | \mu, \sigma) = \prod_{i=1}^{N} P(x_i | \mu, \sigma)\]

上式中,我们用$L(\mu, \sigma | X_{observation}) $表示似然函数,通过已知的观测数据点X,用似然函数来估计参数$\mu, \sigma$的可能性。由此可见似然函数也是一种条件概率函数,但是我们关注的变量变了似然函数的值越大,参数拟合的越好。

找到似然函数的极大值的过程就是极大似然估计的过程。

接下来说一下对数似然函数(log likelihood),我们对似然函数取对数,就是对数似然函数。

\[L(\mu, \sigma | X_{observation}) = \sum_{i=1}^{N} log P(x_i | \mu, \sigma)\]

  • 原因1:如果不加对数,求导需要链式法则,十分困难。而对数似然函数求导十分方便。
  • 原因2:如果不加对数,似然函数的值十分的小,太接近0了,而对数似然函数,把接近于0的数,变成很大的负数,方便计算。
  • 原因3:对似然函数取对数,并不改变函数原来极大值的位置。

:极大似然估计就是使用已观测数据,来计算其全部数据一起出现的概率,最终找到一组最符合当前观测数据分布的参数。通常我们要对似然函数取对数,来方便我们的计算。

3. 什么是中心极限定理与大数定律?

分析参考资料辅导视频

  • 中心极限定律是指:给定一个任意分布的总体,每次从总体中随机取出n个样本,一个抽取m次。把这m组样本分布求平均值,这些平均值的分布接近正太分布。
  • 大数定律是指:在随机试验中,每次出现的结构不同,但是大量试验的结果的平均值总是接近某个确定的值。

大数定理揭示了大量随机变量的平均结果,但是没有涉及到随机变量的分布问题。而中心极限定律说明,大量独立随机变量的平均值是以正太分布为极限的。

大数定律描述的是频率稳定性,而中心极限定理描述的是分布的稳定性。

4. 什么是点估计,什么是矩估计?

分析参考资料

  • 点估计:用样本来估计参数值为点估计,如果估计的是参数的一个区间则为区间估计。

  • 矩估计:用样本矩来替换总体距,例如使用样本均值估计总体均值$/mu$。(参考资料的30页)

5. 什么是矩阵的秩?

分析:参考视频

:K阶子式不为0,K+1阶子式全为0,则矩阵的秩为k。几何意义就是经过线性变化后空间的维度,矩阵的秩就是矩阵中最精简的信息的多少。

6. 矩阵乘以向量的意义是什么?

分析参考视频

:一个矩阵右乘一个向量,相当与对该向量做一个特定的线性变化,例如下面这个等式:

\[ \left[ \begin{matrix} a & b \\ c & d \end{matrix} \right] * \left[ \begin{matrix} x \\ y \end{matrix} \right] = x \hat{i} + y \hat{j} = x \left[ \begin{matrix} a \\ c \end{matrix} \right] + y \left[ \begin{matrix} b \\ d \end{matrix} \right] = \left[ \begin{matrix} ax+by \\ cx+dy \end{matrix} \right] \]

下面这个等式的意思是,对于一个二维空间上的向量,开始时基向量\(i=\left[ \begin{matrix} 1 \\ 0 \end{matrix} \right],j=\left[ \begin{matrix} 0 \\ 1 \end{matrix} \right]\)经过一个线性变化后,基向量\(i=\left[ \begin{matrix} a \\ c \end{matrix} \right],j=\left[ \begin{matrix} b \\ d \end{matrix} \right]\)后原本空间中的向量\(\left[ \begin{matrix} x \\ y \end{matrix} \right]\),将会变成\( \left[ \begin{matrix} ax+by \\ cx+dy \end{matrix} \right]\),所以说矩阵右乘一个向量相当与对向量作一个线性变换。

如果说一个矩阵乘以一个矩阵的意义是什么,则可以理解为两次线性变化的复合。

7. 行列式的意义:

分析参考视频

:通过线性变换之后空间中物体变换的大小(二维是面积,三维是体积)。例如行列式\( \left[ \begin{matrix} 2 & 0 \\ 0 & 3 \end{matrix} \right] = 6\)表示通过这个线性变换,空间中的所有物体的面积将会增加6倍。行列式为0说明整个空间被压缩到了一条线上。

扩展:证明公式|A||B|=|AB|?

:|A|表示经过线性变换A后基向量所围成的面积,|B|表示经过线性变换B后基向量所围成的面积。|A||B|表示基向量通过线性变换A会有一个面积det(A) = S,然后在对S倍的基向量进行线性变换B会得到一个面积。而|AB|表示基向量先经过线性变化A,然后在经过线性变化B后所围成的面积。其中两者都是在普通空间对面积为|A|图形做一个线性变化B,所有变换之后的面积是相等的。

8. 矩阵的逆是什么:

分析参考视频

:矩阵的逆的定义是:$ A*A^{-1}=E$ 则称$A^{-1}$是矩阵A的逆 ,从线性变量的角度来看就是原空间可以通过线性变换A进行变换到空间B,然后通过线性变换$A^{-1}$可以将空间B变换到原来的空间。

Tip

下面的东西,是一些流水帐,建议读者止步!

其他

1. 大数据带来的思维方式的三个转变是:

全样而非抽样,效率而非精确,相关而非因果

全样而非抽样:人们处理的数据从样本数据变成全部数据;

效率而非精确:由于是全样本数据,人们不得不接受数据的混杂性,而放弃对精确性的追求

相关而非因果:人类通过对大数据的处理,放弃对因果关系的渴求,转而关注相关关系

2. 大数据的4V特性

数据量大,种类多,价值密度低,处理速度快

3. Apriori算法

核心思想:

  1. 任何一个频繁项集的子集必是频繁项集 {西瓜、冬瓜、南瓜}是频繁项集 => {西瓜、冬瓜}是频繁项集

  2. 如果一个集合是不频繁的,其超集必然是不频繁的 {牛奶}不是频繁项集 => {牛奶、鸡蛋}不是频繁项集

辅导视频

4. 数据挖掘分析常用的方法

分类,聚类,关联规则挖掘,时间序列分析,异常点挖掘

5. 数据挖掘的步骤

问题定义、数据获取、数据清洗、特征选择、模型建立、模型评估

6. Hadoop特性

  1. 具有很高的可靠性,多台机器构成集群,部分机器发生故障,剩余机器可以继续对外提供服务
  2. 具有很高高效性,成百上千台机器一起计算,作为一个整体来分布式并行处理,所以它可以非常高效地处理海量分布式数据集
  3. 具有很好的可扩展性,在一个Hadoop集群里,可以不断的往集群中增加机器
  4. 成本低,Hadoop可以采用普通PC机来构成一个集群
  5. 支持多种语言来完成Hadoop应用程序的开发
  6. 运行在linux平台上
  7. 高容错性 具有数据副本,不宜出错

7. 单机模式和伪分布模式的异同点

相同点:实际上都是在一台主机,Hadoop的功能一致

不同点:单击模式Hadoop没有守护进程,伪分布式是在一台主机上模拟多台主机。

8. Hadoop知识点

Hadoop的核心就是分布式文件系统HDFS和分布式编程计算MapReduce

Hbase是分布式数据库

Spark内存计算

9. 试述HDFS中的名称节点和数据节点的具体功能。

名称节点简单来说最主要的功能就是:名称节点记录了每个文件中各个块所在数据节点的位置信息

名称节点的所有功能: 1. 存储元数据 2. 元数据保存在内存中 3. 保存文件block,datanode之间的映射关系

数据节点的所有功能:1. 存储文件内容 2.文件内容保存在磁盘中 3. 维护了block id 到 datanode 本地文件的映射关系

10. 试述HDFS的冗余数据保存策略。

  1. 第一个副本:放置在上传文件的数据节点
  2. 第二个副本:放置在与第一个副本不同的机架的节点上
  3. 第三个副本:与第一个副本相同机架的其他节点上

11. 试述HDFS是如何探测错误发生以及如何进行恢复的。

  1. 如果名称节点出错,整个HDFS实例将失效

HDFS设置了备份机制,把这些核心文件同步复制到备份服务器SecondaryNameNode上。当名称节点出错时,就可以根据备份服务器SecondaryNameNode中的FsImage和Editlog数据进行恢复。

  1. 探测数据节点出错和恢复措施

每个数据节点会定期向名称节点发送“心跳”信息,向名称节点报告自己的状态。

恢复:而名称节点一旦发现某个数据块的副本数量小于冗余因子,就会启动数据冗余复制,为它生成新的副本。

  1. 探测数据出错和恢复措施

使用校验码进行校验

客户端在读取到数据后,会对数据块进行校验,以确定读取到正确的数据。在文件被创建时,客户端就会对每一个文件块进行信息摘录,并把这些信息写入到同一个路径的隐藏文件里面。

当客户端读取文件的时候,会先读取该信息文件,然后,利用该信息文件对每个读取的数据块进行校验,如果校验出错,客户端就会请求到另外一个数据节点读取该文件块,并且向名称节点报告这个文件块有错误,名称节点会定期检查并且重新复制这个块。

HBase习题

  1. HBase 是列式数据库,不是关系数据库

  2. get:通过表名、行、列、时间戳、时间范围和版本号来获得相应单元格的值

  3. HBase三级寻址 ZooKeeper文件,ROOT表,META表 $=\gt$ 用户数据

计算机网络

1. TCP三次握手

  1. 主机A -> (SYN) 主机B
  2. 主机A <- (ACK) 主机B
  3. 主机A -> ACK 主机B

2. 四次挥手

  1. 主机A -> (FIN) 主机B
  2. 主机A <- (ACK) 主机B
  3. 主机A <- (FIN) 主机B
  4. 主机A -> (ACK) 主机B

计算机组成原理

常见问题链接

Kruskal和prim算法的大致过程

Kruskal算法(时间复杂度ElogE,E边数):

  1. 对所有边进行排序
  2. 不断挑一个最小权重的边进行判断
  3. 如果不连通,加入这条边。如果联通,不加入
  4. 直到有顶点减一条边

Prim算法(NN,N点数):

  1. 随机选取一个点
  2. 选择离他最近的点,然后加上边
  3. 不断选择距离最近的点,然后加上边

哈密顿图和欧拉图定义

哈密顿图:每个点只经过一次

欧拉图:每个边只经过一次

怎么判断链表有环

快慢指针,一个指针走一步,一个指针走两步,看会不会相遇

在什么情况下,极值就是最值?

当函数有唯一极值时,极值就是最值。

源码,反码,补码之间的关系?

正数:源码=反码=补码

负数:源码, 反码=源码(除符号位之外,全部数字取反),补码=反码+1

泰勒公式意义

如何在x0点附近,使用一个多项式函数去近似一个复杂函数

什么是极大无关组?

对于向量组A来说,选择r个向量组成向量组$A_{0}$满足,r个向量线性无关,r+1个向量线性相关,则称向量$A_{0}$是向量组A的一个极大线性无关组。

说说条件概率、全概率公式、贝叶斯公式?

参考资料

条件概率:$P(A|B) = \frac{P(A \cap B)}{P(B)}$ 意义为:添加一个条件后,事件发生的概率。

全概率公式:$P(C) = \sum_{i}^{n} p(L_i)P(C|L_i)$ 意义为:达到某个目的有多种方式,为到达目的的概率是多少?

贝叶斯公式:$P(L_k | C) = \frac{P(C | L_k) P(L_k)}{P(C)}$ 意义为:当已知结果后,问导致该结果的第i原因是的可能性是多少?

操作系统的调度算法?

  1. 先来先服务
  2. 短作业优先
  3. 时间片论转