【问题标题】:ANN Training Set ScalingANN 训练集缩放
【发布时间】:2013-02-11 17:40:43
【问题描述】:

我目前正在使用反向传播的 ANN 进行分类任务。然而,我对规范化我正在使用的数据集有点困惑(我没有强大的统计/概率背景)。

数据示例如下所示:

5.1, 3.5, 1.4, 0.2, 1
5.2, 2.7, 3.9, 1.4, 2
5.9, 3.0, 5.1, 1.8, 3

每个标记的最后一个标记是类。

现在,由于我使用的是 Sigmoid 传递函数,我的网络显然无法输出大于 1 的值,因此需要对数据进行归一化/缩放。

我的第一个问题;我需要同时扩展功能和类,还是只扩展类?

我的第二个问题,是否有任何“事实上的”或常用的方法来进行这种缩放?

问候, 杰克亨特

【问题讨论】:

    标签: machine-learning neural-network backpropagation


    【解决方案1】:

    通常建议同时扩展功能。缩放应该像 scaled_feature = (feature - min(featurearray))/(max(featurearray) - min(featurearray)) 一样简单。

    所以对于第一个属性列,新数据将是: (5.1-5.1)/(5.9-5.1); (5.2-5.1)/(5.9-5.1); (5.9-5.1)/(5.9-5.1)

    【讨论】:

    • 其实应该是(feature - min) / (max - min)
    • @Alptigin Jalayr 嗨,我会像您的示例那样按属性进行标准化,还是按属性集进行标准化?谢谢。
    • 按每个属性,如上面的缩放示例。不确定您所说的属性集是什么意思(您的意思是每个“行”吗?)。
    • @AlptiginJalayr 嗨,是的,我指的是行。感谢您的回复。
    • Np。对此的洞察力在于规范化的定义。假设你有 2 列,高度和重量。所有高度都将是相同正态分布的样本,因此必须对它们集体进行归一化。同样,所有权重都将通过计算权重列的均值和标准差进行归一化。
    【解决方案2】:

    实际上,缩放主题是采用机器学习算法(尤其是人工神经网络)时最重要的方面之一。

    是的,(feature-min / max - min) 方法是一种可能性。

    但是,还有许多其他方法。例如,您可以使用 z 分数(根据与平均值的标准差)。或者,还有一种称为 z 轴归一化的技术,其中将一个额外的分量添加到归一化向量中。有时,绝对不需要缩放。

    【讨论】:

    • z-scores 不适用于 sigmoid 激活函数,因为对于非小型数据集,它们几乎可以保证包含 [-1, 1] 之外的值。
    猜你喜欢
    • 2014-08-19
    • 2013-04-04
    • 2022-11-17
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    相关资源
    最近更新 更多