漫谈Deep PCA与PCANet

2024-08-28 18:18
文章标签 deep 漫谈 pca pcanet

本文主要是介绍漫谈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》,这篇文章网上应该很容易找到,当然也可以直接在下面留言或者发邮件,我看到之后会及时把论文发给大家。

  没错,当我看到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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115518

相关文章

漫谈设计模式 [12]:模板方法模式

引导性开场 菜鸟:老大,我最近在做一个项目,遇到了点麻烦。我们有很多相似的操作流程,但每个流程的细节又有些不同。我写了很多重复的代码,感觉很乱。你有啥好办法吗? 老鸟:嗯,听起来你遇到了典型的代码复用和维护问题。你有没有听说过“模板方法模式”? 菜鸟:模板方法模式?没听过。这是什么? 老鸟:简单来说,模板方法模式让你在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中。这样,你可

漫谈设计模式 [9]:外观模式

引导性开场 菜鸟:老鸟,我最近在做一个项目,感觉代码越来越复杂,我都快看不懂了。尤其是有好几个子系统,它们之间的调用关系让我头疼。 老鸟:复杂的代码确实让人头疼。你有没有考虑过使用设计模式来简化你的代码结构? 菜鸟:设计模式?我听说过一些,但不太了解。你觉得我应该用哪个模式呢? 老鸟:听起来你的问题可能适合用**外观模式(Facade Pattern)**来解决。我们可以一起探讨一下。

漫谈设计模式 [6]:适配器模式

引导性开场 菜鸟:老鸟,我最近在项目中遇到一个问题,我们的系统需要集成一个新的第三方库,但这个库的接口和我们现有的代码完全不兼容。我该怎么办? 老鸟:这是个常见的问题,很多开发者都会遇到这种情况。你有没有听说过适配器模式? 菜鸟:适配器模式?没有,能详细说说吗? 老鸟:当然可以!这就是我们今天要讨论的主题。适配器模式是一个设计模式,可以帮助我们解决你现在遇到的问题。 渐进式介绍概念 老

Deep Ocr

1.圈出内容,文本那里要有内容.然后你保存,并'导出数据集'. 2.找出deep_ocr_recognition_training_workflow.hdev 文件.修改“DatasetFilename := 'Test.hdict'” 310行 write_deep_ocr (DeepOcrHandle, BestModelDeepOCRFilename) 3.推理test.hdev

漫谈数仓五重奏

第一篇:漫谈数仓 什么是数据仓库?以下是百度百科的定义: 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。数据仓库的特征在于面向主题、集成性、稳定性和时变性。 从传统

《机器学习》PCA数据降维 推导、参数讲解、代码演示及分析

目录 一、主成分分析 1、什么是主成分分析? 2、什么是降维? 3、如何进行主成分分析         1)数据标准化         2)计算协方差矩阵         3)计算特征值和特征向量         4)选择主成分         5)构建投影矩阵         6)数据降维 4、为什么要进行主成分分析         1)数据可视化         2)

Introduction to Deep Learning with PyTorch

1、Introduction to PyTorch, a Deep Learning Library 1.1、Importing PyTorch and related packages import torch# supports:## image data with torchvision## audio data with torchaudio## text data with t

《机器学习》—— PCA降维

文章目录 一、PCA降维简单介绍二、python中实现PCA降维函数的介绍三、代码实现四、PCA降维的优缺点 一、PCA降维简单介绍 PCA(主成分分析,Principal Component Analysis)是一种常用的数据降维技术。它通过线性变换将原始数据转换到新的坐标系统中,使得任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,

ExoPlayer 漫谈之Sonic调整音量

提一个问题:如何在播放视频的时候调整声音的大小? 我们使用Android手机播放视频的时候,发现声音大了,我们手动调低音量;发现声音小了,我们手动调高音量。 这个过程中,都要依赖手动,如果你在不断地刷短视频的时候,如果需要用户不断地手动调整音量键,那这个体验是不能忍受的。 这对我们提了一个要求:我们能在解码音频流的时候通过矩阵运算调整音频原始数据的大小,达到调整音量的目的? 这个思路是可行

Face Recognition简记1-A Performance Comparison of Loss Functions for Deep Face Recognition

创新点 1.各种loss的比较 总结 很久没见到这么专业的比较了,好高兴。 好像印证了一句话,没有免费的午餐。。。。 ArcFace 和 Angular Margin Softmax是性能比较突出的