跟我学算法-图像识别之图像分类(下)(GoogleNet网络, ResNet残差网络, ResNext网络, CNN设计准则)

1.GoogleNet 网络:

Inception V1 - Inception V2 - Inception V3 - Inception V4

1. Inception v1

split - merge - 1*1卷积,3*3卷积, 5*5卷积, 3*3池化

输入层:inception

1*1 卷积

1*1卷积 - 3*3卷积

1*1卷积 - 5*5卷积

3*3 maxpooling - 1*1 卷积

2个辅助分类器

深网络中,梯度回传到最初几层,存在严重消失问题

有效加速收敛

测试阶段不适用

2. inception v2

采用了Batch Normalization(批归一化),使得输出规划到(0, 1)

对每一个特征通道做归一化, 归一化是进行中心化和标准化
                        x1 = (x-u) / б

y(k) = y(k) * x1(k) + β(k)

training:

每个batch中k组均值-标准差会被存储

testing:

无batch, 将所有的Kzu均值-标准差分别求平均,使用这K组平均
               3. Inception v3

核心组件

非对称卷积: N*N 分解成1*N 和 N * 1

4. Inception v4

添加了一个残差神经网络的直连思想

2.ResNet 残差网络

可以拟合任意目标映射F(x), H(x) = F(x) + x

F(x)是残差映射

当H(x) 最优映射接近Identity, 容易捕捉到很小的扰动
         X - weight layer - relu - weight layer -relu  -

Y - weight layer - relu - weight layer - relu - , 直接从Y到达后面实现直连

其他设计:

全是3*3卷积核

卷积步长2取代池化

使用batch Normalization

取消:

Max池化

全连接

dropout

3. ResNext网络

提出了第三个维度

策略:将卷积核按通道分组,形成32个并行分支

低维度卷积,进行特征变化

加法合并

4. CNN设计准则

避免信息瓶颈

卷积过程中

空间尺寸 H * W 变小

输出通道C变多

数据量H*W*C要缓慢变小
                  通道数量保持在可控范围内

感受野在前期要足够大

在后面几层使用多个尺寸的卷积核

CNN 设计准则

分组策略 采用通道分解(resnext)- 降低计算量

低秩分解 - 3*3*c*k - 1*3*c*k 和 3*1*c*k

原文地址:https://www.cnblogs.com/my-love-is-python/p/9794998.html

时间: 2024-08-06 03:20:57

跟我学算法-图像识别之图像分类(下)(GoogleNet网络, ResNet残差网络, ResNext网络, CNN设计准则)的相关文章

跟我学算法-图像识别之图像分类(上)(基础神经网络, 卷积神经网络(CNN), AlexNet,NIN, VGG)

1.基础神经网络: 输入向量x,权重向量w, 偏置标量b, 激活函数sigmoid(增加非线性度) 优化手段: 梯度下降优化, BP向后传播(链式规则) 梯度下降优化: 1. 使用得目标函数是交叉熵  c = 1/nΣΣ[yj*lnaj^2 + (1-yj)*ln(1-aj^2)]  yj表示得是样本标签, aj表示的是输出值                            2.批量梯度下降:每次迭代一部分样本,进行参数跟新. 3. 随机梯度下降:每次迭代只选择单个样本 4. 梯度更新的方

1142: 零起点学算法49——找出数组中最大元素的位置(下标值)

1142: 零起点学算法49--找出数组中最大元素的位置(下标值) Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1937  Accepted: 977[Submit][Status][Web Board] Description 找出数组中最大的元素的下标. Input 多组测试,每组先输入一个不大于10的整数n 然后是n个整数 Output 输出这n个整数中最大的元素及下标值 Sample I

1136: 零起点学算法43——多组测试数据输出I

1136: 零起点学算法43--多组测试数据输出I Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lldSubmitted: 1541  Accepted: 1139[Submit][Status][Web Board] Description 掌握了输入之后,我们看下多组测试数据输出的情况. 一般情况下,对于每一组数据输入后先处理然后输出结果,再输入第2组数据,输出仅仅是换行而已 int main() { int a,b

1122: 零起点学算法29——等级分制度

1122: 零起点学算法29--等级分制度 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 2657  Accepted: 1379[Submit][Status][Web Board] Description ACM集训队每年都要招新队员.他们很多从大一开始就练了.当然一开始都是从hello world练起的,后来很多人成了牛人. 你想参加吗?如果你感兴趣,赶快加入.可以写Email武科大ACM俱

PHP-密码学算法及其应用-对称密码算法

转自:http://www.smatrix.org/bbs/simple/index.php?t5662.html //////////////////////////////////////////////////////////////////////////////目录1.    PHP的散列函数及其应用2.    PHP中的对称密码算法及其应用3.    PHP的公钥密码算法及其应用/////////////////////////////////////////////////////

PHP-密码学算法及其应用-散列函数

转自http://www.smatrix.org/bbs/simple/index.php?t5591.html //////////////////////////////////////////////////////////////////////////////目录1.    PHP的散列函数及其应用2.    PHP中的对称密码算法及其应用3.    PHP的公钥密码算法及其应用//////////////////////////////////////////////////////

0基础学算法 第二弹 排序

大家好啊,这是0算法基础学算法系列第二篇,上次我在第一弹里讲了关于流程图的内容,我寻思着,这次讲些什么好呢,于是我决定,教大家一个很基础的算法,那就是排序,排序有很多方法,如果你有更多方法请在评论区里留言哦. 排序在程序中特别实用,常用的有快速排序,桶排序,冒泡排序,插入排序等等,在这里我不建议使用冒泡排序或者插入排序,建议桶排序和快速排序,这两个排序非常实用,时间复杂度低,理解起来也很容易,首先,你先思考一下,怎么用程序进行排序,然后你再来看看你的思路合理不合理,最后试着用程序实现它,实现后你

1169: 零起点学算法76——绝对公正的裁判

1169: 零起点学算法76--绝对公正的裁判 Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lldSubmitted: 510  Accepted: 336[Submit][Status][Web Board] Description 大家知道我们学校的OnlineJudge吗?,你知道他会告诉你什么呢? Compiling : 您提交的代码正在被编译.Running : 您的程序正在OJ上运行.Judging : OJ

1165: 零起点学算法72——首字母变大写

1165: 零起点学算法72--首字母变大写 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 705  Accepted: 439[Submit][Status][Web Board] Description 输入一个英文句子,将每个单词的第一个字母改成大写字母. Input 输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行. Output 请输出按照要求改写后的英文句