Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения
 

Распознавание образов с помощью нейронных сетей в MatLab

Работа из раздела: «Коммуникации, связь, цифровые приборы и радиоэлектроника»

https://

Распознавание образов с помощью нейронных сетей в MatLab

Введение

нейронный сеть персептрон matlab

Искусственные нейронные сети (ИНС) -- математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей -- сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети Маккалока и Питтса [1]. Впоследствии, после разработки алгоритмов обучения, получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др.

ИНС представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты, особенно в сравнении с процессорами, используемыми в персональных компьютерах. Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи. Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения -- одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами [2]. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что, в случае успешного обучения, сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искаженных данных, в т.ч. изображений.

1. Нейронные сети: определение и виды ИНС

1.1 Определение ИНС

Искусственная нейронная сеть (ИНС, нейронная сеть) - это набор нейронов, соединенных между собой. Как правило, передаточные функции всех нейронов в нейронной сети фиксированы, а веса являются параметрами нейронной сети и могут изменяться. Некоторые входы нейронов помечены как внешние входы нейронной сети, а некоторые выходы - как внешние выходы нейронной сети [3]. Подавая любые числа на входы нейронной сети, мы получаем какой-то набор чисел на выходах нейронной сети. Таким образом, работа нейронной сети состоит в преобразовании входного вектора в выходной вектор, причем это преобразование задается весами нейронной сети.

Искусственная нейронная сеть - это совокупность нейронных элементов и связей между ними.

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

Рис. 1. Искусственный нейрон

Нейрон обладает группой синапсов - однонаправленных входных связей, соединенных с выходами других нейронов. Каждый синапс характеризуется величиной синоптической связи или ее весом wi.

· Каждый нейрон имеет текущее состояние, которое обычно определяется, как взвешенная сумма его входов:

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

Функция f называется функцией активации.

Рис. 2. Функция активации.

Функция активации может иметь разный вид:

· пороговый (рисунок 2.a),

· кусочно-линейный (рисунок 2.б),

· сигмоид (рисунок 2.в, 2.г).

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

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

1.2 Теоретическая постановка задачи

Любой объект изучения можно охарактеризовать некоторыми признаками. Набор таких признаков называется признаковым множеством. Сам объект называют образом. Если признак представим как число, то набор n признаков - можно рассматривать как точку в n-мерном пространстве (или вектор из начала координат в эту точку).

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

Рис. 3. Примеры классов.

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

1.3 Биологический нейрон

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

Рис. 4. Нейрон

Около 1011 нейронов участвуют примерно в 1015передающих связях, имеющих длину метр и более. Нейрон принимает и обрабатывает электрохимические сигналы. Вот суть его работы: дендриды идут от тела нервной клетки к другим нейронам, где они принимают сигналы в точках соединения, называемых синапсами. Принятые синапсом входные сигналы подводятся к телу нейрона. Здесь они суммируются, причем одни входы стремятся возбудить нейрон, другие - воспрепятствовать его возбуждению. Когда суммарное возбуждение в теле нейрона превышает некоторый порог, нейрон возбуждается, посылая по аксону сигнал другим нейронам. Такая связанная структура нейронов и называется нейронной сетью. У этой схемы много усложнений и исключений, тем не менее, большинство искусственных нейронных сетей моделируют лишь эти простые свойства.

1.4 Искусственный нейрон

Рис. 5. Искусственный нейрон.

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

Здесь множество входных сигналов, обозначенных х1, х2, ..., хn, поступает на искусственный нейрон. Эти входные сигналы, в совокупности, обозначаемые вектором Х, соответствуют сигналам, приходящим в синапсы биологического нейрона. Каждый сигналу умножается на соответствующий вес w1, w2, ..., wn, и поступает на суммирующий блок. Каждый вес соответствует 'силе' одной биологической синаптической связи. (Множество весов в совокупности обозначаются вектором W). Суммирующий блок, соответствующий телу биологического элемента, складывает взвешенные входы алгебраически, создавая выход, который мы будем называть NET.F- постоянная пороговая величина, или же функция, более точно моделирующая нелинейную (в нашем, более простом случае, линейную) передаточную характеристику биологического нейрона и представляющая нейронной сети большие возможности.

