FengHZ‘s Blog首发原创
Large Convolutional Network models have recently demonstrated impressive classification performance and widely used in a range of medical image analysis tasks. However there is no clear understanding of why they perform so well, or what their judgement is based on.
FengHZ‘s Blog首发原创
We have introduced several classic VAEs in the previous 2 posts(A tutorial to VAE,Some notes on hierarchical VAE). The classical VAEs are all assumed to consist the following parts: an encoder which inference a posterior distribution $q(\mathbf{z}\vert \mathbf{x})$ of continuous latent random variables $\mathbf{z}$ given the input data $\mathbf{x}$, a prior distribution $p(\mathbf{z})$, and a decoder with a distribution $p(\mathbf{x}\vert \mathbf{z})$ over input data. Typically, the posteriors and priors of latent variable $\mathbf{z}$ in VAEs are assumed normally distributed with diagnoal covariance, which allows for the Gaussian reparametrisation trick to be used. However, a large number of datasets contain inherently discrete latent variables which can be difficult to capture with only continuous factors. In classification task for example, we aim to predict a discrete class label with multinomial distribution.
FengHZ‘s Blog首发原创
“Top-1 Error”, “Top-5 Error”, “mean AP”, “ROC”, “AUC”, 分类任务中常常可见这些度量方法。同时, 从二分类问题到多分类问题再到几千分类问题, 随着问题规模的扩大, 不同的分类准则也不断涌现。本文旨在对这些分类指标做一个从历史, 原理到计算方法与可用计算函数之间的梳理, 以方便查阅。
2019年,关于AI的核心话题就是”落地”。腾讯AI lab一年发了55篇CVPR,仍然面临重组的风险,OpenAI公司主动打破非营利性公司的宗旨,把盈利考核标准摆上台面,某猪厂今年AI部门裁员80%,剩下的员工一个顶4个用。种种迹象都表明,以深度学习技术为主要引爆点的AI浪潮在项目落地与价值产出方面遇到了比想象中更大的障碍。这个障碍未必来源于深度学习技术方面,而是来源于数据基础设施与平台建设方面。简单而言,就是传统行业的信息化建设程度远远落后于深度学习技术所需要的基础设施标准。
“通货膨胀”是宏观经济学中的名词,指在一段时间内持续性的,物价水平总体持续上升的过程。从二战结束以来,世界已经持续经历了75年的通货膨胀。其中,自1973年布雷顿森林体系崩溃,美元与黄金脱钩,世界货币进入信用货币时代后,由政府货币政策所主导的通货膨胀成为现今通货膨胀的主要动力。
FengHZ‘s Blog首发原创
从主成分分析(PCA),线性因子模型到自动编码器,基于无监督学习的特征提取方法不断发展。同时自从引入深度学习技术后,我们对潜变量与因子空间的推断效率与推断方法都有极大的突破,此时原始数据可以在因子空间(通常是潜变量空间)得到更简洁的表示。一个很自然的问题是,如何来比较两种表示的优越程度呢?到底是什么因素决定了一种表示比另外一种表示更好呢?
No Free Lunch Theorem告诉我们,所有的机器学习算法的期望效果都是一样的,但是有一些算法在特定的任务上表现会更好。因此,表示的优劣与否往往取决于我们采用该表示与所进行的学习任务是否契合。但是表示学习方法往往是无监督的,如何在无监督过程中注入我们将要进行的学习任务的偏好,以使得某一种表示方法在某种任务上优越于其他表示方法,这就是表示学习领域所关注的任务。
FengHZ‘s Blog首发原创
数据增广一直是模型训练的一个重要话题。如何确定Data Augmentation策略对于最后的精度具有重要的影响。在AutoAugment:Learning Augmentation Strategies from Data一文中,采用了强化学习策略,对固定数据集给出了最佳数据增广方法。同时文章给出了我们现在常用的数据增广方法,这里主要对这些增广方法做一个叙述与实现.
import math
import random
import os
from os import path
from glob import glob
from PIL import Image
import matplotlib.pyplot as plt
from PIL import Image, ImageEnhance, ImageOps
image = Image.open(img_path)
image
FengHZ’s Blog 首发原创
我们在An introduction to Variational Autoencoders-Background,Loss function and Application中对Kingma提出的VAE进行了详细的介绍. VAE采用了潜变量假设, 将输入空间$X$与潜变量空间$Z$都看作是概率空间, 利用贝叶斯公式
\[p(x)=\int_{z}p(x\vert z)p(z)dz\]建立从潜变量空间$\mathcal{Z}$到输入空间$\mathcal{X}$分布间的映射, 并利用神经网络来拟合该映射. 在拟合过程中,我们对$p(x\vert z),q(z\vert x),p(z)$的分布进行正态性假设, 并用$q(z\vert x)$来拟合$p(z\vert x)$, 要求拟合结果要令样本点$x\in \mathcal{X}$的出现概率尽可能大,并利用Jensen不等式构造具有解析形式的变分下界
\[\log(p(x))=log(E_{q(z\vert x)}\frac{p(x,z)}{q(z\vert x)})\geq E_{q(z\vert x)}\log(\frac{p(x,z)}{q(z\vert x)})=ELBO \tag{1}\]参考资料:
FengHZ’s Blog 首发原创
我们在之前的笔记中已经讲过了用KL散度进行两个分布的相似度度量, 但是, KL散度具有非对异性,值域无限,同时因为其具有$\log(\sigma_{i,i})$这一项,用于深度学习的反向传播过程中容易出现梯度爆炸等情况,这导致了用KL散度进行分布的距离度量在深度学习训练中的不稳定性。针对这三种问题,前人基于KL散度的基本形式用f-divergency给出了一些修正, 包括
Total Variation
\[dist_{tv}(F,G)=sup_{A}\vert F(A)-G(A)\vert = \frac{1}{2}\int_{\Omega} \vert p-q\vert dv\]其中第二个等号的证明如下,主要利用的结论为
\[B=\{x\in \Omega:p(x)>q(x) \},\int_{\Omega}\vert p-q \vert dv=\int_{B}\vert p-q \vert dv+\int_{\Omega- B}\vert p-q \vert dv;\\ \int_{B} p-q \ dv = \int_{\Omega- B} q-p \ dv\]本文将简要介绍基于最优传输理论所导出的Wasserstein距离,它有对称性,对于正态分布存在比较简单的闭式解,同时计算过程中没有$\log$函数的困扰,比较适合深度学习使用。同时, Wasserstein距离有着最优传输这一简洁直观的解释, 在很多分布度量性方面有着比$f-divergency$更优越的结果。
本文将首先介绍最优运输问题(Optimal Transport)的定义与基本形式,然后自然地将其与Wasserstein距离建立联系,最后本文将简单以CMU的文献为基础介绍Wasserstein距离显著优越的几个情形,离散采样中Wasserstein距离的计算与在某些分布上的闭式解。
对输入图像加噪声并输入编码器(AutoEncoder),并让编码器进行去噪处理(即重构出原图像)是提高自编码器泛化性的一个非常好的方法,基于这种方法的自编码器又称为去噪自编码器(Denoising AutoEncoder)。去噪规范(Denoising Criterion)能够增强在潜变量空间中那些比较近的数据点投射到高维观测空间后对于噪声的鲁棒性,提高模型的泛化能力。因此将去噪规范与变分自编码器(Variational AutoEncoder)相结合,对于提高变分自编码器泛化能力具有很大帮助。
变分自编码器在训练中用到的重参数化技巧$z=\mu +\Sigma \times \epsilon,\epsilon \sim N(0,I)$其实可以看成是对隐藏层的一种噪声注入,$\epsilon$即为注入的噪声,而去噪编码器可以看作是对于输入$x$的一种噪声注入$\tilde{x}=x+\epsilon$。由于变分自编码器本身具有与编码器类似的结构,因此在其中加入去噪规范的一个自然的训练流程可以如下所述:
给定一个对原数据进行corrupt的噪声分布$p(\tilde{x}\vert x)$,并从中采样$\tilde{x}$作为网络的输入
将$\tilde{x}$映射到潜变量空间,并对潜变量空间分布参数$q(z\vert \tilde{x})$进行预测,同时令给定加了噪声的$\tilde{x}$后对潜变量$z$分布的条件预测$q(z\vert \tilde{x})$尽量接近真实分布$p(z\vert x)$,也就是最小化$\mathcal{D}[q(z\vert \tilde{x})\Vert p(z\vert x)]$
从$q(z\vert \tilde{x})$中对$z$进行采样,并对$p(x\vert z)$进行预测,要求预测$p(x\vert z)$接近于$x$的真实分布,并最大化$x$的出现概率(最大似然思想)