2

我正在尝试设计一个简单的神经网络,但我面临一些问题。当我使用 ReLU 时,我的输出不断收敛到 0.5,而当我使用 sigmoid 函数时,我的输出不断收敛到 0.7。请建议我:

  1. 还有其他初始化权重和偏差的方法吗?我正在随机初始化它。

  2. 我是否需要在每次前向传递后执行反向传播,或者我应该采用平均操作错误并在 epoch 结束时更新它?

  3. 我需要在输入层中使用偏差吗?

我是神经网络的新手。请帮忙。

4

1 回答 1

6

还有其他初始化权重和偏差的方法吗?我正在随机初始化它。

是的,随机初始化权重是很常见的。但是,选择方差有不同的技术,例如 Xavier 初始化、He 初始化等(参见此讨论)。

偏见有点不同。与权重不同,用零初始化它们是完全可以的。在基于 ReLu 的网络中,通常使用稍微正数来确保大多数激活是正数,至少在初始时是正数,并反向传播错误。但随机初始化通常也可以。

我是否需要在每次前向传递后执行反向传播,或者我应该采取平均操作错误并在 epoch 结束时更新它?

在经典算法中,是的。这个想法是迭代地评估和更新网络。但是您可以对小批量执行这两种操作,而不是单个实例,如果这就是您所描述的,并且它更有效地工作。但是在一次向后传球之前进行几次向前传球并不常见,它只会减慢训练速度。

我需要在输入层中使用偏差吗?

偏差与权重一起出现在线性层中。数据本身没有偏差地传递到第一层。

于 2018-05-15T05:16:48.910 回答