iamserge
@iamserge

Многослойный перцептрон — как выполнить действия?

Собственно вопрос простой, разбираюсь с сетями и сделал пока только простейший перцептрон, в нем несколько входов, столько же весов и всего один выход. Я просто вычисляю произведение входа на соответсвующий вес т.е. а потом все складываю: Sum(w[i] * Input[i]) => в сигмоиду и вот и собственно все готово ... Обучение идет чуть иначе, но схожим образом ...

Но вот с многослойной сетью где N выходов уже немного не ясно, вот тут есть пример, вставлю и сюда картинку, судя по всему тут стоит делать точно так же, в соответствии с связями... Но вот не ясно, где тут эти вектора проходят? Я банально никак не пойму что мне на что умножать и как складывать в несколько шагов т.к. тут явно есть w1, w2 чего в самом простом перцептроне нет, а значит и в один проход это не делается ... Но как сделать?
663d3747ac767668569028.png
  • Вопрос задан
  • 200 просмотров
Решения вопроса 1
@rPman
input1..3 размерность N и output1..3 размерность M это вектора I и O соответственно, каждый со своей размерностью (в твоем примере одинаковая)
размер скрытого слоя - K
веса между input и скрытым слоем w1x это матрица A, размерность NxK
веса между скрытым слоем и output w2x это матрица B, размерность KxM

Формула
sigmoid(I*A) получаем вектор H размерностью K
следующий слой
sigmoid(H*B) получаем вектор O размерностью M

т.е. O = sigmoid(sigmoid(I*A)*B)

входной и выходной вектора еще нормализуют
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Во-первых, где у тебя bias, либо дополнительный вход на котором всегда 1? В противном случае у тебя функция вращается вокруг центра.
Во-вторых, прелесть перцептрона в том, что его логика везде одна, хоть в однослойном, хоть миллиардслойном. Так что тебе надо вернуться назад и сделать логику универсальной, не учитывающий, что у тебя "один проход".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы