计算机视觉基础

Tensorflow:深度学习开源框架,封装了大量深度学习函数。tensorflow系统:tf.data加载数据;tf.deras构建模型;gpu训练模型;tensorflow hub预训练;tensorflow serving部署模型。

张量:多维数组。一维、二维、三维等。

变量:形状不可变的张量。2*2形状就一直是2*2

过程:

导入工具包

数据读取

数据处理:目标值热编码

模型构建

模型训练

模型评估

回调函数(控制训练过程)

模型保存

全连接神经网络

 

全连接神经网络:输入层、输出层、隐藏层。

激活函数:向神经网络加入非线性因素,可以拟合曲线等任意函数。

Sigmoid:0-1。会梯度消失=0。y中心不为0。二分类输出层。

Tanh:0-1。会梯度消失=0。y中心为0。隐层。

Relu:x<0时,导数=0,权重不更新,神经元死亡。好处是可以缓解过拟合。隐层。

Leakyrelu:x<0时,导数=0.1。防止神经元死亡。隐层。

Softmax:0-1。多分类输出层。

参数初始化:偏置初始化(0)+权重初始化。权重初始化包括:随机~(正态);标准~(均匀);xavier初始化(正态+均匀);he初始化(正态+均匀)(正向传播时激活值的方差不变,反向传播时梯度的方差不变。区分xavier是方差均不变。)。

正态分布(高斯分布):均值0,标准差1

均匀分布:(a-b)/n

模型的层构建方法

(1)input+layers+model法:

input(shape输入的维度;输入层名字);

x=dense()(input)

x=dense()(x)

model( )

 

(2)sequential(layers)法:

 

(3)class mymodel(def init;def call):

 

损失函数:预测值与真实值之间的差异。分类损失+回归损失。

分类损失:交叉熵损失。多分类、二分类。

多分类损失:0.1是预测属于某类别的预测概率。0,1是目标值。y=1,p越大越好。

 

二分类损失:y是真实属于某类别的真实概率。y``是预测属于某类别的预测概率。

 

回归损失:mae(最小绝对误差L1)、mas(最小均方误差L2)、smooth L1(L1和L2的结合,内弯外直,内2外1)。

优化函数:用于优化权重和偏置。前向传播产生预测结果,计算损失函数,在损失最小时反向计算导数(反向传播算法=bp算法):根据损失函数对权重和偏置的层层偏导(链 式法则)更新权重和偏置(梯度下降法)。

优化思路:令权重和偏置的更新更加平滑。

优化方法:

修梯度:动量法:梯度使用指数加权平均(当前平滑=历史平滑+当前真实)。

修学习率α:Adagrad:梯度使用累加平方和。

Rmsprop;。梯度使用累加平方和的指数加权平均。

修梯&修α:adam:动量法+Rmsprop。adam思想和梯度下降差不多,但是优化效率更高,如图中的绿色箭头,考虑到红色触底后的惯性方向,绿色箭头能更快达到最优解。

 

复习:

1、梯度下降法:损失函数对权重求偏导,损失函数下降的最快的方向。学习率应当先快后慢。

 

BGD(批量):所有样本的梯度求和

SGD(随机):一个样本的梯度

MBGD(小批量):小部分样本的梯度求和。best

更新后权重=初始权重-学习率*损失函数对权重求偏导

             1     -0.1*1 =0.9   

Epoch:所有样本送入网络训练的次数=迭代数

Batchsize:每组送入网络训练的样本数量=每组数量。每组数量*组数=n

Iter:训练batch的次数=batch组数*迭代数

鞍点=局部最小值

2、链式传导:将复合导数拆分成一层层的初级导数

学习率退火:学习率衰减的方式。包括:分段常数衰减t;指数衰减e^t;逆时间衰减1/t。

t表示不同迭代次数=时间。

正则化:减少泛化误差;缓解网络过拟合。

泛化误差:新样本上的误差

正则化方法:范数惩罚;提前终止;dropout

  1. 范数惩罚:L1&L2正则化。损失函数中加入L1&L2范数,使得权重衰减或变成0,从而让某一项减小或消失,简化模型。超参数lambda

