Искусственный интелект

Автор работы: Пользователь скрыл имя, 20 Мая 2013 в 20:04, курсовая работа

Краткое описание

В рамках бакалаврской работы был рассмотрен метод распознавания графических образов с шумами, основанный на применении нейронной сети Хемминга. Было рассмотрено влияние шумов в данных на результат работы сети.
Также в рамках работы был построен программный комплекс, реализующий данный метод и позволяющий анализировать сгенерированные последовательности данных с внесённым в них шумом. Шум является случайной величиной и имеет заданный закон распределения. Были проведены исследования и на основе их результатов были сформулированы выводы.

Содержимое работы - 1 файл

Доклад ИИ.docx

— 1.85 Мб (Скачать файл)

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

 

  1. Исследование результатов работы программы-эмулятора ИНС

 

Таблица 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% распознавание не представляется возможным, т.к. треть изображения является практически полностью инвертированным.

 

 

4.1 Выводы

 

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

  1. Качество распознавания изображений в значительной мере зависит от степени искажения изображения и сходства запоминаемых эталонных изображений. Зависимость качества распознавания от сходства эталонных изображений хорошо просматривается при сравнении серий экспериментов по распознаванию образов. Из-за схожести изображений цифр 0, 8, 9, 6 при зашумлении нейронная сеть может их перепутать.
  2. Качество распознавания изображений зависит от законов распределения ПСВ – координат искажаемых пикселей, сформированных генераторами ПСВ. При распределении координат искажаемых пикселей, соответствующему равномерному закону, нейронная сеть Хемминга справляется с задачей распознавания в большинстве экспериментов лучше, чем при нормальном распределении.

 

Заключение

 

 

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

  1. Моделировать работу нейронной сети Хемминга, решающей задачи распознавания искаженных изображений:
    • Обучать нейронную сеть эталонным образам.
    • Распознавать искаженные образы.
  2. Строить генераторы ПСВ с заданными законами распределения следующими тремя методами:
    • Методом обратной функции для получения дискретной ПСВ.
    • Методом обратной функции для получения непрерывной ПСВ.
    • Универсальным методом для получения непрерывной ПСВ.
  3. Генерировать выборки реализаций ПСВ.
  4. Исследовать эффективность работы построенных генераторов ПСВ следующим образом:
    • Вычислять степени расхождения теоретических и практических законов распределения с использованием критериев согласия Пирсона и Колмогорова.
    • Представлять результаты исследования в графическом виде, осуществляя построение графиков выборки реализаций ПСВ, плотности распределения (теоретической и практической), функций распределения (теоретической и практической).
  5. Искажать изображения с заданным процентом зашумления.

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

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

 

 

