Синтез объектной нейросетевой модели распознавания образов и её применение в задачах железнодорожной автоматики тема диссертации и автореферата по ВАК РФ 05.13.18, кандидат наук Зуев, Денис Владимирович

  • Зуев, Денис Владимирович
  • кандидат науккандидат наук
  • 2013, Санкт-Петербург
  • Специальность ВАК РФ05.13.18
  • Количество страниц 122
Зуев, Денис Владимирович. Синтез объектной нейросетевой модели распознавания образов и её применение в задачах железнодорожной автоматики: дис. кандидат наук: 05.13.18 - Математическое моделирование, численные методы и комплексы программ. Санкт-Петербург. 2013. 122 с.

Оглавление диссертации кандидат наук Зуев, Денис Владимирович

Оглавление

Введение

1. Анализ существующих методов распознавания образов и особенности их применения в задачах железнодорожной автоматики

1.1.Анализ существующих программных средств распознавания образов

1.2. Анализ существующих методов распознавания образов

1.3.Требования к методу распознавания железнодорожной технической документации. Выбор метода распознавания

1.4. Анализ существующих нейросетевых программных средств распознавания образов

1.5.Выводы и постановка задач исследования

2. Разработка метода выбора параметров для алгоритмов обучения нейронных сетей

2.1. Адаптация алгоритма RPROP для решения задачи минимизации функции ошибки нейронной сети

2.2.Разработка метода оптимизации алгоритмов обучения нейронных сетей. Применение метода для оптимизации алгоритма RPROP

2.3.Разработка схемы применения метода для решения задачи минимизации функции ошибки нейронной сети

2.4.Примеры допустимых функций и результаты применения метода к оптимизации алгоритма RPROP

2.5.Выводы по второму разделу

3. Особенности сходимости и условия применения online версий алгоритмов обучения нейронных сетей

3.1.Параллельные и последовательные версии алгоритмов обучения

нейронных сетей

3.2.Теорема о сходимости последовательной версии алгоритма обучения

нейронной сети. Условия сходимости

3.3.Выводы по третьему разделу

4. Построение объектных моделей синтеза нейронной сети и распознавания образов ЖАТ

4.¡.Формализация архитектуры сверточной нейронной сети Ьепе1-5

4.2.Построение объектной модели синтеза нейронных сетей

4.3.Разработка алгоритма распознавания МК ЖАТ

4.4.Построение объектной модели распознавания МК ЖАТ

4.5.Выводы по четвертому разделу

5. Применение разработанных методов для распознавания монтажной документации ЖАТ

5.1 .Виды монтажной технической документации

5.2.Подготовка обучающей базы

5.3.Схема работы программного комплекса распознавания МК ЖАТ. Оценка результатов распознавания

5.4.Выводы по пятому разделу

Заключение

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

Приложение 1. Используемые обозначения

Приложение 2. Исходный текст программы

Рекомендованный список диссертаций по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Введение диссертации (часть автореферата) на тему «Синтез объектной нейросетевой модели распознавания образов и её применение в задачах железнодорожной автоматики»

Введение

На сегодняшний день в хозяйстве автоматики и телемеханики ОАО «РЖД» внедрена система ведения электронного документооборота технической документации АРМ-ВТД [35]. Основной проблемой для получения полного эффекта от использования АРМ-ВТД является наличие огромного количества технической документации, представленной на бумажных носителях. Значительная часть этой документации является «старой», созданной без применения компьютера. При этом, основная часть новой технической документации хоть и выполняется средствами автоматизированного проектирования, но передается в группы технической документации дорог на бумажных носителях. Переводом в электронный вид на сегодняшний день занимаются сотни сотрудников групп технической документации дорог и сторонние бюро по переводу. Ввиду того что документация переводится вручную, на перевод тратится большое количество времени, и этот процесс является экономически затратным.

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

В настоящий момент на рынке представлено относительно небольшое количество готовых систем распознавания образов (Abby Fine Reader, Cuneiform и некоторые другие). Эти системы, в основном, направлены на распознавание текстов, созданных на компьютере. В хозяйстве автоматики и телемеханики существуют семь основных типов документов: схематический план станции, двухниточный план станции, принципиальная схема, монтажная схема, кабельный план, таблица взаимозависимостей, схема аппаратов управления. Существующие готовые системы не подходят для распознавания этих типов документов. Также в свободном доступе

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

• независимость от классифицируемых образов;

• минимальность предобработки образов;

• инвариантность относительно «небольших» сдвигов, поворотов, масштабирования образов;

• поддержка online методов обучения;

Актуальность темы диссертации в вычислительных методах обусловлена возможностью существенной экономии ресурсов вычислительных систем. Большую популярность сегодня приобретают так называемые «online» версии алгоритмов обучения нейронных сетей (и методов оптимизации в целом), но теоретически эти методы до сих пор не вполне обоснованы [74].

Как для обучения персептронов [44], так и для обучения специальных архитектур нейронных сетей [74], применяемые алгоритмы обучения часто содержат параметры, выбираемые пользователем на основе опыта и известных рекомендаций других авторов ("вручную"). От выбора этих параметров существенно зависит скорость достижения алгоритмом результата. На сегодняшний день нет общей методики автоматизированного

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

Вопросы распознавания образов широко представлены в трудах

отечественных и зарубежных ученых. В работах ученых Yann Lecun, Steve Lawrence, С. Lee Giles, Ah Chung Tsoi, Andrew D., Leon Bottou, Patrick Haffner исследуются вопросы построения специальных архитектур нейронных сетей, предназначенных для решения задач распознавания образов. В работах В. Н. Вапника, А. Я. Червоненкис разрабатываются и анализируются методы применения технологии SVM для классификации образов. Работы Р. М. Грановской, И. Я. Березной, С. С. Садыкова, И. Р. Самандрова посвящены применению методов скелетизации изображений для решения задач распознавания. И. А. Борисова, М. Э. Питерцев исследуют комбинированные подходы к решению задач распознавания образов.

