Опубликован: 01.03.2007 | Доступ: свободный | Студентов: 1393 / 121 | Оценка: 4.58 / 4.39 | Длительность: 20:15:00
Специальности: Программист
Лекция 6:

Погрешности в нейронных сетях

Метод обратного распространения точности для анализа реализуемости сетей с собственными погрешностями элементов

Ранее был рассмотрен метод обратного распространения точности с учетом собственных погрешностей элементов сети. Но этот метод может быть использован не для всех сетей. При применении метода может возникнуть ситуация, когда собственная погрешность элемента превышает погрешность сигнала, который должен выходить из этого элемента. Например, если собственная погрешность нейрона \varepsilon_\varphi  , которая добавляется к выходному сигналу нейрона, превышает допустимую погрешность его выходного сигнала \varepsilon_1 , то по формуле \varepsilon \le (\varepsilon_1 - \varepsilon_\varphi  )/|\varphi '(A)|, где \varepsilon - погрешность входного сигнала нелинейного преобразователя, получаем отрицательную погрешность. Отрицательные погрешности в методе обратного распространения точности не имеют смысла, так как мы рассматриваем допустимую погрешность как величину интервала, в котором может изменяться погрешность. То же самое можно сказать относительно точки ветвления и сумматора. В случае получения отрицательной погрешности метод обратного распространения точности не может применяться. В такой ситуации допустимые погрешности нужно распределять специальным образом.

Рассмотрим конкретную сеть с заданными собственными погрешностями элементов. Нужно определить, возможно ли провести вычисления допустимых погрешностей методом обратного распространения точности с учетом собственных погрешностей элементов для всех сигналов сети, начиная с выходных и кончая входными сигналами. Для этого нужно выполнить прямое функционирование сети с заданными собственными погрешностями элементов и с точным вектором входных сигналов сети. Если полученный вектор выходных сигналов при этом будет отличаться от точного вектора выходных сигналов более, чем на \delta (допустимую погрешность выходных сигналов сети), то с такими собственными погрешностями элементов для данной сети метод обратного распространения точности невыполним. В этом случае можно либо увеличить допустимую погрешность выходных сигналов \delta , либо уменьшить собственные погрешности элементов.

Нам нужно определить, как вычислять допустимые погрешности сигналов, если это невозможно сделать методом обратного распространения точности. Выясним, всегда ли возможно распределить их так, чтобы собственные погрешности элементов не превышали допустимых погрешностей выходных сигналов этих элементов, и при этом погрешность выходных сигналов сети не превышала \delta.

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

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

Есть ситуации, на которые влиять невозможно. К ним относятся следующие:

  1. если собственные погрешности нелинейного преобразователя или сумматора стандартных нейронов выходного слоя сети превышают погрешности их выходных сигналов;
  2. если в выходном слое сумма с коэффициентами \alpha_i собственных погрешностей элементов \varepsilon_i^{own}, выходные сигналы которых являются входными сигналами сумматора, превышает допустимую погрешность \varepsilon выходного сигнала сумматора: \Sigma_{i = 1}^n \alpha_i \cdot \varepsilon_i^{own} > \varepsilon.

Если собственная погрешность превышает допустимую погрешность выходного сигнала у элемента скрытого или входного слоя, то можно попытаться распределить допустимые погрешности так, чтобы продолжить вычисления.

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

Рассмотрим участок сети между двумя сумматорами \Sigma_1 и \Sigma_2 ( рис. 6.9). Пусть \varepsilon - это погрешность выходного сигнала сумматора \Sigma_2 , A - точный выходной сигнал нелинейного преобразователя.


Рис. 6.9.

Предположим сначала, что собственные погрешности элементов добавляются к выходным сигналам этих элементов. То есть погрешность входного сигнала нелинейного преобразователя вычисляется по формуле \varepsilon \le (\varepsilon_1 - \varepsilon_\varphi  )/|\varphi '(A)|, а для точки ветвления погрешность входного сигнала определяется как \varepsilon = \min \{\varepsilon_i - \varepsilon_{tv}\}_{i = 1}^n.

Для каждого входа сумматора \Sigma_2 нам необходимо вычислить такие допустимые погрешности, которые позволили бы провести вычисления допустимых погрешностей для точки ветвления, нелинейного преобразователя и сумматора \Sigma_1 предыдущего слоя. При этом допустимая погрешность выходного сигнала сумматора \Sigma_1 должна превышать его собственную погрешность. Это гарантирует вычисление допустимых погрешностей для слоя, предшествующего сумматору \Sigma_1.

