2020/03/05 生成模型&生成学习(Generative Learning)的流程

Posted research-xiaoemo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020/03/05 生成模型&生成学习(Generative Learning)的流程相关的知识,希望对你有一定的参考价值。

在之前的学习2020/01/02 深度学习数学基础学习——朴素贝叶斯中,大概的了解了生成学习的原理,但是对算法实现的 完整流程 不够清晰,所以今天想通过对生成学习回顾,明确一下生成学习的流程框架。

学习资料:斯坦福CS229-note2-Generative Learning algorithms的1.2节

必要的概念

类别先验概率(P(c))
技术图片

类条件概率(P(vec x | c)) ,其中(vec x=(x_{1},x_{2},...,x_{m}); m为属性)(vec x)可以想象成特征向量
举例: 当类别(c)是西瓜时,1号属性值(x_{1})为4的概率。

类别后验概率(P(c|vec x) Leftrightarrow P(f_{vec heta}(vec x)|vec x) Leftrightarrow P(vec heta|vec x))(就是机器学习器)
举例: 当1号属性值(x_{1})为4时,类别(c)是西瓜的概率。

步骤提炼

  1. 我们有一个数据集,它的样本是((vec x_{1}, vec x_{2},...vec x_{i}, ..., vec x_{n})), 这些样本对应的标签是((y_{1}, y_{2}, ...,y_{i}, ..., y_{n}),其中y_{i} in {0,1})。我们可以认为这个数据集是从这样一个分布 ((随机向量 vec X, 随机变量Y)) 中采样得到的,当然这个分布我们并不知道是什么,生成学习的目的 就是要 通过 有限的数据集(观测样本) 去估计这个分布 ((随机向量 vec X, 随机变量Y)) ,从而做出后续的决策
  2. 至于为什么是联合分布 ((随机向量 vec X, 随机变量Y)) 而不是后验分布 ((随机变量Y | 随机向量 vec X)) ,这是由贝叶斯规则简化得到的:?(egin{aligned} arg max _{y} p(y | x) &=arg max _{y} frac{p(x | y) p(y)}{p(x)} =arg max_{y} p(x | y) p(y) = arg max_{y} p(x, y) end{aligned})
  3. 为了估计这个分布 (P(随机向量 vec X, 随机变量Y) <==> P(随机向量 vec X | 随机变量Y)P(随机变量Y)) ,我们需要了解(P(随机向量 vec X | 随机变量Y))(P(随机变量Y)) 都是什么。
    (P(随机变量Y)) 是类别先验概率,它可以通过统计样本中类别出现频次统计得到或者可以作为待估计参数 (phi)
    (P(随机向量 vec X | 随机变量Y)) 是类别条件概率, 它是我们的预测的关键! 由于我们事先并不知道它的分布,那我们如何对它建模呢?最简单的方法就是假设!最为一般的我们假设它服从 多元(维)高斯分布-CS229-note2-1.1节
    技术图片

  4. 根据最大后验估计,
    (egin{aligned} ellleft(phi, mu_{0}, mu_{1}, Sigma ight) &=log prod_{i=1}^{m} pleft(x^{(i)}, y^{(i)} ; phi, mu_{0}, mu_{1}, Sigma ight) =log prod_{i=1}^{m} pleft(x^{(i)} | y^{(i)} ; mu_{0}, mu_{1}, Sigma ight) pleft(y^{(i)} ; phi ight) end{aligned})
    通过最大化 (ell) 求得参数:
    技术图片

  5. 为了便于可视化,我们假设 (随机向量 vec X) 的长度(维度)为2。
    技术图片
    从图中可以看出,坐标在左下圆圈的点属于 (mu1) 的分布,坐标在右上的点输入 (mu2 的分布)。且越靠近圆心,点越密集,符合多元高斯概率密度函数的特点。

以上是关于2020/03/05 生成模型&生成学习(Generative Learning)的流程的主要内容,如果未能解决你的问题,请参考以下文章

机器学习笔记之生成模型综述监督学习与无监督学习

一句话生成3D模型,但只需2D数据训练|谷歌&UC Berkeley

清华&BAAI唐杰团队提出第一个开源的通用大规模预训练文本到视频生成模型CogVideo,含94亿超大参数量!代码即将开源!...

机器学习“判定模型”,“生成模型‘有啥区别?

深度学习:生成模型

生成模型与判别模型