-
arxiv: 1612.00796
-
序列化的学习方法对AI发展至关重要。而目前连接型的神经网络存在灾难性遗忘问题,本文提出一种方式可以克服这个问题,使得训练的网络能够长时间保存知识。该方法通过选择性地减缓任务的重要程度来记住旧任务。通过MNIST数据集的分类任务和Atari 2600游戏任务实验证明了该方法是可扩展和有效的。
-
迭代收缩阈值算法(Iterative shrinkage-thresholding algorithm, ISTA)是一种用于信号处理和图像重建的优化算法。
本文将介绍ISTA算法原理和其处理地震反演问题的实际应用。
优化问题
梯度下降
-
对于一个线性变换问题,其中和已知,为未知噪音,我们需要求解。
本质上这就是一个线性回归问题,从线性回归可知我们可以使用梯度下降解决这个问题。
-
梯度下降会带来新的问题,对于无约束的优化问题
若实函数在点处可微且有定义,梯度下降总是认为在点沿着梯度相反的方向下降最快。
所以当连续可微时,若存在一个足够小的数值使得
则有。
梯度下降核心便是通过式2找到序列,使得。
显然,此时初值的选取成了关键,即梯度下降可能陷入局部最优,同时的选取(机器学习中的学习率)也是关键,太小会导致迭代太慢,太大会导致无法收敛。
-
深度残差网络表现出很好的分类准确率,该文是作者在原始ResNet的基础上分析了残差块背后的数学原理。
残差块
-
一个残差块可以表示为
其中代表第个单元的输入,代表一个残差函数,是一个恒等映射,代表ReLU。
-
该文不只是在残差单元内部分析,而是在整个网络中创建一个“直接”路径分析信息传播。结果表明如果和都是恒等映射,则在前向和反向阶段,信号可以直接从一个单元传递到其他任意一个单元。
-
这是一种基于整合全局上下文信息的金字塔池化模块的网络架构,根据全局先验信息能够有效地进行图像分割。
金字塔池化
-
在深度神经网络中,感受野的大小决定了使用上下文信息的能力。常用的池化例如全局平均池化(GAP)利用全局信息进行池化,但在复杂场景下表现并不好,作者希望能够有一个基于子区域的全局上下文信息表示,于是提出了金字塔池化的概念。
图1. PSPNet架构 在金字塔池化模块中,特征图先经过池化操作(使用自适应平均池化)进行下采样,再进行上采样(使用二次线性差值)得到新的特征图并与原特征图拼接。
同时金字塔池化融合了四个比例的特征(默认是[1, 2, 3, 6])。
-
GAN的本质是将生成器的分布逼近真实分布。VAE则是训练两个分布分别表示从真实数据到噪声和噪声到生成数据的映射。
扩散模型和VAE类似,也是一套从真实数据到噪声的分布以及噪声到生成数据的分布,但是在扩散模型中将这个过程分成了步。
四种生成方式 扩散模型包含两个部分:扩散和和逆扩散过程。
-
在CNN中,通过卷积的引入能够很好的对图片进行分类,但是如何识别图片中的物体依然是一个难题。CNN会在卷积层之后接入若干全连接层,将卷积层产生的特征图映射为固定长度的特征向量进行输出,每个值代表样本属于某个类别的概率。
CNN分类 全卷积网络(Fully Convolutional Nerworks,FCN)则是抛弃最终的全连接层,直接对图像进行像素级的分类,在FCN中将引入反卷积层将对卷积层的输出进行采样恢复为输入图像的大小,从而对每个像素产生一个预测值,最后逐个像素计算softmax分类损失获取最终分类预测。
FCN分类
- 在之前的网络中我们都是在关心层与层之间的协作,同层节点之间是无连接状态,信息按顺序从上一层到下一层,这种网络如果要处理一些上下文强关联的问题便显得无能为力。例如在NLP中要预测下一个单词则需要处理前文包含的各种特征,此时提出了一种新的神经网络,循环神经网络(Recurrent Neural Network,RNN),它对于序列化数据有很强的拟合能力。
延迟器
-
在RNN隐藏层之中的节点不再是相互独立的,每个节点将包含三部分输入数据
上一层的输出、自身上一时刻输出、上一节点输出。
RNN网络结构 可以看到隐藏层中的节点不仅有来自输入层的连接,还有节点之间的自连和互连。
-
其中节点的自连接代表节点的输出会再次作为节点的输入,但这并不是马上完成的,数据会经过延迟器在下一时刻再进入该节点。
也就是说在RNN中包含了对时序特征的处理,对于同一数据根据其前文不同也将得到不同的输出。这也便是RNN中最重要的特征,通过引入延迟器来让网络模型包含“记忆”。
-
延迟器只是一个虚拟单元,也称为RNN的记忆单元,它的作用便是保存上一次的节点状态信息,每次节点计算时将使用上一次的状态信息参与进行并更新状态,可以理解为一个动态偏置,状态信息的计算与神经元计算类似,它也包含权重参数
其中代表时刻信息,是一个非线性激活函数,分别为输入的权重参数和状态的权重参数。
-
卷积神经网络(Convolutional Neural Networks, CNN)是深度学习中一种重要的神经网络结构,特别适用于处理图像相关的机器学习问题。CNN通过模拟人脑视觉皮层对图像的处理机制,自动提取图像中的特征,从而实现对图像的识别和理解。
在传统的MLP中,网络被简单的分为了表现层(特征提取)和决策层(输出),而在CNN中网络被进一步细分,以便能够更好的提取图像中的局部特征,具体分层结构为
- 输入层:输入信息;
- 卷积层:提取图像底层特征;
- 池化层:减少数据维度,防止过拟合;
- 全连接层:汇总图像底层特征和信息;
- 输出层:根据输入进行决策输出预测值。
- 在 神经网络基本概念 中已经介绍了感知机的概念,它是使用神经元进行二分类线性分类模型,本质也就是计算输入特征的线性组合来对样本进行分类。在训练过程中通过不断的修正参数来找到一个能够正确对样本进行分类的超平面(决策边界)。我们已经了解了感知机的基本结果以及工作流程,同时我们也知道感知机只能对线性可分的数据进行分类,而对线性不可分的数据无法处理。而多层感知机正是为了处理这一问题而提出的。
-
激活函数的主要作用是加入非线性变换防止多层网络退化为单层网络。
激活函数的选择遵循如下标准:
- 最大限度增强、放大输入的有效特征,去除、降低噪音特征;
- 缩短训练周期,加快模型收敛,选择可导且求导快的激活函数;
- 避免梯度消失、梯度爆炸、神经元死亡等问题。
Sigmoid函数
-
这个函数我们已经很熟悉了,它又称为S形函数,能够将输入压缩到中并且处处连续可导,输出非常平滑。
函数表达式为
其中是函数中心点。虽然该函数在ML中应用广泛,但在神经网络模型中有些情况下并不是一个最好的选择,由于数据的不同,该函数可能会引起如下问题。