【人工智能实战2019-何峥】第6次作业
调节神经网络超参数
作业要求
| 项目 | 内容 |
|---|---|
| 课程 | 人工智能实战2019 |
| 作业要求 | 修改Level3中的超参,训练MNIST数据集,令测试结果的准确度大于97% |
| 我的课程目标 | 掌握相关知识和技能,获得项目经验 |
| 本次作业对我的帮助 | 理解神经网络的基本原理,并掌握代码实现的基本方法 |
| 作业正文 | 【人工智能实战2019-何峥】第6次作业 |
| 其他参考文献 | B6-神经网络基本原理简明教程 |
作业正文
改变隐层神经元数与学习率 (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

浙公网安备 33010602011771号