gpt4 book ai didi

machine-learning - 在 Weka 中为 XOR 情况训练多层感知器的分步指南?

转载 作者:行者123 更新时间:2023-11-30 08:28:39 25 4
gpt4 key购买 nike

我刚刚开始使用 Weka,在第一步中遇到了麻烦。

我们已经有了训练集:

@relation PerceptronXOR@attribute X1 numeric@attribute X2 numeric@attribute Output numeric@data1,1,-1-1,1,11,-1,1-1,-1,-1

我想做的第一步就是训练,然后使用 Weka gui 对集合进行分类。到目前为止我一直在做什么:

使用Weka 3.7.0。

  1. 启动 GUI。
  2. 探索者。
  3. 打开文件 -> 选择我的 arff 文件。
  4. 分类选项卡。
  5. 使用训练集单选按钮。
  6. 选择 -> 函数>multilayer_perceptron
  7. 点击顶部的“多层感知器”文本以打开设置。
  8. 将隐藏层设置为“2”。 (如果 gui 选择 true,则表明这是我们想要的正确网络)。单击“确定”。
  9. 单击“开始”。

输出:

=== Run information ===Scheme:       weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 -N 500 -V 0 -S 0 -E 20 -H 2 -RRelation:     PerceptronXORInstances:    4Attributes:   3              X1              X2              OutputTest mode:    evaluate on training data=== Classifier model (full training set) ===Linear Node 0    Inputs    Weights    Threshold    0.21069691964232443    Node 1    1.8781169869419072    Node 2    -1.8403146612166397Sigmoid Node 1    Inputs    Weights    Threshold    -3.7331156814378685    Attrib X1    3.6380519730323164    Attrib X2    -1.0420815868133226Sigmoid Node 2    Inputs    Weights    Threshold    -3.64785119182632    Attrib X1    3.603244645539393    Attrib X2    0.9535137571446323Class     Input    Node 0Time taken to build model: 0 seconds=== Evaluation on training set ====== Summary ===Correlation coefficient                  0.7047Mean absolute error                      0.6073Root mean squared error                  0.7468Relative absolute error                 60.7288 %Root relative squared error             74.6842 %Total Number of Instances                4     

奇怪的是,0.3 处的 500 次迭代没有得到错误,但 5000 @ 0.1 却得到了错误,所以让我们继续吧。

现在使用测试数据集:

@relation PerceptronXOR@attribute X1 numeric@attribute X2 numeric@attribute Output numeric@data1,1,-1-1,1,11,-1,1-1,-1,-10.5,0.5,-1-0.5,0.5,10.5,-0.5,1-0.5,-0.5,-1
  1. “提供的测试集”单选按钮
  2. 选择我的测试集 arff。
  3. 点击“开始”。
=== Run information ===Scheme:       weka.classifiers.functions.MultilayerPerceptron -L 0.1 -M 0.2 -N 5000 -V 0 -S 0 -E 20 -H 2 -RRelation:     PerceptronXORInstances:    4Attributes:   3              X1              X2              OutputTest mode:    user supplied test set:  size unknown (reading incrementally)=== Classifier model (full training set) ===Linear Node 0    Inputs    Weights    Threshold    -1.2208619057226187    Node 1    3.1172079341507497    Node 2    -3.212484459911485Sigmoid Node 1    Inputs    Weights    Threshold    1.091378074639599    Attrib X1    1.8621040828953983    Attrib X2    1.800744048145267Sigmoid Node 2    Inputs    Weights    Threshold    -3.372580743113282    Attrib X1    2.9207154176666386    Attrib X2    2.576791630598144Class     Input    Node 0Time taken to build model: 0.04 seconds=== Evaluation on test set ====== Summary ===Correlation coefficient                  0.8296Mean absolute error                      0.3006Root mean squared error                  0.6344Relative absolute error                 30.0592 %Root relative squared error             63.4377 %Total Number of Instances                8     

为什么无法正确分类?

这是否只是因为它在训练数据上很快达到了局部最小值,并且不“知道”这并不适合所有情况?

问题。

  1. 为什么 500 @ 0.3 不起作用?对于这样一个简单的问题来说似乎很奇怪。
  2. 为什么它在测试集上失败了。
  3. 如何传入一组进行分类?

最佳答案

对于这两个示例,使用 0.5 的学习率可以完成 500 次迭代。学习率是它为新示例赋予的权重。显然这个问题很困难,并且很容易通过 2 个隐藏层达到局部最小值。如果您使用低学习率和高迭代次数,学习过程将更加保守,并且更有可能达到良好的最小值。

关于machine-learning - 在 Weka 中为 XOR 情况训练多层感知器的分步指南?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17227977/

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