看之前Autoencoder什么时候,我做了一些练习这里:http://ufldl.stanford.edu/wiki/index.php/Exercise:Sparse_Autoencoder 。其实 从11月开始做。有没有经过调试,后来,加班太多,我没有那么做。抽出时间调了一天。最终顺利完毕了。又拖到这周末才開始把实验结果整理成文。看来,做事还得趁热打铁,一气呵成。时间一久。积极性就没了。

最初依照练习中的建议,先实现了一个主要的代价函数。没有增加权值惩处项和稀疏约束项。梯度检查都过了,跑出来的cost看起来也非常收敛。但是权值的可视化结果就是不正确,见图1 。为了验证代码的正确性。还利用AE代码实现了一个8维输入的BC编码器,结果也是非常理想;又怀疑训练样本採样策略不够随机。从网上找了个代码换了下。结果还是不行。

重复看了代码也没发现问题,想到加上权值惩处项和稀疏约束项,还是不正确。这下疯了。

后来又折腾好久,最终OK了,原来加上权值惩处项和稀疏约束项就能解决。仅仅只是之前,改动的文件,不是MATLAB真正执行的文件。。。

AE的原理就不说了,现成代码在网上也能够找到。把几个实验结果贴一下,供參考。图1a是没有加稀疏项的可视化权值,图 1b是没有加权值惩处项的结果。看起来都是无规律的。图1加了权值惩处项和稀疏约束项。得到了符合预期的权值结果。依据材料中的解释就是图像的边缘。对于简单的BC编码,这两个约束项似乎没有影响。但通常来说。权值惩处项是为了约束W的取值以防止过拟合。而稀疏项的存在则是为了更好的表示特征。

a                                                                                     b

c

图1

AE实验最初来至于对人类视觉的研究,所以取的训练图像都是一些自然风景图片。依照《Natural Image Statistics》这本书的说法,之所以选取自然图像,是由于这些自然图像促进了人类视觉的进化,也就说人类视觉是在适应自然图像的过程中得到进化的,对自然图像中的结构特征是敏感的。而像建筑。汽车这些包括现代物体的图像。则没有起到类似的作用。

尽管这么说没错,但人类毕竟还是能识别汽车这些物体的。于是我做了个实验验证了一下:拿包括汽车。地铁2号线,东方明珠的一些图像训练相同的AE,结果见图2。

图2

和拿风景图像做出来的结果并没有太大不同。尽管看起来稍有不同,但即使同一训练集中选出的不相同样本得到的结果也是不同的,所以能够觉得是一样的吧。可见图像内容的影响并没有那本书中说得那么玄乎(实践,才是检验真理的唯一标准啊)。尝试解释一下。尽管人类视觉是为了自然环境而进化的,但显然其适应能力仅仅受限于物理层面的因素,如光波强度。频率等。至于内容是一辆车,还是一头牛,其图像形成的低层物理特征并没有统计上的差别。因此对于视觉低层处理是一样的(也许对高层级的处理有影响)。再发散一下,对于全然人造的图像,如屏幕截图,网页页面截图等。是否应该具有不同于普通光影图像的特征?是否无法训练出像图1c那样的边缘来?我还没尝试,有兴趣的同志能够验证一下。

无聊又验证了一下样本数对于训练结果的影响。

图3a。图3b,图3c各自是100个样本,10 0000个样本和100 0000个样本训练的结果。看来。100个样本对于成功抽取特征显然是不够的。貌似图c比图b更清晰?

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhd2VpbWVtYmVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="280" height="245" alt="">

a                                                                                              b

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhd2VpbWVtYmVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="280" height="245" alt="">

c

画画3

版权声明:本文博客原创文章,博客,未经同意,不得转载。

