美文网首页机器学习之路
机器学习中的数学

机器学习中的数学

作者: Nefelibatas | 来源:发表于2022-02-24 20:36 被阅读0次

    数学理论的主要内容

    机器学习的各种角度和建模流程

    概率论和统计学基础概念复习

    极大似然体系和 EM 算法

    贝叶斯体系和 Variational Bayes 算法

    矩阵代数:基本概念复习和 Tensor 求导

    证明的过程:把已知的公式写出来,寻找和需要证明的公式的联系

    log单变

    交叉熵损失函数 L = -[ y log y* + (1-y) log (1 - y*) ]

    log 运算并不会影响函数本身的单调性

    极大似然

    HMM:需要背诵推导过程

    贝叶斯:用后验更新先验

    似然函数定义:θ是固定的,但是在贝叶斯里,θ 是随机的,所以写成 P(x|θ) 但还是似然函数。

    概率论

    概率论是描述随机的语言,分为朴素概率论和公理性概率论。

    主要讲朴素概率论。

    随机变量: \Omega → R的函数

    CDF累积分布函数 = \int PDF 概率密度函数\\ 已知CDF,直接求导即可得到PDF \\ 已知PDF,对其微分可得CDF

    基础知识

    一维离散:

    一维离散可以直接讨论概率

    一维离散可以假设概率取值只是整数

    P(X ≤ x) = \sum_{i≤x}^{} p(X = i), 或者用更标准的写法 P(X ≤ t) = \sum_{i≤t}^{}P(x)

    连续变量:

    连续意味着可能性至少不是有限的还是可以定义 P(X ≤ x)

    但是定义 p(x) 的时候就有问题

    PDF与CDF:

    在给定一个连续变量时,只能定义

    P(X ≤ m) = \int_{-\infty}^{m}p(x)dx

    虽然离散和连续的定义有所不同,但是积分本身就是一种非常复杂的加法

    F_X(t) := P(X ≤ t) 就是Cumulative Distribution Function(累积分布函数)

    p(x) 就是Probability Density Function(概率密度函数),不是概率值

    多维情况下:

    以二维为例:

    P(X ≤ m, Y ≤ n) = \int_{-\infty}^{m}\int_{-\infty}^{n}p(x,y)dxdy

    对于边际分布 p(x) = ∫ p(x, y)dy ( 只关心x的趋势所以对y积分 )同理p(y)也是

    条件概率 p(x|y) = p(x, y) / p(y)

    注意:在连续的情况下,PDF可以大于1,离散不行

    数学期望

    给定一个概率密度函数p(x),再给定一个函数f(x),定义数学期望(Expectation)为:

    E_p[f(x)] = \int f(x)p(x)dx

    条件数学期望:

    给定一个条件概率密度函数 p(x|y), 再给定一个函数 f(x),定义其的条件数学期望(Conditional Expectation)为:

    E_p[f(X)|Y=y]:=\int f(x)p(x|y)dx

    正态分布

    若随机变量X服从一个数学期望为μ、方差为σ^2 的正态分布,记为N(μ,σ^2)。

    其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度,当μ = 0,σ = 1时的正态分布是标准正态分布。

    一维正态分布

    若随机变量X服从一个位置参数为 µ、尺度参数为σ的概率分布,且其概率密度函数为:

    f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{\frac{-(x,\mu)^2}{2\sigma^2}}

    则这个随机变量就称为正态随机变量,正态随机变量服从的分布就称为正态分布,记作X~(μ,σ2),读作X服从N(μ,σ2) ,或X服从正态分布。

    条件概率

    P(A|B) = \frac{P(AB)}{P(B)}

    贝叶斯公式

    P(A|B) = \frac{P(B|A)P(B)}{P(B)}\\ P(A_i|B)=\frac{P(B|A_i)P(A_i)}{\sum_j P(B|A_j)P(A_j)}

    在贝叶斯法则中,每个名词都有约定俗成的名称: P(A)是A的先验概率或边缘概率。之所以称为"先验"是因为它不考虑任何B方面的因素。 P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。 P(B|A)是已知A发生后B的条件概率,也由于得自A的取值而被称作B的后验概率。 P(B)是B的先验概率或边缘概率,也作标准化常量(normalized constant)。

    手推贝叶斯公式

    p(y|x) = \frac{p(y)p(x|y)}{∫ p(x|y)p(y)dy}

    前置条件:

    p(x|y)=p(x,y)/p(y)

    p(x)=\int p(x,y)dy

    推导过程:

    \because p(x|y)=p(x,y)/p(y),

    \therefore p(y|x) =p(x,y)/p(x),p(x,y)=p(y)p(x|y)

    \therefore p(y|x)=\frac{p(y)p(x|y)}{p(x)}

    \because p(x)=\int p(x,y)dy,结合p(x,y)=p(y)p(x|y)

    \therefore p(x)=\int p(x|y)p(y)dy

    证毕。

    重点部分

    Multinomial:P(X = xi) = pi

    正态分布:

    p(x) = {\frac{1}{ σ\sqrt{2π}} }{e(^-{\frac{(x-\mu)^2}{2\sigma^2}})}\\ 或者\\ p(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{{-\frac{1}{2}}({\frac{x-\mu}{\sigma})^2}}

    其中 µ 、 σ 是参数。常常写成 X ∼ N(µ, σ^2 )

    当μ=0,σ=1时,正态分布就成了标准正态分布:

    f(x)={\frac{1}{ \sqrt{2π}} }{e^{ -\frac{x^2}{2} }}

    极大似然估计MLE:

    考虑最简单的情况,即掷一个不公平的硬币:

    每一个硬币向上的概率为p(xi),用yi = 1记载硬币向上

    就此得到硬币向下的概率为 1 − p(xi), 用 yi = 0表示

    整体观测到目前情况的概率为:

    p(x_i) ^{y_i} × (1 − p(x_i))^{(1−y_i)},这就是似然函数

    取个 log,这就是对数似然函数:

    y_ilog(p(x_i)) + (1 − y_i)log(1 − p(x_i))

    极大似然函数的基本思想:

    找到使目前似然函数最大的那个观测

    或者由于对数变换是单调变化,找到负的对数似然函数最小的那个。

    只抛一次硬币,当然没有任何做推断的价值

    现在假设抛 N 次硬币,得到观测 {x_i , yi ; i ≤ N}

    继续假定每次抛硬币的结果不影响下一次抛硬币的概率分布,即观测独立

    则似然函数为

    ∏ _i p(x_i)^{y_i}(1 − p(x_i))^{(1−y_i)}\\ P(y_i | x_i) = p^{y_i}(1-p)^{1-y_i},已知p(x_1) = p\\ 当y=1,P = p;y=0,P=1-p

    连乘带来的问题:因为如果连乘一个 0 到 1 之间的数,得到的乘积会越来越小,特别小的时候,电脑就会出现数值问题(比如说10 的负十万次方)

    如何解决数值问题?

    取个 log 即可:log(xy) = log(x) + log(y)。

    则负的对数似然函数为:

    − ∑ _i (y_i log(p(x_i)) + (1 − yi)log(1 − p(x_i)) \\

    这就是 Binary Cross Entropy交叉熵

    交叉熵是极大似然估计的一个特例。

    接下来考虑p(x_i)长什么样?

    首先,0<=p(xi)<=1

    一个常见选择:

    p(xi) = \frac{1}{1+e^{-f(x_i)}}

    如果 f(x_i) = ∑ _k β_kx_i , 其中 β_k 为未知参数(需要求解),则得到了逻辑回归的数学表达形式

    −\sum _iy_ilog(p_β(x_i)) + (1 − y_i)log(1 − p_β(xi))\\

    【注】:这种 f 的函数形式被称之为线性函数,近似于多个线性函数组合 的函数是最重要的一类函数形式。

    现在假设有 yi,服从期望为 f(x_i) 且方差为 1 的正态分布。(必须假定其概率分布)

    也就是说

    p(y_i) = \frac{1}{\sqrt{2π}} e^{\frac{−(y_i − f(x_i))^2}{2}}

    推导其对应的对数似然函数:

    -\sum _i{p(y_i)} = {-\sum _i \frac{-(y_i-f(x_i))^2}{2}} + K

    其中 K 是一个跟 f 无关的常数,所以这里最小化的距离是

    ∑ _i (y_i − f(x_i))^2,这就是最小二乘法。

    题目:x_1,..x_n服从均匀分布f[ 0,p ],p未知,求p的极大似然值\\ 均匀分布: \\ 当x_i = [1,p] \\ p(x_i) = \frac{1}{p} ;\\ 否则,p(x_i) = 0\\

    分两种情况讨论:

    当 p_{MLE} >= max_{xn}:\\ 因为极大似然\\ p_{MLE} >= max_{xn}()\\ 1/p是递减函数\\ 所以p_{MLE} = max_{xn}\\ 当p_{MLE} <= max_{xn} = 0\\

    极大似然估计

    通常情况下,在极大似然框架中如果容易推导出对数似然函数,那么求解将会非常容易。

    但是如果存在隐变量,则推导变得非常困难。

    在一些情况下,EM 算法是解决隐变量问题的一个非常通用的框架 (现实情况少见)

    EM算法

    EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(E步),另一个为极大步(M步),所以算法被称为EM算法(Expectation-Maximization Algorithm)。EM算法受到缺失思想影响,最初是为了解决数据缺失情况下的参数估计问题。

    其基本思想是:

    首先根据己经给出的观测数据,估计出模型参数的值;

    然后再依据上一步估计出的参数值估计缺失数据的值,

    再根据估计出的缺失数据加上之前己经观测到的数据重新再对参数值进行估计,

    然后反复迭代,

    直至最后收敛,迭代结束。

    考虑以下关系:用 l(θ; X) 表示对数似然函数,则 :

    I(\theta,X) = log p_\theta(X)

    =log \int p_\theta(X,y)dy //边缘分布累加x,比较难求

    =log \int \frac{p_\theta(X,y)}{p^*_\theta(y|X)}p^*_\theta(y|X)dy

    根据Jensen不等式logEX \geq Elog X,所以原式\\ \geq log \int (p_\theta(X,y))p^*_\theta(y|X)dy - \int log(p^*_\theta(y|X))p^*_\theta(y|X)dy

    =E_\theta^*[log p_\theta(X,y)|X]-E_\theta^*[log p_\theta^*(y|X)|X]

    [注]

    y是一个隐变量,θ^*是当前的估计,目标是通过迭代的方法找到下一步的估计θ。

    换句话说,因为E_\theta^*[log p_\theta^*(y|X)|x]跟 θ 没有关系,所以可以忽略。

    定义 Q(θ, θ^*) = E_\theta^*[log p_\theta(X,y)|X],则 EM 算法可以定义为;

    计算 Q(θ, θ^*);

    最大化 θ := argmax_{θ^{′}}Q(θ^′ , θ^*)

    隐马尔可夫链

    HMM 算法的估计方法称之为 Baum-Welch 算法。

    假设对于每一个观测 d 可以观测到~\{ X^{(d)}_t , 1 ≤ t ≤ T~\}。

    它的概率分布取决于隐变量z^{(d)}_t。并且该变量服从马尔可夫性质。

    因此,如果知道 t − 1 的信息,就不需要知道更早的信息,就可以得到 z^{(d)}_t 的 概率分布。

    假设 X’_s 和 z’_s 都只能取有限多个值

    我们有:

    P(z,\chi;\theta)=\prod_{d=1}^{D} (\pi_{{z_1}^{(d)}} B_{z_1^{(d)}} (x_1^{(d)}) \prod_{t=2}^T A_{{z_{t-1}^{(d)}}{z_{t}^{(d)}}} B_{z_{t}^{(d)}} (x_t^{(d)}))\\ (d) 上标表示观测 d;\\ \pi_{{z_1}^{(d)}}为初始分布;\\ A_{{z_{t-1}^{(d)}}{z_{t}^{(d)}}}为转移概率;\\ B_{z_{t}^{(d)}}(X_t^{(d)})为发射概率。

    Dynamic programming for machine learning: Hidden Markov Models

    对上式取 log 之后:

    logP(z,\chi;\theta) = \sum^{D}_{d=1}[log\pi_{{z_1}^{(d)}}+ \sum^{T}_{t=2}logA_{{z_{t-1}^{(d)}}{z_{t}^{(d)}}}+ \sum^{T}_{t=1}logB_{z_1^{(d)}}(x_t^{(d)}) ]

    放到 Q 函数中,假设目前的参数 θ^s:

    Q (θ, θ^s) = \sum_{z\epsilon Z} \sum_{d=1}^{D} log \pi_{{z}_{1}^{(d)}} P(z,\chi;\theta^s)\\ + \sum_{z\epsilon Z} \sum_{d=1}^{D} \sum_{t=2}^{T}log A_{{z_{t-1}^{(d)}}{z_{t}^{(d)}}} P(z,\chi;\theta^s)\\ +\sum_{z\epsilon Z} \sum_{d=1}^{D} \sum_{t=1}^{T}logB_{z_1^{(d)}}(x_t^{(d)}) P(z,\chi;\theta^s)\\

    加上拉格朗日乘子:

    L{(\theta,\theta^s)}:= Q(\theta,\theta^s)-\lambda_\pi(\sum^{M}_{i=1}\pi_i-1)\\ -\sum^{M}_{i=1}\lambda_{A_i}(\sum^{M}_{j=1}A_{ij}-1)\\ -\sum^{M}_{i=1}\lambda_{B_i}(\sum^{N}_{j=1}B_i(j)-1)

    基本的拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数 f(x1,x2,...) 在 g(x1,x2,...)=0 的约束条件下的极值的方法。其主要思想是引入一个新的参数 λ (即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配成与变量数量相等的等式方程,从而求出得到原函数极值的各个变量的解。

    求解Π_i

    \frac{\partial L{(\theta,\theta^s)}}{\partial \pi_i} = \frac{\partial}{\partial \pi_i}( \sum_{z\epsilon Z} \sum_{d=1}^{D} log \pi_{{z}_{1}^{(d)}} P(z,\chi;\theta^s) )-\lambda_\pi=0\\ =\frac{\partial}{\partial \pi_i}( \sum_{j=1}^{M} \sum_{d=1}^{D} log \pi_{{j}} P(z_{1}^{(d)}=j,\chi;\theta^s) )-\lambda_\pi=0\\ =\sum_{d=1}^{D}\frac{P(z_{1}^{(d)}=i,\chi;\theta^s) )}{\pi_i}-\lambda_\pi=0

    \frac{\partial L(\theta,\theta^s)}{\partial \lambda_\pi} = -(\sum^{M}_{i=1}\pi_i - 1)=0

    求解:

    \pi_i = \frac{\sum^{D}_{d=1}P(z_1^{(d)}=i,\chi;\theta^s)}{\sum^{M}_{j=1}\sum^{D}_{d=1}P(z_1^{(d)}=j,\chi;\theta^s)}\\ =\frac{\sum^{D}_{d=1}P(z_1^{(d)}=i,\chi;\theta^s)}{\sum^{D}_{d=1}\sum^{M}_{j=1}P(z_1^{(d)}=j,\chi;\theta^s)} 调换D与M的顺序\\ =\frac{\sum^{D}_{d=1}P(z_1^{(d)}=i,\chi;\theta^s)}{\sum^{D}_{d=1}\sum P(\chi;\theta^s)}\\ =\frac{\sum^{D}_{d=1}P(z_1^{(d)}=i,\chi;\theta^s)}{DP(\chi;\theta^s)}\\ =\frac{\sum^{D}_{d=1}P(\chi;\theta^s)P(z_1^{(d)}=i|\chi;\theta^s)}{DP(\chi;\theta^s)}\\ =\frac{1}{D}\sum^{D}_{d=1}P(z_1^{(d)}=i|\chi;\theta^s)\\ =\frac{1}{D}\sum^{D}_{d=1}P(z_1^{(d)}=i|X^{(d)};\theta^s)

    采用类似的方法:

    A_{ij}=\frac{\sum^{D}_{d=1}\sum^{T}_{t=2}P(z_{t-1}^{(d)}=i,z_{t}^{(d)}=j,\chi;\theta^s)} {\sum _{j=1}^{M} \sum^{D}_{d=1}\sum^{T}_{t=2}P(z_{t-1}^{(d)}=i,z_{t}^{(d)}=j,\chi;\theta^s)}\\ =\frac{\sum^{D}_{d=1}\sum^{T}_{t=2}P(z_{t-1}^{(d)}=i,z_{t}^{(d)}=j,\chi;\theta^s)} {\sum^{D}_{d=1}\sum^{T}_{t=2}P(z_{t-1}^{(d)}=i,\chi;\theta^s)}\\ =\frac{\sum^{D}_{d=1}\sum^{T}_{t=2}P(\chi;\theta^s)P(z_{t-1}^{(d)}=i,z_t^{(d)}=j|\chi;\theta^s)} {\sum^{D}_{d=1}\sum^{T}_{t=2}P(\chi;\theta^s)P(z_{t-1}^{(d)}=i|\chi;\theta^s)}\\ =\frac{\sum^{D}_{d=1}\sum^{T}_{t=2}P(z_{t-1}^{(d)}=i,z_t^{(d)}=j|X^{(d)};\theta^s)} {\sum^{D}_{d=1}\sum^{T}_{t=2}P(z_{t-1}^{(d)}=i|X^{(d)};\theta^s)}

    同理:

    B_i(j) = \frac{\sum^{D}_{d=1}\sum^{T}_{t=1}P(z_{t}^{(d)}=i,\chi;\theta^s)I(x^{(d)}_t=j)} {\sum^{N}_{j=1}\sum^{D}_{d=1}\sum^{T}_{t=1}P(z_{t}^{(d)}=i,\chi;\theta^s)I(x^{(d)}_t=j)}\\ =\frac{\sum^{D}_{d=1}\sum^{T}_{t=1}P(z_{t}^{(d)}=i,\chi;\theta^s)I(x^{(d)}_t=j)} {\sum^{D}_{d=1}\sum^{T}_{t=1}P(z_{t}^{(d)}=i,\chi;\theta^s)}\\ =\frac{\sum^{D}_{d=1}\sum^{T}_{t=1}P(z_{t}^{(d)}=i|X^{(d)};\theta^s)I(x^{(d)}_t=j)} {\sum^{D}_{d=1}\sum^{T}_{t=1}P(z_{t}^{(d)}=i,|X^{(d)};\theta^s)}

    思考: 为什么要推导P(z_{t-1}^{(d)}=i,z_t^{(d)}=j|X^{(d)};\theta^s)和P(z_t^{(d)}=i|X^{(d)};\theta^s)

    答:这两者可以用动态规划很容易求解。

    难点

    可以动态求解有效 动态求解这件事情不可能一眼看出来,甚至我们在开始推导的时候也不可能考虑到动态求解的问题。 在这个推导过程中,如果不知道我们目标是推出这两个量的表达式,则可能会在几百个可能性当中折腾很久。

    贝叶斯估计

    在上述所有的模型中,均假设有所谓的真实参数或模型,目的只是推导这个真实的模型。

    贝叶斯学派的视角不同: 假设参数是 θ,将会对其有一个 prior先验,表示为 p(θ),换句话说θ本身就是随机。

    现在得到了观测:X,目标是得到 posterior后验:p(θ|X) 即在有了观测X后更新先验结果θ。

    根据贝叶斯公式,有:

    p(\theta|X) = \frac{p(X|\theta)p(\theta)}{\int p(X|\theta)p(\theta)d\theta}

    【任务】假设 µ ∼ N(0, 1), X|µ ∼ N(µ, 1),推导 µ 的 posterior即p(µ|X):

    \because 无参数 \theta,\therefore 对\theta的积分为1,p(\mu|X)∝(正比)p(X|\mu)p(\mu)

    ∝e^{(\frac{-\mu^2}{2})}e^{\frac{-\sum_i(X_i-\mu)^2}{2}}

    与\mu无关的全部舍弃得: ∝e^{(-(\frac {N+1}{2}\mu^2)-\mu \sum_i X_i)}

    ∝e^{(-(\mu^2-\frac {2\sum_iX_i}{N+1}\mu)/(\frac{2}{N+1})}

    ∝e^{[(\mu-\frac{\sum_iX_i}{N+1})^2/\frac{2}{N+1}]}

    \mu|X - N(\frac{\sum_iX_i}{N+1},\frac{1}{(N+1)^2})。 因此,posterior也是正态分布,这称之为Conjugate Priors共轭先验

    贝叶斯方法的好处和坏处

    好处:

    很方便的处理隐变量;

    可以对不确定性进行估计

    坏处:计算麻烦 → 就目前深度学习应用来说,最方便的是变分法。

    相关文章

      网友评论

        本文标题:机器学习中的数学

        本文链接:https://www.haomeiwen.com/subject/poktrrtx.html