之前看过的一些deep-learning的文章

来源:互联网 发布:那个漫画软件好最全 编辑:程序博客网 时间:2024/06/05 10:39





PCANet: A Simple Deep Learning Baseline for  Image Classification?
Arxiv 2014
这篇文章提出了一种新的神经网络filter,即PCA-filter,在分类任务上取得很好的特征提取的效果,可以用来为一些deep-network做baseline,具有结构简单,训练过程不需要迭代等优点。
下面以 2-stage PCA-NET为例介绍其特征提取的过程
PCA过程:对于每一个stage,其输入是图像,对于图像的每个像素点,取以它为中心k1*k2大小的矩形拉成向量,将每个向量看成一列,所有图像的向量就得到了一个矩阵,对该矩阵做PCA,也就是取它的前L个特征向量,把每个特征向量还原为k1*k2矩阵,我们就得到了L1个卷积核,然后做卷积就得到更多新图像
二值化过程:对最终得到的图片,有如下过程,就得到L1张图
直方图统计:然后又分成B个block,每个block做直方图统计,每个直方图有,最后所有直方图组合起来就得到最终特征
扩展:randNET-Be more specific, for random filters, i.e., the elements of W 1 l and W 2 l , are generated following standard Gaussian distribution.
LDANET-
The solution is known as the L1 principal eigenvectors of 
The LDA filters are thus expressed as 




Training Hierarchical Feed-Forward Visual Recognition  Models Using Transfer Learning from Pseudo-Tasks
ECCV 2008
这篇文章在CNN上实现了multi-task learning(transfer learning),基本想法就是我的样本不够,那我就多加一点任务来约束我参数到达的空间从而使效果变好。
先简单介绍multi-task learning,笔者通过对NN的transfer-learning解释,辅助任务相当于在损失函数后面加了regularization项,最小化该项等同于最小化实际数据的label与通过NN generate出来的输出分布之间的KL-divergence,但这里隐含了下面的假设:
Put it another way, (6) is the KL-divergence between two multivariate normal distributions with zero means and covariance matrices
given byK(θ)andKΛ.
(损失函数)
从上面可以看出辅助任务的份额是可以控制的,不像你每张图取patch充数据库
接下来笔者开始讲述对于CNN的具体做法,共用同样的网络结构(最顶层当然不一样啦),每个辅助任务首先选一张图片的一个区域,选一个对应该区域的函数作为输出(比如最大像素值),实际上最后是4个值,然后只对这个区域做convolution。对于每个辅助任务,每张训练图片的区域都要一样,对于不同的任务,函数应该一样。【上述是我的理解还存在一些疑问】
These pseudo-tasks encode our prior knowledge that a similarity matching between an image and a spatial pattern should tolerate a small change of scale and translation  as well as slight intensity variation.
Problem:这篇文章说它就是把先验和CNN这种泛化的方法结合,上面的实现只是搞了一种先验,有没有广泛的方法用来根据先验设计辅助任务?




Maxout Networks
这篇文章主要是提出了一种激活函数maxout,取和它相连的节点里最大的值,理论依据是这可以拟合任意的凸的连续函数
作者通过实验发现这个玩意和dropout一起训练效果很好。为什么这么好呢?因为dropout本来就是对model-average的一估计,而在使用maxout的情形下这种估计更接近现实。
作者在这篇文章中提出了假设:We hypothesize  that the high proportion of zeros and the difficulty of  escaping them impairs the optimization performance  of rectifiers relative to maxout.
然后maxout有这种性质:are always active, transition between positive and negative activations at  about equal rates in each direction





Improving neural networks by preventing  co-adaptation of feature detectors
dropout主要用在fine-tuning的步骤中,在对每一个train-case训练时,每个节点可以以一定概率被移除(仅在这个样例训练的时候被移除,下一个样例训练的时候还在,和它相连的边权值这次不改变),visual节点被不被移除可以自己选择,
这样可以改善训练效果。这种方法走到极端就是贝叶斯,但它比贝叶斯易于操作,训练代价小。也可以把它看做是boosting和bagging的极端情况,它在某种程度上排除了由于网络结构选择造成的over-fitting,类似于训练了多个网络再把它们综合起来




