Нейронные сети кохонена в excel

5.8.1. Общая характеристика

Пакет Excel Neural Package разработан фирмой «НейрОК» (119899, Москва, Воробьевы горы, Научный Парк МГУ, 5 — 529, e-mail: info@neurok.ru, адрес в Интернет, www neurok ru, демонстрационную версию программы можно получить на сервере www.download.ru в разделе «Образование, наука, техника — Научно-технические программы») и расширяет функциональные возможности Excel, предоставляя в распоряжение пользователя алгоритмы обработки данных на основе теории нейронных сетей Технически семейство продуктов реализовано как набор надстроек

(add-ins) над Microsoft Excel и не предъявляет особых требований к оборудованию.

Excel Neural Package состоит из двух независимых компонентов: Winnet и Kohonen Мар.

Программа Winnet реализует многослойный персептрон и предназначена для поиска и моделирования скрытых зависимостей в больших массивах численных данных, для которых в явном виде аналитические зависимости не известны. Характеристики Winnet 3.0 приведены в табл. 5.2.

Таблица 5.2 (см. скан) Основные характеристики Winnet 3.0

Winnet 3.0 имеет удобный графический интерфейс и обладает хорошими возможностями контроля за процессом обучения:

• отображение в процессе обучения графиков ошибок обучения и обобщения;

• отображение диаграмм рассеяния «реальное значение — предсказанное нейронной сетью» для каждого выхода сети;

• выбор тестового множества;

• остановка обучения по достижении различных критериев останова.

Kohonen Мар представляет собой программный инструмент для построения и анализа самоорганизующихся карт Кохонена. Среди основных применений следует выделить задачи кластеризации и визуализации многомерной информации. Пользователь

может представить весь массив данных в виде двумерной цветной карты и визуализировать на ней интересующие его характеристики. Характеристики Kohonen Мар 1.0 приведены в табл. 5.3.

Таблица 5.3 (см. скан) Основные характеристики Kohonen Мар 1.0

5.8.2. Установка нейропакета

Установка пакета требует выполнения следующих действий.

1) Создать директорию для файлов пакета. Например: C:Program FilesMicrosoft OfficeENP.

2) Скопировать в эту директорию все файлы из директории …Neural tools package.

3) Запустить Excel.

4) Выбрать Меню/Сервис/Надстройки. В всплывающем окне Надстройки нажать кнопку Обзор. Далее в открывшемся окне выбрать в созданной папке файл NPackage.xIa и нажать кнопку ОК.

5) В списке окна Надстройки появится новый пункт Neural tools Package. Выбрать его и нажать кнопку ОК.

6) В открывшемся далее окне Authorization checker в поле ввода ввести персональный код (который содержится, например, в файле pwd) и нажать кнопку ОК.

7) В левом верхнем углу экрана появится панель инструментов Neural Analysis, на которой расположены кнопки доступных в данной версии Excel Neural Package нейроинструментов.

5.8.3. Работа с пакетом

Winnet

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

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

• загрузить данные из книги Excel в систему;

• определить, что является входной информацией, а что -выходной;

• предобработать данные, т. е. осуществить их нормировку;

• оценить значимость входов для выходной информации и, если необходимо, изменить (удалить/добавить) входы;

• создать нейронную сеть;

• обучить нейронную сеть на заданном множестве примеров и оценить работу на тестовом множестве;

• сохранить предсказанные (обработанные) данные в книге

Exel;

• сохранить обученную нейронную сеть для дальнейшей работы.

Разберем эти действия по шагам.

1) Для работы с данными выделите область на листе книги Excel. Данные на листе располагаются следующим образом: входы и выходы — столбцы, строки — обучающие примеры.

2) Щелкните мышью по кнопке с изображением нейрона на панели инструментов Neural Analysis. Появится диалоговое окно Select data source, предлагающее уточнить параметры области данных для работы (рис. 5.75).

3) В случае согласия с параметрами ввода нажмите ОК.

4) Откроется основное окно Winnet 3.0. Оно содержит 4 табулированных листа Data, Network, Training и Output, ассоциированных с общими этапами работы (рис. 5.76).

5) Открывшийся лист Data позволяет определить и предобработать данные для последующего использования. Кроме того, с этого листа можно сохранить обученную нейронную сеть (Save Project …) или загрузить уже сохраненный в прошлом проект (Load Project…). Первое, что нужно сделать, это определить входы, для чего следует нажать кнопку Select Inputs….

6) В открывшемся диалоговом окне Select Inputs/All Data выберете необходимые входы и с помощью кнопки » переведите

их в окно списка Inputs. Корректировку выбранных входов можно провести, используя кнопку <.

Рис. 5.75 Окно определения данных

Рис. 5.76 Основное окно Winnet 3.0

