Книга: Учебное пособие по курсу «Нейроинформатика»

Обучение работе с пакетом clab на демонстрационной задаче

Обучение работе с пакетом clab на демонстрационной задаче

Работа с пакетом CLAB состоит из следующих шагов:

1) создание ptn-файла;

2) создание задачника;

3) создание нейросети;

4) обучение нейросети;

5) тестирование.

Для этих шагов (кроме первого) в пакете имеются соответствующие программы. Чтобы помочь пользователю приобрести основные навыки работы с этими программами, в пакет включена демонстрационная задача «Выборы президента США».

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

Для данного примера имеются готовые ptn-файл (elect.ptn) и задачник (elect.pbl). Поэтому воспользуемся ими и начнем работу сразу с генерации сети. Вопросы, связанные с созданием ptn-файла и задачника, обсудим позже.

Чтобы создать нейросеть, нужно запустить программу netgener. Эта программа позволяет создать файл для хранения карты синапсов (назовем его test.map) и ввести значения параметров нейросети. Условимся, что в нашей задаче создавать этот файл будем в текущей директории.


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

Далее следует нажать клавишу «пробел». Это означает, что пользователь будет создавать файл в текущей директории, поэтому программа предложит ввести имя файла. На экране появится сообщение


Имя файла следует набирать, начиная с позиции, на которую установлен курсор, т. е. в последней строке сообщения после двоеточия.

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


После того, как пользователь укажет имя файла, сообщение на экране будет иметь вид

Для ввода имени файла следует нажать клавишу "Enter".

После этого программа переходит к вводу с экрана параметров сети. На экране появляется сообщение


Тем самым пользователю предлагается указать количество нейронов в создаваемой сети. Число 64 во второй строке — это максимальное допустимое количество нейронов.

Для рассматриваемой задачи рекомендуем указать число нейронов, равное 14. Это число есть сумма 12 входных нейронов (по числу входных сигналов) и 2 выходных нейронов.

Набирать на экране значения всех параметров нейросети, которые будут вводиться в программе netgener, следует с позиции, на которую установлен курсор. Для ввода параметров следует нажимать клавишу «Enter». Эти действия повторяются постоянно при вводе значения очередного параметра, запрашиваемого программой. Поэтому ниже мы не будем каждый раз их особо оговаривать, полагая, что пользователь будет их выполнять.

После ввода числа нейронов программа запрашивает значение следующего параметра, и на экране появляется сообщение


Значение параметра TIME указывает число тактов времени от получения входных сигналов до выдачи результата. Число 10 является максимально возможным значением этого параметра. Для рассматриваемой задачи следует ввести значение параметра TIME, равное 3.

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

Перечислим эти сообщения в порядке их появления на экране, пояснив каждое из них.

После ввода параметра TIME программа запрашивает значение для параметра характеристической функции. На экране высвечивается сообщение


Далее следует сообщение


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


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

После этого работа программы netgener закончена. В результате в текущей директории создан файл test.map, в котором содержится карта синапсов для необученной нейросети.

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


Как упоминалось выше, в нашей задаче мы полагаем, что все файлы, необходимые для работы, содержатся в текущей директории. Поэтому для указания имени нужного нам файла (test.map) следует установить курсор на экране на имя этого файла, а затем нажать клавишу «пробел» или клавишу "Enter".

Далее программа просит указать имя ptn-файла. На экране высвечиваются надпись "Choose pattern File" и имена файлов с расширением. ptn, содержащихся в текущей директории.


Для нашей задачи нужно указать файл elect.ptn. Выбор ptn-файла, а затем и выбор задачника осуществляются точно так же, как и выбор файла с картой синапсов.

Для выбора задачника на экране высвечиваются надпись "Choose problembook" и имена файлов с расширением. pbl из текущей директории.


Для данной задачи нужно указать файл с именем elect.pbl.

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

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

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

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

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

Пользователь должен сам определить, когда закончить процесс обучения. В качестве критерия для этого можно использовать значение средней оценки. Для данной задачи обучение можно заканчивать, когда средняя оценка принимает значение порядка 0,01.

Для того, чтобы закончить обучение и выйти из программы teacher, следует нажать клавишу «Esc». При этом в файле test.map сохранится карта синапсов для обученной нейросети.

Теперь, наконец, можно приступать к тестированию. Оно для рассматриваемой задачи заключается в следующем. Нужно ответить на 12 вопросов. Ответы кодируются следующим образом: 1 — да, –1 — нет, 0 — не знаю. Обученная нейросеть определит, кандидат от какой партии одержит победу в выборах. Правящей партии соответствует красный цвет, оппозиционной — синий.

Ответы на вопросы можно выбрать произвольно, но гораздо интереснее протестировать реальную ситуацию, например, определить, кто победит в выборах 1992 года — Буш или Клинтон.

Для тестирования нужно запустить программу tester. Программа предложит указать имя файла с картой синапсов, а затем имя ptn-файла. Это делается точно так же, как и при работе с программой teacher, поэтому здесь мы не будем описывать эту процедуру.

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

после тестирования, описана в разделе "Классификация объектов". Заметим, что для примера с нулевыми входнымы сигналами крестик на экране будет располагаться в центре квадрата, а значения оценок (красной и синей) совпадут.

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

