任务:在这个问题中,你将实现稀疏自编码器算法,并且展示它怎么发现边缘是自然图像的一个好的表示。

在文件 sparseae_exercise.zip中,我们已经提供了一些Matlab中的初始代码,你应该将你的代码写在文件中的”YOUR CODE HERE“下面。你必须完成以下文件:samplesIMAGES.m, sparseAutoencoderCost.m, computeNumericalGradient.m.在train.m中的开始代码展示了这些函数是怎样被使用的。

明确地,在这个练习中你将实现一个稀疏自编码器,用8×8的图像块,使用L-BFGS最优化算法训练的。

第一步:产生训练集合

第一步是去产生一个训练集合。为了得到一个单一的训练样例x,随机从100张图片中选取一张,然后从选择的图像中随机采样一个8×8图像块,并且将图像块转化到一个64维的向量中去产生一个训练样本

完成在samplesIMAGES.m中的代码,你的代码将会采样10000个图像块并且将它们连接成一个64×10000的矩阵。

为了保证你的实现是对的,运行train.m中的Step 1,这个应该会产生一个来自数据库的具有200个块的随机样本图表。

实现窍门:当我们运行我们实现的sampleImages()时,花费时间会低于5秒。如果你的实现超过30秒,可能是因为你在每次选择一个随机图片时,意外地复制了整个512×512图像。通过复制一个512×512像素的图像10000次,这个可能会是你的实现很低效。要保证每次你想要切出一个8×8的图像块时,并没有复制了整幅图像。

第二步:稀疏自编码对象

执行代码去计算稀疏自编码代价函数Jsparse(W,b)以及Jsparse 对于不同参数的导数,使用sigmoid函数作为激活函数,

完成在sparseAutoencoderCost.m中的代码。

稀疏自编码器具有参数:矩阵向量。然而,为了方便表述,我们将会将这些参数都放在一个很长的参数向量θ中,具有s1s2 + s2s3 + s2 + s3个参数。转化(W(1),W(2),b(1),b(2))和θ的代码已经被放在启示代码中了。

实现技巧:对象Jsparse(W,b) 包含三项,the squared error term平方误差项,the weight decay term权重衰减项和the sparsity penalty稀疏惩罚项。你可以以自己想用的方式来实现这个,但是为了便于调试,你可以只首先计算平方误差项的代价函数和导数计算(反向传播),这个相当于设置λ=ß=0;并且在下一章中实现梯度检验算法要首先验证这个代码是正确的

Sparse autoencoder implementation 稀疏自编码器实现的更多相关文章

  1. DL二(稀疏自编码器 Sparse Autoencoder)

    稀疏自编码器 Sparse Autoencoder 一神经网络(Neural Networks) 1.1 基本术语 神经网络(neural networks) 激活函数(activation func ...

  2. Exercise:Sparse Autoencoder

    斯坦福deep learning教程中的自稀疏编码器的练习,主要是参考了   http://www.cnblogs.com/tornadomeet/archive/2013/03/20/2970724 ...

  3. Deep Learning 1_深度学习UFLDL教程:Sparse Autoencoder练习(斯坦福大学深度学习教程)

    1前言 本人写技术博客的目的,其实是感觉好多东西,很长一段时间不动就会忘记了,为了加深学习记忆以及方便以后可能忘记后能很快回忆起自己曾经学过的东西. 首先,在网上找了一些资料,看见介绍说UFLDL很不 ...

  4. (六)6.5 Neurons Networks Implements of Sparse Autoencoder

    一大波matlab代码正在靠近.- -! sparse autoencoder的一个实例练习,这个例子所要实现的内容大概如下:从给定的很多张自然图片中截取出大小为8*8的小patches图片共1000 ...

  5. UFLDL实验报告2:Sparse Autoencoder

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

  6. Deep Learning学习随记(一)稀疏自编码器

    最近开始看Deep Learning,随手记点,方便以后查看. 主要参考资料是Stanford 教授 Andrew Ng 的 Deep Learning 教程讲义:http://deeplearnin ...

  7. 七、Sparse Autoencoder介绍

    目前为止,我们已经讨论了神经网络在有监督学习中的应用.在有监督学习中,训练样本是有类别标签的.现在假设我们只有一个没有带类别标签的训练样本集合  ,其中  .自编码神经网络是一种无监督学习算法,它使用 ...

  8. CS229 6.5 Neurons Networks Implements of Sparse Autoencoder

    sparse autoencoder的一个实例练习,这个例子所要实现的内容大概如下:从给定的很多张自然图片中截取出大小为8*8的小patches图片共10000张,现在需要用sparse autoen ...

  9. 可视化自编码器训练结果&稀疏自编码器符号一览表

    训练完(稀疏)自编码器,我们还想把这自编码器学习到的函数可视化出来,好弄明白它到底学到了什么.我们以在10×10图像(即n=100)上训练自编码器为例.在该自编码器中,每个隐藏单元i对如下关于输入的函 ...

随机推荐

  1. 16 pep8 编码规范

    pep8 编码规范 Python Enhancement Proposals :python改进方案 https://www.python.org/dev/peps/ 1. 每级缩进用4个空格. 括号 ...

  2. 手机蓝牙APP扫描设备的时候异常断开(未完成)

    1.手机蓝牙APP打开立马就出现异常,测试在公司有这个问题,在宿舍没这个问题,怀疑是公司设备太多,导致扫描空间不够,或者扫描到奇怪的设备.数组越界之类,明天用log看一下 2. 看样子出了一个erro ...

  3. 【费元星原创】一键安装Hadoo2.7.6 集群完全分布式脚本-完美解决

    有Bug 欢迎反馈,我不烦:feiyuanxing@gmail.com 1 #!/bin/bash #@author:feiyuanxing [既然笨到家,就要努力到家] #@date:2017-01 ...

  4. Docker介绍及安装

    Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...

  5. redis 学习笔记三

    一.redis 复制 数据库复制指的是发生在不同数据库实例之间,单向的信息传播的行为,通常由被复制方和复制方组成,被复制方和复制方之间建立网络连接,复制方式通常为被复制方主动将数据发送到复制方,复制方 ...

  6. Qt-QML-Loader初步接触

    先说说为什么用到了QML的Loader,这里我就要先扯点别的,那就是QML自带的ColorDialog,QML的机制 是优先调用系统提供的ColorDialog,如果系统的ColorDialog的不可 ...

  7. RabbitMQ基础教程之使用进阶篇

    RabbitMQ基础教程之使用进阶篇 相关博文,推荐查看: RabbitMq基础教程之安装与测试 RabbitMq基础教程之基本概念 RabbitMQ基础教程之基本使用篇 I. 背景 前一篇基本使用篇 ...

  8. 【SpringCloud】 第九篇: 服务链路追踪(Spring Cloud Sleuth)

    前言: 必需学会SpringBoot基础知识 简介: spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选. ...

  9. vue-router爬坑记

    简介 因为我们用Vue开发的页面是单页面应用,就相当于只有一个主的index.html,这时候我们就不能使用a标签来进行页面的切换了,所以这时候我们今天的主角Vue-Router就闪亮的登场了 Vue ...

  10. 【CSVRead】-jmeter

    csv     read 读取文件