2.卷积神经网络

基本概念:

特征提取:卷积神经网络通过卷积层提取图像特征,卷积操作可以捕获图像的局部特征,在图像卷积时,根据定义,需要首先把卷积核上下左右翻转,但在实际操作中,由于卷积核通常是对称的,这一步骤可以被忽略。
填充(Padding):填充是在矩阵的边界上添加一些值的操作,常用0或复制边界像素进行填充。这样做可以控制卷积操作后的输出大小。
步长(Stride):步长定义了卷积核移动的间隔,步长为2意味着卷积核每次移动两个像素
多通道卷积:在处理彩色图像时,卷积操作会考虑RGB三个颜色通道。每个通道使用独立的卷积核,然后将结果相加,得到最终的特征图,
池化(Pooling):池化是另一种减少特征维度的操作。通过局部统计特征如取局部平均或最大值)来减少数据的空间大小,同时保留重要信息。

算法

前向传播:在卷积神经网络中,前向传播涉及对输入图像进行一系列卷积、激活和池化操作,每一层都在前一层提取的特征基础上进一步提取高级特征
误差反向传播:误差反向传播算法用于训练卷积神经网络,通过计算损失函数相对于网络参数的梯度,并使用这些梯度更新参数。对于卷积层和池化层梯度的计算涉及特定的公式

LeNet-5网络:

概念:
LeNet-5网络是深度学习历史上的经典网络之一,由Yann LeCun等人在1998年提出,主要用于手写数字识别,其结构简单而高效,对后来的深度学习模型设计产生了深远影响。
组成:
LeNet-5网络主要由卷积层、池化层和全连接层组成,总共有7层(不包括输入层)。它的特点是采用了卷积操作来提取图像中的局部特征,通过池化层减少参数数量和计算量,最后通过全连接层完成分类任务。

结构:

C1层(卷积层)
由6个卷积核构成,每个卷积核的大小为5x5,步长为1
每个卷积核对输入图像进行卷积操作,生成6个特征图 (feature maps)。
特征图的大小由输入图像的大小决定,对于32x32的输入图像,输出的特征图大小为28x28.
S2层(池化层)
也称为下采样层,采用平均池化方法。
对C1层的每个特征图进行下采样,将2x2的区域池化为单个像素,输出的特征图大小变为14x14.
这一层旨在减少数据的空间大小,保留重要特征的同时减少计算量。
C3层(卷积层)
由16个卷积核构成,每个卷积核大小为5x5.
不同于C1层,C3层的每个卷积核可能不会连接到S2层的所有6个特征图上,这种设计旨在提取更抽象的高级特征
S4层(池化层)
同S2层,采用平均池化方法
对C3层的输出进行下采样,输出的特征图大小变为5x5
C5层(卷积层)
由120个卷积核构成,每个卷积核大小为5x5
由于前一层输出的特征图大小为5x5,C5层的卷积操作实际上使每个特图只产生一个输出值,因此C5层也被视为全连接层的一部分。

F6层(全连接层)
由84个神经元构成,全连接到C5层的输出上
该层的输出将被送入最终的分类器
输出层
使用RBF(径向基函数)作为激活函数,每个类别一个输出单元
输出层的设计取决于特定的任务,对于手写数字识别,通常设计为10个输出单元,对应10个数字类别。

实现代码

import torch
from torch import nn
from d2l import torch as d2l

class Reshape(torch.nn.Module):
    def forward(self, x):
        return x.view(-1, 1, 28, 28)

net = torch.nn.Sequential(
    Reshape(),
    nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.Sigmoid(),
    nn.AvgPool2d(kernel_size=2, stride=2),
    nn.Conv2d(6, 16, kernel_size=5), nn.Sigmoid(),
    nn.AvgPool2d(kernel_size=2, stride=2),
    nn.Flatten(),
    nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),
    nn.Linear(120, 84), nn.Sigmoid(),
    nn.Linear(84, 10))

基本卷积神经网络:

 AlexNet


网络提出:
AlexNet是由Alex Krizhevsky等人在2012年提出的深度卷积神经网络,它在lmageNetLSVRC-2012竞赛中获得了第一名,大幅降低了错误率,标志着深度学习时代的到来。
网络结构
AlexNet包含8层可学习的参数层,分别是5层卷积和3层全连接层、网络入了RelU非线性激活、最大池化、丢弃(Dropout)和局部响应归一化等新颖技术,显著提高了训练的速度和准确率
改进点
ReLU非线性: 使用ReLU激活函数代替传统的Sigmoid,加快了网络的收敛速度
最大池化:采用最大池化而非平均池化,更好地保留了特征信息
Dropout: 在全连接层使用Dropout技术,有效减少了过拟合现象
LRN:局部响应归一化帮助模拟生物神经系统的“侧抑制”机制,增强了模型的泛化能力。


VGG-16


网络提出
VGG-16是中牛津大学的视觉何组 Msual Geometrv GrouD) 于2014年提出。该网络通过重复利用简单的3x3卷积核和2X2最大池化层,构建了深达16层的卷积神经网络。

网络结构
VGG-16网络包含13个卷积层、3个全连接层和5个池化层,所有隐藏层都采用了ReLU激活函数。VGG-16的创新之处在于使用多个较小卷积核的卷积层代替大卷积核的卷积层,增加了网络的深度
主要贡献
规范化网络结构: VGG网络通过规范化的卷积和池化层堆叠,提出了可以深化网络结构的通用方法
3x3卷积核:证明了使用更小的卷积核并增加网络深度可以有效提高网络性能。


残差网络(ResNet)


作用
残差网络通过引入残差块,允许数据直接从浅层传递到深层。
残差块
残差块的关键思想是引入了跳跃连接(或称为捷径连接),使得网络可以学习到输入与输出的残差映射。理论上,这使得网络即使非常深也能有效地训练。
网络结构
ResNe有多个版本,根据层数的不同分为ResNet-18,ResNet34,ResNet-50,ResNet-101和ResNet-152等其中,ResNet-50及以上模型采用了瓶颈结构,进一步增加了网络的深度和性能。
创新点
深层网络的有效训练: 残差网络的提出解决了深层网络训练困难的问题,使得网络能够通过增加层数来持续提高性能。
跳跃连接:跳跃连接的设计使得信息可以在网络中更有效地传播,避免了梯度消失问题。

  • 22
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值