L2正则化:

 

L1正则化:

  1. dropout正则化:在迭代过程中,随机失活每一层中的部分神经元。
  2. 提前停止:将一部分训练集作为验证集,当验证集的loss不再下降了,停止训练。
  3. BN层:网络训练时是一个批次一个批次地输入到网络中。对某一批次的神经元输出(设为m个x)进行标准化+重构,得到最终的输出结果给到下一层(y)。

       

 

·标准化:要先求均值和方差。目的:令均值为0。

·重构:gamma放大倍数,beta平移。这两个参数都是通过学习得到。重构是对标准化的结果做进一步处理,令均值不为0,这样有利于训练非线性神经网络。

卷神经网络CNN

卷神经网络:卷积层CONV、池化层POOL、全连接层FC。CONV特征提取(边缘、方向),POOL降维,FC输出结果。

滤波器=filter=卷积核=过滤器

 

卷积:滤波器和输入数据的局部区域做点积,最终得到的特征图会缩小。

Padding:零填充。使卷积过程中特征图的大小不变。Padding=1加上一圈0,Padding=2加上一两圈0。

stride步长:卷积核的移动步长

多通道卷积:输入多通道图像(如jgb),每一层单独卷积,三层的值相加并放到对应位置

多卷积核卷积:卷积核数=特征图通道数。

  

 

 

输出的特征图尺寸:

 

Pooling池化层:降维=对特征图进行下采样。3*3最大池化层。

最大池化层:取扫描窗口的最大值最为输出。

平均池化层:取扫描窗口的平均值最为输出。起平滑作用。=GAP。

全连接层:将特征图转换成一维向量,随后进行分类或回归。

    

 

卷积

池化

1*1 宽高不变,只改变特征的通道数(升维/降维)。卷积核的升降维度取决于1*1卷积核的通道数(几个)。

→假设输入图的尺寸为 32 * 32 * 3,

使用6个 1 * 1的卷积核卷积,得到的输出图大小为32 * 32 * 6。升维。

使用2个 1 * 1的卷积核卷积,得到的输出图大小为32 * 32 * 2,降维。

K=2。下采样:特征图shape/2,同时通道数不变(*2?)

5*5 = 两个3*3卷积

7*7 = 三个3*3卷积

s=2也和pooling一样起到下采样的作用,特征图shape/2,同时通道数*2

图像分类:从给定的类别集合(狗、猫、熊猫...)中为图片分配对应的标签。输出:dog:95%, cat:4%, panda:1%

常用数据集:minist数据集(手写数字0-9)。CIFAR-10(10个类别)。CIFAR-100(10个类别)。ImageNet(22000个类别)

Conv2D:(filters卷积核个数,kernel size卷积核大小,strides=4,padding=’valid’,activation=None)

MaxPool2D:(pool size=(2,2)扫描窗口大小, strides=None,padding=’valid’)

keras.layers.Dense:(units, activation=None, use_bias=True, kernel_initializer='glorot_uniform',

输出:Num*H*W*C。

Alexnet:

Input

CONV

POOL

MAX

CONV

POOL

MAX

CONV

CONV

CONV

POOL

MAX

Flatten

Dense+Dropou(0.5)

Dense+Dropou(0.5))

Output

227

*227

*3

f=96

k=11

s=4

a=relu

p=3

s=2

f=256

k=5

p=same

a=

p=3

s=2

f=384

k=3

p=

a=

f=384

k=3

p=

a=

f=256

k=3

p=

a=

p=3

s=2

u=4096

a=relu

u=4096

a=relu

u=10

a=softmax

VGG16用统一的3*3小卷积层

Input

CONV

n=2

POOL

MAX

CONV

n=2

POOL

MAX

CONV

n=3

POOL

MAX

CONV

n=3

POOL

MAX

CONV

n=3

POOL

MAX

Flatten

Dense+Dropou(0.5)

Dense+Dropou(0.5))

Output

224

