CDN: https://cdn.jsdelivr.net/gh/SanzioRaphael/MLP.js@62b8cc8dac5c69c130da308511d9ad43a499b3ec/mlp.js
A classe MLP representa uma rede neural de camadas densas com uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída. Esta implementação utiliza as funções de ativação ReLU e sigmoid. Esta classe também fornece métodos para treinamento da rede neural e previsão.
Construtor
MLP(inputLayer, hiddenLayers, outputLayer)
Cria uma instância da classe MLP com a seguinte estrutura:
inputLayer: número de neurônios na camada de entrada
hiddenLayers: um inteiro ou um array de inteiros, representando o número de neurônios em cada camada oculta. Se for um inteiro, a rede neural terá uma única camada oculta com esse número de neurônios. Se for um array, a rede neural terá o número de camadas ocultas igual ao comprimento do array e o número de neurônios em cada camada será dado pelos elementos do array.
outputLayer: número de neurônios na camada de saída
randomMatrix(rows, cols)
Gera uma matriz rows x cols com valores aleatórios entre -1 e 1.
matrixMultiply(a, b)
Realiza a multiplicação de matrizes a x b e retorna o resultado.
matrixAdd(a, b)
Realiza a soma de matrizes a e b e retorna o resultado.
sigmoid(x)
Retorna o valor da função de ativação sigmoid aplicada ao valor x.
relu(x)
Retorna o valor da função de ativação ReLU aplicada ao valor x.
train(input, target, learningRate, epochs)
Realiza o treinamento da rede neural com base em um conjunto de dados de entrada input e de saída esperada target. learningRate define a taxa de aprendizado da rede e epochs define o número de épocas de treinamento. Durante o treinamento, a função realiza o cálculo dos gradientes e atualiza os pesos e bias da rede neural.
predict(input)
Utiliza a rede neural treinada para fazer previsões com base em um conjunto de dados de entrada input. Retorna um array com as previsões correspondentes para cada entrada.
vamos criar uma rede neural com 2 neurônios na camada de entrada, 3 neurônios na camada escondida e 1 neurônio na camada de saída.
const mlp = new MLP(2, [3], 1);
const input = [[0, 0], [0, 1]];
const target = [[0], [1]];
mlp.train(input, target, 0.1, 1000);
const input = [1, 0];
const output = mlp.predict(input);
console.log(output); // exibe a previsão para a entrada [1, 0]