《深度学习与Python实现与应用》课件python第四章.pptx
目录contents01从全连接层到卷积02图像卷积03填充和步幅06LeNet05池化层04多输入多输出通道
从全连接层到卷积01
4.1从全连接层到卷积在我们缺乏足够的知识来指导更巧妙的模型结构设计,此时多层感知机可能是最好的选择。然而,对于高维感知数据,这种无结构网络可能会变得笨拙。例如,在一个区分猫和狗的例子中,使用多层感知机的方法会导致参数过多。然而,如今人类视觉和传统机器学习模型都能很好地区分猫和狗。这是因为图像中有丰富的结构,人类和机器学习模型都可以利用这些结构。卷积神经网络(convolutionalneuralnetworks,CNN)是机器学习利用自然图像中一些已知结构的创造性方法。
4.1.1不变性通过儿童游戏”沃尔多在哪里”,帮助我们设计了适合于计算机视觉的神经网络结构:1、平移不变性:不管出现在图像中的哪个位置,神经网络的底层应该对相同的图像区域做出类似的响应。这个原理即为“平移不变性”。2、局部性:神经网络的底层应该只探索输入图像中的局部区域,而不考虑图像远处区域的内容,这就是“局部性”原则。最终,这些局部特征可以融会贯通,在整个图像级别上做出预测。
4.1.2限制多层感知机?
4.1.2限制多层感知机??
4.1.2限制多层感知机?上面的公式可以称之为卷积层。与多层感知机可能需要数十亿个参数比,现在卷积神经网络通常只需要几百个参数,而且不需要改变输入或隐藏表示的维数。
4.1.3卷积??
4.1.4“沃尔多在哪里”回顾我们的目标是学习一个模型,以便探测出在“沃尔多”最可能出现的地方。但这个图片显然是三维的,不是二维的。?
图像卷积02
4.2.1互相关运算严格地说,卷积层所表达的运算可以被更准确地描述为互相关运算(cross-correlation)。示例:阴影部分是第一个输出元素,以及用于计算这个输出的输入和核张量元素:0×0+1×1+3×2+4×3=19。?
4.2.1互相关运算代码实现。
4.2.1互相关运算代码实现
4.2.2卷积层卷积层对输入和卷积核权重进行互相关运算,并在添加标量偏置之后产生输出。所以,卷积层中的两个被训练的参数是卷积核权重和标量偏置。
4.2.3图像中的边缘检测如下是卷积层的一个简单应用:通过找到像素变化的位置来检测图像中不同颜色的边缘。首先,我们构造一个6×8像素的黑白图像。中间四列为黑色(0),其余像素为白色(1)。代码结果
4.2.3图像中的边缘检测接下来,我们构造一个高度为1、宽度为2的卷积核K。当进行互相关运算时,如果水平相邻的两元素相同,则输出为零,否则输出为非零。现在,我们对参数X(输入)和K(卷积核)执行互相关运算。如下所示,输出Y中的1代表从白色到黑色的边缘,?1代表从黑色到白色的边缘,其他情况的输出为0。
4.2.3图像中的边缘检测结果
4.2.3图像中的边缘检测现在我们将输入的二维图像转置,再进行如上的互相关运算。其输出如下,之前检测到的垂直边缘消失了。不出所料,这个卷积核K只可以检测垂直边缘,无法检测水平边缘。
4.2.4学习卷积核如果我们只需寻找黑白边缘,那么以上[1,-1]的边缘检测器足以。然而,当有了更复杂数值的卷积核,或者连续的卷积层时,我们不可能手动设计过滤器。那么我们就需要由X来生成Y的卷积核了。结果
4.2.4学习卷积核看一下学习到的核的张量:仔细观察发现,所学习到的参数与我们所定义的特别像。
4.2.5互相关和卷积上面我们定义的严格卷积运算和互相关运算其实略有有不同。严格卷积运算相当于水平和垂直翻转二维卷积核张量,然后对输入张量执行互相关运算。值得注意的是,由于卷积核是从数据中学习到的,因此无论这些层执行严格的卷积运算还是互相关运算,卷积层的输出都不会受到影响。为了与深度学习文献中的标准术语保持一致,我们将继续把“互相关运算”称为卷积运算,尽管严格地说,它们略有不同。此外,对于卷积核张量上的权重,我们称其为元素。
4.2.6特征映射和感受野输出的卷积层有时被称为特征映射(FeatureMap),因为它可以被视为一个输入映射到下一层的空间维度的转换器。在CNN中,对于某一层的任意元素x,其感受野(ReceptiveField)是指在前向传播期间可能影响x计算的所有元素(来自所有先前层)。注意,感受野的覆盖率可能大于某层输入的实际区域大小。
填充和步幅03
4.3.1填充一般情况下,我们使用卷积核常常会丢失边缘信息。特别是连续的卷积层,累积丢失的像素数就更多了。解决这个问题的方法为填充(padding):在输入图像的边界填充元素(通常填充元素是0)。
4.3.1填充??
4.3.1