【李宏毅机器学习2021】本系列是针对datawhale《李宏毅机器学习-2022 10月》的学习笔记。本次是对深度学习中卷积神经网络的总结。本节课主要讲解卷积神经网络中的感受野、滤波器、下采样的重要组成部分。网络设计技巧在之前内容已经介绍过,本次就打卡卷积神经网络啦。
目录
卷积神经网络的主要目标是做图像分类,针对图像上的特征进行区分定位。
这里可能会遇到说RGB三个颜色怎么进行处理
可以将三个通道的图像拉成一个长矩阵 。如果像之前的全连接网络对图像处理由于参数过大,会导致overfitting问题。
需要针对图像这种特征明显且数据量大的输入做更好的预测,从而诞生了cnn。
对于图像的分类,如果找到图片内的响应特征,只用这些特征就可以很容易定位到图像类别。
通过这个方式思考,可以用专门的神经元去筛选图像中的特征。这样的神经元尺寸一般是3*3的矩阵,这样的矩阵叫kernel。
矩阵对图像筛选特征时,在最后一列可能不足需要补充像素点。这里用到的方法叫padding
使用kernel对图像处理时每次将kernel移动的位置叫stride。
对于相同的特征在不同的图像可能是不同的位置,所以对于同一特征需要在整个图像上处理查找。
处理的方式就是让不同的神经元去共享参数处理图像,例如下图。
换个方式讲,就是用3*3*channel的滤波器(矩阵)对图像处理,将滤波器上的值和图像上的点相乘后求和。得到一个尺寸更小的矩阵,同时深度更深,因为用到很多滤波器,这样的矩阵叫feature map。
注意:如果做两次3*3的卷积,其实相当于对图像做5*5的处理,并不是无效操作。
有的时候图像中的信息已经很丰富,可以进行压缩处理。对图像中分成由相同大小组成的矩阵。
通过一定的规则,如取小矩阵中最大值作为新图像的点。
一般卷积和poolling的方法一般会组合使用。
整个cnn网络如下
下围棋其实就是一个分类任务,有19*19类。
围棋任务中有很多和图像处理相似的点。比如这样5*5的矩阵就是一个特征。同时这样的特征可以分布在棋盘很多位置。
不同点就是不需要pooling 不然会打乱围棋特征。这里也映射出来一个道理,设计的神经网络架构需要贴切实际任务本身,不然会丢失很多信息。
cnn网络缺陷就是fliter在图像中的大小是一致的,筛选的特征也是一定尺寸的。如果图像放大或缩小特征就会丢失,不匹配。这种问题就需要在使用cnn网络之前就对图像做扩展,放大、缩小、旋转相应的操作。
不过目前大火的transformer网络可以很好的解决这个问题。
学习结束~行百里者半九十,继续加油。