1.5 Однослойные искусственные нейронные сети

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

Рис. 6. Однослойная нейронная сеть.

Они не выполняют каких-либо вычислений, и поэтому не будут считаться слоем. Каждый элемент из множества входов Х отдельным весом соединен с каждым искусственным нейроном. А каждый нейрон выдает взвешенную сумму входов в сеть. В искусственных и биологических сетях многие соединения могут отсутствовать, все соединения показаны в целях общности. Могут иметь место также соединения между выходами и входами элементов в слое (сети Хопфилда). Удобно считать веса элементами матрицы W. Матрица имеет n строк и m столбцов, где n- число входов, а m- число нейронов. Таким образом, вычисление выходного вектора OUT, компонентами которого являются выходы NET нейронов сводится к матричному умножению OUT=XW[4].

1.6 Персептрон - инструмент для классификации образов

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

1. Задается и обнуляется матрица весов.

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

3. Строим на основе полученного произведения выходной вектор (такой же размерности) по формуле:

yi = F (NETi),

где F - пороговая функция. В нашем случае это линейная функция

.

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

5. При этом сравнении мы выполняем следующие действия (для каждой компоненты векторов):

· если j-тая компонента результата больше j-той компоненты ответа, мы вычитаем входной (!) вектор из j-того столбца матрицы весов, то есть столбца j-того нейрона (что бы при последующем умножении входного вектора на матрицу скалярное произведение оказалось меньше);

· если j-тая компонента результата меньше j-той компоненты ответа, мы прибавляем входной (!) вектор к j-тому столбцу матрицы весов.

Таким образом, входной вектор корректирует матрицу весов под свои значения.

6. Так же персептрон обучается на втором обучающем образе, третьем, ..., k-том.

7. Если хотя бы один обучающий образ изменил матрицу весов, повторяем все еще раз с шага 2. Существует теорема, что если классы обучающих образов разделимы, то рано или поздно матрица перестанет меняться (обучится).

Одна итерация обучения персептрона на одном образе представлена на рисунке 7:

Рис. 7. Итерация в персептроне.

2. Реализация однослойной нейронной сети - персептрона для задачи классификации автотранспорта

2.1 Постановка задачи

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

Допустим нам надо выяснить принадлежность транспортного средства к одному или нескольким классам:

· Легковой автомобиль

· Пассажирский транспорт

· Грузовой транспорт

на основе следующих характеристик

· 0) Большая снаряженная масса

· 1) Большая мощность двигателя

· 2) Большая пассажировместимость

· 3) Большая грузоподъёмность

Рис. 8. Нейронная сеть для классификации.

2.2 Нормализация

Для того, чтобы начать обучать нейросеть, необходимо нормализовать входные сигналы сети. То есть разъяснить, например, 50 лошадиных сил -- это большая мощность двигателя или не очень. Для этого будем оперировать качественными понятиями, и соответствующими им значениями в диапазоне от 0 до 1.

· Нет -- 0

· Скорее нет, чем да -- 0.25

· Ни нет ни да -- 0.5

· Скорее да, чем нет -- 0.75

· Да -- 1

Экспертная оценка характеристик даёт нам следующую таблицу нормализации:

Таб. 1. Таблица нормализации

0

0.25

0.5

0.75

1

0) Большая масса автомобиля(т.)

?0.5

(0.5;1]

(1;2]

(2;5]

>5

1) Большая мощность двигателя(л.с.)

?20

(20;50]

(50;100]

(100;200]

>200

2) Большая пассажиро-вместимость(чел)

?2

(2;5]

(5;10]

(10;20]

>20