Существенный вклад в решение задачи распознавания образов для отрасли железнодорожной автоматики и телемеханики внесли В. А. Ходаковский, Е. Ю. Бурсиан, А. Б. Погребняк.

Существенный вклад в развитие теоретических методов и практических подходов, применяемых при решении задач распознавания образов, внесли ученые М. Н. Василенко, А. А. Корниенко, В. Г. Трохов, А. Д. Хомоненко, В. В. Гарбарук, Е. А. Благовещенская, А. А. Флоринский, Д. А. Тархов, Д. В. Ефанов.

Существенный вклад в постановку задачи распознавания железнодорожной технической документации автоматики и телемеханики внесли сотрудники ОАО «РЖД» Н. Н. Балуев, Г. Ф. Насонов, В. И. Зиннер, И. Г. Васильев, С. Ф. Драгун, А. Ю. Полуян, сотрудники НТЦ-САПР ПГУПС И. С. Ушаков, С. В. Салихов, сотрудники проектного института «Гипротранссигналсвязь» А. Ф. Ершов, П. С. Ракул, сотрудники проектного института «Ленгипротранс» К. Н. Минин, Д. В. Саввов, Р. В. Побережный.

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

Предмет исследования - методы и алгоритмы синтеза структур нейронных сетей для решения задач распознавания

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

Для достижения поставленной цели и решения научной задачи в работе осуществляется решение следующих подзадач исследования:

1. Разработка методов автоматизированного выбора параметров алгоритмов обучения нейронных сетей.

2. Постановка и доказательство теоремы сходимости метода «online» обучения и его геометрическая интерпретация.

3. Синтез универсальной объектной модели распознавания образов.

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

На защиту выносятся:

1. Метод автоматизированного выбора параметров алгоритмов обучения нейронных сетей.

2. Геометрическая интерпретация метода «online» обучения и теорема о сходимости метода.

3. Универсальная объектная модель распознавания монтажных карточек железнодорожной автоматики и телемеханики.

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

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

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

Для создания программного обеспечения, реализующего разработанную объектную модель, использована среда разработки Microsoft Visual Studio 2010. Для написания программного кода выбран язык программирования С#.

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

Научная новизна:

1. Разработан метод автоматизированного выбора параметров алгоритмов обучения нейронных сетей.

2. Дано обоснование методов online обучения нейронных сетей. Определены границы его использования.

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

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

Апробация и реализация. Полученная в работе объектная модель реализована в виде программного модуля и является функциональным расширением системы ведения электронного документооборота АРМ-ВТД. Оформлен акт внедрения программного обеспечения в систему АРМ-ВТД.

Результаты работы докладывались на:

1. 8-й международной конференции по неравновесным процессам в соплах и струях, г. Алушта, 25-31 мая 2010 г.;

2. 1-й летней математической школе Балтийского института математики, Польша, г. Гдыня, 16-28 июля 2012 года (отмечена сертификатом);

3. 2-й международной научно-практической конференции «Проблемы математической и естественно-научной подготовки в инженерном образовании», Санкт-Петербург, ПГУПС, 15-16 ноября 2012 г.;

4. семинарах Санкт-Петербургского государственного Университета 2010-2012 г.;

5. семинарах кафедры «Автоматика и Телемеханика», ПГУПС, 2011 г.;

6. заседаниях кафедры «Высшая математика» Санкт-Петербургского государственного Политехнического Университета, 2013 г.;

7. VII международной конференции "International Cooperation in Engineering Education", Санкт-Петербургский государственный Политехнический Университет, 2-4 июля 2012 г.;

8. семинаре кафедры «Математика и моделирование», ПГУПС, 2013 г.

9. сетевой школе по ведению технической документации в хозяйстве СЦБ, Ярославль, 2009 г.

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

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

Структура и объем работы. Диссертационная работа представлена введением, 5 главами, списком литературы и приложениями, при этом составляет 130 стр. основного текста, содержит 36 рисунков, 3 приложения и 3 таблицы. Библиографический список составляют 83 наименования.

Краткая характеристика работы

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

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

По результатам проведенного анализа делается вывод, что представленным требованиям могут удовлетворять нейронные сети, а

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

Глава заканчивается выводами, которые содержат постановку основных задач диссертации.

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

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

Глава заканчивается выводами.

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

Глава заканчивается выводами.

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

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

• очистка отсканированного изображения от шума;

• сегментация таблицы на ячейки;

• выделение связных компонент внутри ячейки;

• подача связных компонент на нейронную сеть;

• распознавание сегментов с низким усредненным МБЕ;

• применение метода скользящего окна к компонентам с высоким М8Е;

• синтез распознанных данных;

• внесение данных в электронную монтажную карточку.

Рассматриваются проблемы распознавания «слипшихся» символов и даны пути их решения. Приводятся методы повышения достоверности распознавания одиночных символов. Глава заканчивается выводами.

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

В заключении представлены выводы и основные результаты исследования.

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

1. Анализ существующих методов распознавания образов и особенности их применения в задачах железнодорожной автоматики

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

1.1. Анализ существующих программных средств распознавания образов

В хозяйстве АТ существуют 7 основных типов технических документов: схематический план станции, двухниточный план станции, принципиальные схемы, монтажные схемы, кабельные планы, таблицы взаимозависимостей, путевой план перегона. Основным документов является схематический план станций. С точки зрения объема первое место среди всех типов технических документов занимает монтажная документация, которая составляет примерно 60% всей технической документации хозяйства АТ. Именно решению проблемы распознавания монтажной технической документации посвящена настоящая работа.

Рассмотрим положение дел с монтажной документацией на примере ШЧ-14 Октябрьской железной дороги. Примерно 65% всей документации ШЧ составляет монтажная документация. В абсолютных цифрах это

