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