人工智能实战-第六次作业-徐浩原
一.作业要求
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)
三.结果展示
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% |
由上图我们可以看出在调整参数的过程中;适当增加神经元数目;降低学习率;增加循环次数可以提高测试集正确率;其中神经元数目对正确率有显著影响;不过增加神经元数目也大大增加了程序运行时间。

更多精彩