Learning From Data——Hypothesis Testing

上周讲的内容,和之前一样,从无到有推出来一堆东西。老师在白板上写Statistical Learning, Hypothesis Testing,当然是有关系的,但是这届课讲得内容应该只是上述二者的一小部分。比较神奇的是,最后竟然推到了VC Divergence。Amazing! ## Binary Hypothesis Testing ##

假设Y={0,1}Y = \{0,1\},数据是以P(X|Y=0)P(X|Y=0)或者P(X|Y=1)P(X|Y=1)生成(iid)出来。

定义下面的表示: PX(X)=P(X|Y=0),QX(X)=P(X|Y=1)P_X(X) = P(X|Y=0),Q_X(X) = P(X|Y=1)

我们观察的是一个数据序列X={x1,x2,...,xn}XnX=\{x_1,x_2,...,x_n\} \in X^n,长度为n的序列,判断它是以哪个hypothesis生成的(H0H_0或者H1H_1).其中: $$ H_0: X~iid,P_X(X) = P(X|Y=0),P_0 = P(Y=0);\\ H_1: X~iid,Q_X(X) = P(X|Y=1),P_1 = P(Y=1). $$ 上式中,P,P1P_0,P_1为先验分布(Prior Distribution)。

要做到这件事,我们需要做的就是最小化做出错误决定(decision error probability)的概率。

如何做出决定其实不难理解,由下面的式子: $$ P[H_0|(x_1,...,x_n)] > P[H_1|(x_1,...,x_n)] \rightarrow H_0;\\ P[H_0|(x_1,...,x_n)] < P[H_1|(x_1,...,x_n)] \rightarrow H_1.\\ $$ 不过这个想要从数据中计算出这个值并不容易,而想要计算出P[(x1,...,xn)|H0]P[(x_1,...,x_n)|H_0]是很容易的。还好我们有贝叶斯公式(Bayes’s Rule): P[H0|(x1,...,xn)]=PX(x1)...PX(xn)P0P(x1,...,xn) P[H_0|(x_1,...,x_n)] = \frac{P_X(x_1)...P_X(x_n)P_0}{P(x_1,...,x_n)} 同理我们可以得到: P[H1|(x1,...,xn)]=QX(x1)...QX(xn)P1P(x1,...,xn) P[H_1|(x_1,...,x_n)] = \frac{Q_X(x_1)...Q_X(x_n)P_1}{P(x_1,...,x_n)}

根据这个来决定哪个Hypothesis,称为MAP Decision Rule。最后我们整理一下得到: $$ \frac{P_X(x_1)}{Q_X(x_1)}...\frac{P_X(x_n)}{Q_X(x_n)} > \frac{P_1}{P_0} \rightarrow H_0;\\ \frac{P_X(x_1)}{Q_X(x_1)}...\frac{P_X(x_n)}{Q_X(x_n)} < \frac{P_1}{P_0} \rightarrow H_1. $$ 为了简化,我把上面两行写成一行,大于或者小于写成??.

学习机器学习到现在,对于上面的式子第一个反应当然是加log\log,得到log-likelihood function: i=1nlogPX(xi)QX(xi)?logP1P0 \sum_ {i=1}^n \log \frac{P_X(x_i)}{Q_X(x_i)} ? \log \frac{P_1}{P_0}

这时候我们得到一个minimal sufficient statistic.

所以在已知PX(X),QX(X),P0,P1P_X(X),Q_X(X),P_0,P_1的情况下,这个问题是很好解决的。

M-Hypothesis Testing

我们将上面的2元情况拓展到MM元,实际上这个结果并没有什么改变。

现在假设Y={1,...,M}Y = \{1,...,M\},我们有下面的Hypothesis:

Hypothesis x PX|Y(X|Y=?)P_ {X\vert Y}(X\vert Y=?) P(Y=?)P(Y=?)
H1H_1 x̃iidx\tilde{} iid P1(X)P_1(X) $ P_1$
\vdots \vdots \vdots \vdots
HMH_M x̃iidx\tilde{} iid PM(X)P_M(X) $ P_M$

计算P[Hi|(x1,...,xn)]P[H_i|(x_1,...,x_n)],而实际上: P[Hi|(x1,...,xn)]=Pi(xi)...Pi(xn)P(Y=i)P(x1...xn) P[H_i|(x_1,...,x_n)] = \frac{P_i(x_i)...P_i(x_n)P(Y=i)}{P(x_1...x_n)}

