46828 (Аппроксимация функции с использованием нейронных сетей)

2016-07-28СтудИзба

Описание файла

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

Онлайн просмотр документа "46828"

Текст из документа "46828"

Министерство образования и науки Российской Федерации Федеральное агентство по образованию

Амурский гуманитарно-педагогический государственный университет

Физико-математический факультет

ЛАБОРАТОРНАЯ РАБОТА №1

по дисциплине «Искусственные нейронные сети» на тему «Аппроксимация функции с использованием нейронных сетей»

2007

Содержание

Введение

  1. Теоретические сведения

  2. Методика выполнения лабораторной работы

  3. Контрольные вопросы

Заключение

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

Введение

Цель лабораторной работы:

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

Задание: В среде Matlab необходимо построить и обучить нейронную сеть для аппроксимации таблично заданной функции , i=1,20. Разработать программу, которая реализует нейросетевой алгоритм аппроксимации и выводит результаты аппроксимации в виде графиков.

1 Теоретические сведения

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

Нейрон является составной частью нейронной сети. Общая структура:

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

Математическая модель нейрона:

где S – результат суммирования (sum); ω(i) – вес (weight) синапса, i=1,n; x – компонент входного вектора (входной сигнал), i=1,n; b – значение смещения (bias); n – число входов нейрона; у – выходной сигнал нейрона; f – нелинейное преобразование (функция активации).

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

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

На входной сигнал S нелинейный преобразователь отвечает выходным сигналом f(S), который представляет собой выход у нейрона.

Примеры активационных функций:

Примеры активационных функций:

а) функция единичного скачка; б) линейный порог (гистерезис); в) сигмоид (логистическая функция); г) сигмоид (гиперболический тангенс).

Одной из наиболее распространенных является нелинейная функция активации, так называемая логистическая функция, или сигмоид (функция S – образного вида):

При уменьшении а сигмоид становится более пологим, в пределе при а=0 вырождаясь в горизонтальную линию на уровне 0,5, при увеличении а сигмоид приближается к виду единичного скачка с порогом θ. Очевидно, что выходное значение нейрона лежит в диапазоне (0,1). Одно из ценных свойств сигмоидальной функции – простое выражение ее производной:

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

2 Методика выполнения лабораторной работы

Задача. В среде Matlab необходимо построить и обучить нейронную сеть для аппроксимации таблично заданной функции yi=f(xi)=[2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04 3.03 3.45 3.62 3.85 4.19 4.45 489 5.06 5.63 5.91], i=1,20.

В математической среде Matlab создаем новый M-File, в котором записываем код программы создания и обучения нейронной сети с использованием встроенных функций пакета сетей Neural Netwworks Toolbox.

Для решения воспользуемся функцией newff(.) – создание «классической» многослойной НС с обучением по методу обратного распространения ошибки.

P = zeros(1,20);

for i = 1:20 %создание массива

P(i) = i*0.1; %входные данные (аргумент)

end

T=[2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04 3.03 3.45 3.62 3.85 4.19 4.45 489 5.06 5.63 5.91]; %входные данные (значение функции)

net = newff([-1 2.09],[5 1],{'tansig' 'purelin'}); %создание нейронной сети

net.trainParam.epochs = 100; %задание числа эпох обучения

net=train(net,P,T); %обучение сети

y = sim(net,P); %опрос обученной сети

figure (1);

hold on;

xlabel ('P');

ylabel ('T');

plot(P,T,P,y,'o'),grid; %прорисовка графика исходных данных и функции, сформированной нейронной сетью

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

3 Контрольные вопросы

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

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

2 Что Вы понимаете под обучением нейронной сети? Очевидно, что процесс функционирования НС, то есть сущность действий, которые она способна выполнять, зависит от величин синаптических связей, поэтому, задавшись определенной структурой НС, отвечающей какой-либо задаче, разработчик сети должен найти оптимальные значения всех переменных весовых коэффициентов (некоторые синаптические связи могут быть постоянными).

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

3. Что такое «обучающее множество»? Работа сети протекает в два этапа. На первом из них происходит ее обучение. Для этого с помощью экспериментов или их программныхимитаторов формируется обучающее множество {Vin; Vout} котороепредставляет собой набор пар входного и соответствующего выходного векторов. Размер обучающего множества (количество пар) зависит от сложности анализируемого отображения и общего числа слоев и нейронов на них. Входные вектора включают непосредственно наблюдаемые величины(показания приборов или их комбинации), а выходные – физические характеристики процесса, которые требуется определить в результате анализа (типы частиц, их заряды, скорости и т.д.). В начале обучения значения w НС инициируются небольшими случайными значениями и на ее вход по очереди подаются значения входных векторов из обучающего множества. Порядок следования векторов определяется случайным образом, чтобы предотвратить "привыкания" сети к их фиксированной последовательности. С помощью нелинейного преобразования значений uj каждого из нейронов входного слоя и величин wji формируются значения ui

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

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

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

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

Второй этап представляет собой непосредственную работу обученной НС по анализу физической информации.

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

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

Рассмотрим алгоритм обучения с учителем.

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

Рассмотрим более подробно алгоритм обучения НС с учителем для однослойной нейронной сети, примером которой является однослойный перестрой.

  1. Проинициализировать элементы весовой матрицы (обычно небольшими случайными значениями).

  2. Подать на входы один из входных векторов, которые сеть должна научиться различать, и вычислить ее выход.

  3. Если выход правильный, перейти на шаг 4.

Иначе вычислить разницу между идеальным уц и полученным у значениями выхода:

Модифицировать веса в соответствии с формулой

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее