- 博客(54)
- 收藏
- 关注
原创 Caffe4——计算图像均值
均值削减是数据预处理中常见的处理方式,按照之前在学习ufldl教程PCA的一章时,对于图像介绍了两种:第一种常用的方式叫做dimension_mean(个人命名),是依据输入数据的维度,每个维度内进行削减,这个也是常见的做法;第二种叫做per_image_mean,ufldl教程上说,在natural images上训练网络时;给每个像素(这里只每个dimension)计算一个独立的均值和方差是m
2015-05-06 20:17:35
9010
2
原创 Caffe3——ImageNet数据集创建lmdb类型的数据
ImageNet数据集和cifar,mnist数据集最大的不同,就是数据量特别大;单张图片尺寸大,训练样本个数多;面对如此大的数据集,在转换成lmdb文件时;使用了很多新的类型对象。1,动态扩容的数组“vector”,动态地添加新元素2,pair类型数据对,用于存储成对的对象,例如存储文件名和对应标签3,利用opencv中的图像处理函数,来读取和处理大尺寸图像一:程序开始
2015-05-04 21:01:44
13718
14
原创 Caffe2——cifar10数据集创建lmdb或leveldb类型的数据
cifar10数据集和mnist数据集存储方式不同,cifar10数据集把标签和图像数据以bin文件的方式存放在同一个文件内,这种存放方式使得每个子cifar数据bin文件的结构相同,所以cifar转换数据代码比mnist的代码更加的模块化,分为源数据读取模块(image_read函数),把lmdb(leveldb)数据转换的变量声明,句柄(函数)调用都放到定义的caffe::db子空间中,这样简
2015-04-29 15:20:01
8615
2
原创 Caffe1——Mnist数据集创建lmdb或leveldb类型的数据
Leveldb和lmdb简单介绍Caffe生成的数据分为2种格式:Lmdb和Leveldb。它们都是键/值对(Key/Value Pair)嵌入式数据库管理系统编程库。虽然lmdb的内存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允许多种训练模型同时读取同一组数据集。因此lmdb取代了leveldb成为Caffe默认的数
2015-04-28 09:00:52
15052
3
转载 Google Protocol Buffer 的使用和原理
原文链接:http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 A
2015-04-28 08:21:28
1619
原创 深度学习研究理解11:Going deeper with convolutions
本文是Google公司的Christian Szegedy等大牛们于2014年提出的“深深”的网络,其中提出了很多新颖的结构和想法;并在ILSVRC2014中,获得了分类和检测第一的好成绩。摘要:本文提出了一个新深度网络的“结构”,命名为inception(开端之意,个人命名为起航);这个结构可以充分利用网络中“计算资源”(充分开发和利用每层提取的特征);在保证固定计算复杂度前提下,通过人
2015-02-08 11:15:31
11008
1
原创 深度学习研究理解10:Very Deep Convolutional Networks for Large-Scale Image Recognition
本文是牛津大学 visual geometry group(VGG)Karen Simonyan 和Andrew Zisserman 于14年撰写的论文,主要探讨了深度对于网络的重要性;并建立了一个19层的深度网络获得了很好的结果;在ILSVRC上定位第一,分类第二。一:摘要……从Alex-net发展而来的网络主要修改一下两个方面:1,在第一个卷基层层使用更小的filter尺寸和间
2015-02-06 13:37:33
21420
5
原创 深度学习研究理解9:Convolutional Neural Networks at Constrained Time Cost
本文是MSRA的何恺明在14年写的论文,通过一系列的替换实验,探讨了在限定复杂度和时间上,如何设计卷积网络结构,使得网络的性能最好。本文提出的CNN结构,在单个GPU上训练3到4天,在简单的10-view测试下获得了top-5 11.8%的准确率;做到了不尽快而且准确。摘要:本文主要结论,1在提升准确度上深度比宽度和filter尺寸更重要;2,尽管深度很重要,如果深度随意增加分类结果会停滞,甚
2015-02-04 16:59:35
5880
2
原创 深度学习研究理解8:Understanding Deep Architectures using a Recursive Convolutional Network
本文是纽约大学,David Eigen和Jason Rolfe等13年撰写的论文;和他们的上一篇通过deconvnet网络可视化来理解深度卷积网络不同的是,本文通过循环卷积网络来探究网络深度,参数个数,特征个数等网络结构对于网络性能的影响。摘要:层数,特征个数,filter尺寸,间隔数,pooling方式,pooling尺寸,连接方式,归一化,参数个数等都是影响卷积网络性能的因素;本文通过循环
2015-02-03 16:27:19
2853
原创 深度学习研究理解7:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
本文是MSRA何恺明于13年撰写的论文,主要是把经典的Spatial Pyramid Pooling结构引入CNN中,从而使CNN可以处理任意size和scale的图片;这中方法不仅提升了分类的准确率,而且还非常适合Detection,比经典的RNN快速准确。一:介绍目前流行的CNN都需要固定size和scale的输入图片;所以基本上都是通过剪裁(crop)和wrap(这个不知道怎么翻译)
2015-02-02 21:03:14
26347
12
原创 深度学习研究理解6:OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks
本文是纽约大学Yann LeCun团队中Pierre Sermanet ,David Eigen和张翔等在13年撰写的一篇论文,本文改进了Alex-net,并用图像缩放和滑窗方法在test数据集上测试网络;提出了一种图像定位的方法;最后通过一个卷积网络来同时进行分类,定位和检测三个计算机视觉任务,并在ILSVRC2013中获得了很好的结果。一,介绍 卷积网络的主要优势是提供en
2015-02-01 20:27:01
17390
6
原创 深度学习研究理解5:Visualizing and Understanding Convolutional Networks
Visualizing and understandingConvolutional Networks本文是Matthew D.Zeiler 和Rob Fergus于(纽约大学)13年撰写的论文,主要通过Deconvnet(反卷积)来可视化卷积网络,来理解卷积网络,并调整卷积网络;本文通过Deconvnet技术,可视化Alex-net,并指出了Alex-net的一些不足,最后修改网络结构,使得
2015-01-30 20:20:32
14784
6
原创 深度学习研究理解4:ImageNet Classification with Deep Convolutional Neural Network
本文是Alex和Hinton参加ILSVRC2012比赛的卷积网络论文,本网络结构也是开启Imagenet数据集更大,更深CNN的开山之作,本文对CNN的一些改进成为以后CNN网络通用的结构;在一些报告中被称为Alex-net,之后在Imagenet上取得更好结果的ZF-net,SPP-net,VGG等网络,都是在其基础上修改得到。摘要:本文训练了一个大的,深的CNN,去分类高像素的图片。
2015-01-27 21:02:25
14987
5
原创 深度学习论文理解3:Flexible, high performance convolutional neural networks for image classification
本文是11年Dan C.Ciresan的作品,主要贡献是提供了一种快速,全GPU部署的CNN计算框架,通过快速的GPU计算可以让作者尝试相对以前的神经网络更深的CNN,而且是仅仅使用监督学习的方式。本来不想写本文的总结的,但是最近看了ImageNet上取得好成绩的网络,都是通过GPU(caffe,convnet)部署,仅仅通过监督学习的方式来训练更加深的CNN,所以打算总结一下本文,作为在GP
2015-01-26 10:30:52
3438
原创 深度学习论文理解2:on random weights and unsupervised feature learning
本文是2010年斯坦福大学andrew ng他们团队的作品;让人莫名其妙的是,本文有两个版本,两个版本略有差别版本1:http://www.icml2011.org/papers/551_icmlpaper.pdf ;2:http://web.stanford.edu/~asaxe/papers/Saxe%20et%20al.%20%202010%20%20On%20Random%20Weigh
2015-01-24 16:15:01
2411
原创 深度学习论文理解1:what is the best multi-stage architecture for Object Recognition
本文是09年,Yann LeCun团队的一篇论文,论文主要讨论了卷积结构网络中各个layer的作用,进而探讨一个好的深度结构分类网络应该是什么样子的。摘要:在很多目标识别系统的特征提取阶段主要分为三部分:卷积,非线性变换和pooling本文提出三个问题:1.卷积层后的非线性变换如何应用分类准确率2.采用无监督学习的filter,或者监督学的filter比随机权值的filter分类效
2015-01-24 11:04:46
4788
原创 神经网络学习算法matlab应用分析
摘要:为了提高BP神经网络模型运用效果,基于不同方法提出了很多的优化算法算法例如从经典梯度下降法,到复杂的BFGS,LM算法等,然而不同的算法在不同的应用场景有不同的效果,本文以matlab神经网络工具箱为基础,比较各种优化算法在预测分类问题中的应用效果,并分析各种算法优缺点,为神经网络优化算法的选择提供建议。
2014-10-30 20:42:14
12729
1
原创 隐马尔科夫模型matlab工具箱说明
隐马尔可夫模型(HiddenMarkov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程;是序列数据处理和统计学习的重要模型。其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析。本论文首先从隐马尔可夫模型基本理论和模型的表达式出发,系统的介绍了引马尔科夫模型和算法原理,并结合两个版本的MATLAB算法,对具体问题进行验证求解,并分析比较算法
2014-10-30 20:04:50
31593
8
原创 DeepLearnToolbox代码详解——SAE,DAE模型
一:引言.sae,dae,dropout模型简介上面提到的三个模型都是在经典的多层神经网络的基础上加深构架得到;例如sae(Stack autoencoder)就是理堆叠多个autoencoder,然后使用fine_tuning过程;dae(Denoising autoencoder)是在标准的sae基础上给输入数据加入噪声,利用污染后的数据进行sae;dropout 则是随机忽略隐层节点来训
2014-07-16 16:31:48
28023
31
原创 Dropout原理,代码浅析
Dropout原理介绍因为在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象。在训练bp网络时经常遇到的一个问题,过拟合指的是模型在训练数据上损失函数比较小,预测准确率较高(如果通过画图来表示的话,就是拟合曲线比较尖,不平滑,泛化能力不好),但是在测试数据上损失函数比较大,预测准确率较低。常用的防治过拟合的方法是在模型的损失函数中,需要
2014-07-15 09:08:07
15990
原创 Denosing Autoencoder训练过程代码详解
普通deep autoencoder训练过程一:加载数据 二:pre_training阶段2.1初始化DAE网络框架sae = saesetup([784 100 100]);%建立一个3层网络在函数saesetup函数内部,循环调用nnsetup函数,此处2次调用nnsetup函数最终saesetup([784 100 100]);建立一个2个autoencoder网络
2014-07-13 17:27:59
10629
4
原创 Denosing Autoencoder原理以及结果简介
本文是看了,bengio的论文Extracting and composing robust features withdenoising autoencoders,整理而得。文章开始先提出什么是好的特征,或者好的特征应该具有的性质:1最大化的保留原始信息,2稀疏性3 鲁棒性,即使局部输入数据被污染的时候,也能够学习到稳定的特征表达原理简介:Denosing autoe
2014-07-13 17:07:18
6625
原创 ICA特征提取
看完了ICA的一整套原理介绍后,感觉完整的介绍和andrew ng的课程中的ICA特征提取关系不是很大;在ICA的理论中,主要用于盲源分离的,也就是混合的观测数据X,通过一个正交的且其范数为1的分离矩阵W(其实是实现旋转变换),分解为相互独立的原始信号数据S=WX。(这里要求S,W,X都为n*n的矩阵)学习完成后自己有一些理解和不解。数据处理在实际的造作过程中,先通过均值削减和白化操作
2014-07-03 08:31:10
6302
原创 ICA算法简介
ICA算法的研究可分为基于信息论准则的迭代估计方法和基于统计学的代数方法两大类,从原理上来说,它们都是利用了源信号的独立性和非高斯性。基于信息论的方法研究中,各国学者从最大熵、最小互信息、最大似然和负熵最大化等角度提出了一系列估计算法。如FastICA算法, Infomax算法,最大似然估计算法等。基于统计学的方法主要有二阶累积量、四阶累积量等高阶累积量方法。
2014-07-02 11:15:17
26748
2
原创 ICA 原理以及相关概率论,信息论知识简介
一:引言看完了sparse coding,开始看ICA模型,本来ng的教程上面就只有一个简短的介绍,怎奈自己有强迫症,爱钻牛角尖,于是乎就搜索了一些ICA的介绍文章(都是从百度文库中搜来的),看完之后感觉这个略懂一二,遂写文以记之,一为加深印象,二为分享交流。ICA IndependentComponent Analysis 又名独立分量分析。ICA是20世纪90年代发展起来的一种新
2014-06-30 21:01:40
4623
原创 Autoencoder ,Sparse Coding ,Sparse autoencoder 简介
最近刚刚运行完成sparse coding;才解决了自己的困惑,以前学习完Sparse autoencoder从感觉这两个东西是“一丘之貉”;但是运行完成之后才发现他们两个有很大的不同,虽然都是对数据进行变换,但是二者的变换原理是完全不同的。详细的下面纤细介绍。1.AutoencoderAutoencdoer这个概念最早应该是出自hinton在science杂志上发表的哪一篇开启深度学
2014-06-24 22:13:37
4079
1
原创 kmeans特征提取原理,详细代码图解分析
一、数据、数据预处理2.1数据: 下载的CIFAR-10数据库;其中的每个data_batch都是10000x3072大小的,即有1w个样本图片,每个图片都是32*32且rgb三通道的,这里的每一行表示一个样本。提取40W个训练patches:patches = zeros(numPatches, rfSize*rfSize*3);%400000*108for i=1:numP
2014-05-28 22:02:23
19742
1
原创 k-means聚类原理 代码分析
K-means聚类算法聚类算法,不是分类算法。分类算法是给一个数据,然后判断这个数据属于已分好的类中的具体哪一类。聚类算法是给一大堆原始数据,然后通过算法将其中具有相似特征的数据聚为一类。这里的k-means聚类,是事先给出原始数据所含的类数,然后将含有相似特征的数据聚为一个类中。 K-means也是聚类算法中最简单的一种了,但是里面包含的思想却是不一般。最早我使用并实现这
2014-05-28 11:13:04
5696
转载 DeepLearning(深度学习)原理与实现(一)
经过三年的狂刷理论,觉得是时候停下来做些有用的东西了,因此决定开博把他们写下来,一是为了整理学过的理论,二是监督自己并和大家分享。先从DeepLearning谈起吧,因为这个有一定的实用性(大家口头传的“和钱靠的很近”),国内各个大牛也都谈了不少,我尽量从其他方面解释一下。 DeepLearning算是多伦多大学Geoffery hinton教授第二春吧,第一春就是传统神经网
2014-05-20 09:54:28
2266
转载 【面向代码】学习 Deep Learning(二)Deep Belief Nets(DBNs)
==========================================================================================最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的
2014-05-20 09:27:37
4026
1
原创 卷积神经网络CNN介绍:结构框架,源码理解
卷积神经网络介绍:结构框架,源码理解 1.卷积神经网络结构卷积神经网络是一个多层的神经网络,每层都是一个变换(映射),常用卷积convention变换和pooling池化变换,每种变换都是对输入数据的一种处理,是输入特征的另一种特征表达;每层由多个二维平面组成,每个平面为各层处理后的特征图(feature map)。常见结构:输入层为训练数据,即原始数据,网络中的每一个
2014-05-08 10:14:25
19580
3
原创 卷积Convolution和池化pooling特征提取,分类
前言: 本次实验是练习convolution和pooling的使用,更深一层的理解怎样对大的图片采用convolution得到每个特征的输出结果,然后采用pooling方法对这些结果进行计算,使之具有平移不变等特性。实验参考的是斯坦福网页教程:Exercise:Convolution and Pooling。也可以参考前面的博客:Deep learning:十七(Linear Decod
2014-03-26 11:30:27
17932
3
原创 linear Decoder (线性自动稀疏编码)
一、简介 稀疏自编码包含3层神经元,分别是输入层,隐含层以及输出层。自编码网络中的神经元采用的是相同的激励函数(S型函数)。 S型函数的输出范围是[0,1],当神经元采用S型函数时,其输出范围也在[0,1]内;由于输出范围在0和1之间,这就要求采用自码时,对输入数据进行限制或者放缩,使其范围也在0和1之间。一些数据集,比如mnist,能很方便的将输出放缩到0和1之间;但是很难满足对
2014-03-24 11:06:34
3338
原创 Deep Networks for Classification 和 栈式自编码 代码详细解析
本文分为三部分,前言和实验基础copy自tornadomeet博客;后面代码详解为自己原创。前言: 本次是练习2个隐含层的网络的训练方法,每个网络层都是用的sparse autoencoder思想,利用两个隐含层的网络来提取出输入数据的特征。本次实验验要完成的任务是对MINST进行手写数字识别,实验内容及步骤参考网页教程Exercise: Implement deep network
2014-03-22 16:17:07
4749
3
原创 特征学习 (Self_taught Learning)
简介 如果已经有一个足够强大的机器学习算法,为了获得更好的性能,最靠谱的方法之一是给这个算法以更多的数据。机器学习界甚至有个说法:“有时候胜出者并非有最好的算法,而是有更多的数据。” 在自学习和无监督特征学习问题上,可以给算法以大量的未标注数据,学习出较好的特征描述。在尝试解决一个具体的分类问题时,可以基于这些学习出的特征描述和任意的(可能比较少的)已标注数据,使
2014-03-20 11:07:32
6018
转载 关于特征和特征学习的重要性
原文链接:http://blog.csdn.net/zouxy09/article/details/8775488因为我们要学习的是特征的表达,那么关于特征,或者说关于这个层级特征,我们需要了解地更深入点。所以在说Deep Learning之前,我们有必要再啰嗦下特征(呵呵,实际上是看到那么好的对特征的解释,不放在这里有点可惜,所以就塞到这了)。 四、关于特征
2014-03-20 09:43:19
2301
1
原创 PCA ,PCAWhitening ,ZCAWhitening
PCA ,PCAWhitening,ZCAWhitening白化的目的:举例来说,假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的。白化的目的就是降低输入的冗余性;更正式的说,我们希望通过白化过程使得学习算法的输入具有如下性质:(i)特征之间相关性较低;(ii)所有特征具有相同的方差一、Pca白化 PcaWhitening (1)消除数据的相
2014-03-18 11:05:22
3762
转载 SVD奇异值分解:主成分分析的矩阵论解释
SVD分解SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是因为SVD可以说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章。本节讨论SVD分解相关数学问题,一个分为3个部分,第一部分讨论线性代数中的一些基础知识,第二部分讨论SVD矩阵分解,第三部分讨论低阶近似。本节讨论的矩阵都是实数矩阵。基础知识1
2014-03-18 09:54:29
3391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人