3) Большая грузоподъёмность(т.)

?1

(2;2]

(2;3]

(2;4]

>4

То есть на вопрос «Большая ли это мощность двигателя -- 50 л.с.» ответ «скорее нет, чем да» (0.25). Говоря формализованным языком, нормализация -- это функция двух аргументов N(n,x): номера нормализуемого параметра и его значение. Область значений функции -- от 0 до 1. В нашем случае она задаётся таблично. В нашем примере с мощностью двигателя N(1,50) = 0.25.

2.3 Обучающая выборка

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

Ниже представлены таблицы характеристик и классификаций ТС.

Таб. 2. Характеристики транспортных средств

Масса(т.)

Двигатель(л.с.)

Пассажиров(чел.)

Грузоподъёмность(т.)

Ока

0.645

33

4

0.34

Газель пасcaжир.

2.880

152

14

1.5

Лада Калина

1.110

88

5

0.475

КАМАЗ(3 оси)

10.400

260

3

6

Газель груз .

2.880

152

3

1.5

ПАЗ4234(пазик)

9.895

122

30

6.2

ЗИЛ-5301(бычок)

3.695

136

3

3

УАЗ Патриот

2.170

116

5

0.6

ЛиАЗ-6213

27.895

278

150

11

Таб. 3. Классификация транспортных средств

Легковой

Пассажирский

Грузовой

Ока

*

Газель пасcaжир.

*

Лада Калина

*

Камаз(3 оси)

*

Газель груз .

*

ПАЗ4234(пазик)

*

ЗИЛ-5301(бычок)

*

УАЗ Патриот

*

ЛиАЗ-6213

*

2.4 Функция активации

Рис. 2.1. Функция активации

Функция активации определяет уровень возбуждения нейрона L в зависимости от суммарного уровня сигнала входов S. В приложениях наиболее употребимы функции вида «единичный скачок (пороговая функция)», «линейный порог (гистерезис)» и «сигмой». От её выбора зависит уровень чувствительности (избирательности) сети. Чем выше чувствительность (самая высокая у единичного скачка), тем конкретнее ответ сети, но выше и вероятность ошибки. Чем меньше чувствительность, тем неопределённее ответ, но и меньше процент ошибок.

Для нашей задачи была выбрана кусочно-заданная функция «линейный порог», определяемая как:

· 0, S<0

· S, 0?S<1

· 1, S>1

2.5 Результаты обучения

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

· Ока: Легковая (58%), Пассажирская (27%), условно верный ответ, хотя и довольно неуверенный, что в общем-то объяснимо высокой пассажировместимостью «Оки» на единицу собственной массы

· Газель пас.: Легковая (4%), Пассажирская (97%), верный ответ, с очень небольшими сомнениями в пользу легкового автомобиля

· Калина: Легковая (100%), Пассажирская (2%), верный ответ, с небольшими сомнениями в сторону пассажирского транспорта

· Камаз: Грузовая (100%), абсолютно верный ответ

· Газель груз: Легковая (12%), Грузовая (84%), верный ответ, с сомнениями в сторону легкового автомобиля, что объяснимо схожестью с другим обучающем примером другого класса автомобиля на той же технической базою

· ПАЗ4234: Пассажирская (100%), абсолютно верный ответ

· ЗИЛ-5301: Грузовая (100%), абсолютно верный ответ

· Патриот: Легковая (98%), Грузовая (2%), верный ответ, с очень малым сомнением в сторону грузового авто, видимо из-за большой собственной массы и мощного для легковушки двигателя

· ЛиАЗ-6213: Пассажирская (100%), абсолютно верный ответ

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

Масса(т.)

Двигатель(л.с.)

Пассажиров(чел.)

Грузоподъёмность(т.)

Белаз

74

1050

1

90

БТР80

13.6

260

10

3

Урал мото

0.3

40

3

0.25

Повозка

0.2

1

4

0.2

Велосипед

0.02

