MNIST-GAN笔记一
发布日期:2021-05-24 23:14:31 浏览次数:32 分类:精选文章

本文共 845 字,大约阅读时间需要 2 分钟。

MNIST图像分类是机器学习中的经典问题之一。为了提升模型的性能,我尝试了多项改进措施,具体如下:

  • 损失函数改进

    将传统的均方误差( MSE )替换为二元交叉熵损失( BCELoss )。
    均方误差主要用于回归任务,其输出预计为连续范围值。然而,分类任务需要对类别进行区分, BCELoss 能够更好地处理这一需求。
    改动后,损失值在下降过程中表现较为平稳,噪声也更小,训练过程更稳定。
    测试结果显示,针对测试集的第19个图像,判为4类的置信度显著提升,为9类的置信度降低,最终准确率提升至90%。

  • 激活函数改进

    为了简化计算并改善梯度流动性,选择了LeakyRelu作为替代的激活函数。LeakyRelu 在整个范围内都有梯度输出,只需在代码中设置左半边的斜率即可(如上文中0.02)。
    通过实验,LeakyRelu 可以更快地将损失值下降至接近0,训练初期表现更优。
    测试后,模型对测试集的准确率提升至97%,并在测试图像中表现出更高的预测信心。

  • 优化器改进

    传统的随机梯度下降(SGD)存在局部最小值陷入风险,同时学习率对所有参数一致,难以适应不同参数更新速率。改用Adam优化器,结合动量和自适应学习率,显著提升了训练效率和稳定性。
    通过实验显示,损失值迅速趋于0,训练过程异常平稳。
    最终,准确率达到了97%,测试图像对数字4的判断更加确定。

  • 标准化处理

    为了缓解网络参数和信号范围过大带来的饱和问题,我在输入层标准化,令其输出范围为0.5范围。
    通过实验,标准化后模型训练更快,准确率提升至91%。损失曲线表现更平稳,噪声降低。

  • 综合改进

    结合以上四点,最后一层仍保持sigmoid激活函数以输出概率值,而隐藏层采取LeakyRelu。整合之后,模型性能大幅提升,精确率提高显著。
    然而,标准化的效果因任务而异,需谨慎选择和验证。

  • 简单对比可知,PyPy版本比纯Python快。

    测试网络支持是否启用GPU加速,结果显示明显提升。

    以上改进措施均较为有效,建议结合实际情况选择。

    上一篇:colab使用自己的数据
    下一篇:python解释器环境问题

    发表评论

    最新留言

    很好
    [***.229.124.182]2025年05月11日 01时08分07秒