跟我学算法-图像识别之图像分类(上)(基础神经网络, 卷积神经网络(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. 梯度更新的方向:选择动量算法(momentum),思想是指数加权平均

2. 卷积神经网络(CNN)

CNN的基本层:

卷积层  - 卷积层和激活层

池化层 - (平均池化, 最大化池化)

全连接层(Fully - Connected layer)

批归一化层

CNN卷积层:

3D滤波器卷积核:
                             以扫描窗的方式对图像做卷积

每层含有多个核,每个核对应输出通道

提取局部特征

权重参数自学习

参数共享: 指的是这些参数用一个神经元来扫描一张图

(output number) 滤波器, 卷积核数量

核尺寸 (kernel size)

步长(stride)

零填充(zero padding)

卷积后的尺寸计算(W, H, D)

W = (W - size + 2*padding)/stride + 1

H = (H - size + 2*padding)/stride + 1

D = output number

对于输入的卷积,我们通常使用权值相加,即每个输出层与卷积核分别点乘。

卷积层中的非线性激活函数:

sigmoid, Relu

sigmoid  :  б(z)=  1 / (1+e^-z)

Relu :  б(z)= max(0, x), 分段线性函数, 无饱和问题,明显减轻了梯度消失得问题,一定程度上可以提高通道得深度

CNN池化层

作用:特征融合,降维

特点: 无参数需要学习

超参数: 尺寸, 步长

计算类别: 最大化池化, 平均池化
                    CNN全连接层

作用: 推理器, 分类器

普通神经网络

全局感受野, 去除空间信息。

需要学习参数

等效于全局卷积

CNN-softmax: 指数归一化函数,将一个实数值向量压缩到(0, 1),使得所有元素和为1

б(Z) = e^zj / (Σe^zj)

        最后一层是全连接层,为了得到1000类标签的概率

loss =Σ -yi * log(ai)  ai表示的是预测的结果, yi表示的是当前的标签        

图像像素中心化

(R,G,B)减去各自通道的均值

防过拟合,提高泛化能力

1.数据增强*10 (数据量增强)

256*256 提取中心和边缘,使得图片的维度变成224*224, 图片的数目*5

水平翻转  图片的数目*2

          2. droupout

训练过程中,随机让一些神经元的输出设为0

3. weight decay 权重衰减(L2正则)

C = C0 + λ/2n * ΣW^2   λ表示衰减系数, n表示参数个数,ΣW^2表示参数的平均加和

3. AlexNet

五个卷积层 + 三个全连接层

进行了一次分组计算

新技术:

Relu非线性激活

MaxPooling 池化

Dropout regulation (dropout正则化)

局部相应归一化: 在某个位置上实现跨通道的归一化
            输入图片 224*224*3, 第一层卷积的尺寸,11*11*3 *96  第二层卷积尺寸,256*5*5*48, 第三层卷积尺寸, 384*3*3*256,第四层卷积尺寸, 384*3*3*192, 第五层卷积,256*3*3*192

4.NIN

提出了1*1卷积的思想,一般有增加通道数的作用,也可用来降低,以此来使数据的特征更加的紧凑

提高CNN的局部感知区域

卷积层 -> 1*1卷积层 -> Max池化层,

5. VGG网络

思想是一个大卷积分解成多个小卷积核的过程

核分解:7*7 - 3个3*3的卷积核,每次卷积以后由relu连接

参数数量 49C2 - > 27C2

减少了参数,降低计算,增加深度,VGG的深度是16, alexNEt的深度为8

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

时间: 2024-08-21 10:08:13

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

跟我学算法-图像识别之图像分类(下)(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个辅助分类器 深网络中,梯度回传到最初几层,存在严重消失问题 有效加速收敛 测试阶段不适

深度学习、图像识别入门,从VGG16卷积神经网络开始

刚开始接触深度学习.卷积神经网络的时候非常懵逼,不知道从何入手,我觉得应该有一个进阶的过程,也就是说,理应有一些基本概念作为奠基石,让你有底气去完全理解一个庞大的卷积神经网络: 本文思路: 一.我认为学习卷积神经网络必须知道的几个概念: 1.卷积过程: 我们经常说卷积神经网络卷积神经网络,到底什么才是卷积?网络层卷积过程到底怎么实现?我们在这里借鉴了另一位博客大牛的动态图来给大家演示一下, 图作者文章在此: http://blog.csdn.net/silence1214/article/det

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

1097:零起点学算法04——再模仿一个算术题

1097: 零起点学算法04--再模仿一个算术题 Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lldSubmitted: 2627  Accepted: 2202[Submit][Status][Web Board] Description 上题会模仿了吧.再来模仿一个. 现在要求你模仿一个乘法的算术题 Input 没有输入 Output 输出9乘以10的值 Sample Output 90 Source 零起点学算法

1104: 零起点学算法11——求梯形面积

1104: 零起点学算法11--求梯形面积 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 6473  Accepted: 1875[Submit][Status][Web Board] Description 水题 Input 输入3个浮点数,分别表示上底.下底和高,中间用逗号隔开(题目包含多组数据) Output 输出梯形的面积,保留2位小数 Sample Input 2,4,5 Sample

1180: 零起点学算法87——超级楼梯(有疑问)

1180: 零起点学算法87--超级楼梯 Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lldSubmitted: 1803  Accepted: 431[Submit][Status][Web Board] Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1

1132: 零起点学算法39——多组测试数据(a+b)

1132: 零起点学算法39--多组测试数据(a+b) Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1790  Accepted: 1222[Submit][Status][Web Board] Description 计算a+b.很多的题目测试数据会有很多组的,一般我们的在线系统没写具体要求的时候,输入是以EOF为结束的.这题的基本框架如下: int main(){ int a,b; whil

1124: 零起点学算法31——开始新的起程

1124: 零起点学算法31--开始新的起程 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 2861  Accepted: 1381[Submit][Status][Web Board] Description 很开心大家学到现在. 从今天开始大家要有一个新的起程. 我们开始接触循环了! 你能让计算机计算1+2+3+...+10吗? 你能让计算机计算1+2+3+.._100吗? 只要告诉计算机,你

百度大神喊你一起学算法啦

小讲知道,很多人童鞋都曾被算法折腾得华发早生, 酱样子哈,那为什么还要学算法昵?为神马? 1. 算法和数据结构是IT技术人员的基本功,非常重要.可以说,算法几乎决定着一个程序员最终能走多远! 3. 大数据.云计算越来越红火,不会点算法,玩不转高大上的玩意儿,永远被人鄙视!装不了逼,把不了妹,买不了房,娶不了白富美(P.S.此条为小讲自行添加,使用了夸张手法,请忽略) 或许你说,去你的算法,我就是混饭吃,大公司不是我的菜. 而小讲俺是这样的 各位同学好,这门课的主讲老师是前百度工程师李老师,点这里