线性解码器

Contents

[hide]

  • 1稀疏自编码重述
  • 2线性解码器
  • 3中英文对照
  • 4中文译者

稀疏自编码重述

稀疏自编码器包含3层神经元,分别是输入层,隐含层以及输出层。从前面(神经网络)自编码器描述可知,位于神经网络中的神经元都采用相同的激励函数。在注解中,我们修改了自编码器定义,使得某些神经元采用不同的激励函数。这样得到的模型更容易应用,而且模型对参数的变化也更为鲁棒。

回想一下,输出层神经元计算公式如下:

其中 a(3) 是输出. 在自编码器中, a(3) 近似重构了输入 x = a(1)

S 型激励函数输出范围是 [0,1],当 f(z(3)) 采用该激励函数时,就要对输入限制或缩放,使其位于[0,1] 范围中。一些数据集,比如 MNIST,能方便将输出缩放到 [0,1] 中,但是很难满足对输入值的要求。比如, PCA 白化处理的输入并不满足[0,1] 范围要求,也不清楚是否有最好的办法可以将数据缩放到特定范围中。

线性解码器

设定 a(3) = z(3) 可以很简单的解决上述问题。从形式上来看,就是输出端使用恒等函数f(z) = z 作为激励函数,于是有 a(3) = f(z(3)) = z(3)。我们称该特殊的激励函数为线性激励函数 (称为恒等激励函数可能更好些)。

需要注意,神经网络中隐含层的神经元依然使用S型(或者tanh)激励函数。这样隐含单元的激励公式为  ,其中 是 S 型函数, x 是输入,W(1) 和 b(1) 分别是隐单元的权重和偏差项。我们仅在输出层中使用线性激励函数。

一个 S 型或 tanh 隐含层以及线性输出层构成的自编码器,我们称为线性解码器

在这个线性解码器模型中,。因为输出 是隐单元激励输出的线性函数,改变W(2) ,可以使输出值 a(3) 大于 1 或者小于 0。这使得我们可以用实值输入来训练稀疏自编码器,避免预先缩放样本到给定范围。

随着输出单元的激励函数的改变,这个输出单元梯度也相应变化。回顾之前每一个输出单元误差项定义为:

其中 y = x 是所期望的输出,  是自编码器的输出,  是激励函数.因为在输出层激励函数为f(z) = z, 这样 f'(z) = 1,所以上述公式可以简化为

当然,若使用反向传播算法来计算隐含层的误差项时:

因为隐含层采用一个 S 型(或 tanh)的激励函数 f,在上述公式中, 依然是 S 型(或 tanh)函数的导数。

中英文对照

线性解码器 Linear Decoders
稀疏自编码 Sparse Autoencoder
输入层 input layer
隐含层 hidden layer
输出层 output layer
神经元 neuron
神经网络 neural network
自编码器 autoencoder
激励函数 activation function
鲁棒 robust
S型激励函数 sigmoid activation function
tanh激励函数 tanh function
线性激励函数 linear activation function
恒等激励函数 identity activation function
隐单元 hidden unit
权重 weight
偏差项 error term
反向传播算法 backpropagation
from: http://ufldl.stanford.edu/wiki/index.php/%E7%BA%BF%E6%80%A7%E8%A7%A3%E7%A0%81%E5%99%A8