Пусть сумматор \Sigma_1 имеет собственную погрешность \varepsilon_{\Sigma_1 }, нелинейный преобразователь имеет собственную погрешность \varepsilon_\varphi  и \varepsilon_{tv} - собственная погрешность точки ветвления.

Вычислим погрешность \varepsilon^{part}, которая придет к входу сумматора \Sigma_2 при прямом функционировании сети, начиная от выходного сигнала сумматора \Sigma_1.

\varepsilon^{part} = \varepsilon_{\Sigma_1 }\cdot |\varphi '(A)| + \varepsilon_\varphi + \varepsilon_{tv}.

Вычисляем допустимые погрешности \varepsilon_i для входов сумматора \Sigma_2 при пропорциональном и равномерном распределении. Если хотя бы для одного распределения по каждому входу \varepsilon_i^{part} < \varepsilon_i , то можно продолжать вычисления, используя метод обратного распространения точности с учетом собственных погрешностей элементов сети. Если же для обоих распределений хотя бы по одному входу \varepsilon_i^{part} > \varepsilon_i , то необходимо распределять допустимые погрешности по входам сумматора \Sigma_2 следующим образом.

Если сумма с коэффициентами \alpha_i погрешностей \varepsilon_i^{part} меньше допустимой погрешности выходного сигнала ( \Sigma_{i = 1}^n \alpha_i \cdot \varepsilon_i^{part} < \varepsilon ), то вычисляем разность \Sigma_{i = 1}^n \alpha_i \cdot \varepsilon_i^{part}- \varepsilon. Оставшуюся часть допустимой погрешности выходного сигнала сумматора \varepsilon распределяем равномерно по всем входам, чтобы допустимые погрешности входов превышали погрешности элементов на одну и ту же величину \xi . Тогда

\Sigma_{i = 1}^n \alpha_i \cdot (\varepsilon_i^{part}+ \xi ) = \varepsilon \Rightarrow \xi = (\varepsilon - \Sigma_{i = 1}^n \alpha_i \cdot \varepsilon_i^{part})/\Sigma_{i = 1}^n \alpha_i.

Допустимые погрешности входных сигналов сумматора будут равны \varepsilon_i = \varepsilon_i^{part}+ \xi.

Пусть теперь собственные погрешности элементов добавляются к их входным сигналам. Допустимая погрешность входного сигнала нелинейного преобразователя при этом вычисляется следующим образом: \varepsilon \le \varepsilon_1 /|\varphi '(A)| + \varepsilon_\varphi. Собственная погрешность сумматора \Sigma_1 равна \Sigma_{i = 1}^n |\alpha_i | \cdot \varepsilon_{\Sigma_1 }^i. Допустимая погрешность точки ветвления вычисляется как было описано выше.

В этом случае погрешности \varepsilon_i^{part} вычисляются по формуле:

\varepsilon_i^{part} = (\varepsilon_{\Sigma_1 }\cdot \Sigma_{i = 1}^n |\alpha_i | - \varepsilon_\varphi  ) \cdot |\varphi '(A)| + \varepsilon_{tv}.

Остальные вычисления для допустимых погрешностей \varepsilon_i входных сигналов сумматора \Sigma_2 проводятся аналогично.

Возможен другой подход. Можно вычислять погрешности \varepsilon_i^{part} для всей сети сразу. Погрешности \varepsilon_i^{part}, вычисленные для одного слоя сети, суммируются с коэффициентами \alpha_i того сумматора, через который они должны проходить. Полученная погрешность используется дальше для вычисления погрешности \varepsilon_i^{part} следующего слоя. При обратном прохождении сети для входов каждого сумматора будет известно, какие погрешности \varepsilon_i^{part} приходят по каждому входу, и как следует распределять допустимые погрешности сигналов. При этом погрешности \varepsilon_i^{part} вычисляются один раз и не требуется делать пересчет.

Таким образом, мы рассмотрели как распределяются допустимые погрешности сигналов для сетей с собственными погрешностями элементов. Используется встречное распространение погрешностей \varepsilon_i^{part}, которые насчитываются при прямом функционировании сети, и допустимых погрешностей сигналов, которые вычисляются в обратном направлении.

Владимир Скарин
Владимир Скарин
Австралия
Сергей Смирнов
Сергей Смирнов
Россия, Нижний Новгород, ННГАСУ, 2007