深度学习进阶课程17---Convolution Nerual Network (CNN)算法

本文介绍了卷积神经网络(CNN)在手写数字识别任务上的应用,通过GPU加速和深度网络结构,配合dropout和ensembles技术,实现了接近人类识别水平的准确率(99.67%)。CNN利用local receptive fields、strides、共享权重和bias减少参数数量,同时通过feature maps提取关键特征。此外,还提到了max pooling层在缩小网络规模和保持重要特征方面的角色。整个过程结合反向传播和梯度下降进行优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前总体来说比较流行,表现非常好的算法:
Convolution Nerual Network(CNN)
举个例子:在手写数字识别集 MNIST上面,使用CNN,用gpu计算,deep network ,dropout,ensembles
结果达到接近人肉眼识别水平:9967/10000 识别正确
以下是误识别的图片:
在这里插入图片描述
右上角是正确数字,右下角是计算机识别到的数字,仔细观察可以看到,计算机识别的准确率还是很好的,上面很多数字都很迷惑,肉眼都很有可能识别错误

对于之前的神经网络,相邻两层所有的神经元都两两相连
在这里插入图片描述
输入层:图像像素值;输出值:0-9

CNN结构不一样,输入是一个二维的神经元(28*28)
在这里插入图片描述
Local receptive fields:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以5x5的小方格不停地去做卷积,构建到下一层隐藏层的第一层(28-5+1=24,变为24x24)
stride:每次移动的多少,上面我们是一次移动了一格

共享权重和偏向(shared weights and biases):
在这里插入图片描述
w:5x5
对于第一个隐藏层,所有神经元探测到同样的特征,只是根据不同位置:
在这里插入图片描述
更新之后,我们仍然可以保持图像原始的形状特征:
再来介绍另一个概念:Feature map:从输入层转化到输出层
在这里插入图片描述

以上3个feature maps,每个是5x5
通常一些表现较好的方法都是使用更多的feature maps:
在这里插入图片描述
以上是根据5x5的feature map学习出的,浅色代表更小的权重(负数),表明CNN在学习

共享的权重和偏向(weights,bias)大大减少了参数的数量:
在这里插入图片描述
对于每一个feature map,需要5x5=25个权重参数,加上1个偏向,26个
如果有20个feature maps,总共26x20=520个参数就可以定义CNN

如果像之前的神经网络,两两相连,需要28x28=784个输入层,加上第一层30个神经元,则需要784x30再加上30个bias,总共23550个参数,多了40倍的参数
在这里插入图片描述
也可以写成:在这里插入图片描述
Pooling layers:
浓缩神经网络的代表性,减小尺寸
在这里插入图片描述
24x24,2x2 pooling---->12x12
以上是max pooling的方法,在2x2的小方格中,我们取其中的最大值
多个 feature maps:
在这里插入图片描述
重要特征点找到之后,绝对位置并不重要,相对位置更重要

以上所有的步骤结合在一起:
在这里插入图片描述
还是用之前的backpropagation,gradient descent解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值