【发布时间】:2021-02-09 12:06:21
【问题描述】:
我有一个任务是在不使用任何机器学习库的情况下从头开始使用 Python 为回归问题构建一个人工神经网络。您可能已经猜到我是一个真正的初学者,而且这个过程有点令人困惑,所以我非常感谢能帮助我回答我的几个问题。
这是我理解的用于训练 ANN 的基本训练算法:
- 预测的正向道具
- 计算误差的后向道具
- 使用误差计算每个重量的增量
- 在数据集迭代中累积增量并计算每个权重的部分梯度
- 使用梯度下降优化权重
我希望这些步骤有意义并且没问题。以下是我的几个问题:
- 我应该使用什么激活函数? Sigmoid 可能不是答案。
- 是否应该在单个输出节点上使用激活函数?
- 计算反向传播中隐藏层误差的公式是
δ(l) = Transpose[ϴ(l)] x δ(l+1) .* g`[z(l)],其中l是层数,g`[z(l)]我相信是激活函数的导数,通常取为a(l) .* (1 - a(l))。当我们使用 sigmoid 以外的激活函数时,这种情况会改变吗? - 我犯了什么错误或任何重要提示?
如果问题非常基本,我们深表歉意。我是这方面的初学者。
【问题讨论】:
标签: python neural-network linear-regression