卷积和全连接神经网络实现手写数字识别 本文档介绍了使用卷积神经网络和全连接神经网络实现手写数字识别的方法。文档中首先介绍了实验的内容和实验原理,然后详细讲解了全连接神经网络和卷积神经网络的原理和结构。文档还提供了实验步骤,指导读者如何使用 Keras 实现手写数字识别。 一、实验内容 本实验的目的是使用 Keras 实现手写数字识别。实验中,我们将使用 MNIST 数据集,该数据集包含 60000 张手写数字图片,每张图片的大小是 28x28 个像素点。我们将使用全连接神经网络和卷积神经网络两种方法来实现手写数字识别。 二、实验原理 ### 2.1 数据集 MNIST 数据集是手写数字识别的常用数据集。每张图片由 28x28 个像素点构成,每个像素点用一个灰度值表示。可以将这 28x28 个像素展开为一个一维的行向量,作为输入,也就是有 784x1 的向量。 ### 2.2 神经元 人工神经网络(ANN,Artificial Neuron Network)是模拟生物大脑的神经网络结构,它是由许多称为人工神经细胞(Artificial Neuron,也称人工神经元)的细小结构单元组成。简易模型如下所示: x1 … xn:表示神经细胞的输入,也就是输入神经细胞的信号。 w1 … wn:表示每个输入的权重,就好比生物神经网络中每个轴突和树突的连接的粗细,强弱的差异。 b:偏置权重 threshold:偏置(可以将 threshold * b 看作是前面提到的生物神经细胞的阈值) 蓝色部分:细胞体。 黄色球形是所有输入信号以的求和。 红色部分是表示求和之后的信号的激励函数(即达到阈值就处于兴奋状态,反之抑制,当然作为人工神经细胞,其激励函数很多,阶跃(型)激励函数,sigmoid(s 型)激励函数,双曲正切(tanh)激励函数,ReLu(Rectified Linear Units)激励函数等等) ### 2.3 全连接神经网络 全连接神经网络模型是一种多层感知机(MLP),感知机的原理是寻找类别间最合理、最具有鲁棒性的超平面,感知机最具代表的是 SVM 支持向量机算法。神经网络同时借鉴了感知机和仿生学,神经元接受一个信号后会发送各个神经元,各个神经元接受输入后根据自身判断,激活产生输出信号后汇总从而实现对信息源实现识别、分类。 包含两个隐藏层的神经元网络结构如下: 每个结点和下一层所有几点都有运算关系,实践中全连接神经网络通常有多个隐藏层,增加隐藏层可以更好的分离数据的特征,但过多的隐藏层也会增加训练时间以及会产生过拟合。 训练神经网络中需要使用 bp 算法,先是通过前向传播,得到预测结果,再反向传播去调整模型权重。反向传播:反向传播根据前向传播产生的损失函数值,沿输出端向至输入端优化每层之间参数,在此过程中运算利用梯度下降法优化参数,神经网络求解参数本质上仍然是规则中求最优解问题,现在的机器学习框架如 Tensorflow、pytorch、keras 将梯度下降法、Booting、Bagging 这些优化中常用技巧封装起来,我们只用关注数据建模即可。 ### 2.4 卷积神经网络 卷积神经网络可以利用空间结构关系减少需要学习的参数量,提高反向传播算法的训练效率。一般的 CNN 有多个卷积层构成,每个卷积层会进行如下操作: 图像通过多个不同的卷积核的滤波,并加偏置(bias),提取出局部特征,每一个卷积核会映射出一个新的 2D 图像。将前面卷积核的滤波输出结果进行非线性的激活函数处理。对激活函数的结果再进行池化操作(即降采样),目前一般是使用最大池化,保留最显著的特征,并提升模型的畸变容忍能力。 这几个步骤就构成最常见的卷积层,当然也可以在加上一个 LRN 层(Local Response Normalization,局部响应归一化层)。 CNN 的要点是卷积核的权值共享(Weight Sharing)、局部连接模式(Local Connection)和池化层(Pooling)中的降采样(Down-Sampling)。局部连接和权值共享降低了参数量,使训练复杂度大大下降,减轻过拟合并降低计算量。同时权值共享还赋予了 CNN 对平移的容忍性,而池化层降采样则进一步降低了输出层参数,并赋予模型轻度形变的容忍性,提高模型的泛化能力。 每个卷基层包含三个部分:卷积、池化和非线性激活函数使用卷积提取空间特征降采样的平均池化层、双曲正切或 S 型的激活函数、MLP 作为最后的分类器层与层之间的稀疏连接减少计算复杂度。 三、实验步骤 ### 3.1 全连接神经网络实现 1. 获取数据集 Keras 中集成了 MNIST 数据集,直接从其中导入数据,并对数据进行整理。从之可以看出,数据为 28*28,一共 60000 张。 2. 对数据集中的数据进行可视化 3. 对数据进行维度转换把每一张 28 x 28 的图片分别转为长度为 784 的向量,再合并成一个大的像素矩阵,每个维度表示一个像素点的灰度值/255。 4. 对输出结果进行格式转化将经过神经网络训练完后的内容,转化为 10 个类别的概率分布。 本文档介绍了使用卷积神经网络和全连接神经网络实现手写数字识别的方法。使用 Keras 实现手写数字识别可以使用 MNIST 数据集,并使用全连接神经网络和卷积神经网络两种方法来实现手写数字识别。
1
全连接神经网络(DNN)分类预测,多特征输入模型。 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。 程序语言为matlab,程序可出分类效果图,迭代优化图,混淆矩阵图。
2024-04-01 21:36:14 72KB 神经网络 dnn
1
1.单层感知机 2.多层感知机 3.常见梯度优化 3.常见损失函数 4.多个例子 5.可以直接开会讲,适合学习和汇报 6.常见的激活函数介绍 7.使用房价预测问题介绍了单层感知机模型 8.BP神经网络 9.前馈神经网络 10.梯度优化实例 11.MLP神经网络
2022-11-22 20:26:25 5.43MB 深度学习 机器学习 MLP
1
MATLAB实现DNN神经网络多输入多输出预测(完整源码和数据) DNN深度神经网络/全连接神经网络,数据为多输入多输出预测数据,输入10个特征,输出3个变量,程序乱码是由于版本不一致导致,可以用记事本打开复制到你的文件。 运行环境MATLAB2018b及以上。
MATLAB实现DNN全连接神经网络多特征分类预测(完整源码和数据) 数据为多特征分类数据,输入15个特征,分四类。 运行环境MATLAB2018b及以上,程序乱码是由于版本不一致导致,可以用记事本打开复制到你的文件。
全连接神经网络参数,自用的,不要下载,下载就是坑。。。
2022-09-15 19:23:43 729.84MB 神经网络
1
Pytorch实现全连接神经网络模型和卷积神经网络训练MNIST数据集 Pytorch实现全连接神经网络模型/卷积神经网络训练MNIST数据集,并将训练好的模型在自己的手写图片数据集上测试 目录说明: CNN文件夹是用来保存卷积神经网络模型代码,其中model.py,my_dataset.py是被自动调用的,都不需要运行 FC文件夹是用来保存全连接神经网络模型代码,其中model.py,my_dataset.py是被自动调用的,都不需要运行 dataset文件夹是保存MNIST官方数据集的文件夹,不需改动 images文件夹是用来保存REAEDME.md文件中引用的图片的,不需改动 my_mnist_dateset文件夹是用来保存自己手写数字图片与标签文件的,自己手写的图片请放在my_mnist_dateset/classify对应的文件夹中 make_ours_dataset.py文件是用来处理my_mnist_dateset文件夹下的图像并生成标签用的 requirements.txt文件是环境配置文件
机器学习,利用全连接神经网络,近4000张喷码字符(类似于牛奶盒上的生产日期),全自动训练与分类识别,dataset文件夹里面是已经标注好的训练集,cut文件夹里面是全部数据集,handle文件夹里面是运行程序后将所有字符进行分类保存,分类成功率还是很高。
2022-06-08 14:08:17 18MB 神经网络 分类 文档资料 人工智能
主要介绍了Python利用全连接神经网络求解MNIST问题,结合实例形式详细分析了单隐藏层神经网络与多层神经网络,以及Python全连接神经网络求解MNIST问题相关操作技巧,需要的朋友可以参考下
2022-05-25 20:55:38 426KB Python 全连接神经网络 MNIST问题
1
本资源与本人CSDN文章《全站最详细的Python numpy 搭建全连接神经网络模型教程(理论计算+代码实现)(不止能预测手写数字数据,准确率93.21%)》相配套。里面包含6万条原始手写数据、本人编写的全连接神经网络模型程序,以及一个训练好的准确率为93.21%的全连接神经网络模型。程序的调用建议参考文章的说明。