Исследование результатов работы программы-эмулятора ИНС
Курсовая работа, 17 Апреля 2013, автор: пользователь скрыл имя
Описание работы
Искусственные нейронные сети (НС) – набор математических и алгоритмических методов для решения широкого круга задач. Они превосходят последовательные машины в решении тех же задач, в которых машину превосходит человек. К задачам, успешно решаемым НС на данном этапе их развития, относятся [1]:
Распознавание зрительных и слуховых образов: от распознавания текста до систем голосового управления.
Ассоциативный поиск информации и создание ассоциативных моделей: синтез речи, формирование естественного языка.
Формирование моделей различных нелинейных и трудно описываемых математически систем, а также прогнозирование развития этих систем во времени: прогнозирование развития различных природных процессов, изменений курсов валют, курсов акций и других финансовых показателей.
Содержание
Введение 7
Постановка задачи 9
1. Системный анализ методов распознавания образов и построения генераторов псевдослучайных величин. 10
1.1. Анализ методов распознавания графических образов 10
1.1.1 Статистические методы распознавания 10
1.1.2 Структурные (лингвистические) методы распознавания 12
1.1.3 Нейросетевые методы распознавания 15
1.1.4 Вывод по результатам анализа рассмотренных методов 18
1.2. Процедура искажения изображений 20
1.3.1 Преобразование Бокса – Мюллера. 20
1.3. Выводы 22
2. Реализация эмулятора нейронной сети Хемминга, решающей задачи распознавания зашумлённых образов. 23
2.1. Выбор структуры ИНС 25
2.2. Программная реализация ИНС 27
2.2.1. Интерфейс пользователя программы-эмулятора ИНС 31
2.3. Выводы 33
3. Исследование результатов работы программы-эмулятора ИНС 34
3.1 Выводы 36
Заключение 37
Библиографический список 38
Работа содержит 1 файл
нейросети.docx
— 397.07 Кб (Скачать)Распознавание – происходит распознавание одного из образов. Название берётся из поля используемый образ, результат выводится в виде двух картинок, слева – вводимый образ, справа – соответствующий ему(по мнению сети) идеальный. А так же в виде числа в поле результат распознавания.
Если поставить метку в поле «Нормальное распределение», то искажение происходит не по равномерному закону распределения, а по нормальному при помощи преобразования Бокса-Мюллера.
- Выводы
В главе 2, данной работы был программно реализован эмулятор работы НС Хемминга размерностью 20 нейронов с десятью тысячами входов, решающей задачи распознавания искаженных изображений. Также реализована генерация случайного шума с нормальным законом распределения методом Бокса-Мюллера, рассмотренным в предыдущей главе.
- Исследование результатов работ
ы программы-эмулятора ИНС
Таблица 2. Опыты по распознаванию образов
Тестируемый образ |
Процент зашумления образа |
Вид искаженного образа (одна из 10 наложенных ошибок) |
Результат распознавания Число опытов/количество верных распознаваний |
Шум с равномерным распределением |
10% |
|
40/40 |
20% |
|
40/40 | |
30% |
|
40/40 | |
40% |
|
40/38 | |
45% |
|
40/35 | |
50% |
|
40/7 | |
Шум с нормальным распределением |
10% |
|
40/40 |
15% |
|
40/40 | |
20% |
|
40/10 | |
25% |
|
40/7 | |
30% |
|
40/3 | |
Шум с распределением 1/cos(2x)^2 |
10% |
|
40/40 |
15% |
|
40/35 | |
20% |
|
40/20 | |
25% |
|
40/5 |
Для шума с равномерным распределением:
До 40% зашумлённости образа распознавание происходит в большинстве случаев.
45%-47% резкое падение количества распознаваемых образов(при некоторых ошибках воспринимался как другой образ).
Для шума с нормальным распределением:
До 20% зашумлённости образа распознавание происходит в большинстве случаев. Если уровень шума превышает 20%, то распознать данное изображение не удаётся т.к. математическое ожидание нормального распределения походит через центральную ось изображения.
Если брать область изображения, зашумлённого на 25%-30%, с рассеиванием от математического ожидания равным дисперсии и сравнивать с равномерным распределением, то это будет эквивалентно 50%-60% зашумления.
Границы цифр 0 и 8 на изображении выходят за пределы единичной дисперсии, по этой причине нейронная сеть продолжает распознавать эти образы до 30%-35% зашумления.
Для шума с распределением 1/cos(2x)^2:
При данной
плотности распределения
До 10% распознавание происходит в большинстве случаев. От 10% до 15% наблюдаются ошибки при распознавании. Это связанно прежде всего с тем, что, например, изображение цифры «8» после подобного зашумления ближе, по хемминговому расстоянию, к изображению «6».
Если используются изображения такие как 1, 2, 4, 7 т.е. образы, которые наименее похожи на остальные, то их распознавание возможно и при зашумлении 20%. При уровне шума выше 20% распознавание не представляется возможным, т.к. треть изображения является практически полностью инвертированным.
3.1 Выводы
По
проведенным исследованиям
- Качество распознавания изображений в значительной мере зависит от степени искажения изображения и сходства запоминаемых эталонных изображений. Зависимость качества распознавания от сходства эталонных изображений хорошо просматривается при сравнении серий экспериментов по распознаванию образов. Из-за схожести изображений цифр 0, 8, 9, 6 при зашумлении нейронная сеть может их перепутать.
- Качество распознавания изображений зависит от законов распределения ПСВ – координат искажаемых пикселей, сформированных генераторами ПСВ. При распределении координат искажаемых пикселей, соответствующему равномерному закону, нейронная сеть Хемминга справляется с задачей распознавания в большинстве экспериментов лучше, чем при нормальном распределении.
Заключение
В результате выполнения данной работы был разработан программный комплекс, позволяющий:
- Моделировать работу нейронной сети Хемминга, решающей задачи распознавания искаженных изображений:
- Обучать нейронную сеть эталонным образам.
- Распознавать искаженные образы.
- Искажать изображения с заданным процентом зашумления.
Также в работе были проведены исследования качества распознавания нейронной сетью Хемминга искаженных черно-белых изображений.
Разработанный программный комплекс в дальнейшем может быть основой более сложных систем анализа и распознавания образов с целью повышения эффективности распознавания.
Библиографический список
- Хайкин С. Б. Нейронные сети: полный курс / С. Б. Хайкин. – Спт.: «Вильямс», 2005. – 866с.
- Уоссерман Ф. Нейрокомпьютерная техника: Теория и практика / Ф. Уоссерман. Перевод на русский язык, Ю. А. Зуев, В. А. Точенов, 1992./
- Л. Шапиро, Дж. Стокман Компьютерное зрение / Пер. с англ. - М.: БИНОМ. Лаборатория знаний, 2006. - 752 с, 8 с. ил.: ил.
- Абламейко С.В., Лагуновский Д.М. Обработка изображений: технология, методы, применение. Учебное пособие. – Мн.: Амалфея, 2000. – 304с.
- Заенцев И.В. Нейронные сети: основные модели: учебное пособие – Воронеж: Изд-во ВГУ, 1999. – 76 с.
- Осовский С. Нейронные сети для обработки информации / Пер. с польского И.Д. Рудинского. - М.: Финансы и статистика, 2002. - 344 с: ил.
- Вентцель Е.С. Теория вероятностей: учеб.для вузов / Е.С. Вентцель. - 7-е изд., стер. - М.: Высш. шк., 2001. - 575 с.
- Шеннон Р. Имитационное моделирование систем. Искусство и наука: [пер. с англ.] / Р. Шеннон. – М.: Мир, 1978. – 421 с.
- Потапов В.И. Потапов И.В. Математические модели, методы и алгоритмы оптимизации надежности и технической диагностики искусственных нейронных сетей. – Омск: Изд-во ОГУП Омская областная полиграфия. - 2004г. – 220с.
- Кирьянов Б.Ф. Моделирование случайных величин: методические указания для студентов / Б.Ф.Кирьянов – Великий Новгород: РИС НовГУ, 2004. – 47с.
- Бусленко Н.П. Моделирование сложных систем / Н.П. Бусленко. – М.: Наука, 1968. – 356 с.
- Вентцель Е.С. Теория вероятностей: учеб.для вузов / Е.С. Вентцель. - 7-е изд., стер. - М.: Высш. шк., 2001. - 575 с.
- Комашинский В.И. Нейронные сети и их применение в системах управления и связи / В.И. Комашинский, Д.А. Смирнов. – М.: Горячая линия - Телеком, 2003. – 94 c.
- Потапов В.И. Выполнение и организация защиты выпускных квалификационных работ бакалавров: метод. указания для студентов, обучающихся по направлению 230100 "Информатика и вычислительная техника" / В.И. Потапов. – Омск: Изд-во ОмГТУ, 2007. – 15 с.
- Потапов В.И. Дипломное проектирование: метод. указания для студентов, обучающихся по специальности 230101 и направления подгот. бакалавров 230100 / В.И. Потапов, Б.И. Елькин, О.П. Шафеева. – Омск: Изд-во ОмГТУ, 2007. – 64 с.
- Фурман Я. А., Юрьев А. Н., Яншин В. В. Цифровые методы обработки и распознавания бинарных изображений.— Красноярск: Издательство Красноярского университета, 1992 - 248 с.
- Потапов В.И. Магистерская диссертация: методика написания, правила оформления и порядок защиты: учеб. пособие / В.И. Потапов, Д.В. Постников; ОмГТУ. - Омск: Изд-во ОмГТУ, 2010. - 59 с.
- ГОСТ 7.32 – 2001 Отчет о научно-исследовательской работе. Структура и правила оформления. – Взамен ГОСТ 7.32–91; введ. 2002–07–01. – М.: Изд-во стандартов, 2001. – 18с.
- ГОСТ 19.701 – 90 ЕСПД. Схемы алгоритмов, программ, данных и систем. – Взамен ГОСТ 19.002-80; введ. 1992-01-01. - М.: Изд-во стандартов, 1990. – 8 с.
- ГОСТ 7.1 – 2003 Библиографическая запись. Библиографическое описание. Общие требования и правила составления. – Взамен ГОСТ 7.1–84; введ. 2004-07-01. – М.: ИПК Изд-во стандартов, 2004
- Wikipedia. [Электронный ресурс]. [http://ru.wikipedia.org/wiki/
].
Приложение А. Генератор ПСВ.
// алгоритм для
генерации непрерывной
//функция распределения
public class
{
private static
//метод создания
public static
{
func = new
return func;
}
//конструктор
private
{
func = this;
}
//возвращает значение функции
public double
{
if(x<Xmin())
{
return 0;
}
if(x>Xmax())
{
return 1;
}
double y = Math.Tan(2 * x) /
if (y<0)
{
return 0;
}
else
{
if (y>1)
{
return 1;
}
else
{
return y;
}
}
}
//возвращает значение
public double
{
if (y < 0 || y > 1)
{
throw new Exception("Обратная
}
double x = Math.Atan(2 * y) /
return x;
}
//Возвращает значение функции
public double
{
double y = (double)1 / (Math.
return y;
}
//возвращает математическое
public double GetExpectation()
{
double step = (Xmax() - Xmin()
double prevM = 0;
double M = 1;
while (Math.Abs(M - prevM) >
{
prevM = M;
double current = 0;
for (double x = Xmin(); x <
{
current += step * ((x + step)
}
M = current;
step /= 2;
}
return M;
}
//возвращает СКО
public double
{
return Math.Sqrt(
}
//возвращает дисперсию
public double GetDispersion()
{
double step = (Xmax() - Xmin()
double prevD = 0;
double D = 1;
double M = this.
while (Math.Abs(D - prevD) >
{
prevD = D;
double current = 0;
for (double x = Xmin(); x <
{
current += step * (Math.Pow((
}
D = current;
step /= 2;
}
return D;
}
public double Xmin()
{
return this.
}
public double Xmax()
{
return this.
public class InverseGenerator:
{
private
Random BaseGenerator = new
//конструктор
public InverseGenerator()
{
Function =
}
//сгенерировать очередное
public double GenerateValue()
{
double x1 = BaseGenerator.
double result = Function.
return result;
}
}
//алгоритм для
генерации дискретной
//дискретная функция
public class
{
private static
private List<Point> Values =
//метод создания
public static
{
return func;//возвращаем
}
//метод создания
public static