我正在考虑使用稀疏数据集和 SGD 训练的卷积神经网络 (CNN) 输入数据的预处理技术。在 Andrew Ng 的 coursera 课程机器学习中,他指出对数据进行预处理很重要,以使其适合区间使用 SGD 时。然而,最常见的预处理技术是标准化每个特征,以便和. 当标准化一个高度稀疏的数据集时,许多值不会在区间内结束。
因此,我很好奇-以例如为目标会更好吗和为了使值更接近区间? 任何人都可以根据对 SGD 的了解来争论目标是否最重要和或者?
我正在考虑使用稀疏数据集和 SGD 训练的卷积神经网络 (CNN) 输入数据的预处理技术。在 Andrew Ng 的 coursera 课程机器学习中,他指出对数据进行预处理很重要,以使其适合区间使用 SGD 时。然而,最常见的预处理技术是标准化每个特征,以便和. 当标准化一个高度稀疏的数据集时,许多值不会在区间内结束。
因此,我很好奇-以例如为目标会更好吗和为了使值更接近区间? 任何人都可以根据对 SGD 的了解来争论目标是否最重要和或者?
不,你误解了他的评论。如果您的数据中有一些异常值,那么异常值将超出 3 个标准差。然后,如果您对数据进行标准化,一些数据将超出 [-3,3] 区域。
他只是说您需要删除异常值,以免异常值对您的随机梯度下降算法造成严重破坏。他并不是说你需要使用一些奇怪的缩放算法。
您应该通过减去平均值并除以标准差来标准化您的数据,然后删除超出 [-3,3] 的任何点,即异常值。
在随机梯度下降中,异常值的存在可能会增加最小化的不稳定性并使其过度颠簸,因此最好将它们移除。
如果数据的稀疏性阻止了删除,那么......您需要使用随机梯度下降,还是只使用梯度下降?梯度下降(GD)可能有助于缓解一些与收敛有关的问题。最后,如果 GD 无法收敛,您总是可以直接求解(例如直接矩阵求逆)而不是迭代求解。
希望这可以帮助!