AutoEncoder一些实验结果,并考虑的更多相关文章

  1. Deep learning:四十二(Denoise Autoencoder简单理解)

    前言: 当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Be ...

  2. 降噪自动编码器(Denoising Autoencoder)

    起源:PCA.特征提取.... 随着一些奇怪的高维数据出现,比如图像.语音,传统的统计学-机器学习方法遇到了前所未有的挑战. 数据维度过高,数据单调,噪声分布广,传统方法的“数值游戏”很难奏效.数据挖 ...

  3. Autoencoder

    AutoencoderFrom Wikipedia An autoencoder, autoassociator or Diabolo network[1]:19 is an artificial n ...

  4. UFLDL实验报告2:Sparse Autoencoder

    Sparse Autoencoder稀疏自编码器实验报告 1.Sparse Autoencoder稀疏自编码器实验描述 自编码神经网络是一种无监督学习算法,它使用了反向传播算法,并让目标值等于输入值, ...

  5. 深度自编码器(Deep Autoencoder)MATLAB解读

    深度自编码器(Deep Autoencoder)MATLAB解读 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 这篇文章主要讲解Hinton在2006 ...

  6. (转) 变分自编码器(Variational Autoencoder, VAE)通俗教程

    变分自编码器(Variational Autoencoder, VAE)通俗教程 转载自: http://www.dengfanxin.cn/?p=334&sukey=72885186ae5c ...

  7. Deep learning:四十八(Contractive AutoEncoder简单理解)

    Contractive autoencoder是autoencoder的一个变种,其实就是在autoencoder上加入了一个规则项,它简称CAE(对应中文翻译为?).通常情况下,对权值进行惩罚后的a ...

  8. PRML读书会第十二章 Continuous Latent Variables(PCA,Principal Component Analysis,PPCA,核PCA,Autoencoder,非线性流形)

    主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:00:49 我今天讲PRML的第十二章,连续隐变量.既然有连续隐变量,一定也有离散隐变量,那么离散隐变量是 ...

  9. 栈式自动编码器(Stacked AutoEncoder)

    起源:自动编码器 单自动编码器,充其量也就是个强化补丁版PCA,只用一次好不过瘾. 于是Bengio等人在2007年的  Greedy Layer-Wise Training of Deep Netw ...

随机推荐

  1. jQuery获取多种input值的方法(转)

    获取input的checked值是否为true: 第一种: if($("input[name=item][value='val']").attr('checked')==true) ...

  2. icvPrecalculate

    /* *icvPrecalculate *作用:计算特征值,并排序 *详细来说也就是依据训练样本信息和haar特征信息,在函数内部引用icvGetTrainingDataCallback来 *分批计算 ...

  3. WIFI 状态栏显示的wifi信号强度与wifisetting列表不一致

    [DESCRIPTION] 状态栏显示的wifi信号强度与wifisetting列表不一致(不同步) [ANALYSIS] 1.apk都是接收RSSI_CHANGED intent,并调用WifiMa ...

  4. [Recompose] Add Local State to a Functional Stateless Component using Recompose

    Learn how to use the 'withState' and 'withHandlers' higher order components to easily add local stat ...

  5. Fragment之一:基本原理 分类: H1_ANDROID 2013-11-18 14:15 1642人阅读 评论(0) 收藏

    1.低版本API对Fragment的支持 Fragment必须被加载进Acitivity中,才能呈现.而在低于3.0版本的API中,由于不存在Fragment,因此必须使用support包: (1)对 ...

  6. 菜单之二:使用xml文件定义菜单 分类: H1_ANDROID 2013-11-03 09:39 1038人阅读 评论(0) 收藏

    参考<疯狂android讲义>2.10节 P174,参见归档project:XmlMenuDemo.zip 一般推荐使用XML文件定义菜单. 基本步骤如下: 1.定义布局文件 为简单显示原 ...

  7. Android多线程研究(3)——线程同步和互斥及死锁

    为什么会有线程同步的概念呢?为什么要同步?什么是线程同步?先看一段代码: package com.maso.test; public class ThreadTest2 implements Runn ...

  8. TortoiseGit拉取或推送项目提示 HTTP Basic: Access denied fatal: Authentication failed.

      TortoiseGit拉取或推送项目提示 HTTP Basic: Access denied fatal: Authentication failed. 大体意思是,HTTP基本认证失败,访问被拒 ...

  9. 文件流结尾的EOF详解

    我学习C语言的时候,遇到的一个问题就是EOF. 它是end of file的缩写,表示"文字流"(stream)的结尾.这里的"文字流",可以是文件(file) ...

  10. 200行代码,7个对象——让你了解ASP.NET Core框架的本质

    原文:200行代码,7个对象--让你了解ASP.NET Core框架的本质 2019年1月19日,微软技术(苏州)俱乐部成立,我受邀在成立大会上作了一个名为<ASP.NET Core框架揭秘&g ...