Machine Learning Notes I - Introduction & Math Review

SVD, MLE, Entropy

All modern machine learning algorithms are just nearest neighbors. It’s only that the neural networks are telling you the space in which to compute the distance.

Linear Algebra

Woodbury Identity

(A+UCV)1=A1A1U(C1+VA1U)V1

其中

ARn×n,CRk×k,kn

如果 A 的逆很好算,那这样变换会大大降低计算量。

Matrix Derivatives

向量 / 标量

f(x+Δ)=f(x)+fxΔ+o(Δ) f=(fx)

所以假设说 f:RnR,我们就应该有

fx=[fx1fx1fxn]R1×nf=(fx)=[fx1fx1fxn]Rn

标量 / 矩阵

同样的,对于 f:Rm×nR,我们有:

(fX)ij=fXji

酱紫

f(X+Δ)=f(X)+Tr(fXΔ)+o(Δ)

Jacobian: 向量 / 向量

假设函数是 z:RdRk,我们想要有

z(x+Δ)=z(x)+J(z)Δ+o(Δ)

所以其实我们可以看成是 z 的每行单独拆开来嘛,也就是

J(z)=zx=[z1xz2xzkx]=[z1x1z1x2z1xdz2x1z2x2z2xdzkx1zkx2zkxd] [J(z)]ij=(zx)ij=zixj

Hessian: 二阶导

对于函数 f:RnR,我们想要求二阶导

f(x+Δ)=f(x)+2f(x)Δ+o(Δ)

所以其实就是

H(f)=2f(x)=[J(f(x))]=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2]

Derivative Rules

我们先来算 x(AB),考虑到

[x(AB)]ij=x(AB)ij=xkAikBkj=k(AikxBkj+AikBkjx)=AxB+ABx

A1A=I 代入上式可以得到

xA1=A1AxA1

SVD

Notes

A=UΣV=i=1min{m,n}σiuivi

Compute largest k singular values and vectors: O(kmn).

Approximation:

A^=i=1kσiuivi=UkΣkVk

For all rank k matrices B:

AA^FABF

Calculus of Variations

变分法中,我们考虑的是对于一个函数的函数 F(f)f 稍稍改变,F 就会稍稍改变:

F[y(x)+ϵη(x)]=F[y(x)]+ϵδFδy(x)η(x)dx+O(ϵ2)

假设

F[y]=G(y(x),y(x),x)dx

那么

δFδy(x)η(x)dx=

Maximum Likelihood Estimation

Maximum likelihood estimation:

θ^=argmaxθΘp(Dθ)

Properties:

  1. Consistency: more data, more accurate (but maybe biased).
  2. Statistically efficient: least variance.
  3. The value of p(DθMLE) is invariant to re-parameterization.

Entropy

要搞一个 “degree of surprise” 函数 h(p(x)),满足:

  1. h(p)0;
  2. h(p)=0p=1;
  3. xyh(p(xy))=h(p(x))+h(p(y));
  4. h(p1)>h(p2)p1<p2.

根据 3 我们有

h(p1p2)=h(p1)+h(p2)

如果我们令 f(logp)=h(p) 的话,我们有

f(logp1+logp2)=f(logp1)+f(logp2)

所以 f(p) 是一个线性函数。又因为 f(0)=0,所以 f(x)=cxc>0 因为 f 要单调递减且非负。

所以

h(p(x))=clogp(x)

通常我们取 c=1c=1log2。这边就不管了都写成 logp(x) 了。

于是我们定义

H(x)=E[h(p(x))]=p(x)logp(x)

当然因为 entropy 是从物理来的,他也有一定物理意义。就是我们考虑有 N 个东西,k 个状态。第 i 个状态有 ni 个。那么可能的排列数量为

W=N!ni!

我们考虑定义 HN 时候的状态

H=limN1NlogW=limN(niNi)log(niN)

其中用到了 Stirling’s approximation

logn!=nlognn+O(logn)

那啥时候 H 最大捏?

Footnotes