Нейронная сеть решает тривиальную задачу «RGB» - может ли она решить такую ​​проблему? - PullRequest
0 голосов
/ 22 декабря 2018

Фон

Я кодирую базовую нейронную сеть прямой связи с обратным распространением.Я нахожусь в состоянии, что это решает некоторые тривиальные проблемы, такие как XOR или x> y, так что все выглядит хорошо.Я хотел написать другую проблему и посмотреть, научится ли мой NN ее решать.

Описание идеи

Я получил представление о проблеме "RGB":

  1. Некоторые генераторы генерируют 3 случайных числа в диапазоне от -128 до 127 (которые обозначают красный, зеленый или синий).
  2. Самое высокое значение означает, что его метка (R, G или B) является "доминирующим цветом"
  3. Если он красный, правильный ответ для такого примера обучения - 1, если он зеленый - это 0,5, а если синий - - 0.
  4. Всего - один пример обучения имеет вход в виде вектора с3 значения и ответ - вектор одного значения: 1, 0,5 или 0.

Проблема

Проблема в том, что я не могу определить правильную конфигурацию моего NN.Это минимизирует целевую функцию на некоторое время и застревает.Когда я оцениваю результаты обучения, NN дает почти одинаковые ответы для каждого входа или просто странные ответы.

Чтобы уточнить - я могу выбрать количество слоев и нейронов.Я могу инициализировать веса (я делаю это случайно) и выбирать функции активации для каждого слоя.Вход имеет размер 3, а ответ имеет размер 1.

Я перепробовал десятки конфигураций и получил те же результаты - он застрял.Я что-то не так делаю или такая базовая нейронная сеть не способна научиться решать такие проблемы.Зачем?Может быть, он должен иметь ответ размером 3?

...