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

       

Тактика обучения.


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

Первое, что необходимо сделать - проверить корректность заданных параметров нейросети. Самая простая причина - недостаточное количество нейронов, малая плотность или слишком высокая характеристика. Если же все параметры заданы оптимально, можно применить специальное средство, называемое "удар".

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

x = x 0 + B * (Random - 0,5) (4)

где x - новое значение синаптического веса, x0 - исходное значение синаптического веса, B - заданный уровень удара (в диапазоне 0..1), Random - случайно сгенерированное для данного синаптического веса число (в диапазоне 0..1).

После удара обучение продолжается. Проведенные эксперименты показывали, что особенно эффективен удар у сетей с адаптивной матрицей входных сигналов. Задание оптимального уровня удара вручную может потребовать некоторого опыта пользователя. Для этого желательно наблюдать за динамикой снижения средней оценки на протяжении нескольких десятков циклов до момента остановки обучения. Если за этот период оценка снижалась быстро, лучше задавать уровень удара в пределах 0,1-0,2. Если оценка на протяжении многих циклов "зависла" около какого-либо значения, следует задать небольшой уровень удара (0,0001 - 0,001). Задание максимального уровня удара (1,0) практически полностью обновляет карту весов, что равнозначно инициализации новой сети.


Частое применение удара небольшого уровня может быть полезным для создания помехоустойчивых нейросетей.

В разработанных нами нейросетевых программах используется как ручной, так и автоматический режимы удара. В последнем случае после остановки обучения программа производит удар и продолжает обучение. Только если после трех (или количества, определенного пользователем) попыток удара обучение по-прежнему невозможно, программа останавливает процесс.

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

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

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


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

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

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


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