深度学习之自动编码器总结_20160216.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深度学习之自动编码器总结_20160216

 PAGE \* MERGEFORMAT 66 深度学习之自动编码器 代码模块说明 引言 实现自动便器的功能,除了本文档代码章节所列出的代码以外,还需要IMAGES.mat文件和minFunc功能模块。minFunc功能模块用于实现L-BFGS算法。具体算法可参看以下网址的文档: /wiki/index.php/UFLDL教程  HYPERLINK /wiki/index.php/UFLDL_Tutorial /wiki/index.php/UFLDL_Tutorial 代码中的checkNumericalGradient模块用于验证数值计算的梯度和解析法计算的梯度值之间的差距,不用于实现自动编码器的功能,可以不运行。 Train.m模块是整个自动编码器运行的顶层代码和框架; SampleIMAGES用于将图像数据文件IMAGES.mat中的图像数据的格式进行调整以便于后续处理。 initializeParameters模块用于对theta参数进行初始化; sparseAutoencoderCost模块用于实现自动编码器的核心功能; computeNumericalGradient模块用于计算数值梯度; display_networks模块用于通过图形化的形式显示计算结果; 说明文档和程序中符号对照表 1θθtheta2λλlamda3ρjrho4ρsparsityParam5βbeta 模块运行流程 前言:   现在来进入sparse autoencoder的一个实例练习,参考Ng的网页教程:HYPERLINK /wiki/index.php/Exercise:Sparse_Autoencoder \o Exercise:Sparse AutoencoderExercise:Sparse Autoencoder。这个例子所要实现的内容大概如下:从给定的很多张自然图片中截取出大小为8*8的小patches图片共10000张,现在需要用sparse autoencoder的方法训练出一个隐含层网络所学习到的特征。该网络共有3层,输入层是64个节点,隐含层是25个节点,输出层当然也是64个节点了。 ?   实验基础:   其实实现该功能的主要步骤还是需要计算出网络的损失函数以及其偏导数,具体的公式可以参考前面的博文 HYPERLINK /tornadomeet/archive/2013/03/19/2970101.html Deep learning:八(Sparse Autoencoder)。下面用简单的语言大概介绍下这个步骤,方便大家理清算法的流程。   1. 计算出网络每个节点的输入值(即程序中的z值)和输出值(即程序中的a值,a是z的sigmoid函数值)。   2. 利用z值和a值计算出网络每个节点的误差值(即程序中的delta值)。   3. 这样可以利用上面计算出的每个节点的a,z,delta来表达出系统的损失函数以及损失函数的偏导数了,当然这些都是一些数学推导,其公式就是前面的博文HYPERLINK /tornadomeet/archive/2013/03/19/2970101.htmlDeep learning:八(Sparse Autoencoder)了。   其实步骤1是前向进行的,也就是说按照输入层——》隐含层——》输出层的方向进行计算。而步骤2是方向进行的(这也是该算法叫做BP算法的来源),即每个节点的误差值是按照输出层——》隐含层——》输入层方向进行的。   一些malab函数:   bsxfun:   C=bsxfun(fun,A,B)表达的是两个数组A和B间元素的二值操作,fun是函数句柄或者m文件,或者是内嵌的函数。在实际使用过程中fun有很多选择比如说加,减等,前面需要使用符号’@’.一般情况下A和B需要尺寸大小相同,如果不相同的话,则只能有一个维度不同,同时A和B中在该维度处必须有一个的维度为1。比如说bsxfun(@minus, A, mean(A)),其中A和mean(A)的大小是不同的,这里的意思需要先将mean(A)扩充到和A大小相同,然后用A的每个元素减去扩充后的mean(A)对应元素的值。   rand:   生成均匀分布的伪随机数。分布在(0~1)之间   主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数 ? ?? ?? ?? ? rand(m,n,double)生成指定精度的均匀分布的伪随机数,参数还可以是single ? ?? ?? ?? ? rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪随机数   randn:   生成标准

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档