项目 | 内容 |
---|---|
课程 | 人工智能实战2019 |
做业要求 | 做业要求 |
我在这个课程的目标是 | 可以理解人工智能实践与理论框架,独立完成小项目 |
这个做业在哪一个具体方面帮助我实现目标 | 理解不一样参数对于网络性能的影响,加深对网络的理解 |
a. 将模型准确度调整至>97%网络
b. 整理造成博客,博客中给出参数列表和对应值app
c. 给出最终的loss降低曲线框架
d. 给出最终准确度结果性能
以改变epoch为例学习
if __name__ == '__main__': print("Loading...") n_hidden1 = 128 n_hidden2 = 64 n_output = 10 learning_rate = 0.1 dataReader = LoadData(n_output) n_images = dataReader.num_example n_input = dataReader.num_feature m_epoch = 10 batch_list= [5,10,20,50,100] epoch_list = [10,20,30,40,50] correct = [] n = [10,20,30,40,50] print(n) batch_size = 10 for i in range(5): m_epoch = epoch_list[i] 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) rate = Test(dataReader, n_output, dict_Param, n_input, forward3) correct.append(rate/10000.0) plt.figure() plt.plot(n,correct) plt.xlabel("Epoch") plt.ylabel("correctness") plt.show()
1、尝试调整学习率测试
标号 | 学习率 | 隐藏层1神经元数 | 隐藏层2神经元数 | epoch次数 | batch_size | 测试集正确率 |
---|---|---|---|---|---|---|
1 | 0.05 | 64 | 32 | 10 | 10 | 0.9712 |
2 | 0.1 | 64 | 32 | 10 | 10 | 0.9748 |
3 | 0.2 | 64 | 32 | 10 | 10 | 0.9749 |
4 | 0.4 | 64 | 32 | 10 | 10 | 0.9705 |
5 | 0.8 | 64 | 32 | 10 | 10 | 0.9607 |
2、尝试调整batch_size人工智能
标号 | 学习率 | 隐藏层1神经元数 | 隐藏层2神经元数 | epoch次数 | batch_size | 测试集正确率 |
---|---|---|---|---|---|---|
1 | 0.1 | 128 | 64 | 10 | 5 | 0.9768 |
2 | 0.1 | 128 | 64 | 10 | 10 | 0.9784 |
3 | 0.1 | 128 | 64 | 10 | 20 | 0.9771 |
4 | 0.1 | 128 | 64 | 10 | 50 | 0.9675 |
5 | 0.1 | 128 | 64 | 10 | 100 | 0.9544 |
3、调整epoch3d
标号 | 学习率 | 隐藏层1神经元数 | 隐藏层2神经元数 | epoch次数 | batch_size | 测试集正确率 |
---|---|---|---|---|---|---|
1 | 0.5 | 128 | 64 | 10 | 10 | 0.9769 |
2 | 0.5 | 128 | 64 | 20 | 10 | 0.9809 |
3 | 0.5 | 128 | 64 | 30 | 10 | 0.9805 |
4 | 0.5 | 128 | 64 | 40 | 10 | 0.9795 |
5 | 0.5 | 128 | 64 | 50 | 10 | 0.9805 |
将batch_size调整为20code
标号 | 学习率 | 隐藏层1神经元数 | 隐藏层2神经元数 | epoch次数 | batch_size | 测试集正确率 |
---|---|---|---|---|---|---|
1 | 0.5 | 128 | 64 | 10 | 20 | 0.9749 |
2 | 0.5 | 128 | 64 | 20 | 20 | 0.9803 |
3 | 0.5 | 128 | 64 | 30 | 20 | 0.9822 |
4 | 0.5 | 128 | 64 | 40 | 20 | 0.9798 |
5 | 0.5 | 128 | 64 | 50 | 20 | 0.9807 |
当咱们选取参数为blog
咱们获得最佳的预测正确率为 98.22%.
咱们能够看出在调整参数的过程当中;适当增长神经元数目;下降学习率;增长循环次数能够提升测试集正确率;可是在改变参数如循环Epoch的次数,神经网络神经元个数时,也会致使训练时间的增大。