Автор работы: Пользователь скрыл имя, 13 Апреля 2014 в 16:56, курсовая работа
Нейрон – это узел нейронной сети, являющийся упрощённой моделью естественного нейрона. Математически, искусственный нейрон обычно представляют как некоторую нелинейную функцию от единственного аргумента — линейной комбинации всех входных сигналов. Данную функцию называют функцией активации или функцией срабатывания, передаточной функцией. Полученный результат посылается на единственный выход. Такие искусственные нейроны объединяют в сети — соединяют выходы одних нейронов с входами других. Искусственные нейроны и сети являются основными элементами идеального нейрокомпьютера.
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Челябинский государственный университет»
Курсовая работа
Нейронные сети.
Программирование
Факультет: Физический Студент: Д.Б. Шверт
Специальность: КОИБАС Группа: Ф-305
Кафедра: радиофизики и электроники Научный руководитель: доцент,
кандидат технических наук В.К. Усачев
Дата защиты: 31.05.2012
Оценка:
Челябинск, 2012
Содержание
Нейрон – это узел нейронной сети, являющийся упрощённой моделью естественного нейрона. Математически, искусственный нейрон обычно представляют как некоторую нелинейную функцию от единственного аргумента — линейной комбинации всех входных сигналов. Данную функцию называют функцией активации или функцией срабатывания, передаточной функцией. Полученный результат посылается на единственный выход. Такие искусственные нейроны объединяют в сети — соединяют выходы одних нейронов с входами других. Искусственные нейроны и сети являются основными элементами идеального нейрокомпьютера.
Нейронная сеть – математическая модель, а также ее программная или аппаратная реализация, построенная по принципу организации и функционирования биологических нейронных сетей – сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети Маккалока и Питтса.
Нейрокомпьютер – устройство переработки
Математическая модель нейрона была предложена У. Маккалоком и У. Питтсом вместе с моделью сети, состоящей из этих нейронов. Они показали, что сеть на таких элементах может выполнять числовые и логические операции. Первоначально нейрон мог оперировать только с сигналами логического нуля и логической единицы, поскольку был построен на основе биологического прототипа, который может находиться только в двух состояниях – возбужденном и невозбужденном. Развитие нейронных сетей показало, что для расширения области применения необходимо, чтобы нейрон работал не только с бинарными, но и с аналоговыми сигналами. Такую модель предложили Уидроу вместе со своим студентом Хоффом, в которой в качестве функции срабатывания нейрона использовалась логисческая кривая.
Математический нейрон представляет собой взвешенный сумматор, единственный выход которого определяется через его входы и матрицу весов.
Здесь xi и ωi – соответственно сигналы на входах нейрона и веса входов, функция u называется индуцированным локальным полем, а f(u) – передаточной функцией. Возможные значения сигналов на входах нейрона считают заданными в интервале [0,1]. Они могут быть либо дискретными, либо аналоговыми. Дополнительный вход x0 и соответствующий ему вес ω0 используются для инициализации нейрона.
Передаточная функция f(u) определяет зависимость сигнала на выходе нейрона от взвешенной суммы сигналов на его входах. В большинстве случаев она является монотонно возрастающей. Также для некоторых алгоритмов обучения сети необходимо, чтобы она была непрерывно дифференцируемой на всей числовой оси. Искусственный нейрон полностью характеризуется своей передаточной функцией. Использование различных передаточных функций позволяет вносить нелинейность в работу нейрона и в целом нейронной сети.
В основном, нейроны классифицируют на основе их положения в топологии сети. Разделяют:
Нейронная сеть представляет собой систему соединенных между собой простых процессоров. В этой сети роль процессоров играют нейроны. Каждый процессор подобной сети имеет дело только с сигналами, которые периодически получает, и сигналами, которые он периодически посылает другим процессорам. И будучи соединенными в большую сеть с управляемым взаимодействием, эти локально простые процессоры могут выполнять довольно сложные задачи.
Нейронная сеть не программируется в привычном смысле этого слова, она обучается. Возможность обучения – одно из главных преимуществ нейронной сети перед обычными алгоритмами. Техническое обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявить довольно сложные зависимости между входными данными и выходными, а также выполнить обобщение. Это значит, что нейронная сеть может вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных или частично искаженных данных.
В качестве образов могут выступать различные по своей природе объекты: символы текста, изображения, образцы звуков и т. д. При обучении сети предлагаются различные образцы образов с указанием того, к какому классу они относятся. Образец, как правило, представляется как вектор значений признаков. При этом совокупность всех признаков должна однозначно определять класс, к которому относится образец. В случае, если признаков недостаточно, сеть может соотнести один и тот же образец с несколькими классами, что неверно. По окончании обучения сети ей можно предъявлять неизвестные ранее образы и получать ответ о принадлежности к определённому классу.
Топология такой сети характеризуется тем, что количество нейронов в выходном слое, как правило, равно количеству определяемых классов. При этом устанавливается соответствие между выходом нейронной сети и классом, который он представляет. Когда сети предъявляется некий образ, на одном из её выходов должен появиться признак того, что образ принадлежит этому классу. В то же время на других выходах должен быть признак того, что образ данному классу не принадлежит. Если на двух или более выходах есть признак принадлежности к классу, считается что сеть «не уверена» в своём ответе.
Под кластеризацией понимается разбиение множества входных сигналов на классы, при том, что ни количество, ни признаки классов заранее не известны. После обучения такая сеть способна определять, к какому классу относится входной сигнал. Сеть также может сигнализировать о том, что входной сигнал не относится ни к одному из выделенных классов — это является признаком новых, отсутствующих в обучающей выборке, данных. Таким образом, подобная сеть может выявлять новые, неизвестные ранее классы сигналов. Соответствие между классами, выделенными сетью, и классами, существующими в предметной области, устанавливается человеком. Кластеризацию осуществляют, например, нейронные сети Кохонена.
Нейронные сети в простом варианте Кохонена не могут быть огромными поэтому их делят на гиперслои (гиперколонки) и ядра (микроколонки). Если сравнивать с мозгом человека, то идеальное количество параллельных слоёв не должно быть более 112. Эти слои в свою очередь составляют гиперслои (гиперколонку), в которой от 500 до 2000 микроколонок (ядер). При этом каждый слой делится на множество гиперколонок пронизывающих насквозь эти слои. Микроколонки кодируются цифрами и единицами с получением результата на выходе. Если требуется, то лишние слои и нейроны удаляются или добавляются. Идеально для подбора числа нейронов и слоёв использовать суперкомпьютер. Такая система позволяет нейронным сетям быть пластичной.
Способности нейронной сети к прогнозированию напрямую следуют из ее способности к обобщению и выделению скрытых зависимостей между входными и выходными данными. После обучения сеть способна предсказать будущее значение некой последовательности на основе нескольких предыдущих значений и/или каких-то существующих в настоящий момент факторов. Следует отметить, что прогнозирование возможно только тогда, когда предыдущие изменения действительно в какой-то степени предопределяют будущие.
Сжатие данных — одна из задач, решаемых нейронными
сетями. Как и любое сжатие, решение данной
задачи основано на устранении избыточности
Рассмотрим подробнее некоторые из этапов.
Выбор данных для обучения сети и их обработка является самым сложным этапом решения задачи. Набор данных для обучения должен удовлетворять нескольким критериям:
Исходные данные преобразуются к виду, в котором их можно подать на входы сети. Каждая запись в файле данных называется обучающей парой или обучающим вектором. Обучающий вектор содержит по одному значению на каждый вход сети и, в зависимости от типа обучения (с учителем или без), по одному значению для каждого выхода сети. Обучение сети на «сыром» наборе, как правило, не даёт качественных результатов. Существует ряд способов улучшить «восприятие» сети.
Кроме того, большую роль играет само представление как входных, так и выходных данных. Предположим, сеть обучается распознаванию букв на изображениях и имеет один числовой выход — номер буквы в алфавите. В этом случае сеть получит ложное представление о том, что буквы с номерами 1 и 2 более похожи, чем буквы с номерами 1 и 3, что, в общем, неверно. Для того, чтобы избежать такой ситуации, используют топологию сети с большим числом выходов, когда каждый выход имеет свой смысл. Чем больше выходов в сети, тем большее расстояние между классами и тем сложнее их спутать.
Выбирать тип сети следует исходя из постановки задачи и имеющихся данных для обучения. Для обучения с учителем требуется наличие для каждого элемента выборки «экспертной» оценки. Иногда получение такой оценки для большого массива данных просто невозможно. В этих случаях естественным выбором является сеть, обучающаяся без учителя, например, нейронная сеть Хопфилда. При решении других задач, таких как прогнозирование временных рядов, экспертная оценка уже содержится в исходных данных и может быть выделена при их обработке. В этом случае можно использовать сеть Ворда.