卷积神经网络(cnn) 手写数字识别
来源:互联网 发布:双轮矩阵图 编辑:程序博客网 时间:2024/05/02 12:38
1. 知识点准备
在了解 CNN 网络神经之前有两个概念要理解,第一是二维图像上卷积的概念,第二是 pooling 的概念。
a. 卷积
关于卷积的概念和细节可以参考这里12,卷积运算有两个非常重要特性,以下面这个一维的卷积为例子:
第一个特性是稀疏连接。可以看到, layer m 上的每一个节点都只与 layer m-1 对应区域的三个节点相连接。这个局部范围也叫感受野。第二个特性是相同颜色的线条代表了相同的权重,即权重共享。这样做有什么好处呢?一方面权重共享可以极大减小参数的数目,学习起来更加有效,另一方面,相同的权重可以让过滤器不受图像位置的影响来检测图像的特性,从而使 CNN 具有更强的泛化能力。
b. 池化
理论上,我们将图像利用不同的过滤器通过卷积之后得到了多个卷积之后的图像,然后直接利用这些图像进行分类,但是这样计算量太大了。利用池化操作可以将数据量减小,同时在一定程度上保留原有的图像特征。关于 pooling, 概念更加简单了,详情可以参考这里7。池化又可以分为平均池化和最大池化,这里我们将采用最大池化。注意到,池化的区域是不重叠的,卷积的感受野是重叠的。
2. 卷积神经网络的搭建
下图是手写数字识别中采用的 lenet-5 简单的卷积神经网络模型:
- 原图是 28 × 28 的手写数字图片,通过第一次 20 个 5 × 5 的卷积核之后,得到 20 张卷积图片。卷积核的权重是取一定范围内的随机值,这样,一张 28 × 28 的图片就变为 20 张 (28-5+1)× (28-5+1)=24×24 的图片了。
- 将 24×24 的图片进行 2 × 2 的最大池化,得到 20 张 12 × 12 的图片。该图片的像素还需要进行 tanh 函数的变换才能作为下一个卷积层的输入。
- 将 tanh 变化之后的 12 × 12 大小的图片同样进行 20 × 50 个 5 × 5 的卷积操作之后得到 50 张 (12-5+1)× (12-5+1) = 8 × 8 的图片。
- 将 8×8 的图片进行 2×2 的最大池化,得到 50 张 4×4 的图片,再经过 tanh 函数进行归一化处理,就可以作为 MLP 的 800 个输入了。
- 余下来就是 MLP 的训练工作了。
3. LR, MLP,CNN 识别代码
已经训练好的模型系数的下载地址3。
三种方法识别手写数字的代码:
0 0
- 卷积神经网络(cnn) 手写数字识别
- 卷积神经网络(cnn) 手写数字识别
- 卷积神经网络CNN 手写数字识别
- CNN卷积神经网络手写数字识别实例及代码详解
- Tensorflow之 CNN卷积神经网络的MNIST手写数字识别
- 【TensorFlow-windows】(四) CNN(卷积神经网络)进行手写数字识别(mnist)
- TensorFlow实战-mnist手写数字识别(卷积神经网络)
- 03:一文全解:使用Tensorflow搭建卷积神经网络CNN识别手写数字图片
- Deep Learning-TensorFlow (1) CNN卷积神经网络_MNIST手写数字识别代码实现
- Deep Learning-TensorFlow (1) CNN卷积神经网络_MNIST手写数字识别代码实现详解
- 用Tensorflow搭建CNN卷积神经网络,实现MNIST手写数字识别
- 【深度学习系列】手写数字识别--卷积神经网络CNN原理详解(一)
- 如何用卷积神经网络CNN识别手写数字集?
- 关于matlab代码DeepLearnToolbox-CNN卷积神经网络手写数字识别实例源码直接运行出错的解决方法
- CNN 手写数字识别
- TensorFlow学习_02_CNN卷积神经网络_Mnist手写数字识别
- 深度学习四:tensorflow-使用卷积神经网络识别手写数字
- tensorflow1.1/构建卷积神经网络识别手写数字
- 深入浅出JMS(二)--ActiveMQ简单介绍以及安装
- 久保由利香杂志翻译校队稿
- 计算机网络基本知识
- HDU 4407 SUM
- 给将二十四的自己一个警醒(新的征程)
- 卷积神经网络(cnn) 手写数字识别
- Android学习 (十七) 把GSON库添加Android studio项目中
- 学习笔记---C语言中全局变量,变量,常量的定义与使用
- XML的解析方法详解
- Perf性能统计
- Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
- STS创建Spring Boot项目实战(Rest接口、数据库、用户认证、分布式Token JWT、Redis操作、日志和统一异常处理)
- TCP数据的传输过程
- 受限玻尔兹曼机基础教程<一>