首页 > 解决方案 > 神经网络损失突然下降

问题描述

我正在练习预测https://www.kaggle.com/c/house-prices-advanced-regression-techniques/overview的房价。

在某个训练点,我正在经历一个非常突然的损失下降。该图如下所示: 图1

起初这让我觉得学习率太低,但是当我在下降后放大时:

图2

似乎它太高了(并且也有过度拟合?)。

我选择的NN是(使用 PyTorch)

net = nn.Sequential(
    nn.Linear(331, 96),
    nn.ReLU(),
    nn.Linear(96, 8),
    nn.ReLU(),
    nn.Linear(8, 1)
)

谁能向我解释发生了什么?它是否与我使用的自定义损失函数有关(我尝试过某种“相对分数损失”)?

def my_loss(y_hat, y):
    frac = (y_hat - y) / y
    return torch.abs(frac)

标签: pythondeep-learningneural-networkpytorch

解决方案


如果您正在寻找此问题的最终解决方案:

您应该进行数据预处理。

你肯定会看到它的数据是不平衡的,并且在某处积累。

如果您的数据有异常值,您可能需要删除您拥有的大部分数据。

以下是数据预处理的提示:

https://www.geeksforgeeks.org/data-preprocessing-in-data-mining/


推荐阅读