Имеется многослойный полносвязный перцептрон с одним скрытым слоем. Функция активации - сигмоидальная. Обучаю методом обратного распространения ошибки. Её предназначение - распознавать рукописные цифры от 0 до 9. Количество входных данных 225(изображения цифр 15х15), количество скрытых слоев 50. Тренировочная выборка состоит из 500 изображений - по 50 вариаций на каждую цифру.
После обучения на тренировочной выборке средняя ошибка составляет около 5% и достигается довольно быстро. Но! Если посмотреть на самую минимальную ошибку и на самую максимальную из всех тренировочных примеров, то их разница составляет где-то 50%. То есть при тренировке минимальная ошибка постоянно стремиться к 0, а максимальная колебается в пределах 40 - 60%.
Пытался настраивать значения количества скрытых нейронов, скорость обучения и момент, но это не принесло особо позитивных результатов.
Нейросеть сходиться если я обучаю её лишь на 10 изображений цифр(по 1 варианту на каждую), тогда достигается баланс минимальной и максимальной ошибки. Иначе очень сильная разница, что приводит к порой странным результатам распознавания. В целом она распознает цифры, которые я её показываю, но не всегда верно.
Получается, что на некоторых изображения оно тренируется с ошибкой 0.0001%, а на некоторых 50% и больше. Что за бред?
С чем это может быть связано?
0.48 - 0.3 - 0.58 - 0.62->0 - 0 - 1 - 1->3// Пока я писал, это уже описал сам ТС хД – Kir_Antipov Jun 25 '18 at 21:07sigmoid- хорош для того чтобы предсказывать ответ Да/Нет. Поэтому для задач мультиклассовой классификации используютsoftmax. Подумайте подходит ли вам ответ Да/Нет для предсказания 10 различных цифр? ;-) – MaxU - stand with Ukraine Jun 25 '18 at 21:43