Всем привет!
Недавно решил проверить, что тут у вас и был огорчен - меня забанили на форуме Но сейчас не об этом! Как вы уже, наверное, поняли из названия темы, здесь будет кое-что интересное! А именно, я написал нейронную сеть. Она еще не дописана до конца, но один учитель есть, и она уже вполне может функционировать. Вот исходник: https://github.com/MrSyabro/Neuro
Вот пример программы:
local neuro = require("Neuro")
network = neuro.Neurons:CreateNetwork (neuro.AFunctions:BipolarSigmoidFunction(), {3, 5, 5, 3}, neuro.Neurons.ACompute)
inputs = {
{1, 0, 1},
{0, 0, 1}}
outputs = {
{0, 1, 0},
{1, 1, 0}}
for i = 1, 50 do
print(neuro.Learning.BackPropagationLearning:RunEpoch(network, inputs, outputs))
end
При вызове ф-ции Createnetwork кроме "{3, 5, 5, 3}" лучше ничего не трогать. Эта таблица определяет параметры сети. А именно слои и кол. нейронов в них. Первый слой входной, 3 нейрона - 3 входа, 2 по центру - скрытые, последний - выходной.
"inputs" и "outputs" - таблицы наборов уроков (подобраны случайно). {1, 0, 1} - вход, соответствует {0, 1, 0} выходу.
Далее 50 циклов уроков с выводом общей погрешности сети.
Вот только... Lua не нравится огромные значения после запятой.. так что получается "-1.#IND"