A Fast Learning Algorithm for Deep Belief Nets
 这篇文章秉承了hinton一贯的晦涩难懂的作风,就不吐槽了,下面先贴一张图,讲讲DBN的基本思路和训练方法,还有一些理论上的问题:
DBN主要有三种权值:最上面两层的RBM的undirected weights,下面有向部分用来inference的generate-weights,下面用来重构的recognition-weights,其训练方法类似于DNN,对于每一层求隐藏单元的后验分布,,这是inference的式子
hinton给出了证明,我们如果在训练每一层时认为recognition-weight是generate-weight的逆,如上图所示,则每一层最大化P(v|H)的做法
实际上是增长整个模型下logP(v)的下界,所以这样的早期训练方法是有帮助的
接下来,我们谈一下最后的fine-tuning过程,分为top-down和down-top过程
. In the “up-pass,” the recognition weights are used in a bottom-up pass that stochastically picks  a state for every hidden variable. The generative weights on the directed connections are then adjusted using the maximum likelihood learning rule。

The “down-pass” starts with a state of the top-level associative memory and uses the top-down generative connections to stochastically activate each lower layer in turn. During the down-pass, the top-level undirected  connections and the generative directed connections are not changed. Only  the bottom-up recognition weights are modified.
但这篇文章有很多不能理解的地方,下面一一提出:
Problm1:上面所提到的证明中的Q是什么,又是如何求得的?整个证明又是怎么回事,没看大懂啊
Problem2:里面提到的补充先验是不是就是共轭先验,为什么说complementary prior能确保factorial的性质?
Problem3: In discriminative learning, each training case constrains the parameters  only by as many bits of information as are required to specify  the label. For a generative model, each training case constrains  the parameters by the number of bits required to specify the  input.
上面这句话的理由是什么?




A Practical Guide to Training  Restricted Boltzmann Machines
提供了一些在训练RBM时实际的建议,下面分别介绍
1.将训练集分为多个mini-batch,这是为了并行,如果训练样本有等可能的几个类,mini-batchsize=类别数
不然一般取10,但不应过大
2.重建错误是一个参考标准,但不要trust it。
Problem:为什么当吉布斯采样的马氏链mixing rate小时,即使数据分布和模型分布差别较大重建错误也不大。
3.计算训练集 和validation set的能量函数,两者应该相差不大,如果后者远大于前者,则已经过拟合了。
4.学习速率不应过大,在权值的千分之一量级为好。
5.用mean:0,标准差:0.01的高斯分布初始化权值,将隐藏单元的bias设为0
6.Problem:momentum到底是什么玩意,在RBM里扮演什么角色?
7.权值衰减的作用:防止过拟合,使hidden unit的receptive field更平滑,使那些拥有极大权值相连的隐藏单元失效,使吉布斯采样更快更好。
8.隐藏单元的稀疏化:选定一个小概率p,计算当前隐藏单元1的概率,计算它们的cross-entropy作为惩罚项。
9.隐藏单元的数目:表达一个数据向量所需的比特数约等于参数的个数
10.学习算法的变体:不再权值一变化就建立起新的马氏链完成吉布斯采样,而是维护一个庞大的马氏链群,并在更新权值的同时更新它们。
11.观测学习的过程:权值的直方图分布,可见单元与隐藏单元的bias,对于一隐单元和它相连的权值,还有每个训练样例对应的隐藏单元序列为1的概率组成的二维图
12.使用RBM来进行判别:可以把隐单元作为特征使用别的分类算法,也可以对每一个类训练一个RBM网络,比较样例在它们中的free energy
13处理missing value:对于遗失数据较少的情况,可以给遗失单元赋一个值,然后训练时不断更新它;对于较多时,可以训练有不同可见单元数的RBM