После нажатия любой клавиши на экране, как было рассказано ранее, высвечиваются окно NEURON с именами входных сигналов (они считываются из ptn-файла), окно VALUE со значениями входных сигналов и два окна с улучшателями ("to red" и "to blue").

Press F1 for Help 1 — 'Да', –1 — 'Нет', 0 — 'Не знаю'.

Neuron Value to red to blue
Правящая партия была у власти более 1 срока? 1.000 -1.000 1.000
Правящая партия получила больше 50% на прошлых выборах? 1.000 0.651 -0.651
В год выборов была активна третья партия? 1.000 -0.425 0.425
Была серьезная конкуренция при выдвижении от правящей партии? -1.000 -0.586 0.586
Кандидат от правящей партии был президентом в год выборов? 1.000 0.116 -0.116
Был ли год выборов временем спада или депрессии? -1.000 -0.250 0.250
Был ли рост среднего нац. валового продукта на душу населения > 2.1%? 0.000 0.530 -0.530
Произвел ли правящий президент существенные изменения в политике? 1.000 0.404 -0.404
Во время правления были существенные социальные волнения? 1.000 -0.549 0.549
Администрация правящей партии виновна в серьезной ошибке/скандале? -1.000 -0.280 0.280
Кандидат правящей партии — национальный герой? -1.000 0.184 -0.184
Кандидат оппозиционной партии — национальный герой? -1.000 -0.323 0.323

Для нашей задачи число входных сигналов равно 12. Их имена представляют собой тексты вопросов. Ответы на них нужно ввести в окне VALUE, закодировав, как было указано выше (заметим, что в верхней строке экрана для этого высвечивается подсказка).

Итак, выбрав вариант ответа на каждый вопрос, т. е. значение соответствующего входного сигнала, можно приступать к их вводу. Для этого нужно нажать клавишу «Enter». Тогда в окне VALUE в строке, на которой был установлен курсор при просмотре, появится мигающий курсор. Это говорит о том, что указанное курсором значение входного сигнала можно редактировать. Для этого нужно набрать значение входного сигнала и для его ввода нажать клавишу «Enter». В результате это значение будет введено, и курсор переместится в следующую строку окна VALUE. Тогда точно так же можно редактировать входной сигнал в этой строке и т. д.

Выход из режима редактирования происходит автоматически после того, как введен самый последний входной сигнал. Если нужно выйти из режима редактирования раньше, то следует нажать клавишу «Esc». После выхода из режима редактирования мигающий курсор исчезнет. Заметим, что редактировать в программе tester можно только содержимое окна VALUE.

После того, как все значения входных сигналов введены, можно протестировать этот пример. Для этого нужно нажать клавишу «пробел». На экране появится результат тестирования. Цвет крестика показывает, кандидат от какой партии имеет больше шансов на победу в выборах. Расстояние от крестика до курсора соответствующего цвета показывает, насколько вероятна победа этого кандидата. Если крестик находится вблизи центра квадрата, то оба кандидата имеют примерно равные шансы на победу. Чем ближе оказывается крестик к курсору соответствующего цвета, тем больше уверенность, с которой можно предсказать победу этого кандидата.

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

Если пользователь хочет определить победителя выборов 1992 года, то ему нужно ввести такие ответы на вопросы, которые соответствуют политической и экономической ситуации в данный момент. Интересно пронаблюдать, как изменялись за последнее время шансы Буша на победу в выборах в зависимости от изменения политической ситуации. До событий в Лос-Анджелесе нейросеть уверенно предсказывала победу Буша. После этих событий (ответ на вопрос о том, были ли значительные социальные волнения, изменился с отрицательного на положительный) преимущество Буша стало совсем незначительным. Наконец, после появления независимого кандидата на пост президента (этот факт можно трактовать как рост активности третьей партии) нейросеть предсказывает поражение Буша и победу Клинтона.

Отметим, что в программе tester для помощи пользователю при редактировании входных сигналов имеется Help.Чтобы получить его, нужно нажать клавишу «F1». После этого на экране появляется таблица, в которой перечислены возможности пользователя при работе с программой tester.


Сделаем небольшие пояснения к этой таблице. Клавиши со стрелками «вверх» и «вниз» используются для передвижения курсора в окне VALUE только при просмотре. В режиме редактирования перемещать курсор этими клавишами из одной строки в другую нельзя, можно лишь пользоваться клавишами со стрелками «влево» и «вправо» для передвижения курсора в соответствующем направлении.

При редактировании значений входных сигналов используются клавиши с цифрами от 0 до 9, а также клавиши "+", «-», "BkSp" и «Del». Пользоваться ими следует точно так же, как и при работе с любым стандартным редактором.

Клавиша «Enter», как было сказано выше, используется для перехода из режима просмотра в режим редактирования, а также при работе в режиме редактирования для ввода каждого отредактированного значения.

Для перехода из режима редактирования в режим прсмотра используется клавиша «Esc», для тестирования — клавиша "пробел".

Чтобы вернуться к работе после просмотра таблицы Help, достаточно нажать любую клавишу. Заметим, что получить Help, нажав клавишу «F1», можно только в режиме просмотра значений входных сигналов.

Для выхода из программы tester нужно одновременно нажать клавиши «Ctrl» и "Q".

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

Оглавление книги


Генерация: 2.298. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз