人工智能知识点讲解网址收藏

489 阅读14分钟

  1. AdaBoost
  2. 常用损失函数
  3. 传统的L1、L2损失函数和正则项
  4. 为什么正则化可以防止过拟合?

过拟合一般权重会非常大,正则化可以减少参数的权重

此外,dropout也是防止过拟合的一个重要技术


损失函数观察两个东西,

梯度,是否存在梯度消失和梯度爆炸的情况?梯度会不会随着残差减小而降低?

鲁棒性,出现了噪声,会对模型产生怎样的影像?

稳定性,出现了噪声,解的波动性

  1. MAE和MSE的区别和选择
  2. Pytorch入门
  3. 常用激活函数

激活函数观察三个东西

输出范围,sigmod输出0-1,可以作为概率,tanh输出-1-1,可以输出归一化后的图像

梯度,是否存在梯度消失和梯度爆炸

zero-centered,不是零均值会导致zigzag现象

  1. Tanh和Sigmoid激活函数比较
  2. Dropout理解
  3. Relu的变体:LeakyRelu和PRelu  Rrelu 
  4. Elu激活函数

                特点一,相比较PRelu,Leaky Relu均值更接近0

                特点二,负数区域存在弱饱和,对噪声的鲁棒性更强

  1. 滑动加权平均
  2. Pytorch六种优化器详解
  3. 贝叶斯分类与极大似然估计
  4. VAE原理讲解与推导

       VAE  =  贝叶斯 + 神经网络

       同GAN类似,其最重要的idea是基于一个令人惊叹的数学事实:对于一个目标概率分布,给定任何一种概率分布,总存在一个可微的可测函数,将其映射到另一种概率分布,使得这种概率分布与目标的概率分布任意的接近。

      通过一个网络生成均值向量,另一个生成log sigma^2,得到一个专属于X的一个正态分布,接着,从这个正太分布重采样进行数据重构。

      注意这里我们假设得到的latent space中code Z满足正态分布,是从后验概率分布

p(Z|X) 推导出p(Z)先验分布。为了保证这个后验分布满足标准正态分布,在损失函数中加一个KL散度进行限制。


     对VAE的理解是包含了对抗训练的意思,生成方差的encoder试图提高latent space 的噪声,接着decoder不断提升自身鲁棒性。

   实现中使用了一个技巧是Reparameterization trick,因为采样的操作是不可导的,为了进行梯度更新,使用了下面的事实


13. latent variable

       隐变量是观察变量的抽象和概括,不可以直接得到


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

损失函数重要的一个门派,原理是衡量两个概率分布之间的差别

14. 信息量、熵、相对熵、交叉熵

      信息论中香农信息量定义为概率导数取对数

      熵是香农信息量的期望,代表事件的混乱程度、不确定性程度。

      条件概率代表基于某个条件下事件发生概率,以此产生了条件熵,代表在某种条件下,事件不确定性程度。

      熵和条件熵都代表混乱程度和不确定性程度,区别是一个基于普通的概率,一个基于条件概率,代表某种条件下,事件不确定性程度。

      交叉熵和熵的区别是关于样本X,存在两个分布P和Q,取P中的概率,Q中的信息量进行熵的计算。可以表示两个分布之间的差异程度。

      相对熵 = 交叉熵 - 信息熵 相对熵也就是KL散度。

      条件概率、条件熵、信息增益、互信息

      条件熵代表在一定条件下,随机变量的不确定性程度

      信息增益代表指一定条件下,信息不确定性减少程度

      互信息,两个变量之间的相关程度

      互信息和信息增益相同

15. X^2统计量

     自由度的概念

16. JS和KL散度

17. MMD EMD距离

18. EMD距离度量相比较其它距离度量的优点

          可以进行离散概率分布和连续概率分布之间的正确比较

          MMD可以利用概率分布不同区间之间的几何相关信息

19. 凸函数与凹函数

20. f散度



21. 积分换元

22. 换元积分为什么需要u是单调函数

23. GAN公式推导

24. 反卷积

      卷积与反卷积计算输出尺寸公式

25.Batch Normalization

26. 关于参数初始化的几个实验

27. 参数初始化方法总计 

28. Xavier初始化

29. Keiming初始化

参数合理初始化可以有效避免梯度消失和下降,打破对称性,提高收敛效率