An Analysis of Single-Layer Networks in Unsupervised Feature Learning
这篇文章主要是讲影响network训练效果的一些因素,指出stride,whitening,receptive field,features是主要因素
Problem:训练的时候先对一张图片sample出多个patch,得到特征时也是从一张图片多个patch的结果pooling,这是
一般情况还是特例?这样做是为啥,是为了模仿convolution的过程么,还是有别的原因,对于Convolution Network,是否也是这样做?



Deep Neural Networks for Object Detection
这篇文章读来极度操蛋,疑点重重,下面先大致讲一下流程:

DNN部分:将输入划分为d*d个区域,然后给出每个区域的得分,优化函数
为了防止把相邻object划在一个区域,所以要训练五种方位的网络
Localization部分:用9中大小十种长宽比的窗口扫描原图,得到它们对应的得分
然后留下分数大于阈值的窗口,之后使用DNN做分类器,留下分类结果为正的窗口
Refine部分:对于之前得到的窗口,放大之后使用DNN得到相应mask,对这一步结果重复Localization部分的动作得到最终结果
DNN Training部分:对一幅图片采样得到多个部分进行训练,大小服从uniform分布,每一类物品训练一个网络
Problem:sample的大小都不一样,请问特么是怎么训练的?





Salient Object Detection: A Discriminative Regional Feature Integration Approach
基本想法:先做图像分割,有M层(每一层包含多个区域),每上一层由下一层merge得到
对每个区域做特征提取,特征分三种:Regional contrast descriptor,Regional property descriptor,Regional backgroundness descriptor,人为规定
然后用随机森林回归得到区域特征与区域显著性得分的情况
预测时先把区域的得分赋给像素,然后通过一个函数把M层的得分结合起来,得到像素的最终得分
利用像素的得分来确定得分最高的区域即是我们所求


Scalable Object Detection using Deep Neural Networks
通过DNN得到给定数量窗口的坐标(左上角和右下角)以及该区域的confidence
假设将第i个框赋给第j类物品,之后计算损失=config-loss+match-loss
 
gi是已经确定的有对象的框的中心点,由人工标注得到
config-loss是为了最大化confidence
求分配X使F最小,然后再对框的坐标以及confidence求导来修正DNN的参数





PCANet: A Simple Deep Learning Baseline for  Image Classification?
Arxiv 2014
这篇文章提出了一种新的神经网络filter,即PCA-filter,在分类任务上取得很好的特征提取的效果,可以用来为一些deep-network做baseline,具有结构简单,训练过程不需要迭代等优点。
下面以 2-stage PCA-NET为例介绍其特征提取的过程
PCA过程:对于每一个stage,其输入是图像,对于图像的每个像素点,取以它为中心k1*k2大小的矩形拉成向量,将每个向量看成一列,所有图像的向量就得到了一个矩阵,对该矩阵做PCA,也就是取它的前L个特征向量,把每个特征向量还原为k1*k2矩阵,我们就得到了L1个卷积核,然后做卷积就得到更多新图像
二值化过程:对最终得到的图片,有如下过程,就得到L1张图
直方图统计:然后又分成B个block,每个block做直方图统计,每个直方图有,最后所有直方图组合起来就得到最终特征
扩展:randNET-Be more specific, for random filters, i.e., the elements of W 1 l and W 2 l , are generated following standard Gaussian distribution.
LDANET-
The solution is known as the L1 principal eigenvectors of 
The LDA filters are thus expressed as 




