Здравствуйте. Написал нейросетевой алгоритм. Хочу услышать критику по оформлению кода, реализации алгоритмов. PS Добавил рациональный нейрон. С ним, оказывается, значительно быстрее работает, чем с логистической функцией.
sysexit, можно чему-нибудь другому научить более полезному. Суть в том, что библиотека универсальная. Можно задавать любое количество слоёв, любое количество нейронов, любой тип нейронов. Соответственно и задачи сеть может решать самые разнообразные.
Можно в кратце об этом рассказать, я не просвященый в этой области человек. Чему обучается программа в аттаче?
Нейросеть в аттаче обучена перемножать 2 числа, каждое из которых принадлежит промежутку от 0 до 1. То есть нейросеть имеет 2 входа и 1 выход. Входы соединены с выходами через 1 скрытый слой нейронов из 10 штук. По сути дела перцептрон - некоторый аппроксиматор. Если есть какая-то неизвестная функциональная зависимость, которую сложно установить и описать аналитически, то можно её смоделировать при помощи нейросети. В данном случае в качестве такой зависимости взято обычное умножение двух вещественных чисел. Можно взять, например, операцию XOR и точно так же смоделировать. Из прикладных задач, например, можно смоделировать управление сложной технической системой (н-р самолётом) или предсказать значение стоимости валют, товаров на бирже. В общем перцептрон - универсальный аппроксиматор.
По поводу оформления кода: Длинные ф-и не очень хорошо. Есть очень хорошая книга "Чистый код" Роберта Мартина. Там по этому поводу очень хорошо расписано.
sysexit, я не знаю что Вам интересно и, уж тем более, не собираюсь писать что-то для Вашего интереса. bug1z, насколько я знаю, допускаются функции 20-30 строк кода. Проблема в том, что алгоритм обучения довольно громоздкий.. Разбивать его на отдельные функции даже не знаю как.
Допилил свою НС. Теперь компилится на gcc. Поставил флажки оптимизации по скорости и сравнил быстродействие. Честно сказать, я такого не ожидал. Гцц'шная сборка тренируется почти вдвое быстрей с одними и теми же примерами, с одной и той-же конфигурацией сети, с одними и теми же начальными значениями. Magic!