合理的参数初始化可以保证每层的激活值方差不变

参数初始化和使用的激活函数有关系

30. 常用期望、方差、相关系数公式

           加一个公式

          

           1 费雪矩阵代表的第一个数学意义是估计极大似然函数梯度的方差

           2 第二个数学意义代表对数似然函数关于参数值曲率的期望

           1 避免了使用欧几里得空间距离度量的不合理性

           2 使用KL散度,距离度量与概率密度模型描述参数无关

cycleGAN分离了风格和内容,解决了没有成对训练数据集时的训练方法,使用了两个批判器和一个生成器

       区别是全卷积连接每一层结点与部分上层结点关联,但是全连接网络每一层结点与上一层所有结点关联,关联的边数越多,意味着需要训练的参数越多。

      参数过多导致收敛速度减慢,容易出现过拟合的现象,所以全连接网络不适宜处理图片数据。

     缘于医学的图像分割领域,基于著名的编码器和解码器

     和传统的编码解码器的区别是解码部分使用了双线性内插(上采样的一种方法)

     同时跳远连接了编码层和解码层的对应部分,起到了一部分信息传输的作用,融合了底层特征和抽象特征,避免了bottleNeck信息损失的问题。注意,U-net采用了拼接的方式。

     因为卷积过程中,feature的抽象程度越高,越容易受到padding的影响,所以卷积过程中,将padding设置成0。为了避免因此而引发的图像尺寸不断减小的问题,将输入图像进行padding的处理,控制成处理以后的尺寸和输入的一致。这也就是使用overlap_tile策略

将输入图分割成几个patch,输出不再是一个实数,而是一个矩阵X,矩阵的某一个元素对应代表着某一个patch进行普通判别器输出的结果,可以更好的捕获高频特征

使用的训练数据不一定是成对的,分离了内容和风格,特点是A生成B以后B再生成A,进而比较重建A与真实A区别构建损失函数 利用了两个生成器和两个判别器

差分学习,不同层使用不同的学习率,层次越深,学习率越高

dropout、余弦退火,带重启的SGD算法

数据增强,使用预训练模型

网络的深度对于模型的性能至关重要,一般来说,深度越深模型表现越好

但是实验过程出现了深度模型的退化问题,该问题被残差深度模型解决

残差网络基于VGG模型,变化主要体现在ResNet直接使用stride=2的卷积做下采样,并且用global average pool层替换了全连接层。ResNet的一个重要设计原则是:当feature map大小降低一半时,feature map的数量增加一倍,这保持了网络层的复杂度

之后又有resnet的改进版本,改进点在于将bn和relu提前

      global pooling可以将W*H*D变成1*1*D的维度

      max取每个feature map的最大值,average取平均值

      Resnet采用的是global average pooling

散度衡量了一个点在向量场中是汇聚还是发散,散度为正,散度越大的点,意味着向量场在这点强烈地发散。

拉普拉斯算子是梯度的散度,衡量了在梯度空间中的某一点,梯度倾向于增加还是减少

在解决语义分割、超分辨率、风格迁移等问题是,基于像素的损失函数往往无法捕捉两张图片在固定方向的偏移问题。

perception loss使用VGG网络提取的高层次特征构建损失函数,包括特征重建损失函数和风格重建损失函数。

特征重建损失函数


是feature map的欧氏距离再进行规范化

风格重建损失函数



是feature map的Gram矩阵之间的欧氏距离规范化

看第二个回答

batchNorm更适合于图片分类问题,对batch size较为敏感,可以从整体上对数据进行学习

instanceNorm适合图片生成与风格迁移,因为图像的生成依赖于每个具体的输入,可以加速收敛同时保证每个训练样本相互之间不影响。

    衡量GAN生成图片质量的一个指标,使用了Inception Net网络进行评价,在ImageNet熵进行训练,输出一个1000维度的向量代表各个类别的分类概率,具体评价两个方面,清晰度和多样性,清晰度方面,如果输出概率在某个类别上特别大,代表清晰度越高,分类越自信,数学表达为P(y|x)的熵值很小,多样性方面,将所有生成图片的输出求平均,得到的分布越均匀代表多样性更高,IS(G)定义为P(y|x)和P(y)分布之间的KL距离(因为我们更关注p(y|x)的尖锐分布,所有将p(y|x)放在前面,对KL距离的贡献大),公式定义为,