0.3

1

0.1

Трамвай

18.4

245

168

12

Получаем следующие ответы сети:

· Белаз: Грузовая (100%), нельзя не согласиться

· БТР80: Пассажирская (27%), действительно пассажирский транспорт, но очень странны, да, потому и ответ неуверенный

· Урал мото: Легковая (100%), Пассажирская (12%), ну в целом ответ разумный, на легковую машину мотоцикл «Урал» всяк похож больше, чем на автобус, но его способность везти аж 3 человек заставила нейросеть сомневаться

· Повозка: Пассажирская (52%), 1 лошадь, 200 кило телега и 4 человека на ней, неуверенно-пассажирский транспорт

· Велосипед: не смогла определить, что это … я бы тоже не смог

· Трамвай: Пассажирская (100%), тут никаких вопросов.

3. Алгоритм работы в MatlabR2009b

Искусственные нейронные сети представляют собой математическую модель функционирования биологических нейронных сетей - сетей нервных клеток живого организма. Как и в биологической нейронной сети, основным элементом искусственной нейронной сети является нейрон. Соединенные между собой нейроны, образуют слои, количество которых может варьироваться в зависимости от сложности нейронной сети и решаемых ею задач. Теоретические основы программирования таких нейронных сетей, описываются во многих работах [11, 14, 15].

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

Цель разрабатываемого шаблона, создать нейронную сеть, которая сможет распознавать визуальные образы букв русского алфавита. Программный код, который решает подобную задачу, присутствует в системе Matlab, как демонстрационная программа с названием appcr1. Подробно этот код разобран и пояснен в книге «Нейронные сети» В. С. Медведева, В. Г. Потемкина [10], а так же описан в работе И. С. Миронова, С. В. Скурлаева [11]

В системе Matlab также присутствует инструмент NNtool, имеющий графический интерфейс пользователя, который существенно облегчает задачу и может быть легко использован даже неопытным пользователем. Подробно этот инструмент описан в работах В. Иванников, А. Ланнэ [9] и П. А. Сахнюка [12] и др. [16]. В работе А. И. Шеремет, В. В. Перепелицы, А. М. Денисовой показан пример разработки нейронной сети для распознавания визуальных образов символов латинского алфавита с помощью NNtool [13].Зарубежные ученые также применяю искусственные нейронные сети в своих исследованиях [17, 18].

Рассмотрим встроенную функцию Matlab prprob, которая представляет собой матрицу, содержащую набор признаков букв латинского языка. Каждая буква имеет размерность 7 на 5 пикселей.

Создадим подобную матрицу с буквами русского алфавита. Для этого создадим в графическом редакторе шаблон каждого символа такой же размерностью (рис. 2.1, 2.2).

Рис. 3.1. Шаблон буквы А созданный в графическом редакторе

Рис. 3.2. Шаблон буквы Б созданный в графическом редакторе

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

Для этого выберем в командном меню: File>New>Function M-file. Откроется графический редактор, в который необходимо вставить приведенный ниже код.

Код функции ImgRead:

function y = Imgread(x)

%UNTITLED Summary of this function goes here

%Detailed explanation goes here

img=imread(x);

img1=img(:,:,1)';

img2=reshape (img1,[35, 1]);

for i=1:35

if (img2(i,1)==0)

img2(i,1)=1;

end

end

for i=1:35

if (img2(i,1)==255)

img2(i,1)=0;

end

end y=img2;

end

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

images1=Imgread('C:alphabetА.png');

… images33=Imgread('C:alphabetЯ.png');

RA=[images1,images2,images3,images4,images5,images6,images7,images8

,...

images9,images10,images11,images12,images13,images14,images15,image

s16,...

images17,images18,images19,images20,images21,images22,images23,...

images24,images25,images26,images27,images28,images29,images30,imag

es31,... images32,images33];

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

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

В качестве матрицы целей создадим единичную матрицу размерностью 33 на 33.