接下来的步骤和之前一样,注意在做决定的时候选择的策略一样有OVA,OVO两种。上面介绍的这种算是OVA。

Error Probability Of Optimal Decision

就二元的情况来说,发生的错误可能有两种: * Type 1: H0H_0是对的,选择了H1H_1 * Type 2: H1H_1是对的,选择了H0H_0

这两种不同类型的错误在不同的场景下有不同的名字。

为什么会选错?实际上选错是因为,它是由H0H_0生成的,但是它却更像H1H_1生成的,也就是经验分布是Qx(X)Q_x(X),而实际分布是PX(X)P_X(X)。因此出现错误Type 1的概率为: P(empirical distribution of (x1,...,xn) is Qx|x1,...,xñPx) P(\text{empirical distribution of }(x_1,...,x_n)\text{ is }Q_x|{x_1,...,x_n}\tilde~P_x)

如何计算上面的概率?我们考虑的是当nn非常大的时候比较理想的情况。这时候,如果Hypothesis 1是正确的,假如XX有k个取值分布为1到k,定义qi=QX(i)q_i = Q_X(i),则序列中出现i的个数的期望值为nqinq_i,而Hypothesis 2滋生出这样序列的概率为: P=i=1kPxnqi(i)=ei=1knqilogPx(i) P = \prod_ {i=1}^kP_x^{nq_i}(i) = e^{\sum_ {i=1}^k nq_i \log P_x(i)}

一共又有多少种这样可能的序列?答案是: Cnnq1Cnnq1nq2...Cnnq1...nqk1nqk=n!(nq1)!...(nqk)!2πni=1k2πnqiαnn(nq1)nq1...(nqk)nqkβ \begin{align} C_n^{nq_1}C_ {n-nq_1}^{nq_2}...C_ {n-nq_1-...-nq_ {k-1} }^{nq_k} &= \frac{n!}{(nq_1)!...(nq_k)!}\\ &\approx \underbrace{\frac{\sqrt{2\pi n} }{\prod_ {i=1}^k \sqrt{2\pi n q_i} } }_ {\alpha}\cdot \underbrace{\frac{n^n}{(nq_1)^{nq_1}...(nq_k)^{nq_k} } }_ {\beta} \end{align}

从(1)到(2),是使用了Stirling’s Formula: n!2πn(ne)n. n! \approx \sqrt{2\pi n} (\frac{n}{e})^n.

在(2)中,由于α\alphaβ\beta相比之下几乎是可以忽略的,因此我们专注于后者: β=nn(nq1)nq1...(nqk)nqk=1q1nq1...qknqk=exp(i=1knqilogqi)=enH(Q) \begin{aligned} \beta &= \frac{n^n}{(nq_1)^{nq_1}...(nq_k)^{nq_k} }\\ &= \frac{1}{q_1^{nq_1}...q_k^{nq_k} }\\ &= \exp(-\sum_ {i=1}^k nq_i\log q_i)\\ &= e^{nH(Q)} \end{aligned}

非常神奇,一个熵出现了。

因此我们可以得到: P(empirical distribution of (x1,...,xn) is Qx|x1,...,xñPx)=β×P=exp(i=1knqilogqi)exp(i=1knqilogPx(i))=exp(ni=1kqilogqi+ni=1kqilogPx(i))=exp(ni=1kqilogqiPx(i))=exp(nD(QxPx)) \begin{aligned} &P(\text{empirical distribution of }(x_1,...,x_n)\text{ is }Q_x|{x_1,...,x_n}\tilde~P_x)\\ &= \beta \times P\\ &= \exp(-\sum_ {i=1}^k nq_i\log q_i) \cdot \exp(\sum_ {i=1}^k nq_i \log P_x(i))\\ &= \exp(-n\sum_ {i=1}^k q_i\log q_i + n\sum_ {i=1}^k q_i \log P_x(i))\\ &= \exp(-n\sum_ {i=1}^k q_i\log \frac{q_i}{P_x(i)})\\ &= \exp(-n D(Q_x\Vert P_x)) \end{aligned}

KL-Divergence出现了!这个就是Chernoff Stein Lemma: 给定错误2α\leq \alpha,则错误1~$ (-n D(Q_xP_x))$. 实际的数学推导是非常复杂的,这里只是大概给个直观的解释。详细请参考: Chernoff-Stein Lemma

这更像是一节信息论的课。