《斯坦福大学-深度学习基础教程》由会员分享,可在线阅读,更多相关《斯坦福大学-深度学习基础教程(113页珍藏版)》请在金锄头文库上搜索。
1、UFLDL教程 From Ufldl 说明 本教程将阐述无监督特征学习和深入学习的主要观点 通过学习 你也将实现多个功能 学习 深度学习算法 能看到它们为你工作 并学习如何应用 适应这些想法到新问题上 本教程假定机器学习的基本知识 特别是熟悉的监督学习 逻辑回归 梯度下降的想法 如果 你不熟悉这些想法 我们建议你去这里 机器学习课程 http openclassroom stanford edu MainFolder CoursePage php course MachineLearning 并先完成第II III IV章 到逻辑回归 稀疏自编码器 神经网络 反向传导算法 梯度检验与高级优化
2、自编码算法与稀疏性 可视化自编码器训练结果 稀疏自编码器符号一览表 Exercise Sparse Autoencoder 矢量化编程实现 矢量化编程 逻辑回归的向量化实现样例 神经网络向量化 Exercise Vectorization 预处理 主成分分析与白化 主成分分析 白化 实现主成分分析和白化 Exercise PCA in 2D Exercise PCA and Whitening Softmax回归 Softmax回归 Exercise Softmax Regression 自我学习与无监督特征学习 自我学习 Exercise Self Taught Learning Deep
3、Learning Ng wbx 建立分类用深度网络 从自我学习到深层网络 深度网络概览 栈式自编码算法 微调多层自编码算法 Exercise Implement deep networks for digit classification 自编码线性解码器 线性解码器 Exercise Learning color features with Sparse Autoencoders 处理大型图像 卷积特征提取 池化 Exercise Convolution and Pooling 注意 这条线以上的章节是稳定的 下面的章节仍在建设中 如有变更 恕不另行通知 请随 意浏览周围并欢迎提交反馈 建议
4、 混杂的 MATLAB Modules Style Guide Useful Links 混杂的主题 数据预处理 用反向传导思想求导 进阶主题 稀疏编码 稀疏编码 稀疏编码自编码表达 Exercise Sparse Coding 独立成分分析样式建模 独立成分分析 Exercise Independent Component Analysis 其它 Deep Learning Ng wbx Convolutional training Restricted Boltzmann Machines Deep Belief Networks Denoising Autoencoders K mean
5、s Spatial pyramids Multiscale Slow Feature Analysis Tiled Convolution Networks 英文原文作者 Andrew Ng Jiquan Ngiam Chuan Yu Foo Yifan Mai Caroline Suen Language English Retrieved from http deeplearning stanford edu wiki index php UFLDL E6 95 99 E7 A8 8B This page was last modified on 7 April 2013 at 18 26
6、 Deep Learning Ng wbx 神经网络 From Ufldl Contents 1 概述 2 神经网络模型 3 中英文对照 4 中文译者 概述 以监督学习为例 假设我们有训练样本集 那么神经网络算法能够提供一种复杂且 非线性的假设模型 它具有参数 可以以此参数来拟合我们的数据 为了描述神经网络 我们先从最简单的神经网络讲起 这个神经网络仅由一个 神经元 构成 以 下即是这个 神经元 的图示 这个 神经元 是一个以 及截距 为输入值的运算单元 其输出为 其中函数 被称为 激活函数 在本教程中 我们选用sigmoid函数作为激活函数 可以看出 这个单一 神经元 的输入 输出映射关系其
7、实就是一个逻辑回归 logistic regression 虽然本系列教程采用sigmoid函数 但你也可以选择双曲正切函数 tanh Deep Learning Ng wbx 1 3 4 8 U f l d l 2 6d e e p l e a r n i n g s t a n f o r d e d u w i k i i n d e x p h p E 4 B 8 A D E 6 9 6 8 7 E 8 A F 9 1 E 8 8 0 8 5 以下分别是sigmoid及tanh的函数图像 函数是sigmoid函数的一种变体 它的取值范围为 而不是sigmoid函数的 注意 与其它地方
8、包括OpenClassroom公开课以及斯坦福大学CS229课程 不同的是 这里我们不 再令 取而代之 我们用单独的参数 来表示截距 最后要说明的是 有一个等式我们以后会经常用到 如果选择 也 就是sigmoid函数 那么它的导数就是 如果选择tanh函数 那它的 导数就是 你可以根据sigmoid 或tanh 函数的定义自行推导这个等 式 Deep Learning Ng wbx 1 3 4 8 U f l d l 3 6d e e p l e a r n i n g s t a n f o r d e d u w i k i i n d e x p h p E 4 B 8 A D E 6
9、9 6 8 7 E 8 A F 9 1 E 8 8 0 8 5 神经网络模型 所谓神经网络就是将许多个单一 神经元 联结在一起 这样 一个 神经元 的输出就可以是另 一个 神经元 的输入 例如 下图就是一个简单的神经网络 我们使用圆圈来表示神经网络的输入 标上 的圆圈被称为偏置节点 也就是截距项 神经 网络最左边的一层叫做输入层 最右的一层叫做输出层 本例中 输出层只有一个节点 中间 所有节点组成的一层叫做隐藏层 因为我们不能在训练样本集中观测到它们的值 同时可以看 到 以上神经网络的例子中有3个输入单元 偏置单元不计在内 3个隐藏单元及一个输出单 元 我们用 来表示网络的层数 本例中 我们将
10、第 层记为 于是 是输入层 输出层是 本例神经网络有参数 其中 下面 的式子中用到 是第 层第 单元与第 层第 单元之间的联接参数 其实就是连接线上 的权重 注意标号顺序 是第 层第 单元的偏置项 因此在本例中 注意 没有其他单元连向偏置单元 即偏置单元没有输入 因为它们总是输出 同时 我们用 表示第 层的节点数 偏置单元不计在内 我们用 表示第 层第 单元的激活值 输出值 当 时 也就是第 个输入值 输入值的第 个特征 对于给定参数集合 我们的神经网络就可以按照函 数 来计算输出结果 本例神经网络的计算步骤如下 Deep Learning Ng wbx 1 3 4 8 U f l d l 4
11、 6d e e p l e a r n i n g s t a n f o r d e d u w i k i i n d e x p h p E 4 B 8 A D E 6 9 6 8 7 E 8 A F 9 1 E 8 8 0 8 5 我们用 表示第 层第 单元输入加权和 包括偏置单元 比如 则 这样我们就可以得到一种更简洁的表示法 这里我们将激活函数 扩展为用向量 分量的形 式 来表示 即 那么 上面的等式可以更简洁地表 示为 我们将上面的计算步骤叫作前向传播 回想一下 之前我们用 表示输入层的激活值 那么给定第 层的激活值 后 第 层的激活值 就可以按照下面步骤计算得到 将参数矩阵化
12、使用矩阵 向量运算方式 我们就可以利用线性代数的优势对神经网络进行快速求 解 目前为止 我们讨论了一种神经网络 我们也可以构建另一种结构的神经网络 这里结构指的是 神经元之间的联接模式 也就是包含多个隐藏层的神经网络 最常见的一个例子是 层的神经 网络 第 层是输入层 第 层是输出层 中间的每个层 与层 紧密相联 这种模式 下 要计算神经网络的输出结果 我们可以按照之前描述的等式 按部就班 进行前向传播 逐一 计算第 层的所有激活值 然后是第 层的激活值 以此类推 直到第 层 这是一个前 馈神经网络的例子 因为这种联接图没有闭环或回路 神经网络也可以有多个输出单元 比如 下面的神经网络有两层隐
13、藏层 及 输出层 有两个输出单元 Deep Learning Ng wbx 1 3 4 8 U f l d l 5 6d e e p l e a r n i n g s t a n f o r d e d u w i k i i n d e x p h p E 4 B 8 A D E 6 9 6 8 7 E 8 A F 9 1 E 8 8 0 8 5 要求解这样的神经网络 需要样本集 其中 如果你想预测的输出是多 个的 那这种神经网络很适用 比如 在医疗诊断应用中 患者的体征指标就可以作为向量的输 入值 而不同的输出值 可以表示不同的疾病存在与否 中英文对照 neural networks 神
14、经网络 activation function 激活函数 hyperbolic tangent 双曲正切函数 bias units 偏置项 activation 激活值 forward propagation 前向传播 feedforward neural network 前馈神经网络 参照Mitchell的 机器学习 的翻译 中文译者 孙逊 sunpaofu 林锋 xlfg 刘鸿鹏飞 just dark 许利杰 csxulijie 神经网络 反向传导算法 梯度检验与高级优化 自编码算法与稀疏性 可视化自编码器训练结果 稀疏自编 码器符号一览表 Exercise Sparse Autoenco
15、der Deep Learning Ng wbx 1 3 4 8 U f l d l 6 6d e e p l e a r n i n g s t a n f o r d e d u w i k i i n d e x p h p E 4 B 8 A D E 6 9 6 8 7 E 8 A F 9 1 E 8 8 0 8 5 Language English Retrieved from http deeplearning stanford edu wiki index php E7 A5 9E E7 BB 8F E7 BD 91 E7 BB 9C This page was last mod
16、ified on 7 April 2013 at 12 34 Deep Learning Ng wbx 反向传导算法 From Ufldl 假设我们有一个固定样本集 它包含 个样例 我们可以用批量梯度下降法来求 解神经网络 具体来讲 对于单个样例 其代价函数为 这是一个 二分之一的 方差代价函数 给定一个包含 个样例的数据集 我们可以定义整体代价函数为 以上公式中的第一项 是一个均方差项 第二项是一个规则化项 也叫权重衰减项 其目的是减小权重的 幅度 防止过度拟合 注 通常权重衰减的计算并不使用偏置项 比如我们在 的定义中就没有使用 一般来说 将偏置项包 含在权重衰减项中只会对最终的神经网络产生很小的影响 如果你在斯坦福选修过CS229 机器学习 课程 或者在 YouTube上看过课程视频 你会发现这个权重衰减实际上是课上提到的贝叶斯规则化方法的变种 在贝叶斯规则化方法 中 我们将高斯先验概率引入到参数中计算MAP 极大后验 估计 而不是极大似然估计 权重衰减参数 用于控制公式中两项的相对重要性 在此重申一下这两个复杂函数的含义 是针对单 个样例计算得到的方差代价函数 是整体样本代价函