Факторный код


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

Последующее обучение с учителем обычно работает намного лучше, когда необработанные входные данные сначала преобразуются в такой факторный код. Например, предположим, что конечной целью является классификация изображений с сильно повторяющимися пикселями. Наивный байесовский классификатор будет предполагать, что пиксели являются статистически независимыми случайными величинами , и поэтому не может дать хороших результатов. Однако если данные сначала закодировать факториальным способом, то наивный байесовский классификатор достигнет оптимальной производительности (ср. Schmidhuber et al., 1996).

Для создания факториальных кодов Гораций Барлоу и его сотрудники предложили минимизировать сумму битовых энтропий кодовых компонентов двоичных кодов (1989). Юрген Шмидхубер (1992) переформулировал проблему с точки зрения предикторов и детекторов бинарных признаков , каждый из которых получает необработанные данные в качестве входных данных. Для каждого детектора есть предсказатель, который видит другие детекторы и учится предсказывать выходные данные своего собственного детектора в ответ на различные входные векторы или изображения. Но каждый детектор использует алгоритм машинного обучения , чтобы стать максимально непредсказуемым. Глобальный оптимум этой целевой функциисоответствует факторному коду, представленному распределенным образом по выходам детекторов признаков.

Паинский, Россет и Федер (2016, 2017) дополнительно изучили эту проблему в контексте анализа независимых компонентов .над конечными размерами алфавита. С помощью ряда теорем они показывают, что проблема факториального кодирования может быть точно решена с помощью алгоритма дерева поиска с ветвями и границами или точно аппроксимирована серией линейных задач. Кроме того, они вводят простое преобразование (а именно, перестановку порядка), которое обеспечивает жадное, но очень эффективное приближение к оптимальному решению. Практически они показывают, что при тщательной реализации благоприятные свойства перестановки порядка могут быть достигнуты при асимптотически оптимальной вычислительной сложности. Важно отметить, что они обеспечивают теоретические гарантии, показывая, что, хотя не каждый случайный вектор может быть эффективно разложен на независимые компоненты, большинство векторов разлагается очень хорошо (то есть с небольшой постоянной стоимостью) по мере увеличения размерности. Кроме того,