基于飞桨实现手写数字识别1
参考课程连接:https://aistudio.baidu.com/aistudio/projectdetail/727853
最近在学习《百度架构师手把手带你零基础实践深度学习》,现在把课上学习的内容及代码记录下来。
之前写了基于飞桨实现的房价预测模型,适合入门深度学习,是一个很基础的线性回归模型,本文将线性模型运用到手写数字识别中,可能精度比较差,毕竟模型设计不是最适合的,但可用作练手。
1. 手写数字识别任务
手写数字识别是一个典型的图像分类问题,已经被广泛应用于汇款单号识别、手写邮政编码识别等领域。输入为数字图片,输出为0~9的数字标签
2. MNIST数据集
http://yann.lecun.com/exdb/mnist/
MNIST是深度学习领域标准、易用的成熟数据集,包含60000条训练样本和10000条测试样本。
MNIST数据集是从NIST的Special Database 3(SD-3)和Special Database 1(SD-1)构建而来。Yann LeCun等人从SD-1和SD-3中各取一半数据作为MNIST训练集和测试集,其中训练集来自250位不同的标注员,且训练集和测试集的标注员完全不同。
MNIST数据集的发布,吸引了大量科学家训练模型。1998年,LeCun分别用单层线性分类器、多层感知器(Multilayer Perceptron, MLP)和多层卷积神经网络LeNet进行实验,使得测试集的误差不断下降(从12%下降到0.7%)。在研究过程中,LeCun提出了卷积神经网络(Convolutional Neural Network,CNN),大幅度地提高了手写字符的识别能力,也因此成为了深度学习领域的奠基人之一。
3. 构建手写数字识别的神经网络模型
与房价预测模型任务的流程基本一致:模型均为数据处理、定义网络结构和训练过程三个部分
纵向概要介绍模型的基本代码结构和极简实现方案,横向深入探讨构建模型的每个环节中,更优但相对复杂的实现方案。
例如在模型设计环节,除了在极简版本使用的单层神经网络(与房价预测模型一样)外,还可以尝试更复杂的网络结构,如多层神经网络、加入非线性的**函数,甚至专门针对视觉任务优化的卷积神经网络。