初始卷积神经网络CNN

学习深度学习一定要学习CNN,而CNN的发展非常快,从 LeNet 到 AlexNet 到 VGG 到 GoogleNet 再到 ResNet 再到 DenseNet,学习这些经典的网络首先需要了解卷积神经网络的相关知识。

下图就是LeNet的网络结构,如果你不懂CNN,是完全不明白这到底是个什么东西的。
在这里插入图片描述


Why CNN

首先,我们使用神经网络可以实现回归求解,图片的识别当然也是可以使用神经网络来求解。

但之前我们使用了全连接的多层感知机,试想一下,一张图片RGB共3个channels,维度为1000 × 1000 × 3,那么输入就有300万之多,若每个输入单元与隐藏层的每个权重单元(假设共有1000个隐藏单元)进行相乘,那么最后矩阵大小就有1000 × 300万,即30亿个参数,这是一个非常巨大的数字,所以使用全连接网络是不现实的。

所以人们相出了一种卷积计算,先从边缘检测引入它。


边缘检测示例

从网上随便一张图片:

那么它的边缘检测就是吴磊的半身轮廓。因为图片由像素组成,所以每个轮廓的像素和周围的像素是不同的,如何进行检测呢?这就需要提到卷积运算了。


二、重要概念

1. 卷积运算

卷积运算是将输入和核函数进行对应相乘并相加,图示如下:

而卷积运算有以下重要的思想:

  • 稀疏交互:边缘检测在整个图像上来说是稀疏的
  • 参数共享:权重被计算多次
  • 等变表示 f ( g ( x ) ) = g ( f ( x ) ) f(g(x)) = g(f(x)) f(g(x))=g(f(x))

2. 卷积层的组成

卷积层由以下部分组成:

  • 卷积计算:就是上面图片所示
  • 卷积核kernel
  • 边界填充padding
  • 步长stride

当图像输入大小为 n × n n×n n×n,卷积核大小为 f × f f×f f×f 时,输出的大小为 ( n − f + 1 ) × ( n − f + 1 ) (n-f+1) × (n-f+1) (nf+1)×(nf+1)
当加入padding( p p p )后,输出的大小为 ( n + 2 p − f + 1 ) × ( n + 2 p − f + 1 ) (n+2p-f+1) × (n+2p-f+1) (n+2pf+1)×(n+2pf+1)
若加入stride( s s s ),则输出的大小为 ⌊ ( n + 2 p − f ) s + 1 ⌋ × ⌊ ( n + 2 p − f ) s + 1 ⌋ \lfloor{\frac{(n+2p-f)}{s}+1}\rfloor × \lfloor{\frac{(n+2p-f)}{s}+1}\rfloor s(n+2pf)+1×s(n+2pf)+1

3. 激活函数

在LeNet中使用的是sigmoid,也可以使用tanh,但是到了AlexNet中提出了使用ReLU这个激活函数,为什么呢?因为它要比tanh更快达到低错误率。

4. Pooling

Pooling是为了提取一定区域的主要特征,并减少参数数量,一般采用两种池化层:MaxPoolingAveragePooling
下图采用的是MaxPooling:


三、CNN结构组成

  1. 卷积层Conv
  2. 池化层Pooling
  3. 全连接层FC
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卷积神经网络CNN)是一种常用于图像识别和处理任务的深度学习网络,其训练算法如下: 1. 数据预处理:首先,需要将输入的图像数据进行预处理。这包括对图像进行缩放、归一化和标准化等操作,以便使输入数据适合网络的要求。 2. 初始化参数:为了开始训练网络,需要初始CNN的参数。通常,权重矩阵和偏置项是随机初始化的,以便给网络提供足够的学习空间。 3. 前向传播:在CNN中,前向传播是指输入数据通过网络的各个层,逐层传递并经过卷积、非线性激活函数、池化等操作,最终得到输出结果。在这个过程中,需要计算并保存每一层的中间结果和激活值。 4. 计算损失函数:得到输出结果后,需要与真实标签进行对比并计算损失函数。常见的损失函数有交叉熵损失函数、均方差损失函数等。 5. 反向传播:通过反向传播算法,将损失函数的梯度反向传播到每一层的参数上。这个过程包括计算梯度、更新权重矩阵和偏置项等操作,以调整网络参数使损失函数逐渐减小。 6. 参数更新:基于反向传播计算得到的梯度,使用优化算法(如随机梯度下降法)来更新网络中的参数。通过迭代循环多次,不断优化网络参数,以使模型更好地逼近真实结果。 7. 重复迭代:通过多次迭代进行上述步骤,直到达到预定义的停止条件,例如达到最大迭代次数或收敛到一定的训练误差。 8. 模型评估:训练完成后,使用验证集或测试集来评估训练得到的模型的性能。可以计算并比较准确率、召回率、精确率等指标,来评价模型在未知数据上的预测能力。 以上就是Python卷积神经网络CNN)的训练算法的基本步骤。通过不断的迭代优化,CNN可以逐渐学习到输入数据的特征,并对未知数据进行准确的预测。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值