CNN数学公式、Caffe框架简要

1. 前言

 下载AR人脸数据库,用Caffe-face中的face_example中的模型去学习,用一体机CPU方式,感觉没多久就死机了似的。觉得前一段时间急于得到成效,中间看到的很多东西都没消化。现在重新梳理一下。
 本文主要参考了徐其华的Caffe学习专栏博文。

2. CNN网络的数学公式

 本部分内容主要参考了CNN卷积层和池化层博文内容,先把公式记录在这,将来再补充对公式的理解。

2.1 前向计算

Xlj=f(iMjXl1iKlij+blj)

Xlj=f(βljdown(Xl1i)+blj)

2.2 残差计算

δlj=βl+1j(f(ulj)up(δl+1j))

δlj=f(ulj)conv2(δl+1j,rot180(Kl+1j),full)

2.3 梯度计算

Ebj=u,v(δlj)uv  EKij=u,v(δlj)uv(Pl1j)uv

dlj=down(Xl1j)  Ebj=u,v(δlj)uv  Eβj=u,v(δljdlj)uv

2.4 激励函数

 常用的激活函数有Sigmoid, tanh, Relu, Abs, Power, BNLL等。ReLU是目前使用最多的激活函数,主要因为其收敛更快,并且能保持同样效果。

2.5 Softmax loss

pj=eojkeok  L=jyjlogpj

2.6 常用的CNN网络

 NeuralFinder
 对比目前人工设计的卷积神经网络,诸如LeNet网络,ImageNet, VGG16, VGG19, All-CNNs, NIN, ResNet, GoogleNet, FractalNet, DenseNet等结构,很容易发现这些卷积神经网络的结构都是由一些不同类型的层构成基础的结构单元,然后基础结构单元通过不断复制组成了深层神经网络结构。

3. Caffe框架简要
3.1 数据层

 Caffe的数据来源可以是LEVELDB,LMDB,MemoryData,HDF5Data,ImageData,WindowData。

3.2 视觉层

 视觉层包括Convolution, Pooling, Local Response Normalization (LRN), im2col等层。
 LRN层是对一个输入的局部区域进行归一化,达到“侧抑制”的效果。可去搜索AlexNet或GoogLenet,里面就用到了这个功能。归一化公式为 (1+(α/n)ix2i)β
 在caffe中,卷积运算就是先对数据进行im2col操作,再进行内积运算(inner product)。这样做,比原始的卷积操作速度更快。

3.3 激励层

 在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入和输出的数据大小是相等的。
 RELU层支持in-place计算,这意味着bottom和top相同以避免内存的消耗。

3.4 其它常用层

 Softmax、SoftmaxLoss、InnerProduct、Accuracy、reshape、Dropout等层。
 Dropout层的bottom和top相同。

3.5 Blob

 从数学上来说, Blob就是一个N维数组。它是caffe中的数据操作基本单位,就像matlab中以矩阵为基本操作对象一样。只是矩阵是二维的,而Blob是N维的。N可以是2,3,4等等。对于图片数据来说,Blob可以表示为(N*C*H*W)这样一个4D数组。其中N表示图片的数量,C表示图片的通道数,H和W分别表示图片的高度和宽度。

3.6 Slover最优求解器其优化算法

 SGD是最基本的随机梯度下降法,这里随机的意思是指抽取的样本是随机的。
 AdaDelta是SGD学习率采用自适应方法来优化。M. Zeiler ADADELTA: AN ADAPTIVE LEARNING RATE METHOD. arXiv preprint, 2012.
 AdaGrad是SGD的梯度计算采用自适应方法。Duchi, E. Hazan, and Y. Singer. Adaptive Subgradient Methods for Online Learning and Stochastic Optimization. The Journal of Machine Learning Research, 2011.
 Adam也是一个基于SGD方法。D. Kingma, J. Ba. Adam: A Method for Stochastic Optimization. International Conference for Learning Representations, 2015.
 NAG方法,Nesterov 的加速梯度法(Nesterov’s accelerated gradient)作为凸优化中最理想的方法,其收敛速度非常快。 I. Sutskever, J. Martens, G. Dahl, and G. Hinton. On the Importance of Initialization and Momentum in Deep Learning. Proceedings of the 30th International Conference on Machine Learning, 2013.
 RMSprop是Tieleman在一次 Coursera课程演讲中提出来的,也是一种基于梯度的优化方法。T. Tieleman, and G. Hinton. RMSProp: Divide the gradient by a running average of its recent magnitude. COURSERA: Neural Networks for Machine Learning.Technical report, 2012.

4. Caffe练习

 Mnist是一个手写数字库,由DL大牛Yan LeCun进行维护。mnist最初用于支票上的手写数字识别, 现在成了DL的入门练习库。征对mnist识别的专门模型是Lenet,算是最早的cnn模型了。
 mnist数据训练样本为60000张,测试样本为10000张,每个样本为28*28大小的黑白图片,手写数字为0-9,因此分为10类。
 cifar10数据训练样本50000张,测试样本10000张,每张为32*32的彩色三通道图片,共分为10类。
 模型fine-tuning和test

5. Caffe python编程——数据可视化

 显示小猫图片
 CaffeModel可视化
 各层数据和参数可视化
 网络模型(prototxt)可视化
 loss曲线和accuracy曲线
 用训练好的caffemodel来进行分类
 caffe图形化工具Digits
 微调(fine tunning)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值