7) Так как конкретные значения входов могут быть любыми, то рекомендуется их нормализовать Для большинства случаев подходит нормировка входных значений Mean/Variance. При этом данные переводятся в безразмерную форму вычитанием среднего и нормированием на их дисперсию. Другие способы: линейное преобразование, приведение к диапазону (-1, +1) ([-1, +1]

normalization) и нелинейное преобразование гиперболическим тангенсом (than-normalization). Нажмите кнопку Normalization… и выберите в открывшемся окне Inputs normalization соответствующую позицию переключателя. Подтвердите выбор нажатием кнопки ОК. Вернувшись в окно Select Inputs также подтвердите выбор нажатием кнопки ОК

8) Далее, нажав на кнопку Select Outputs…, аналогично пунктам 6 и 7 определите и нормализуйте, при необходимости, выходы системы

9) Определение значимость входной информации для предсказания выходной начинается с нажатия кнопки Boxcouting…, по которому система, используя алгоритм Boxcouting, определит статистическую значимость входов для заданных выходов. В открывшемся окне Boxcouting results (рис. 5.77) представлена результирующая информация Причем-

• чем выше столбец гистограммы для данного входа, тем значимее его информация;

• чем больше отношение Mean predictability/Variance отличается от 1, тем большего успеха можно достичь в предсказании выходной информации.

Рис. 5.77 Результат отбора наиболее существенных переменных

Не имеет смысла использовать для предсказания входы, значимость которых равна или близка к нулю. Поэтому, вернувшись в основное окно, удалите эти входы из списка Inputs. Данную

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

10) Следующий этап — создание нейронной сети (многослойного персептрона) Перейдите на закладку Network и нажмите на кнопку Create Net…. В открывшемся окне Network Construction (рис. 5.78) можно полностью определить структуру и топологию нейронной сети:

• количество слоев;

• тип активационной функции нейронов данного слоя;

• число нейронов в слое;

• порядок нелинейности нейронов данного слоя

Рис. 5.78 Окно конструирования нейронной сети

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

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

новых данных (напомним, что это нежелательное явление называется переобучением)

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

В-третьих, использование порядка нелинейности нейрона более 1 рекомендуется только подготовленным пользователям

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

Рис. 5.79 Графическое представление структуры созданной нейронной сети

11) Для обучения созданной нейронной сети перейдите на следующую закладку Training Перед обучением надо задать тестовое множество примеров из общей совокупности обучающих примеров Эти примеры не будут участвовать в обучении На них будут основываться оценки предсказательных свойств обученной нейронной сети Щелкните по кнопке Edit test set… В окне (рис. 5.80) можно задать размер и характер обучающей выборки

Общие рекомендации

• число примеров в тестовой выборке должно составлять 20-30%, но не менее нескольких десятков,

• при решении задач аппроксимации наиболее естественным является случайный выбор тестового множества Отдельная опция Random + Last examples введена для задач прогнозирования временных рядов При этом последние примеры всегда исключаются из обучения и являются, по сути, прогнозом

Подтвердите выбор нажатием кнопки ОК и вернитесь в основное окно

Рис. 5.80 Окно задания параметров обучения

12) Теперь можно начинать обучение Нажав кнопку Start training, можно наблюдать за ходом обучения нейронной сети по изменению информации в области Training Info или в графическом виде в соответствующих окнах, вызываемых нажатием клавиш в области Graphs Желательно остановить процесс обучения в момент, когда ошибки обучения и обобщения начнут сильно расходиться Рост ошибки обобщения сигнализирует о начале переобучения

13) По завершении процесса обучения его результаты можно визуально оценить на графике Network answers…, вызываемом по нажатию соответствующей кнопки

14) Пакет позволяет управлять параметрами процесса обучения Но данными возможностями рекомендуется пользоваться только подготовленным пользователям в исключительных случаях

15) Теперь осталось сохранить проект (Save Project…) и экспортировать результаты назад в книгу Excel. Для экспорта результатов перейдите на закладку Output, задайте необходимые параметры и сохраните результаты нажатием кнопки ОК.

16) Можете теперь закрыть окно программы Winnet 3.0 Дальнейший анализ полученных результатов удобнее проводит стандартными статистическими методами в Excel.

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

• загрузить данные в систему;

• загрузить ранее созданный проект;

• сохранить предсказанные данные в книге Excel.

Последовательность действий такова.

1) Выделите необходимую для работы область данных на листе книги Excel. Прежние соглашения относительно расположения данных остаются в силе.

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

2) Загрузите созданный ранее проект, нажав на кнопку Load Project… . В открывшемся окне выберите нужный файл проекта, имеющий по умолчанию расширение .wnp, и подтвердите выбор нажатием кнопки Открыть.

