MathForDL

Base Math Knowledge for Deep Learning

范数

具有“距离”概念的函数。一个满足半正定(非负),齐次$p(av)=ap(v)$,和三角不等性$p(u+v)\leq p(u)+p(v)$的函数我们称之为距离/半范数。而再保证 正定$p(v)=0, \text{if}\ v=\vec{0}$的额外性质,那么这个函数p就是范数。

p-norm p范数

对应Lp-Norm,也就是闵科夫斯基距离,一组距离的定义,当计算距离的时候$x=x_1-x_2$

因此当p=1的时候就是L1-Norm,就是曼哈顿距离,即所有非零数的绝对值之和

当p=2的时候就是L2-Norm,就是欧几里得距离,即所有数的平方和的开方

当p=$+\infty$的时候,就是取x中绝对值最大的那个元素的绝对值,也就是切比雪夫距离

Lasso回归 Ridge回归

Entropy

$离散随机变量 X = \{x_1,x_2,…,x_n\}, 其概率为 p_i=p(X=x_i) $

x越不可能发生,则p(x)的概率越小,而其log p(x)的值则越大,意味着信息量越大,统计每件x的概率和信息。

联合熵

对于服从联合分布为P(x,y)的一对离散随机变量(X,Y),

条件熵

Mutual Information

互信息: 度量两个随机变量的“相关性”,随机事件X的不确定性或者熵H(X),以及在知道随机事件Y条件下的不确定性(条件熵)的差异

KL Divergence/相对熵

Equation

  • 度量两个随机变量的距离
  • $D_{KL}(p||q) \neq D_{KL}(q||p)$
  • $D_{KL}(p||q) > 0$
  • 对于两个分布距离很远的分布,没有重叠时,$D_{KL}(p||q)=\sum 1\cdot \log \frac{1}{0}=+ \infin$,没有意义。

Cross Entropy

一个真实分布$p(x)$和一个非真实分布$q(x)$
要用非真实分布q(x)来表示来自真实分布p(x)的平均编码长度

我们希望生成数据和原始数据分布越接近越好,所以可以用KL散度,但又因为KL的一项只于p(x)有关,所以可以用交叉熵做loss评估模型、

%3D%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%5Cleft%5B-y%5E%7Bi%7D%20%5Clog%20h_%7B%5Ctheta%7D%5Cleft(x%5E%7Bi%7D%5Cright)%2B%5Cleft(1-y%5E%7Bi%7D%5Cright)%20%5Clog%20%5Cleft(1-h_%7B%5Ctheta%7D%5Cleft(x%5E%7Bi%7D%5Cright)%5Cright)%5Cright%5D)

Jensen-Shannon Divergence

是KL散度的一个变形

  • $JS(p||q) \in [0,1]$,相同是0,相反是1.
  • $JS(p||q) = JS(q||p)$
  • 对于两个分布距离很远的分布,没有重叠时,$JS(p||q)=\sum 1\cdot \log \frac{1}{1/2}+\sum 1\cdot \log \frac{1}{1/2}=\log 2$. 当两个分布完全等于零是,JS=0
    因此得到所以Vanilla GAN的生成器的梯度很有可能近似为0,导致梯度消失。那么
  • Vanilla GAN不稳定的原因
    • discriminator训练的太好 会导致梯度消失,generator的loss降不下去
    • discriminator训练的不好 generator的梯度不准,到处乱跑
1
2
3
4
5
def JensonShannonDivergence(p,q):
p = np.array(p)
q = np.array(q)
M = (p+q)/2
return 0.5*np.sum(p*np.log(p/M)) + 0.5*np.sum(q*np.log(q/M))

Earth-Mover Distance / Wasserstein Distance

从一个分布变换到另一个分布的最小代价

  • $\prod(p,q)$是p和q组合起来的所有可能的联合分布的集合(p的每一个搬到q的任意一个地方的组合),所以$\gamma$就是每一个可能的联合分布,
  • ||x-y||是cost,期望$\mathbb{E}_{(x,y)\sim\gamma}[||x-y||]$就是这些组合的搬运代价。
  • $\inf_{\gamma\sim\prod(p,q)}$表示下确界,即小于这组数的值中那个最大的值。