VAE:变分推断、MC估计和重要性采样
+VAE:变分推断、MC估计和重要性采样
本文将从表征学习的角度以及隐变量模型的角度探讨VAE模型
隐变量的意义
@@ -124,12 +124,12 @@隐变量的意义
在重要性采样的语境下, -
Categories - Rick Universe +Categories - Rick Universe diff --git a/content.json b/content.json index 4740381..0bdbd49 100644 --- a/content.json +++ b/content.json @@ -1 +1 @@ -{"posts":[{"title":"深度学习中的正则化","text":"最近在看集成学习,集成学习中对基学习器的要求是和而不同,及满足两个条件:误差 \\(\\epsilon <0.5\\)且具有多样性,由此引出一系列多样性方法,其和正则化非常类似。借助课上提到的框架对正则化进行梳理。并且试图统一绝大部分ml和dl的正则化方法 1.正则化的定义 正则化:旨在通过对学习算法的修改,减少泛化误差(而不是训练误差,并且可能以提高训练误差为代价) 2.正则化的背景:方差与偏差,欠拟合与过拟合 统计学中的过拟合欠拟合:对应模型的小偏差大方差 方差偏差 模型训练中的过拟合:训练刚开始的时候,训练误差和测试误差都下降。在到达一个临界点之后,训练集的误差下降,测试集的误差上升了,这个时候就进入了过拟合区域 过拟合欠拟合 3.正则化的分类 3.1 对输入样本 对输入样本扰动敏感的学习器:神经网络,决策树等 对输入样本扰动不敏感的学习器:线性学习器,支持向量机(这俩都是线性分类器),朴素贝叶斯,k近邻 数据增强: 数据扰动(噪声) 3.2 对输入属性 Bagging 降维:PCA,SVD,AutoEncoder,LDA 特征选择 3.3 对输出属性 label smooth Dropout 3.4 对模型参数 L1正则化 L2正则化 SVM中的松弛变量 参数共享(CNN,RNN) 3.5 对模型训练 半监督学习 多任务学习 提前终止 对抗训练 知识蒸馏 多级别监督loss Reference 正则化详解 正则化总结的比较好比较全面的文章","link":"/2023/09/13/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%AD%E7%9A%84%E6%AD%A3%E5%88%99%E5%8C%96/"},{"title":"VAE:变分推断、MC估计和重要性采样","text":"本文将从表征学习的角度以及隐变量模型的角度探讨VAE模型 隐变量的意义 VAE从概率密度估计的角度来说是一种mixture model 基本的高斯混合模型写做: \\(p(x) = \\sum_{i=1}^{k} w_i \\mathcal{N}(x | \\mu_i, \\Sigma_i)\\) 其中的i是指第i个高斯分布,\\(u_i\\)和\\(\\Sigma_i\\)指的是第i个高斯分布的均值和方差 但是高斯混合模型的拟合能力是有限的,假如我们用一簇无穷多的高斯分布来拟合最终的分布, 那这个拟合能力不久非常好了吗?怎么去建模这个无穷多(infinite)的分布呢? image-20240426131217788 这图摘自S9868 Deep learning课程,非常形象的展示了混合模型做了什么:用高斯分布把数据流形填满 怎么做无限混合呢?VAE给出的解答是把累加变成了积分 \\(p_{\\theta}(x) = \\int_{z} \\mathcal{N}(x; g_{\\theta}(z), \\Sigma_{\\theta}(z)) \\mathcal{N}(z; 0, I) dz\\) 也即是假设混合高斯的权重符合一个分布,属于隐变量\\(z\\),并且我们的高斯分布是隐变量参数化的结果,即式中的条件分布,分别参数化了高斯分布的均值\\(g_{\\theta}\\)和方差\\(\\Sigma_{\\theta}(z))\\) image-20240426131714727 S9868 也给出了无限混合的感性可视化,参数化帮助我们的mixture model更加的flexible了,能自己学习怎么去填满这个数据流形。 这里的\\(P(z)\\)和\\(P_\\theta(x|z)\\)都假设的高斯分布,当然我们也能make an infinite mixture of the autoregressive distribution and so on. ,从这个角度来说mixture分布是meta model 可以用其他的密度估计模型替代 这个概率摸底建模是一个积分的无穷项,这里我们需要用到统计学的一个基本技术,用MC采样来估计这个积分 \\(p_{\\theta}(x) = \\int p_{\\theta}(x|z)p_z(z)dz = \\mathbb{E}_{z \\sim p_z(z)}[p_{\\theta}(x|z)] \\approx \\frac{1}{M} \\sum_{i=1}^{M} p_{\\theta}(x|z^{(i)}), \\quad z^{(i)} \\sim p_z\\) MC采样的直观理解是求平均值的这个过程本身就蕴含了采样过程 当我们概率建模有了,接下来就是计算极大似然来优化参数! \\(E_{x \\sim p_{data} }log P_{\\theta}(x)\\) 极大似然认为最优的分布参数是一个定值,因此我们把数据扔进去优化一个maximal的似然值 \\(\\theta^* = \\underset{\\theta}{\\arg\\min} \\frac{1}{M} \\sum_{i=1}^{N} \\log \\left( \\sum_{j=1}^{M} \\mathcal{N}\\left(x^{(i)}; g_{\\theta}^{\\mu}\\left(z^{(j)}\\right), g_{\\theta}^{\\Sigma}\\left(z^{(j)}\\right)\\right) \\right)\\) 以上都是在拟合概率,但是对于神经网络而言我们有的标签不是概率这太抽象了,我们只有从Pdata中获得的样本,如何优化这个混合模型? 把方差固定,优化这个似然值就变成优化\\(||x-g_{\\theta}^{\\mu}||\\),训练的步骤是我们采样一堆隐变量z,扔进网络\\(g_{\\theta}\\)中产生一堆高斯分布的均值,然后在和一个batch的样本\\(x\\) 计算L2norm,这就是我们要的似然值. 我们在建模概率的时候是利用的MC采样来估计积分 \\(p_{\\theta}(x) \\approx \\frac{1}{M} \\left( p_{\\theta}(x|z^{(1)}) + p_{\\theta}(x|z^{(2)}) + p_{\\theta}(x|z^{(3)}) + \\ldots \\right)\\) 遇到一个问题,往往高维空间MC采样的效率很低,往往会变成这样: \\(p_{\\theta}(x) \\approx \\frac{1}{M} \\left( 0 + p_{\\theta}(x|z^{(2)}) + 0 + \\ldots \\right)\\) 这意味着要想精确的估计概率,必须要大量的采样,采样效率很低 这里引出本文的第二个技术,重要性采样: \\(p_{\\theta}(x) = \\mathbb{E}_{z \\sim p_z}[p_{\\theta}(x|z)] = \\int p_z(z)p_{\\theta}(x|z)dz = \\int \\frac{p_z(z)}{q_z(z)} p_{\\theta}(x|z)q_z(z)dz = \\mathbb{E}_{z \\sim q_z}\\left[\\frac{p_z(z)}{q_z(z)} p_{\\theta}(x|z)\\right]\\) 重要性采样给出一种不用在原始分布p中采样,而在新的分布q中采样,这是一种减少方差的采样技术 最优的\\(q(z)\\)正比于\\(p(z)P_{\\theta}(x|z)\\) 后者正比于\\(P(x,z)\\) 它又正比于\\(p_{\\theta}(z|x)\\),所以可以证明最优的\\(q(z)\\)等于\\(p_{\\theta}(z|x)\\) \\(p_{\\theta}(x) \\approx \\frac{1}{M} \\sum_{j=1}^{M} \\frac{p_z(z^{(j)})}{p_{\\theta}(z^{(j)}|x)} p_{\\theta}(x|z^{(j)})\\), \\(z^{(j)} \\sim p_{\\theta}(Z|x)\\) image-20240426152256850 image-20240426152338348 在重要性采样的语境下,\\(p_{\\theta}(z|x)\\) 这个z就是和建模\\(p_{\\theta}(x)\\)最相关的z 高斯混合模型的有点是隐变量分布是高斯分布,重要性采样的效率更高但是这里又出现了一个难以采样的分布\\(P_{\\theta}(z|x)\\) 这个时候引入最后一个重要的技巧,变分推断(Variational inference) 顺便吐槽一句,很多的教程都从变分推断出发,丝毫不讨论生成的过程,这和我生成模型又有什么关系呢 :D","link":"/2024/04/26/VAE%EF%BC%9A%E5%8F%98%E5%88%86%E6%8E%A8%E6%96%AD%E3%80%81MC%E4%BC%B0%E8%AE%A1%E5%92%8C%E9%87%8D%E8%A6%81%E6%80%A7%E9%87%87%E6%A0%B7/"},{"title":"贝叶斯的两个理解角度","text":"时间线: 托马斯·贝叶斯(Thomas Bayes)在1763提出,用来解决逆概率问题 贝叶斯: 根据证据修正先验 推断因子 怎么理解修正先验? \\(P(A|B) = P(A)\\frac{P(B|A)}{P(B)}\\) P(A)是先验概率。 P(B|A)/P(B)称为\"可能性函数\"(Likelyhood),这是一个调整因子,也就是新信息B带来的调整,作用是将先验概率(之前的主观判断)调整到更接近真实概率。 如果\"可能性函数\"P(B|A)/P(B)>1,意味着\"先验概率\"被增强,事件A的发生的可能性变大; 如果\"可能性函数\"=1,意味着B事件无助于判断事件A的可能性; 如果\"可能性函数\"<1,意味着\"先验概率\"被削弱,事件A的可能性变小。 怎么理解推断因子? \\(P(z_j|x) = \\frac{P(z_j,x)}{\\sum_z P(x|z_i)P(z_i)}\\) 事实上,当初统计学家在回归问题中引入L2正则,只是出于防止矩阵病态造成不可求逆矩阵,后来才发现结果居然更好了。 当我们对抛硬币做做参数估计的时候,加入10次都是正的那很容易得到一个很不准的MLE 参数估计: 点估计:MLE,MAP(通常是优化问题),矩估计,贝叶斯估计 reference: 极大似然估计、极大后验估计和贝叶斯估计 https://www.zhihu.com/question/61298823/answer/1545994922","link":"/2024/04/26/%E8%B4%9D%E5%8F%B6%E6%96%AF%E7%9A%84%E4%B8%A4%E7%A7%8D%E7%90%86%E8%A7%A3%E8%A7%92%E5%BA%A6/"}],"tags":[{"name":"正则化","slug":"正则化","link":"/tags/%E6%AD%A3%E5%88%99%E5%8C%96/"},{"name":"DGM","slug":"DGM","link":"/tags/DGM/"},{"name":"LVM","slug":"LVM","link":"/tags/LVM/"},{"name":"VAE","slug":"VAE","link":"/tags/VAE/"},{"name":"概率论 ML数学","slug":"概率论-ML数学","link":"/tags/%E6%A6%82%E7%8E%87%E8%AE%BA-ML%E6%95%B0%E5%AD%A6/"}],"categories":[],"pages":[{"title":"Curriculum","text":"","link":"/curriculum/index.html"},{"title":"rick","text":"Curriculum Vitae Career Education Awards Services Skills Supplements","link":"/rick/index.html"},{"title":"","text":"Curriculum Vitae Career Education Awards Services Skills Supplements","link":"/rick/rick_cv.html"}]} \ No newline at end of file +{"posts":[{"title":"VAE:变分推断、MC估计和重要性采样","text":"本文将从表征学习的角度以及隐变量模型的角度探讨VAE模型 隐变量的意义 VAE从概率密度估计的角度来说是一种mixture model 基本的高斯混合模型写做: \\(p(x) = \\sum_{i=1}^{k} w_i \\mathcal{N}(x | \\mu_i, \\Sigma_i)\\) 其中的i是指第i个高斯分布,\\(u_i\\)和\\(\\Sigma_i\\)指的是第i个高斯分布的均值和方差 但是高斯混合模型的拟合能力是有限的,假如我们用一簇无穷多的高斯分布来拟合最终的分布, 那这个拟合能力不久非常好了吗?怎么去建模这个无穷多(infinite)的分布呢? image-20240426131217788 这图摘自S9868 Deep learning课程,非常形象的展示了混合模型做了什么:用高斯分布把数据流形填满 怎么做无限混合呢?VAE给出的解答是把累加变成了积分 \\(p_{\\theta}(x) = \\int_{z} \\mathcal{N}(x; g_{\\theta}(z), \\Sigma_{\\theta}(z)) \\mathcal{N}(z; 0, I) dz\\) 也即是假设混合高斯的权重符合一个分布,属于隐变量\\(z\\),并且我们的高斯分布是隐变量参数化的结果,即式中的条件分布,分别参数化了高斯分布的均值\\(g_{\\theta}\\)和方差\\(\\Sigma_{\\theta}(z))\\) image-20240426131714727 S9868 也给出了无限混合的感性可视化,参数化帮助我们的mixture model更加的flexible了,能自己学习怎么去填满这个数据流形。 这里的\\(P(z)\\)和\\(P_\\theta(x|z)\\)都假设的高斯分布,当然我们也能make an infinite mixture of the autoregressive distribution and so on. ,从这个角度来说mixture分布是meta model 可以用其他的密度估计模型替代 这个概率摸底建模是一个积分的无穷项,这里我们需要用到统计学的一个基本技术,用MC采样来估计这个积分 \\(p_{\\theta}(x) = \\int p_{\\theta}(x|z)p_z(z)dz = \\mathbb{E}_{z \\sim p_z(z)}[p_{\\theta}(x|z)] \\approx \\frac{1}{M} \\sum_{i=1}^{M} p_{\\theta}(x|z^{(i)}), \\quad z^{(i)} \\sim p_z\\) MC采样的直观理解是求平均值的这个过程本身就蕴含了采样过程 当我们概率建模有了,接下来就是计算极大似然来优化参数! \\(E_{x \\sim p_{data} }log P_{\\theta}(x)\\) 极大似然认为最优的分布参数是一个定值,因此我们把数据扔进去优化一个maximal的似然值 \\(\\theta^* = \\underset{\\theta}{\\arg\\min} \\frac{1}{M} \\sum_{i=1}^{N} \\log \\left( \\sum_{j=1}^{M} \\mathcal{N}\\left(x^{(i)}; g_{\\theta}^{\\mu}\\left(z^{(j)}\\right), g_{\\theta}^{\\Sigma}\\left(z^{(j)}\\right)\\right) \\right)\\) 以上都是在拟合概率,但是对于神经网络而言我们有的标签不是概率这太抽象了,我们只有从Pdata中获得的样本,如何优化这个混合模型? 把方差固定,优化这个似然值就变成优化\\(||x-g_{\\theta}^{\\mu}||\\),训练的步骤是我们采样一堆隐变量z,扔进网络\\(g_{\\theta}\\)中产生一堆高斯分布的均值,然后在和一个batch的样本\\(x\\) 计算L2norm,这就是我们要的似然值. 我们在建模概率的时候是利用的MC采样来估计积分 \\(p_{\\theta}(x) \\approx \\frac{1}{M} \\left( p_{\\theta}(x|z^{(1)}) + p_{\\theta}(x|z^{(2)}) + p_{\\theta}(x|z^{(3)}) + \\ldots \\right)\\) 遇到一个问题,往往高维空间MC采样的效率很低,往往会变成这样: \\(p_{\\theta}(x) \\approx \\frac{1}{M} \\left( 0 + p_{\\theta}(x|z^{(2)}) + 0 + \\ldots \\right)\\) 这意味着要想精确的估计概率,必须要大量的采样,采样效率很低 这里引出本文的第二个技术,重要性采样: \\(p_{\\theta}(x) = \\mathbb{E}_{z \\sim p_z}[p_{\\theta}(x|z)] = \\int p_z(z)p_{\\theta}(x|z)dz = \\int \\frac{p_z(z)}{q_z(z)} p_{\\theta}(x|z)q_z(z)dz = \\mathbb{E}_{z \\sim q_z}\\left[\\frac{p_z(z)}{q_z(z)} p_{\\theta}(x|z)\\right]\\) 重要性采样给出一种不用在原始分布p中采样,而在新的分布q中采样,这是一种减少方差的采样技术 最优的\\(q(z)\\)正比于\\(p(z)P_{\\theta}(x|z)\\) 后者正比于\\(P(x,z)\\) 它又正比于\\(p_{\\theta}(z|x)\\),所以可以证明最优的\\(q(z)\\)等于\\(p_{\\theta}(z|x)\\) \\(p_{\\theta}(x) \\approx \\frac{1}{M} \\sum_{j=1}^{M} \\frac{p_z(z^{(j)})}{p_{\\theta}(z^{(j)}|x)} p_{\\theta}(x|z^{(j)})\\), \\(z^{(j)} \\sim p_{\\theta}(Z|x)\\) image-20240426152256850 image-20240426152338348 在重要性采样的语境下,\\(p_{\\theta}(z|x)\\) 这个z就是和建模\\(p_{\\theta}(x)\\)最相关的z 高斯混合模型的有点是隐变量分布是高斯分布,重要性采样的效率更高但是这里又出现了一个难以采样的分布\\(P_{\\theta}(z|x)\\) 这个时候引入最后一个重要的技巧,变分推断(Variational inference) 顺便吐槽一句,很多的教程都从变分推断出发,丝毫不讨论生成的过程,这和我生成模型又有什么关系呢 :D","link":"/2024/04/26/VAE%EF%BC%9A%E5%8F%98%E5%88%86%E6%8E%A8%E6%96%AD%E3%80%81MC%E4%BC%B0%E8%AE%A1%E5%92%8C%E9%87%8D%E8%A6%81%E6%80%A7%E9%87%87%E6%A0%B7/"},{"title":"深度学习中的正则化","text":"最近在看集成学习,集成学习中对基学习器的要求是和而不同,及满足两个条件:误差 \\(\\epsilon <0.5\\)且具有多样性,由此引出一系列多样性方法,其和正则化非常类似。借助课上提到的框架对正则化进行梳理。并且试图统一绝大部分ml和dl的正则化方法 1.正则化的定义 正则化:旨在通过对学习算法的修改,减少泛化误差(而不是训练误差,并且可能以提高训练误差为代价) 2.正则化的背景:方差与偏差,欠拟合与过拟合 统计学中的过拟合欠拟合:对应模型的小偏差大方差 方差偏差 模型训练中的过拟合:训练刚开始的时候,训练误差和测试误差都下降。在到达一个临界点之后,训练集的误差下降,测试集的误差上升了,这个时候就进入了过拟合区域 过拟合欠拟合 3.正则化的分类 3.1 对输入样本 对输入样本扰动敏感的学习器:神经网络,决策树等 对输入样本扰动不敏感的学习器:线性学习器,支持向量机(这俩都是线性分类器),朴素贝叶斯,k近邻 数据增强: 数据扰动(噪声) 3.2 对输入属性 Bagging 降维:PCA,SVD,AutoEncoder,LDA 特征选择 3.3 对输出属性 label smooth Dropout 3.4 对模型参数 L1正则化 L2正则化 SVM中的松弛变量 参数共享(CNN,RNN) 3.5 对模型训练 半监督学习 多任务学习 提前终止 对抗训练 知识蒸馏 多级别监督loss Reference 正则化详解 正则化总结的比较好比较全面的文章","link":"/2023/09/13/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%AD%E7%9A%84%E6%AD%A3%E5%88%99%E5%8C%96/"},{"title":"贝叶斯的两个理解角度","text":"时间线: 托马斯·贝叶斯(Thomas Bayes)在1763提出,用来解决逆概率问题 贝叶斯: 根据证据修正先验 推断因子 怎么理解修正先验? \\(P(A|B) = P(A)\\frac{P(B|A)}{P(B)}\\) P(A)是先验概率。 P(B|A)/P(B)称为\"可能性函数\"(Likelyhood),这是一个调整因子,也就是新信息B带来的调整,作用是将先验概率(之前的主观判断)调整到更接近真实概率。 如果\"可能性函数\"P(B|A)/P(B)>1,意味着\"先验概率\"被增强,事件A的发生的可能性变大; 如果\"可能性函数\"=1,意味着B事件无助于判断事件A的可能性; 如果\"可能性函数\"<1,意味着\"先验概率\"被削弱,事件A的可能性变小。 怎么理解推断因子? \\(P(z_j|x) = \\frac{P(z_j,x)}{\\sum_z P(x|z_i)P(z_i)}\\) 事实上,当初统计学家在回归问题中引入L2正则,只是出于防止矩阵病态造成不可求逆矩阵,后来才发现结果居然更好了。 当我们对抛硬币做做参数估计的时候,加入10次都是正的那很容易得到一个很不准的MLE 参数估计: 点估计:MLE,MAP(通常是优化问题),矩估计,贝叶斯估计 reference: 极大似然估计、极大后验估计和贝叶斯估计 https://www.zhihu.com/question/61298823/answer/1545994922","link":"/2024/04/26/%E8%B4%9D%E5%8F%B6%E6%96%AF%E7%9A%84%E4%B8%A4%E7%A7%8D%E7%90%86%E8%A7%A3%E8%A7%92%E5%BA%A6/"}],"tags":[{"name":"DGM","slug":"DGM","link":"/tags/DGM/"},{"name":"LVM","slug":"LVM","link":"/tags/LVM/"},{"name":"VAE","slug":"VAE","link":"/tags/VAE/"},{"name":"正则化","slug":"正则化","link":"/tags/%E6%AD%A3%E5%88%99%E5%8C%96/"},{"name":"概率论 ML数学","slug":"概率论-ML数学","link":"/tags/%E6%A6%82%E7%8E%87%E8%AE%BA-ML%E6%95%B0%E5%AD%A6/"}],"categories":[],"pages":[{"title":"Curriculum","text":"","link":"/curriculum/index.html"},{"title":"rick","text":"Curriculum Vitae Career Education Awards Services Skills Supplements","link":"/rick/index.html"},{"title":"","text":"Curriculum Vitae Career Education Awards Services Skills Supplements","link":"/rick/rick_cv.html"}]} \ No newline at end of file diff --git a/index.html b/index.html index fd2a144..d930af6 100644 --- a/index.html +++ b/index.html @@ -64,7 +64,7 @@https://www.zhihu.com/question/61298823/answer/1545994922
-本文将从表征学习的角度以及隐变量模型的角度探讨VAE模型
隐变量的意义
@@ -155,12 +155,12 @@隐变量的意义
在重要性采样的语境下,
+本文将从表征学习的角度以及隐变量模型的角度探讨VAE模型
隐变量的意义
@@ -124,12 +124,12 @@隐变量的意义
在重要性采样的语境下,
+本文将从表征学习的角度以及隐变量模型的角度探讨VAE模型
隐变量的意义
@@ -124,12 +124,12 @@隐变量的意义
在重要性采样的语境下,
+本文将从表征学习的角度以及隐变量模型的角度探讨VAE模型
隐变量的意义
@@ -124,12 +124,12 @@隐变量的意义
在重要性采样的语境下, -
Tags - Rick Universe +Tags - Rick Universe