около 54 тысяч листов. Из них примерно 10% переведено в электронный вид и представлено в редактируемом отраслевом формате ОФ-ТД СЦБ [8].

Около 30% всей монтажной документации выполнено средствами систем автоматизированного проектирования (САПР) [8] и примерно 60% документов выполнены вручную. Документация, выполненная вручную, оказывается наиболее сложным объектом для распознавания.

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

• Abby Fine Reader распознает в среднем 5% монтажной карточки;

• Cuneiform распознает примерно 2% карточки;

• иные популярные средства дают ещё больший процент брака.

На рис. 1.1.1 приведены результаты экспериментов по распознаванию монтажной карточки описанными программными средствами.

о

в

а о

4

03 <<

5

В к

к я

43 о

п 43

СО

X

сг

к

о 43

п>

о

4

03

05

к

43

к

о

V: К о

43

ГС

и)

Й 5Г

4

05

4 Е

43

05 О

а о

К

03 05

ж

К ьа

О К

4

а *

а о

Кс *

05

43 Ч О

Л *

К

Исходная монтажная карточка

V

V

Результат распознавания программой Р|пеЯеас)ег -

Результат распознавания программой Сипе1^гт

-5*- .¡и

К * • • * цми -и— т А .лмд ■ .1 .гт . ^ ^ Ч -И— , • «,«4 • - — • .«л . 1 тает

I * 'V £ * г« • »-К """ »

: ^ : • « КГ,-„1 , I I и --......и,и 11! Т" II ' |Г ■ У^гг' гг.. [т!

1.2. Анализ существующих методов распознавания образов

Основными подходами для решения задачи распознавания образов в настоящее время являются следующие:

1. сравнение с шаблоном [4, 5, 20, 58];

2. машина опорных векторов [68, 69];

3. нейронные сети [6, 21, 26, 43].

Каждый подход предполагает наличие так называемой «обучающей выборки», которая представляет из себя расклассифицированные наборы образов, считающиеся эталонами. Проверка эффективности метода распознавания образов производится статистическими способами. Помимо обучающей выборки рассматривают «тестовую выборку», также представляющую собой расклассифицированный набор образов. Метод распознавания применяется к каждому образу из тестовой выборки, а затем анализируется количество корректно распознанных образов, некорректно распознанных образов и нераспознанных образов [65].

Каждый из приведенных основных методов распознавания в свою очередь также классифицируется. Классификация представлена на рис. 1.2.1.

к

о ^

ГС

о я

оо

О

о\ •о

рз

О 03

я

Ы р

о о

к

>©•

к я со я к м

о

V:

В

П> о н га

V!

5 В

к

х

п> ч о й о га

чз р о Я

0

и>

1 Р

га

»5 Ж

к

50

Сравнение с шаблоном

тт