Training Hierarchical Feed-Forward Visual Recognition  Models Using Transfer Learning from Pseudo-Tasks
ECCV 2008
这篇文章在CNN上实现了multi-task learning(transfer learning),基本想法就是我的样本不够,那我就多加一点任务来约束我参数到达的空间从而使效果变好。
先简单介绍multi-task learning,笔者通过对NN的transfer-learning解释,辅助任务相当于在损失函数后面加了regularization项,最小化该项等同于最小化实际数据的label与通过NN generate出来的输出分布之间的KL-divergence,但这里隐含了下面的假设:
Put it another way, (6) is the KL-divergence between two multivariate normal distributions with zero means and covariance matrices
given byK(θ)andKΛ.
(损失函数)
从上面可以看出辅助任务的份额是可以控制的,不像你每张图取patch充数据库
接下来笔者开始讲述对于CNN的具体做法,共用同样的网络结构(最顶层当然不一样啦),每个辅助任务首先选一张图片的一个区域,选一个对应该区域的函数作为输出(比如最大像素值),实际上最后是4个值,然后只对这个区域做convolution。对于每个辅助任务,每张训练图片的区域都要一样,对于不同的任务,函数应该一样。【上述是我的理解还存在一些疑问】
These pseudo-tasks encode our prior knowledge that a similarity matching between an image and a spatial pattern should tolerate a small change of scale and translation  as well as slight intensity variation.
Problem:这篇文章说它就是把先验和CNN这种泛化的方法结合,上面的实现只是搞了一种先验,有没有广泛的方法用来根据先验设计辅助任务?




Maxout Networks
这篇文章主要是提出了一种激活函数maxout,取和它相连的节点里最大的值,理论依据是这可以拟合任意的凸的连续函数
作者通过实验发现这个玩意和dropout一起训练效果很好。为什么这么好呢?因为dropout本来就是对model-average的一估计,而在使用maxout的情形下这种估计更接近现实。
作者在这篇文章中提出了假设:We hypothesize  that the high proportion of zeros and the difficulty of  escaping them impairs the optimization performance  of rectifiers relative to maxout.
然后maxout有这种性质:are always active, transition between positive and negative activations at  about equal rates in each direction





Improving neural networks by preventing  co-adaptation of feature detectors
dropout主要用在fine-tuning的步骤中,在对每一个train-case训练时,每个节点可以以一定概率被移除(仅在这个样例训练的时候被移除,下一个样例训练的时候还在,和它相连的边权值这次不改变),visual节点被不被移除可以自己选择,
这样可以改善训练效果。这种方法走到极端就是贝叶斯,但它比贝叶斯易于操作,训练代价小。也可以把它看做是boosting和bagging的极端情况,它在某种程度上排除了由于网络结构选择造成的over-fitting,类似于训练了多个网络再把它们综合起来




A Fast Learning Algorithm for Deep Belief Nets
 这篇文章秉承了hinton一贯的晦涩难懂的作风,就不吐槽了,下面先贴一张图,讲讲DBN的基本思路和训练方法,还有一些理论上的问题:
DBN主要有三种权值:最上面两层的RBM的undirected weights,下面有向部分用来inference的generate-weights,下面用来重构的recognition-weights,其训练方法类似于DNN,对于每一层求隐藏单元的后验分布,,这是inference的式子
hinton给出了证明,我们如果在训练每一层时认为recognition-weight是generate-weight的逆,如上图所示,则每一层最大化P(v|H)的做法
实际上是增长整个模型下logP(v)的下界,所以这样的早期训练方法是有帮助的
接下来,我们谈一下最后的fine-tuning过程,分为top-down和down-top过程
. In the “up-pass,” the recognition weights are used in a bottom-up pass that stochastically picks  a state for every hidden variable. The generative weights on the directed connections are then adjusted using the maximum likelihood learning rule。

The “down-pass” starts with a state of the top-level associative memory and uses the top-down generative connections to stochastically activate each lower layer in turn. During the down-pass, the top-level undirected  connections and the generative directed connections are not changed. Only  the bottom-up recognition weights are modified.
但这篇文章有很多不能理解的地方,下面一一提出:
Problm1:上面所提到的证明中的Q是什么,又是如何求得的?整个证明又是怎么回事,没看大懂啊
Problem2:里面提到的补充先验是不是就是共轭先验,为什么说complementary prior能确保factorial的性质?
Problem3: In discriminative learning, each training case constrains the parameters  only by as many bits of information as are required to specify  the label. For a generative model, each training case constrains  the parameters by the number of bits required to specify the  input.
上面这句话的理由是什么?




