水很深的深度学习-卷积神经网络篇

什么是卷积

 先将一个函数反转,然后滑动叠加

最容易理解的对卷积(convolution)的解释_bitcarmanlee的博客-CSDN博客_卷积

这篇文章可以深入理解下卷积

卷积操作

步长:卷积核移动的步长

 

 其他卷积

转置卷积/反卷积

空洞卷积

空洞卷积可以增大感受野,但是可以不改变图像输出特征图的尺寸

我想说下自己白痴理解

扩张率这个东西,对比上面3个图,b相比于a,想像下左上角第一个是一个棋子,走到中间位置需要走两步,并不是一步可以走到,c图就是走了3步,扩张率就是走的步数,不知道这样说是否合适

上面三个图同样是3*3卷积,却发挥了5*5 7*7卷积的同样作用 

吃透空洞卷积(Dilated Convolutions)_程序客栈(@qq704783475)-CSDN博客_膨胀卷积和空洞卷积

卷积神经网络

卷积神经网络包含卷积层、激活函数、池化层、全连接层、输出层

特征图

浅层卷积层:提取图像基本特征,如边缘、方向和纹理

深层卷积层:提取图像高阶特征,出现了高层语义模式

特征映射

一幅图在经过卷积操作后得到结果为feature

池化层:使用某位置相邻输出的总体特征作为该位置的输出,常用的池化操作优最大池化和均值池化

池化层作用

减少参数,防止过拟合

增强网络对输入图片的小变形、扭曲、平移的鲁棒性

帮助获得不因尺寸改变的等效图片表征

全连接层:

对卷积层和池化层输出的特征图进行降维

输出层:分类问题sofxmax函数

回归问题:线性函数

经典卷积神经网络

VGG、Lenet

resnet、Alexnet、Inception NET

LeNet-5(未完全理解),后续继续更新自己理解

输入层:输入图像尺寸归一化为32*32

C1层-卷积层:

S2池化层

C3卷积层

S4池化层

C5卷积层

F6全连接层

输出层全连接层

vggNET(参考pytorch深度学习电子书实现)

https://blog.csdn.net/weixin_44791964/article/details/102585038?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163799975316780255242987%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163799975316780255242987&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-102585038.pc_search_result_cache&utm_term=vgg16&spm=1018.2226.3001.4187icon-default.png?t=LA92https://blog.csdn.net/weixin_44791964/article/details/102585038?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163799975316780255242987%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163799975316780255242987&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-102585038.pc_search_result_cache&utm_term=vgg16&spm=1018.2226.3001.4187 

