Package org.neuroph.util

Examples of org.neuroph.util.NeuronProperties


    // set network type
    this.setNetworkType(NeuralNetworkType.MAXNET);

    // createLayer input layer in layer
    Layer inputLayer = LayerFactory.createLayer(neuronsCount,
        new NeuronProperties());
    this.addLayer(inputLayer);

    // createLayer properties for neurons in output layer
    NeuronProperties neuronProperties = new NeuronProperties();
    neuronProperties.setProperty("neuronType", CompetitiveNeuron.class);
    neuronProperties.setProperty("transferFunction", TransferFunctionType.RAMP);

    // createLayer full connectivity in competitive layer
    CompetitiveLayer competitiveLayer = new CompetitiveLayer(neuronsCount, neuronProperties);

    // add competitive layer to network
View Full Code Here


    int promoCount = 3;
       
    this.setNetworkType(NeuralNetworkType.RECOMMENDER);
    this.getLayers().clear();
    // init neuron settings for this type of network
    NeuronProperties neuronProperties = new NeuronProperties();
    neuronProperties.setProperty("transferFunction", TransferFunctionType.RAMP);
    // for sigmoid and tanh transfer functions
    neuronProperties.setProperty("transferFunction.slope", new Double(1));
   
    // create input layer   
    Layer inputLayer = LayerFactory.createLayer(productsCount,
        neuronProperties);
    this.addLayer(inputLayer);
