21天实战caffe: study notes 1

2.3 监督学习

1、随机梯度下降:SGD。之所以被称为随机梯度下降是因为每个小样本集重复该过程(输入少量样本、计算输出和误差、计算这些样本的平均梯度、权值向量根据梯度向量的相反方向来调节权值使得目标函数减小,即输出和期望的距离函数减小),直到目标函数平均值停止下降,而每个小样本子集提供了所有样本平均梯度的带噪声估计,这个简单方法能比其它精确的优化参数更快地找到一组好的权值。

2、对于图像和语音识别这类问题,它的要求是:输入-输出函数对于输入的非相关变化(位置、方向、光照等变化、语音的高低变化等)不敏感,而对类别敏感。在像素级别,直接对图像像素操作的线性分类器或其它“浅层”分类器不容易区分比如白狼和萨摩耶犬的照片,会将它们判别为同一类。这就是为什么浅层分类器需要好的特征提取器 — 有选择性地产生图片中重要类别信息的表示,同时对无关信息如姿态等具有不变性。为了让分类器更强大,使用广义非线性特征以及核函数方法,但广义特征(如高斯核函数)泛化能力差,常规方法是手动设计好的特征提取器,而这些需要大量工程经验和领域专家才能完成(一堆论文)。所以深度学习的核心优势就是希望这些好的特征可以使用通用学习方法来自动学到。

3、一个深度学习架构是将简单模块多层堆叠,大多数模块具备学习能力,能计算非线性输入-输出映射。每个模块将它的输入变换,提高可选择性和表示不变性。多个非线性层(5~20层)构成的系统可以实现非常复杂的函数,例如同时做到对类间差异敏感(inter-class: 即不同类之间,如萨摩耶犬和白狼)和对类内差异不敏感(intra-class: 物体在不同背景、姿势、光照和周边物体下的照片都能正确识别)

2.4 反向传播算法

1、只要模块是其输入和内部权值的相对平滑函数,就可以使用BP步骤计算梯度
利用BP来计算目标函数相对多层网络权值的梯度过程,就是高数中求导数的链式法则的工程上的应用,所谓的链式求导法则就是复合函数求导: f(g(x))=f(g(x))g(x)
BP的做法就是:每层首先计算相对于该层输出节点的误差梯度(链式求偏导),即所有来自相对于后一层输入节点的误差梯度的加权和,之后使用链式法则将误差梯度传至该层输入节点。
输出单元的误差梯度通过对代价函数(或损失函数)求导得到

以它的例子来写
输出层单元 l 对应的代价函数项为 E=0.5(yltl)2,其中 tl 为期望输出值,所以代价函数相对于 zl 的偏导数为:

Ezl=Eylylzl=(yltl)f(zl)

中间的每一层的误差梯度都经过链式法则求出,对应的就是每一个点上一层的相连各个节点的权重分别乘上该点的激活函数的偏导数再求和
最后得到的输入层的误差梯度为
Exi=jf(zj)wijkf(zk)wjkl(yltl)f(zl)

所以大致意思是知道了这些梯度函数,通过调整权重就可以使得误差函数减小

BP公式可以重复应用,将梯度从顶层输出(网络产生预测的位置)通过所有模块传递到底(输入层)。所有这些中间梯度计算出来后,再计算代价目标函数相对于每个模块内部权值的梯度就非常容易了。

2.5 CNN

ConvNet的优点:训练更简单,泛化能力比相邻层用全连接更好
ConvNet的四项基本原则:局部互联共享权值下采样(max pool : downsample)、使用多个卷积层
共享权值意味着更少的参数量,下采样保证了局部不变性,多特征图允许不同卷积核作为不同特征提取器,训练时使用BP算法
卷积层的单元组织为特征图(feature map),每个单元通过一组成为滤波器组的权值连接到上一层特征图的局部小块。局部小块的加权和被非线性单元/激活函数处理。
同一特征图的所有单元共享同一套滤波器组,而同一层的不同特征图使用不同的滤波器组。
因为(1)在一组类似图像的数据中,局部像素块具有高度相关性,形成不同的、易检测的基本图案;(2)图像和其他信号的局部统计具有位置无关性

卷积层的任务是检测前一层的局部连接特性,而下采样层是将语义相似的特征融合为一个。由于相对位置特征形成一个基本图案可能会有些许变化,可靠检测该图案可以使用粗粒度位置来实现

典型的下采样器计算每一张特征图(或某几张特征图)的局部小块最大值。相邻下采样器的输入源相互错开不少于一行或一列,因此可以降低表示维度,而且对平移、形变不敏感。

卷积层-非线性层(激活函数)-下采样层堆叠为一个基本处理栈,在一个完整的网络中可以重复多个基本处理栈后再接入更多的卷积层或全连接层。卷积网络的梯度反向传播过程与普通深度网络一样简单,所有滤波器组的权值都能得到训练。

2.6 深度学习反思

深度学习看似万能,实则有很多调参技巧在里面(好多坑要踩),掌握得当可以快速获得模型,否则费力不讨好

  • 模型参数远大于数据量时,相当于求解一个欠定方程(未知数>方程数),存在多解的可能性大,容易产生过拟合问题
  • 模型参数远小于数据量时,相当于求解一个超定方程,可能无解,或者有解但准确率很低,属于欠拟合问题
  • 模型参数与数据量匹配时(怎么判断是否匹配?),求解恰定方程,既能避免过拟合,又能兼顾准确率,但模型参数量和数据量怎么做到匹配,是一个工程问题

要注意越大的模型越难训练,因为需要与之匹配的数据量和很多避免过拟合的方法才能训练出较理想的模型。常用做法是:先将大模型在较大数据集(ImageNet)上预训练,得到模型,再对特定数据集(如人脸/行人检测等数据集)进行fine-tuning,即可得到较为理想的结果。

补充:一些常用的缩写

  1. LR:logistic regression
  2. MLP: Multi-Layer Perception
  3. AE: Auto Encoder
  4. RBM: Restricted Bolzman Machine
  5. DBN: Deep Belief Network
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值