Package kernel

Class NeuralNetwork

java.lang.Object
kernel.NeuralNetwork
All Implemented Interfaces:
Serializable

public class NeuralNetwork extends Object implements Serializable
Classe container para redes neurais artificiais. A classe NeuralNetwork é formada pelas estruturas básicas que compõem uma rede neural artificial. É composta de um e apenas um Input, um e apenas um Output e um ArrayList de 1 ou mais layers.

Os métodos training() e propagate() só funcionarão após todos estes elementos estiverem definidos, configurados e acoplados à NeuralNetwork pelos métodos attachInput(Input), attachOutput(Output)} e addLayer(Layer).

     NeuralNetwork nn = new NeuralNetwork();
     Layer l1 = new Layer(numberOfNeurons);
     l1.setActivationFunction(customActivationFunctionIfNeeded);
     nn.addLayer(l1);
     //Repetir para quantas layers forem necessárias
     ...
     Input input = customInput.getInput();
     Output output = customOutput.getOutput();
     Trainer trainer = new CustomTrainer(...);
     nn.attachInput(input);
     nn.attachOutput(output);
     nn.setTrainer(trainer);

     //Neste momento a rede está pronta para ser treinada ou usada.
     nn.beginTraining();

 
See Also:
  • Constructor Details

    • NeuralNetwork

      public NeuralNetwork()
      Cria uma instância da rede neural vazia e criando a lista de camadas
  • Method Details

    • propagate

      public boolean propagate()
      propagação dos valores
      Returns:
      verdadeiro se a propagação estiver de acordo
    • addLayer

      public void addLayer(Layer layer)
      Adicionar camada
      Parameters:
      layer - camada adicionada
    • addLayer

      public boolean addLayer(int index, Layer layer)
      Adiciona camada em um indice especifico
      Parameters:
      index - indice
      layer - camada adicionada
      Returns:
      verdadeiro se o função ocorrer
    • removeLayer

      public void removeLayer(Layer layer)
      Remover camada
      Parameters:
      layer - camada removida
    • removeLayerAt

      public boolean removeLayerAt(int index)
      Remove camada no indice especifico
      Parameters:
      index - indice
      Returns:
      verdadeiro se a função ocorrer
    • indexOf

      public int indexOf(Layer layer)
      Retorna posição da camada
      Parameters:
      layer - camada
      Returns:
      camadas
    • getLayersCount

      public int getLayersCount()
      Obter numero de camadas
      Returns:
      tamanho da camada
    • attachInput

      public void attachInput(Input input) throws Exception
      Recebe a camada de entrada
      Parameters:
      input - Camada de entrada
      Throws:
      Exception - já existe camada de entrada
    • attachOutput

      public void attachOutput(Output output) throws Exception
      Recebe a camada de saída
      Parameters:
      output - Camada de saída
      Throws:
      Exception - já existe camada de saída
    • showInfo

      public String showInfo(boolean verbose)
      Mostra informações da arquitetura da rede neural
      Parameters:
      verbose - verdadeiro se a informção for mais detalhada e falso se não
      Returns:
      informações da arquitetura
    • randomizeWeight

      public void randomizeWeight()
      Cria uma instancia de connection weight com valor aleatorio de peso dentro de [-1 .. 1]
    • checkIntegrity

      public boolean checkIntegrity()
      Checar todos os ponteiros de neuronios e conexões
      Returns:
      verdeiro se toda a arquiterura estiver integro
    • training

      public void training()
      Realização do treinamento
    • getLayers

      public List<Layer> getLayers()
      Obter coleção de camadas
      Returns:
      camadas
    • getLabel

      public String getLabel()
      Rótulo da rede neural
      Returns:
      rótulo
    • setLabel

      public void setLabel(String label)
      Definir rótulo
      Parameters:
      label - rótulo