CNN、ResNet学习笔记

发布于:2023-01-04 ⋅ 阅读:(312) ⋅ 点赞:(0)

学习链接:卷积神经网络(CNN)详解 - 知乎1. 卷积神经网络结构介绍如果用全连接神经网络处理大尺寸图像具有三个明显的缺点: (1)首先将图像展开为向量会丢失空间信息; (2)其次参数过多效率低下,训练困难; (3)同时大量的参数也很快会导致网络过拟…https://zhuanlan.zhihu.com/p/47184529

一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)- 产品经理的人工智能学习库 (easyai.tech)icon-default.png?t=M7J4https://easyai.tech/ai-definition/cnn/CNN笔记:通俗理解卷积神经网络_v_JULY_v的博客-CSDN博客_cnn卷积神经网络icon-default.png?t=M7J4https://blog.csdn.net/v_JULY_v/article/details/51812459【什么是CNN?】浙大大佬教你怎么卷CNN,卷积神经网络CNN从入门到实战,通俗易懂草履虫听了都点头(人工智能、深度学习、机器学习、计算机视觉)_哔哩哔哩_bilibiliicon-default.png?t=M7J4https://www.bilibili.com/video/BV1zF411V7xu?p=1&vd_source=cb9a5b44dbe37f5ca1c843ebd86d44f8

 

一、CNN(卷积神经网络)

卷积神经网络_百度百科 (baidu.com)icon-default.png?t=M7J4https://baike.baidu.com/item/%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C

典型的 CNN 由3个部分构成:

  1. 卷积层
  2. 池化层
  3. 全连接层

如果简单来描述的话:

卷积层负责提取图像中的局部特征;池化层用来大幅降低参数量级(降维);全连接层类似传统神经网络的部分,用来输出想要的结果。

二、何为卷积层和池化层?

卷积层(Convolutional layer)

卷积神经网络中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法最佳化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。

池化层(Pooling Layer)

池化(Pooling)是卷积神经网络中另一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效地原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合通常来说,CNN的卷积层之间都会周期性地插入池化层。

池化层通常会分别作用于每个输入的特征并减小其大小。最常用形式的池化层是每隔2个元素从图像划分出2*2的区块,然后对每个区块中的4个数取最大值。这将会减少75%的数据量。

除了最大池化之外,池化层也可以使用其他池化函数,例如“平均池化”甚至“L2-范数池化”等。过去,平均池化的使用曾经较为广泛,但是最近由于最大池化在实践中的表现更好,平均池化已经不太常用。

由于池化层过快地减少了数据的大小,文献中的趋势是使用较小的池化滤镜,甚至不再使用池化层。

卷积层作用总结

  • 提取图像的特征,并且卷积核的权重是可以学习的,由此可以猜测,在高层神经网络中,卷积操作能突破传统滤波器的限制,根据目标函数提取出想要的特征
  • “局部感知,参数共享”的特点大大降低了网络参数,保证了网络的稀疏性,防止过拟合,之所以可以“参数共享”,是因为样本存在局部相关的特性。

池化层作用总结

  • 特征不变性(feature invariant)

        汇合操作使模型更关注是否存在某些特征而不是特征具体的位置可看作是一种很强的先验,使特征学习包含某种程度自由度,能容忍一些特征微小的位移

  • 特征降维

        由于汇合操作的降采样作用,汇合结果中的一个元素对应于原输入数据的一个子区域(sub-region),因此汇合相当于在空间范围内做了维度约减(spatially dimension reduction),从而使模型可以抽取更广范围的特征同时减小了下一层输入大小,进而减小计算量和参数个数

  •  在一定程度上能防止过拟合的发生

三、激活函数作用

激活函数是神经网络模型重要的组成部分

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。

在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。因此,激活函数是确定神经网络输出的数学方程式

深度学习十大常用激活函数讲解:深度学习领域最常用的10个激活函数,一文详解数学原理及优缺点|深度学习|梯度_新浪科技_新浪网来源:机器之心icon-default.png?t=M7J4https://finance.sina.com.cn/tech/2021-02-24/doc-ikftssap8455930.shtml(后续专门写一篇深度学习领域常用激活函数)

四、使用AI Studio使用CNN实现猫狗分类

步骤

 训练模型

 预测结果