【问题标题】:Can scipy.optimize.minimize be used for Neural network in Pythonscipy.optimize.minimize 可以用于 Python 中的神经网络吗
【发布时间】:2016-10-29 19:45:00
【问题描述】:

我创建了一个带有一个隐藏层的神经网络。我可以使用最小化功能吗? 传递两个 Theta 矩阵进行最小化的方法是什么。我正在尝试在两个 Theta 上使用 flatten,然后使用

将它们连接起来
np.concatenate.
thetaFlat = np.concatenate((initial_Theta1.flatten(),initial_Theta2.flatten()),axis=0)

在我的成本和梯度函数中,我根据索引检索 theta,然后对其进行整形。

theta1=(thetaFlat[0:(hiddenLayerSize*(inputLayerSize+1))]).reshape(hiddenLayerSize,(inputLayerSize+1))

theta2=(thetaFlat[(hiddenLayerSize*(inputLayerSize+1)):len(thetaFlat)]).reshape(num_labels,(hiddenLayerSize+1))

这种方法正确吗? 然而,这种方法在 Octave 中使用,但那里的展平是按列的,而在 Python 中是按行的。

在 Python 中,训练集的性能约为 80%。在 Octave 中,它的 96%。所以我对这种方法有点怀疑。如果可用于 Python 上的神经网络,也请提出任何更好的选择。或任何其他优化功能

问候 Souvik Saha Bhowmik

【问题讨论】:

标签: python machine-learning neural-network


【解决方案1】:

这是一种有效且几乎唯一的方法。请记住仔细检查您的展平和非展平操作是否彼此相反(只需将它们定义为两个函数,flat 和 unflat 并检查 x == unflat(flat(x)) 是否适用于许多随机 x)。最终模型的差异有很多可能的原因,但扁平化不是其中之一。

【讨论】:

  • 谢谢。我还做了一个梯度检查实现。虽然通过反向传播是正确的(与 Octave 相比),但梯度检查不匹配。将在不同的帖子中分享
猜你喜欢
  • 1970-01-01
  • 2012-05-28
  • 2013-08-03
  • 1970-01-01
  • 2020-11-01
  • 1970-01-01
  • 2021-08-24
  • 2019-07-02
  • 2017-06-14
相关资源
最近更新 更多