Разработка программного обеспечения, которое позволит восстанавливать параметры неоднородностей по результатам электромагнитных измерений - Дипломная работа
Задача неразрушающего контроля. Математическая модель нейронной сети, ее виды. Программное обеспечение для определения параметров неоднородности в материале. Основные алгоритмы и оптимизации. Эксперименты с персептроном и выбор оптимальных коэффициентов.
Аннотация к работе
1.1.2 Общие представления о системе 1.2 Задача неразрушающего контроля 1.3 Искусственные нейронные сети 1.3.2 Математическая модель нейронной сети. Программное обеспечение для определения параметров неоднородности в материалеМикроволновое распознавание образов является важной технологией неразрушающего контроля и тестирования благодаря ее потенциальным функциональным возможностям во многих приложениях, таких как контроль спекания материалов, распознавание дефектов и трещин в конструкционных материалах, композитных панелях, деревянных плитах и многих других объектах. Указанная задача относится к классу обратных задач, представляющих повышенную сложность при их решении. Но изза высоких температур и ограниченности внутреннего пространства применение этих техник для закрытых систем, используемых в процессе СВЧ обработки материалов, вызывает значительные трудности в измерении параметров среды. В данной работе разрабатывается программное обеспечение, которое позволит отработать технологию мониторинга внутренней структуры материалов при СВЧ обработке.В подобной ситуации подбор весовых коэффициентов должен быть организован так, чтобы фактические выходные сигналы нейрона yi принимали бы значения, как можно более близкие к ожидаемым значениями di. При обучении без учителя на этапе адаптации нейрона мы не можем прогнозировать его выходные сигналы, тогда как при обучении с учителем результат обучения предопределен заранее благодаря априори заданным обучающим выборкам [6]. Из приведенных выше рассуждений следует, что каждый нейрон можно считать своеобразным процессором: он суммирует с соответствующими весами сигналы, приходящие от других нейронов, выполняет нелинейную (например, пороговую) решающую функцию и передает результирующее значение связанным с ним нейронам. Это обучение гетероассоциативного типа, при котором каждой обучающей выборке, представляемой вектором x, априори поставлено в соответствие ожидаемое значение di на выходе i-го нейрона. Функция f(ui) является сигмоидальной, x - это входной вектор, x=[x0, x1, …, XN]T со значением х0 = 1 при наличии поляризации и х0 = 0 при ее отсутствии, а di - соответствующее ему ожидаемое значение на выходе i-го нейрона.Был проведен следующий тест: нейронная сеть (2 входа, 8 нейронов на промежуточном слое, 1 выход), в качестве обучающего множества функция xor. Вся работа с матрицами вынесена на уровень работы с объектами типа Matrix. Класс предоставляет набор полей и методов, удобных для работы с матрицами, он имеет перегруженные операторы арифметических действий, что позволяет работать с объектами в привычной форме. Умножение матриц через оператор «*» производится в один поток, для запуска двупоточного умножение используется отдельный метод, представленный ниже. Аппаратное обеспечение для тестирования было следующим, в качестве одноядерной платформы был использован процессор AMD Athlon 64 3000 , более детальная информация представлена на рисунке 23.В результате выполнения дипломной работы было написано приложение, которое позволяет восстанавливать параметры неоднородности по результатам электромагнитных измерений. Решение данной задачи выполняется с помощью ИНС, создавать, настраивать и обучать которую позволяет ПО.Главное окно программы представляет собой MDI форму, внутри которой открываются все остальные формы и диалоговые окна. Так же возможно выбрать тип «Набор данных», для правильной работы нейронных сетей необходимы все три набора данных: · тренировочные - это данные, на которых происходит обучение из всех наборов, этот наиболее большой, т.е. для обучения необходимо большое множество данных; · тестовые - этот набор обычно используется при обучении персептрона, сам набор непосредственно не учувствует в обучении, но на этом наборе считается ошибка при каждой итерации. · контрольные - этот набор данных используется уже для контроля обученности сети, и на нем проверяется работа ИНС уже после всего обучения. Назначить можно либо в этой вкладке, тогда обработчик будет назначен только этим данным или воспользоваться формой (рисунок 41) «Обработка данных» установив там опцию «Применить ко всем наборам», тогда обработчик будет назначен на все наборы.
План
Содержание
ВВЕДЕНИЕ
1. Неразрушающий контроль. Реконструкция параметров неоднородностей в материале
1.1 Описание предметной области
Введение
1.1.2 Общие представления о системе
1.1.3 Практическое применение
1.2 Задача неразрушающего контроля
1.3 Искусственные нейронные сети
1.3.1 Общие понятия. Биологический нейрон
1.3.2 Математическая модель нейронной сети. Виды нейронных сетей
1.4 Обоснование выбора метода
2. Программное обеспечение для определения параметров неоднородности в материале
2.1 Постановка задачи
2.2 Анализ существующих решений. Выбор программной платформы
2.3 Описание объектной модели
2.3.1 Общая структура приложения
2.3.2 Описание структуры модулей расширения
2.4 Основные алгоритмы и оптимизации
2.4.1 Сигмоидальный нейрон. Концепция управления потоками
2.4.2 Улучшение сходимости и ускорение обучения нейронной сети
3.1 Эксперименты с персептроном и выбор оптимальных коэффициентов
3.2 Сравнение результатов работы РБФ и Персептрона
Вывод
В ходе экспериментов было выяснено, что генетические алгоритмы в качестве основного обучающего алгоритма не подходят. Но возможно использование для начальной инициализации весов.
Был проведен следующий тест: нейронная сеть (2 входа, 8 нейронов на промежуточном слое, 1 выход), в качестве обучающего множества функция xor.
Таблица 2.
Данные для обучения ИНС.
X1 X2 Y1
0 0 0
1 0 1
0 1 1
1 1 0
При обучении без оптимизации потребовалось 1000 эпох. Если применить ГА для выбора начальной весовой матрицы (достаточно всего 15 поколений и 30 особей), то число эпох сокращается на 300-400, т.е. почти в два раза.
Архитектура ИНС сети на базе РБФ похожа на архитектуру нейронной сети на базе персептрона рисунке 19. с одним существенным отличием, количество скрытых слоев всегда одинаково и равно 1. А количество нейронов на этом слое зависит от размерности обучающего множества, т.е. от количества обучающих примеров. Работа сети выглядит следующим образом: (25)
где - оцененный выход, W - матрица весовых коэффициентов, а Ф
(26)
Матрица Ф может быть описана в виде (26). Первые две компоненты (26) представляют линейную проблему, а последняя компонента - это сеть РБФ. Используется техника нулевой ошибки обучения, которая предполагает, что набор центров C совпадает с X(1).
При обучении РБФ одно из основных действий это умножение матриц и размерность матриц в задаче достаточно велика, то одна из возможных оптимизаций - разбиение процессам умножения на несколько потоков. Данный подход дает достаточно большой прирост в производительности на многоядерных системах, т.к. позволяет задействовать в процессе работы оба ядра и распределить нагрузку между ними. Вся работа с матрицами вынесена на уровень работы с объектами типа Matrix. Класс предоставляет набор полей и методов, удобных для работы с матрицами, он имеет перегруженные операторы арифметических действий, что позволяет работать с объектами в привычной форме. Например: Matrix a = GETRANDOMMATRIX(razm, razm);
Matrix b = GETRANDOMMATRIX(razm, razm);
c = a * b;
Умножение матриц через оператор «*» производится в один поток, для запуска двупоточного умножение используется отдельный метод, представленный ниже. Разделение на потоки происходит по принципу, половина матрицы умножается в одном потоке, вторая половина в другом, разделение идет по строчкам. У обоих потоков общий участок памяти, но гонки за ресурс не возникает, так как обращение идет к разным участкам общей памяти.
Для тестирования производительности работы написанных методов, была разработана тестовая программа, которая умножает случайно сгенерированные матрицы размерности 150 на 150. Так как ОС с вытесняющей многозадачностью, то в процесс эксперимента может «вмешаться» случайный системный процесс. Для исключения такого эффекта, матрицы умножаются не один раз, а 100 и высчитывается среднее время умножение матриц. Такой процесс запускается на однопоточном методе и на двух поточном методе [17].
Результаты эксперимента представлены на рисунках 23-26.
Аппаратное обеспечение для тестирования было следующим, в качестве одноядерной платформы был использован процессор AMD Athlon 64 3000 , более детальная информация представлена на рисунке 23.
Рисунок 23 - Детальная информация об одноядерном процессоре
Характеристики двуядерного процессора представлены на рисунке 24.
Рисунок 24 - Детальная информация о двуядерном процессоре
Как видно из результатов, прирост производительности при умножение матриц на двуядерном процессоре составляет практически 2-х кратную величину.
Рисунок 25 - Результат теста на двуядерном процессоре
Но на одноядерном процессоре прироста производительности не наблюдается, а наоборот наблюдается некоторая потеря производительности, которая очевидно связана с затратами на создание второго потока и переключении контекста между ними.
Рисунок 26 - Результат теста на одноядерном процессоре
Как видно из тестов производительность зависит не только от того сколько ядер у процессора, но и сама архитектура. Благодаря использованию платформы .net не нужно перекомпилировать приложения для разных аппаратных платформ. Оптимизация происходит на момент запуска приложения, а не на момент компиляции [18].
Исходя из проведенных экспериментов можно выявить минимальные аппаратные требования для работы приложения: Минимальные аппаратные требования: · процессор с тактовой частотой не ниже 1,5 ГГЦ (AMD Athlon 3000 );
· 256 Мб оперативной памяти;
· SVGA-видеокарта с объемом памяти не ниже 64 Мб, 256 цветов;
· наличие мыши, клавиатуры;
· наличие не менее 20 Мб дискового пространства.
2.5 Основные виды отчетов и графиков
Программное обеспечение позволяет производить эксперименты и рассчитывать параметры неоднородностей на различных данных. Для того что бы оценить качество и точность восстанавливаемых параметров. Пользователю необходим наглядный контроль, с помощью которого он сможет убедиться в точности восстановленных параметров. Для такой оценки используется два вида графиков.
Первый вид графика (рисунок 27) - это диаграмма, показывающая только один выход, но зато все примеры сразу. По данной диаграмме можно отследить насколько хорошо искусственная нейронная сеть смогла аппроксимировать тот или иной выход.
Рисунок 27 - Диаграмма результатов обучения
Второй тип графика (рисунок 28) - это три вида нашего образца и неоднородности в нем. На нем изображается только один тестовый пример. На данном графике можно оценить, как точно восстанавливаются параметры неоднородности в целом.
Рисунок 28 - Три вида результатов обучения
3. Результаты работы программы
3.1 Эксперименты с персептроном и выбор оптимальных коэффициентов
Попробуем поэкспериментировать с настройками ИНС на базе персептрона. Обучающее множество выберем следующим образом:
Рисунок 29 - Выбор обучающего множества
Пронормируем наши данные следующим образом:
Рисунок 30 - Нормировка данных
Попробуем обучить сеть со следующими настройками: 1 скрытый слой, 20 нейронов на скрытом слое, «альфа» функции активации -1, «скорость обучения» -1, коэффициент инерции 0.
Результат обучения:
Рисунок 31 - Результат обучения персептрона
Как видим с подобными настройками результат аппроксимации очень слабый.
Попробуем обучить сеть со следующими настройками: 1 скрытый слой, 32 нейронов на скрытом слое, «альфа» функции активации -1, «скорость обучения» -0.1, коэффициент инерции 0.
Как видно из диаграмм, предсказательные способности персептрона, на данной задаче очень слабые (рисунок 30).
Рисунок 32 - Результат обучения персептрона
Попробуем построить три вида нашего образца и посмотреть, как восстанавливаются параметры, в общем (рисунок 33):
Рисунок 33 - Результат обучения персептрона
Из графика видно, что персептрон способен определить местоположение неоднородности, но точность при этом низкая.
3.2 Сравнение результатов работы РБФ и Персептрона
На тех же данных попробуем обучить РБФ сеть. Как видно из рисунков 33 и 34 предсказательная способность сети РБФ на много выше чем у персептрона.
Рисунок 34 - Результат обучения РБФ
Рисунок 35 - Результат обучения РБФВ результате выполнения дипломной работы было написано приложение, которое позволяет восстанавливать параметры неоднородности по результатам электромагнитных измерений. Решение данной задачи выполняется с помощью ИНС, создавать, настраивать и обучать которую позволяет ПО.
Программное обеспечение разработано на языке C#.
Программа имеет модульную структуру. Для расширения и добавления новых видов искусственных нейронных сетей в программном обеспечении используется рефлексия типов.
Разработанное программное обеспечение может быть использовано при отработке технологии мониторинга внутренней структуры материалов при СВЧ обработке.
Список литературы
1. Brovko A.V. Waveguide Microwave Imaging: Neural Network Reconstruction of Functional 2-D Permirrivity Profiles / Alexander V. Brovko, Ethan K. Murphu // IEEE. Transaction on Microwave Theory and Techniques. - Vol.57., 2009 - №2.
2. Brovko A.V. Waveguide microwave imaging: Spherical inclusion in a dielectric sample / A.V. Brovko, E.K. Murphy, M. Rother, H.P. Schuchmann, and V.V. Yakovlev // IEEE Microw. Wireless Compon. Lett- vol. 18., №. 9, 2008 - С. 647-649
3. Свободная энциклопедия «Википедия» [Электронный ресурс] http://ru.wikipedia.org/Обратная_задача (Дата обращения 20.04.2010).
4. Математические модели и обратные задачи (ВАТУЛЬЯН А.О. , 1998), МАТЕМАТИКА [Электронный ресурс]. http://www.pereplet.ru/obrazovanie/stsoros/673.html (Дата обращения 20.04.2010).
5. J. Feldman, Computing with Structured Neural Networks / J. Feldman, M.A. Fanty, and N.H. Goddard // Computer. - Vol. 21, No. 3, Mar.1988 -С. 91-103.
6. Комашинский В.И., Нейронные сети и их применение в системах управления и связи. / В.И. Комашинский, Д.А. Смирнов. - М.: Горячая линия - Телеком, 2003. - 94 с.
7. МАККАЛЛОК У., Питтс В. Логическое исчисление идей, относящихся к неройной активности // Сб. “Автоматы”, пер. с англ.: Изд-во инострлит, 1959
8. John Hertz. Introduction to the Theory of Neural Computation . / John Hertz, Anders Krogh, Richard G. Palmer - Warszawa: WNT, 1995.
9. Оссовский С., Нейронные сети для обработки информации / Пер. с польского И.Д. Рудинского. - М.: Финансы и статистика, 2004.-344 с.
10. Barron A.R. Approximation and estimation bounds for artificial neural networks. / Barron A.R // Machine learning. - Vol. 14, 1994. - C. 115-133.
12. Haykin S. Neural networks, a comprehensive foundation. / Haykin S. N.Y.: Macmillan - College Publishing Company, 1994.
13. Cover T.M. Geometrical and statistical properties of systems of linear inequalities with applications in pattern recognition. / Cover T.M. // IEEE Transactions on Electronic Computers. -, vol EC-14, 1965, - C.326-334.
14. Вороновский Г.К. Генетические алгоритмы, искусственные нейронные сети и проблемы виртуальной реальности / Г.К. Вороновский, К.В, Махотило, С.Н. Петрашев, С.А. Сергеев. - Х.: ОСНОВА, 1997. - 112 с.
15. Шилд, Г. Полный справочник по С#. / Пер. с англ. - М.: Изд. Вильямс,2004
16. Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж - СРБ.: Питер, 2008. - 336 с.
17. Троелсен Э. C# и платформа .NET. Библиотека программиста. - СПБ.: Питер, 2007. - 796 с.
18. Петсольд Ч. Программирование для Microsoft Windows на C#./ Пер. с англ. - М.: Изд. Русская редакция,2002