吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)1.11

第四门课 卷积神经网络(Convolutional Neural Networks)

第一周 卷积神经网络(Foundations of Convolutional Neural Networks)

1.11 为什么使用卷积?(Why convolutions?)

这是本周最后一节课,我们来分析一下卷积在神经网络中如此受用的原因,然后对如何整合这些卷积,如何通过一个标注过的训练集训练卷积神经网络做个简单概括。和只用全连接层相比,卷积层的两个主要优势在于参数共享和稀疏连接,举例说明一下。

在这里插入图片描述
假设有一张 32×32×3 维度的图片,这是上节课的示例,假设用了 6 个大小为 5×5 的过滤器,输出维度为 28×28×6。32×32×3=3072,28×28×6=4704。我们构建一个神经网络,其中一层含有 3072 个单元,下一层含有 4074 个单元,两层中的每个神经元彼此相连,然后计算
权重矩阵,它等于 4074×3072≈1400 万,所以要训练的参数很多。虽然以现在的技术,我们可以用 1400 多万个参数来训练网络,因为这张 32×32×3 的图片非常小,训练这么多参数没有问题。如果这是一张 1000×1000 的图片,权重矩阵会变得非常大。我们看看这个卷积层的参数数量,每个过滤器都是 5×5,一个过滤器有 25 个参数,再加上偏差参数,那么每个过滤器就有 26 个参数,一共有 6 个过滤器,所以参数共计 156 个,参数数量还是很少。

卷积网络映射这么少参数有两个原因:

一是参数共享。观察发现,特征检测如垂直边缘检测如果适用于图片的某个区域,那么它也可能适用于图片的其他区域。也就是说,如果你用一个 3×3 的过滤器检测垂直边缘,那么图片的左上角区域,以及旁边的各个区域(左边矩阵中蓝色方框标记的部分)都可以使用这个 3×3 的过滤器。每个特征检测器以及输出都可以在输入图片的不同区域中使用同样的参数,以便提取垂直边缘或其它特征。它不仅适用于边缘特征这样的低阶特征,同样适用于高阶特征,例如提取脸上的眼睛,猫或者其他特征对象。即使减少参数个数,这 9 个参数同样能计算出 16 个输出。直观感觉是,一个特征检测器,如垂直边缘检测器用于检测图片左上角区域的特征,这个特征很可能也适用于图片的右下角区域。因此在计算图片左上角和右下角区域时,你不需要添加其它特征检测器。假如有一个这样的数据集,其左上角和右下角可能有不同分布,也有可能稍有不同,但很相似,整张图片共享特征检测器,提取效果也很好。

在这里插入图片描述
第二个方法是使用稀疏连接,我来解释下。这个 0 是通过 3×3 的卷积计算得到的,它只依赖于这个 3×3 的输入的单元格,右边这个输出单元(元素 0)仅与 36 个输入特征中 9 个相连接。而且其它像素值都不会对输出产生任影响,这就是稀疏连接的概念。

在这里插入图片描述
再举一个例子,这个输出(右边矩阵中红色标记的元素 30)仅仅依赖于这 9 个特征(左边矩阵红色方框标记的区域),看上去只有这 9 个输入特征与输出相连接,其它像素对输出没有任何影响。

神经网络可以通过这两种机制减少参数,以便我们用更小的训练集来训练它,从而预防过度拟合。你们也可能听过,卷积神经网络善于捕捉平

### 关于神经网络用于模式识别的英文文献 对于神经网络在模式识别中的应用,该领域已经积累了大量的研究工作。神经网络通过多层感知器结构能够有效地处理复杂的非线性映射关系,在图像分类、语音识别等多个方面取得了显著成果[^1]。 #### 文献推荐 1. **Neural Networks for Pattern Recognition** - 这本书由Christopher M. Bishop撰写,全面介绍了如何利用神经网络技术实现高效的模式识别算法。书中不仅涵盖了基础理论知识,还探讨了实际应用场景下的优化技巧。 2. **Pattern Recognition and Machine Learning (Information Science and Statistics)** - 同样出自Christopher M. Bishop之手,这本书深入浅出地讲解了机器学习与模式识别之间的联系,并特别强调了基于概率模型的方法论及其在神经网络设计上的体现。 3. **Deep Learning** - Ian Goodfellow等人编著的作品《Deep Learning》提供了有关深度学习框架下各种类型的神经网络架构详尽描述,特别是卷积神经网络(CNNs),其广泛应用于计算机视觉任务中完成精准的目标检测和语义分割等功能[^2]。 4. **Foundations of Convolutional Neural Networks** - 来自吴恩达教授团队开设的一门在线课程资料集,专注于介绍CNN的基础原理以及它们是如何被用来解决诸如物体定位等具体的模式识别挑战问题[^3]。 这些资源可以帮助读者深入了解神经网络在不同维度上执行高效模式匹配的能力和发展趋势。 ```python import tensorflow as tf from tensorflow.keras import layers, models def create_cnn_model(input_shape=(28, 28, 1), num_classes=10): model = models.Sequential() # 添加第一个卷积层 model.add(layers.Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape)) model.add(layers.MaxPooling2D(pool_size=(2, 2))) # 添加第二个卷积层 model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.MaxPooling2D(pool_size=(2, 2))) # 展平层 model.add(layers.Flatten()) # 全连接层 model.add(layers.Dense(128, activation='relu')) # 输出层 model.add(layers.Dense(num_classes, activation='softmax')) return model ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值