前言
最近因毕业设计中设计深度学习目标检测方面的知识,作为小白想要从零开始学习一下,主要就是在B站看吴恩达的教学视频。目前在学习第四课—卷积神经网络,感觉把学习过程中的笔记贴出来能够督促自己,同时也能够记录下自己的一些想法,便于日后查看或者互相交流。
卷积神经网络之前的课时,尤其是第一课中关于神经网络结构、前向反向传播算法等方面的知识还是比较基础的,如果没有学习过还是建议先去看一下,在B站上都有完整的视频,这个老师讲得也非常细致,对小白很友好。
全连接神经网络在图像处理方面所遇到的困难
作为一幅图像,其中的信息维度通常是很高的。假设需要处理的是一幅1000×1000像素的RGB图像,那么输入层就需要有1000×1000*3个神经元,也就是说输入向量X的维度达到了3×10^6,如果神经网络的第1层(输入层可以视为第0层)有1000个隐藏单元(hidden units),那么W1就是一个大小为[1000, 3×10^6]的矩阵,其中含有30亿个参数。在参数如此巨大的情况下,难以获取足够数据防止神经网络的过拟合,也难以满足竞争需求。
因此我们需要一种运算方式来减小输入全连接网络的特征向量的维度。这种运算就是卷积运算。
卷积运算(Convolution)
图像处理领域的卷积运算是通过一个卷积核(例如一个f×f的矩阵)在n×n的图像上以一个像素为单位滑动,那么可以有(n-f+1)×(n-f+1)个滑动位置,这些滑动位置又构成了一个(n-f+1)×(n-f+1)的新图像。
新图像上的各像素值为卷积核与原图像对应像素值乘积之和。
*事实上,在