Фон
Я кодирую базовую нейронную сеть прямой связи с обратным распространением.Я нахожусь в состоянии, что это решает некоторые тривиальные проблемы, такие как XOR или x> y, так что все выглядит хорошо.Я хотел написать другую проблему и посмотреть, научится ли мой NN ее решать.
Описание идеи
Я получил представление о проблеме "RGB":
- Некоторые генераторы генерируют 3 случайных числа в диапазоне от -128 до 127 (которые обозначают красный, зеленый или синий).
- Самое высокое значение означает, что его метка (R, G или B) является "доминирующим цветом"
- Если он красный, правильный ответ для такого примера обучения - 1, если он зеленый - это 0,5, а если синий - - 0.
- Всего - один пример обучения имеет вход в виде вектора с3 значения и ответ - вектор одного значения: 1, 0,5 или 0.
Проблема
Проблема в том, что я не могу определить правильную конфигурацию моего NN.Это минимизирует целевую функцию на некоторое время и застревает.Когда я оцениваю результаты обучения, NN дает почти одинаковые ответы для каждого входа или просто странные ответы.
Чтобы уточнить - я могу выбрать количество слоев и нейронов.Я могу инициализировать веса (я делаю это случайно) и выбирать функции активации для каждого слоя.Вход имеет размер 3, а ответ имеет размер 1.
Я перепробовал десятки конфигураций и получил те же результаты - он застрял.Я что-то не так делаю или такая базовая нейронная сеть не способна научиться решать такие проблемы.Зачем?Может быть, он должен иметь ответ размером 3?