A biblioteca Perceptron implementa o algoritmo de treinamento de um único neurônio artificial, chamado Perceptron. O objetivo é classificar dados em duas classes distintas, ou seja, é uma biblioteca de aprendizado supervisionado binário.
Para utilizar esta biblioteca, você pode clonar o repositório a partir do GitHub e incluir o arquivo perceptron.js no seu projeto. O código foi escrito em JavaScript, portanto, pode ser executado em qualquer ambiente que suporte esta linguagem.
Para começar a utilizar a biblioteca, você deve criar uma instância da classe Perceptron. É necessário passar dois argumentos para o construtor: o tamanho do vetor de entrada e a taxa de aprendizado (learning rate). O tamanho do vetor de entrada é o número de características que o seu conjunto de dados possui.
Exemplo:
const perceptron = new Perceptron(inputSize, learningRate);
O método predict recebe um vetor de entrada inputs e retorna a classe prevista pelo Perceptron. A classe prevista é calculada pela soma ponderada dos pesos associados a cada entrada e comparada a um limite, que é o bias. A função de ativação utilizada é a função degrau, que retorna 1 se o limite é ultrapassado e 0 caso contrário.
Exemplo:
const inputs = [0, 1, 0.5, 1.5];
const prediction = perceptron.predict(inputs);
O método train é responsável por atualizar os pesos do Perceptron. Recebe como argumento um vetor de entrada inputs e a classe real associada a esta entrada label. O erro é calculado como a diferença entre a classe real e a prevista. Os pesos são atualizados proporcionalmente ao erro e à taxa de aprendizado.
Exemplo:
const inputs = [0, 1, 0.5, 1.5];
const label = 1;
perceptron.train(inputs, label);
O Perceptron possui três propriedades:
- weights: um vetor de pesos associados a cada entrada.
- bias: um valor adicionado à soma ponderada das entradas.
- learningRate: a taxa de aprendizado utilizada para atualizar os pesos.
A seguir, um exemplo de utilização da biblioteca Perceptron para classificar o conjunto de dados Iris em duas classes: Iris setosa e Iris versicolor.
const perceptron = new Perceptron(4, 0.1);
// Dados de treinamento const irisData = [ { inputs: [5.1, 3.5, 1.4, 0.2], label: 1 }, // Iris setosa { inputs: [4.9, 3.0, 1.4, 0.2], label: 1 }, // Iris setosa { inputs: [7.0, 3.2, 4.7, 1.4], label: 0 }, // Iris versicolor { inputs: [6.4, 3.2, 4.5, 1.5], label: 0 }, // Iris versicolor ];
// Teste do Perceptron for (let i = 0; i < irisTest.length; i++) { const prediction = perceptron.predict(irisTest[i]); console.log(Prediction: ${prediction}); }
Neste exemplo, foram utilizados quatro atributos (comprimento da sépala, largura da sépala, comprimento da pétala e largura da pétala) para treinar o Perceptron a classificar duas espécies de Iris: setosa e versicolor. Os dados de treinamento foram passados para o método `train`, que atualizou os pesos do Perceptron. Em seguida, foram utilizados dados de teste para avaliar o desempenho do Perceptron.
A biblioteca Perceptron é uma implementação simples do algoritmo de aprendizado de máquina para classificação binária. Ela pode ser utilizada como ponto de partida para construir algoritmos mais complexos, como redes neurais multicamadas. A taxa de aprendizado é um parâmetro importante que deve ser ajustado de acordo com o problema em questão. Caso a taxa de aprendizado seja muito alta, os pesos podem oscilar demasiadamente e impedir a convergência do algoritmo. Por outro lado, caso a taxa de aprendizado seja muito baixa, o treinamento pode demorar demasiadamente para convergir.