View Full Code Here

  private void createNetwork(int inputNeuronsCount, int outputNeuronsCount, TransferFunctionType transferFunctionType) {
    // set network type
    this.setNetworkType(NeuralNetworkType.PERCEPTRON);

    // init neuron settings for input layer
    NeuronProperties inputNeuronProperties = new NeuronProperties();
       inputNeuronProperties.setProperty("transferFunction", TransferFunctionType.LINEAR);

    // create input layer
    Layer inputLayer = LayerFactory.createLayer(inputNeuronsCount, inputNeuronProperties);
    this.addLayer(inputLayer);

    NeuronProperties outputNeuronProperties = new NeuronProperties();
    outputNeuronProperties.setProperty("neuronType", ThresholdNeuron.class);
    outputNeuronProperties.setProperty("thresh", new Double(Math.abs(Math.random())));
    outputNeuronProperties.setProperty("transferFunction", transferFunctionType);
    // for sigmoid and tanh transfer functions set slope propery
    outputNeuronProperties.setProperty("transferFunction.slope", new Double(1));

    // createLayer output layer
    Layer outputLayer = LayerFactory.createLayer(outputNeuronsCount, outputNeuronProperties);
    this.addLayer(outputLayer);
View Full Code Here

   *            neurons number in Hopfied network
   */
  public Hopfield(int neuronsCount) {

    // init neuron settings for hopfield network
    NeuronProperties neuronProperties = new NeuronProperties();
    neuronProperties.setProperty("neuronType", InputOutputNeuron.class);
    neuronProperties.setProperty("bias", new Double(0));
    neuronProperties.setProperty("transferFunction", TransferFunctionType.STEP);
    neuronProperties.setProperty("transferFunction.yHigh", new Double(1));
    neuronProperties.setProperty("transferFunction.yLow", new Double(0));

    this.createNetwork(neuronsCount, neuronProperties);
  }
View Full Code Here

   */
  private void createNetwork(int inputNeuronsCount, int outputNeuronsCount) {

    // specify input neuron properties (use default: weighted sum input with
    // linear transfer)
    NeuronProperties inputNeuronProperties = new NeuronProperties();

    // specify map neuron properties
    NeuronProperties outputNeuronProperties = new NeuronProperties(
                                            Difference.class,   // weights function
                                            Intensity.class,    // summing function
                                            Linear.class,       // transfer function
                                            Neuron.class        // neuron type
                                                    );
View Full Code Here

    // set network type
    this.setNetworkType(NeuralNetworkType.OUTSTAR);

    // init neuron settings for this type of network
    NeuronProperties neuronProperties = new NeuronProperties();
    neuronProperties.setProperty("transferFunction", TransferFunctionType.STEP);
   
    // create input layer
    Layer inputLayer = LayerFactory.createLayer(1, neuronProperties);
    this.addLayer(inputLayer);

    // createLayer output layer
    neuronProperties.setProperty("transferFunction", TransferFunctionType.RAMP);
    Layer outputLayer = LayerFactory.createLayer(outputNeuronsCount,  neuronProperties);
    this.addLayer(outputLayer);

    // create full conectivity between input and output layer
    ConnectionFactory.fullConnect(inputLayer, outputLayer);
View Full Code Here

    // set network type
    this.setNetworkType(NeuralNetworkType.NEURO_FUZZY_REASONER);

    // createLayer input layer
    NeuronProperties neuronProperties = new NeuronProperties();
    Layer inLayer = LayerFactory.createLayer(new Integer(inputNum),
        neuronProperties);
    this.addLayer(inLayer);

    // createLayer fuzzy set layer
    neuronProperties.setProperty("transferFunction",
        TransferFunctionType.TRAPEZOID);
    Enumeration<Integer> e = inputSets.elements();
    int fuzzySetsNum = 0;
    while (e.hasMoreElements()) {
      Integer i = e.nextElement();
      fuzzySetsNum = fuzzySetsNum + i.intValue();
    }
    Layer setLayer = LayerFactory.createLayer(fuzzySetsNum,
        neuronProperties);
    this.addLayer(setLayer);

    // TODO: postavi parametre funkcija pripadnosti
    // nizove sa trning elementima iznesi van klase i prosledjuj ih kao
    // parametre
    Iterator<Neuron> ii = setLayer.getNeuronsIterator();
    Enumeration<Integer> en;// =setLayer.neurons();
    int c = 0;
    while (ii.hasNext()) {
      Neuron cell = ii.next();
      Trapezoid tf = (Trapezoid) cell.getTransferFunction();

      if (c <= 3) {
        tf.setLeftLow(pointsSets[c][0]);
        tf.setLeftHigh(pointsSets[c][1]);
        tf.setRightLow(pointsSets[c][3]);
        tf.setRightHigh(pointsSets[c][2]);
      } else {
        tf.setLeftLow(timeSets[c - 4][0]);
        tf.setLeftHigh(timeSets[c - 4][1]);
        tf.setRightLow(timeSets[c - 4][3]);
        tf.setRightHigh(timeSets[c - 4][2]);
      }
      c++;
    }

    // povezi prvi i drugi sloj
    int s = 0; // brojac celija sloja skupova (fazifikacije)
    for (int i = 0; i < inputNum; i++) { // brojac ulaznih celija
      Neuron from = inLayer.getNeuronAt(i);
      int jmax = inputSets.elementAt(i).intValue();
      for (int j = 0; j < jmax; j++) {
        Neuron to = setLayer.getNeuronAt(s);
        ConnectionFactory.createConnection(from, to, 1);
        s++;
      }
    }

    // ----------------------------------------------------------

    // createLayer rules layer
    NeuronProperties ruleNeuronProperties = new NeuronProperties(
                        WeightsFunctionType.WEIGHTED_INPUT,
                        SummingFunctionType.MIN,
                        TransferFunctionType.LINEAR);
    en = inputSets.elements();
    int fuzzyAntNum = 1;
    while (en.hasMoreElements()) {
      Integer i = en.nextElement();
      fuzzyAntNum = fuzzyAntNum * i.intValue();
    }
    Layer ruleLayer = LayerFactory.createLayer(fuzzyAntNum,
        ruleNeuronProperties);
    this.addLayer(ruleLayer);

    int scIdx = 0; // set cell index

    for (int i = 0; i < inputNum; i++) { // brojac ulaza (grupa fuzzy
                        // skupova)
      int setsNum = inputSets.elementAt(i).intValue();

      for (int si = 0; si < setsNum; si++) { // brojac celija fuzzy
                          // skupova
        if (i == 0) {
          Neuron from = setLayer.getNeuronAt(si);
          int connPerCell = fuzzyAntNum / setsNum;
          scIdx = si;

          for (int k = 0; k < connPerCell; k++) { // brojac celija
                              // hipoteza
            Neuron to = ruleLayer.getNeuronAt(si * connPerCell + k);
            ConnectionFactory.createConnection(from, to,
                new Double(1));
          } // for
        } // if
        else {
          scIdx++;
          Neuron from = setLayer.getNeuronAt(scIdx);
          int connPerCell = fuzzyAntNum / setsNum;

          for (int k = 0; k < connPerCell; k++) { // brojac celija
                              // hipoteza
            int toIdx = si + k * setsNum;
            Neuron to = ruleLayer.getNeuronAt(toIdx);
            ConnectionFactory.createConnection(from, to,
                new Double(1));
          } // for k
        } // else
      } // for si
    } // for i

    // kreiraj izlazni sloj
    neuronProperties = new NeuronProperties();
    neuronProperties.setProperty("transferFunction",
        TransferFunctionType.STEP);
    Layer outLayer = LayerFactory.createLayer(new Integer(outNum),
        neuronProperties);
    this.addLayer(outLayer);
View Full Code Here

    // set network type
    this.setNetworkType(NeuralNetworkType.NEURO_FUZZY_REASONER);

    // CREATE INPUT LAYER
    NeuronProperties neuronProperties = new NeuronProperties();
    Layer inLayer = LayerFactory.createLayer(new Integer(inputNum),
        neuronProperties);
    this.addLayer(inLayer);

    // CREATE FUZZY SET LAYER
    neuronProperties.setProperty("transferFunction",
        TransferFunctionType.TRAPEZOID);
    Enumeration<Integer> e = inputSets.elements();
    int fuzzySetsNum = 0;
    while (e.hasMoreElements()) {
      Integer i = e.nextElement();
      fuzzySetsNum = fuzzySetsNum + i.intValue();
    }
    Layer setLayer = LayerFactory.createLayer(new Integer(fuzzySetsNum),
        neuronProperties);
    this.addLayer(setLayer);

    // TODO: postavi parametre funkcija pripadnosti
    // nizove sa trning elementima iznesi van klase i prosledjuj ih kao
    // parametre
    Iterator<Neuron> ii = setLayer.getNeuronsIterator();
    Enumeration<Integer> en;// =setLayer.neurons();
    int c = 0;
    while (ii.hasNext()) {
      Neuron cell = ii.next();
      Trapezoid tf = (Trapezoid) cell.getTransferFunction();
      /*
       * if (c<=3) { tf.setLeftLow(pointsSets[c][0]);
       * tf.setLeftHigh(pointsSets[c][1]); tf.setRightLow(pointsSets[c][3]);
       * tf.setRightHigh(pointsSets[c][2]); } else { tf.setLeftLow(timeSets[c-4][0]);
       * tf.setLeftHigh(timeSets[c-4][1]); tf.setRightLow(timeSets[c-4][3]);
       * tf.setRightHigh(timeSets[c-4][2]); } c++;
       */
    }

    // createLayer connections between input and fuzzy set getLayersIterator
    int s = 0; // brojac celija sloja skupova (fazifikacije)
    for (int i = 0; i < inputNum; i++) { // brojac ulaznih celija
      Neuron from = inLayer.getNeuronAt(i);
      int jmax = inputSets.elementAt(i).intValue();
      for (int j = 0; j < jmax; j++) {
        Neuron to = setLayer.getNeuronAt(s);
        ConnectionFactory.createConnection(from, to, new Double(1));
        s++;
      }
    }

    // ----------------------------------------------------------

    // kreiraj sloj pravila
    neuronProperties
        .setProperty("summingFunction", SummingFunctionType.MIN);
    neuronProperties.setProperty("transferFunction",
        TransferFunctionType.LINEAR);
    en = inputSets.elements();
    int fuzzyAntNum = 1;
    while (en.hasMoreElements()) {
      Integer i = en.nextElement();
      fuzzyAntNum = fuzzyAntNum * i.intValue();
    }
    Layer ruleLayer = LayerFactory.createLayer(new Integer(fuzzyAntNum),
        neuronProperties);
    this.addLayer(ruleLayer);

    // povezi set i rule layer

    int scIdx = 0; // set cell index

    for (int i = 0; i < inputNum; i++) { // brojac ulaza (grupa fuzzy
                        // skupova)
      int setsNum = inputSets.elementAt(i).intValue();

      for (int si = 0; si < setsNum; si++) { // brojac celija fuzzy
                          // skupova
        if (i == 0) {
          Neuron from = setLayer.getNeuronAt(si);
          int connPerCell = fuzzyAntNum / setsNum;
          scIdx = si;

          for (int k = 0; k < connPerCell; k++) { // brojac celija
                              // hipoteza
            Neuron to = ruleLayer.getNeuronAt(si * connPerCell + k);
            ConnectionFactory.createConnection(from, to,
                new Double(1));
          } // for
        } // if
        else {
          scIdx++;
          Neuron from = setLayer.getNeuronAt(scIdx);
          int connPerCell = fuzzyAntNum / setsNum;

          for (int k = 0; k < connPerCell; k++) { // brojac celija
                              // hipoteza
            int toIdx = si + k * setsNum;
            Neuron to = ruleLayer.getNeuronAt(toIdx);
            ConnectionFactory.createConnection(from, to,
                new Double(1));
          } // for k
        } // else
      } // for si
    } // for i

    // set input and output cells for this network
    neuronProperties = new NeuronProperties();
    neuronProperties.setProperty("transferFunction",
        TransferFunctionType.STEP);
    Layer outLayer = LayerFactory.createLayer(new Integer(outNum),
        neuronProperties);
    this.addLayer(outLayer);

View Full Code Here

   *    number of neurons in output layer
   */
  private void createNetwork(int inputNeuronsCount, int rbfNeuronsCount,
      int outputNeuronsCount) {
    // init neuron settings for this network
    NeuronProperties rbfNeuronProperties = new NeuronProperties();
    rbfNeuronProperties.setProperty("weightsFunction", Difference.class);
    rbfNeuronProperties.setProperty("summingFunction", Intensity.class);
    rbfNeuronProperties.setProperty("transferFunction", Gaussian.class);

    // set network type code
    this.setNetworkType(NeuralNetworkType.RBF_NETWORK);

    // create input layer
View Full Code Here

   */
  private void createNetwork(int inputNeuronsNum, int outputNeuronsNum,
    TransferFunctionType transferFunctionType) {

    // init neuron properties
    NeuronProperties neuronProperties = new NeuronProperties();
//    neuronProperties.setProperty("bias", new Double(-Math
//        .abs(Math.random() - 0.5))); // Hebbian network cann not work
    // without bias
    neuronProperties.setProperty("transferFunction", transferFunctionType);
    neuronProperties.setProperty("transferFunction.slope", new Double(1));

    // set network type code
    this.setNetworkType(NeuralNetworkType.UNSUPERVISED_HEBBIAN_NET);

    // createLayer input layer
View Full Code Here

TOP

Related Classes of org.neuroph.util.NeuronProperties

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.