第6次作业:调参

项目 内容
这个作业属于哪个课程 人工智能实战2019
这个作业的要求在哪里 人工智能实战第六次作业
我在这个课程的目标是 学会、理解和应用神经网络知识来完成一个app
这个作业在哪个具体方面帮助我实现目标 学会搜索最优学习率并进行调参
作业正文 作业正文
参考文献 搜索最优学习率, Learning Rate Schedules and Adaptive Learning Rate Methods for Deep Learning

一、作业内容

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

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

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

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

d. 给出最终准确度结果

二、作业正文

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

1) 搜索最优学习率
由于我们不能够盲目的调节神经网络的参数,所以首先进行了最优学习率的搜索。
部分代码:

if iteration % 100 == 0:
                if (learning_rate >=0.0001) and (learning_rate<0.001):
                    learning_rate = learning_rate + 0.0001
                elif (learning_rate >=0.001) and (learning_rate<0.010):
                    learning_rate = learning_rate + 0.001
                elif (learning_rate >=0.01) and (learning_rate<0.1):
                    learning_rate = learning_rate + 0.01
                elif (learning_rate >=0.1) and (learning_rate<1):
                    learning_rate = learning_rate + 0.1
                elif (learning_rate >=1) and (learning_rate<1.1):
                    learning_rate = learning_rate + 0.01

输出图:

人工智能实战_第六次作业_廖盈嘉 随笔 第1张

人工智能实战_第六次作业_廖盈嘉 随笔 第2张

   从上图,可以看出对此模型的最优学习率为 \(10^{-0.5}\)= 0.316227。


2) 学习率衰减 Learning Rate Decay
随着迭代次数增加,学习率会逐渐进行减小,保证模型在训练后期不会有太大的波动,从而更加接近最优解。

learning_rate = learning_rate * np.exp(-0.01*epoch)


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

适当的增加神经网络的神经元个数将会影响迭代的速度和准确度,所以选择
n_hidden1 = [128, 64, 32]; n_hidden2 = [64, 32, 16];
max_epoch = 40;
learning_rate = 0.5;
batch_size = [10, 20, 30]。
一共会组成18个组合。

参数列表和对应值

number Learning rate mini batch max-epoch n_hidden1 n_hidden2 Accuracy
1 0.5 10 40 128 64 0.9813
2 0.5 20 40 128 64 0.9822(max)
3 0.5 30 40 128 64 0.9817
4 0.5 10 40 128 32 0.9807
5 0.5 20 40 128 32 0.9804
6 0.5 30 40 128 32 0.9806
7 0.5 10 40 128 16 0.9804
8 0.5 20 40 128 16 0.9799
9 0.5 30 40 128 16 0.9799
10 0.5 10 40 64 32 0.9792
11 0.5 20 40 64 32 0.9784
12 0.5 30 40 64 32 0.9795
13 0.5 10 40 64 16 0.9739
14 0.5 20 40 64 16 0.9771
15 0.5 30 40 64 16 0.978
16 0.5 10 40 32 16 0.9683(不符合)
17 0.5 20 40 32 16 0.9693(不符合)
18 0.5 30 40 32 16 0.9705


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

learning rate = 0.5, max_epoch = 40, batch_size = 20, n_hidden1 = 128, n_hidden2 = 64, accuracy = 0.9822
人工智能实战_第六次作业_廖盈嘉 随笔 第3张


d. 给出最终准确度结果

当learning rate = 0.5, max_epoch = 40, batch_size = 20, n_hidden1 = 128, n_hidden2 = 64 时,给出的准确率高达0.9822,是所有训练得出的数据中最高的。人工智能实战_第六次作业_廖盈嘉 随笔 第4张

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