一.作业要求

a. 将模型准确度调整至>97%

b. 整理形成博客,博客中给出参数列表和对应值

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

c. 给出最终的loss下降曲线

d. 给出最终准确度结果

项目 内容
这个作业属于哪个课程 人工智能实战
我在这个课程的目标是 将人工智能技术与本专业知识联系
这个作业在哪个具体方面帮助我实现目标 了解多层神经网络的运用过程
作业正文 链接

二.核心代码

主函数
参数设定:
学习率:0.1
隐藏层1神经元数:64
隐藏层2神经元数:16
epoch次数:16

if __name__ == '__main__':

    print("Loading...")
    learning_rate = 0.1
    n_hidden1 = 64
    n_hidden2 = 16
    n_output = 10
    dataReader = LoadData(n_output)
    n_images = dataReader.num_example
    n_input = dataReader.num_feature
    m_epoch = 16
    batch_size = 10
    dict_Param = InitialParameters3(n_input, n_hidden1, n_hidden2, n_output, 2)
    dict_Param = Train(dataReader, learning_rate, m_epoch, n_images, n_input, n_output, dict_Param, forward3, backward3, update3, batch_size)
    SaveResult(dict_Param)
    Test(dataReader, n_output, dict_Param, n_input, forward3)

三.结果展示

  1. 误差曲线:
     人工智能实战-第六次作业-徐浩原 随笔
  2. 检验集结果:

Testing... rate=9739 / 10000 = 0.9739

满足要求

三.其他测试结果及结论

学习率为变量:

标号 学习率 隐藏层1神经元数: 隐藏层2神经元数: epoch次数: 测试集正确率
1 0.1 64 16 16 97.39%
2 0.2 64 16 16 97.59%
3 0.4 64 16 16 96.78%
4 0.8 64 16 16 96.17%
5 1.6 64 16 16 90.64%

epoch次数为变量:

标号 学习率 隐藏层1神经元数: 隐藏层2神经元数: epoch次数: 测试集正确率
1 0.1 64 16 16 97.39%
2 0.1 64 16 8 97.41%
3 0.1 64 16 4 96.65%
4 0.1 64 16 2 95.84%
5 0.1 64 16 1 93.89%

隐藏层1神经元数为变量:

标号 学习率 隐藏层1神经元数: 隐藏层2神经元数: epoch次数: 测试集正确率
1 0.1 64 16 4 97.39%
2 0.1 32 16 4 95.72%
3 0.1 16 16 4 94.90%
4 0.1 8 16 4 91.66%
5 0.1 4 16 4 85.14%

由上图我们可以看出在调整参数的过程中;适当增加神经元数目;降低学习率;增加循环次数可以提高测试集正确率;其中神经元数目对正确率有显著影响;不过增加神经元数目也大大增加了程序运行时间。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