调节神经网络超参数
作业要求
作业正文
改变隐层神经元数与学习率 (m_epoch = 16; batch_size = 16; flag = 2;)
(1) n_hidden1 = 32; n_hidden2 = 16;
learning rate |
accuracy rate |
0.01 |
0.9518 |
0.02 |
0.9633 |
0.03 |
0.9676 |
0.04 |
0.9692 |
0.05 |
0.9691 |
0.06 |
0.9672 |
0.07 |
0.9684 |
0.08 |
0.9675 |
0.09 |
0.9653 |
(2)n_hidden1 = 64; n_hidden2 = 32;
learning rate |
accuracy rate |
0.01 |
0.9567 |
0.02 |
0.9665 |
0.03 |
0.9703 |
0.04 |
0.9717 |
0.05 |
0.974 |
0.06 |
0.9744 |
0.07 |
0.9741 |
0.08 |
0.9733 |
0.09 |
0.9725 |
改变参数初始化方法
(n_hidden1 = 64; n_hidden2 = 32; m_epoch = 16; batch_size = 16; learning rate = 0.06)
flag |
accuracy rate |
0 |
0.1135 |
1 |
0.9209 |
2 |
0.9744 |
改变初始化方法发现,当参数全部初始化为0时,神经网络失效。这是由于每一层中的所有参数初值相同,更新值相同,故而更新后的参数值也相同,同层的多个节点值相当于一个节点,失去了网络学习特征的意义,导致结果无法收敛。
2. 最终的参数列表
在调试的多组参数中对比得出最优组合为:
n_hidden1 |
n_hidden2 |
m_epoch |
batch_size |
flag |
learning rate |
accuracy rate |
64 |
32 |
16 |
16 |
0.06 |
2 |
0.9744 |
3. 最终的loss下降曲线
4. 最终准确度结果
Testing...
rate=9744 / 10000 = 0.9744