深度学习 21天实战caffe 前三天 笔记

本文介绍了深度学习的基本概念,包括监督学习、反向传播算法及卷积神经网络原理,并对比了不同深度学习框架的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文用作《深度学习21天实战caffe笔记》的备忘,请结合原书食用~

前言

  1. Caffe框架以“层”为单位对深度神经网络的结构进行了高度的抽象。
  2. Caffe由贾杨清开发。
  3. 卷积神经网络发明者Geoffrey Hinton在20世纪70年代提出深度学习理论,随着NVIDIA GPU的广泛使用才大量应用。
  4. 深度学习年代久远,当时受限于计算能力不足和数据集匮乏陷入低谷,直到云计算、大数据时代到来才突飞猛进。

第一天 什么是深度学习

  1. 带“学习”功能的机器:“看”未知系统的输入-输出对训练样本),自动得算法,可举一反三(泛化)。
  2. 训练样本D=z1,z2,z3znD=z1,z2,z3⋯znzizi输入-输出对
  3. 惩罚函数L(f,Z)L(f,Z),参数为学到的规则ff和独立于Z的验证样本集,返回值为实数标量,称为惩罚值损失。目标是L(f,Z)L(f,Z)尽量小。
  4. 机器学习需要三份数据:
    • 训练集:机器学习的样例
    • 验证集:机器学习阶段,用于评估得分和损失是否满足要求
    • 测试集:机器学习结束之后,实战阶段评估得分。;
  5. 深度学习:由多个处理层组成的计算模型,可通过学习获得数据的多抽象层表示。
  6. 机器学习三大牛:Geoffrey Hinton, Yann LeCun,Youshua Bengio

第二天 深度学习的过往

  1. 传统机器学习需要手动提取特征,比较繁琐且往往需要领域专家设计特征。
  2. 分类问题中,高层特征能强调重要的类别信息,而抑制无关的。如图像中从低到高的特征:边缘->图案->图案组合。深度学习自动在高维数据中发现复杂结构。

监督学习

  1. 监督学习中的数据是带有标签(label)的。
  2. 训练过程中需要不断更新权值(参数)向量,方法是:计算梯度向量,表示每个权值增加一个微小值时目标函数的变化量,之后权值向量根据梯度向量的相反方向调节。
  3. 经典更新方法——随机梯度下降(Stochastic Gradient Descent, SGD):输入少量样本,计算输出和误差,计算样本的平均梯度,根据梯度调节平均值。
  4. 线性分类器:高于阈值就分为一类,否则另一类。
  5. 深度学习核心优势:自动学习好的特征,很多个模块,每个都能计算非线性输入-输出映射。

反向传播算法

反向传播算法通过计算目标函数相对于多层网络权值的梯度,进行链式求导,从而调整参数。

下面举一个网络的例子,下图的左、右分别代表了该网络的前向传播和反向传播的过程

前向传播

先看左图前向传播的计算过程:

Input -> H1

取H1中的一个结点jj,其值yj=f(zj)
其中zjzj是input中三个结点x1,x2,x3x1,x2,x3的函数,也就是说jjyjxixi决定。
这里的zj=iwijxizj=∑iwijxi,其中wijwij为权重。
函数ff是一个激活函数(如ReLU),它对zj进行非线性变换,得到输出yjyj

H1->H2和H2->Output

类似的,令H2、Output中的结点为kkl,我们可以得到:
yk=f(zk),zk=jwjkyjyk=f(zk),zk=∑jwjkyj
yl=f(zl),zl=kwklylyl=f(zl),zl=∑kwklyl

反向传播

再来看右图反向传播的计算过程,它分为两步;
1. 计算每层的梯度:对于每层,我们计算它对这一层输出结点误差的梯度,也就是求对后一层输入误差的加权和
2. 应用链式求导法则,将误差梯度传到这一层输入结点。

例如,若Output units中的结点ll的代价函数(loss function)为E=0.5(yltl)2,其中tltl是我们想要的输出,ylyl是目前的输出,我们现在求这个loss function对zlzl的梯度:

EE对于yl的偏导数为yltlyl−tl,又因为yl=f(zl)yl=f(zl),所以Ezl=Eylylzl=(yltl)f(zl)∂E∂zl=∂E∂yl∂yl∂zl=(yl−tl)f′(zl)
这里运用了链式求导法则,将EEzl的偏导拆成了两个偏导的乘积,我们只需要分别计算这两个因子,将它们相乘就能得到想要的结果。

同理,要计算loss function对H2的梯度,应用链式求导法则的可得:
Eyk=lEzlzlyk=lwklEzl∂E∂yk=∑l∂E∂zl∂zl∂yk=∑lwkl∂E∂zl,这里的Ezl∂E∂zl我们之前刚刚计算过,直接用就好。

后面两层的梯度计算同理。

卷积神经网络

卷积神经网络(ConvNet)如今应用广泛,它包含了卷积操作。ConvNet有4个基本特征;局部互联、共享权值、下采样和使用多个卷积层。

在ConvNet,数据会使用不同的卷积核经过卷积层得到特征图,从而提取到前一层的局部连接特征;使用激活函数(如ReLU)使网络具有非线性表达能力;通过下采样层(池化层)将相似特征融合,并减少参数量。

这种卷积-非线性-池化的组合构成了一组单元,ConvNet中可以有若干个这样的单元相连接。

ConvNet成功用在了图像处理中的多种任务上,如分割、分类等。

第三天 深度学习工具汇总

  1. Caffe实现了CNN,适合做特征提取,它提供了面向命令行、MATLAB和Python的接口。
  2. Torch目前已经进化到已经Pytorch,使用Python接口,很流行也很有潜力。
  3. MXNet目前在快速发展,提供了ndarray接口和symbolic接口。
  4. TensorFlow由Google支持,目前资料最多。
  5. Theano往往用于教学和研究,不够高效,不适合线上部署。
  6. CNTK由微软提出,对Windows支持最好,不建议初学者入门使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值