machine-learning - 神经网络中的反向传播和前向传播

标签 machine-learning neural-network backpropagation gradient-descent bias-neuron

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

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

  2. 我是否需要在每次前向传递后执行反向传播,或者我应该获取平均运算错误并在纪元结束时更新它?

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

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

最佳答案

Is there any other way of initializing weights and biases ? I am initializing it randomly.

是的,随机初始化权重是很常见的。然而,有不同的技术来选择方差,例如Xavier 初始化、He 初始化等(参见 this discussion )。

对于偏差来说有点不同。与权重不同,用零初始化它们是完全可以的。在基于 ReLu 的网络中,通常使用略为正数来确保大多数激活是正数(至少在最初)并反向传播误差。但随机初始化通常也可以工作。

Do I need to perform backprop after every forward pass or I should take average op errors and update it at the end of the epoch ?

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

Do I need to use biases in the input layer ?

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

关于machine-learning - 神经网络中的反向传播和前向传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50342659/

相关文章:

machine-learning - Caffe 卷积层的输出数量如何与内核和步幅大小配合使用?

python - 仅针对特定 ID/主题进行训练/测试拆分

python-3.x - 评估 tf.keras.model 输出之间的成对距离

python - Keras seq2seq - 词嵌入

machine-learning - 如何为我的全连接神经网络找到合适的架构?

tensorflow - TensorFlow 中的引导反向传播

python - 异或神经网络反向传播

matlab - 最近均值分类器的距离计算器

neural-network - 神经网络中的成本函数是什么?

keras - 如何在 CNN 中训练卷积核?