1

我正在编码的内容:我正在构建一个简单的神经网络,其中包含权重矩阵 w 和分数的第二个参数 u。将我的输入向量与 w 相乘后,将结果与向量 u 相乘,得到一个数字的结果,这就是我的分数。

我现在在哪里:我计算了两个参数相对于我的损失函数的梯度。

我的问题:现在我卡住了下一步该做什么?

我的解决方案建议:我可以用 w = w + learningrate * w_grad 更新参数(也可以用 u = u 学习率 *u_grad 更新参数)并执行此过程,直到我的成本/损失值降低……这行得通吗?这个对吗?这是随机梯度下降的简单实现吗?

我正在使用 Java 进行编码,如果您有一个简单且良好的文档示例,如何以一种简单的方式优化神经网络,您可以与我分享。

提前致谢!

4

1 回答 1

1

我想 w_grad 是偏导数。如果说您的解决方案建议是什么,那就是所谓的迭代优化方式。只是一个澄清。而不是 w = w + 学习率 * w_grad 你应该使用 w = w - 学习率 * w_grad。它工作正常,但如果你有多核机器,它将只使用一个核心。如果您需要性能提升,您可以尝试批处理算法。w = w - 学习率 * 总和(w_grad)。在 w_grad 计算期间实现了性能提升

于 2015-04-22T09:11:00.780 回答