Stanford UFLDL教程 线性解码器相关推荐

  1. Stanford UFLDL教程 主成分分析(PCA)

    Stanford UFLDL教程 主成分分析 Contents [hide] 1 引言 2 实例和数学背景 3 旋转数据 4 数据降维 5 还原近似数据 6 选择主成分个数 7 对图像数据应用PCA算 ...

  2. Stanford UFLDL教程 独立成分分析

    独立成分分析 Contents [hide] 1概述 2标准正交ICA 3拓扑ICA 4中英文对照 5中文译者 概述 试着回想一下,在介绍 稀疏编码算法中我们想为样本数据学习得到一个超完备基(over ...

  3. Stanford UFLDL教程 稀疏编码

    稀疏编码 Contents [hide] 1稀疏编码 2概率解释 [基于1996年Olshausen与Field的理论] 3学习算法 4中英文对照 5中文译者 稀疏编码 稀疏编码算法是一种无监督学习方 ...

  4. Stanford UFLDL教程 深度网络概览

    深度网络概览 Contents [hide] 1概述 2深度网络的优势 3训练深度网络的困难 3.1数据获取问题 3.2局部极值问题 3.3梯度弥散问题 4逐层贪婪训练方法 4.1数据获取 4.2更好 ...

  5. Stanford UFLDL教程 自编码算法与稀疏性

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

  6. Stanford UFLDL教程 稀疏编码自编码表达

    稀疏编码自编码表达 Contents [hide] 1稀疏编码 2拓扑稀疏编码 3稀疏编码实践 3.1将样本分批为"迷你块" 3.2良好的s初始值 3.3可运行算法 4中英文对照 ...

  7. Stanford UFLDL教程 数据预处理

    数据预处理 Contents [hide] 1概要 2数据归一化 2.1简单缩放 2.2逐样本均值消减 2.3特征标准化 3PCA/ZCA白化 3.1基于重构的模型 3.2基于正交化ICA的模型 4大 ...

  8. Stanford UFLDL教程 卷积特征提取

    卷积特征提取 Contents [hide] 1概述 2全联通网络 3部分联通网络 4卷积 5中英文对照 6中文译者 概述 前面的练习中,解决了一些有关低分辨率图像的问题,比如:小块图像,手写数字小幅 ...

  9. Stanford UFLDL教程 微调多层自编码算法

    微调多层自编码算法 Contents [hide] 1介绍 2一般策略 3使用反向传播法进行微调 4中英文对照 5中文译者 介绍 微调是深度学习中的常用策略,可以大幅提升一个栈式自编码神经网络的性能表 ...

最新文章

  1. P1435 回文字串(DP)
  2. Redhat7.3、Oracle12C、4节点环境搭建
  3. C 为什么非要引入那几种类型转换?
  4. std::string中的反向迭代器rbegin()和rend()
  5. 图形化安装配置:安装oracle、新建数据库、用plsql连接oracle,套路明白了其实挺简单...
  6. 可以批量转modis投影_SNAP批量处理Sentinel2数据
  7. 字典推导式_Python基础-推导式
  8. Boost笔记--Thread--Ubuntu上初次使用时遇到的问题
  9. Python学习笔记之类(三)
  10. 以太坊—JSON RPC API
  11. GitHub上不错的Android开源项目(二)
  12. nodejs面试题笔记
  13. 十大验证码解决方案服务比较
  14. 可以免费下载任何文档(网页转换助手)
  15. ASP.NET Core 和 EF Core 系列教程——排序、筛选、分页和分组
  16. USACO 1.1.2 - Greedy Gift Givers(模拟)
  17. Mybatis(一)Mybatis的基本使用
  18. fastai 文本分类_使用Fastai v2和多标签文本分类器检查有毒评论
  19. HTML+CSS例子>太极
  20. 亿发软件:定制ERP管理系统在湖南建材行业的应用

热门文章

  1. 2014腾讯WE大会:开启未来的五大科技发展趋势
  2. php print_r this,PHP 打印函数之 print print_r
  3. 学习笔记Spark(四)—— Spark编程基础(创建RDD、RDD算子、文件读取与存储)
  4. python 稀疏数组搜索
  5. 小米6 android os,脱离安卓!小米6刷入全新系统:界面炫酷,可流畅日常使用!...
  6. python生成字母图片_Python 模拟动态产生字母验证码图片功能
  7. 破解IDEA2018的正确姿势
  8. 基础的VueJS面试题(附答案)
  9. 【Selenium 小知识】获取 token 和 cookies
  10. lazarus php,Lazarus  终于安装成功了