Кодирование/декодирование информации для контролируемого обучения

#encoding #decode #encode #decoding #supervised-learning

Вопрос:

У меня есть пространственная структура, представляющая собой граф / сеть с узлами и ссылками. Некоторые узлы обозначены как входы, а некоторые другие-как выходы. При контролируемом обучении эта структура правильно связывает входы с выходами, т. е. входные узлы запускаются и передают сигнал по всем каналам и узлам к целевым выходам.

Действие запуска входного узла представляет собой двоичный процесс: либо входной узел активен (запуск), либо неактивен (не запускается). Аналогично, выходной узел будет активирован (срабатывает) или нет (не срабатывает). Никакие функции активации или обратного распространения не задействованы, общий механизм основан на статистической физике со слабой связью с самоорганизующейся критичностью.

Нам нужно закодировать данную проблему на одном конце (входные узлы) и декодировать решение на другом конце (выходные узлы). Предполагая, что мы хотим изучить задачу, это приведет к:

  • закодируйте задачу таким образом, чтобы мы могли запускать соответствующие входные узлы
  • расшифруйте задачу таким образом, чтобы мы могли «представлять» активированные узлы вывода

Схема, иллюстрирующая этот процесс, может быть следующей:

  1. кодирование задачи, т. е. кодирование как вопроса, так и ожидаемого результата,
  2. передайте оба закодированных вопроса результат на график,
  3. процесс обучения, т. е. правильное сопоставление закодированного вопроса с закодированным результатом,

Мы предполагаем, что для другой аналогичной задачи мы можем использовать тот же метод кодирования.

Как закодировать такую информацию и передать ее в структуру для обучения ?

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

Набор примеров, которые мы хотим закодировать для изучения:

(*) математические выражения и основные операции:

  • «2 3» и результат «5», «1/2» и результат «0.5», «(2-3)/2» и результат «-0,5» и т.д.
  • линейные и нелинейные функции, такие как «y = sqrt(x)» и «y = x^2»,
  • решение уравнений для заданной переменной
  • и т.д.

(*) строковая операция:

  • нахождение отступа заданного символа в строке,
  • проверка равенства между двумя строками,
  • и т.д.

(*) проблемы оптимизации, такие как проблема коммивояжера

(*) Другие задачи:

  • игры (m,n,k-игра),
  • сортировка массивов строк или чисел,
  • и т.д.

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