对这个公式的理解是理想的分布是第一个分布较尖锐,第二个分布较平均,我们的目的要拉大两个分布之间的距离(本身就是距离很大的两个分布)。

计算方法是先求出p(y),然后对每个样本带入求p(y|x),进而求出KL散度,然后对结果求平均取指数。

里面提到的IS(G) 的深度理解就是取了对数以后就是X和Y互信息,也就代表X的分布和Y的分布之间相关性更强,IS分数越大

Inception Score的本质是互信息

局限性体现在

1 对模型参数的微小变动敏感,换一个深度学习框架训练Inception Net得到的分数差可能超过了某些state of art的提升

2 分类模型和生成模型必须在同一个数据集上训练

3 没有反映过拟合现象,需要结合其它指标来进行评估

FID使用的依然是Inception Net网络进行评估,思想是提取倒数第二层2048维度的特征,对于真实图片,这些特征服从一个分布,对于GAN生成的假图片,这些特征服从另一个分布,因此衡量生成图片质量的问题就转换成了衡量两个分布之间距离的问题,具体计算使用均值和协方差矩阵计算。相比较IS,FID具有更好的鲁棒性,但是FID和IS关注的问题更多是某些特征的存在与否,而没有关注他们之间的空间关系

vgg16相比AlexNet的改进是使用了几个3*3的卷积核代替了原先较大的卷积核

vgg19相比vgg16本质没有改变,只是增加了网络深度

vgg中使用两个3*3代替了原先的5*5,使用三个3*3代替了原先的7*7

这样做有很多优点

1 降低了参数数量

2 提高了网络深度,进一步提高网络性能

3 使用了三次而非一次非线性函数,提高了网络的判别能力

vgg的缺点是参数很多,不易于训练(三个全连接层增加了网络参数数量),不过有预训练好的模型可以下载

时域:横轴是时间,纵轴是信号的变化,描述了动态信号随时间取值的变换

频域:自变量是频率,纵轴振幅,描述了动态信号的频谱,即在不同频率下对应的振幅

傅里叶级数的频谱表示如下


考虑到正弦余弦波可以表示成圆周运动在一条直线上的投影,直观表述如下


但是频谱并没有包含时域中的所有信息,包含了频率和振幅,但是没有包含相位,因此引入相位谱,相位差是时间差在周期中的比例,相关表达如下



文中还讲到了利用欧拉公式在复数域表达正弦波叠加,其中讲到两个观点比较有意思,

1 i代表空间中旋转了90度

2 欧拉公式对应一条如下的螺旋线,在左侧的投影为余弦函数,右侧的投影为正弦函数


复数域、频域、时域对于相同的波表达如下


傅里叶变换实际应用有滤波,解微分方程等,

在一维的应用中体现是时域到频域的转换,二维的应用是空间域到频域的转换。

DCT是当输入为偶实数函数时特殊的傅里叶函数,不过由于实际应用中没有那么多实偶函数可以刚好用,因此为了提高适用性,DCT在DFT的基础上进行了一系列推导得到。

DCT相比较DFT具有更好的能量聚集度,即高频部分可以聚集在一块,便于图像压缩时处理

1 循环神经网络,一种可以处理序列数据的网络,例如单词含义随上下文变化,常用于NLP。

2 每个RNN节点包含两个输入和两个输出,输入有当前节点状态下的输入x以及来自上一个节点的输入h 输出有当前节点状态的输出y和传递到下一个节点的输出h' 

3 传递到下一个节点的输出h’一般是来自上一个节点的输入h与当前状态的输入x线性相加后非线性激活 当前节点状态的输出y一般是传递到下一个节点的输出h'乘以权重后激活

4 LSTM是一种特殊的RNN,主要为了解决RNN训练中存在的梯度消失和梯度爆炸问题 

5 LSTM和RNN的主要区别是 LSTM有两个传递状态,c(cell state)和h(hidden state) 传递下去的c变化很小(类似于RNN中传递状态),h变化很大

6 LSTM内部结构 通过x和h叠加激活,得到四个状态,包括一个输入(tanh)和三个门控状态(sigmoid), 记忆门控,输出门控,忘记门控 基于得到的三个门控状态,当前节点的输入以及上一个节点传递的两个状态得到 传递给下一个节点的两个状态和当前节点的输出