3) Перейдите на закладку Output, задайте необходимые раметры и сохраните результаты нажатием кнопки ОК. Работу программой можно считать завершенной.

Kohonen Мар

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

Если работа с данными выполняется впервые, то для проведения анализа необходимо сделать следующее:

• загрузить данные из книги Excel в систему;

• определить входы, которые необходимы для проведения кластеризации;

• предобработать данные — осуществить их нормировку;

• при желании выбрать нужное число главных компонентов;

• создать и обучить нейронную сеть Кохонена;

• провести анализ многомерных данных встроенными средствами Kohonen Мар;

• сохранить обработанные данные и рисунки в книге xcel;

• если необходимо, сохранить обученную нейронную сеть для дальнейшей работы.

Разберем все эти этапы по шагам.

1) Для работы выделите область данных на листе книги Exel;

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

2) Щелкните мышью по кнопке с цветной картой Кохонена на панели инструментов eural Analysis. В ответ появится диалоговое окно Select data source, предлагающее уточнить параметры области данных для работы (рис. 5.75). В случае согласия с параметрами ввода нажмите кнопку ОК.

3) Откроется основное окно программы Kohonen Мар 1.0, которое содержит два листа Project и Results (рис. 5.81).

4) Открывшийся лист Project позволяет определить и пре-добработать данные для последующего использования. Кроме того, с этого листа можно сохранить обученную нейронную сеть (Save Project …) или загрузить уже сохраненный в прошлом проект (Load Project…), Прежде всего нужно определить входы, для чего нажмите на кнопку Create patterns ….

5) В открывшемся диалоговом окне Select relevant columns выберете в окне левого списка All columns необходимые входы и с помощью кнопок > или » перейдите в окно списка Selected. Корректировку выбранных входов можно провести, используя кнопки < или «. Отметим, что в отличие от Winnet 3.0 теперь все Данные являются входными и участвуют в обучении.

6) Поскольку конкретные значения входов могут быть из любого диапазона, то рекомендуется провести их нормировку. Для

большинства случаев подходит нормировка входных значений Mean/Variance. Нажмите кнопку Normalize… и выберите в открывшемся окне Inputs normalization соответствующую позицию переключателя. Подтвердите выбор нажатием кнопки ОК и вернитесь в окно Select relevant columns.

Рис. 5.81 Основное окно программы Kohonen Мар 1.0

7) Очень часто при анализе используется много входов, имеющих существенную линейную зависимость друг от друга. В этих случаях реализованный в пакете Kohonen Мар 1.0 метод главных компонентов (РСА) позволяет автоматически существенно понизить размерность пространства входных векторов Для этого переключатель Extract principal components должен быть включен. Подтвердите выбор нажатием кнопки ОК.

8) В открывшемся графическом окне PC Analyzer (рис. 5.82) можно контролируемо понизить размерность входов за счет уменьшения числа учитываемых при обучении главных компонентов без существенной потери информативности. С помощью соответствующего графика можно оценить потери информации. Обычно они не должны превышать 10% Подтвердите выбор нажатием кнопки ОК и вернитесь в основное окно программы.

9) Следующий этап — создание карты Кохонена. Нажатием кнопки Create Network… перейдите в диалоговое окно Dialog

задайте параметры сети (число кластеров) число ячеек по горизонтали и вертикали (рис. 5.83).

Рис. 5.82. Диалоговое окно для задания числа главных компонентов

Рис. 5.83 Окно задания числа кластеров

10) При создании нейронной сети следует руководствоваться следующими простыми правилами:

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

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

11) Подтвердите выбранную конфигурацию сети нажатием кнопки ОК. Далее автоматически стартует процесс обучения.

12) По завершении процесса обучения для анализа результатов перейдите на закладку Results (рис. 5.84).

Рис. 5.84 Диалоговое окно формы вывода результатов

Здесь доступны следующие функции.

• Create New Map… — цветовая раскраска карты Кохонена по любому параметру с выбранной степенью градации,

• Cell Description… — определение усредненных значений входных параметров для данного кластера (ячейки) и принадлежащих ему примеров,

• Find Cell… — поиск кластера, которому принадлежит данный пример;

• Output — сохранение результатов в книге Excel

13) Кроме того, программа позволяет управлять параметрами процесса обучения и изменения цветовой палитры раскраски карты Кохонена Для этого выберите пункт меню Program, пункт Preferences и далее Set Custom… В открывшемся окне Program Preferences на закладке Colors можно установить другие цвета градационной раскраски карты, а на странице Training parameters

— параметры обучения сети (данными возможностями рекомендуется пользоваться подготовленным пользователям в исключительных случаях). Восстановить параметры программы по умолчанию можно, выбрав там же подпункт меню Set Defaults

