神经网络简介

神经网络

一、卷积层

卷积是一种有效提取图片特征的方法 。 一般用一个正方形卷积核,遍历图片上的每一个像素点。图片与卷积核重合区域内相对应的每一个像素值,乘卷积核内相对应点的权重,然后求和, 再加上偏置后,最后得到输出图片中的一个像素值。
图片分灰度图和彩色图,卷积核可以是单个也可以是多个,因此卷积操作分以下三种情况:

1.1 单通道输入,单卷积核

单通道指的是输入为灰度图,单卷积核值卷积核个数是1个;请添加图片描述

1.2 多通道输入,单卷积核

多数情况下,输入的图片是 RGB 三个颜色组成的彩色图,输入的图片包含了红、绿、蓝三层数据,卷积核的深度(通道数)应该等于输入图片的通道数,所以使用 3x3x3的卷积核,最后一个 3 表示匹配输入图像的 3 个通道,这样这个卷积核有三通道,每个通道都会随机生成 9 个待优化的参数,一共有 27 个待优化参数 w 和一个偏置 b。在这里插入图片描述

1.3 多通道输入,多卷积核

多通道输入、多卷积核是深度神经网络中间最常见的形式。指的是多通道输入,且用多个卷积核的情况。那么卷积过程其实也很简单,以3通道输入,2个卷积核为例:

(1)先取出一个卷积核与3通道的输入进行卷积,这个过程就和多通道输入,单卷积核一样,得到一个1通道的输出output1。同样再取出第二个卷积核进行同样的操作,得到第二个输出output2
(2)将相同size的output1与output2进行堆叠,就得到2通道的输出output。

为了更直观地理解,下面给出图示:
在这里插入图片描述

中输入X:[1,h,w,3]指的是:输入1张高h宽w的3通道图片。
卷积核W:[k,k,3,2]指的是:卷积核尺寸为3*3,通道数为3,个数为2。

总结:
(1)卷积操作后,输出的通道数=卷积核的个数
(2)卷积核的个数和卷积核的通道数是不同的概念。每层卷积核的个数在设计网络时会给出,但是卷积核的通道数不一定会给出。默认情况下,卷积核的通道数=输入的通道数,因为这是进行卷积操作的必要条件。
(3)偏置数=卷积核数

1.4 填充padding

填充的目的是为了使卷积操作后能得到满意的输出图片尺寸,所以使用padding对输入进行填充操作,默认在图片周围填充。

(1)全零填充padding='same’
使用same时,会自动对原图进行全0填充,当步长为1时,可以保证输出的图片与输入的图片尺寸一致。
输出尺寸计算公式:(输入长/步长 (向上取整))
(2)不填充padding='valid’
使用valid时,不进行任何填充,直接进行卷积,这是layers.Conv2D()默认的方式。
输出尺寸计算公式:(输入长-核长)/步长+1 (向下取整)

(3)自定义填充一般是从上下左右四个方向进行填充,且左、右填充的列数p w p_wp w 一般相同,上、下填充的行数p h p_hp h也应该相同。如下图所示

二、池化层

在卷积层中,可以通过调节步长参数 s 实现特征图的高宽成倍缩小,从而降低了网络的参数量。实际上,除了通过设置步长,还有一种专门的网络层可以实现尺寸缩减功能,它就是我们要介绍的池化层(Pooling layer)。

池化层,由于他的操作很像一个蓄水池,将周围的水给收集过来,因此得名池化,pooling layer。

在这里插入图片描述

Pytorch提供方法:

  • 1、nn.MaxPool2d(最大池化)

在这里插入图片描述

  • 2、nn.AvgPool2d(平均池化)
    在这里插入图片描述

  • 3、nn.MaxUnpool2d

反池化。将小尺寸图像变为大尺寸图像。
在这里插入图片描述

池化层同样基于局部相关性的思想,通过从局部相关的一组元素中进行采样或信息聚合,从而得到新的元素值。通常我们用到两种池化进行下采样:
(1)最大池化(Max Pooling),从局部相关元素集中选取最大的一个元素值。
(2)平均池化(Average Pooling),从局部相关元素集中计算平均值并返回。

三、全连接层(线性层)

全连接层简称FC。之所以叫全连接,是因为每个神经元与前后相邻层的每一个神经元都有连接关系。如下图所示,是一个简单的两层全连接网络,输入时特征,输出是预测的结果。

在这里插入图片描述
在这里插入图片描述

按照上图搭建的两层全连接网络,要训练分辨率仅仅是 28x28=784 的黑白图像,就有近 40 万个待优化的参数。现实生活中高分辨率的彩色图像,像素点更多,且为红绿蓝三通道信息。待优化的参数过多, 容易导致模型过拟合。为避免这种现象,实际应用中一般不会将原始图片直接喂入全连接网络。
在实际应用中,会先对原始图像进行卷积特征提取,把提取到的特征喂给全连接网络,再让全连接网络计算出分类评估值。

四、损失函数

损失函数的作用就是:衡量模型预测的好坏。在这里插入图片描述

五、激活函数层

在神经网络中,通常使用多个全连接层进行叠加。比如LeNet,在输出分类的时候,有3个全连接层进行叠加。在每个全连接层输出的时候,通常会添加一个非线性激活函数。这个激活函数的作用是非常大的。它赋予了多层神经网络具有深度的意义。
在这里插入图片描述

六、反向传播

反向传播算法是目前用来训练人工神经网络的最常用且最有效的算法。

反向传播工作原理就是:

(1)前向传播:将训练集数据输入到ANN的输入层,经过隐藏层,最后到达输出层并输出结果。【输入层—隐藏层–输出层】
(2)反向传播:由于ANN的输入结果与输出结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层。【输出层–隐藏层–输入层】
(3)权重更新:在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。

举一个例子来说明我理解的反向传播的思想是:

(1)前向传播:三个人在玩你画我猜的游戏,然后第一个人给第二个人描述,再将信息传递给第三个人,由第三个人说出画的到底是啥。
(2)反向传播:第三个人得知自己说的和真实答案之间的误差后,发现他们在传递时的问题差在哪里,向前面一个人说下次描述的时候怎样可以更加准确的传递信息。就这样一直向前一个人告知。
(3)三个人之间的的默契一直在磨合,然后描述的更加准确。

向传播:第三个人得知自己说的和真实答案之间的误差后,发现他们在传递时的问题差在哪里,向前面一个人说下次描述的时候怎样可以更加准确的传递信息。就这样一直向前一个人告知。
(3)三个人之间的的默契一直在磨合,然后描述的更加准确。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嗌三嗮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值