Процесс моделирования однослойного персептрона в Excel рассмотрим на примере семисегментного индикатора для отображения цифр. Такие индикаторы широко используются в микроэлектронике для отображения не только цифр, но и некоторых букв.
Задача лабораторной работы создать автоматизируемую модель однослойного персептрона с использованием встроенного языка Visual Basic for Application в MS Excel. Главной задачей разрабатываемой модели является разделение множества цифр на два класса по некоторому критерию, например, на четные и нечетные.
1. Первым шагом является подготовка рабочего листа MS Excel для удобного отображения цифр. Для этого необходимо изменением размеров ячеек изобразить семи сегментное изображение цифры 8. Залить ячейки красным цветом, используя «Уловное форматирование», в качестве условия необходимо указать значение ячейки равное 1, а действие – заливка ячейки красным фоном.
В результате проделанной работы должна появиться возможность отображения сегмента любой цифры, вводя 0 или 1 в необходимые ячейки (сегменты).
2. Процесс моделирования однослойного персептрона заключается в практической реализации схемы нейрона. Для этого каждый сегмент цифры будет являться входящим сигналом для однослойного персептрона, состоящего из 0 и 1. Для удобства в столбце E размещены ссылки на 7 сегментов индикатора в столбик.
3. Следующий столбец в Excel (F) будет отображать значение синаптических весов. Значение шага обучения указывается в ячейке B9.
4. В столбце (G) вычисляются произведения входных сигналов и соответствующих им синаптических весов (=E6*F6). Полученные результаты суммируются в ячейке G13. Ячейка H13 содержит значение пороговой функции по умолчанию равное 0.
5. В ячейке K5 находится сама пороговая функция логика работы которой заключается в том, что, если выход превысит порог, результат 1 иначе 0. =ЕСЛИ(G13<H13;"чет";"нечет").
6. Процесс обучения однослойного персептрона заключается в увеличении или уменьшении значения синаптических весов для коректировки значения пороговой функции. Для этого на лист Excel добавляются две кнопки из панели элементов управления формы для увеличения и для уменьшения значения весов.
Макрос для кнопки «Уменьшить» состоит из 7 последовательных строк:
If Range("E6").Value = "1" Then Range("F6").Value = Range("F6").Value - Range("B9").Value
If Range("E7").Value = "1" Then Range("F7").Value = Range("F7").Value - Range("B9").Value
и т.д. до ячейки E12.
Макрос для кнопки «Увеличить» состоит из 7 последовательных строк:
If Range("E6").Value = "1" Then Range("F6").Value = Range("F6").Value + Range("B9").Value
If Range("E7").Value = "1" Then Range("F7").Value = Range("F7").Value + Range("B9").Value
и т.д. до ячейки E12.
7. Предложенный Ф.Розенблаттом метод обучения состоит в итерационной подстройке матрицы весов, последовательно уменьшающей ошибку в выходных векторах. Алгоритм включает несколько шагов:
Шаг 0 | Начальные значения весов всех нейронов полагаются случайными |
Шаг 1 | Сети предъявляется входной образ , в результате формируется выходной образ |
Шаг 2 | Вычисляется вектор ошибки , делаемой сетью на выходе. Дальнейшая идея состоит в том, что изменение вектора весовых коэффициентов в области малых ошибок должно быть пропорционально ошибке на выходе и равно нулю, если ошибка равна нулю. |
Шаг 3 | Вектор весов модифицируется по следующей формуле: Здесь — темп обучения. |
Шаг 4 | Шаги 1—3 повторяются для всех обучающих векторов. Один цикл последовательного предъявления всей выборки называетсяэпохой. Обучение завершается по истечении нескольких эпох: а) когда итерации сойдутся, т.е. вектор весов перестает изменяться, или б) когда полная, просуммированная по всем векторам абсолютная ошибка станет меньше некоторого малого значения. |
Объясним данный алгоритм более подробно. Подаем на вход персептрона такой вектор , для которого уже известен правильный ответ. Если выходной сигнал персептрона совпадает с правильным ответом, то никаких действий предпринимать не надо. В случае ошибки, необходимо обучить персептрон правильно решать данный пример. Ошибки могут быть двух типов. Рассмотрим каждый из них.
Первый тип ошибки: на выходе персептрона — 0, а правильный ответ — 1. Для того чтобы персептрон выдавал правильный ответ, необходимо, чтобы сумма в правой части (1) стала больше. Поскольку переменные принимают значения 0 или 1, увеличение суммы может быть достигнуто за счет увеличения весов Однако нет смысла увеличивать веса при переменных , которые равны нулю. Таким образом, следует увеличить веса при тех переменных xi, которые равны 1.
Первое правило. Если на выходе персептрона получен 0, а правильный ответ равен 1, то необходимо увеличить веса связей между одновременно активными нейронами. При этом выходной персептрон считается активным. Второй тип ошибки: на выходе персептрона — 1, а правильный ответ равен нулю. Для обучения правильному решению данного примера следует уменьшить сумму в правой части (1). Следовательно, необходимо уменьшить веса связей при тех переменных, которые равны 1 (поскольку нет смысла уменьшать веса связей при равных нулю переменных ). Необходимо также провести эту процедуру для всех активных нейронов предыдущих слоев. В результате получаем второе правило.
Второе правило. Если на выходе персептрона получена единица, а правильный ответ равен нулю, то необходимо уменьшить веса связей между одновременно активными нейронами.
Таким образом, процедура обучения сводится к последовательному перебору всех примеров обучающего множества с применением правил обучения для ошибочно решенных примеров. Если после очередного цикла предъявления всех примеров окажется, что все они решены правильно, то процедура обучения завершается.
В разработанной модели величина шага определяется произвольно. В случае зацикливания процесса обучения, т.е. попадания на некотором шаге на набор значений весов из предыдущего шага необходимо уменьшать шаг обучения. В конечном итоге будут получены весовые коэффициенты, позволяющие разделить множество цифр на два любых класса.
Список литературы
1. Яньков В.Ю., Иглицкий А.М. Системы искусственного интеллекта. .У чебно – практическое пособие пособие для студентов специальностей 210.200 и 220.200 всех форм обучения .Москва, 2006
2. Краснов А.Е., Красуля О.Н., Большаков О.В., Шлёнская Т.В. Информационные технологии пищевых производств в условиях неопределённости (системный анализ, управление и прогнозирование с элементами компьютерного моделирования). - М.: ВНИИМП, 2001. - 496 с.
3. Краснов А.Е., Красуля О.Н., Воробьёва А.В., Красников С.А., Кузнецова Ю.Г., Николаева СВ. Основы математического моделирования рецептурных смесей пищевой биотехнологии. - М.: Пище-промиздат, 2006. - 240 с.
4. Джордж Ф. Люггер. Искусственный интеллект. Стратегии и методы решения сложных проблем. Изд. «Вильямс»,2006
5. Стюарт Рассел, Питер Норрис. Искусственный интеллект. Современный подход. Издательство: «Вильямс», 2006 г.
6. Д. Рутковская, М. Пилиньский, Л. Рутковский. Нейронные сети, генетические алгоритмы и нечеткие системы. М., «Горячая линия – Телеком»,2007
Смирнов Денис Юрьевич
Яшин Денис Дмитриевич
Дата: 2019-04-23, просмотров: 425.