ПРОВЕДЕНИЕ ЭКСПЕРИМЕНТОВ ДЛЯ АНАЛИЗА НЕЙРОННЫХ СЕТЕЙ ТИПА НЕОКОГНИТРОН

Ю.С. Махно
Донецкий национальный технический университет

Зачетная работа по курсу «Теории и методы инженерных экспериментов». В этой работе проведено исследование, как и для чего необходимо тестировать программу-эмулятор нейронной сети типа неокогнитрон. Сдана 03 июня 2008 г.

1 Планирование

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

Цели

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

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

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

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

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

Объем

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

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

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

Сроки

Эксперименты относительно качества и скорости распознаваемости различных образов в основном будут проводиться во время последнего учебного семестра, хотя некоторые из экспериментов были уже проведены и их результаты доложены на конференции («ИАИ-2008» г. Киев 14-17 мая 2008 г.).

Для сравнения неокогнитрона с другими технологиями необходимо вначале произвести поиск программных средств реализующих соответствующие технологии, на что необходимо потратить около 15 часов.

На эксперименты для определения качественных характеристик нокогнитрона предполагается потратить около 10-20 часов. А на сравнение неокогнитрона с другими технологиями 20-30 часов. Большее время необходимое для сравнения с аналогами объясняется тем, что необходимо определить критерий сравнения.

Таким образом, общее время проведения экспериментов оценивается 45 – 65 часов.

Ожидаемый результат

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

Процент распознаваемости образов, которые были использованы для обучения неокогнитрона, должно составлять 97%, процент распознаваемости различных образов без искажений предполагается около 87% – 90%. Ожидаемый процент распознаваемости образов с простыми искажениями составляет:

  1. Изменение местоположения – 100% распознаваемость (полагается на то, что неокогнитрон нечувствителен к местоположению)
  2. Поворот – 80 – 85% (вероятны ошибки при распознавании образов повернутых более чем на 40 градусов).
  3. Хаотические шумы – около 90% (сложность при распознавании образов, где более 35% области заполнено хаотическими шумами).
  4. Масштабирование – 85%-90%.

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

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


2 Подготовка к эксперименту

Прежде чем начинать эксперименты, необходимо определить некоторые дополнительные данные. Необходимо выбрать тестовые режимы, среду тестирования и определить тестовые данные.

Выбор тестовых режимов

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

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

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

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

Тестовая среда

Процесс тестирования будет происходить в специально написанной для этого программе (Neocognitron-test). Эта программа написана с использованием технологии Microsoft .NET 2.0 и может быть запущена на любом компьютере работающим под управлением ОС Windows.

Входными данными для этой программы являются:

Выходными данными являются статистические данные:

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

Тестовые данные

Первым в наборе тестовых данных является тестируемая модель неокогнитрона, которая состоит:

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

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


3 Проведение тестов

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

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

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

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

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

Поиск ошибок

Ошибки, происходящие при тестировании, можно разделить на несколько классов – это ошибки программного обеспечения, ошибки эмулятора нейросети типа неокогнитрон Neocognitron-test, ошибки других систем моделирования, а также ошибки в распознавания тех или иных графических образов.

Ошибки программного обеспечения – это те ошибки, которые связаны с функционированием системы Windows. Методы устранения этих ошибок описаны в документации, описывающей работу с этой операционной системой.

Ошибки эмулятора нейросети типа неокогнитрон Neocognitron-test – это ошибки, допущенные при разработке данной программы или несовместимость разработанной программы с имеющимся программным обеспечением.

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

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

Ошибки в распознавания – непосредственно те ошибки, которые учитываются при построении статистических данных технологий и применяемых моделей. Заключаются в том, что мнение модели и мнение человека, о том, что находится на подаваемом образе, не сходится. Эти ошибки проявляются в момент работы программ.

Корректировка

Многие из ошибок могут быть исправлены или подкорректированы. Это не относится лишь к программам стороннего производства, то есть тип 3 ошибок.

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

При возникновении ошибок эмулятора нейросети типа неокогнитрон Neocognitron-test необходимо убедиться в наличии всех необходимых для работы компонентов. Проверить наличие полного набора файлов, узнать установлена ли необходимая для выполнения среда Microsoft .NET Framework 2.0. Если все вышеперечисленные условия выполнены, то необходимо искать ошибку в коде программы, для этого можно использовать среду разработки Microsoft Visual Studio 2005/2008. Такие ошибки довольно часто могут проявляться во время разработки программы, однако после ее окончания также маловероятны.

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


4 Протоколирование тестов

При проведении тестов необходимо фиксировать все их результаты, а также все условия, в которых проводились тесты.

Тестовая среда

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

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

Испытываемая программа

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

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

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

Тестовые варианты

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

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

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

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