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

在文件 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. Codeforces Round #482 (Div. 2) :B - Treasure Hunt

    题目链接:http://codeforces.com/contest/979/problem/B 解题心得: 这个题题意就是三个人玩游戏,每个人都有一个相同长度的字符串,一共有n轮游戏,每一轮三个人必 ...

  2. vue组件化编程

    vue文件包含3个部分 <template> <div></div> </template> <script> export default ...

  3. 北京Uber优步司机奖励政策(10月5日~10月11日)

    用户组:优步北京人民优步A组(适用于10月5日-10月11日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/ ...

  4. agc 027 B - Garbage Collector

    B - Garbage Collector https://agc027.contest.atcoder.jp/tasks/agc027_b 题意: x坐标轴上n个垃圾,有一个机器人在从原点,要清扫垃 ...

  5. Python之celery

    一.celery简介 Celery是一个Python开发的异步分布式任务调度模块.celery本身不提供消息服务,使用第三方服务,也就是borker来传递任务,目前支持rebbing, redis, ...

  6. What is the "internal" interface and port for on Openvswitch?

    转:https://ask.openstack.org/en/question/4276/what-is-the-internal-interface-and-port-for-on-openvswi ...

  7. MySQL高级-MySQL安装

    1.mysql安装 检查系统是否安装过mysql 查询命令:rpm -qa|grep -i mysql 删除命令:rpm -e RPM软件包名(该名字是上一个命令查出来的名字) 安装命令:rpm -i ...

  8. Andorid自定义attr的各种坑

    本文来自网易云社区 作者:孙有军 在开发Andorid应用程序中,经常会自定义View来实现各种各样炫酷的效果,在实现这吊炸天效果的同时,我们往往会定义很多attr属性,这样就可以在XML中配置我们想 ...

  9. libevent学习二(Working with an event loop)

    Runing the loop #define EVLOOP_ONCE             0x01 #define EVLOOP_NONBLOCK         0x02 #define EV ...

  10. .net MVC 图片水印,半透明

    filter:alpha(opacity=50):这个是为IE6设的,可取值在0-100,其它三个0到1.-moz-opacity:0.5; 这个是为了支持一些老版本的Mozilla浏览器.-khtm ...