gpt4 book ai didi

machine-learning - 如何处理机器学习的大量特征

转载 作者:行者123 更新时间:2023-11-30 09:13:27 24 4
gpt4 key购买 nike

我开发了一个图像处理程序,可以识别数字图像中的数字。每张图像的大小为 27x27 像素 = 729 像素。我获取每个 R、G 和 B 值,这意味着每个图像有 2187 个变量(截距+1 = 总计 2188)。

我使用了以下梯度下降公式:

Repeat {
θj = θj−α/m∑(hθ(x)−y)xj
}

其中θj是变量j的系数; α为学习率; hθ(x) 是假设; y 是实数,xj 是变量 j 的值。 m 是训练集的数量。 hθ(x), y 用于每个训练集(即求和符号的用途)。进一步假设定义为:

hθ(x) = 1/(1+ e^-z)
z= θo + θ1X1+θ2X2 +θ3X3...θnXn

有了这个和 3000 个训练图像,我能够在一个多小时内训练我的程序,并且在交叉验证集上进行测试时,它能够识别出正确图像的概率约为 67%。

我想改进这一点,所以我决定尝试 2 次多项式。

然而,每个图像的变量数量从 2188 个跃升至 2,394,766 个!我花了一个小时才完成一步梯度下降。

所以我的问题是,机器学习中如何处理如此大量的变量?一方面,我没有足够的空间来为每个训练集保存那么多变量。另一方面,我目前每个训练样本存储 2188 个变量,但我必须执行 O(n^2) 才能获得每个变量的值乘以另一个变量(即 2 次多项式值)。

因此,我们非常感谢任何建议/意见。

最佳答案

  • 首先尝试使用一些降维(PCA、内核 PCA 或 LDA,如果您要对图像进行分类)

  • 向量化梯度下降 - 使用大多数数学库或 matlab 等,它会运行得更快

  • 并行化算法,然后在多个 CPU 上运行(但也许您的向量乘法库已经支持并行计算)

关于machine-learning - 如何处理机器学习的大量特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com