Прямое (равнение

Сравнение скелетов

Рассмотрим основные идеи каждого подхода, а также приведем их достоинства и недостатки.

Распознавание образов методом сравнения с шаблоном выполняется следующим образом. Вводится функция р(А,В) > 0, где А ,В суть образы. Такую функцию называют расстоянием между образами [29]. Пусть дан подлежащий распознаванию образ X, тогда класс, к которому следует отнести X, определяется как класс, в котором находится образ из обучающей выборки, расстояние до которого минимально [30]. При этом, в роли функции расстояния р для задачи распознавания черно-белых печатных символов может, например, выступать мера пересечения образов как множеств черно-белых пикселов.

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

Т

Рисунок 1.2.2 - Скелет образа буквы Т

Метод сравнения с шаблоном обладает следующими достоинствами:

1. простота в реализации;

2. отсутствие процедуры «обучения»;

3. наличие явного критерия классификации.

Метод сравнения с шаблоном обладает следующими недостатками:

1. сложность выбора критерия классификации;

2. уменьшение скорости работы метода с увеличением объема обучающей выборки;

3. необходимость нормализации образов;

4. сильная чувствительность к небольшим деформациям образов;

5. отсутствие инвариантности относительно поворотов, смещений;

6. необходимость предобработки образов (очистка от шумов и т.п.).

Основная идея метода машины опорных векторов для решения задачи распознавания образов заключается в следующем. Подвергая образ кодированию с помощью некоторого алгоритма, получают набор п чисел. Например, для решения задачи классификации черно-белых символов механизм кодирования может быть следующим. Проходя по таблице пикселов некоторым путем, черному пикселу ставят в соответствие 1, а белому пикселу — 0. Эти п чисел интерпретируют как точку некоторого пространства размерности п. При этом, вся обучающая выборка рассматривается как набор точек, которые по признаку принадлежности к классам ассоциированы со своими классами. Пример процедуры кодирования представлен на рис. 1.2.3.

—>

/

X = (0 10010101010101 0)г

Рисунок 1.2.3 - Процедура кодирования образа буквы А

Далее, с помощью методов квадратичного программирования находят такую п 4- 1-мерную гиперплоскость или поверхность, которая разделяет заданные классы (рис. 1.2.4).

Рисунок 1.2.4 - Геометрическая интерпретация результата работы метода

машины опорных векторов

Заметим, что в случае поиска поверхности метод называют методом с разделяющей поверхностью [68].

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

подлежащему классификации, описанным методом ставится в соответствие

21

0 1 0 0

1 0 1 0

1 0 1 0

1 0 1 0

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

Метод машины опорных векторов обладает следующими достоинствами:

1. простота в реализации;

2. быстрая процедура «обучения»;

3. наличие явного критерия классификации.

Метод машины опорных векторов обладает следующими недостатками:

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

2. уменьшение скорости работы метода с увеличением объема обучающей выборки;

3. необходимость выбора инвариантного к смещениям, поворотам и изменениям масштаба способа кодирования;

4. необходимость предобработки образов (очистка от шумов и т.п.);

5. в случае поиска гиперплоскости возможна только бинарная классификация;

6. процедура поиска разделяющей гиперповерхности является сложной задачей;

7. стабильность работы метода обеспечивается только при небольшом количестве классов.

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

Пусть \Л/ - вектор пространства И.п, f - фиксированная нелинейная функция.

Под нейроном [39] будем понимать функционал Р: И" -> I с ^ определяемый соотношением:

Р(Х) = Г(< X, № >). Схематично модель нейрона представлена на рис 1.2.5.

Рисунок 1.2.5 - Схематичное представление нейрона

Связь такой математической модели с моделью биологического нейрона заключается в следующем: вектор X интерпретируются как набор сигналов, полученных от аксонов предшествующих нейронов; компоненты вектора Ш характеризуют состояния синапсов, соединяющих аксоны предшествующих нейронов с дендритами текущего нейрона; функция { является генератором сигнала нейрона. Вектор IV называют вектором весовых коэффициентов нейрона, функцию $ - активационной или передаточной функцией нейрона, вектор X - входом нейрона, значение Х; >) является выходом нейрона. Связывая между собой нейроны таким образом, что выходы одних нейронов являются входами других нейронов, мы получаем новый объект - нейронную сеть [39] (рис. 1.2.6):

р.кт дп

Рисунок 1.2.6 - Графическое изображение нейронной сети

23

Функционально нейроны в сети делятся на 3 типа: входные, выходные и промежуточные. Входные нейроны получают сигнал от внешнего источника, промежуточные обрабатывают сигнал, выходные нейроны реализуют внешний отклик сети [18]. На рисунке 3 представлена нейронная сеть прямого распространения. Такая сеть состоит из нескольких слоев, каждый слой состоит из нескольких нейронов. На рисунке нейрон с индексом pq находится в слое р на месте q. Выходные значения нейронов слоя р являются входными значениями слоя р -1- 1. Описанную нейронную сеть называют перцептроном [50].

С математической точки зрения нейронная сеть является отображением [29] F: Яп. Решение задачи распознавания образов с помощью

перцептрона формулируется следующим образом.

Пусть дана обучающая выборка (Хх, У!), (Х2,У2),..., (Хк,Ук). Здесь X} £ представляет собой закодированный некоторым способом образ, У^ £ 11п определяет принадлежность образа Х^ одному из п классов. Компонента с номером 1 вектора У^ равна единице, остальные - нули. Требуется построить такую нейронную сеть И: 11т Яп, что для всей обучающей выборки Р(Х^ = У^

Решение любой задачи нейросетевым способом состоит из трех основных этапов: выбор конфигурации сети, обучение сети (настройка сети), получение результатов [45].

Похожие диссертационные работы по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Список литературы диссертационного исследования кандидат наук Зуев, Денис Владимирович, 2013 год

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

1. Андрейчиков A.B., Андрейчикова О.Н. Интеллектуальные информационные системы. - М.: Финансы и статистика, 2004. - 424 с.

2. Барский А. Б. Нейронные сети: распознавание, управление, принятие решений. — М.: Финансы и статистика, 2004. — 176 с.

3. Борисенко В.И., Златопольский А.Л., Мучник И.Б. Сегментация изображения (состояние проблемы) //Автоматика и телемеханика. - М.; АН СССР. Вып. 7. 1997. С. 3-56.

4. Бурсиан Е. Ю. Алгоритмы распознавания чертежных рукописных символов. // Приборостроение. Известия ВУЗов. № 7. 2008.

5. Бурсиан Е. Ю. Распознавание железнодорожной документации. // Известия Санкт-Петербургского университета путей сообщения. Выпуск 3. 2007.

6. Вапник В. Н., Червоненкис А. Я. Теория распознавания образов. — М.: Наука, 1974.—416 с.

7. Вапник В. Н. Восстановление зависимостей по эмпирическим данным. -М.: Наука, 1979.-448 с.

8. Василенко М. Н., Булавский П. Е. Организация электронного документооборота в хозяйстве сигнализации, связи и вычислительной техники. // Автоматика и телемеханика на железнодорожном транспорте. Тезисы докладов. - СПб. 2004.

9. Васильев А. Н., Тархов Д. А. Нейросетевое моделирование. Принципы. Алгоритмы. Приложения - Спб.: Изд-во Политехи. Ун-та, 2009. - 528 с.

10. Васильев В. И. Распознающие системы. Справочник. — 2-е изд. — К.: Наукова думка, 1983. — 424 с.

11. Винберг Э. Б. Курс алгебры. - М.: МЦНМО, 2011. - 592 с.

12. Воеводин В. В. Математические модели и методы в параллельных процессах. - М.: Наука, 1986. - 296 с.

13.

14.

15.

16.

17.

18.

19,

20.

21

22.

23

24

25

26

27

28

Воеводин В. В., Воеводин Вл. В. Параллельные вычисления.. - Спб.: BHV, 2002. - 600 с.

Галеев Э. М., Тихомиров В. М. Краткий курс теории экстремальных задач. - М.: Издательство Московского университета, 1989. - 204 с. Галушкин А. И. Теория нейронных сетей. - М.: ИПРЖ, 2000. - 415 с. Головко В. А. Нейронные сети: обучение, организация и применение. -М.: ИПРЖР, 2001.-256 с.

Горелик A. JL, Скрипкин В. А. Методы распознавания. — 4-е изд. — М.: Высшая школа, 1984, 2004. — 262 с.

Горбань А. Н. Обучение нейронных сетей. - М.: Параграф, 1990. - 160 с.

Горбань А. Н., Россиев Д. А. Нейронные сети на персональном компьютере. - Новосибирск: Наука, 1996. - 276 с. Грановская P.M., Березная И.Я. Целостное представление формы в виде скелета// Сб.: Проблемы бионики. - Харьков: Изд. ХГУ, 1983. Внп. 30. С. 30-25.

Гузик В. Ф. и др. Нейрокомпьютеры в системах обработки сигналов. -М.: Радиотехника, 2003. - 224 с.

Дамбраускас А. П. Симплексный поиск. - М.: Энергия, 1979. - 176 с. Демиденко Е. 3. Оптимизация и регрессия. - М.: Наука, 1989. - 293 с. Джордж Стокман, Линда Шапиро. Компьютерное зрение. — М.: Бином. Лаборатория знаний, 2006. — 752 с.

Дидэ Э. и др. Методы анализа данных. - М.: Финансы и статистика, 1985.-357 с.

Дуда Р., Харт П. Распознавание образов и анализ сцен. - М.: Мир, 1976. -511 с.

Дэннис Дж., Шнабель Р. Численные методы безусловной оптимизации

и решения нелинейных уравнений. - М.: Мир, 1988. - 440 с.

Жиглявский А. А. Математическая теория глобального случайного

поиска. - Л.: издательство Ленинградского университета, 1985. - 296 с.

82

29. Зорич В. А. Математический анализ. Часть I. - М.: МЦНМО, 2012. -702 с.

30. Зорич В. А. Математический анализ. Часть II. - М.: МЦНМО, 2012. -818 с.

31. Зуев Д. В. и др. Автоматизированная система экспертизы схемных решений железнодорожной автоматики и телемеханики. Транспорт Российской федерации. № 5. 2011. - С. 64-67.

32. Зуев Д. В. и др. Методы оптимизации при координации взаимодействия организаций, участвующих в заказах оборудования для систем СЦБ. // Вестник Ростовского Государственного Университета Путей Сообщения : Научно-технический журнал / МПС РФ. - Ростов н/д : РГУПС. - 2010. - N 2. - С. 68-73.

33. Зуев Д. В. и др. Контроль жизненного цикла СЖАТ. // Автоматика, связь, информатика : Научно-популярный производственно-технический журнал / МПС РФ. - М., 2011. - № 1. - С. 55-56

34. Зуев Д. В. Нейронная сеть, классифицирующая линейные операторы. -// Математика в вузе и в школе. Санкт-Петербургский государственный университет путей сообщения. - 2011.

35. Зуев Д. В. и др. Новые функциональные возможности АРМ-ВТД и перспективы развития электронного документооборота. // Сборник докладов 6-й международной научно-практической конференции «Транс ЖАТ-2012» - 2012.

36. Зуев Д. В. и др. Связь прямых разложений Абелевых групп без кручения с параллельными формами алгоритмов. // Материалы 8-й международной конференция по неравновесным процессам в соплах и струях, г. Алушта - 2010 г.

37. Иванов А. И. Нейросетевые алгоритмы биометрической идентификации. - М.: Радиотехника, 2004. - 144 с.

38. Ивахненко А. Г. и др. Перцептрон - система распознавания образов. -

К.: Наукова думка, 1975. - 432 с.

83

39. Каллан Р. Основные концепции нейронных сетей. - М.: Вильяме, 2001. -288 с.

40. Катковник В. Я. Непараметрическая идентификация и сглаживание данных. - М.: Наука, 1985. - 336 с.

41. Каханер Д. Численные методы и программное обеспечение. - М.: Мир, 2001.-575 с.

42. Колмогоров А. Н. О представлении непрерывных функций нескольких переменных суперпозициями непрерывных функций меньшего числа переменных // Доклады АН СССР. - 1956. - Т.108, № 2. - С. 179 - 182.

43. Кочладзе З.Ю., Оганезов A.J1. Использование двухслойной нейронной модели в процессах распознавания образов // Научно-технический журнал «Энергия» №4 (36) I. Тбилиси, 2005. стр. 78.

44. В.В. Круглов. Нечеткая логика и искусственные нейронные сети. - М.: Физматлит, 2000. - 224 с.

45. Круглов В. В., Борисов В. В. Искусственные нейронные сети. - М.: Горячая линия-Телеком, 2001. - 382 с.

46. Кржыжановский Б. В., Кржыжановский В. М. Быстрая система распознавания и принятия решения на основе векторной нейронной сети // Искусственный интеллект. - Донецк, 2004. - № Зю - С. 534-541.

47. Кржыжановский Б. В., Магомедов Б. М., Микаэлян A. J1. О локальных минимумах в задачах оптимизации // Материалы Седьмой Международной научно-технической конференции «Искусственный интеллект. Интеллектуальные и многопроцессорные системы - 2006». -Таганрог: Издательство ТРТУ, 2006. - Том 2. - С. 156-160.

48. Лоусон Ч., Хенсон Р. Численное решение задач метода наименьших квадратов. - М.: Наука, 1986. - 230 с.

49. Медведев В. С. Нейронные сети. Matlab 6. - M.: Диалог-Мифи, 2002. -490 с.

50. Минский М., Пейперт С. Перцептроны. - М.: Мир, 1971.-262 с.

51.

52.

53.

54.

55.

56,

57.

58

59

60

61

62

63

64

65

Назаров А. В., Лоскутов А. И. Нейросетевые алгоритмы прогнозирования и оптимизации систем. - СПб.: Наука и Техника, 2003.-384 с.

Осовский С. Нейронные сети для обработки информации. - М.: Финансы и статистика, 2002. - 344 с.

Первозванский А. А., Буцев А. В. Локальная аппроксимация на искусственных нейронных сетях. // Автоматика и телемеханика. - 1995. - № 9. - С. 127-136.

Полак Э. Численные методы оптимизации. - М.: Мир, 1974. - 376 с. Поляк Б. Т. Введение в оптимизацию. - М.: Наука, 1983. - 384 с. Розенблатт Ф. Принципы нейродинамики: Перцептрон и теория механизмов мозга. - М.: Мир, 1965. - 480 с. Рутковская Д. и др. Нейронные сети, генетические алгоритмы и нечёткие системы. - М.: Горячая линия-Телеком, 2004. - 452 с. Садыков С.С. Самандров И.Р. Скелетизация бинарных изображений // Зарубежная радиоэлектроника, М.: Радио и связь. Вып. 11, 1985. С. 3035.

Cea Ж. Оптимизация. Теория и алгоритмы. - М.: Мир, 1973. - 244 с. Стронгин Р. Г. Численные методы в многоэкстремальных задачах. - М.: Наука, 1987.-240 с.

Терехов В. А. и др. Нейросетевые системы управления. - СПб.: СПбГУ, 1999.

Терехов В. А. и др. Нейросетевые системы управления. - М.: ИПРЖР, 2002.-480 с.

Ту Дж., Гонсалес Р. Принципы распознавания образов. — М.: Мир, 1978,411 с.

Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика. - М.: Мир, 1992.-240 с.

Хайкин. С. Нейронные сети. Полный курс. - М.: Вильяме, 2006. - 1104 с.

66. Черноруцкий Н. Г. Методы оптимизации и принятия решений. - СПб.: Лань, 2001.-382 с.

67. Attali J.-G., Pages G. Approximation of Functions by a Multilayer Perceptron: a New Approach // Neural Networks. - 1977. - Vol. 10 No. 6. -pp. 1069-1081.

68. Bartlett P., Shawe-Taylor J. Generalization performance of support vector machines and other pattern classifiers // Advances in Kernel Methods. - 1998 — MIT Press, Cambridge, USA.

69. Piatt J. C. Fast training support vector machines using sequential minimal optimization // Advances in Kernel Methods / Ed. by B. Scholkopf, С. C. Burges, A. J. Smola. — MIT Press, 1999. — pp. 185-208.

70. Cybenko G. Approximation by superposition of a sigmoidal function // Mathematics of Control, Signals, and Systems. - 1989. - Vol. 2. - pp. 303314.

71. Hornik K., Stinchcombe M., White H. Multilayer feedforward networks are universal approximators // Neural Networks. - 1989. - Vol. 2. - pp. 359366.

72. Hristev R. M. The ANN Book. - GNU, 1998. - 392 p.

73. Kurkova V. Approximation of Functions by Perceptron Networks with Bounded Number of Hidden Units // Neural Networks. - 1995. - Vol. 8, No. 5.-pp. 745-750.

74. Yann LeCun, Leon Bottou, Yoshua Bengio, Patrick Haffner. Gradient-Based Learning Applied to Document Recognition // Proc. IEEE. 1998.

75. D. Zuev, S. Bochkarev. solution of the problem of noninvariance of using connectionist method for image recognition. // Materials of the II international research and practice conference, Vol. I, Munich, December 18-19, 2012; Germany, 2012 -650p 257-259 pp.

76. M. Riedmiller. A direct adaptive method for faster backpropagation learning: The RPROP algorithm. // M. Riedmiller, H.Braun - San Francisco, 1993.

77. M. Riedmiller. RPROP - A Fast Adaptive Learning Algorithm // Institut fur logic.

78. Описание алгоритма RPROP [Электронный ресурс] / Режим доступа: http://www.basegroup.ru/library/analysis/neural/rprop/ (Дата обращения 14.04.2013)

79. Метод Нелдера-Мида [Электронный ресурс] / Режим доступа: http://ru.wikipedia.org/wiki/MeTQfl Нелдера - Мида (Дата обращения 14.04.2013)

80. Теорема Цыбенко [Электронный ресурс] / Режим доступа: http://actcomm.dartmouth.edu/gvc/papers/approx by_superposition.pdf (Дата обращения 14.04.2013)

81. Описание базы данных MNIST [Электронный ресурс] / Режим доступа: http://yann.lecun.com/exdb/mnist/(Дата обращения 14.04.2013)

82. Описание работы с базой данных MNIST и результаты экспериментов [Электронный ресурс] / Режим доступа:

http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf (Дата обращения 14.04.2013)

83. Описание системы Deductor [Электронный ресурс] / Режим доступа: http://www.basegroup.ru/deductor/ (Дата обращения 14.04.2013)

Приложение 1. Используемые обозначения

1. Элемент х принадлежит множеству X: х Е X

2. а по определению равно Ь-. а := Ь

3. Множество всех вещественных чисел: Я.

4. Векторное пространство: И71;

его элементы: (а1# а2,..., ап), где а^Е Я, I = 1,2,..., п.

Линейные операции.

1) сложение элементов в пространстве Яп :

(а1,а2,...,ап) + ,(32,-,Рп) := О1 + /?1,а2 + р2.-><*п + Рп),

