前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >卷积神经网络基础

卷积神经网络基础

作者头像
OliverHan
发布2023-04-23 17:18:43
2830
发布2023-04-23 17:18:43
举报
文章被收录于专栏:阿狐和柴柴

1.1 卷积神经网络基础

CNN 卷积神经网络:包含卷积层的网络

全连接层:由神经元连接而成

截屏2023-04-08 下午7.05.47
截屏2023-04-08 下午7.05.47

卷积层:一个滑动窗口在图像上滑动并计算

计算利用卷积核,将卷积核覆盖到图像上,再将卷积核上面的值与图像层相乘,最后相加得到该区域的值。

不断滑动,得到各个位置的卷积值

特性:1.具有局部感知机制 2.权值共享

对多维的矩阵进行卷积操作:

条件:1.输入特征矩阵深度与卷积核深度保持一致 2. 卷积完输出的特征矩阵(深度)与卷积核个数相同

计算:各个深度的卷积层相同位置处,卷积出来的值相加,最后各个深度卷完成一层了

当然卷积核不唯一,卷完之后拼接在一起

截屏2023-04-08 下午7.22.30
截屏2023-04-08 下午7.22.30

具体计算细节问题:

  1. 如何带上偏移量计算? 当前卷积核输出的卷积矩阵,减去偏移量bias
  2. 加上激活函数该如何计算? 常用激活函数: sigmoid激活函数 f(x) = \frac{1}{1+e^{-x}}
截屏2023-04-08 下午7.37.46
截屏2023-04-08 下午7.37.46

relu激活函数

f(x) = Max(0,x)

截屏2023-04-08 下午7.38.28
截屏2023-04-08 下午7.38.28

因为计算过程是一个线性过程,如果想要解决非线性问题,就需要引入非线性因素。

3.越界问题:

矩阵经过卷积操作后的尺寸由以下几个因数决定:

<1>输入图片的大小 W x W

<2>Filter大小F x F (卷积核滑动窗口大小)

<3>步长S

<4>padding的像素数 (补零的像素数) P

经过卷积后的矩阵尺寸大小计算公式为:

N = \frac{W-F+2P}{S+1}

池化层:对特征图进行稀疏处理,减少数据运算量

MaxPooling下采样层

截屏2023-04-08 下午7.51.54
截屏2023-04-08 下午7.51.54

AveragePooling下采样层

截屏2023-04-08 下午7.52.41
截屏2023-04-08 下午7.52.41

·只改变特征矩阵的大小,不改变深度

·一般池化核边长和步长相同

1.2 卷积神经网络基础补充

误差的计算

截屏2023-04-09 上午9.28.49
截屏2023-04-09 上午9.28.49

当前该节点的输出为:

out = \sigma(x_1\times w_{11}^{(1)}+x_2\times w_{21}^{(1)}+b_1^{(1)})

w指权重,b为偏置,x1,x2等为上一个神经元的输出,若上一层为输出层就直接输入数据

上标(1)指当前处于哪一层

下表第一个数字是上一层第几个神经元,第二个数字是本层第几个神经元

最后一层的激活函数是softmax

softmax计算过程:

o_i = \frac{e^{y_i}}{\sum_{j}e^{y_j}}

比如上图,

o_1 = \frac{e^{y_1}}{e^{y_1}+e^{y_2}} o_2 = \frac{e^{y_2}}{e^{y_1}+e^{y_2}}

误差计算方法一:交叉熵损失

根据问题种类,有两种:

1.针对多分类问题(softmax输出,所有输出概率和为1,分类之间没有包含关系)

H = -\sum_i o_ i^* \times log(o_i)

2.针对二分类问题 (sigmoid输出,每个输出节点之间互不相干,分类之间有包含关系)

H = -\frac{1}{N}\sum_{i=1}^N[o_i^*\times logo_i+(1-o_i^*)\times log(1-o_i)]

上述公式中,

H(Loss)为损失,o^*_i为真实值标签,o_i为预测值,默认log以e为底是ln

误差的反向传播

截屏2023-04-09 上午10.01.46
截屏2023-04-09 上午10.01.46

最后带入得到:

\frac{\part Loss}{\part w_{11}^{(2)}} = (o_2^*\times o_1-o_1^* \times o_2)\times a_1

根据误差进行权重的更新

w_{11}^{(2)}(new) = w_{11}^{(2)}(old)-learing_{rate}\times \frac{\part Loss}{\part w_{11}^{(2)}}(gradient)

问题:当分批次训练时,批次的损失梯度和整体sample的方向不一样

截屏2023-04-09 上午10.19.03
截屏2023-04-09 上午10.19.03

所以需要优化器:

  1. SGD优化器: w_{t+1} = w_t-\alpha \times g(w_t) \alpha为学习率,g(w_t)为t时刻对参数w_t的损失梯度

优化器的缺点:

1 容易受样本噪声的影响

2 可能陷入局部最优解

  1. SGD+Momentum优化器: v_t = \eta \times v_{t-1} + \alpha \times g(w_t) w_{t+1} = w_t - v_t \alpha为学习率,g(w_t)为t时刻对参数w_t的损失梯度,\eta(0.9)为动量系数。
  2. Adagrad优化器(自适应学习率) s_t = s_{t-1}+g(w_t)^2 w_{t+1} = w_t - \frac {\alpha}{\sqrt{s_t+\epsilon}}*g(w_t)

\alpha 为学习率,g(w_t)为t时刻对参数w_t的损失梯度,\epsilon(10^{-7}为防止分母为0的小数)

缺点:学习率下降太快可能还没收敛就停止训练

截屏2023-04-09 上午10.34.11
截屏2023-04-09 上午10.34.11
截屏2023-04-09 上午10.34.44
截屏2023-04-09 上午10.34.44
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 卷积神经网络基础
    • 卷积层:一个滑动窗口在图像上滑动并计算
      • 具体计算细节问题:
    • 池化层:对特征图进行稀疏处理,减少数据运算量
    • 1.2 卷积神经网络基础补充
      • 误差的计算
        • 误差计算方法一:交叉熵损失
      • 误差的反向传播
        • 根据误差进行权重的更新
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档