首页 > 解决方案 > 为什么模型方程输出与模型训练输出不匹配

问题描述

所以我对深度学习很陌生。所以请耐心等待。我有一个人工神经网络,我有一个房价预测数据集供我使用。我清理了数据集,标准化输出(获取日志)并拆分数据集并训练模型并提取权重和偏差。我使用返回预测输出的这些权重和偏差(实际上是一个函数)对我自己的神经网络方程进行了硬编码。现在我假设如果我使用训练模型比较预测输出的值model.predict()然后使用相同的输入并将其输入到我的方程中,那么两个输出应该匹配。然而,这种情况并非如此。在其他人问我之前,我使用 3 层模型,前 2 层使用 (12,8,1) 和 relu,最后一层使用线性,我还将激活函数应用于所有层的输出(如果 -ve 然后返回 0,否则返回值)。所以,我想知道这些输出不匹配是否还有其他原因。这就是我的方程式大致的样子(不可重现):

layer1:
L1N0=activation_function(I1*w(0,0)+I2*w(0,1)+I3*w(0,2)+b1N0)
L1N1=activation_function(I1*w(0,1)+I2*w(1,1)+I3*w(1,2)+b1N1)
layer2:
L2N0=activation_function(L1N0*w_layer2(0,0)+L1N0*w_layer2(0,1)+b2N0)
```

标签: pythonkerasdeep-learningneural-network

解决方案


嗨正如你在这里提到的“如果我使用 model.predict() 比较训练模型的预测输出值,然后使用相同的输入并将其输入到我的方程中,那么两个输出应该匹配”

是的,模型应该给你大约。如果模型应该经过适当的训练,则输出与您的方程相同。通过训练,人工神经网络试图找出与层相关的权重和偏差,以便逼近在这种情况下为基本真值的方程。你的人工神经网络试图做的是它试图近似这个链接中所说的方程https://en.wikipedia.org/wiki/Universal_approximation_theorem

提高准确性可以做的事情:

  • 增加时代
  • 增加层数
  • 尝试不同的学习率
  • 试用不同的优化器等。

推荐阅读