人工智能/模式识别/机器学习精华专题机器学习与数据挖掘

(三)多项式分布&&分类回归问题分开讨论的原因

2020-07-17  本文已影响0人  Pan_Ziheng

Author: Pan

Date:    2020/7/17


    我们在做分类的问题时,会不禁这么想,毕竟分类问题只是回归问题的一个特例,为什么我们不能用回归的方式去设计分类问题的策略,为什么它要被拿出来讨论?

    例如经常我们能见到的:一个三类问题的Label编码成(0,0,1)(0,1,0), (1,0,0)。又或者(0.1,0.2,0.7)取输出概率最大的那个,类别为第三类。为什么我们不能直接就这个问题也约化成一个回归问题,比如:设置几个阈值,将输出的连续值按阈值划分为几类,不用ONE-HOT编码,表示还简单?

    那么问题来了,这个阈值你怎么设置,训练样本数据极度不平衡时,这个阈值设置多少比较适合潜在的你要学习的真实模型?这个阈值会不会是样本偏倚程度的函数?如果这样的话,这个阈值真的“玄学”了,也许我们可以深究一下它们之间的关系,以图使其合理,但是这是一个很麻烦的事。。。不仅麻烦,还有一些我们将要提到的一些较为隐蔽的问题。

    我们知道多项式分布是二项分布的推广,它的渐进分布高斯分布(高斯分布具体见上一篇),假设你真的按照阈值法去做了,本质上你在假设一个事情,那就是你的分布服从于高斯分布。你会说这有什么问题吗?

    那么我们一起来看看:

    首先我们快速过一下多项式分布的定义,假如我们有K类需要分:

K,n>0;A=\left\{ \vec{X}|\vec{x}=(x_{1},x_{2},...,x_{K}) \right\} ;x_{i}\geq 0;i=1,2,...K; \sum_{i=1}^{K} x_{i} =n;\forall p_{1},p_{2},...,p_{k};\\\\(p_{1}+p_{2}+...+p_{k})^{n}=\sum_{X \in A}\frac{n!}{x_{1}!x_{2}!...x_{k}!}\cdot p^{x_{1}}_{1}p^{x_{2}}_{2},...,p^{x_{k}}_{k}

其中,p_{i}均为在区间(0,1)取值的数,且\sum^{K}_{i=1}p_{i}=1;

 \vec{X}服从多项式分布,相关参数由\vec{P}=(p_{1},p_{2},...,p_{k})n组成。

所以多项式分布的概率质量函数(PMF)为:

M_{k-1}(\vec{X};\vec{P},n)=\frac{n!}{\prod _{i=1}^k x_{i}!}\prod _{i=1}^{K}p^{x_{i}}_{i};\\ \sum_{i=1}^{K} x_{i} =n;\sum^{K}_{i=1}p_{i}=1

其中,k-1为自由度。

多项式分布期望E(x_{i})=np_{i}

多项式分布方差D(x_{i})=np_{i}(1-p_{i})

多项式分布协方差Cov(x_{i},x_{j})=-np_{i}p_{j}

因此协方差矩阵为:\Sigma = n(diag(p_{1},p_{2},...,p_{n})- \vec{P}^{T}P;)

我们发现:\Sigma \cdot \vec{1}=\vec{0} \cdot \vec{1},这说明0是它的一个特征值,这个协方差矩阵是奇异矩阵。

另,我们给出该协方差矩阵是半正定矩阵的证明:

\vec{a}^{T}\cdot \Sigma \cdot \vec{a}=\sum^{K}_{i=1}a_{i}^{2}p_{i}-(\sum^{K}_{i=1}a_{i}p_{i})^{2}

由于凸性不等式:

f(\sum\theta x )\leq \sum \theta f(x)

我们令f(x)=x^{2}

所以:\vec{a}^{T}\cdot \Sigma \cdot \vec{a}\geq 0;

因此得以证明,该协方差是半正定矩阵。

我们先放一放上面关于协方差矩阵是奇异矩阵的发现,我们来看看它的边界分布

(无关乎主题,为了内容的完整性我们说一下下面内容)

边界分布

我们对\vec{X}切分,并从中取出它的一个子集\vec{X^{(m)}}=(x_{1},x_{2},...,x_{m})

\vec{X^{(m)}}\tilde{}M_{m}(\vec{X^{(m)}};\space (p_{1},p_{2},...p_{m}),n)

