Е. Миркес - Учебное пособие по курсу «Нейроинформатика»
Рассматриваемые ниже эксперименты были проведены американским исследователем Кори Ваксманом и подробно описаны в его работе (см. приложение).
Пакет 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" — "синей".
Знак компоненты улучшателя показывает, в какую сторону следует изменить значение соответствующего входного сигнала. Знак "+" означает увеличить, «-» — уменьшить.
Возможность получить такую сортировку входных сигналов является важным свойством пакета CLAB и может иметь большое значение для ряда практических задач. Покажем это на примере задачи выборов президента США.
В результате решения этой задачи можно оценить шансы на победу в выборах каждого кандидата. Кроме этого, можно определить, какие действия следует предпринять в первую очередь каждой партии, чтобы по возможности обеспечить победу своего кандидата.
Допустим, что программа предсказывает победу кандидата от правящей партии, но оценка при этом является недостаточно хорошей. Возникает вопрос: какие действия следует предпринять правящей партии во время предвыборной кампании, чтобы упрочить положение своего кандидата?
Очевидно, следует ознакомиться с сортировкой вопросов, которая получена при помощи улучшателя соответствующего цвета (т. к. в демонстрационном примере правящей партии сопоставлен красный цвет, то это улучшатель из окна "to red").
Заметим, что в данной задаче лишь часть вопросов допускает, что в результате некоторых действий можно изменить ответы на них. Другие вопросы, которые допускают лишь предопределенные ответы (например, вопрос о том, получила ли правящая партия более 50 % голосов избирателей на прошлых выборах), рассматривать не будем.
Пусть самым важным из рассматриваемых является вопрос о том, была ли серьезная конкуренция на предварительных выборах кандидата от правящей партии. При этом наличие такой конкуренции является плохим фактором для правящей партии. Отсюда следует, что правящая партия должна так строить свою предвыборную политику, чтобы у ее кандидата не было конкурентов внутри партии.
Изменив в нужную сторону значение соответствующего входного сигнала, можно сразу протестировать новый вектор входных сигналов и посмотреть, как изменится оценка.
В данной ситуации возникает и другой вопрос: что предпринять оппозиционной партии, чтобы сделать возможной победу своего кандидата? Ответ на этот вопрос можно получить, ознакомившись с сортировкой вопросов, полученной при помощи другого улучшателя (в данном случае из окна "to blue"). Допустим, что наиболее важным является вопрос о том, была ли активной деятельность третьей партии в год выборов. В этом случае оппозиционной партии имеет смысл финансировать третью партию для повышения ее активности.
Этот пример наглядно показывает, насколько полезной является возможность выяснить, какие вопросы более важны для достижения заданной цели.
Инструкции пользователю по работе с пакетом CLAB
Инсталляция
Пакет CLAB поставляется на дискете в виде саморазархивирующегося файла с именем clab.exe. Для того, чтобы подготовить пакет к работе, нужно выполнить следующие действия.