sp4.2 Deep convolutional models:case studies

一些经典CNN方面网络: LeNet-5 AlexNet VGG
LeNet-5:90年代 当时使用的更多的是平均池化 不用padding 大概6万个参数
这个模型里面 通道数量(第三维)在逐渐增加 越来越长了 高和宽越来越小了
这里多个卷积后面跟个池化这个现在还用 当时池化后进行了sigmoid函数 现在不用
当时用的sigmoid或tanh
精读第二段 泛读第三段
 
 
AlexNet:和上一个很相似,但是大很多 参数6000W个
用了relu激活函数 这个当时用了GPU虽然比较慢
还用局部响应归一层LRN层 相当于从13*13*256里取一条归一化 现在并不重要
 
 
VGG-16:简化了模型 专注于卷积层
1.38亿个参数 很规整这个模型 非常深信道通道不断增加 到512
卷积 64个3*3的过滤器 --pool---卷积--pool--。。。---FC-FC-SOFTMAX
 
 
 
 
 
 
残差网络:ResNet inception
很深的难训练 存在梯度消失 梯度爆炸 运用跳远连接skip connections
ResNet:残差块构成
残差块 : a^l到a^l+2一般情况下要经过a+--线性--relu--al+1--线性--relu--al+2
现在直接复制到最后 让AL+2前加个Al
 
 
identity block这种块是直接传过去
 
这种块 如果输入和后面的维数不匹配的话
他是做完卷积 再正则化 传过去
 
 
每两个构成一个残差块 传统的误差 会先减少再增加 而这个残差代价就越来越小
 
 
残差为什么有用:即使给神经网络多加两层 容易学习恒等函数 仍然保持简单时候的效率
在正则化或权重衰减时候 也许当前项都0了 还可以保持前面的al
这样他也不逊色于上面简单的网络了
他用了很多相同的卷积 zl+2 al具有相同维度
 
 
 
1*1卷积层 池化层只压缩了宽和高 这个也可以压缩通道数 也可以增加通道数
对一维的一个平面没什么效果相当于一个数字而已
但是多通道的就不一样了 这分别对应一乘 相当于全连接神经网络了啊
 
用于压缩第三维n_C 这里通道数为192吧 用32个1*1的 就压缩为32层
 
inception盗梦空间 利用上面的1*1卷积:
相当于你把他都列出来 他自己学
保持相同维度 通道可以不同 也可以用池化层 但也需要维度不变
让他自己学习用哪个过滤器组合
对于5*5的过滤器 计算: 32个过滤器 每个为5*5*192
计算成本:
所以一共28*28(原图维数)*32个过滤器* 5*5*192过滤器维度=1.2亿次计算
这里计算量比较大 现在就用到了1*1卷几层
只要合理的构建瓶颈层不会影响性能
利用1*1*192 维16个的话:压缩了一下 28*28*16
16*28*28*192*1*1=240万个 28*28*32*5*5*16=1000万个 1240万次比之前的降了10倍
 
 
有些块还有分支 通过隐藏层做出预测 类似最后一层softmax输出结果 防止过拟合
 
 
运用开放的源码:直接复现别人论文非常难 直接github 找原作者的开源
一般工作流程 :选一个喜欢的模型 然后找到他的开源下载下来 进行修改
 
 
迁移学习:还是用别人训练好的 去掉后面几层 前面的不用动 把他当做一个初始化的原型
只有少数训练集就保留人家大多数层 前面的都冻住 那些参数不变 之变自己后面加的 如果自己训练集很大 可以保留部分
如果训练集特别大 把他们当做随机初始化后的值 在此基础上继续训练
 
数据扩充:计算机视觉方面数据越多的确是效果越好
镜像对称 随机裁剪 扭曲变换 局部弯曲 等
色彩转换,加滤镜或rgb加加减减 对RGB的改变可以用PCA 有alexnet paper PCA color augmention
如果有大量数据:利用cpu多线程对有的图片变形啊 变色啊
 
计算机视觉现状:现状语音数据很多 图像数据还不够 物体检测的更少(有标注框的)
少数据就需要人工调参啊各种技巧 迁移学习 多数据就是手工的少一点 更大的神经网络就可以
 
 
 
Use open source code:
Use architectures of networks published in the literature
Use open source implementations if possible
Use pretrained models and fine-tune on your dataset

猜你喜欢

转载自www.cnblogs.com/hellodantong/p/9965250.html