Пытаюсь реализовать многослойный персептрон с несколькими выходами.
Перерыл множество статей об обратном распространении ошибки. В частности
на этой странице очень доступно описан материал, по которому я реализовывал обучение.
На вход подаю 3 матрицы 5Х5, изображающие "0", "1", "2". На выходе три нейрона.
Процесс обучения следующий:
- Даю первую матрицу
- На выходе должен среагировать первый нейрон ([1, 0, 0])
- Распространяю ошибку
- Повторяю соответственно для двух других матриц
- Следующая итерация
В итоге после уже 10 итераций
для любой матрицы на выходе нейроны реагируют одинаково ([0.06, 0.16, 0.96]).
Веса выглядят так: (0 слой(вход), 1 слой(скрытый), 2 слой(скрытый), под ним три выходных нейрона)
Раскрашено по возрастающей от зелёного к красному.
Собственно, что я мог упустить?
P.s.: впервые задаю вопрос, не судите строго. Если нужно больше информации, сообщайте:)