Я написал простую искусственную нейронную сеть Feed Forward для распознавания символов.Необычные результаты Neural Network
У меня есть набор из 6 возможных символов в сетке 5x5 пикселей.
Эти {X, +, -, \, /, |}
Например X
бы:
X = [1,0,0,0,1,
0,1,0,1,0,
0,0,1,0,0,
0,1,0,1,0,
1,0,0,0,1]
Значение для серых шумных районов может быть между 0 и 1.
Моего ИНС состоит из 25 входных нейронов (The 5x5 сетка), 6 скрытых нейронов с предубеждениями и 6 выходных нейронов.
Каждый выходной нейрон отображается на символ. Выходы между 0 и 1 определяют, какой символ он распознает. I - символ выбирается для максимального значения выходных узлов.
i.e - Если выход {X : 0.9, + : 0.2, - : 0.1, \ : 0.15,/: 0.15, | : 0.2}
, то признанным символом будет X
.
Кажется, что он работает очень хорошо. Затем я провел следующий эксперимент:
Я получил тестовые входы (6 символов выше) и создал шумовую функцию addNoise(n)
, где n
- это процент шумов, добавленных случайным образом к этому входу.
Для каждого значения шума между 0
и 1
я проверил тест 2000
раз (шум случайным образом изменяется незначительно каждый раз). Я получил следующий график, когда делаю это на X
.
Вам может понадобиться, чтобы открыть изображение на другой странице, чтобы увидеть полный размер.
Как вы можете видеть после того, как я ввел примерно 40%
(400 по оси x) шум на вход X-теста, он начинает предсказывать другие символы.
С добавлением 70%
шума X
, есть равные шансы Сети прогнозирования X
и \
.
Во всяком случае, мой вопрос:
Не следует линии на графике для \
и /
быть почти идеально выровнены, так как они идентичны по отношению к X
символ?
Для уточнения после 70%
шума сеть равномерно перемешивается X
и \
.
Однако, после ~ 88%
шума, сеть равномерно перемешивается X
и /
.
Почему моя сеть может выдавать такие результаты?