Библиографический список

 

  1. Хайкин С. Б. Нейронные сети: полный курс / С. Б. Хайкин. – Спт.: «Вильямс», 2005. – 866с.
  2. Уоссерман Ф. Нейрокомпьютерная техника: Теория и практика / Ф. Уоссерман. Перевод на русский язык, Ю. А. Зуев, В. А. Точенов, 1992./
  3. Л. Шапиро, Дж. Стокман Компьютерное зрение / Пер. с англ. - М.: БИНОМ. Лаборатория знаний, 2006. - 752 с, 8 с. ил.: ил.
  4. Абламейко С.В., Лагуновский Д.М. Обработка изображений: технология, методы, применение. Учебное пособие. – Мн.: Амалфея, 2000. – 304с.
  5. Заенцев И.В. Нейронные сети: основные модели: учебное пособие – Воронеж: Изд-во ВГУ, 1999. – 76 с.
  6. Осовский С. Нейронные сети для обработки  информации / Пер. с польского  И.Д. Рудинского. - М.: Финансы и статистика, 2002. - 344 с: ил.
  7. Вентцель Е.С. Теория вероятностей: учеб.для вузов / Е.С. Вентцель. - 7-е изд., стер. - М.: Высш. шк., 2001. - 575 с.
  8. Шеннон Р. Имитационное моделирование систем. Искусство и наука: [пер. с англ.] / Р. Шеннон. – М.: Мир, 1978. – 421 с.
  9. Потапов В.И. Потапов И.В. Математические модели, методы и алгоритмы оптимизации надежности и технической диагностики искусственных нейронных сетей. – Омск: Изд-во ОГУП Омская областная полиграфия. - 2004г. – 220с.
  10. Кирьянов Б.Ф. Моделирование случайных величин: методические указания для студентов / Б.Ф.Кирьянов – Великий Новгород: РИС НовГУ, 2004. – 47с.
  11. Бусленко Н.П. Моделирование сложных систем / Н.П. Бусленко. – М.: Наука, 1968. – 356 с.
  12. Вентцель Е.С. Теория вероятностей: учеб.для вузов / Е.С. Вентцель. - 7-е изд., стер. - М.: Высш. шк., 2001. - 575 с.
  13. Комашинский В.И. Нейронные сети и их применение в системах управления и связи / В.И. Комашинский, Д.А. Смирнов. – М.: Горячая линия - Телеком, 2003. – 94 c.
  14. Потапов В.И. Выполнение и организация защиты выпускных квалификационных работ бакалавров: метод. указания для студентов, обучающихся по направлению 230100 "Информатика и вычислительная техника" / В.И. Потапов. – Омск: Изд-во ОмГТУ, 2007. – 15 с.
  15. Потапов В.И. Дипломное проектирование: метод. указания для студентов, обучающихся по специальности 230101 и направления подгот. бакалавров 230100 / В.И. Потапов, Б.И. Елькин, О.П. Шафеева. – Омск: Изд-во ОмГТУ, 2007. – 64 с.
  16. Фурман Я. А., Юрьев А. Н., Яншин В. В. Цифровые методы обработки и распознавания бинарных изображений.— Красноярск: Издательство Красноярского университета, 1992 - 248 с.
  17. Потапов В.И. Магистерская диссертация: методика написания, правила оформления и порядок защиты: учеб. пособие / В.И. Потапов, Д.В. Постников; ОмГТУ. - Омск: Изд-во ОмГТУ, 2010. - 59 с.
  18. ГОСТ 7.32 – 2001 Отчет о научно-исследовательской работе. Структура и правила оформления. – Взамен ГОСТ 7.32–91; введ. 2002–07–01. – М.: Изд-во стандартов, 2001. – 18с.
  19. ГОСТ 19.701 – 90 ЕСПД. Схемы алгоритмов, программ, данных и систем. – Взамен ГОСТ 19.002-80; введ. 1992-01-01. - М.: Изд-во стандартов, 1990. – 8 с.
  20. ГОСТ 7.1 – 2003 Библиографическая запись. Библиографическое описание. Общие требования и правила составления. – Взамен ГОСТ 7.1–84; введ. 2004-07-01. – М.: ИПК Изд-во стандартов, 2004
  21. Wikipedia. [Электронный ресурс]. [http://ru.wikipedia.org/wiki/].

 

Приложение А. Генератор ПСВ.

 

 

// алгоритм для  генерации непрерывной случайной  величины 

//функция распределения обратного метода непрерывной СВ     

public class InverseDistributionFunction : IDistributionFunction, IDensityFunction     

{        

private static InverseDistributionFunction func = null;

         

//метод создания        

public static InverseDistributionFunction Create()        

{            

func = new InverseDistributionFunction();            

return func;        

}         

//конструктор        

private InverseDistributionFunction()        

{            

func = this;        

}         

//возвращает значение функции в точке        

public double GetFunctionValue(double x)        

{            

if(x<Xmin())            

{                

return 0;            

}            

if(x>Xmax())            

{                

return 1;            

}            

double y = Math.Tan(2 * x) / 2 /*Math.Log(x,2)*/;  //функция распределения             

if (y<0)            

{                

return 0;            

}            

else            

{                

if (y>1)                

{                    

return 1;                

}                

else                

{                    

return y;                

}            

}        

}         

//возвращает значение обратной функции в точке         

public double GetInverseFunctionValue(double y)        

{            

if (y < 0 || y > 1)            

{                

throw new Exception("Обратная функция существует только в интервале от 0 до 1");             

}            

double x =  Math.Atan(2 * y) / 2; //обратная функция распределения             

return x;        

}

         

//Возвращает значение функции плотности в точке         

public double GetDensityFunctionValue(double x)        

{            

double y = (double)1 / (Math.Cos(2 * x) * Math.Cos(2 * x));//функция плотности

             

return y;        

}        

//возвращает математическое ожидание СВ         

public double GetExpectation()        

{            

double step = (Xmax() - Xmin()) / 100;            

double prevM = 0;            

double M = 1;            

while (Math.Abs(M - prevM) > 0.000001)            

{                

prevM = M;                

double current = 0;                

for (double x = Xmin(); x < Xmax(); x += step)                

{                    

current += step * ((x + step) * GetDensityFunctionValue(x + step) + x * GetDensityFunctionValue(x)) / 2;                 

}                

M = current;                

step /= 2;            

}            

return M;        

}         

//возвращает СКО        

public double GetMeanSquareDeviation()        

{        

 

 

            return Math.Sqrt(GetDispersion());         

}         

//возвращает дисперсию        

public double GetDispersion()        

{            

double step = (Xmax() - Xmin()) / 100;            

double prevD = 0;            

double D = 1;            

double M = this.GetExpectation();            

while (Math.Abs(D - prevD) > 0.000001)            

{                

prevD = D;                

double current = 0;                

for (double x = Xmin(); x < Xmax(); x += step)                

{                    

current += step * (Math.Pow((x + step - M), 2) * GetDensityFunctionValue(x + step) + Math.Pow((x - M), 2) * GetDensityFunctionValue(x)) / 2;                 

}                

D = current;                

step /= 2;            

}            

return D;        

}         

public double Xmin()        

{            

return this.GetInverseFunctionValue(0);        

}         

public double Xmax()        

{            

return this.GetInverseFunctionValue(1);}}    

public class InverseGenerator:IGenerator    

{        

private InverseDistributionFunction Function = null;        

Random BaseGenerator = new Random();//генератор базовой случайной величины         

//конструктор        

public InverseGenerator()        

{            

Function = InverseDistributionFunction.Create();//получаем экземпляр функции распределения         

}         

//сгенерировать очередное значение        

public double GenerateValue()        

{            

double x1 = BaseGenerator.NextDouble();// генерация очередного значения базовой случайной величины             

double result = Function.GetInverseFunctionValue(x1);//получение значения обратной функции распределения             

return result;        

}    

}

 

//алгоритм для  генерации дискретной случайной  величины

 

//дискретная функция распределения    

public class DiscreteDistributionFunction : IDistributionFunction, IDensityFunction     

{        

private static DiscreteDistributionFunction func = null;//экземпляр самой функции         

private List<Point> Values = new List<Point>();//массив точек(точки вида: значение, вероятность)         

//метод создания        

public static DiscreteDistributionFunction Create()        

{            

return func;//возвращаем существующий объект         

}         

//метод создания        

public static DiscreteDistributionFunction Create(List<Point> values)         

Информация о работе Искусственный интелект