机器学习 学习记录(五)

本文深入探讨卷积神经网络(CNN),首先回顾卷积概念,然后阐述CNN的基本结构,包括输入层、卷积层、池化层、全连接层等,并介绍卷积和池化的过程。此外,文章提出了一些关于CNN的问题,如输入矩阵处理、卷积层计算、与全连接层的关系、学习机制及多卷积核的应用,鼓励读者进一步研究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇将介绍卷积网络的内容。

在正式介绍卷积神经网络(Convolutional Neural Network简称CNN)之前,我想先回忆一下,卷积的概念,以便能够更好地理解卷积神经网络,并且能够从另外一个角度去理解卷积神经网络的实现原理。
在大学数学分析里傅里叶变换一章曾经介绍过卷积的概念

x(t)h(t)=+x(τ)h(tτ)dτ

对于离散的序列,其卷积定义为
x(n)h(n)=m=x(m)h(nm)

当我们从s域(对于序列来说是z域)去看以上的卷积的时候:
L[x(t)h(t)]=X(s)H(s)

L[x(n)h(n)]=X(z)H(z)

其实卷积做的事情本质上就是移位相乘再积分。其实在时间域上很难看得出来卷积做的具体事情,但是在频率域上就一目了然了。我们都知道,当函数经过傅氏变换或者拉氏变换之后会变换成频率域的函数,而对于频率域的函数X(s)H(s)来说,我们可以通过调节H(s)来对X(s)做处理,比如可以将X(s)的高频部分进行衰减,就是低通滤波。所以到这里卷积的实际意义我们就能看得很清楚了,其实就是做“滤波”。
在图像上同理,我们也可以用信号里的做法去套用图像卷积。图像卷积,其实也是在“滤波”,通过卷积,我们可以得到自己想要的结果,对有用的特征进行加强,对无用的特征进行削弱。

下面介绍深度学习中的卷积网络基本实现方法

为什么要在神经网络里使用卷积呢?
1.有些有用的特征所占的像素远比一张图片像素量少
2.相同的特征可能出现在图片的不同部分,我们可以利用相同的“滤波器”对其进行检测
3.做完卷积,缩减像素数量,但是不会改变图片的整体信息

引用块内容
图片引用自李宏毅(台湾大学) 《机器学习》

上面的图片表现出来了一个卷积神经网络的基本结构,从上面图片我们能得出,一个卷积神经网络可能包含以下几个部分:

1.输入层
2.卷积层
3.池化层
4.全相联层
5.平整
6.输出层
其中卷积层与池化层可以多次出现,卷积层和池化层我们称为隐藏层。

①卷积层的介绍:
输入层将一张图片矩阵输入进来之后,经filter的作用,对图片进行卷积,操作过程如下:

引用块内容
这里写图片描述
图中filter是一个3×3的矩阵,filter矩阵先跟图片左上角的3×3子矩阵进行乘积相加得到3,然后filter向右移动一列,继续与下一个子矩阵做乘积相加得到-1,知道filter移动到了图片的右下角,这一次卷积结束,得到一个新的矩阵

     3    13  13  1   0333   0      1 3221

②池化层
池化层要做的就是取每一个子矩阵,用每一个矩阵的元素最大值(或者是平均值)来取代该子矩阵
这里写图片描述

经过池化后变成:
这里写图片描述

③Flatten
这一个操作做的就是将卷积层池化层的得到的矩阵按元素展开,以便作为输入传到下一层
这里写图片描述

上面只是粗略介绍了卷积神经网络的实现方法,下面提出了几个问题
1.如果输入的图片是RGB模式,也就是说,输入的是不是一个n×m的二维矩阵,有可能输入的是n×m×l的三维矩阵,这个时候卷积应该怎么做?
2.如何去计算每一个卷积层的输入输出矩阵的具体形态(输入输出矩阵是几乘几的矩阵)?
3.卷积神经网络和全相联神经网络有什么联系?
4.CNN到底是在学习什么,如何让他学得更好(CNN的Gradient Descent怎么做?)
5.有的时候不一定只是一个卷积核,那如果有多个卷积核,应该怎么做?
对以上问题在这里不加赘述,请读者参考相关资料。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值