我想知道平方误差是否还取决于隐藏层的数量以及每个隐藏层上的神经元的数量,因为我已经创建了一个具有一个隐藏层的神经元网络,但是我无法得出一个小的平方错误,也许函数不是凸的?我可以通过添加更多隐藏层来优化权重吗?
答案 0 :(得分:0)
您添加到模型中的神经元(例如层数)越多,您可以更好地近似任意函数。如果您在训练数据上的损失没有继续减少,那么您就是underfitting。这可以通过使模型更复杂(即添加更多可训练的参数)来解决。但是您必须小心,不要过度使用它并以overfitting结尾。
答案 1 :(得分:0)
尽管这不是编程问题,但我会尽力在这里回答。
平方误差,即神经网络的“损失”,取决于您的神经网络预测和基本事实。从定义上看是凸的。
损失不低的原因可能是:
您没有规范化您的输入。例如,如果您获得一系列房屋价格作为输入,大约在50万到100万之间,并且没有对它们进行归一化,那么您的预测将是价格的线性组合,大约是相同的数量级,那么通过激活功能。这可能会导致巨大的损失。
您没有正确初始化权重和偏差。与上述类似,您可能具有较大的权重/偏见,从而导致较大的预测值。
您没有选择适当的激活功能。在进行分类时,标签通常是一种热编码的标签,因此您的激活功能应将预测限制为[0,1]或类似的值,因此relu将不是一个正确的选择。另外,您也不希望将Sigoid作为回归问题的激活。
您的标签不可预测或噪音太大。又或者您的网络不够复杂,无法捕获重要的模式,在这种情况下,您可以尝试添加更多的层,并且每层添加更多的节点。
您的学习率太小,导致收敛缓慢。
这就是我要记住的。您可能需要做更多的工作才能找出问题的原因。