您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python人工智能深度学习CNN

51自学网 2022-02-21 10:48:46
  python
这篇教程Python人工智能深度学习CNN写得很实用,希望能帮到您。

1.CNN概述

CNN的整体思想,就是对图片进行下采样,让一个函数只学一个图的一部分,这样便得到少但是更有效的特征,最后通过全连接神经网络对结果进行输出。

整体架构如下:

输入图片

→卷积:得到特征图(激活图)

→ReLU:去除负值

→池化:缩小数据量同时保留最有效特征

(以上步骤可多次进行)

→输入全连接神经网络

2.卷积层

CNN-Convolution

卷积核(或者被称为kernel, filter, neuron)是要被学出来的,卷积核中的数就是权重(参数)

做内积,把卷积核的每一个参数和图像中对应位置的数字相乘(对应位置的元素相乘,不同于矩阵乘法),再求和。相当于一个神经元,对输入的数据,进行权重的分配,而权重就是卷积核的数据。再求和,就是第一个神经元所得到的结果。把这个权重对图片所有数据进行处理,就得到第一个激活图或特征图(feature map)。我们可以增加卷积核的数量,就会得到多层激活图,可以更好的保留数据的空间尺寸。

当卷积核与图片进行相乘相加的时候,如果卷积核此时正在计算的区域数字分布与卷积核类似,所得的求和结果会很大(称为卷积核被激活了),而其他地方会很小,说明图像在这个区域,有和卷积核类似的图案。

一个卷积核只能识别一个特征。因此我们需要添加多个卷积核,卷积核越多,得到的激活图就越深,输入图像的信息就越多。

对于彩色的图来说,不需要把颜色分开,卷积核的深度和图像深度是一样的,比如彩色是红绿蓝三层,那么卷积核也是三层。

卷积层相当于降采样的神经网络,如下图,本来应该连接36个神经元,但实际连接了9个。

3.池化层

CNN-MaxPooling

在Max Pooling,也就是池化层之前,会需要进行一个ReLU函数转化,即把小于0的值全转为0,其他的不变。

池化层主要就是为了减少数据量,选一个尺寸之后,直接用尺寸中的最大值代替那个尺寸。这样可以减少数据从而减少运算量。

如下图所示,输入数据原本是6*6,通过卷积层之后变成4*4,通过池化层之后变成2*2。对于实际的图片来说,维度可能很高,因此卷积层,池化层可以多次进行。

4.全连层

将最后得到的高层次特征输入全连接的神经网络,即全连层。全连层就是一个全连接的神经网络,它的参数数量就是最后的池化层输出的数据数量。

同样的,前向传播后,计算损失函数后进行后向传播,得到各参数的梯度,对各参数进行更新,直到找到最佳参数。

因此,在全连接之前的所有层,不管多少层的卷积、池化,都是为了得到更好的特征的同时降低数据量。使得模型可以更好地训练。

以上就是Python人工智能深度学习CNN的详细内容,更多关于人工智能CNN深度学习的资料请关注51zixue.net其它相关文章!


Python Flask入门
Python Pandas两个表格内容模糊匹配的实现
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。