机器学习——面试问题(未完待更)

Q1. 交叉熵公式

交叉熵主要用于度量两个概率分布间的差异性信息。

在信息论中,交叉熵是表示两个概率分布p,q,其中p表示真实分布,q表示非真实分布。在相同的一组事件中,用非真实分布q来表示某个事件发生所需要的平均比特数。从这个定义中,我们很难理解交叉熵的定义。下面举个例子来描述一下:

假设现在有一个样本集中两个概率分布p,q,其中p为真实分布,q为非真实分布。假如,按照真实分布p来衡量识别一个样本所需要的编码长度的期望为:

H ( p ) = i p i l o g ( 1 / p i ) H(p) = \sum_i p_i \cdot log(1/p_i)

但是,如果采用错误的分布q来表示来自真实分布p的平均编码长度,则应该是:

H ( p , q ) = i p i l o g ( 1 / q i ) H(p,q) = \sum_i p_i \cdot log(1/q_i)

此时就将 H ( p , q ) H(p,q) 称之为交叉熵

交叉熵的计算方式如下:

H ( p , q ) = i p i l o g ( 1 / q i ) H(p,q) = \sum_i p_i \cdot log(1/q_i) (离散)

H ( p , q ) = x p ( x ) l o g q ( x ) d x = E p [ l o g Q ] H(p,q) = -\int_x p(x)logq(x)dx = E_p[-logQ] (连续)

应用

扫描二维码关注公众号,回复: 10478328 查看本文章

交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量p与q的相似性。

在特征工程中,可以用来衡量两个随机变量之间的相似度。

将交叉熵引入计算语言学消岐领域,采用语句的真实语义作为交叉熵的训练集的先验信息,将机器翻译的语义作为测试集后验信息。计算两者的交叉熵,并以交叉熵指导对歧义的辨识和消除。

相对熵与交叉熵

相对熵也成为KL散度,定义为

D K L ( p q ) = x p ( x ) l o g p ( x ) q ( x ) = x p ( x ) l o g q ( x ) ( x p ( x ) l o g p ( x ) ) = H ( p , q ) H ( p ) D_{KL}(p||q) = \sum_xp(x)log\frac{p(x)}{q(x)} \\ = -\sum_x p(x)logq(x) - (-\sum_x p(x)logp(x)) \\ =H(p, q) - H(p)

在机器学习中,训练数据的分布已经固定下来,那么真实分布的熵 H ( p ) H(p) 是一个定值,最小化相对熵等价于最小化交叉熵

Q2. 神经网络为啥不用拟牛顿法而是用梯度下降?(为什么深度学习不用二阶的优化算法?)

(1) 计算量的问题
如果优化问题是 n 维的,那么单轮梯度下降的复杂度为 O ( n ) O(n) ,Quasi-Newton 是 O ( n 2 ) O(n^2) ,Newton method 是 O ( n 3 ) O(n^3) 。在神经网络中, n 通常是个不小的数字,虽然 Newton method迭代次数远少于梯度下降,但是也无法弥补单轮复杂度上的巨大劣势

(2) 解的精度的问题
首先指出,机器学习问题不需要高精度解

忽略常数系数以及与这儿无关的项,泛化误差可以理解为

+ 当前模型最优解的泛化误差(统计误差) + 优化误差

而第一项只与模型的选择、数据的分布、数据量的大小等相关,完全独立于优化算法。因此,当优化误差已经远低于统计误差时,继续优化带来的实际收益非常小,对整个泛化误差的影响很可能微乎其微

(3)稳定性的问题
越简单的东西往往越鲁棒,对于优化算法也是这样。

神经网络优化有三个问题:大数据(样本多), 高参数,非凸。而 Newton 和 Quasi-Newton 在凸优化情形下,如果迭代点离全局最优很近时,收敛速度快于梯度下降。非凸情形下,Newton 和 Quasi-Newton 会被鞍点吸引,故而每一步迭代可能不降反升。

Q3.为什么决策树之前用PCA会好一点

考虑下图中的大量数据点。如果要求我们画出一条直线,这条线要尽可能覆盖这些点, 那么最长的线可能是哪条?在上图中 , 3条直线中B 最长 。在PCA中,我们对数据的坐标进行了旋转,该旋转的过程取决于数据的本身。第一条坐标轴旋转到覆盖数据的最大方差位置,即图中的直线B 。数据的最大方差给出了数据的最重要的信息。
在这里插入图片描述

在选择了覆盖数据最大差异性的坐标轴之后,我们选择了第二条坐标轴。假如该坐标轴与第一条坐标轴垂直, 它就是覆盖数据次大差异性的坐标轴。这里更严谨的说法就是正交(orthogonal)。在上图中, 直线 C 就是第二条坐标轴。利用PCA,我们将数据坐标轴旋转至数据角度上的那些最重要的方向。

我们已经实现了坐标轴的旋转,接下来开始讨论降维。 坐标轴的旋转并没有减少数据的维度。
在这里插入图片描述
考虑上图中的3个不同的类别,如果使用决策树区分这3个类别。决策树每次都是基于一个特征来做决策的。我们会发现,在 x 轴上可以找到一些值,这些值能够很好地将这3个类别分开。这 样 ,我们就可能得到一些规则,比 如 当 x < -6 时 ,数据属于类别0

发布了152 篇原创文章 · 获赞 22 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_38204302/article/details/104571001