A Practical Guide to Training  Restricted Boltzmann Machines
提供了一些在训练RBM时实际的建议,下面分别介绍
1.将训练集分为多个mini-batch,这是为了并行,如果训练样本有等可能的几个类,mini-batchsize=类别数
不然一般取10,但不应过大
2.重建错误是一个参考标准,但不要trust it。
Problem:为什么当吉布斯采样的马氏链mixing rate小时,即使数据分布和模型分布差别较大重建错误也不大。
3.计算训练集 和validation set的能量函数,两者应该相差不大,如果后者远大于前者,则已经过拟合了。
4.学习速率不应过大,在权值的千分之一量级为好。
5.用mean:0,标准差:0.01的高斯分布初始化权值,将隐藏单元的bias设为0
6.Problem:momentum到底是什么玩意,在RBM里扮演什么角色?
7.权值衰减的作用:防止过拟合,使hidden unit的receptive field更平滑,使那些拥有极大权值相连的隐藏单元失效,使吉布斯采样更快更好。
8.隐藏单元的稀疏化:选定一个小概率p,计算当前隐藏单元1的概率,计算它们的cross-entropy作为惩罚项。
9.隐藏单元的数目:表达一个数据向量所需的比特数约等于参数的个数
10.学习算法的变体:不再权值一变化就建立起新的马氏链完成吉布斯采样,而是维护一个庞大的马氏链群,并在更新权值的同时更新它们。
11.观测学习的过程:权值的直方图分布,可见单元与隐藏单元的bias,对于一隐单元和它相连的权值,还有每个训练样例对应的隐藏单元序列为1的概率组成的二维图
12.使用RBM来进行判别:可以把隐单元作为特征使用别的分类算法,也可以对每一个类训练一个RBM网络,比较样例在它们中的free energy
13处理missing value:对于遗失数据较少的情况,可以给遗失单元赋一个值,然后训练时不断更新它;对于较多时,可以训练有不同可见单元数的RBM



An Analysis of Single-Layer Networks in Unsupervised Feature Learning
这篇文章主要是讲影响network训练效果的一些因素,指出stride,whitening,receptive field,features是主要因素
Problem:训练的时候先对一张图片sample出多个patch,得到特征时也是从一张图片多个patch的结果pooling,这是
一般情况还是特例?这样做是为啥,是为了模仿convolution的过程么,还是有别的原因,对于Convolution Network,是否也是这样做?



Deep Neural Networks for Object Detection
这篇文章读来极度操蛋,疑点重重,下面先大致讲一下流程:

DNN部分:将输入划分为d*d个区域,然后给出每个区域的得分,优化函数
为了防止把相邻object划在一个区域,所以要训练五种方位的网络
Localization部分:用9中大小十种长宽比的窗口扫描原图,得到它们对应的得分
然后留下分数大于阈值的窗口,之后使用DNN做分类器,留下分类结果为正的窗口
Refine部分:对于之前得到的窗口,放大之后使用DNN得到相应mask,对这一步结果重复Localization部分的动作得到最终结果
DNN Training部分:对一幅图片采样得到多个部分进行训练,大小服从uniform分布,每一类物品训练一个网络
Problem:sample的大小都不一样,请问特么是怎么训练的?





Salient Object Detection: A Discriminative Regional Feature Integration Approach
基本想法:先做图像分割,有M层(每一层包含多个区域),每上一层由下一层merge得到
对每个区域做特征提取,特征分三种:Regional contrast descriptor,Regional property descriptor,Regional backgroundness descriptor,人为规定
然后用随机森林回归得到区域特征与区域显著性得分的情况
预测时先把区域的得分赋给像素,然后通过一个函数把M层的得分结合起来,得到像素的最终得分
利用像素的得分来确定得分最高的区域即是我们所求


Scalable Object Detection using Deep Neural Networks
通过DNN得到给定数量窗口的坐标(左上角和右下角)以及该区域的confidence
假设将第i个框赋给第j类物品,之后计算损失=config-loss+match-loss
 
gi是已经确定的有对象的框的中心点,由人工标注得到
config-loss是为了最大化confidence
求分配X使F最小,然后再对框的坐标以及confidence求导来修正DNN的参数

0 0
原创粉丝点击