2) умножение элемента на число у Е И : у(а1>а2> —>ап) := (уа1,уа2,...,уап).

Векторы пространства Ип в тексте выделены жирным шрифтом.

5. Скалярное произведение векторов X = (х1,х2, -.,хп) и У — (Ух.Уг> —>Уп): <Х,У>:= Х±у±+ Х2у2+ ... + Хпуп.

6. А является отображением из И171 в Ип:

А. нт дп

7. Ссылка на литературу с номером х в списке литературы: [х]

8. ЖАТ:

Железнодорожная автоматика и телемеханика

9. МК:

Монтажная карточка

Приложение 2. Исходный текст программы

using System;

using System.Collections.Generic; using System.Linq; using System.10;

using System.Runtime.Serialization.Formatters.Binary; using System.Threading.Tasks;

namespace ANN {

[Perializacle()]

class Network {

[XonSerializec()] public ParallelOptions ParallelOption = new ParallelOptions();

public enum Net vvor <Typc {Lenet5 };

protected List<Layer> layers = new List<Layer>();

protected list<MapLayer> maps_layers = new List<MapLayer>();

//Создание простой полносвязной сети

public void Serialize(string filename) {

Stream TestFileStream = File.Create(filename); BinaryFcrmatter serializer = new BinaryFor:na~ter () ; serializer.Serialize(TestFileStream, this); TestFileStream.Close();

}

List<List<bool>> CreateEmptyConnectionTable(int source__maps_count,

int target_maps_count) {

List<List<bool>> connection_table = new List<list<bool>>();

for (int i = 0; i < source_maps count; i++) {

List<bool> col = new List<bool> () ;

for (int j =0; j < target_maps_count; j++) {

col.Add(false);

connection_table.Add(col);

return connection_table;

}

List<List<bool>> CreateFullConnectionTable(int source_maps_count, int

target_maps_count) {

. 1st <Li i. _<bool>> connection_table = new !„,is:.<-ist<bool>> () ;

for (int i = 0; i < source_maps_count; i++) {

List<bool> col = new List<bool>();

for (int j =0; j < target_maps_count; j++) {

col.Add(true);

}

connection_table.Add(col);

}

return connection_table;

}

Lisc<List<bool>> CreateDiagonalConnectionTable(int maps_count) {

var connection_table = CreateEmptyConnectionTable(maps_count,

maps_count);

for (int i = 0; i < maps_count; i++) {

connection_table[i][i] = true;

}

return connection_table;

}

Lisz<List<bool>> GetLenetS2C3ConnectionTable() {

var connection_table = CreateEmptyConnectionTable(6, 16); connection_table[0][0] = true; connection_table[1][0] = true; connection_table[2][0] = true;

connection_table[1][1] = true; connection_table[2][1] = true; connection table[3][1] = true;

connection _table 2] [2] = true ;

connection _table 3] [2] = true;

connection _table 4] [2] = true ;

connection _table 3] [3] = true ;

connection _table 4] [3] = true ;

