卷积神经网络

来源:互联网 发布:k歌达人 网络异常 编辑:程序博客网 时间:2024/06/06 05:08

视频地址:https://www.julyedu.com/video/play/18/134

csdn:寒小阳


卷积神经网络之层级结构

卷积神经网络依旧是层级网络,但层的功能和形式做了变化


输入输入层 / Input layer

卷积计算层 / CONV layer

ReLU激励层 / ReLU layer

池化层 / Pooling layer

全连接层 / FC layer


输入输入层 / Input layer

有3种常见的图像数据处理方式:

去均值:把输入数据各个维度都中心化到0

归一化:幅度归一化到同样的范围

PCA/白化:用PCA降维,白化是对数据每个特征轴上的幅度归一化


卷积计算层 / CONV layer

局部关联。每个神经元看做一个filter.

窗口(receptive field)滑动,filter对局部数据计算


深度/depth:同一个数据窗口和下一层神经元连接的个数

步长/stride:滑动窗口每次移动的格数

填充值/zero-padding:滑动窗口按照步长不能正好完全覆盖数据时,需要在数据周围填充0


参数共享机制

假设每个神经元连接数据窗的权重是固定的


卷积层

固定每个神经元连接权重,可以看做模板:每个神经元只关注一个特性

需要估算的权重个数减少:AlexNet 1亿 => 3.5w

一组固定的权重和不同窗口内数据做内积:卷积


激励层/ReLU

把卷积层输出结果做非线性映射 

activation function:

Sigmoid

Tanh(双曲正切):Sigmoid的改进,使其中心点放在零点

ReLU:The Rectified Linear Unit / 修正线性单元,收敛快,求梯度简单,较脆弱

Leaky ReLU

Maxout


池化层 / Pooling layer

夹在连续的卷积层中间(也有窗口和步长)

压缩数据和参数的量,减小过拟合

Max pooling 和 average pooling


全连接层 / FC layer

两层之间所有神经元都有权重连接

通常全连接层在卷积神经网络尾部


一般CNN结构依次为:

INPUT

[[CONV -> RELU]*N -> POOL?]*M

[FC -> RELU]*K

FC


卷积神经网络之训练算法

同一般机器学习算法,先定义Loss function,衡量和实际结果之间差距。

找到最小化损失函数的W和b,CNN中用的算法是SGD。

SGD需要计算W和b的偏导

BP算法就是计算偏导用的。

BP算法的核心是求导链式法则。


卷积神经网络之优缺点

优点:

共享卷积核,对高维数据处理无压力

无需手动选取特征,训练好权重,即得特征

分类效果好

缺点:

需要调参,需要大样本量,训练最好要GPU

物理含义不明确


卷积神经网络之典型CNN

LeNet,这是最早用于数字识别的CNN

AlexNet,2012 ILSVRC比赛远超第2名的CNN,比LeNet更深,用多层小卷积层叠加替换单大卷积层。

ZF Net,2013 ILSVRC比赛冠军

GoogLeNet, 2014 ILSVRC比赛冠军

VGGNet,2014 ILSVRC比赛中的模型,图像识别略差于GOOGLeNet,但是在很多图像转化学习问题(比如object detection)上效果奇好


卷积神经网络之 fine-tuning

何谓fine-tuning:

使用已用于其他目标,预训练好模型的权重或者部分权重,作为初始值开始训练

原因:

自己从头训练卷积神经网络容易出现问题

fine-tuning能很快收敛到一个较理想的状态

做法:

复用相同层的权重,新定义层取随机权重初始值

调大新定义层的学习率,调用复用层学习率。


卷积神经网络之常用框架

Caffe

源于Berkeley的主流CV工具包,支持C++,python,matlab

Model Zoo中有大量预训练好的模型供使用

Torch

Facebook用的卷积神经网络工具包

通过时域卷积的本地接口,使用非常直观

定义新网络层简单

TensorFlow

Google的深度学习框架

TensorBoard可视化很方便

数据和模型并行化好,速度快




0 0
原创粉丝点击