卷积神经网络
来源:互联网 发布: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可视化很方便
数据和模型并行化好,速度快
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- 卷积神经网络
- linux 内存清理/释放命令
- MongoDB的真正性能
- tensorflow win7 安装(windows7 + tensorflow1.0 + anaconda3 + python3.5 + NVIDA Geforce GTX 960)
- Ubuntu下卸载软件命令行
- 类模板的定义和使用
- 卷积神经网络
- android VelocityTracker和 GestureDetector滑动监听工具类
- 4.2
- Java Scanner 类
- 浅谈前端中的onmouseover 事件
- shell 笔记1
- iOS Bundle的简单使用
- mysql-5.7.11-winx64.zip 安装配置
- Python 生成随机数