训练完(稀疏)自编码器,我们还想把这自编码器学习到的函数可视化出来,好弄明白它到底学到了什么.我们以在10×10图像(即n=100)上训练自编码器为例.在该自编码器中,每个隐藏单元i对如下关于输入的函数进行计算: 我们将要可视化的函数,就是上面这个以2D图像为输入,并由隐藏单元i计算出来的函数.它是依赖于参数的(暂时忽略偏置项bi).需要注意的是,可看作输入的非线性特征.不过还有个问题:什么样的输入图像x可以让可让得到最大程度的激励?(通俗一点说,隐藏单元要找个什么样的特征?).这里我们必须给x…
UFLDL即(unsupervised feature learning & deep learning).这是斯坦福网站上的一篇经典教程.顾名思义,你将在这篇这篇文章中学习到无监督特征学习和深度学习的主要观点. UFLDL全文出处在这:http://ufldl.stanford.edu/wiki/index.php/UFLDL%E6%95%99%E7%A8%8B,本文为本人原创,参考了UFLDL的教程,是我自己个人对于这一系列教程的理解以及自己的实验结果.非盈利性质网站转载请在文章开头处著名本…
稀疏自编码器 Sparse Autoencoder 一神经网络(Neural Networks) 1.1 基本术语 神经网络(neural networks) 激活函数(activation function) 偏置项(bias units) 激活值(activation) 前向传播(forward propagation) 前馈神经网络(feedforward neural network) 1.2 神经元(neuron)模型 这个"神经元"是一个以及偏置项+1为输入值的运算单元,其…
最近开始看Deep Learning,随手记点,方便以后查看. 主要参考资料是Stanford 教授 Andrew Ng 的 Deep Learning 教程讲义:http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial.这个讲义已经有人翻译了(赞一个),可以参见邓侃的新浪博客http://blog.sina.com.cn/s/blog_46d0a3930101h6nf.html.另外,博客园里有一个前辈关于讲义中练习的一系列文…
任务:在这个问题中,你将实现稀疏自编码器算法,并且展示它怎么发现边缘是自然图像的一个好的表示. 在文件 sparseae_exercise.zip中,我们已经提供了一些Matlab中的初始代码,你应该将你的代码写在文件中的”YOUR CODE HERE“下面.你必须完成以下文件:samplesIMAGES.m, sparseAutoencoderCost.m, computeNumericalGradient.m.在train.m中的开始代码展示了这些函数是怎样被使用的. 明确地,在这个练习中你…
自动编码机更像是一个识别网络,只是简单重构了输入.而重点应是在像素级重构图像,施加的唯一约束是隐藏层单元的数量. 有趣的是,像素级重构并不能保证网络将从数据集中学习抽象特征,但是可以通过添加更多的约束确保网络从数据集中学习抽象特征. 稀疏自编码器(又称稀疏自动编码机)中,重构误差中添加了一个稀疏惩罚,用来限定任何时刻的隐藏层中并不是所有单元都被激活.如果 m 是输入模式的总数,那么可以定义一个参数 ρ_hat,用来表示每个隐藏层单元的行为(平均激活多少次).基本的想法是让约束值 ρ_hat 等于…
神经网络模型 简单的神经网络 前向传播 代价函数 对于单个例子 .其代价函数为: 给定一个包括m个例子的数据集,我们能够定义总体代价函数为: 以上公式中的第一项  是一个均方差项. 第二项是一个规则化项(也叫权重衰减项).其目的是减小权重的幅度.防止过度拟合. 反向传播算法 反向传播算法,它是计算偏导数的一种有效方法. 批量梯度下降法 梯度检验 给定一个被觉得能计算 的函数,我们能够用以下的数值检验公式 计算两端是否一样来检验函数是否正确. 自编码神经网络 整体代价函数…
以下仅为了自己方便查看,绝大部分参考来源:莫烦Python,建议去看原博客 一.添加层 def add_layer() 定义 add_layer()函数 在 Tensorflow 里定义一个添加层的函数可以很容易的添加神经层,为之后的添加省下不少时间. 神经层里常见的参数通常有weights.biases和激励函数. 然后定义添加神经层的函数def add_layer(),它有四个参数:输入值.输入的大小.输出的大小和激励函数,我们设定默认的激励函数是None. def add_layer(in…
show the code: # Plot training deviance def plot_training_deviance(clf, n_estimators, X_test, y_test): # compute test set deviance test_score = np.zeros((n_estimators,), dtype=np.float64) for i, y_pred in enumerate(clf.staged_predict(X_test)): test_s…
http://www.zhizihua.com/blog/post/602.html 说明:本教程将阐述无监督特征学习和深度学习的主要观点.通过学习,你也将实现多个功能学习/深度学习算法,能看到它们为你工作,并学习如何应用/适应这些想法到新问题上. 本教程假定机器学习的基本知识(特别是熟悉的监督学习,逻辑回归,梯度下降的想法),如果你不熟悉这些想法,我们建议你去这里 机器学习课程,并先完成第II,III,IV章(到逻辑回归) 稀疏自编码器 神经网络 反向传导算法 梯度检验与高级优化 自编码算法与…