CNN原理

本文详细介绍了卷积神经网络(CNN)的工作原理,包括卷积操作、池化层的作用、激活函数的功能以及全连接层的意义。通过示例阐述了卷积如何提取图像特征,池化如何减小图像尺寸并保留关键信息,以及激活函数如何引入非线性。最后,总结了CNN的整体架构。
摘要由CSDN通过智能技术生成

一、卷积


对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。

如图所示,1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1=4,所以对原图片进行卷积后的第一个值为4,后面也一样。那个乘以原图片的矩阵叫做卷积核,具体用来提取原图像的提取输入的一种特征。

上图原图的大小为5*5,经过卷积之后,右图大小变成3*3,经过卷积之后图像大小会变小,一般来说,经过卷积之后的大小会变成Output size=(N-F)/stride +1其中N为原图像的大小,F为卷积核的大小,stride为步长。步长简单来说就是卷积是卷积核每次移动的大小,上图就是每次移动一格。

下面来看一下卷积的作用


如果两个像素点都是白色(也就是值均为1),那么1*1 = 1,如果均为黑色,那么(-1)*(-1) = 1。不管哪种情况,每一对能够匹配上的像素,其相乘结果为1。类似地,任何不匹配的像素相乘结果为-1。如果一个feature(比如n*n)内部所有的像素都和原图中对应一小块(n*n)匹配上了,那么它们对应像素值相乘再累加就等于n2,然后除以像素点总个数n2,结果就是1。同理,如果每一个像素都不匹配,那么结果就是-1。具体过程如下:




对中间的也一样,


卷积神经网络(Convolutional Neural Network, CNN)是一种深度学习模型,常用于图像识别和计算机视觉任务。Matlab中提供了丰富的工具和函数来实现CNNCNN的核心原理是通过卷积层、池化层和全连接层来提取图像特征并进行分类。首先,输入图像经过卷积层,其中包含多个卷积核,每个卷积核都是一个小型的矩阵。卷积过程是将卷积核与输入图像的局部区域进行乘积运算,并将结果求和,从而得到图像的特征图。 然后,使用池化层来降采样特征图,减少特征图的大小。常用的池化方式是最大池化,即选取特征图中每个子区域的最大值作为池化后的值。池化操作有助于减少特征的数量,提高模型的计算效率,并增加模型的鲁棒性。 最后,在全连接层中,将池化层的输出连接到神经网络中,以进行分类或预测。全连接层的每个神经元都与上一层的所有神经元连接,通过学习权重参数,将特征映射到最终的输出类别上。通常使用softmax函数对输出进行归一化,得到每个类别的概率。 Matlab中,可以使用深度学习工具箱中的函数来构建和训练CNN模型。通过定义网络结构、设置训练选项和提供数据集,可以使用训练算法(如反向传播)进行模型训练,并使用测试数据集进行模型验证和评估。此外,Matlab还提供了其他功能,例如数据增强、模型微调和迁移学习,以进一步提升CNN的性能。 总之,Matlab提供了简单易用的工具和函数,可以灵活构建和训练CNN模型,并应用于图像识别和计算机视觉等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值