Новосибирский Государственный Университет
Опубликован: 13.09.2006 | Доступ: свободный | Студентов: 2203 / 518 | Оценка: 4.52 / 4.28 | Длительность: 12:23:00
ISBN: 978-5-9556-0063-5
Специальности: Программист
Лекция 16:

Контрастирование (редукция) нейронной сети

Рекурсивное контрастирование и бинаризация

Рекурсивное контрастирование состоит в модификации параметров системы - одного за другим. Для этого параметры должны быть как-то линейно упорядочены w_1, \ldots, w_N. При модификации w_i используются модифицированные значения w_1, \ldots, w_{i-1} и немодифицированные w_{i+1}, \ldots,
w_N.

Пусть для сумматора задана обучающая выборка входных векторов x_1, 
\ldots, x_n и соответствующих выходных сигналов f_1, \ldots, f_n, а также известны значения параметров, которые реализуют сумматор: f_i = w_0 + (x^i,w). Требуется произвести бинаризацию сумматора, т.е. найти числа a,b и вектор \beta с координатами 0 или 1, чтобы значения функции \varphi(x) = a + b(x,\beta) на выборке \{x^i\} как можно меньше отличались от f_i. Критерием такого отличия будем считать H = \sum_{i=1,n}(f_i - \varphi(x^i))^2. Построим координаты вектора \beta по порядку \beta_1, \beta_2, \ldots.

Пусть построены \beta_1 ,\ldots,  \beta_{i-1}. Обозначим \beta^{0i} = (\beta_1 ,\ldots, \beta_{i-1},
0 ,\ldots, 0) (последние N - i + 1 координат - нули), \beta^{1i} = (\beta_1, \ldots, \beta_{i-1},1,0,
 \ldots, 0) (последние N - i координат - нули), \alpha^i = (0, \ldots, 0,\alpha_{i+1},\ldots) (первые i координат - нули).

Введем функции:

\begin{align*}
&\varphi_0^i(x) = a_{0i} + b_{0i}(x, \beta^{0i}) + (x, \alpha^i),\\
&\varphi_1^i(x) = a_{1i} + b_{1i}(x, \beta^{1i}) + (x, \alpha^i),\\
&H_{0i} = \sum_{j=1,n}(f_j - \varphi_0^i(x^j))^2,\\
&H_{1i} = \sum_{j=1,n}(f_j - \varphi_1^i(x^j))^2.
\end{align*}

Определим параметры a_{0i}, b_{0i}, a_{1i}, b_{1i} из условий H_{0i}
\to min, H_{1i}
\to min, минимизируя функции H_{0i} и H_{1i}. Пусть h_{0i} = min H_{0i} и h_{1i} = min
H_{1i}. Если h_{1i} \geqslant h_{0i}, то полагаем \beta_i=0, в противном случае \beta_i=1.

После того как построены все \beta_i , i = 1, \ldots, N ( N - размерность вектора данных), автоматически определяются a и b: если N = 0, то полагаем a =
a_{0N}, b = b_{0N}, иначе a = a_{1N}, b =
b_{1N}.

Если бинаризация проведена, а необходимая точность не достигнута, то можно построить второй бинаризованный сумматор, корректирующий ошибку первого --- так, чтобы в сумме они хорошо аппроксимировали работу исходного сумматора на элементах обучающей выборки. В описанной процедуре делаем замену f_i
:=
f_i - \varphi(x^i) и для этих исходных данных вновь строим бинаризованный сумматор по алгоритму рекурсивной бинаризации. Повторяем такое построение, пока не будет достигнута удовлетворительная точность. В результате получим набор бинаризованных сумматоров, которые в совокупности (т.е. в результате суммирования выходных сигналов) достаточно точно аппроксимируют исходный. При появлении весов, определяющих значимость отдельных примеров из обучающей выборки, рекурсивная бинаризация проводится точно так же, только в функциях H появляются веса.

Если требуется тем же путем упростить любой другой элемент, линейный по параметрам, F(x,w) = \sum_{i} w_{i} f_{i}(x), то вместо обучающей выборки \{ x^{j} \} берем семейство векторов \{ y^{j} \} с координатами y_i^j=f_i(x^j). После такого y_{i}^{j}=f_i(x^{j}) преобразования рассматриваемый элемент превращается в обычный сумматор, для которого последовательность действий уже описана.