基于Tensorflow完成mnist数据集的数字手写体识别

发布于:2024-04-26 ⋅ 阅读:(22) ⋅ 点赞:(0)

基于Tensorflow完成mnist数据集的数字手写体识别

关于知识背景

CNN

卷积神经网络(Convolutional Neural Networks,简称CNN)是一种具有局部连接、权值共享等特点的深层前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一,擅长处理图像特别是图像识别等相关机器学习问题,比如图像分类、目标检测、图像分割等各种视觉任务中都有显著的提升效果,是目前应用最广泛的模型之一。

卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift - invariant classification),可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid - like topology)特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程(feature engineering)要求,并被大量应用于计算机视觉、自然语言处理等领域。

FCNN

FCNN(Fully Connected Neural Network)模型是深度学习中最基本的神经网络架构之一,通常被称为多层感知器(Multilayer Perceptron,MLP)。它由一个或多个全连接层组成,每个层之间的神经元都是全连接的。FCNN在各种任务中都有广泛的应用,以下是一些常见的FCNN模型样例:单隐藏层的FCNN:仅仅包括一个输入层、一个隐藏层和一个输出层最简单的FCNN模型,这种模型通常用于简单的二分类或回归任务。多隐藏层的FCNN:包括多个隐藏层,可以有不同数量的神经元和激活函数,这种模型用于更复杂的问题,如图像分类、文本分类等。深度FCNN:这是一个非常深层的FCNN模型,通常包含很多隐藏层。用于解决复杂问题,如深度图像识别、自然语言处理任务等。

卷积神经网络(CNN) + FCNN:在图像处理领域,卷积神经网络(CNN)是应用广泛且效果显著的工具。一般而言,人们在进行图像处理任务时,会首选利用CNN来提取图像中的关键特征。CNN的卷积层与池化层能够有效地从原始图像中捕捉到有用的信息,比如边缘、纹理等,并将其转化为高层次的特征表示。提取出这些特征之后,通常会将它们输入到一个或多个全连接层中,并将这些特征进行进一步的整合和分类。通过训练,全连接层能够学习到如何将这些特征映射到具体的类别标签上,从而完成图像的分类任务。它不仅能够有效地处理复杂的图像数据,还能够通过深度学习的方法自动学习和提取出有用的特征,从而提高了图像处理的准确性和效率。

递归神经网络(RNN) + FCNN:在自然语言处理(NLP)领域中,递归神经网络(RNN)和全连接神经网络(FCNN)的结合使用是一种高效且灵活的方法,特别适用于处理序列数据。其中,递归神经网络具有捕捉序列数据中时间依赖性的能力,可以学习并记忆序列中的长期信息。而全连接层则可以对RNN提取的特征进行进一步的处理和分类,完成最终的NLP任务。这种RNN+FCNN的结构在多种NLP任务中都有广泛应用。无论是文本生成、情感分析还是其他NLP任务,这种结构都展现出了强大的应用潜力。

预训练的FCNN模型:预训练的FCNN模型通常是指在大型数据集上预训练的模型,然后进行微调以适应特定任务。常见的预训练模型包括BERT、GPT和VGG等。如表格数据。

正则化的FCNN模型:正则化技术,如Dropout、L1正则化和L2正则化,可以用于减少过拟合,提高模型泛化能力。这些技术通常与FCNN模型一起使用。这些只是FCNN模型的一些示例,实际上,根据任务和数据的不同,可以根据需要设计各种不同的FCNN架构。模型的性能通常取决于架构的选择、超参数的调整以及训练数据的质量。深度学习框架如PyTorch和TensorFlow提供了构建和训练这些模型的工具和库。

关于数据集

本项目虽然是入门机器学习的基础项目,但是有很多的细节值得我们思考。这次使用的数据集是经典的mnist数据集。这是已经标记好的数字手写体的数据集。数据集分为三个部分:train(训练集)、test(测试集)、validation(验证集)。这些数据集中的数据是由很多张图片组成的。一张图片的大小是2828,是灰度图像。下面是它们的大小:
在这里插入图片描述记录更新数据集说明:2024年4月7日
可以看到train里面有55000行,784列,表示的意思是现在有55000张图片,每张图片都是一个784维的向量。784维怎么来的呢?28
28大小的图片,

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

  1. mermaid语法说明 ↩︎