漫谈Deep PCA与PCANet
又到了无聊的写博客的时间了,因为电脑在跑程序。眼下无事可做。我认为把昨天我看的一些论文方面的知识拿出来和大家分享一下。
美其名曰我是在研究”深度学习“。只是因为本人是穷屌丝一个,买不起GPU(当然明年我准备入手一块显卡来玩玩),因此这半年我找了个深度学习中的一个”廉价“的方向——PCANet。
首先给出PCANet的原始文献《PCANet:A Simple Deep Learning Baseline for Image Classification》。这时在稀疏表示大牛Ma Yi的主页上看到的,当时眼前一亮。认为这个确实不错。这个分享一些相关资源:
(1)原始文档以及源代码:PCANet的Homepage
(2)C++版PCANet源代码:C++版PCANet
(3)原始文档的中文翻译:PCANet中文版
稍后我会将源代码具体解释总结为博客与大家分享。
当然,在这篇文章中我并不打算在反复去解释PCANet相关的一些知识(网上已经有非常多类似的博客),写这篇博客的目的是由于昨天我看到了PCANet的前身:Deep PCA,相应文献的名称为:《Face Recognition Using Deep PCA》,这篇文章网上应该非常easy找到,当然也能够直接在以下留言或者发邮件,我看到之后会及时把论文发给大家。
没错,当我看到Deep PCA时。第一印象就是”这是PCANet的老爸“。接下来我们具体的对照分析一下这两个方法。
1、网络结构
Deep PCA结构例如以下:
PCANet结构例如以下:
接下来简单分析一下两者的异同:
(1)两者网络冊数同样。都是一个双层网络
(2)所用分类器同样。两者在终于分类器的选择上都不约而同的选择了K近邻分类器(KNN),一个非常重要的原因是他们都通过单训练样本来进行的分类。
(3)每层的滤波器个数不同。Deep PCA每层都仅仅有一个滤波器,PCANet第一层有八个滤波器。第二层也是八个滤波器(也就是PCA映射核。原文献中有明白说明)。
(4)特征提取手段不同。Deep PCA将第一层和第二层的特征融合后作为提取到的特征。相当于进行了层间特征融合。而PCANet仅仅使用了第二层的输出特征作为提取到的深度特征。没有层间特征融合的思想。
2、算法流程
在算法设计方面Deep PCA要比PCANet简单很多,因此我们重点描写叙述PCANet的算法流程。然后在针对他们之间的差异进行讨论。PCANet的算法流程例如以下:
具体的算法描写叙述參见PCANet中文版。这里概括的描写叙述一下关键算法流程。首先是第一层的PCA映射分解:
然后是在第二层,以第一层的输出为输入,再次进行一次PCA映射分解:
然后取第二层的映射输出,进行哈希编码:
然后进行直方图编码。作为特征输出:
以上是PCANet的算法流程。接下来我们介绍Deep PCA的算法流程:
首先对训练样本进行ZCA白化:
然后在第一层,进行一次PCA映射:
然后在第二层。以第一层的结果为输出。再次进行一次PCA映射:
然后将两次映射的结果融合成特征向量进行输出。特征提取完毕。
分析一下两者在算法层面上的异同点:
(1)预处理方面。Deep PCA首先对训练样本进行了ZCA白化。而PCANet则没有这一步处理过程。
(2)Deep PCA用的是传统的一维PCA。而PCANet则是使用了2DPCA(这点很重要)。
(3)Deep PCA直接将映射结果作为了特征。而PCANet则是将得到的特征先进行哈希编码,再直方图分块编码后,再进行的特征输出,这也造成了两者在输出特征的维数上产生了巨大差异,Deep PCA第一层和第二层分别为500维和150维,而PCANet的特征输出则高达几十万维。
以上就是Deep PCA和PCANet的一些异同点。之前在读论文时感觉这个有点价值,就顺手写了出来。并且在写这篇博客时我貌似有点发烧。并且还恰好被老师批评了一通。因此语言表达可能不到位,可能有几个错别字,大家见谅。
漫谈Deep PCA与PCANet的更多相关文章
- 卷积神经网络的变种: PCANet
前言:昨天和大家聊了聊卷积神经网络,今天给大家带来一篇论文:pca+cnn=pcanet.现在就让我带领大家来了解这篇文章吧. 论文:PCANet:A Simple Deep Learning Bas ...
- XNOR-Net:二值化卷积神经网络
https://www.jianshu.com/p/f9b015cc4514 https://github.com/hpi-xnor/BMXNet BMXNet:基于MXNet的开源二值神经网络实现 ...
- Deep Learning 5_深度学习UFLDL教程:PCA and Whitening_Exercise(斯坦福大学深度学习教程)
前言 本文是基于Exercise:PCA and Whitening的练习. 理论知识见:UFLDL教程. 实验内容:从10张512*512自然图像中随机选取10000个12*12的图像块(patch ...
- Deep Learning 4_深度学习UFLDL教程:PCA in 2D_Exercise(斯坦福大学深度学习教程)
前言 本节练习的主要内容:PCA,PCA Whitening以及ZCA Whitening在2D数据上的使用,2D的数据集是45个数据点,每个数据点是2维的.要注意区别比较二维数据与二维图像的不同,特 ...
- PCANet: A Simple Deep Learning Baseline for Image Classification?----中文翻译
一 摘要 在本文中,我们提出了一个非常简单的图像分类深度学习框架,它主要依赖几个基本的数据处理方法:1)级联主成分分析(PCA);2)二值化哈希编码;3)分块直方图.在所提出的框架中,首先通过PCA方 ...
- Deep Learning学习随记(二)Vectorized、PCA和Whitening
接着上次的记,前面看了稀疏自编码.按照讲义,接下来是Vectorized, 翻译成向量化?暂且这么认为吧. Vectorized: 这节是老师教我们编程技巧了,这个向量化的意思说白了就是利用已经被优化 ...
- Deep Learning 学习笔记(9):主成分分析( PCA )与 白化( whitening )
废话: 这博客有三个月没更新了. 三个月!!!尼玛我真是够懒了!! 这三个月我复习什么去了呢? 托福………… 也不是说我复习紧张到完全没时间更新, 事实上我甚至有时间打LOL. 只是说,我一次就只能( ...
- PCANet: A Simple Deep Learning Baseline for Image Classification?--名词解释
1 上采样与下采样 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个: 使得图像符合显示区域的大小 生成对应图像的缩略图 下采样原理:对于一幅图像I尺 ...
- 深度学习笔记——PCA原理与数学推倒详解
PCA目的:这里举个例子,如果假设我有m个点,{x(1),...,x(m)},那么我要将它们存在我的内存中,或者要对着m个点进行一次机器学习,但是这m个点的维度太大了,如果要进行机器学习的话参数太多, ...
随机推荐
- python基础——8(装饰器)
一.nonlocal关键字 def outer(): num = 0 def inner(): # 如果想在被嵌套的函数中修改外部函数变量(名字)的值 nonlocal num # 将 L 与 E(E ...
- idea 中使用 出现 svn: E155036
在idea中使用svn checkout时 svn出现如上错误. 原因本地的工作副本太旧.command line进入本地工作副本的根目录,执行svn upgrade后 重启idea就可以了.
- 【RMAN】RMAN跨版本恢复(下)--大版本异机恢复
[RMAN]RMAN跨版本恢复(下)--大版本异机恢复 BLOG文档结构图 ORACLE_SID=ORA1024G 关于10g的跨小版本恢复参考:http://blog.chinaunix.net/u ...
- HDU 1874 最直接的最短路径问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路. ...
- [转]fedora国内源常见配置
1.参考:1.http://mirrors.ustc.edu.cn/2.http://mirrors.fedoraproject.org/publiclist#CN3.http://mirrors.n ...
- JPos学习
基于JPos的消息交换系统 消息交换系统需求解读 消息交换系统不不是一个具体的业务系统,而是业务系统的运转的基础框架: 他的运转是体现在报文交换上的: 要定义一个可被不同业务系统使用的报文规范: 报文 ...
- Codeforces Round #296 (Div. 2) D. Clique Problem [ 贪心 ]
传送门 D. Clique Problem time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- 出现 Assigning the return value of new by reference is deprecated in xxxx &&“Warning: Call-time pass-by-reference has been deprecated”怎么办?
自从php5.3,越来越多的人会遇到“Assigning the return value of new by reference is deprecated in xxxx”这样的提示,尤其是在国外 ...
- LightOJ1094 - Farthest Nodes in a Tree(树的直径)
http://lightoj.com/volume_showproblem.php?problem=1094 Given a tree (a connected graph with no cycle ...
- 2017多校Round4(hdu6067~hdu6079)
补题进度:10/13 1001 待填坑 1002(kmp+递推) 题意: 有长度为n(<=50000)的字符串S和长度为m(m<=100)的字符串T,有k(k<=50000)组询问, ...