Нейроинформатика

Тестирование примеров


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

  1. Проверка того, как обучилась нейросеть;
  2. Решение конкретных задач.
  3. Моделирование.

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

  1. Выборка, по которой обучалась нейросеть, недостаточно полно отражает картину соответствия ответов обучающим параметрам, иначе говоря, в обучающей выборке слишком мало примеров.
  2. Выборка, по которой обучалась нейросеть, составлена тенденциозно. Это означает, что для обучения подбирались примеры, которые, по мнению исследователя, "являются самыми яркими представителями своего класса или группы". Это серьезная ошибка. При такой выборке, конечно, нейросеть будет обучаться намного лучше, но способность ее к тестированию других примеров существенно падает. В действительности необходимо обучать сеть на реальных данных, какими бы они противоречивыми ни были. Если сеть не сможет обучиться полностью, можно применить некоторые меры, которые будут рассмотрены ниже.
  3. Обучающая выборка имеет недостаточное количество обучающих параметров и сеть не может найти закономерности между входными сигналами и ответами.
  4. При создании сети не оптимально были выбраны некоторые сетевые параметры, например, число нейронов, число тактов функционирования или характеристика сети.
    Ниже мы подробно остановимся на методологии оптимального выбора этих значений.
  5. Задана неверная классификационная модель (при обучении нейросетей - классификаторов). Возможно, на самом деле примеры группируются в 3 класса, а пользователь задает только 2. Далее будет рассмотрен метод коррекции классификационной модели.


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

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

КУ = (Max1-Max2) / R x 100%, (2)

где Max1 - ответ выходного нейрона, отвечающего за класс-"победитель", Max2 - ответ выходного нейрона, выдавшего следующий по максимальной величине сигнал, R - уровень надежности. Судя по формуле ясно, что уверенность сети зависит от того, насколько наибольший из выходных сигналов превышает второй по величине сигнал. Естественно, если КУ получается более 100%, он приравнивается к этому числу. Из того, что в знаменателе правой части формулы стоит уровень надежности, следует, на первый взгляд, парадоксальный вывод: сеть, обученная лучше (уровень надежности больше) даст меньшую уверенность в ответе, чем сеть, обученная хуже. Однако при внимательном рассмотрении проблемы делается ясно, что при тестировании примера первой сетью, выражение, стоящее в числителе, также будет больше (ответ одного нейрона будет намного больше ответа другого) вследствие лучшей обученности. Кроме того, КУ выражает все же уверенность конкретной сети, которая во многом зависит от того, насколько тестируемый пример близок к примерам, на которых обучалась эта сеть.



Если пример отличается достаточно сильно, лучше обученная сеть будет и сомневаться больше, чем сеть с меньшим "опытом".

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

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

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


Содержание раздела