zoukankan      html  css  js  c++  java
  • Sparse autoencoder implementation 稀疏自编码器实现

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

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

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

    第一步:产生训练集合

          第一步是去产生一个训练集合。为了得到一个单一的训练样例x,随机从100张图片中选取一张,然后从选择的图像中随机采样一个8×8图像块,并且将图像块转化到一个64维的向量中去产生一个训练样本x in Re^{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函数作为激活函数,

    f(z) = frac{1}{{1+e^{-z}}}

    完成在sparseAutoencoderCost.m中的代码

    稀疏自编码器具有参数:矩阵W^{(1)} in Re^{s_1	imes s_2}W^{(2)} in Re^{s_2	imes s_3}向量b^{(1)} in Re^{s_2}b^{(2)} in Re^{s_3}。然而,为了方便表述,我们将会将这些参数都放在一个很长的参数向量θ中,具有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;并且在下一章中实现梯度检验算法要首先验证这个代码是正确的

  • 相关阅读:
    WCF开发实战系列二:使用IIS发布WCF服务
    电脑远程登录控制Android手机Webkey For Android使用教程
    WCF的https安全(ssl)访问实例
    IIS中“使用 XSL 样式表无法查看 XML 输入”问题的解决
    服务器禁止被ping的设置方法(图文)
    Windows Server 2008 R2 MSDN
    IIS7配置https
    C# 检查网络是否连通 判断远程文件是否存在 C#获取程序路径的方法中需要注意的地方
    c#,winform,treeview,选中节点,选中相应的全部子节点,取消节点,取消父节点,小技巧
    sql大全(一)
  • 原文地址:https://www.cnblogs.com/rong86/p/3519774.html
Copyright © 2011-2022 走看看