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

Лекция 9: Логически прозрачные нейронные сети и производство явных знаний из данных

< Лекция 8 || Лекция 9: 123

Процедура контрастирования

Процедура контрастирования основана на оценке значимости весов связей в сети. Впервые процедура контрастирования нейронных сетей на основе показателей чувствительности описана одновременно в [9.1] и (существенно более частный вариант) в [9.2]. В книге [9.1] указаны основные цели контрастирования: упростить техническую реализацию сети и сделать навык сети более понятным - явизовать (сделать явным) знание, полученное сетью в ходе обучения.

Результаты экспериментов по контрастированию нейронных сетей опубликованы в [9.7, 9.8]. Существуют также подходы, не использующие показатели чувствительности [9.3]. Уже в [9.1] описано несколько способов вычисления показателей чувствительности. Приведем два наиболее широко используемых.

Контрастирование на основе оценки

Рассмотрим сеть, правильно решающую все примеры обучающего множества. Обозначим через w_p ,{\rm{ }}p = 1, \ldots ,n веса всех связей. При обратном функционировании сети по принципу двойственности или методу обратного распространения ошибки сеть вычисляет вектор градиента функции оценки H по весам связей - Grad(H) = \left\{ {{{\partial H} \mathord{\left/ {\vphantom {{\partial H} {\partial w_p }}} \right. \kern-\nulldelimiterspace} {\partial w_p }}} \right\}_{p = 1,K,n} . Пусть w^0 - текущий набор весов связей, а оценка текущего примера равна H^0 . Тогда в линейном приближении можно записать функцию оценки в точке w как H(w) = H^0  + \sum\limits_{p = 1}^n {\frac{{\partial H}}{{\partial w_p }}} (w_p  - w_p^0 ). Используя это приближение можно оценить изменение оценки при замене w_p^0 на как \chi (p,q) = \left| {\frac{{\partial H}}{{\partial w_p }}} \right| \cdot \left| {w_p^*  - w_p^0 } \right|, где q - номер примера обучающего множества, для которого были вычислены оценка и градиент. Величину \chi (p,q) будем называть показателем чувствительности к замене w_p на w_p^* для примера q . Далее необходимо вычислить показатель чувствительности, не зависящий от номера примера. Для этого можно воспользоваться любой нормой. Обычно используется равномерная норма (максимум модуля): \chi (p) = \mathop {\max }\limits_q \chi (p,q). Умея вычислять показатели чувствительности, можно приступать к процедуре контрастирования.

Приведем простейший вариант этой процедуры:

  1. Вычисляем показатели чувствительности.
  2. Находим минимальный среди показателей чувствительности - \chi_{p^* } .
  3. Заменим соответствующий этому показателю чувствительности вес w_{p^* }^0 на w_{p^* }^* , и исключаем его из процедуры обучения.
  4. Предъявим сети все примеры обучающего множества. Если сеть не допустила ни одной ошибки, то переходим ко второму шагу процедуры.
  5. Пытаемся обучить отконтрастированную сеть. Если сеть обучилась безошибочному решению задачи, то переходим к первому шагу процедуры, в противном случае переходим к шестому шагу.
  6. Восстанавливаем сеть в состояние до последнего выполнения третьего шага. Если в ходе выполнения шагов со второго по пятый был отконтрастирован хотя бы один вес, (число обучаемых весов изменилось), то переходим к первому шагу. Если ни один вес не был отконтрастирован, то получена минимальная сеть.

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

Контрастирование без ухудшения

Пусть нам дана только обученная нейронная сеть и обучающее множество. Допустим, что вид функции оценки и процедура обучения нейронной сети неизвестны. В этом случае так же возможно контрастирование сети. Предположим, что данная сеть идеально решает задачу. Тогда нам необходимо так отконтрастировать веса связей, чтобы выходные сигналы сети при решении всех задач изменились не более чем на заданную величину. В этом случае контрастирование весов производится понейронно. На входе каждого нейрона стоит адаптивный сумматор, который суммирует входные сигналы нейрона, умноженные на соответствующие веса связей. Для нейрона наименее чувствительным будет тот вес, который при решении примера даст наименьший вклад в сумму. Обозначив через x_p^q входные сигналы рассматриваемого нейрона при решении q -го примера получаем формулу для показателя чувствительности весов: \chi (p,q) = \left| {\left( {w_p  - w_p^* } \right) \cdot x_p^q } \right|. Аналогично ранее рассмотренному получаем \chi (p) = \left| {\left( {w_p  - w_p^* } \right)} \right| \cdot \mathop {\max }\limits_q \left| {x_p^q } \right|. В самой процедуре контрастирования есть только одно отличие - вместо проверки на наличие ошибок при предъявлении всех примеров проверяется, что новые выходные сигналы сети отличаются от первоначальных не более чем на заданную величину.

< Лекция 8 || Лекция 9: 123