14) Создаваемая при нажатии кнопки Create New Мар… карта (рис. 5.85) является активной, при двойном щелчке мыши на

какой-либо ячейке открывается окно Cell description, в котором удобно проводить анализ усредненных значений параметров (рис. 5.86) Дополнительно предусмотрена возможность сохранения изображения карты раскраски в формате bmp для последующего экспорта через буфер обмена в любые документы MS Office. Для этого в окне карты выберите Actions/Copy to Bitmap Далее вернитесь в документ MS Office и произведите вставку рисунка командой Paste меню Edit.

Рис. 5.85 Условный графический вид выявленных кластеров

Рис. 5.86 Характеристики центра выбранного кластера

15) Осталось сохранить результаты работы В программе предусмотрены функции сохранения проекта (кнопка Save Project…) и экспорта результатов назад в книгу Excel. Для экспорта

результатов перейдите на закладку Project, задайте необходимые параметры и сохраните результаты нажатием кнопки ОК.

16) Можете закрыть окно программы Kohonen Мар 1.0. Дальнейший анализ полученных результатов удобнее проводить стандартными статистическими методами в Excel.

Для использования при анализе новых данных ранее сохраненного проекта необходимо проделать следующие операции:

• загрузить данные в систему;

• загрузить созданный ранее проект;

• провести анализ результатов встроенными средствами Kohonen Мар 1.0;

• сохранить данные в книге Excel.

Последовательность действий такова.

1) Выделите необходимую для работы область данных на листе книги Excel. Прежние соглашения относительно расположения данных остаются в силе.

Количество и расположение столбцов новых данных и описание первого столбца должно соответствовать параметрам, использованным при создании проекта и обучении сети Кохонена.

2) Загрузите созданный ранее проект, нажав на кнопку Load Project… . В открывшемся окне выберите нужный файл проекта, имеющий по умолчанию расширение .kmp, и подтвердите выбор нажатием кнопки Открыть.

3) Перейдите на закладку Results и проведите анализ результатов встроенными средствами Kohonen Мар 1.0. Затем, задайте необходимые параметры и сохраните результаты нажатием кнопки Output. Работу с программой можно считать завершенной.

5.8.4. Впечатления от работы с пакетом

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

Дата публикации: 2014

Дата публикации в реестре: 2020-03-03T07:07:53Z

Аннотация:

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

Ключевые слова:
нейронные системы, моделирование нейронных систем, материалы конференций, Microsoft Excel, карта Кохонена, алгоритмическое табличное моделирование, электронные таблицы

Тип: Статья

Neural Excel — это аналитическая надстройка для Microsoft Excel, позволяющая работать с нейронными сетями. Простая в использовании надстройка позволяет быстро сконфигурировать и обучить нейронную сеть прямо в среде Microsoft Excel. Инструмент ориентирован на людей, которые хотят быстро получить отдачу от использования нейронных сетей и при этом не сильно углубляться в теорию. Надстройка позволяет использовать обученные сети как непосредственно в Microsoft Excel, так и интегрировать их в свои собственные приложения. Простота использования и минимум настроек делают это приложение отличным выбором для студентов и начинающих специалистов в области нейронных сетей.

Области применения

Финансовые операции:

  • Прогнозирование поведения клиента

  • Прогнозирование и оценка риска предстоящей сделки

  • Прогнозирование возможных мошеннических действий

  • Прогнозирование остатков средств на корреспондентских счетах банка

  • Прогнозирование движения наличности, объемов оборотных средств

  • Прогнозирование экономических параметров и фондовых индексов

Бизнес-аналитика и поддержка принятия решений:

  • Выявление тенденций, корреляций, типовых образцов и исключений в больших объемах данных

  • Анализ работы филиалов компании

  • Сравнительный анализ конкурирующих фирм

Планирование работы предприятия:

  • Прогнозирование объемов продаж

  • Прогнозирование загрузки производственных мощностей

  • Прогнозирование спроса на новую продукцию

Другие приложения:

  • Оценка стоимости недвижимости

  • Контроль качества выпускаемой продукции

  • Системы слежения за состоянием оборудования

  • Проектирование и оптимизация сетей связи, сетей электроснабжения

  • Прогнозирование потребления энергии

Функциональные возможности программы

Neural Excel выполнена в виде надстройки Microsoft Excel, что дает возможность очень простой установки. Программа позволяет конфигурировать и обучать многослойные нейронные сети непосредственно в Microsoft Excel, начиная с 2007 версии.

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

Обученные нейронные сети могут быть сохранены непосредственно в книге Microsoft Excel в виде формул (функция поддерживается на версиях Microsoft Excel, начиная с 2010). Кроме того, использование сетей в виде формул позволяет автоматически пересчитывать выходные данные при изменении входных параметров.

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

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

