CNN卷积神经网络
2016-07-18 20:39
375 查看
卷积神经网络CNN,属于深度学习,推荐july算法的一个公开课,https://www.julyedu.com/video/play/18/134 这是看完之后的一份总结。
a=g(z)=11+e−z
类似于LR或者linear svm对数据进行线性分割,多次训练,对神经元进行逻辑与操作,得到线段的交集,形成一个个凸集,再对相同类别进行并集。
神经网络的实现:http://python.jobbole.com/82208/
1. 去均值,把输入数据的各维度中心化到0,减去均值
2. 归一化:幅度归一化到一个范围
3. PCA降维/白化:对数据每个特征轴上的幅度归一化
无需手动选择特征,训练好权重,即得特征
分类效果好
物理含义不明确 可解释性不强
原因:自己从头训练训练卷积神经网络容易出现问题,fine-tuning能较快的收敛到一个较理想的状态
做法:使用相同层的权重,新定一层取随机权重初始值,调大新定义层的学习率,调小复用层的学习率。
Torch:Facebook用的卷积神经网络工具包,通过时域卷积的本地接口,使用非常直观,定义新网络层简单。
TensorFlow:Google的深度学习框架,TensorBoard可视化很方便,数据和模型并行化好,速度快。
逻辑回归到感知器
z=θ0+θ1X1+θ2X2a=g(z)=11+e−z
神经网络
神经网络包括输入层,隐含层,输出层。类似于LR或者linear svm对数据进行线性分割,多次训练,对神经元进行逻辑与操作,得到线段的交集,形成一个个凸集,再对相同类别进行并集。
神经网络的实现:http://python.jobbole.com/82208/
卷积神经网络
卷积神经网络依旧是层级网络,但是层的功能和形式做了变化,包括数据输入层,卷积计算层,ReLU激励层,池化层,全连接层。1.数据输入层 input layer
三种常见的图像数据处理方式:1. 去均值,把输入数据的各维度中心化到0,减去均值
2. 归一化:幅度归一化到一个范围
3. PCA降维/白化:对数据每个特征轴上的幅度归一化
2.卷积计算层 CONV layer
1. 局部关联,每个神经元看做一个filter,窗口滑动,filter对局部数据计算,只关系部分维度,深度(depth,神经元层数)步长(stride,每次移动的数),填充值(用0填充边界,保证所有都被覆盖),演示网址http://cs231n.github.io/assets/conv-demo/index.html 2. 参数共享机制 假设每个神经元连接数据窗的权重是固定的。固定每个神经元权重,可以看做模板,每个神经元只关注一个特性,需要估算的权重个数减少,一组固定的权重和不同的窗口内数据做内积
3.ReLU激励层 ReLU layer
把卷积层输出结果做非线性映射,可以用sigmoid,Tanh(双曲正切),Relu,Leaky ReLU,Maxout函数4.池化层 Pooling layer
函数做映射,夹在连续的卷基层中间,压缩数据和参数的量,减少过拟合。max pooling 优于average pooling5.全连接层 FC layer
两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部。训练算法
与一般的机器学习算法一样,先定义loss function,衡量与实际结果之间的差距。找到最小化损失函数的w和b,CNN中的算法是SGD(随机梯度下降,需要计算w和b的偏导,BP算法(反向传播算法)就是用来计算偏导的,BP算法的核心是求导链式法则。)优点
共享卷积核,对高维数据处理无压力无需手动选择特征,训练好权重,即得特征
分类效果好
缺点
需要调参,需要大量的样本,训练最好要GPU物理含义不明确 可解释性不强
典型CNN
Lenet,AlexNet, ZF Net,GoogleNet,VGGNetfine tuning
使用已用于其他目标,预训练好模型的权重或者部分权重,作为初始值开始训练。原因:自己从头训练训练卷积神经网络容易出现问题,fine-tuning能较快的收敛到一个较理想的状态
做法:使用相同层的权重,新定一层取随机权重初始值,调大新定义层的学习率,调小复用层的学习率。
常用框架
caffe:源于Berkeley的主流CV工具包,支持C++,Matlab,python语言,Model Zoo中有大量预训练好的模型供使用Torch:Facebook用的卷积神经网络工具包,通过时域卷积的本地接口,使用非常直观,定义新网络层简单。
TensorFlow:Google的深度学习框架,TensorBoard可视化很方便,数据和模型并行化好,速度快。
相关文章推荐
- CUDA搭建
- 卷积神经网络初探
- 深入理解CNN的细节
- TensorFlow人工智能引擎入门教程所有目录
- convolutional neural network
- UFLDL Exercise: Convolutional Neural Network
- 使用深度卷积网络和支撑向量机实现的商标检测与分类的例子
- 对Pedestrian Detection aided by Deep Learning Semantic Tasks的小结
- 卷积神经网络知识要点
- CNN学习(一)
- CNN学习(一)
- 阅读 理解 思考 - Learning to Segment Object Candidates
- 卷积神经网络学习
- CNN: single-label to multi-label总结
- 总结:Large Scale Distributed Deep Networks
- 总结:One weird trick for parallelizing convolutional neural networks
- Extract CNN features using Caffe
- Deep Learning Face Attributes in the Wild
- 卷积神经网络CNN