Для этого введем код. Так же объявим переменные, содержащие в себе количество строк и столбцов.

%Создаем переменные для создания нейронной сети в NNtool

P=double(RA);

T=eye(33); [R,Q] = size(P);

[S2,Q] = size(T);

Для обучения сети нам понадобятся данные с шумом. Создадим эти данные, введя следующий код в окно команд:

%Создаем переменные для обучения на зашумленных данных нейронной сети в

%NNtool

P1=P;

T1=T;

for i=1:100

P1=[P1,P+rand(R,Q)*0.1,P+rand(R,Q)*0.2];

T1=[T1,T,T];

end

Для симуляции сети нам понадобится переменная, содержащая в себе набор признаков одной буквы, например, буквы И.

Введем соответствующую команду, заодно выведем на экран получившийся зашумленный образ (рис. 3.3).

noisy10 = P(:,10) + randn(35,1)*0.2; plotchar(noisy10);

% Зашумленный символ И

Рис. 3.3. Зашумленный образ буквы И

Теперь вызовем инструмент NNtool, где с помощью графического интерфейса создадим нейронную сеть. Сделать это можно с помощью соответствующей команды nntool (рис. 3.4).

Рис. 3.4. Окно менеджера данных нейронной сети

С помощью кнопки Import добавляем необходимые нам переменные (рис. 3.5).

Рис. 3.5. Окно импорта данных

Переменные P, P1 и noisy10 добавим, как input data. Переменные T, T1 добавим, как Target data. После импорта всех переменных окно должно выглядеть как на рис. 3.6.

Рис. 3.6. Окно менеджера данных нейронной сети после импорта переменных

Нажав кнопку New, приступим к созданию нейронной сети. В окне параметров нейронной сети введем настройки (рис. 3.7).

Рис. 3.7. Окно создания нейронной сети

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

После этого сеть должна появиться в окне менеджера данных нейронной сети в разделе networks (рис. 3.8).

Рис 3.8. Окно менеджера данных нейронной сети после создания нейронной сети

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

Рис. 3.9. Структура нейронной сети

Рассмотрим вкладку Train, где будет проводиться обучение нейронной сети. В начале проведем обучение на идеальных данных. Введем соответствующие параметры (рис. 3.10).

Рис. 3.10. Настройка данных, с помощью которых будет происходить обучение

Рис. 3.11. Параметры обучения нейронной сети

После установки всех параметров запускаем обучение, нажав кнопку Train Network (рис. 3.11). В появившемся окне (рис. 3.12) можем наблюдать процесс обучения нейронной сети.

Рис. 3.12. Процесс обучения

С помощью кнопки Performance можно просмотреть процесс обучения с помощью графика (рис. 3.13).

Рис. 3.13. График обучения нейронной сети

Теперь необходимо провести обучение на данных с шумом. Для этого изменим параметры во вкладке train (рис. 3.14, 3.15).

Рис. 3.14. Параметры обучения на данных с шумом

Рис. 3.15. Параметра обучения на данных с шумом

Окно процесса обучения будет выглядеть как рис. 3.16.

Рис. 3.16. Процесс обучения сети на данных с шумом

График обучения представлен на рис. 3.17.

Рис. 3.17. График обучения нейронной сети на данных с шумом

В результате сеть обучена. Теперь необходимо проверить нейронную сеть. Для этого создана переменная noisy10, которая содержит в себе символ «И» с шумом. Перейдем на вкладку Simulate, в окне созданной сети (рис. 3.18).

Рис. 3.18. Вкладка Simulate

Выберем в качестве входных данных переменную noisy10, а в качестве выходных данных напишем переменную Ans (рис. 3.19).

Рис. 3.19. Вкладка Simulate с выбранными параметрами

Для начала процесса симуляции необходимо нажать кнопку Simulate Network. После этого в окне менеджера данных нейронной сети появится переменная Ans (рис. 3.20).