Условия использования

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

Презентация программы…

Поддержка проекта

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

При описании ошибки обязательно укажите версию и разрядность офиса, текст ошибки (а лучше приложите скриншот окна) и последовательность Ваших действий, после которых возникла ошибка.

Индивидуальные варианты заданий.

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

Вариант

Распределение
вероятности
прихода
клиентов
в
банк

Вероятность
обращения
к
кассиру/к
банкомату

Время
обслуживания
клиента
кассиром

Количество

кассиров

1

Экспоненциальное

1/1

4±2

1

2

Экспоненциальное

1/2

6±2

2

3

Экспоненциальное

2/1

8±2

3

4

Экспоненциальное

1/3

7±2

4

5

Экспоненциальное

3/1

9±2

5

6

Нормальное

1/1

8±2

1

7

Нормальное

1/2

7±2

2

8

Нормальное

2/1

9±2

3

9

Нормальное

1/3

4±2

4

10

Нормальное

3/1

6±2

5

11

Треугольное

1/1

2±2

1

12

Треугольное

1/2

7±2

2

13

Треугольное

2/1

9±2

3

14

Треугольное

1/3

4±2

4

15

Треугольное

3/1

6±2

5

16

Равномерное

1/1

4±2

1

17

Равномерное

1/2

6±2

2

18

Равномерное

2/1

7±2

3

19

Равномерное

1/3

8±2

4

20

Равномерное

3/1

9±2

5

Проанализируйте
поведение
модели.
Постройте
графики
и
диаграммы.

Лабораторная работа №4. Моделирование интеллектуальных систем. Нейросеть обратного распространения ошибки.

Искусственные
нейронные сети – наиболее активно
применяемые интеллектуальные модели
на сегодняшний день. Нейронная сеть
(НС) имитирует работу человеческого
мозга: она способна обучаться на
собственных ошибках и обобщать полученные
знания, вырабатывать ответ «по аналогии»
и восстанавливать искаженные изображения
«по памяти». Основным типом нейронных
сетей, наиболее часто используемым на
практике, является многослойный
персептрон. Персептрон позволяет решать
самые разные задачи: прогнозирование,
регрессия, решение уравнений и систем
уравнений, и т.д. Рассмотрим три программных
пакета, используемых для моделирования
и использования многослойного персептрона.

I. Обзор использования пакета Excel Neural Package.

После
установки пакета его можно использовать
совместно с офисным приложением Microsoft
Exсel
– 97 (инструкцию по установке см. в файле
READMY.doc).
На панели инструментов EXCEL
появляются две новые кнопки —
-WinNet
(реализует многослойный персептрон) и

-Kohonen
Map
(реализует самообучающуюся сеть
Кохонена).

Работа
посвящена изучению многослойного
персептрона.

Работа
с пакетом
Winnet

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

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

  • загрузить
    данные из книги Excel
    в систему;

  • определить,
    что является входной информацией, а
    что
    -выходной;

  • предобработать
    данные, т. е. осуществить их нормировку;

  • оценить
    значимость входов для выходной информации
    и, если необходимо, изменить
    (удалить/добавить) входы;

  • создать
    нейронную сеть;

  • обучить
    нейронную сеть на заданном множестве
    примеров
    и оценить работу на тестовом множестве;

  • сохранить
    предсказанные (обработанные) данные в
    книге Excel;

  • сохранить
    обученную нейронную сеть для дальнейшей
    работы.

Разберем
эти действия по шагам.

  1. Для
    работы с данными выделите область на
    листе книги
    Excel.
    Данные на листе располагаются следующим
    образом: входы и
    выходы — столбцы, строки — обучающие
    примеры. Например, требуется построить
    нейронную сеть, вычисляющую выброс
    свинца в атмосферу в зависимости от
    количества и вида проезжающего
    транспорта. Тогда исходные данные могут
    выглядеть следующим образом:

Рис.
4. 1.
Подготовка
данных на листе Excel.

  1. Щелкните
    мышью по кнопке с изображением нейрона
    на панели
    инструментов Neural
    Analysis.
    Появится
    диалоговое окно Select
    data
    source,
    предлагающее
    уточнить параметры области данных
    для работы.

Рис.
4. 2.
Задание
исходных данных для НС.

  1. В
    случае согласия с параметрами ввода
    нажмите ОК.

  2. Откроется
    основное окно Winnet
    3.0. Оно содержит 4 табулированных
    листа: Data,
    Network,
    Training
    и
    Output,
    ассоциированных
    с общими этапами работы.