connection _table 5] [3] = true ;

connection _table 0] [4] = true ;

connection jtable 4 ] [4] = true ;

connection _table 5] [4] = true ;

connection _table 0] [5] = true ;

connection _table 1] [5] = true ;

connection table 5] [5] = true ;

connection _table 0] [6] = true ;

connection _table 1] [6] = true ;

connection _table 2] [6] = true ;

connection _table 3] [6] = true;

connection table 1] [7] = true ;

connection _table 2] [7] = true ;

connection _table 3] [7] = true ;

connection _table 4] [7] = true ;

connection _table 2] [8] = true ;

connection _table 3] [8] = true ;

connection _table 4] [8] = true ;

connection table 5] [8] = true ;

connection _table 0] [9] = true ;

connection _table 3] [9] = true ;

connection _table 4] [9] = true ;

connection _table 5] [9] = true ;

connection table 0] [10] = true

connection table 1] [10] = true

connection table 4] [10] = true

connection table 5] [10] = true

connection _table [ 0 ] [11] = true ;

connection _table [1] [11] = true ;

connection _table[2] [11] = true ;

connection _table [5] [11] = true ;

connection jtable [0] [12] = true ;

connection _table [ 1 ] [12] = true ;

connection table [3] [12] = true ;

connection table[4] [12] = true ;

