任意神经网络结构梯度下降的一般实现

2024-06-07 22:11:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我搜索了梯度下降算法的实现,以优化任何神经网络结构。不幸的是,我找到的所有教程和代码都只适用于特定的神经网络体系结构。例如,一个输入层、一个隐藏层和一个输出层。如果这样的架构改变了,算法的实现就必须改变。你知道吗

我想知道如何在NumPy中实现一个通用梯度下降算法,以便它可以更新所有网络权重,而不考虑网络结构。我知道这种算法是在库中实现的,比如Sklearn,但是它很复杂。我想知道这背后的想法,这样我就可以从头开始使用NumPy实现它。你知道吗


Tags: 代码网络numpy算法架构教程神经网络网络结构
1条回答
网友
1楼 · 发布于 2024-06-07 22:11:27

你看过迈克尔·尼尔森的Neural Networks and Deep Learning了吗?他讲述了如何只用NumPy构建一个神经网络,他的实现允许您使用可变数量的层和神经元。Here's代码库。网络文件显示了不同优化级别的不同阶段。我希望这是有帮助的。你知道吗

更新:我刚刚记得尼尔森使用随机梯度下降。但是,SGD的实现仍然与通用版本非常相似,不同之处在于,对于SGD,每次更新只使用训练数据的一个子集。你知道吗

相关问题 更多 >

    热门问题