Рис.
4. 3.
Окно
задания входов и выходов НС.

  1. Открывшийся
    лист Data
    позволяет
    определить и предобработать
    данные для последующего использования.
    Кроме того, с этого
    листа можно сохранить обученную
    нейронную сеть (Save
    Project
    …)
    или загрузить уже сохраненный в прошлом
    проект (Load
    Project…).
    Первое, что нужно сделать, это определить
    входы,
    для чего следует нажать кнопку Select
    Inputs….

  2. В
    открывшемся диалоговом окне Select
    Inputs/All
    Data
    выберете
    необходимые входы и с помощью кнопки
    >> переведите их в окно списка Inputs.
    Корректировку выбранных входов можно
    произвести кнопкой <.

Рис.
4. 4.
Выбор
данных.

  1. Так
    как конкретные значения входов могут
    быть любыми, то
    рекомендуется их нормализовать. Для
    большинства случаев подходит нормировка
    входных значений Mean/Variance.
    При
    этом данные
    переводятся в безразмерную форму
    вычитанием среднего и
    нормированием на их дисперсию. Нажмите
    кнопку Normalization
    и
    выберите
    в открывшемся окне Inputs
    normalization
    соответствующую
    позицию переключателя. Подтвердите
    выбор нажатием кнопки ОК
    Вернувшись
    в окно Select
    Inputs
    также
    подтвердите выбор нажатием
    кнопки ОК.

Рис.
4. 5.
Выбор
метода нормализации.

  1. Далее,
    нажав на кнопку Select
    Outputs…,
    аналогично
    пунктам
    6 и 7 определите и нормализуйте, при
    необходимости, выходы
    системы.

  2. Определение
    значимости входной информации для
    предсказания
    выходной начинается с нажатия кнопки
    Boxcouting…,
    по
    которому
    система, используя алгоритм Boxcouting,
    определит статистическую значимость
    входов для заданных выходов. В открывшемся
    окне Boxcouting
    results

    представлена результирующая
    информация.

Рис.
4. 6.
Определение
значимости входов.

Причем:

  • чем
    выше столбец гистограммы для данного
    входа, тем значимее
    его информация;

  • чем
    больше отношение Mean
    predictability/Variance
    отличается от 1, тем большего успеха
    можно достичь в предсказании выходной
    информации. Не имеет смысла использовать
    входы, значимость которых близка или
    равна нулю. Поэтому, вернувшись в
    основное окно, удалите их из списка
    Inputs.

10)
Следующий этап — создание нейронной
сети (многослой­ного персептрона).
Перейдите на закладку Network
и
нажмите на кнопку
Create
Net….
В
открывшемся окне Network
Construction

можно полностью определить структуру
и топологию нейронной
сети:

  • количество
    слоев;

  • тип
    активационной функции нейронов данного
    слоя;

  • число
    нейронов в слое;

  • порядок
    нелинейности нейронов данного слоя.

Рис.
4. 7.
Задание
числа слоев и нейронов.

При
определении структуры и топологии сети
будем руководствоваться следующими
соображениями:

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

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

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

  4. Использование
    порядка нелинейности нейрона более 1
    не рекомендуется.

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

Рис.
4. 8.
Вид
построенной нейросети.

11)
Для обучения созданной нейронной сети
перейдите на следующую закладку Training.
Перед
обучением надо задать тестовое множество
примеров из общей совокупности обучающих
примеров. Эти примеры не будут участвовать
в обучении. На них будут основываться
оценки предсказательных свойств обучен
нейронной сети. Щелкните по кнопке Edit
test
set
.
В окне можно задать размер и характер
обучающей выборки.

Общие
рекомендации:


число
примеров в тестовой выборке должно
составлять 20-30%, но не менее нескольких
десятков;

• при
решении задач аппроксимации наиболее
естествен­ным является случайный
выбор тестового множества. Отдельная
опция Random
+
Last
examples
введена
для задач прогнозирова­ния временных
рядов. При этом последние примеры всегда
ис­ключаются из обучения и являются,
по сути, прогнозом.

Подтвердите
выбор нажатием кнопки ОК и вернитесь в
ос­новное окно.

Рис.
4. 9.
Выбор
параметров обучения сети.

12)
Теперь можно начинать обучение. Нажав
кнопку Start
training,
можно
наблюдать за ходом обучения нейронной
сети по изменению информации в области
Training
Info
или
в графиче­ском виде в соответствующих
окнах, вызываемых нажатием кла­виш в
области Graphs.
Желательно
остановить процесс обучения в момент,
когда ошибки обучения и обобщения начнут
сильно рас­ходиться. Рост ошибки
обобщения сигнализирует о начале
пере­обучения.

13)
По завершении процесса обучения его
результаты можно визуально оценить на
графике Network
answers…,
вызываемом
по нажатию соответствующей кнопки.

Рис.
4. 10.
Результат
обучения нейросети.

