在MNIST数据集上，训练一个神经网络，描述网络配置和关键超参数。
网络配置: 

一个经典的 MNIST 神经网络模型是一个包含两个隐藏层的全连接神经网络。输入层有 784 个神经元（28x28个像素） ，第一个隐藏层有256个神经元，第二个隐藏层有128个神经元，输出层有10个神经元 （分别表示十个数字类别）。

关键超参数:

1. 学习率: 用于控制每次梯度更新的步骤大小。可以尝试不同的学习率来找到最佳值。

2. 批量大小: 定义每次训练使用的样本数量，可以影响训练速度和模型性能。

3. 迭代次数（epochs）: 训练完整个数据集的次数。太少会导致模型欠拟合，太多会导致模型过拟合，需要进行适当的调整。

4. 激活函数: 选择适当的激活函数可以提高模型性能。例如，ReLU 通常用于隐藏层，softmax 通常用于输出层。

5. 正则化: 正则化方法可以帮助防止过度拟合。L2 正则化是一个常见的选择。

6. Dropout: Dropout 是一种随机失活的方法，通常用于减少模型中的过拟合现象。可以在隐藏层中添加 Dropout。