Thursday 15 August 2013

machine learning - Step by step guide to train a multilayer perceptron for the XOR case in Weka? -


I'm just starting with Waka and having problems in the first steps.

We found our training set:

 @relation PerceptronXOR @attribute X1 numeric @ etitude x2 numeric @ output numeric @ data1,1, -1 -1,1,1 1 , -1,1 -1, -1, -1  

The first step I want to do is just train, and then classify a set using Weka gui what I'm doing so far: < / P>

Using Weka 3.7.0

  1. Start the GUI.
  2. Explorer.
  3. Open file - & gt; Choose my archive file.
  4. Categorize tabs
  5. Use the training set radio button
  6. Select-> Function & gt; multilayer_perceptron
  7. Click on 'multilayer Pesistron "text at the top to open the Settings
  8. hidden layers in the set to" 2 "(if the Gi elected, his show This is the right network that we want). Click OK.
  9. Click Start

    Output:

     === Run Info === Plan: weka.classifiers.functions.MultilayerPerceptron L 0.3 - M 0.2 N 500 V - S EE 20 H 2 R Relation: PerceptronXOR Examples: 4 Properties: 3 x 1 X2 Output Test Mode: Training Data === Classifier Model (Full Training Set) === Linear Node 0 Input Batter Threshold assessment .21069691964232443 node 1 1.8781169869419072 node 2 -1.8403146612166397 Sigmaod node 1 Inups weight thresholds -3.7331156814378685 Atib X1 3.6380519730323164 Atib x 2 -1.0420815868133226 Number Gmood node 2 input thresholds -3.64785119182632 Atib X1 3.603244645539393 Atib x 2 .9535137571446323 Class input node has time to make 0 Model: 0 seconds === training evaluation set === === Summary === correlation coefficient of 0.7047 absolute Error mean 0.6073 root class error mean 0.7468 relative absolute error 60.7288% Root relative class error example 74.6842% of total number 4  

    Strange that in 500 dos at 500 iterated it does not receive error Could have, but 5000 @ 0.1, so let's go with it.

    Now use the test data set:

     @relation PerceptronXOR @attribute X1 numeric @attribute X2 Numeric @ Output Output numeric @ Dita1, -1 -1.1 , 1 1, -1,1 -1, -1, -1 0.5,0,5, -1 -1,5,0,5,1 0.5, -0.5, -0.5, -0.5, -1  
    1. Select the radio button
    2. My test set for 'test set supply'.
    3. Click Start.
       === Run information === Scheme: weka.classifiers.functions.MultilayerPerceptron L 0.1 -M 0.2 N 5000 V 0 S 0 E 20 H 2 R relationship: PerceptronXOR example: 4 Features: 3 x 1 X2 output test mode: the user supplied test set: size unknown (enhanced reading) === Classifier model (full training set) === linear node 0 input weight thresholds -1.2208619057226187 node 1 3.1172079341507497 node 2 -3.212484459911485 sigmoid Node 1 Input Throughput Threshold 1.091378074639599 Attrib X1 1.8621040828953983 Attrib X2 1.800744048145267 Avion Node 2 Input B T Threshold -3.372580743113 282 Attrib X1 2.9207154176666386 Attrib X2 2.576791630598144 class input node taken to 0 times Model: === === Summary === correlation coefficient of 0.8296 mean absolute error 0.3006 root square mean error 0.04 seconds == = 0.6344 Relative Absolute Error on Assessment Test Set 30.0592% Root Relative Squared Error 63.4377% Total Number of Installation 8  

      Why are they unable to classify them?

      Is it just because this training data has quickly reached a local minimum, and is not 'know' that it is not fit in all cases?

      Question.

      1. Why does not work @ 500 @ 0.3? Looks weird for such a simple problem.
      2. Why this fails on the test set.
      3. How do I pass in a set to classify? After reading the "text" itemprop = "text">

        with 0.5 using

        < Works. The rate of learning is how much weight it gives for new examples. Obviously the problem is difficult and it is easy to get in local Minma with 2 hidden layers. If you use a low learning rate with a high repetition number, the learning process will be more conservative and more likely to have a good lower minimum.

No comments:

Post a Comment