1

im действительно новичок в NN, и я пытаюсь реализовать его в своей системе рекомендаций, которая дает пользователям рекомендации по сходству пользователей. Дело в том, что im имеет 4 разных сходства пользователей по различным параметрам и im использует вес, чтобы сделать важность каждого сходства в общем сходстве.Регулировка весов нейронных сетей по пользовательским рейтингам

область подобия = 0,5, weightRegion = 0,6

интересы подобия = 0,3, weightInterest = 0,8

образование подобия = 0,75, weightEducation = 1,1

позиции подобия = 0,6, weightPositions = 1,5

Таким образом, вычисление общего подобия будет умножено на сумму, деленную на сумму весов: (0,5 * 0,6 + 0,3 * 0,8 + 0,75 * 1,1 + 0,6 * 1,5)/4 // im деление на сумму весов для установки параметра в {0..1} Так дело в том, что мне нужно, чтобы контролировать эти веса от рейтинга пользователя (пользователь щелкает рейтинг от 1 до 10 и весов г скорректированный)

Я построил такой NN: Neural Network

Итак, что делает im: n = 0.25 (learning k); рейтинг = 0.7 (это мой рейтинг 7);

net5 = x1 * w15 + x2 * w25 + x3 * w35 + x4 * w45;

out5 = 1/(1-pow (e, -net5));

реальный = out5 * (1 + 1-rating);

err = out5 * (1-out5) * (real-out5);

w15n = w15 + err n x1;

w25n = w25 + err n x2;

w35n = w35 + err n x3;

w45n = w45 + err n x4;

(им СРЮ для форматирования кода, он твердил его не отформатирован)

Что я делаю неправильно? вызывают хорошие результаты. Thanks

+0

Почему вы делаете NN только с одним слоем ??? Таким образом, вы можете получить только функции линейного разделения. – peri4n

+0

Можете ли вы объяснить мне пример многослойного NN для этой проблемы? Я просто не могу понять, где я получу веса и параметры для других слоев. – Leg0

+0

NN - все о структуре. Чем сложнее ваша проблема, тем больше слоев вам нужно, чтобы получить хороший результат. Параметр уровня изучается с помощью алгоритма: Backpropagation. Для этого вам нужен классифицированный образец. – peri4n

ответ

0

Я думаю, что вы идете не так. Backpropagation не является хорошим выбором для такого типа обучения (как-то постепенное обучение). Для использования backpropagation вам понадобятся некоторые данные, скажем 1000 данных, где приведены различные типы сходства (ввод) и Истинное сходство (выход). Затем весы будут обновляться и обновляться до тех пор, пока не снизится частота ошибок. И кроме того, вам нужен тестовый набор данных, который заставит вас убедиться, что сеть результатов будет хорошо, даже для значений сходства, которых она не видела во время обучения.

+0

Получил это после реализации этого :) Итак, что бы вы предложили для такого типа обучения? – Leg0

+0

Я думаю, что усиление обучения может быть хорошей идеей, но я не знаю много об этом. – Mehraban