#了解VGG并实现
class VGG(nn.Module):
    def __init__(self):
        super(VGG,self).__init__()
        self.features = nn.Sequential(
        nn.Conv2d(3,64,kernel_size=3,padding=1)
        nn.ReLU(True)
        
        nn.Conv2d(64,64,kernel_size=3,padding=1)
        nn.ReLU(True)
        nn.MaxPool2d(kernel_size=2,stride=2)
        
        nn.Conv2d(64,128,kernel_size=3,padding=1)
        nn.ReLU(True)
        
        nn.Conv2d(128,128,kernel_size=3,padding=1)
        nn.ReLU(True)
        nn.MaxPool2d(kernel_size=3,stride=2)
            
        nn.Conv2d(128,256,kernel_size=3,padding=1)
        nn.ReLU(True)
        
        nn.Conv2d(256,256,kernel_size=3,padding=1)
        nn.ReLU(True)
        nn.MaxPool2d(kernel_size=2,stride=2)
        
        nn.Conv2d(256,256,kernel_size=3,padding=1)
        nn.ReLU(True)
        nn.MaxPool2d(kernel_size=2,stride=2)
            
        nn.Conv2d(128,512,kernel_size=3,padding=1)
        nn.ReLU(True)
        
        nn.Conv2d(512,512,kernel_size=3,padding=1)
        nn.ReLU(True)
        
        nn.Conv2d(512,512,kernel_size=3,padding=1)
        nn.ReLU(True)
        nn.MaxPool2d(kernel_size=2,stride=2)
        nn.Conv2d(512,512,kernel_size=3,padding=1)
        nn.ReLU(True)
        
        nn.Conv2d(512,512,kernel_size=3,padding=1)
        nn.ReLU(True)
        
        nn.Conv2d(512,512,kernel_size=3,padding=1)
        nn.ReLU(True)
        nn.MaxPool2d(kernel_size=2,stride=2)
            
    self.classifier = nn.Sequnential(
        nn.Linear(512*7*7,4096),
        nn.ReLU(True),
        nn.Dropout(),
        nn.Linear(4096,4096),
        nn.ReLU(True),
        nn.Dropout(),
        nn.Linear(4096,num_classes),)
    self._initialize_weight()
            
    def forwars(self,x):
            x= self.features(x)
            x= x.view(x.size(0),-1)
            x= self.classifier(x)

innception Module

Resnet

resnet核心是残差块残差块可以视作标准神经网路添加了跳跃连接

目前还在继续学习

参考

https://github.com/datawhalechina/unusual-deep-learning/blob/main/docs/5.CNN.md

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
深度学习(DL,Deep Learning)是机器学习(ML,Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI,Artificial Intelligence)。 [1] 深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。 [1] 深度学习在搜索技术、数据挖掘、机器学习、机器翻译、自然语言处理、多媒体学习、语音、推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。 [1] 深度学习是一类模式分析方法的统称,就具体研究内容而言,主要涉及三类方法: [2] (1)基于卷积运算的神经网络系统,即卷积神经网络CNN)。 [2] (2)基于多层神经元的自编码神经网络,包括自编码(Auto encoder)以及近年来受到广泛关注的稀疏编码两类(Sparse Coding)。 [2] (3)以多层自编码神经网络的方式进行预训练,进而结合鉴别信息进一步优化神经网络权值的度置信网络(DBN)。 [2] 通过多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务。由此可将深度学习理解为进行“特征学习”(feature learning)或“表示学习”(representation learning)。 [3] 以往在机器学习用于现实任务时,描述样本的特征通常需由人类专家来设计,这成为“特征工程”(feature engineering)。众所周知,特征的好坏对泛化性能有至关重要的影响,人类专家设计出好特征也并非易事;特征学习(表征学习)则通过机器学习技术自身来产生好特征,这使机器学习向“全自动数据分析”又前进了一步。 [3] 近年来,研究人员也逐渐将这几类方法结合起来,如对原本是以有监督学习为基础的卷积神经网络结合自编码神经网络进行无监督的预训练,进而利用鉴别信息微调网络参数形成的卷积度置信网络。与传统的学习方法相比,深度学习方法预设了更多的模型参数,因此模型训练难度更大,根据统计学习的一般规律知道,模型参数越多,需要参与训练的数据量也越大。 [2] 20世纪八九十年代由于计算机计算能力有限和相关技术的限制,可用于分析的数据量太小,深度学习在模式分析中并没有表现出优异的识别性能。自从2006年,Hinton等提出快速计算受限玻耳兹曼机(RBM)网络权值及偏差的CD-K算法以后,RBM就成了增加神经网络度的有力工具,导致后面使用广泛的DBN(由Hin
VGG-Net是一种经典的卷积神经网络模型,由牛津大学的研究团队开发。它在2014年的ImageNet图像分类挑战中取得了很好的成绩。VGG-Net的主要特点是使用了非常小的卷积核(3x3)和层网络结构。 VGG-Net的网络结构非常简单,它由多个卷积层和池化层组成,最后接上全连接层进行分类。其中,卷积层使用了多个3x3的卷积核,通过堆叠多个卷积层来增加网络的度。池化层则用于减小特征图的尺寸,同时保留主要特征。VGG-Net的网络结构非常,有16层或19层,因此也被称为VGG16或VGG19。 相比于其他卷积神经网络模型,VGG-Net具有以下特点: 1. 网络结构简单明了,只使用了3x3的卷积核和池化层。 2. 拥有较的网络结构,可以提取更复杂的特征。 3. 在ImageNet图像分类挑战中取得了较好的性能。 CNN卷积神经网络)是一种深度学习模型,广泛应用于图像识别、语音识别等领域。CNN的核心思想是通过卷积层、池化层和全连接层来提取和学习图像的特征。 CNN的卷积层通过卷积操作对输入图像进行特征提取,可以捕捉到图像的局部信息。池化层则用于减小特征图的尺寸,同时保留主要特征。最后,全连接层将提取到的特征映射到不同的类别上。 CNN的优势在于: 1. 具有局部感知性,能够有效地处理图像等二维数据。 2. 参数共享,减少了模型的参数量,降低了过拟合的风险。 3. 可以通过堆叠多个卷积层和池化层来构建层网络,提取更高级的特征。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值