1. 自回归模型的优缺点

    1. 简介
      1. 上篇文章介绍了自回归模型,下面是一些它的优点和缺点,然后由此引入我们今天文章的主题,隐变量模型。
    2. 优点
      1. 容易估计最大似然,对任意数据点的概率评估相对简单;
      2. 容易训练,因为可以通过最大似然训练。
    3. 缺点
      1. 对有序性有要求;
      2. 生成时串行;
      3. 特征提取不明显。
  2. 主题是隐变量模型

    1. 隐变量介绍

      1. 什么是隐变量
        1. 以人图像为例,其中有人的发色、眼睛颜色和身高等特征,这些就是隐变量;
        2. 如果没有给定这些标签,这些隐变量都是不可观测的,模型只能看到像素x,不像我们人眼看能看的这些隐变量;
        3. 你可以用少数的潜变量就能描述出一个高维的数据集。
      2. 先上两个假设
        1. 假设Z符合标准高斯分布;
        2. 假设条件z下x的概率密度符合均值为\mu _{\theta }(z),协方差为\sum_{\theta}^{ }(z)的多元高斯分布;
        3. 样本的特征可以用p(z|x)表示即样本x的特征z的分布,不同样本,特征是不一样的;
        4. 为什么选高斯,因为只要有足够多的高斯分布,是可以构建其他任何分布的,你就理解为高斯标准分布就是数字1,1足够多是可以等于任何整数的;
        5. 好了,现在有三个分布,z、p(x|z)和p(z|x),那怎么用呢,看下面。
    2. 混合模型

      1. 高斯混合模型(GMM)
        1. 定义:由K 个不同的高斯分布“拼” 出来的概率模型,用来描述更复杂的数据分布;
        2. 不同于上面介绍的z符合标准高斯分布,GMM的z是符合离散类别分布,这由GMM的定义决定z是离散的;
        3. GMM不是用神经网络学习出\mu _{k}\sum _{k}的,而是用EM算法迭代更新出\mu _{k}\sum _{k}的;
        4. EM算法:
          1. \pi _{k} = p(z=k)
          2. \gamma _{ik} = p(z_{i } = k|x_{i})
          3. 贝叶斯公式:p(z_{i } = k|x_{i}) = \frac{p(x_{i}|z_{i}=k)p(z_{i}=k)}{p(x_{i})}
          4. p(x_{i}|z_{i}=k) = N(x_{i};\mu _{k},\sum _{k})
          5. p(x_{i}) = \sum_{k=1}^{K}p(z_{i}=k)p(x_{i}|z_{i}=k)
          6. 4和5结合推出p(x_{i}) = \sum_{k=1}^{K}\pi _{k}N(x_{i}|\mu _{k},\sum _{k})
          7. 1、3、4、6结合推出\gamma _{ik} = \frac{\pi _{k}N(x_{i}|\mu _{k},\sum _{k})}{\sum_{j=1}^{K}\pi _{j}N(x_{i}|\mu _{j},\sum _{j})}
          8. 上面就是E步,下面是M步;
          9. 用2更新1:\pi _{k}^{t+1} = \frac{1}{N}\sum_{i}^{}\gamma _{rk}^{(t)} ;
          10. 用2更新μ: \mu _{k}^{(t+1)} = \frac{\sum_{i}\gamma _{ik}^{(t)}x_{i}}{\sum_{i}{\gamma _{ik}^{(t)}}} ;
          11. 用2和μ更新\sum\sum_{k}^{(t+1)} = \frac{\sum_{i}^{}\gamma _{ik}^{(t)}(x_{i}-\mu _{k}^{(t+1)}))(x_{i}-\mu _{k}^{(t+1)})^{T}}{\sum_{i}^{}\gamma _{ik}^{(t)}}
          12. 再从7开始E步,直到上面三个参数收敛。
    3. 变分自编码器VAE

      1. 由GMM引入VAE,基于GMM修改了z的分布,改成了标准高斯即从离散变连续,参数学习也改了,不再用EM算法,而是用神经网络,这就是VAE和GMM大致的区别;
      2. 上图\mu只用了一层神经网络做演示,实践中会是多层神经网络,因为单层的拟合度太低了;
      3. 由于方差>0,\sum使用了exp,又由于协方差是对角矩阵又用了diag激活;
      4. 模型和参数有了,现在还需要误差函数,我们目标的误差函数是最大化logp_{\theta }(x),需要计算p_{\theta }(x),在VAE中只能通过求边缘积分来计算,这太昂贵了,需要找办法处理;
      5. 解决积分的一种方法是:蒙特卡洛近似
        1. 将求和转化为了均匀分布的期望,然后用样本的均值去近似期望;
        2. 理论上有用实践中效果不好,主要是因为对大多数z,p_{\theta }(x,z)非常低,,原因是p_{\theta }(x,z) = p(z)p(x|z)其中两项都是高斯分布,高斯分布的概率密度本来就低(你可以理解为正负无穷那么大范围的积分才等于1,密度能高到哪儿去),导致p_{\theta }(x,z)非常低,大概率抽样不到有效样本,导致结果被极大的低估,极不稳定;
        3. 所以最好选第二种方式,如下。
      6. 解决积分的第二种方式是:重点抽样
        1. 蒙特卡洛是用均匀分布采样,这种方式使用q(z)分布去采样,但是都是使用均值去近似期望的;
        2. 区别是现在增加了权重;
        3. 对于q的选择,应该接近p(z|x);
      7. 为什么q要接近p(z|x)?
        1. 首先我们误差函数的目标是最大化logp_{\theta }(x)
        2. 然后将其转换为期望的形式;
        3. 因为log是凹函数,因此期望的对数 >= 对数的期望,得到上图的最后结论。
        4. 根据Jensen不等式当X为常数时,logE[X] = E[logX]p_{\theta }(x,z)/q(z)是与z无关的常数,当x一定时,p_{\theta }(x,z)/p_{\theta }(z|x)=p_{\theta } (x)就是一个与z无关的常数,因此当q=p(z|x)时取等号;
    4. 变分的推断和学习

      1. E_{z\sim q(z)}[log(\frac{p_{\theta }(x,z)}{q(z)})]展开成求和的形式,直接最大化p(x)我们做不到,但是我们可以最大化可优化的它的下界ELBO。
      2. 至于怎么优化请等下篇文章;
  3. 总结一下

    1. 因为自回归模型的缺陷,我们引入了隐变量模型,并以GMM作为切入点,后从离散模型优化为连续模型引入了VAE,但是因为p(x)必须使用积分计算,太昂贵了,引入两种解决方法,一个是蒙特卡洛近似和重点抽样,前者因为抽样大概率抽不到有效样本导致结果的不稳定,后者只说到了需要通过q优化ELBO这个下界,至于怎么优化下篇文章见分晓。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