第3章 卷积神经网络

在本章中,我们将介绍以下主题:

  • 下载并配置图像数据集;
  • 学习CNN分类器的架构;
  • 使用函数初始化权重和偏差;
  • 使用函数创建一个新的卷积层;
  • 使用函数扁平化密集连接层;
  • 定义占位符变量;
  • 创建第一个卷积层;
  • 创建第二个卷积层;
  • 扁平化第二个卷积层;
  • 创建第一个完全连接的层;
  • 将dropout应用于第一个完全连接层;
  • 创建第二个带有dropout的完全连接层;
  • 应用Softmax激活以获得预测类;
  • 定义用于优化的成本函数;
  • 执行梯度下降成本优化;
  • 在TensorFlow会话中执行图;
  • 评估测试数据的性能。

卷积神经网络(Convolution Neural Network,CNN)是一类深度学习神经网络,在建立基于图像识别和自然语言处理的分类模型方面发挥着重要作用。

 CNN遵循类似于LeNet的架构(LeNet主要用于识别数字、邮政编码等字符)。和人工神经网络相比,CNN有以三维空间(宽度、深度和高度)排列的神经元层。每层将二维图像转换成三维输入体积,然后使用神经元激活函数将其转换为三维输出体积。

从根本上,CNN是使用3种主要激活层类型构建的:卷积层ReLU、池化层和完全连接层。卷积层用于从(图像的)输入向量中提取特征(像素之间的空间关系),并在带有权重(和偏差)的点积运算后将它们存储以供进一步处理。

然后,在卷积之后,在操作中应用ReLU以引入非线性。

这是应用于每个卷积特征映射的逐个元素操作(例如阈值函数、Sigmoid和tanh)。然后,池化层(诸如求最大值、求均值和求总和之类的操作)是用来降低每个特征映射的维度,以确保信息损失最小。这种减小空间大小的操作被用于控制过度拟合,并增加网络对小的失真或变换的鲁棒性。然后将池化层的输出连接到传统的多层感知器(也称为完全连接层)。该感知器使用例如Softmax或SVM的激活函数来建立基于分类器的CNN模型。 ...

Get 深度学习实战手册(R语言版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.