欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python人工智能深度学习CNN

程序员文章站 2022-03-26 07:59:33
目录1.cnn概述2.卷积层3.池化层4.全连层1.cnn概述cnn的整体思想,就是对图片进行下采样,让一个函数只学一个图的一部分,这样便得到少但是更有效的特征,最后通过全连接神经网络对结果进行输出。...

1.cnn概述

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

整体架构如下:

输入图片

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

→relu:去除负值

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

(以上步骤可多次进行)

→输入全连接神经网络

Python人工智能深度学习CNN

2.卷积层

cnn-convolution

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

Python人工智能深度学习CNN

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

Python人工智能深度学习CNN

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

Python人工智能深度学习CNN

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

Python人工智能深度学习CNN

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

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

Python人工智能深度学习CNN

3.池化层

cnn-maxpooling

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

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

Python人工智能深度学习CNN

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

Python人工智能深度学习CNN

4.全连层

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

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

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

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