connection _table [ 1 ] [13] = true ;

connection _table[2] [13] = true ;

connection _table[4] [13] = true

connection _table[5] [13] = true

connection _table [0] [14] = true

connection _table [2] [14] = true

connection _table [ 3 ] [14] = true

connection _table[5] [14] = true

connection _table[0] [15] = true

connection _table [ 1 ] [15] = true

connection _table[2] [15] = true

connection _table[3] [15] = true

connection _table [4] [15] = true

connection table[5] [15] = true;

return connection_table;

}

List<Synapse> BindMaps(Map source_map, Map target_map, int

window_size, int offset) {

Lis~<Synapse> synapses = new Lisc<Synapse>();

for (int i = 0, target_pos_i =0; i < source map.neurals.Count -

window_size + 1; i += offset, target_pos_i++) {

for (int j =0, target_pos_j =0; j < source_map. neurals . Count - wmdow_size + 1; j += offset, target_pos__j ++)

for (int k = 0; k < window_size; k++) {

for (int 1=0; 1 < window_size; 1++) {

Synapse synapse = new Synapse(source_map.neurals[i + k] [ j +1], target_map.neurals[target_pos_i][target_pos_j]);

synapses.Add(synapse);

target map. neurals [target_pos__i ] [target_pos j].input synapses.Add(synapse);

source_map.neurals[i + k][j +

1].output_synapses.Add(synapse);

}

}

if

(target_map.neurals[target_pos_i][target_pos_j].has_bias == false)

{

Synapse bias_synapse = new Synapse(null, target_map.neurals[target_pos_i][target_pos_j]);

synapses.Add(bias_synapse);

target_map.neurals[target_pos_i][target_pos_j].has_bias = true;

target_map.neurals[target_pos_i][target_pos_j].bias

bias_synapse;

}

}

}

return synapses;

}

void BindMapLayers(MapLayer source_map_layer, MapLayer target_map_layer, ltsr<List<bool>> connection_matrix, int window_size, int offset)

{

for(int s_map = 0; s_map< source_map_layer.maps.Count; s_map++) {

for(int t_map = 0; t_map< target_map_layer.maps.Count;

t_map++)

{

if(connection_matrix[s_map][t_map] == true)

var synapses = BmdMaps (source_map_layer.maps [ s_map] , target_map_layer.maps[t_map], wmdow_size, offset);

foreach(var synapse m synapses) {

source map layer.synapses.Add(synapse);

}

}

}

}

}

MapLayer CreateCMapLayer(int maps_count, mt width, int height) {

MapLayer map__layer = new MapLayer();

for (int i=0; 1 < maps_count; i++) {

map_layer.maps.Add(new CMap(width, height));

}

return map_layer;

}