14)
Пакет позволяет управлять параметрами
процесса обу­чения. Но данными
возможностями рекомендуется пользоваться
только подготовленным пользователям
в
исключительных
случаях.

15)
Теперь осталось сохранить проест (Save
Project…)
и
экспортировать результаты назад в
книгу
Excel,
Для экспорта ре­зультатов перейдите
на закладку Output,
задайте
необходимые параметры и сохраните
результаты нажатием кнопки ОК.

Рис.
4. 11.
Вывод
результатов сети на лист Excel.

Вид
листа Excel
после вставки результатов.

Рис.
4. 12.
Окно
Excel
с результатами работы нейросети.

Как
видно, разница между реальными и
вычисленными значениями свинца очень
мала. Теперь спроектированную и обученную
нейронную сеть можно сохранить на
вкладке Data
Save
Project

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

Соседние файлы в папке МатМод экология

  • #
  • #
  • #
  • #
  • #
  • #

Introduction

This article is written for you who is curious of the mathematics behind neural networks, NN. It might also be useful if you are trying to develop your own NN. It is a cell by cell walk through of a three layer NN with two neurons in each layer. Excel is used for the implementation.

  • Download neuralnetwork Sigmoid — 1.2
  • Download neuralnetwork Leaky ReLu — 1.2

Background

If you are still reading this, we probably have at least one thing in common. We are both curious about Machine Learning and Neural Networks. There are several frameworks and free api:s in this area and it might be smarter to use them than inventing something that is already there. But on the other hand, it does not hurt to know how machine learning works in depth. And it is also a lot more fun to explore things in depth.

My journey into machine learning has perhaps just started. And I started by Googling, reading a lot of great stuff on the internet. I also saw a few good YouTube videos. But I it was hard to gain enough knowledge to start coding my own AI.
Finally, I found this blog post: A Step by Step Backpropagation Example by Matt Mazur. It suited me, and the rest of this text is based on it.

Construction

image missing

A Neural Network, NN, consists of many layers of neurons. A Neuron has a value and connections with weights to all other neurons in the next layer.

The first layer is the input layer and the last layer is the output layer. Between input and output, there might be one or many hidden layers. The number of neurons in a layer is variable.

If a NN is used to, for example, classify images, the number of neurons in the input layer is of course equal to the number of pixels in the image. Then in the output, each neuron represents a classification of the image. (E.g., a type of animal, a flower or a digit.)

Calculations

Before the calculations, all the weights in the NN have to be initialized with random numbers.

The image below is a print screen of the spread sheet that I refer to in the rest of this article. It might be a good idea to keep an open window of that sheet. That should make it easier to follow along.
A tip: Row 2 is the order of calculations.

Image 2

Step 1 — 3. Forward Pass

The value of one neuron is calculated by taking the sum of every previous neuron multiplied by its weight.
An extra bias weight which has no neuron is also added:

F3 = A3 * B3 + A7 * B4 + B5

The value is normalized through a activation function. There are several different activation functions used in neural networks.
I have used the logistic function: Image 3

G3 = 1 / (1 + EXP(-F3))

Step 4 — 5. Forward Pass

The neurons of the output layer is calculated the same way as hidden layer.

L3 = G3 * H3 + G7 * H4 + H5
and
M3 = 1 / (1 + EXP(-L3))

Step 6 — 7. The Error

The error of each output neuron is calculated using an expected or a target value. When classifying images, it is common to set one neuron close to 1 and the rest of the neurons close to zero.

For the errors in column Q:

Q3 = (M3 — O3)²

and:

Q7 = (M7 — O7)²

The total Error R5 is the average of all errors and should get closer and closer to zero as the network is trained.

R5 = (Q3 + Q7) / 2

Backward Propagation

A Neural Network is trained by passing it lots of train data repeatedly.
Then, for every iteration, errors and deltas are calculated. This is used to make small adjustments to all the weights in such a way that the network becomes better and better.
This is called backpropagation.
Since the total error can be expressed as a mathematical functions of each weight, one can derive those functions to obtain the slopes of the function curves in one point. The slopes indicate the direction towards a minimum for the total error and proportionally how much each weight should be adjusted in order for the total error to approach zero.

A delta value is calculated below for each weight. The deltas are stored in column I and D, for output and hidden layer respectively.

Chain Rule — Friend of Backpropagation

In practice, we want to derive the total error R5 with respect to H3 so we first to express R5 as a function of H3 using substitutions.

Since

R5 = (Q3 + Q7) / 2
R5 = (M3 - O3)² / 2 + (M7 - O7)² / 2

Image 4

Image 5 

The above function does not look very easy to derive. Is it even possible?
We will instead use the chain rule2.
It states that if we have a composition of two or more functions f(g(x)) and let F(x) = f(g(x)), we can derive like this:

