Дмитрий Степанович Магола

Практическое использование нейронных сетей в Среде Matlab


Скачать книгу

ектуальной издательской системе Ridero

      ВВЕДЕНИЕ

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

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

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

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

      Во-вторых, когда рассматриваемая задача формализуема, но на настоящее время отсутствует аппарат для ее решения.

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

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

      Практическая работа 1. Использование нейронных сетей для решения задач регрессии

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

      Задание 1: В среде MATLAB необходимо построить и обучить многослойную нейронную сеть для аппроксимации таблично заданной функции yi=f (xi), i=1,2,…,20. Разработать программу, которая реализует нейросетевой алгоритм аппроксимации и выводит результаты аппроксимации в виде графиков. Варианты задания представлены в табл. 1.1.

      Задание 2: Используя инструмент NNTool решить задачу прогнозирования на основе следующих данных: имеется 100 входных значений х от 0.1 до 10 с шагом 0.1 и соответствующие им значения выходной переменной y. Зависимость y от x следующая:,y (x) =x2—2x+1 но исследователю данная зависимость неизвестна, а известны лишь числовые значения yi, i=1,2,…,100. Требуется найти значение y от x> 10.

      Задание 3: В среде MATLAB необходимо построить и обучить нейронную сеть радиально-базисных функций для аппроксимации заданной функции yi=f (xi) =sin (xi) -cos (xi), x=0, 0.5,…,10, i=1,2,…,21.

      Варианты заданий

      Значения xi=i*0.1, i=1,2,…,20 одинаковые для всех вариантов

      1.1. Основные теоретические сведения

      При изложении теоретических сведений использовались работы [1—4].

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

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

      Рис. 1.1. Структура искусственного нейрона

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

      На рис. 1.1 S – результат суммирования (sum); wi – вес (weight) синапса, i=1,2,…,n; х – компонент входного вектора (входной сигнал),i=1,2,…,n; – значение смещения (bias); n – число входов нейрона; у – выходной сигнал