*224

*3

f=64

k=3

p=2

f=128

k=3

p=2

f=256

k=3

p=2

f=512

k=3

p=2

f=512

k=3

p=2

u=4096

a=relu

u=4096

a=relu

u=10

a=softmax

    

GooLeNet:

Inception:6个卷积核+1个池化层。64, (96,128) , (16,32) , 32。

 

                        

B1

B2

B3

Input

CONV

POOL

MAX

CONV

CONV

POOL

MAX

Inception

Inception

POOL

MAX

224

*224

*3

f=64

k=7

s=2

a=relu

p=3

s=2

p=sa

f=64

k=1

s=2

a=relu

f=192

k=3

s=2

a=relu

p=3

s=2

p=sa

64,

(96,128),

(16,32)

32    

128,

(128,192)

(32.96)

64

p=3

s=2

p=s

B4

B5

Inception

Aux classifier辅助输出

Inception

Inception

Inception

Aux classifier

Inception

POOL

MAX

Inception

Inception

POOL

Avg

Output

→c1、c2、c3、c4

192,

(96,208),

(16,48)

64

P1-1:CONV (c1,k=1)

P2-1:CONV (c2[0],k=1)    p2-1:CONV (c2 [1,k=3)

P3-1:CONV (c3[0]),k=1)    p3-1:CONV (c3[1],k=5)

P4-1:CONV (c4,k=1)

→filter size

128,核个数

1024神经元个数

Avg POOL (p=5,s=3)

CONV (filter size[0],k=1)

Flatten

Dense(u=filter size[1])

Dense(u=10)

160,

(112,224),

(24,64)

64

128,

(128,256),

(24,64)

64

112,

(144,288),

(32,64)

64

128,

1024

256,

(160,320),

(32,128)

128

p=3

s=2

p=sa

256,

(160,320),

(32,128)

128

384,

(192,384),

(48,128)

128

u=10

a=softmax

InceptionV2:将5*5的卷积用3*3的卷积替代。

InceptionV3:将3*3的卷积用3*1和1*3的卷积替代。

      

 

ResNet:残差网络,即残差模块的串联。由于真H(x)-预F(x)=残差x,训练F(x)+x来逼近真实值。ResNet18、34、50、152。

Resnet block残差模块:相同通道的残差块的串联

residual残差块:2个卷积层+BN+RELU。若输入的层数较多,则需要引入1*1卷积层调整维度,以便让浅层的特征融合到深层中。

ResNet34:

 

输入

残差

输出

Input

CONV

BatchNormalization

Activation

POOL

MAX

Resnet block 1-4

POOL

Avg

Dense

224

*224

*3

f=64

k=7

s=2

a=relu

relu

p=3

s=2

p=sa

见下方

u=10

a=softmax

Resnet block1

Resnet block2

Resnet block3

Resnet block4

Resi

=2conv

Resi

Resi

Resi

=3conv

Resi

Resi

Resi

Resi

=3conv

Resi

Resi

Resi

Resi

Resi

Resi

=3conv

Resi

Resi

f=64

k=3

s=1

p=s

f=64

k=3

s=1

p=s

f=64

k=3

s=1

p=s

f=128

k=3

s=2

p=s

+

f=128

k=1

s=2

f=128

k=3

s=1

p=s

f=128

k=3

s=1

p=s

f=128

k=3

s=1

p=s

f=256

k=3

s=2

p=s

+

f=256

k=1

s=2

f=256

k=3

s=1

p=s

f=256

k=3

s=1

p=s

f=256

k=3

s=1

p=s

f=256

k=3

s=1

p=s

f=256

k=3

s=1

p=s

f=512

k=3

s=2

p=s

+

f=512

k=1

s=2

f=512

k=3

s=1

p=s

f=512

k=3

s=1

p=s

每个residual中有两个conv卷积层。以上参数是两个conv的。

如层数过多需要调整通道数时,residual中可能另外会在后面加1*1的卷积。

除了first block,其他block的第一个residual另外还要添加1*1卷积,步长为2。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值