Учебное пособие по курсу «Нейроинформатика»
Шрифт:
Существует много принципиально различных стратегий для применения процедуры BUMP. Поэтому обучение с ее автоматическим применением не включено в пакет CLAB. Пользователь может сам выбирать стратегию в процессе обучения.
При обучении сети пользователь может столкнуться с тупиковыми ситуациями, когда в верхней части экрана появляются сообщения "zero step" или "infinite step". В этих случаях можно порекомендовать следующие действия: применить процедуру BUMP; изменить положение курсоров; изменить веса примеров; проверить, нет ли в задачнике противоречивых примеров, например, примеров с одинаковыми входными сигналами, но относящихся к разным классам. Если в результате всех этих действий не удалось добиться
При обучении нейросети можно воспользоваться «дыроколом». Это следует делать в тех случаях, когда нейросети будут предъявляться для классификации объекты, у которых информация о некоторых входных сигналах отсутствует. Имена таких входных сигналов должны быть помечены звездочками в ptn-файле. «Дырокол» позволяет заменять у примеров задачника сигналы на этих входах нулевыми значениями. При этом для обучения предъявляются все варианты расстановки «дыр» по отмеченным входам для каждого примера. Оценка примера представляется суммой оценок по всем вариантам. Наблюдая за процессом обучения, можно заметить определенные закономерности. Распознавать часть примеров нейросеть обучается быстро. При распознавании другой части примеров нейросеть может допускать ошибки, т. е. выходные сигналы нейросети для этих примеров не всегда соответствуют указанным в задачнике. Среди последних могут быть примеры, при распознавании которых нейросеть ошибается почти постоянно. Наличие таких примеров может стать предметом специального исследования. Чтобы проиллюстрировать это, рассмотрим один конкретный пример.
Рассматриваемые ниже эксперименты были проведены американским исследователем Кори Ваксманом и подробно описаны в его работе (см. приложение).
Пакет CLAB использовался для решения задачи предсказания результата выборов президента США. Входные сигналы в этой задаче представлялись в виде ответов на 12 различных вопросов. Эти вопросы касаются экономической и политической ситуации и социальных условий во время выборов, а также личностей кандидатов на пост президента. Выходные сигналы показывали, к какой партии принадлежал победитель выборов — к партии, которая является правящей в настоящий момент, или к оппозиционной. В качестве обучающей выборки использовались результаты выборов с 1860 по 1980 годы.
В ходе обучения было обнаружено, что хуже всего нейросеть обучалась предсказывать результаты выборов 1892, 1880 и 1896 годов.
Кроме этого, были проведены следующие эксперименты. В качестве первоначальной обучающей выборки использовались примеры с результатами двух первых выборов. Примеры с последующими выборами предъявлялись нейросети для классификации. Те примеры, для которых были получены правильные выходные сигналы, включались в обучающую выборку, и вся процедура повторялась. Заканчивалась эта процедура в том случае, когда нейросеть не могла дать правильного ответа ни для одного из оставшихся примеров. В результате серии таких экспериментов были получены группы примеров. Они отличались между собой, но все они содержали те три примера, которые были выделены ранее как наиболее "труднообучаемые".
Таким образом, в ходе обучения нейросети возник вопрос: почему нейросеть упорно предсказывает для некоторых выборов не тот результат, что имел место в действительности? Этот вопрос следует, очевидно, адресовать историкам, для которых он может оказаться темой интересного исследования.
Этот пример показывает, что в процессе обучения нейросети для решения конкретной задачи могут возникать качественно новые задачи. В их основе лежат некоторые отношения между объектами исследования, которые удается установить при помощи нейросети.
Классификация объектов
После завершения процесса обучения нейросеть готова к работе.
В пакете CLAB для классификации служит программа tester. Сначала она предлагает пользователю выбрать имя файла, содержащего карту синапсов, и имя ptn-файла. Затем программа генерирует нулевые значения для входных сигналов и классифицирует такой объект. На экране, как и всякий раз после тестирования, появляется такая же картинка, как при работе программы Teacher, — крестик, соответствующий выходным сигналам, и оценки. Поскольку пример рассматривается один, а высвечиваются две оценки, поясним, как их трактовать. Красным цветом высвечивается оценка, соответствующая ситуации, в которой данный пример считается принадлежащим к классу «красных», синим цветом — к классу синих.
В нижней части экрана высвечивается указание "press any key" ("нажать любую клавишу"). После того, как пользователь нажмет любую клавишу, программа предложит ввести значения входных сигналов. При этом, как и при составлении задачника, на экране высвечиваются окно NEURON с именами входных сигналов и окно VALUE с их значениями. Кроме этого, высвечиваются еще два окна: одно с надписью "to red" ("к красным"), другое — "to blue" ("к синим"). Они предназначены для так называемых улучшателей. О том, что они собой представляют и для чего нужны, будет подробно рассказано дальше.
Значения входных сигналов, как и для задачника, вводятся в окне VALUE. После того, как всем входным сигналам присвоены нужные значения, следует нажать клавишу «пробел». Тогда программа определит класс данного объекта и представит информацию об этом в виде, описанном выше. Заметим, что если крестик попадает в левую нижнюю часть квадрата, то он изображается красным цветом, если в правую верхнюю — синим.
Ознакомившись с результатами тестирования, можно вновь перейти к вводу значений входных сигналов, нажав любую клавишу. Всю описанную здесь процедуру пользователь может повторять столько раз, сколько потребуется.
Дополнительные возможности нейросети
Как было сказано выше, после классификации объекта на экране наряду с другой информацией высвечиваются два окна — "to red" и "to blue". Каждому входному сигналу ставится в соответствие по числу в каждом из этих окон. Эти числа могут принимать значения в интервале [-1,1]. Таким образом, в этих двух окнах выводятся на экран два вектора. Каждый из них имеет такую же длину, как и вектор входных сигналов. Эти векторы называются улучшателями и представляют собой антиградиенты по входным сигналам. Изменение входных сигналов по указанному таким вектором направлению приводит к улучшению соответствующей оценки. Если изменить значения входных сигналов в направлении, указанном в окне "to red", то улучшится оценка, высвечиваемая красным цветом. Если же изменить значения входных сигналов согласно окну "to blue", то улучшится «синяя» оценка.
Таким образом, один из улучшателей показывает, как можно улучшить оценку объекта, оставив его в том же классе, в который он попал после тестирования. Другой улучшатель показывает, какими воздействиями можно попытаться перевести объект в другой класс.
Кроме этого, для каждого объекта при помощи улучшателей можно сортировать входные сигналы по степени их важности. Для этого после тестирования объекта нужно сравнить абсолютные значения компонент улучшателя. Чем больше такое значение, тем важнее соответствующий ему входной сигнал. При этом улучшатель из окна "to red" позволяет получить сортировку входных сигналов по степени их важности для улучшения «красной» оценки, а из окна "to blue" — "синей".