Главная страница
Навигация по странице:

  • 1. Опишите каким алгоритмом обучают многослойные НС

  • 5. Опишите какая функция в среде MATLAB создает НС прямого распространения

  • Интеллектуальныес системы мехатронных и робототехнических систем. Лаб_1. Методические указания к лабораторной работе по дисциплине Интеллектуальные системы управления Калуга, 2018


    Скачать 1.97 Mb.
    НазваниеМетодические указания к лабораторной работе по дисциплине Интеллектуальные системы управления Калуга, 2018
    АнкорИнтеллектуальныес системы мехатронных и робототехнических систем
    Дата22.02.2022
    Размер1.97 Mb.
    Формат файлаpdf
    Имя файлаЛаб_1.pdf
    ТипМетодические указания
    #369851

    Министерство образования и науки Российской Федерации
    Калужский филиал федерального государственного бюджетного образовательного учреждения высшего образования
    «Московский государственный технический университет имени Н.Э.
    Баумана (национальный исследовательский университет)»
    (КФ МГТУ им Н.Э. Баумана)
    В.Н. Пащенко
    ПРОЕКТИРОВАНИЕ НЕЙРОННОЙ СЕТИ В СРЕДЕ MATLAB
    Методические указания к лабораторной работе по дисциплине «Интеллектуальные системы управления»
    Калуга, 2018

    2
    УДК 621.865.8
    ББК 32.816
    Л 24
    Методические указания составлены в соответствии с учебным планом КФ МГТУ им. Н.Э. Баумана по направлению подготовки
    15.03.06 «Мехатроника и робототехника» профиль «Промышленная робототехника и мехатронные системы специального назначения».
    Методические указания рассмотрены и одобрены:
    - кафедрой «Мехатроника и робототехника» (М6-КФ) протокол №__ от «___» _______________ 201__ г.
    Зав.кафедрой М6- КФ _________ к.т.н., доцент В.Н. Пащенко
    - методической комиссией факультета МТК КФ МГТУ им. Н.Э. Баумана протокол №__ от «___» _______________ 201__ г.
    Председатель методической комиссии факультета МТК
    __________________ к.ф.-м.н., доцент С.Е. Степанов
    - методической комиссией КФ МГТУ им. Н.Э. Баумана протокол № «___» от «___» _______________ 201__ г.
    Председатель методической комиссией
    КФ
    МГТУ им. Н.Э. Баумана
    __________________ д.э.н., профессор О.Л. Перерва
    Рецензент:
    Устинов И.К., к.т.н., доцент, зав кафедрой
    М4-КФ____________________________
    Авторы: к.т.н., доцент В.Н. Пащенко_____________________
    Аннотация
    Методические указания предназначены для выполнения лабораторной работы по дисциплине «Интеллектуальные системы управления» и рекомендуется студентам четвертого курса высших технических учебных заведений. Они охватывают основные сведения по одному из разделов курса, включают в себя теоретические сведения, пример выполнения задания, варианты заданий для самостоятельного выполнения и перечень вопросов для самоконтроля.
     КФ МГТУ им. Н.Э. Баумана, 201___г.
    В.Н. Пащенко

    ОГЛАВЛЕНИЕ
    1. ЦЕЛЬ И ЗАДАЧА ЛАБОРАТОРНОЙ РАБОТЫ ................................. 4 2. ЗАДАНИЕ И ТРЕБОВАНИЯ К СОДЕРЖАНИЮ ОТЧЕТА ............. 5 3. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ .................................................................... 6
    КОНТРОЛЬНЫЕ ВОПРОСЫ ................................................................... 23
    СПИСОК ЛИТЕРАТУРЫ ............................................................................. 24
    ПРИЛОЖЕНИЕ А .......................................................................................... 25
    ПРИЛОЖЕНИЕ Б .......................................................................................... 26

    4
    ВВЕДЕНИЕ
    Учебное пособие подготовлено в виде методических указаний для самостоятельной подготовки студентов к выполнению лабораторной работы по курсу «Интеллектуальные системы управления», входящей в образовательную программу бакалавриата по направлению подготовки 15.03.06 «Мехатроника и робототехника», профиль
    «Промышленная робототехника и мехатронные системы специального назначения».
    Для изучения дисциплины необходимо предварительное освоение следующих дисциплин:
    1. промышленная робототехника;
    2. управление мехатронными и робототехническими системами;
    Планируемыми результатами обучения являются получение обучающимся знаний:
    1. О методиках проектирования нейронных сетей;
    2. Об алгоритмах обучения нейронных сетей;
    3. Об особенностях построения нейронных сетей. умений:
    1. разрабатывать элементы программно-алгоритмического обеспечения решения задач кинематики для управления робототехническими и мехатронными системами на основе нейронных сетей.
    Для возможности осуществления самоконтроля освоения материала методические указания снабжены перечнем контрольных вопросов (см. Ошибка! Источник ссылки не найден.).
    1. ЦЕЛЬ И ЗАДАЧА ЛАБОРАТОРНОЙ РАБОТЫ
    Целью лабораторной работы является формирование практических навыков разработки и анализа программно- алгоритмического обеспечения с использованием среды MATLAB.
    Для достижения поставленной цели перед обучающимся ставятся следующие основные задачи:
    1. Обработать и подготовить исходные данные.

    5 2. Осуществить проектирование структуры нейронной сети
    (определить какие нейроны мы будут использованы (число входов, передаточные функции), каким образом следует соединить их между собой, определить какие данные будут использованы в качестве входов и выходов нейронной сети).
    3. Настроить параметры нейронной сети (подобрать веса, обучить нейронную сеть).
    2. ЗАДАНИЕ И ТРЕБОВАНИЯ К СОДЕРЖАНИЮ
    ОТЧЕТА
    Задание: изучить теоретические сведения, выполнить все примеры и задания лабораторной работы и продемонстрировать их преподавателю, оформить результаты выполнения в виде отчёта.
    Отчет должен содержать типовой титульный лист (ПРИЛОЖЕНИЕ
    А), цель и задачи лабораторной работы, необходимые теоретические сведения, скрипты разработанных программ, результаты моделирования, выводы по лабораторной работе, список литературы.
    Необходимые приборы и оборудование:
     Компьютер, совместимый с IBM PC, 4 Гб ОЗУ.
     Операционная система WINDOWS*.
     САПР SolidWorks.
     Пакет математических вычислений Matlab.

    6 3. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
    Нейронные сети – это раздел искусственного интеллекта, в котором для обработки сигналов используются явления, аналогичные происходящим в нейронах живых существ. Важнейшая особенность сети, свидетельствующая о ее широких возможностях и огромном потенциале, состоит в параллельной обработке информации всеми звеньями. При громадном количестве межнейронных связей это позволяет значительно ускорить процесс обработки информации. Во многих случаях становится возможным преобразование сигналов в реальном времени. Кроме того, при большом числе межнейронных соединений сеть приобретает устойчивость к ошибкам, возникающим на некоторых линиях. Функции поврежденных связей берут на себя исправные линии, в результате чего деятельность сети не претерпевает существенных возмущений.
    Другое не менее важное свойство – способность к обучению и обобщению накопленных знаний. Нейронная сеть обладает чертами искусственного интеллекта. Натренированная на ограниченном множестве данных сеть способна обобщать полученную информацию и показывать хорошие результаты на данных, не использовавшихся в процессе обучения.
    Характерная особенность сети состоит также в возможности ее реализации с применением технологии сверхбольшой степени интеграции. Различие элементов сети невелико, а их повторяемость огромна. Это открывает перспективу создания универсального процессора с однородной структурой, способного перерабатывать разнообразную информацию.
    Определение «нейрона». Нейрон – базовый элемент нейронных сетей. Имеет входы, снабженные весами, смещение, симулирующий элемент и входную активационную функцию. Является аналогом биологического нейрона. Нейрон выполняет функцию адаптивного сумматора с варьируемыми входными весовыми коэффициентами, суммарный вход, сигнал которого подвергается линейной или нелинейной обработке, образуя итоговый входной сигнал.
    Нейрон является составной частью нейронной сети. На рис. показан вариант представления его структуры.

    7
    Рис.1. Структура нейрона
    Обучение нейронной сети. Очевидно, что процесс функционирования НС, то есть сущность действий, которые она способна выполнять, зависит от величин синаптических связей, поэтому, задавшись определенной структурой НС, отвечающей какой- либо задаче, разработчик сети должен найти оптимальные значения всех переменных весовых коэффициентов (некоторые синаптические связи могут быть постоянными).
    Этот этап называется обучением НС, и от того, насколько качественно он будет выполнен, зависит способность сети решать поставленные перед ней проблемы во время эксплуатации. На этапе обучения кроме параметра качества подбора весов важную роль играет время обучения. Как правило, эти два параметра связаны обратной зависимостью и их приходится выбирать на основе компромисса.
    Обучающее множество. Работа сети протекает в два этапа.
    На первом из них происходит ее обучение. Для этого с помощью экспериментов или их программных имитаторов формируется обучающее множество {Vin; Vout} которое представляет собой набор пар входного и соответствующего выходного векторов. Размер обучающего множества (количество пар) зависит от сложности анализируемого отображения и общего числа слоев и нейронов на них. Входные вектора включают непосредственно наблюдаемые величины (показания приборов или их комбинации), а выходные – физические характеристики процесса, которые требуется определить в результате анализа (типы частиц, их заряды, скорости и т.д.). В начале обучения значения w НС инициируются небольшими случайными

    8 значениями и на ее вход по очереди подаются значения входных векторов из обучающего множества. Порядок следования векторов определяется случайным образом, чтобы предотвратить "привыкания" сети к их фиксированной последовательности. С помощью нелинейного преобразования значений uj каждого из нейронов входного слоя и величин wji формируются значения ui нейронов второго слоя. Затем эти значения используются для вычисления третьего слоя. Такая процедура повторяется для всех слоев вплоть до последнего - выходного. Значения нейронов последнего слоя сравниваются с соответствующими значениями выходного вектора из обучающего множества и вычисляется ошибка, например, сумма квадратов разности или сумма модулей разности. По величине ошибки с помощью специального алгоритма вычисляются поправки к значениям весов связей последнего и предпоследнего слоев. По этим поправкам последовательно вычисляются поправки к весам более ранних слоев вплоть до первого. Затем происходит подача на вход следующего входного вектора и процедура уточнения весов повторяется до получения приемлемого результата. Процедура обучения, охватывающая весь обучающий набор, принято называть эпохой. По мере обучения ошибка, как правило, уменьшается и процесс сходится, но весь цикл обучения может занять не один десяток, а то и сотни эпох. Успех обучения зависит от целого ряда причин, в том числе от удачного выбора пространства признаков и достаточном объеме обучающего множества.
    Упрощая, можно сказать, что процесс обучения является подгоночной процедурой для описания многопараметрической функцией (параметрами являются величины wij) упомянутого выше отображения пространства входных векторов на пространство выходных.
    На эффективность работы и сходимость процесса обучения НС большое влияние оказывает правильный выбор входных сигналов.
    Они должны быть такими, чтобы в многомерном пространстве – пространстве признаков, образуемом ими, области с различными значениями выходных векторов разделялись как можно лучше.
    Второй этап представляет собой непосредственную работу обученной
    НС по анализу физической информации.
    Смысл алгоритма обучения с учителем. Обучение НС может вестись с учителем или без учителя. В первом случае сети

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

    10 1)Проинициализировать элементы весовой матрицы (обычно небольшими случайными значениями).
    2)Подать на входы один из входных векторов, которые сеть должна научиться различать, и вычислить ее выход.
    3)Если выход правильный, перейти на шаг 4.
    Иначе вычислить разницу между идеальным у ц
    и полученным у значениями выхода:
    Модифицировать веса в соответствии с формулой где t и t+1 - номера соответственно текущей и следующей итераций; η
    - коэффициент скорости обучения, 0< η <1; i- номер входа; j - номер нейрона в слое.
    Очевидно, что, если у ц
    > у , весовые коэффициенты будут увеличены и тем самым уменьшат ошибку. В противном случае они будут уменьшены, и у тоже уменьшится, приближаясь к у ц
    4) Цикл с шага 2, пока сеть не перестанет ошибаться.
    На втором шаге на разных итерациях поочередно в случайном порядке предъявляются все возможные входные векторы. К сожалению, нельзя заранее определить число итераций, которые потребуется выполнить, а в некоторых случаях и гарантировать полный успех.
    В многослойных же сетях оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, не известны, и двух- или более слойный персептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах НС. Один из вариантов решения этой проблемы - разработка наборов выходных сигналов, соответствующих входным, для каждого слоя НС, что, конечно, является очень трудоемкой операцией и не всегда осуществимо. Второй вариант - динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети. Очевидно. что данный

    11 метод "тыка", несмотря на свою кажущуюся простоту, требует громоздких рутинных вычислений. И, наконец, третий, более приемлемый вариант - распространение сигналов ошибки от выходов
    НС к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Этот алгоритм обучения НС получил название процедуры обратного распространения.
    Аппроксимация функции. Аппроксимация заключается в том, что используя имеющуюся информацию по f(x) можно рассмотреть другую функцию f

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

    (х)- аппроксимирующая функция.
    Под аппроксимацией обычно подразумевается описание некоторой, порой не заданной явно, зависимости или совокупности представляющих ее данных с помощью другой, обычно более простой или более единообразной зависимости. Часто данные находятся в виде отдельных узловых точек, координаты которых задаются таблицей данных.
    Результат аппроксимации может не проходить через узловые точки. Напротив, задача интерполяции — найти данные в окрестности узловых точек. Для этого используются подходящие функции, значения которых в узловых точках совпадают с координатами этих точек.
    3.1. Описание основных функций
    Для работы с нейронными сетями необходимо инсталлировать
    MATLAB и обладать первоначальными знаниями относительно языка системы. Поскольку MATLAB представляет собой интерпретатор, то обучение инструментарию нейронных сетей заключается в основном в изучении функций и их параметров. Узнать возможности нейрона как классификатора простых линейно сепарабельных задач можно путем проведения экспериментов с моделью одного линейного нейрона.
    Функция newp. Для того чтобы создать нейрон, используют функцию newp, имеющую следующий синтаксис:
    ),
    ,
    ,
    ,
    (
    LF
    TF
    S
    PR
    newp net


    12 где PR – матрица минимальных и максимальных R входных элементов; S – количество нейронов (при создании одного нейрона
    S=1); TF – функция активации (transfer function); LF – имя функции обучения нейрона.
    В случае если параметры функции newp не заданы, их зна- чения определяются посредством ввода значений в диалоговые окна.
    Построенный нейрон характеризуется функциями весов (weight function), входов сети (net input function) и определенной функцией активации. Функция весов – это умножение весов на входной сигнал, функция входов сети – их сумма. Веса задаются как для входов нейрона, так и для фиксированного входа, задающего порог срабатывания (bias). Вектор весов инициализируется нулями. Для обучения используются функции, рассмотренные ниже.
    Функция learnp настраивает веса нейрона. Синтаксис функции обучения довольно сложен:
    [dW,LS]=learn(W,P,Z,N,A,T,E,gW,gA,D,LP,LC0,
    [db,LS]=learn(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS),
    Info=learn(code).
    Функция learnp (W, P, Z, N, A, T, E, gW, gA, D, LP, LS) имеет несколько входов, где вектор W – вектор весов; Р – вектор входов; Z – вектор взвешенных входов; N – вектор сети; А – вектор выхода; Т – вектор желаемых выходов; Е – вектор ошибок; gW – вектор изменения весов; gA – изменения выходов. Функция возвращает значения: dW – изменения матрицы весов; LS – новый уровень обученности.
    Функция learnp может быть использована с параметрами по умолчанию:
    ]).
    [
    ],
    [
    ],
    [
    ],
    [
    ],
    [
    ,
    ],
    [
    ],
    [
    ],
    [
    ],
    [
    ,
    ],
    ([
    e p
    learnp dW

    Использование пустого списка [ ] означает параметр по умолчанию.
    Функция learnp вычисляет изменение весов dW для заданного нейрона в соответствии с правилом обучения персептрона:

    13











    ,
    1
    ,'
    ,
    1
    ,'
    ,
    0
    ,
    0
    е если p
    е если p
    е ошибка если dW
    т. е.
    '
    p e
    dW


    Функция learnpn настраивает нормализованные веса:
    ).
    ,
    ,
    ,
    ,
    ,
    ,
    ,
    ,
    ,
    ,
    ,
    (
    ]
    ,
    [
    LS
    LP
    D
    gA
    gW
    E
    T
    A
    N
    Z
    P
    W
    learnpn
    LS
    dW

    Функция learnpn вычисляет изменение весов dW для данного нейрона и его входа Р и ошибки Е в соответствии с нормализованным правилом обучения персептрона:
















    ,
    1
    ,'
    ,
    1
    ,'
    ,
    0
    ,
    0
    ,
    )
    )
    (
    )
    2
    (
    )
    1
    (
    1
    (
    /
    2 2
    2
    е если pn е
    если pn е
    ошибка если dW
    R
    p p
    p p
    pn т. е.
    '
    pn e
    dW


    Линейный нейрон имеет одно существенное ограничение.
    Входные векторы должны быть линейно разделимы. Если векторы невозможно отделить прямой или гиперплоскостью, то персептрон не способен решить задачу классификации.
    Функция adapt адаптирует НС к условиям задачи:
    ).
    ,
    ,
    ,
    ,
    (
    ]
    ,
    ,
    ,
    ,
    [
    i i
    A
    P
    T
    P
    net adapt
    Af
    Pf
    E
    Y
    net

    Параметры функции adapt: net – имя сети; Р – входы сети; T – желаемый выход; Р
    i
    – исходные условия задержки; A
    i
    – исходные условия задержки для слоя. Функция возвращает параметры адаптированной сети net.adaptParam: net – измененная сеть; Y – выход сети; Е – ошибки сети; Pf – условия задержки входов; Af – условия

    14 задержки слоя. Параметры Р
    i и Pf необязательные и необходимы только для сетей, имеющих задержки на входах и слое.
    Функция train также обучает НС и использует следующий синтаксис:
    ).
    ,
    ,
    ,
    ,
    (
    ]
    ,
    [
    i i
    A
    P
    T
    P
    net train tr net

    Функция train имеет следующие параметры: net – сеть; Р – входы сети; Т – желаемый выход; Р
    i
    – исходные условия задержки входа; A
    i
    – исходные условия задержки слоя.
    Функция sim имитирует нейронную сеть:
    ),
    ,
    ,
    ,
    (
    ]
    ,
    ,
    [
    i i
    A
    P
    P
    net sim
    Af
    Pf
    Y

    где net – сеть; Р – входы сети; P
    i
    — исходные условия задержки входов сети; A
    i
    – исходные условия задержки слоя. Функция возвращает Y – выходы сети; Pf – окончательные условия задержки входов; Af – окончательные условия задержки слоя.
    Функции активации. Ниже представлены назначения этих функций.
    Функция
    Назначение hardlim
    Возвращает 1, если на входе положительное число и
    0 в противном случае. tansig
    Вычисляет гиперболический тангенс от входа. purelin
    Вычисляет выход слоя от сетевого входа.
    Функции графического интерфейса и вспомогательные функции. Назначение этих функций представлено ниже.
    Функция
    Назначение axis([X
    min
    X
    max
    Y
    min
    Y
    max
    )
    Устанавливает диапазоны координатных осей.

    15 title(‘строка’)
    Выводит в графическое окно рисунков заголовок графика. rand(M, N)
    Возвращает матрицу размерности М на N со слу- чайными значениями. xlabel(‘строка’) ylabel(‘строка’)
    Подписывают наименование координатных осей. cla reset
    Очищает координатную сетку в окне рисунков. hold on hold off
    Включают и отключают режим добавления графи- ков на координатную сетку. text(X, Y,
    ‘строка’)
    Выводит строку, начиная с указанных координат в поле рисунков. pause (n)
    Ожидает пользовательского ответа п секунд. plot(X, Y, ‘цвет и символ’)
    Изображает на координатной сетке точки с коор- динатами, заданными векторами X, Y, с помощью указанного символа и цвета. plotpv(P, V)
    Изображает точки Р указанными маркерами Т, где
    Р – матрица входных векторов размерностью R на
    Q (R должен быть 3 или меньше), Т – матрица двоичных векторов размерностью 5 на Q (S должен быть 3 или меньше). plotes (WV, BV,
    ES, V)
    Изображает поверхность ошибки на отдельном входе, где WV – вектор строк значений весов W размерности N, BV – вектор строк значений поро- гов В размерности М, ES – матрица ошибки раз- мерности М на N, V – угол зрения по умолчанию
    [-37, 5, 30]. plotsom(POS)
    Изображает позицию нейрона красной точкой, связывая синей линией нейроны, находящиеся друг от друга на расстоянии 1. POS – матрица S N- размерных нейронов.

    16 ind2vec vec2ind
    Позволяют представить индексы либо собственно значениями индексов, либо векторами, строки ко- торых содержат 1 в позиции индекса. full
    Преобразует разреженную матрицу в полную. maxlinlr(P)
    Функция возвращает максимальный уровень обученности линейного слоя без bias, который обучался только на векторе Р. trainlm
    Выполняет обучение многослойной НС методом
    Левенберга-Марквардта. netprod
    Входная сетевая функция, которая вычисляет вы- ход сетевого слоя, умножая входной вектор на веса и прибавляя bias. init
    Итеративно инициализирует НС.
    Структура данных описания нейронных сетей. Структура данных net – это описание обученной НС. Обучение осуществляется в соответствии со следующими параметрами, значения которых либо устанавливаются пользователем, либо по умолчанию.
    Структура данных
    Комментарий net.trainParam. epochs 100
    Максимальное количество эпох обучения. net. trainParam.goal 0
    Целевое значение ошибки. net.trainParam.max_fail 5
    Максимальное значение ошибки. net.trainParam.mem reduc 1
    Фактор оптимизации процесса обучения: оптимизация использования памяти или времени процессора. net. trainParam. min_grad
    1e-10
    Минимальное значение градиента. net.trainParam.show 25
    Количество эпох между показами.

    17 net.trainParam.time inf
    Максимальное время обучения в секундах.
    TR
    Структура данных, содержащая значения об обученности НС в текущую эпоху.
    TR. epoch
    Номер эпохи.
    TR.perf
    Уровень обученности
    (Trainingperformance).
    TR.vperf
    Степень качества
    (Validation performance).
    TR.tperf
    Результативность обработки теста
    (Testperformance).
    TR.mu
    Значение адаптивности.
    Структура данных описания адаптированной НС net.adaptfcn включает в себя следующие поля net.adapt.param: NET – адаптированная НС; Y – выходы НС; Е – ошибки НС; Pf – окончательные входные значения задержек; Af – окончательные выходные задержки; TR – результат обучения (эпохи и целевая ошибка). Проведем в среде Matlab toolbox эксперименты, используя рассмотренные функции.
    3. ПРАКТИЧЕСКАЯ ЧАСТЬ
    3.1. Решение задачи создания однонаправленной сети обучаемую с помощью алгоритма обратного распространения
    Для решения поставленной задачи используем функцию
    NEWFF.
    Синтаксис: net=newff net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)
    Описание: net = newff - создает новую сеть с использованием диалогового окна

    18
    NEWFF(PR, [S1 S2...SNl], {TF1 TF2...TFNl}, BTF, LF, PF) в качестве входных параметров использует:

    PR - Rx2 матрица минимальных и максимальных значений строк входной матрицы с размерностью RxQ. Для получения матрицы PR можно использовать функцию minmax;

    S
    i
    – количество нейронов в i – ом слое, N1 – количество слоев;

    TF
    i
    - функция активации i - го слоя, по умолчанию = 'tansig';

    BTF – обучающая функция обратного распространения, по умолчанию='trainlm';

    BLF – алгоритм подстройки весов и смещений (обучающий алгоритм), по умолчанию = 'learngdm';

    PF - функция оценки функционирования сети, по умолчанию =
    'mse'; и возвращает однонаправленную сеть, состоящую из N слоев.
    В качестве функций активации TF
    i можно использовать любые дифференцируемые функции активации, например
    TANSIG, LOGSIG, или PURELIN.
    В качестве обучающей функции BTF можно использовать любые функции на основе алгоритма обратного распространения, например TRAINLM, TRAINBFG, TRAINRP, TRAINGD, и т.д
    Функция TRAINLM используется по умолчанию, поскольку она обеспечивает наиболее быстрое обучение. Но она требует много памяти. Поэтому, если Вы получаете сообщение "out-of-memory error”, необходимо попытаться выполнить одно из следующих действий:
    (1) замедлить процедуру обучения TRAINLM, снизив требования к объему оперативной памяти путем установки параметра
    NET.trainParam.mem_reduc равным 2 или более.
    (2) использовать функцию обучения TRAINBFG, которая работает медленнее, но требует меньше памяти, чем TRAINML.
    (3) использовать функцию обучения TRAINRP, которая работает медленнее, но требует меньше памяти, чем TRAINBFG.
    В качестве обучающей функции BLF можно использовать любые из алгоритмов обратного распространения. Например
    LEARNGD или LEARNGDM.

    19
    В качестве функции оценки функционирования сети могут быть использованы любые дифференцируемые функции, например
    MSE или MSEREG.
    Пример:
    Имеем набор входных значений P и соответствующих им выходных эталонных значений T.
    Задача - создать сеть для нахождения выходных значений по входным.
    P = [0 1 2 3 4 5 6 7 8 9 10];
    T = [0 1 2 3 4 3 2 1 2 3 4];
    Создаем двухслойную однонаправленную сеть. Диапазон входных значений от 0 до 10, первый слой состоит из 5 нейронов с функциями активации TANSIG, второй слой содержит один нейрон с функцией активации PURELIN. Для обучения используем функцию
    TRAINLM: net = newff([0 10],[5 1],{'tansig' 'purelin'});
    Моделируем сеть.
    Подаем на вход сети входные значения P. Получаем выходные значения Y:
    Y = sim(net,P);
    Строим график, демонстрирующий отклонения выходных значений Y от целевых значений T для необученной сети: plot(P,T,P,Y,'o')
    Обучаем (тренируем) сеть.
    Количество эпох тренировки – 50: net.trainParam.epochs = 50; net = train(net,P,T);
    Снова моделируем (теперь уже обученную сеть):
    Y = sim(net,P);
    Строим график для обученной сети: plot(P,T,P,Y,'o')
    На рисунках 1 и 2 представлены архитектура и результаты работы сети

    20
    Рис.1. Архитектура сети
    Рис.2. Результаты работы сети

    21
    Пример.
    В среде 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.
    Для решения воспользуемся функцией newff(.) – создание
    «классической» многослойной НС с обучением по методу обратного распространения ошибки.
    Решение
    P = zeros(1,20); fori = 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; %прорисовка графика исходных данных и функции, сформированной нейронной сетью

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

    23
    КОНТРОЛЬНЫЕ ВОПРОСЫ

    1. Опишите каким алгоритмом обучают многослойные НС?
    2. Покажите из каких основных этапов состоит алгоритм обратного распространения ошибки?

    3. Поясните почему алгоритм обратного распространения ошибки относится к классу алгоритмов градиентного спуска?
    4. Объясните как влияет функция принадлежности на правило изменения весов в обратном алгоритме распространения ошибки?

    5. Опишите какая функция в среде MATLAB создает НС прямого распространения?
    6. Поясните какие функции активации могут быть назначены для нейронов НС прямого распространения?

    24
    СПИСОК ЛИТЕРАТУРЫ
    Основная литература
    1.
    Зенкевич
    С.Л.,
    Ющенко
    А.С.
    Основы управления манипуляционными роботами: Учебник для вузов.-2-е изд. М.: Изд-во
    МГТУ им. Н.Э. Баумана, 2004.-480 с.:ил.
    2. Интрактивные системы Scilab, Matlab, Mathcad [Электронный ресурс] : учебное пособие / И.Е. Плещинская [и др.]. – Электрон. текстовые данные. – Казань: Казанский национальный исследовательский технологический университет, 2014. – 195 с. – 978-
    5-7882-1715-4. – Режим доступа: http://www.iprbookshop.ru/62173.html
    Дополнительная литература
    1. Машков, К.Ю. Состав и характеристики мобильных роботов: учеб. пособие по курсу «Управление роботами и робототехническими комплексами» [Электронный ресурс]: учеб. пособие / К.Ю. Машков,
    В.И. Рубцов, И.В. Рубцов. – Электрон. дан. – Москва: МГТУ им. Н.Э.
    Баумана,
    2014.

    75 с.

    Режим доступа: http://e.lanbook.com/book/58390 2. Морозов, Н.А.
    Кинематика:
    Примеры решения задач
    [Электронный ресурс]
    : учеб. пособие / Н.А. Морозов
    , Ю. Власов.

    Оренбург:
    ОГУ,
    2014

    97 с. схем., ил.
    .–
    URL:
    https://biblioclub.ru/index.php?page=book_view_red&book_id=330557
    Перечень ресурсов информационно-телекоммуникационной сети «Интернет», необходимых для освоения дисциплины
    1. Научная электронная библиотека http://eLIBRARY.RU
    2. Электронно-библиотечная система http://e.lanbook.com
    3. Электронно-библиотечная система
    «Университетская библиотека онлайн» http://biblioclub.ru
    4. ЦИТМ Экспонента. Сайт официального дистрибьютора
    MathWorks на территории России и СНГ https://matlab.ru

    25
    ПРИЛОЖЕНИЕ А
    Типовой титульный лист
    Министерство образования и науки Российской
    Федерации
    Калужский филиал федерального государственного бюджетного образовательного учреждения высшего образования
    «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)»
    (КФ МГТУ им. Н.Э. Баумана)
    ФАКУЛЬТЕТ
    «__________________________________________»
    КАФЕДРА
    «__________________________________________»
    ОТЧЕТ
    ДИСЦИПЛИН
    «_______________________________________»
    ТЕМА
    «__________________________________________»
    Выполнил: студент группы ____
    ____________________
    Проверил:
    _____________________
    Дата сдачи (защиты) работы:
    Результаты сдачи (защиты) работы:_________________
    Количество баллов:_________
    Оценка:_________
    Калуга, 20____г.

    26
    ПРИЛОЖЕНИЕ Б
    Задание 1.
    Создать нейронную сеть (типа GRNN), реализующую функциональную зависимость между входом и выходом на заданной отрезке вида:
    1. у =3х^2+[ на отрезке [-4, 4].
    2. y=2x^4/3, x = [-10, 10].
    3. y=x^2 + 2*x + 3., x = [-10, 10].
    4. y=x^2 + 4., x = [-1, 1].
    5. y=x^3/3, x = [-1, 1].
    6. y=3x^4 + 2., x = [-7, 7].
    7. y=2x^3 + 1, x = [-10, 10].
    8. y=3x^2 + 2*x + 3., x = [-10, 10].
    9. y=x^2 + 4x, x = [-1, 1].
    10. y=x^3/2, x = [-1, 1].
    11. y=6x^4 + 2., x = [-10,10].
    12. y=2x^3 + x^2, x = [-10, 10].
    13. x^3 + 3, x = [-1, 1].
    14. y=2x^2 + 2., x = [-7, 7].
    15. y=2x^3 + x, x = [-10, 10].
    16. y=3x + 2x + 3., x = [-10, 10].
    17. y=x^2 + 4x, x = [-7, 7].
    18. y=x^2/2+3, x = [-10,10].
    19. у = 4х^2+3 на отрезке [-5, 5].

    27 используя экспериментальные данные x и y.
    Проверку качества восстановления приведенной зависимости осуществим, используя данные контрольной выборки x1.
    Пример создания обобщенно-регрессионной НС (сеть типа GRNN) с именем а, реализующую функциональную зависимость между входом и выходом вида у = х^2+5 на отрезке [-1, 1], используя следующие экспериментальные данные: x = [-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1]; y = [6 5.64 5.36 5.16 5.04 5 5.04 5.16 5.36 5.64 6];
    Проверку качества восстановления приведенной зависимости осуществим, используя данные контрольной выборки x1=[-0.95 -0.85 -0.75 -0.65 -0.55 -0.45 -0.35 -0.25 -0.15 -0.05 0.05 0.15 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95].
    Процедура создания и использования данной НС описывается следующим образом:
    >> x = [-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1];
    >> % Задание входных значений
    >> у = [6 5.64 5.36 5.16 5.04 5 5.04 5.16 5.36 5.64 6];
    >> % Задание целевых значений
    >> a=newgrnn(x,y,0.01);% Создание НС с отклонением
    0.01;
    >>x1=[-0.95 -0.85 -0.75 -0.65 -0.55 -0.45 -0.35 -0.25 -0.15 -0.05 0.05 0.15 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95];
    >>plot(x,sim(a,x),'b');
    >>grid on;
    >>hold on;
    >>plot(x1,sim(a,x1),'r');

    28
    Задание 2.
    По заданных исходным данным создать однонаправленную сеть обучаемую с помощью алгоритма обратного распространения.
    1. Обосновать структуру созданной сети.
    2. Объяснить алгоритм работы созданной сети.
    3. Продемонстрировать работу обученной сети с использованием различных наборов данных.
    4. Обосновать полученные результаты.
    5. Показать положительные и отрицательные стороны решения поставленной задачи с помощью нейронной сети.


    написать администратору сайта