我正在尝试设计一个简单的神经网络,但面临一些问题。
使用ReLU时,输出保持收敛到0.5,而使用S型函数时,输出保持收敛到0.7。
请建议我:
还有其他初始化权重和偏差的方法吗?我正在随机初始化它。
我是否需要在每次前向通过之后执行反向传播,还是应该平均操作错误并在时代结束时进行更新?
我是否需要在输入层中使用偏置?
我是神经网络的新手。请帮忙。
最佳答案
还有其他初始化权重和偏差的方法吗?我正在随机初始化它。
是的,通常会随机初始化权重。但是,有多种选择方差的技术,例如Xavier初始化,He初始化等(请参见this discussion)。
偏见略有不同。与权重不同,将零初始化为零是完全可以的。在基于ReLu的网络中,通常使用略微正数来确保大多数激活是正数,至少在最初是这样,并反向传播错误。但是随机初始化通常也可以。
我是否需要在每次前向通过之后执行反向传播,还是应该平均操作错误并在时代结束时进行更新?
在经典算法中,是的。这个想法是迭代地评估和更新网络。但是,如果您要描述的话,您可以对一个微型批处理而不是单个实例执行这两种操作,并且可以更有效地工作。但是在一次后退之前先进行几次前进并不常见,这只会减慢训练速度。
我是否需要在输入层中使用偏置?
偏差与权重一起出现在线性层中。数据本身无偏差地传递到第一层。
关于machine-learning - 神经网络中的反向传播和正向传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50342659/