Рис. 3.20. Окно менеджера данных нейронной сети после проведенной симуляции

Экспортируем нейронную сеть и переменную Ans. Для этого необходимо нажать кнопку Export и в появившемся окне выбрать необходимые нам переменные и еще раз нажать кнопку Export (рис. 2.21).

Рис. 3.21. Экспорт переменных

После экспорта в окно команд Matlab вводим следующий фрагмент кода:

%Проверяем результат распознания

Ans = compet(Ans);

answer = find(compet(Ans) == 1)

plotchar(P(:,answer));

% Распознанный символ И

Перед нами появится окно (рис. 3.22), отображающее распознанный символ.

Рис. 3.22. Распознанный символ И А в окне команд появится строчка:

answer =10

Означающая, что поступивший символ - это символ под номером 10 в нашем алфавите.

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

Данная работа знакомит с GUI-интерфейсом NNtoot и может в дальнейшем использоваться студентами для создания более сложных, по своей структуре и задаче, нейронных сетей в различных курсах [4-8].

Заключение

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

Список использованных источников

1. Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика. Пер. с англ. 240 с.

2. Саймон Хайкин Нейронные сети: полный курс Второе издание, 2006-1105с.

3. Rosenblatt F. 1962. Principles of Neurodinamics. New York: Spartan Books. (Русский перевод: Розенблатт Ф. Принципы нейродинамики. - М: Мир. - 1965.)

4. Minsky M. L, Papert S. 1969. Perseptrons. Cambridge, MA: MIT Press. (Русский перевод: Минский М. Л., Пейперт С. Персептроны. - М: Мир. - 1971.)

5. БаженовР.И.Интеллектуальные информационные технологии. Биробиджан: ПГУ им. Шолом-Алейхема, 2011. 176 с.

6. Баженов Р.И. Информационная безопасность и защита информации: практикум. Биробиджан: Изд-во ГОУВПО «ДВГСГА», 2011. 140 с.

7. Баженов Р.И. Проектирование методики обучения дисциплины «Информационные технологии в менеджменте» // Современная педагогика. 2014. № 8 (21). С. 24-31.

8. Баженов Р.И. Об организации научно-исследовательской практики магистрантов направления «Информационные системы и технологии» // Современные научные исследования и инновации. 2014. № 9-2 (41). С. 62-69.

9. Иванников В., Ланнэ А. Matlab для DSP. Нейронные сети: графический интерфейс пользователя [Электронный ресурс]. URL: http://www.chipinfo.ru/literature/chipnews/200108/1.html#lanne8

10. Медведев В. С., Потемкин В. Г. Нейронные сети. MATLAB 6. М.: ДИАЛОГ-МИФИ, 2001. 630 с.

11. Миронов И.С., Скурлаев С.В. Распознавание образов при помощи нейроннойсети

12. Шеремет А.И., Перепелица В.В., Денисова А.М. Проектирование нейронной сети для распознавания символов в программной среде MATLAB[Электронныйресурс]. URL: http://nauka.zinet.info/13/sheremet.php

13. Principe J.C., Euliano N.R., Lefebvre W.C. Neural and Adaptive Systems. Fundamentals Through Simulations. New York. John Wiley & Sons Inc. 2000.

14. Luo F-L., Unbehauen R. Applied Neural Networks for Signal Processing. Cambridge University Press. 1998.

15. Demuth H., Beale M. Neural Network Toolbox. For Use with MATLAB. The MathWorks Inc. 1992-2000.

16. Awadalla M. H. A., Ismaeil I. I., Sadek M. A. Spiking neural network- based control chart pattern recognition //Journal of Engineering and Technology Research. 2011. Т. 3. №. 1. С. 5-15.

17. Dede G., Sazlэ M. H. Speech recognition with artificial neural networks //Digital Signal Processing. 2010. Т. 20. №. 3. С. 763-768.

ref.by 2006—2019
contextus@mail.ru