Как в многослойном персептроне реализуются несколько выходов?

Пытаюсь реализовать многослойный персептрон с несколькими выходами.
Перерыл множество статей об обратном распространении ошибки. В частности на этой странице очень доступно описан материал, по которому я реализовывал обучение.

На вход подаю 3 матрицы 5Х5, изображающие "0", "1", "2". На выходе три нейрона.
Процесс обучения следующий:
  1. Даю первую матрицу
  2. На выходе должен среагировать первый нейрон ([1, 0, 0])
  3. Распространяю ошибку
  4. Повторяю соответственно для двух других матриц
  5. Следующая итерация

В итоге после уже 10 итераций для любой матрицы на выходе нейроны реагируют одинаково ([0.06, 0.16, 0.96]).

Веса выглядят так: (0 слой(вход), 1 слой(скрытый), 2 слой(скрытый), под ним три выходных нейрона)
0f73e6af7bb24b57b91a60abd991660f.png
Раскрашено по возрастающей от зелёного к красному.

Собственно, что я мог упустить?

P.s.: впервые задаю вопрос, не судите строго. Если нужно больше информации, сообщайте:)
  • Вопрос задан
  • 460 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Who_R_U
Делал первые полносвязные сети по этой статье, наиболее понятная. После проб из входа на 3 нейрона и 1 выход начал делать нейросеть на 2 скрытых слоя с входом из 100 значений (изображение 10х10 чб) для распознавания цифр от 0 до 9 - и всё заработало. Советую попробовать. Биас используете? Какая скорость обучения, функция активации?
Статья
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы