一.卷积 卷积神经网络(Convolutional Neural Networks)是一种在空间上共享参数的神经网络.使用数层卷积,而不是数层的矩阵相乘.在图像的处理过程中,每一张图片都可以看成一张“薄饼”,其中包括了图片的高度.宽度和深度(即颜色,用RGB表示). 在不改变权重的情况下,把这个上方具有k个输出的小神经网络对应的小块滑遍整个图像,可以得到一个宽度.高度不同,而且深度也不同的新图像. 卷积时有很多种填充图像的方法,以下主要介绍两种,一种是相同填充,一种是有效填充. 如图中紫色方框所…
UFLDL深度学习笔记 (六)卷积神经网络 1. 主要思路 "UFLDL 卷积神经网络"主要讲解了对大尺寸图像应用前面所讨论神经网络学习的方法,其中的变化有两条,第一,对大尺寸图像的每个小的patch矩阵应用相同的权值来计算隐藏层特征,称为卷积特征提取:第二,对计算出来的特征矩阵做"减法",把特征矩阵纵横等分为多个区域,取每个区域的平均值(或最大值)作为输出特征,称为池化.这样做的原因主要是为了降低数据规模,对于8X8的图像输入层有64个单元,而100X100的图像…
UFLDL深度学习笔记 (五)自编码线性解码器 1. 基本问题 在第一篇 UFLDL深度学习笔记 (一)基本知识与稀疏自编码中讨论了激活函数为\(sigmoid\)函数的系数自编码网络,本文要讨论"UFLDL 线性解码器",区别在于输出层去掉了\(sigmoid\),将计算值\(z\)直接作为输出.线性输出的原因是为了避免对输入范围的缩放: S 型激励函数输出范围是 [0,1],当$ f(z^{(3)}) $采用该激励函数时,就要对输入限制或缩放,使其位于 [0,1] 范围中.一些数据…
CNN学习笔记:卷积神经网络 卷积神经网络 基本结构 卷积神经网络是一种层次模型,其输入是原始数据,如RGB图像.音频等.卷积神经网络通过卷积(convolution)操作.汇合(pooling)操作和非线性激活函数的映射等一系列操作的层层堆叠,将高层语义信息逐层由原始信息中抽取出来,逐层抽象. 将信息逐渐抽象出来的过程称为前馈运算(Feed-Forward).通过计算预测值与真实值之间的误差和损失,凭借反向传播算法(Back-Propagation algorithm)将误差或损失由最后一层逐…
UFLDL深度学习笔记 (一)基本知识与稀疏自编码 前言 近来正在系统研究一下深度学习,作为新入门者,为了更好地理解.交流,准备把学习过程总结记录下来.最开始的规划是先学习理论推导:然后学习一两种开源框架:第三是进阶调优.加速技巧.越往后越要带着工作中的实际问题去做,而不能是空中楼阁式沉迷在理论资料的旧数据中.深度学习领域大牛吴恩达(Andrew Ng)老师的UFLDL教程 (Unsupervised Feature Learning and Deep Learning)提供了很好的基础理论推导…
UFLDL深度学习笔记 (七)拓扑稀疏编码与矩阵化 主要思路 前面几篇所讲的都是围绕神经网络展开的,一个标志就是激活函数非线性:在前人的研究中,也存在线性激活函数的稀疏编码,该方法试图直接学习数据的特征集,利用与此特征集相应的基向量,将学习得到的特征集从特征空间转换到样本数据空间,这样可以用特征集重构样本数据. ​ 数据集.特征集.基向量分别表示为\(x.A.s\).构造如下目标代价函数,对估计误差的代价采用二阶范数,对稀疏性因子的惩罚代价采用一阶范数.原文中没有对误差项在数据集上做平均,真实情…
UFLDL深度学习笔记 (四)用于分类的深度网络 1. 主要思路 本文要讨论的"UFLDL 建立分类用深度网络"基本原理基于前2节的softmax回归和 无监督特征学习,区别在于使用更"深"的神经网络,也即网络中包含更多的隐藏层,我们知道前一篇"无监督特征学习"只有一层隐藏层.原文深度网络概览不仅给出了深度网络优势的一种解释,还总结了几点训练深度网络的困难之处,并解释了逐层贪婪训练方法的过程.关于深度网络优势的表述非常好,贴在这里. ​ 使用深度…
UFLDL深度学习笔记 (二)Softmax 回归 本文为学习"UFLDL Softmax回归"的笔记与代码实现,文中略过了对代价函数求偏导的过程,本篇笔记主要补充求偏导步骤的详细推导. 1. 详细推导softmax代价函数的梯度 经典的logistics回归是二分类问题,输入向量$ x^{(i)}\in\Re^{n+1}$ 输出0,1判断\(y^{(i)}\in{\{0,1\}}\),Softmax回归模型是一种多分类算法模型,如图所示,输出包含k个类型,\(y^{(i)}\in{\…
UFLDL深度学习笔记 (三)无监督特征学习 1. 主题思路 "UFLDL 无监督特征学习"本节全称为自我学习与无监督特征学习,和前一节softmax回归很类似,所以本篇笔记会比较简化,主题思路和步骤如下: 把有标签数据分为两份,先对一份原始数据做无监督的稀疏自编码训练,获得输入层到隐藏层的最优化权值参数\(W, b\): 把另一份数据分成分成训练集与测试集,都送入该参数对应的第一层网络(去掉输出层的稀疏自编码网络): 用训练集输出的特征作为输入,训练softmax分类器: 再用此参数…
上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可以识别手写数字,我们要采用卷积神经网络CNN来进行别呢?CNN到底是怎么识别的?用CNN有哪些优势呢?我们下面就来简单分析一下.在讲CNN之前,为避免完全零基础的人看不懂后面的讲解,我们先简单回顾一下传统的神经网络的基本知识. 神经网络的预备知识      为什么要用神经网络? 特征提取的高效性.…