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

  • 9.9. Аппаратная поддержка моделирования системы дифференциальных уравнений на ПЛИС

  • 10. ПРИМЕРЫ РЕАЛИЗАЦИИ ПАКЕТОВ НЕЙРОСЕТЕВЫХ ПРОГРАММ 10.1 Анализ преимуществ коммерческих нейросетевых программ

  • 10.2. Универсальный нейропакет NeuroSolutions

  • 10.3. NeuralWorks Professional II/Plus

  • 10.4. Нейропакет Process Advisor

  • 10.5. Нейропакет NeuroShell 2

  • Учебник ИИ. _Учебник ИНС_2014_Э4743. Учебник рекомендовано Ученым советом Вятгу в качестве учебного пособия Киров 2014


    Скачать 3.7 Mb.
    НазваниеУчебник рекомендовано Ученым советом Вятгу в качестве учебного пособия Киров 2014
    АнкорУчебник ИИ
    Дата13.02.2023
    Размер3.7 Mb.
    Формат файлаpdf
    Имя файла_Учебник ИНС_2014_Э4743.pdf
    ТипУчебник
    #934553
    страница12 из 13
    1   ...   5   6   7   8   9   10   11   12   13
    9.8. Моделирование системы нелинейных дифференциальных
    уравнений с разрывной правой частью
    Рассматривается нелинейное дифференциальное уравнение с разрывной правой частью

    190




    















    0
    )
    5
    (
    ,
    0
    )
    0
    (
    ],
    10
    ;
    5
    [
    ,
    )
    5 7
    (
    5 0
    ),
    5
    ;
    0
    [
    ,
    2 1
    1 2
    1 1
    y
    y
    t
    t
    y
    t
    e
    y
    t
    Аналитическое решение данного уравнения имеет вид
    














    ].
    10
    ;
    5
    [
    ,
    2 0
    )
    15 2
    (
    1
    ),
    5
    ;
    0
    [
    ,
    2 2
    1 1
    t
    t
    y
    t
    e
    y
    t
    На основе этого аналитического решения была построена обучающая выборка, включающая 100 примеров. При этом значения независимой переменной t выбирались равномерно в пределах от 0 до 10 с шагом 0,1.
    Один разрыв в данном уравнении задан явно через разрывность правой части, а второй разрыв возникает из-за гиперболы в качестве решения на втором промежутке.
    Уравнение было решено численным методом Рунге-Кутта. При этом решение, полученное численным методом, и аналитическое решение практически совпадают. Но численный метод останавливается, когда достигает второго разрыва. В этом его недостаток.
    Для анализа была создана трехслойная сеть обратного распространения, включающая один нейрон во входном слое с сигмоидальной логистической функцией активации и три нейрона в выходном слое с линейной функцией активации. Число нейронов в скрытом слое с сигмоидальной логистической функцией активации варьировалось с целью подбора наиболее оптимальной архитектуры сети.
    В качестве обучающего алгоритма был выбран алгоритм Левенберга-
    Марквардта.
    Было произведено обучение сетей.
    В качестве оценки функционирования выбрана сумма квадратичных отклонений выходов сети от эталонов. При этом значение отклонения, при котором обучение

    191 считается законченным - 0,001. Максимальное количество циклов обучения - 15000.
    На этой же выборке была обучена сеть с радиальными базисными функциями с точностью 0,0000001 на обучающей выборке.
    Время обучения RBF-сети меньше, чем для трехслойного персептрона, а время работы намного больше. Время работы трехслойного персептрона увеличивается линейно с ростом количества нейронов в скрытом слое.
    На рис.9.2 изображено «гладкое» решение, без разрывов и резких скачков. На участке до первого разрыва решение аппроксимируется довольно хорошо, но на втором и третьем участках ошибки значительные.
    Рис. 9.2 иллюстрирует решение, полученное с помощью трехслойного персептрона с 15 нейронами в скрытом слое, без разрывов и без резких скачков. На всех трёх участках решение аппроксимируется сетью достаточно точно.
    Получены достаточно точные решения с помощью трехслойного персептрона с 15, 21, 25 и 30 нейронами в скрытом слое. При этом время работы сети растет с увеличением количества нейронов в скрытом слое, а наименьшее время обучения было получено у сети с 21 нейроном в скрытом слое. Но поскольку время обучения зависит от весов синапсов, которые инициализируются случайным образом, то в данном случае лучше ориентироваться на время работы и в качестве оптимальной архитектуры выбрать трехслойный персептрон с 15 нейронами в скрытом слое.

    192
    Пунктирная линия – аналитическое решение; сплошная линия – решение с помощью сети RBF
    Рис. 9.2. График решения дифференциального уравнения полученного с помощью сети RBF
    Сплошная линия – аналитическое решение; пунктирная линия – решение с помощью трехслойного персептрона
    Рис. 9.2. График решения, полученного с помощью трехслойного персептрона
    Трехслойный персептрон может дать хорошее приближение даже в случае разрывной правой части дифференциального уравнения, однако, вблизи бесконечных разрывов ошибки могут быть значительными именно потому, что нейронные сети не могут обеспечить бесконечный разрыв.
    9.9. Аппаратная поддержка моделирования системы
    дифференциальных уравнений на ПЛИС
    Многие прикладные задачи моделирования могут быть представлены в виде системы дифференциальных уравнений, для решения которых широко применяются численные методы. В [38] описаны примеры решения системы дифференциальных уравнений с использованием нейросетевых технологий. Время решения системы дифференциальных уравнений численным методом в несколько раз превышает время решения с помощью нейронной сети. При этом средняя ошибка решения с

    193 помощью нейронной сети на порядок меньше, чем ошибка, полученная с помощью численного метода.
    В [38] приведены результаты аппаратной реализации нейронных сетей на базе ПЛИС Xilinx для экстраполяции функций.
    Реализация на ПЛИС нейронной сети для решения конкретной задачи позволяет не только повысить скорость и точность обработки информации, а также открывает возможности для создания отказоустойчивых систем специального назначения за счёт некоторой избыточности нейронной сети и её обучения с учётом возможного выхода из строя элементов или обрыва цепей.
    Выбранная трехслойная нейронная сеть с архитектурой (1,25,3), содержит один нейрон в первом слое, 25 нейронов во втором слое и 3 нейрона в третьем слое. Структурная схема нейрона (рис.9.3) включает блок выбора пары «вход-вес» (Xi; Wi); блок умножения, с помощью которого выполняется умножение входа нейрона на соответствующий ему вес синапса с сохранением результата в буферном регистре; сумматор, предназначенный для сложения произведений весов синапсов и входов нейрона, и сохранением взвешенной суммы в буферном регистре; нелинейный преобразователь, с выхода которого снимается выходное значение нейрона.

    194
    Рис.9.3. Структурная схема нейрона
    Нейроны входного и выходного слоев могут иметь пороговую или линейную (с насыщением) функцию возбуждения. Особый интерес и сложность реализации представляет нелинейный преобразователь нейронов скрытого (второго) слоя НС и, особенно, сигмоидальной функции активации. Функция возбуждения нейронов скрытого и выходного слоёв представлена на рис.9.4.

    195
    Рис.9.4. Функция возбуждения нейронов
    Реализация нелинейного преобразователя возможна табличным способом или путём кусочно-линейной аппроксимации.
    Табличный способ характеризуется тем, что в памяти ПЛИС должны храниться аргументы и соответствующие им значения функции. Главным преимуществом этого способа является быстродействие, за которое надо платить большими затратами памяти при заданной точности. Вторым недостатком табличного способа реализации является вероятность
    «попасть» между табличными значениями. В этом случае функция вычислена не будет.
    В случае применения кусочно-линейной аппроксимации функция разбивается на сегменты, которые, в свою очередь, задаются линейной функцией, имеющей вид f(х)=kх+b. Значение х поступает с выхода блока сумматора произведений «вход-вес», значение k задаёт угловой коэффициент. В этом случае в памяти хранится только массив аргументов границ отрезков. Недостатком является меньшее, по сравнению с табличным методом, быстродействие при следующих основных достоинствах:

    196 1.
    Малые аппаратные затраты. Для вычисления значения необходимы только сумматор и устройство умножения.
    2.
    Непрерывность функции. Отсутствует вероятность «промахов» и возможно вычисление функции с любым шагом.
    3.
    Потенциал точности. Относительно небольшие аппаратные затраты для значительного повышения точности аппроксимации и, следовательно, вычислений в целом.
    Выбранный метод кусочно-линейной аппроксимации предполагает разбиение функции на ряд сегментов (на рис. 9.4 изображено 11 сегментов).
    Основным принципом функционирования нелинейного преобразователя нейронов слоя является кусочно-линейная аппроксимация функции активации с последующей параллельной выборкой сегмента и вычислением функции в точке по линейному закону. Взвешенная сумма одновременно поступает на входы необходимого количества компараторов
    (для рассматриваемой реализации 10), после чего однозначно определяется, к какому сегменту принадлежит аргумент с помощью комбинационной схемы. Каждой симметричной паре сегментов соответствует свой угловой коэффициент k и каждому сегменту функции активации соответствуют свои линейные коэффициенты b. Определив, к какому сегменту относится аргумент (взвешенная сумма), вычисление функции сводится к двум действиям: умножению аргумента на угловой коэффициент с помощью устройства умножения и сложению получившегося результата с линейным коэффициентом b посредством сумматора.
    Функционирование нейрона выполняется следующим образом.
    Выбирается пара синапс-вход (Wi; Xi) и перемножаются между собой на устройстве умножения. Взвешенная сумма накапливается в регистре и на каждой итерации цикла складывается с новым произведением Wi*Xi. Как

    197 только все пары «вход-вес» будут перебраны, результирующая взвешенная сумма, являясь аргументом функции активации, анализируется на необходимость вычисления функции. Необходимость в вычислениях пропадает, если взвешенная сумма принадлежит одному из двух крайних сегментов функции, где она (функция) будет равна, либо нулю в этом случае алгоритм сразу же завершается, поскольку регистр был сброшен в состояние нуля на первом шаге алгоритма, либо единице соответственно.
    Если же необходимость в вычислении функции все же присутствует, то необходимые действия производятся за два такта с помощью устройства умножения и сумматора. Результат работы нейрона записывается в выходной регистр.
    Повышение точности вычислений возможно посредством уменьшения длины и увеличения количества отрезков, на которые разбивается функция активации нейрона. Таким образом, точность вычислений напрямую зависит от точности аппроксимации.
    Увеличение разрядности регистра взвешенной суммы повышает точность аппроксимации, но приводит к увеличению аппаратных затрат при реализации на ПЛИС.
    Значительный прирост быстродействия, возможно, получить, реализовав параллельное перемножение весов на входы нейронов. Это позволит ускорить работу этих нейронов в несколько раз, но приведёт к увеличению аппаратных затрат. Вычисление взвешенной суммы остается последовательным процессом, поэтому для ощутимого ускорения можно конвейеризовать расчёт взвешенной суммы и процедуру перемножения весов на входные сигналы.
    Возможно использование отдельных устройств перемножения и сложения для вычисления функции на каждом участке. В этом случае удастся избежать задержки на мультиплексорах (выбора линейного и углового коэффициента попросту не будет, выбирать нужно будет только

    198 источник результата), но потребуются дополнительные управляющие сигналы для выбора источника результата.
    При реализации прототипа нейронной сети на базе ПЛИС необходимо выполнить два важных требования: высокая тактовая частота и достаточное количество логических элементов для реализации нейронной сети.
    Для решения системы дифференциальных уравнений [44] путём аппаратной реализации прототипа трёхслойной нейронной сети [1,25,3] был выбран кристалл Altera Cyclone III EP3C120, содержащий около
    120 000 логических элементов и способный устойчиво работать на частоте до 400 МГц.
    Моделирование схемы ПЛИС проводится на базе системы автоматизированного проектирования ПЛИС Altera Cyclone III Quartus II.
    Интересная разработка
    CM1K представлена на сайте www.cognimam.com
    . CM1K - первая версия ASIC нейронной сети
    CogniMem, содержащей 1024 нейрона работающих параллельно и способных к распознаванию образцов до 256 байтов за несколько микросекунд.

    199
    10. ПРИМЕРЫ РЕАЛИЗАЦИИ ПАКЕТОВ
    НЕЙРОСЕТЕВЫХ ПРОГРАММ
    10.1 Анализ преимуществ коммерческих нейросетевых программ
    Несмотря на значительное число специализированных аппаратных разработок нейросетей, основное применение в настоящее время получили программные реализации различных нейросетевых парадигм
    [4,10,11,12,20,25-28], называемые нейропакетами (нейроэмуляторами).
    Иначе говоря, нейропакет - это программная оболочка, эмулирующая для пользователя нейросреду на обычном персональном компьютере [23-28].
    Преимущества таких "виртуальных" нейрокомпьютеров для относительно небольших задач очевидны:
    – во-первых, не надо тратиться на новую аппаратуру, если можно загрузить уже имеющиеся компьютеры общего назначения;
    – во-вторых, пользователь не должен осваивать особенности программирования на специализированных процессорах и способы их сопряжения с базовым компьютером;
    – универсальные ЭВМ не накладывают никаких ограничений на структуру сетей и способы их обучения, тогда как специализированные процессоры зачастую имеют ограниченный набор "зашитых" в них функций активации и достигают пиковой производительности лишь на определенном круге задач.

    200
    Таблица10. 1. Секторы рынка нейросетевых программных продуктов
    Сегмент рынка нейронных продуктов
    Преимущества
    Недостатки
    Нейронные пакеты общего назначения
    Не требуют самостоятельного программирования, легко осваиваются, пригодны для быстрого и дешёвого решения прикладных задач
    Не способны к расширению, не могут использоваться для разработки сложных систем или их подсистем
    Системы разработки нейронных приложений
    Могут использоваться для создания сложных систем обработки данных в реальном времени
    Требуют навыков программирования, более глубокого знания нейросетей
    Готовые решения на основе нейросетей
    Предоставляют комплексное решение проблемы
    Высокая стоимость
    10.2. Универсальный нейропакет NeuroSolutions
    Универсальный нейропакет NeuroSolutions фирмы NeuroDimension,
    Inc. предназначен для моделирования широкого круга искусственных нейронных сетей. Основное достоинство описываемого нейропакета состоит в его гибкости: помимо традиционно используемых нейросетевых парадигм (типа полносвязных многослойных нейронных сетей или

    201 самоорганизующихся карт Кохонена) нейропакет включает в себя мощный редактор визуального проектирования нейронной сети, позволяющий создавать практически любые собственные нейронные структуры и алгоритмы их обучения. Особо следует отметить, что данный нейропакет позволяет пользователю вводить собственные критерии обучения нейронной сети, не ограничивая его только широко распространённым, но далеко не самым оптимальным критерием минимума среднеквадратичной ошибки.
    Нейропакет
    NeuroSolutions снабжен мощными и хорошо продуманными средствами визуализации: отображать и визуально контролировать можно многое, начиная от структуры нейронной сети и кончая процессом и результатом обучения. Наличие мощных средств визуализации выводит нейропакет на уровень CAD-систем (систем автоматизированного проектирования), т. е. NeuroSolutions можно считать системой проектирования и моделирования нейронной сети.
    10.3. NeuralWorks Professional II/Plus
    В отличие от NeuroSolutions в пакете NeuralWorks Professional II/Plus
    (фирма NeuralWare, Inc.) основной упор сделан на применение стандартных нейронных парадигм и алгоритмов обучения и в этом данный пакет превосходит все остальные. В нем реализованы 28 стандартных нейронных парадигм, используемых при решении прикладных задач.
    Также как и NeuroSolutions, NeuralWorks Professional имеет хорошо организованную систему визуализации данных. Можно просмотреть структуру нейронной сети, изменение весовых коэффициентов в процессе обучения, изменение ошибки обучения, а также корреляцию весов нейронной сети при обучении. Последнее является уникальной возможностью, представляемой только пакетом NeuralWorks Professional и

    202 весьма полезной при анализе поведения нейронной сети при обучении и работе.
    Также как и NeuroSolutions, NeuralWorks Professional представляет собой открытую систему, в которую можно интегрировать внешние программные модули, написанные пользователями. Пакет имеет встроенный генератор кода, поддерживающий компилятор Microsoft Visual
    C++.
    10.4. Нейропакет Process Advisor
    Нейропакет Process Advisor (фирма Al Ware, Inc) создавался для решения задач управления динамическими процессами (в частности, технологическими). Однако разработчикам удалось создать программу, которая может считаться универсальным нейропакетом. В нейропакете реализована только многослойная нейронная сеть прямого распространения, обучаемая с помощью модифицированного алгоритма обратного распространения ошибки (backpropagation error). Введены возможность работы с динамическими процессами. В частности, в Process
    Advisor возможна работа с входными сигналами как с функциями времени, а не только как с дискретным набором точек. Помимо Process Advisor, такую возможность предоставляет только пакет NeuroSolutions. Кроме того нейропакет Process Advisor позволяет осуществлять управление внешними аппаратными контроллерами, подключаемыми к компьютеру.
    10.5. Нейропакет NeuroShell 2
    Нейропакет NeuroShell 2 (фирма Ward Systems Group) является одной из трех программ, входящих в состав пакета The AI Trilogy. Он

    203 представляет собой универсальный нейропакет, предназначенный для моделирования нескольких наиболее известных нейронных парадигм: многослойных нейронных сетей, сети Кохонена и других. Пакет NeuroShell
    2 сильно проигрывает по сравнению с NeuroSolutions и NeuralWorks.
    Система для профессионала позволяет опытным пользователям создавать 16 различных видов нейросетей со значительно большими возможностями установки и контроля их параметров, чем в Системе для начинающего.
    Средства автономного использования, входящие в состав пакета
    NeuroShell 2, позволяют пользователю использовать свою созданную нейронную сеть как динамическую библиотеку (DLL), которая может быть вызвана из других программ или из Microsoft Excel. Вы можете также осуществить генерацию программного кода на Си или Visual Basic для созданных Вами сетей. Нейросети, которые Вы создали с помощью
    NeuroShell 2, Вы можете распространять без каких-либо ограничений и уплаты роялти. Для использования нейронной сети вне NeuroShell 2 используется модуль Генератор автономных файлов.
    Нейропакет NeuroShell 2 имеет и недостаточно продуманную систему визуализации данных: контролировать можно многие параметры, но в разных режимах работы нейропакета. Из-за отсутствия единого интегрального контроля данных в процессе обучения или работы нейронной сети часто приходится переключаться из одного режима в другой, что отнимает много времени и весьма неудобно в использовании.
    К особенностям нейропакета следует отнести жестко реализованную последовательность действий при работе с нейронной сетью. Так, невозможно определить структуру нейронной сети до того, как заданы входные данные. С одной стороны, это очень удобно, особенно для начинающих пользователей, поскольку сразу становится ясно, что и в какой последовательности следует делать. С другой стороны, более

    204 опытного пользователя такая жесткая зафиксированная последовательность действий утомляет: для того, чтобы внести в нейронную сеть небольшое изменение, приходится выполнять всю цепочку действий. Таким образом, можно сказать, что пакет NeuroShell 2 удобен для начинающих пользователей.
    Обычно процесс анализа данных начинается с подготовки данных.
    Пользователь может ввести данные вручную или импортировать данные из файлов.
    Обзор нейросетевых архитектур. Реализованные нейросетевые архитектуры (классификация нейронных сетей) приведены на рис. 10.1
    Рис.10.1 Выбор типа архитектуры в программе NeuroShell 2
    Модуль "Проектирование" NeuroShell 2 предлагает на выбор 16 различных нейросетей, приведённых на рис.10.1. Для каждой из них возможны несколько методов обучения. Чтобы установить параметры нейросети, Вам нужно просто указать курсором на блок или связь и щелкнуть мышкой.

    205
    В NeuroShell 2 можно использовать сети, реализующие следующие нейросетевые парадигмы: сети с обратным распространением ошибки; сети Кохонена; вероятностные нейронные сети; нейронные сети с общей регрессией; полиномиальные сети.
    1   ...   5   6   7   8   9   10   11   12   13


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