我从头开始实现了一个神经网络(仅使用 numpy),我无法理解为什么随机/小批量梯度下降和批量梯度下降的结果如此不同:
训练数据是点坐标 (x,y) 的集合。标签为 0 或 1(低于或高于抛物线)。
作为测试,我正在做一个分类任务。我的目标是让 NN 了解哪些点位于抛物线(黄色)上方,哪些点位于抛物线(紫色)下方。
这是笔记本的链接:https ://github.com/Pign4/ScratchML/blob/master/Neural%20Network.ipynb
- 为什么批量梯度下降相对于其他两种方法表现如此糟糕?
- 它是一个错误吗?但是由于代码几乎与小
批量梯度下降相同,怎么可能呢? - 我对所有三个
神经网络都使用相同的(通过尝试和错误随机选择)超参数。批量梯度下降是否需要更准确
的技术来找到正确的超参数?如果是,为什么会这样?