实验三 深度神经网络DNN

  1. 掌握深度神经网络DNN的基本结构;
  2. 掌握数据预处理、模型构建、训练与调参;
  3. 探索DNN在MNIST数据集中的性能表现;

实现深度神经网络DNN。

  • 主要实验步骤及结果

(一)实验步骤

  1. 数据准备与预处理,代码如图4-1所示:

图4-1 数据准备与预处理代码截图

  1. 构建DNN模型,代码如图4-2所示:

图4-2 构建DNN模型代码截图

  1. 训练模型,代码如图4-3所示:

图4-3 训练模型代码截图

  1. 评估模型性能,代码如图4-4所示:

图4-4 评估模型性能代码截图

  1. 模型预测示例,代码如图4-5所示:

图4-5 模型预测代码截图

(二)结果与分析

1.模型结构摘要如图4-6所示:

图4-6 模型结构摘要截图

2.训练过程截图如图4-7所示:

图4-7 训练过程截图

训练准确率最终达到约99%

验证准确率最终达到约98%

测试集准确率约为98.08%

3.学习曲线截图如图4-8所示:

图4-8 学习曲线截图

损失曲线和准确率曲线显示模型收敛良好

没有明显的过拟合现象(得益于Dropout层的使用)

4.预测示例截图如图4-9所示:

图4-9 预测示例截图

随机选取的5个测试样本全部预测正确

模型能够准确识别各种书写风格的数字

  • DNN的作用

1. DNN的核心定义

(1)在本次实验中,DNN表现为多层全连接神经网络,其核心特征包括:

(2)深度架构:代码中通过Sequential堆叠了4个Dense层(3隐藏层+1输出层)

(3)非线性变换:每层使用ReLU激活函数(输出层用Softmax)

(4)层级连接:前一层的输出作为下一层的输入(通过input_shape=(28*28,)自动推断)

2. DNN在代码中的核心作用

(1) 特征自动提取器

输入处理:将原始像素(28×28=784维)通过reshape展平为一维向量

层级特征学习:

第1层(512神经元):学习局部笔画特征(如线条方向)

第2层(256神经元):组合成数字部件(如弧线、交叉点)

第3层(128神经元):整合为完整数字表征

(2) 分类决策器

输出层设计:通过10个神经元的Softmax输出概率分布

损失函数:使用交叉熵损失衡量预测概率与真实标签差距

(3) 正则化与泛化

Dropout机制:训练时随机丢弃20%神经元防止过拟合

验证监控:通过validation_split=0.2实时评估泛化能力

3.代码中关键组件与DNN原理对应

代码实现

DNN理论对应

实验中的作用

Dense(512, activation='relu')

隐藏层加权求和+非线性激活

增加模型容量,学习高阶特征

Dropout(0.2)

随机失活正则化

防止神经元过度依赖特定特征,提升泛化能力

batch_size=128

小批量梯度下降

平衡训练速度和梯度稳定性

optimizer='adam'

自适应动量优化算法

自动调整学习率,加速收敛

metrics=['accuracy']

分类评估指标

直观显示模型性能

4. DNN在MNIST任务中的特殊价值

图像展平的适应性:虽然DNN会丢失空间信息,但MNIST数字的简单性使其仍能高效工作

与CNN的对比:实验代码中通过全连接层实现"全局感知",不同于CNN的局部感受野

计算效率权衡:相比CNN,DNN参数量更大(本实验56万参数),但MNIST数据量小仍可快速训练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值