MapLayer CreateSMapLayer(int maps_count, mt width, int height) {

MapLayer map_layer = new MapLayer();

for (int i=0; l < maps_count; i++) {

map_layer.maps.Add(new SMap(width, height));

}

return map_layer;

}

MapLayer CreateFMapLayer (mt maps_count, int width, mt height) {

MapLayer map_layer = new MapLayer();

for (mt i = 0; l < maps__count; i++) {

map_layer.maps.Add(new FMap(width, height));

}

return map_layer;

}

MapLayer CreatelnputMapLayer (mt width, mt height) {

MapLayer map_layer = new MapLayer();

map_layer.maps.Add(new InputMap(width, height));

return map_layer;

}

private void FormNetworkFromMapLayers(Г,.st<MapLayer> map_layers) {

if (map_layers.Count < 2) {

throw new Exceptor. ("He достаточно слоев карт");

}

Layer InputLayer = new Layer();

for (int i = 0; i < map_layers[0].maps.Count; i++) {

for (int j =0; j < map_layers[0].maps[i].neurals.Count; j++) {

for (int k = 0; k <

map_layers[0].maps[i].neurals[j].Count; k++)

{

InputLayer.neurals.Add(map_layers[0].maps[i].neurals[j][k]);

}

}

}

for (int i = 0; i < map_layers[0].synapses.Count; i++) {

InputLayer.synapses.Add(map layers[0].synapses[i]);

}

layers.Add(InputLayer); //Layer prev_layer = InputLayer;

for (xnt i = 1; i < map_layers.Count; i++) {

Layer layer = new Layer();

for (int j =0; j < map layers[i].maps.Count; ]++) {

for (int k = 0; k < map_layers[i].maps[j].neurals.Count;

k++)

{

for (int 1=0; 1 <

map_layers[i].mapsfj].neurals[k].Count; 1++)

{

layer.neurals.Add(map_layers[i].maps[j].neurals[k][1]);

}

}

}

for (int j = 0; j < map_layers[i].synapses.Count; j++) {

//prev_layer . synapses . Add (irap_Iayers .synapses];] ) ; layer.synapses.Add(map_layers[i].synapses[j]);

}

layers.Add(layer); //prev_layer = layer;

private void FormNetwork_Lenet5(int outputs) {

var Input = CreatelnputMapLayer(32, 32); var CI = CreateCMapLayer(6, 28, 28);

BindMapLayers(Input, CI, CreateFullConnectionTable(1, 6), 5, 1); var S2 = CreateSMapLayer(6, 14, 14);

BindMapLayers(CI, S2, CreateDiagonalConnectionTable(6), 2, 2); var C3 = CreateCMapLayer(16, 10, 10);

BindMapLayers (S2, C3, GetLenetS2C3ConnectionTable(), 5, 1); var S4 = CreateSMapLayer(16, 5, 5);

BindMapLayers(C3, S4, CreateDiagonalConnectionTable(16), 2, 2); var C5 = CreateCMapLayer(120, 1, 1);

BindMapLayers(S4, C5, CreateFullConnectionTable(16, 120), 5, 1); var F6 = CreateFMapLayer(outputs, 1, 1);

BindMapLayers(C5, F6, CreateFullConnectionTable(120, outputs), 1,

L_st:<MapLayer> map_layers = new Lisc<MapLayer> () ; map_layers.Add(Input); map_layers.Add(CI); map_layers.Add(S2);

map_layers.Add(C3); map_layers.Add(S 4); map_layers.Add(C5); map_layers.Add(F6);

FormNetworkFromMapLayers(map_layers); maps_layers = map_layers; InitWeightsC();

public Network(NetworkType network_type, params int[] params_list) {

ParallelOption.MaxDegreeOfParallelism = 4; ParallelOption.TaskScheduler = null;

switch (network type) {

case NetworkType.Lenet5:

if (params_list.Count() != 1) {

throw new Exception("Для построения LenetS необходимо

указать число нейронов в выходном слое");

}

FormNetwork_Lenet5(params_list[0]); break;

}

}

public Network(int inputs, Lis~<int> hiddens, inr outputs) {

Layer inputLayer = new Layer();

for (int i = 0; i < inputs; i++) {

inputLayer.neurals.Add(new LNeural());

}

layers.Add(inputLayer); int prevLayer = 0;

if (hiddens != null) {

foreach (var neuralsCount in hiddens) f

Layer layer = new Layer();

for ( int i — 0; i. < neuralsCount; i++) {

SNeural neural = new SNeural () ; //Связываем

foreach (var prevNeural in layers[prevLayer].neurals) {

Synapse synapse = new Synapse(prevNeural,

neural);

layers[prevLayer].synapses.Add(synapse);

}

//Добавляем зксящмй синапс (bias) Synapse bias = new Synapse(null, neural); layers[prevLayer].synapses.Add(bias);

layer.neurals.Add(neural);

}

layers.Add(layer); prevLayer++;

}

}

Layer outputLayer = new Layer();

for (int i = 0; i < outputs; i++) {

SNeural neural = new SNeural();

//связываем

foreach (var prevNeural in layers[prevLayer].neurals) {

Synapse synapse = new Synapse(prevNeural, neural); layers[prevLayer].synapses.Add(synapse);

}

//Добавляем влсяций синапс (oias) Synapse bias = new Synapse(null, neural);

outputLayer.neurals.Add(neural); layers[layers.Count-1].synapses.Add(bias);

}

layers.Add(outputLayer); InitWeights();

void InitWeights() {

int i = 1;

var randomize = new rt-ir.dor (new F~pdoT,() . Next() ) ;

foreach (var layer in layers) {

foreach (var synapse in layer.synapses) {

synapse.w = randomize.NextDouble() * 0.01; i + +;

}

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