Je travaille sur un réseau neuronal et j'essaie de faire de la prédiction. Pour cela j'ai un tableau de tableau qui contient une valeur et j'aimerais savoir quel sera le prochain.

Juste pour m'entraîner j'ai fait quelque chose de très simple mais ça ne marche pas (la valeur retournée est fausse), pouvez-vous m'expliquer attendez je suis absent ?


const NN = new brain.recurrent.LSTMTimeStep({
    inputSize: 2,
    hiddenLayers: [10],
    outputSize: 2,
});

let data = [
    [1, 2],
    [2, 4],
    [3, 6],
    [4, 8],
    [5, 10],
    [6, 12],
    [7, 14],
    [8, 16],
    [9, 18],
    [10, 20],
    [11, 22],
    [12, 24],
    [13, 26],
    [14, 28]
];

const config = {
    log: true,
    logPeriod: 100,
    errorThresh: 0.01,
    iterations: 4000
}

NN.train(data, config);
let output = NN.forecast(data, 1);
console.log(output)

Sur ce, je veux que le résultat soit [15, 30] mais il garde une valeur inférieure.

Merci beaucoup

0
Saren 8 oct. 2020 à 20:03

1 réponse

Meilleure réponse

Changer le nombre de couches cachées et ajouter une itération semble être la solution, mon IA n'avait pas tort, juste pas assez précise

const NN = new brain.recurrent.LSTMTimeStep({
    inputSize: 2,
    hiddenLayers: [2, 2],
    outputSize: 2,
});

let data = [
    [1, 2],
    [2, 4],
    [3, 6],
    [4, 8],
    [5, 10],
    [6, 12],
    [7, 14],
    [8, 16],
    [9, 18],
    [10, 20],
    [11, 22],
    [12, 24],
    [13, 26],
    [14, 28]
];

const config = {
    log: true,
    logPeriod: 100,
    errorThresh: 0.01,
    learningRate: 0.001,
    iterations: 40000000
}

NN.train(data, config);
let output = NN.forecast(data, 1);
console.log(output)

Avec un taux d'apprentissage plus faible et plus d'itérations, le NN a plus de temps pour s'adapter parfaitement.

0
Saren 9 oct. 2020 à 10:08