Zbudowałem sieć neuronową w oparciu o Brain.js (moduł języka Java)

Program ma nauczyć się zaokrąglać  - zgodnie z przyjętymi zasadami - liczby: (0 dla 0.0 - 0.49;  1 dla 0.5 - 1.0)

Najpierw uczono program na pojedynczych przykładach, następnie miał miejsce trening sieci neuronowej, w oparciu o Brain.js, a potem sprawdziłem skutek na przykładach.

Dane treningowe sieci:
const trainingData = [
    { input: [0.2], output: [0] },
    { input: [0.4], output: [0] }, 
    { input: [0.6], output:  [1] }, 
    { input: [0.8], output:  [1] }  
];

Dane testowe:
[0.1, 0.3, 0.5, 0.7, 0.9];

Parametry testowanej sieci:
iterations: 1000,
dokładność treningu:
0.012254610805153577
........................................................

Wynik był bez błędów,
sieć dała sobie radę z nowymi
liczbami:

0.1 → wynik: 0.001562890480272472
0.3 → wynik: 0.01895085535943508
0.5 → wynik: 0.5213671922683716
0.7 → wynik: 0.9670711755752563
0.9 → wynik: 0.9925487041473389

mimo tylko kilku wzorców.
............................................................

program:

( .  .  . )
</head>
<body>
    <h4>Testowanie sieci neuronowej w Brain.js</h4>
    <script>
// 1. Inicjalizacja sieci neuronowej
const net = new brain.NeuralNetwork();

// 2. Dane treningowe
const trainingData = [
    { input: [0.2], output: [0] },
    { input: [0.4], output: [0] }, 
    { input: [0.6], output: [1] }, 
    { input: [0.8], output: [1] }  
];

// 3. Trening sieci neuronowej
console.log("Trening sieci...");
net.train(trainingData, {
    iterations: 20000, 
    errorThresh: 0.005, // próg błędu
    log: true,        
    logPeriod: 1000   
});

console.log("Trening zakończony!\n");

// 4. Testowanie sieci
const testValues = [0.1, 0.3, 0.5, 0.7, 0.9];

testValues.forEach(value => {
    const output = net.run([value]);
    console.log(`Wejście: ${value} → Wynik: ${output}`);
});

( .  .  . )