- В начале увидите «случайные» веса.
- После обучения увидите «новые» веса.
- Проверка на [1, 0, 0] даст число, близкое к 1.0 (что эквивалентно логической «1»).
При запуске вы увидите вывод в консоли, например (цифры могут немного отличаться, поскольку даже при одинаковом seed(1) возможны небольшие расхождения на разных платформах):
Random starting synaptic weights:
-0.165956 0.440649 -0.999771
New synaptic weights after training:
9.672993 -0.207843 -4.629637
Considering new situation [1, 0, 0] -> ?: 0.999937
Мы разобрались, как выглядит минимальная реализация простой «однонейронной» сети на Java. В дальнейшем ты можешь расширять этот пример, добавляя больше нейронов, новые функции активации, другие методы оптимизации (Adam, RMSProp и т.д.), подключать популярные фреймворки (DeepLearning4j), а также использовать готовые библиотеки для линеарной алгебры, чтобы упростить работу с матрицами. Но начало всегда одно: понимание базовых формул, умение «вручную» собрать небольшой прототип — и именно в этом поможет такая простая реализация.