条件分布

B=\left\{ (X_{1}, X_{2}, ...X_{K-1})|\sum^{K-1}_{i=1}n-X_{K}\right\}

f(X_{K}|(X_{1}, X_{2}, ...X_{K-1}))=\sum_{(X_{1}, X_{2}, ...X_{K-1}) \in B}\frac{n!}{x_{1}!x_{2}!...x_{K}!}\cdot p^{x_{1}}_{1}p^{x_{2}}_{2},...,p^{x_{K}}_{K}\\=\frac{n!p^{x_{K}}_{K}}{x_{K}!(n-x_{K})!}\cdot \sum_{(X_{1}, X_{2}, ...X_{K-1}) \in B}\frac{p_{1}^{x_{1}}p_{2}^{x_{2}}...p_{K-1}^{x_{1}}}{x_{1}!x_{2}!...x_{K-1}!}\\=\frac{n!p^{x_{K}}_{K}}{x_{K}!}\cdot (p_{1}+p_{2}+...+p_{K-1})^{n-x_{K}}\\=\frac{n!}{x_{K}!(n-x_{K})!} \cdot p^{x_{K}}_{K} (1-p_{K})^{n-x_{K}}

发现这个条件分布为二项分布。

更一般的:f((X_{1}, X_{2}, ...,X_{m})|(X_{m+1}, X_{m2}, ...X_{m+K}))\\=M_{m-1}((X_{1}, X_{2}, ...,X_{m});[(\frac{p_{1}}{1-p_{K}})^{x_{1}}, (\frac{p_{2}}{1-p_{K}})^{x_{2}},..., (\frac{p_{m}}{1-p_{m}})^{x_{m}}]^{T},n-\sum_{j=1}^{m}x_{j})

  (补充内容说完了,我们进入正题)

我们设\vec{Z}=(z_{1},z_{2},...,z_{t},...,z_{s})^{T};z_{t}\tilde{}M(z_{t};p,n_{t});

所以对于每一个z_{t},均值都等于n_{t}p,方差都等于n_{t}p(1-p);

{Z}^{*}= \sum_{t=1}^{s}z_{t};那么Z^{*}\tilde{}M(Z^{*};p,\sum_{t=1}^{s}n_{t}); n=\sum_{t=1}^{s}n_{t};

Z^{*}期望为:np

协方差矩阵为:\Sigma = n(diag(p_{1},p_{2},...,p_{n})- \vec{P}^{T}P;)

继续:

那么关于分类问题,现在我们的label编码可以用one-hot编码,例如令x=(0,0,0,0,...,1),x_{i}=0 \space or\space 1;那么此时的n就为1,由于x_{i}此时的阶乘无论怎样都是1,它的PMF实际上就是\prod _{i=1}^{K}p^{x_{i}}_{i};所以可以用对数似然估计、使用这样一个PMF来构造损失函数;也就是在(一) 机器学习基本概要中提到的,二分类伯努利取对数后的那个交叉熵的推广。

根据中心极限定理,对于每个z_{t}(每个均值都是n_{t}p,方差都是n_{t}(diag(p_{1},p_{2},...,p_{n})- \vec{P}^{T}P)),我们需要考虑变量\bar{Z}= \frac{1}{n}{Z}^{*}=\frac{1}{n} \sum_{t=1}^{n}z_{t},又根据Z^{*}的分布,在n很大时,也就是我们的类别足够多时,可依分布渐近于高斯分布

\bar{Z}\tilde{}N(p,diag(p_{1},p_{2},...,p_{n})- \vec{P}^{T}P)

在(一)机器学习基本概要 中有提到,损失函数可以通过e^{- (y-\hat{f} (x))^{2}  }转化为最大后验概率;其实这个转化的形式e^{- (y-\hat{f} (x))^{2}  },就是一个高斯分布。

    也就是说,当采用最小二乘回归的方式来处理分类问题,其实是给了问题一个本不存在的数据正态假设,而且,即使n够大,采用了高斯,那么接踵而至的问题还有协方差矩阵的奇异问题,在处理奇异矩阵,我们不得不采用伪逆来算,行列式上也要对0行进行丢弃处理。当然还要加上一开始说的阈值的问题。所以假如分类和回归问题不分开,这些缺陷都很麻烦。

上一篇下一篇

猜你喜欢

热点阅读