Нейронные сети. Программирование

Автор работы: Пользователь скрыл имя, 13 Апреля 2014 в 16:56, курсовая работа

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

Нейрон – это узел нейронной сети, являющийся упрощённой моделью естественного нейрона. Математически, искусственный нейрон обычно представляют как некоторую нелинейную функцию от единственного аргумента — линейной комбинации всех входных сигналов. Данную функцию называют функцией активации или функцией срабатывания, передаточной функцией. Полученный результат посылается на единственный выход. Такие искусственные нейроны объединяют в сети — соединяют выходы одних нейронов с входами других. Искусственные нейроны и сети являются основными элементами идеального нейрокомпьютера.

Вложенные файлы: 1 файл

Neyronnye_seti.docx

— 497.11 Кб (Скачать файл)

МИНОБРНАУКИ РОССИИ

 

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Челябинский государственный университет»

 

 

 

 

 

 

 

 

Курсовая работа

 

Нейронные сети.

Программирование

 

 

 

 

 

 

 

 

Факультет: Физический    Студент: Д.Б. Шверт

Специальность: КОИБАС    Группа: Ф-305

Кафедра: радиофизики и электроники  Научный руководитель: доцент,

кандидат технических наук В.К. Усачев

Дата защиты: 31.05.2012

Оценка:


 

 

Челябинск, 2012

 

 

Содержание

 

Введение

Нейрон – это узел нейронной сети,  являющийся упрощённой моделью естественного нейрона. Математически, искусственный нейрон обычно представляют как некоторую нелинейную функцию от единственного аргумента — линейной комбинации всех входных сигналов. Данную функцию называют функцией активации или функцией срабатывания, передаточной функцией. Полученный результат посылается на единственный выход. Такие искусственные нейроны объединяют в сети — соединяют выходы одних нейронов с входами других. Искусственные нейроны и сети являются основными элементами идеального нейрокомпьютера.

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

Нейрокомпьютер – устройство переработки информации на основе принципов работы естественных нейронных систем.

 

Нейрон

Математическая модель

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

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

 

Здесь xi и ωi – соответственно сигналы на входах нейрона и веса входов, функция u называется индуцированным локальным полем, а f(u) – передаточной функцией. Возможные значения сигналов на входах нейрона считают заданными в интервале [0,1]. Они могут быть либо дискретными, либо аналоговыми. Дополнительный вход x0 и соответствующий ему вес ω0 используются для инициализации нейрона.

Передаточная функция нейрона

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

Классификация нейронов

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

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

 

Нейронная сеть

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

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

 

Применения нейронной сети

Распознания образов и классификация

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

Топология такой сети характеризуется тем, что количество нейронов в выходном слое, как правило, равно количеству определяемых классов. При этом устанавливается соответствие между выходом нейронной сети и классом, который он представляет. Когда сети предъявляется некий образ, на одном из её выходов должен появиться признак того, что образ принадлежит этому классу. В то же время на других выходах должен быть признак того, что образ данному классу не принадлежит. Если на двух или более выходах есть признак принадлежности к классу, считается что сеть «не уверена» в своём ответе.

Кластеризация

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

Нейронные сети в простом варианте Кохонена не могут быть огромными поэтому их делят на гиперслои (гиперколонки) и ядра (микроколонки). Если сравнивать с мозгом человека, то идеальное количество параллельных слоёв не должно быть более 112. Эти слои в свою очередь составляют гиперслои (гиперколонку), в которой от 500 до 2000 микроколонок (ядер). При этом каждый слой делится на множество гиперколонок пронизывающих насквозь эти слои. Микроколонки кодируются цифрами и единицами с получением результата на выходе. Если требуется, то лишние слои и нейроны удаляются или добавляются. Идеально для подбора числа нейронов и слоёв использовать суперкомпьютер. Такая система позволяет нейронным сетям быть пластичной.

Прогнозирование

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

Нейросетевое сжатие данных

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

 

Этапы решения задач

  • Сбор данных для обучения;
  • Подготовка и нормализация данных;
  • Выбор топологии сети;
  • Экспериментальный подбор характеристик сети;
  • Экспериментальный подбор параметров обучения;
  • Собственно обучение;
  • Проверка адекватности обучения;
  • Корректировка параметров, окончательное обучение;
  • Вербализация сети с целью дальнейшего использования.

Рассмотрим подробнее некоторые из этапов.

Сбор данных для обучения

Выбор данных для обучения сети и их обработка является самым сложным этапом решения задачи. Набор данных для обучения должен удовлетворять нескольким критериям:

  • Репрезентативность — данные должны иллюстрировать истинное положение вещей в предметной области;
  • Непротиворечивость — противоречивые данные в обучающей выборке приведут к плохому качеству обучения сети.

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

  • Нормировка выполняется, когда на различные входы подаются данные разной размерности. Например, на первый вход сети подается величины со значениями от нуля до единицы, а на второй — от ста до тысячи. При отсутствии нормировки значения на втором входе будут всегда оказывать существенно большее влияние на выход сети, чем значения на первом входе. При нормировке размерности всех входных и выходных данных сводятся воедино;
  • Квантование выполняется над непрерывными величинами, для которых выделяется конечный набор дискретных значений. Например, квантование используют для задания частот звуковых сигналов при распознавании речи;
  • Фильтрация выполняется для «зашумленных» данных.

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

Выбор топологии сети

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

Информация о работе Нейронные сети. Программирование