深度学习

Fashion-MNIST Day 01: MLP Break-In Log

A personal Day 01 learning log: using TensorFlow's Fashion-MNIST dataset to train a small MLP, observe loss and accuracy, and mark a first deep-learning project break-in before finals week.

5 min readFashion-MNISTMLPTensorFlowbaselinelearning-log

What This Small Project Is Doing

这个项目是在做一些基础图像的识别。更具体一点说,我使用 TensorFlow / Keras 官方内置的 Fashion-MNIST 数据集,训练一个 MLP 小模型,让它识别 28×28 灰度图片里的服饰类别,并观察 accuracy 和 loss 的变化。

MLP 会先把一张 28×28 的图片通过 Flatten 层拉平成 784 个数字,再交给 Dense 全连接层做分类。这个过程没有用到 CNN,所以它更适合作为我进入深度学习项目的第一个 baseline,而不是一个很强的图像模型。

What I Trained Today

今天完整训练了 1 到 5 个 epoch。根据 loss 曲线和 accuracy 曲线可以看到,随着 epoch 数量增加,loss 整体逐渐减小,accuracy 也相对应增加。完整训练后,测试集 accuracy 大约在 87% 左右,已经接近 90%,但还不能说它是工业级识别系统。

对我来说,这次更重要的不是追求一个特别高的分数,而是顺利完成了一次深度学习项目的破冰行动:从数据加载、预处理、模型搭建、训练、测试评估,到最后输出训练曲线和混淆矩阵,第一次完整跑通了一个小模型。

Where The Model Still Gets Confused

目前这个 MLP 还有明显缺点。它对 shirt、T-shirt/top、pullover、coat 这些外观比较接近的类别容易混淆,因为 Fashion-MNIST 本身是低分辨率灰度图,很多衣物细节被压得很模糊。

在鞋类样本中,部分 sneaker 图像由于分辨率较低、鞋面特征不明显,也容易被 MLP 误判为 sandal。这说明 MLP 对局部形状和空间结构的建模能力有限,后续可以尝试 CNN 来提升图像特征提取能力。

Next Steps, After Finals

后续我会继续学习监督学习和无监督学习,也会比较不同模型,包括 CNN 等,看看它们在同一个图像分类任务上能不能比 MLP 表现更好。

不过还有一周就要进入学校期末周了,所以这个项目可能会先搁浅两周左右。计划是到 7 月 1 日之后再继续推进,把 CNN 版本、结果对比和更完整的项目记录补上。

  • Current status: MLP baseline finished as a student learning project.
  • Next model direction: CNN for local visual features.
  • Presentation boundary: this is a learning baseline, not an industrial recognition system.