F’(x) = f’(g(x)) * g’(x) or in another notation:

Image 6

In our case, we have the following dependency:

R5(M3(L3(H3))) and we can write:

image missing

Step 9. Output layer Deltas

The function for the total error R5 is derived with respect to the first weight H3 of the output layer.

image missing

In the above formula, the chain rule is used to make it simpler to derive.

image missing

Since:

Image 10

Image 11
Proof of derivation of Logistic function found in this article3.

Since Image 12 will be used later in the backpropagation, it is stored in the cell P3.

P3 = (M3-O3) * M3 * (1 - M3)

The last derivative of the chain of derivatives above is simpler.
Since L3 = G3 * H3 + G7 * H4 + H5

no image

We can now put everything together and store Image 14 into cell I3.

I3 = P3 * G3

The rest of the weights in output layer is calculated the same way and we get:

P7 = (M7-O7) * M7 * (1 - M7)

I4 = G7 * P3
I5 = 1 * P3 (bias neuron)
I7 = G3 * P7
I8 = G7 * P7
I9 = 1 * P7 (bias neuron)

Step 10. Backpropagation in Hidden Layer

In this step, we calculate:

Image 15

The chain rule from previous steps helps to transform it to something we can use:
Image 16

First term also must be split up on both errors Q3 and Q7 so:

Image 17

First look at this:

Image 18

It can be further split up like this:

Image 19

First Image 20 is already stored in P3 = (M3-O3) * M3* (1 - M3)

Since L3 = G3 * H3 + G7 * H4 + H5

Image 21

When we put the above together, we get:

Image 22

And in the same way as above:

Image 23

First problem is solved.

Image 24

Time for Image 25

We know that:
Image 26

And we have previously learned to derive the logistic function.

Image 27

And now:

Image 28

Because:

Image 29

We now put the above together to get one expression for the derivative of the total error with respect to first weight of the hidden layer.

Image 30

This is stored in cell C3.

The calculations for the above is repeated for all hidden layer weights:

C3 = (P3 * H3 + P7 *H7) * (G3 *(1 - G3)) * A3
C4 = (P3 * H3 + P7 *H7) * (G3 *(1 - G3)) * A7
C5 = (P3 * H3 + P7 *H7) * (G3 *(1 - G3)) * 1
C7 = (P3 * H4 + P7 *H8) * (G7 *(1 - G7)) * A3
C8 = (P3 * H4 + P7 *H8) * (G7 *(1 - G7)) * A7
C9 = (P3 * H4 + P7 *H8) * (G7 *(1 - G7)) * 1

Now it is easy to calculate new weights using a selected learning rate from cell A13.

For example: (new B3)

D3 = B3 - C3 * A13

There is a macro connected to the train button in the Excel document. The macro iterates many times and we can see how the output neurons in column M gets closer and closer to their target values and that the total Error in R5 gets closer and closer to zero.

Image 31

Update in version 1.1:
I discovered that it is possible to improve learning rate and accuracy by using the activation function Leaky Relu4:
f(x) = x if x > 0 otherwise f(x) = x/20

It may be a good exercise to replace the Logistic Function with Leaky Relu.
Hints:

G3 = IFS(F3 > 0; F3; F3 <= 0; F3/20)
and
P3= (M3-O3) * IFS(M3 > 0;1;M3<=0;1/20)

(Also attaching new version of  the xls file, just in case…)

Final Words

I realize this article might take some time to digest. I tried to explain it as I understood it. Please comment below if you find any errors.

After I sorted out how NNs work in Excel, I wrote a C# program that can interpret hand written digits. It has a Windows Forms user interface which works well. It seems to recognize almost any digit I draw, even ugly once. That was a proof to me that my understanding of Artificial Neural Networks is correct so far.

That article can be found here:

Handwritten digits reader UI5

Links

  1. A Step by Step Backpropagation Example — Matt Mazur.
  2. Chain rule — Wikipedia
  3. Logistic function — Wikipedia
  4. Rectifier (neural networks) — Wikipedia
  5. Handwritten digits reader UI — Kristian Ekman

History

  • 1st January, 2019 — Version 1.0
  • 8th January, 2019 — Version 1.1
    • Replaced Logistic activation function with LeakyReLu
  • 11th January, 2019 — Version 1.2
    • Update of names of biases in diagrams
  • 23th Januray, 2019 — Version 1.3
    • Changed du calculation to the total error to the average av errors

This member has not yet provided a Biography. Assume it’s interesting and varied, and probably something to do with programming.

Понравилась статья? Поделить с друзьями:
  • Нейронная сеть пример excel
  • Нейронная сеть для excel
  • Неизменяемый пробел в word
  • Неизменное число в excel
  • Неизвестный элемент в excel