Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

BD_PP_11

.pdf
Скачиваний:
5
Добавлен:
16.06.2021
Размер:
271.27 Кб
Скачать

Лабораторная работа № 10 Построение нейронной сети с одним скрытым слоем.

Теоретические основы

Предположим, что переменная y (отклик) зависит от нескольких переменных x1, …, xn (факторов). Искусственный нейрон описывает нелинейное преобразование

y=f(u)=f(Σ(x1w1+x2w2+...+xnwn+w0))

x1

w1

x2

 

 

 

u

 

y

 

w2

Σ

f(u)

 

 

 

 

xn

wn

1

w0

Коэффициенты w называются весами. Нелинейная функция f называется функцией активации. В качестве функции активации будем использовать возрастающую функцию

y =

1

1+ e

 

ku

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

x1

1-й нейрон

 

 

 

x

2

2-й нейрон

 

выходной

y

 

 

 

 

 

нейрон

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn

m-й нейрон

 

 

 

 

 

 

 

входной

скрытый слой

 

выходной

 

слой

 

 

слой

 

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

Для построения нейронной сети необходимо, чтобы все данные (значения факторов и отклика) находились в одном и том же диапазоне, например, [0 ;1]. Поэтому необходима нормализация данных – преобразование их значений по формуле

z=(x-xmin)/(xmax-xmin)

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

Задание

Экспериментальные данные (920 записей) находятся в файле base1.xls Используя эти данные

1.Подготовить данные для построения нейронной сети: сформировать обучающую (700 записей) и контрольную (220 записей) выборки нормированных данных.

2.По обучающей выборке построить нейронную сеть 9:3:1, найти веса нейронов.

3.Рассчитать стандартную ошибку по обучающей и контрольной выборкам при различном рассеивании начальных значений весов нейронов.

Этапы выполнения работы

1.Подготовка данных.

1.1.Нормировка данных

Открыть файл base1.xls, сохранить его на рабочий диск под своей фамилией. Добавить в столбец J расчет десятичного логарифма возраста log(T). В конец каждого столбца, кроме столбца А, добавить формулы для расчета минимального и максимального значений.

Добавить новый лист Норм, построить на этом листе таблицу со структурой, аналогичной исходным данным. Заполнить лист нормированными данными: в ячейку B2 записать формулу

=(Лист1!B2-Лист1!B$922)/(Лист1!B$923-Лист1!B$922)

и скопировать ее на остальную часть таблицы. Удалить с листа Норм столбец J (Возраст).

Выделить все данные на листе Норм и вставить вместо формул значения (Копировать – Вставить – Вставить значения).

1.2. Формирование обучающей и контрольной выборок с использованием генератора случайных чисел

Вызвать пакет программ Анализ данных (вкладка Данные-Анализ). Из списка доступных программ выбрать программу Генерация случайных чисел. Задать параметры этой программы: необходимо добавить 920 равномерно распределенных в диапазоне от -100 до 100 случайных чисел в столбец, начиная с ячейки $K$2.

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

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

В результате строки будут перемешаны случайным образом (порядок номеров записей в столбце А изменится):

Удалить столбцы А и К, содержащие номера записей.

Первые 700 записей на листе Норм (строки со 2 по 701) содержат обучающую выборку, строки с 702 по 921 – контрольную выборку.

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

2.Построение нейронной сети

2.1.Ввод случайных начальных значений весов нейронов

После столбца А (Прочность) добавить новый столбец, задать его заголовок Св.член, заполнить этот столбец единицами.

Перед 1-й строкой добавить 5 строк. Ввести заголовки для таблицы весов нейронов. Заполнить эту таблицу случайными числами, используя программу Генерация случайных чисел из пакета программ Анализ данных (вкладка Данные-Анализ). Параметры программы:

9 переменных – входных нейронов (столбцы B:J);

4 случайных числа (3 нейрона скрытого слоя и 1 выходной нейрон);

равномерное распределение от -1 до 1;

случайное рассеивание 10;

выходной интервал, начиная с ячейки B2.

Вячейки F5:J5 записать 0, поскольку при построении нейронной сети эти ячейки не используются.

2.2.Расчет выходных значений нейронов

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

Вячейку L7 (нейрон1) ввести формулу для функции активации 1-го нейрона (исходные данные 1-го эксперимента перемножаются на веса входных нейронов из 2-й строки)

=1/(1+EXP(-СУММПРОИЗВ($B7:$J7;$B$2:$J$2)))

Аналогично, в ячейку M7 (нейрон2) ввести формулу для функции активации 2-го нейрона (веса входных нейронов берутся из 3-й строки)

=1/(1+EXP(-СУММПРОИЗВ($B7:$J7;$B$3:$J$3)))

В ячейку N7 (нейрон3) ввести формулу для функции активации 3-го нейрона (веса входных нейронов берутся из 4-й строки).

Для расчета выхода нейронной сети в ячейке O7 используются веса нейронов из 5-й строки и выходные данные 3-х нейронов скрытого слоя:

=1/(1+EXP(-СУММПРОИЗВ($K7:$N7;$B$5:$E$5)))

Формулы из ячеек L7:O7 скопировать вниз до 926-й строки.

3.Минимизация стандартной ошибки

3.1.Ввод формул для расчета стандартной ошибки

Вначале столбцов L:N подготовить таблицу для расчета остаточных сумм и стандартных ошибок по обучающей и контрольной выборкам.

Рассчитать сумму квадратов разностей между экспериментальным и расчетным значениями прочности для обучающей (в ячейке M2 по первым 700 строкам данных) и контрольной (в ячейке N2 по оставшимся строкам) выборок.

Рассчитать значения стандартных ошибок как квадратный корень из остаточных сумм в ячейках M3:N3. Для этих ячеек задать процентный формат чисел с 2 знаками после запятой.

3.2.Поиск минимума стандартной ошибки

Найти минимум стандартной ошибки обучающей выборки (ячейка M3), изменяя веса нейронов в ячейках B2:J5, используя программу «Поиск решения». По умолчанию программа выполняет 100 итераций, если цель не будет достигнута, появится сообщение

Для продолжения поиска минимума нажать на кнопку Продолжить.

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

4. Изменить начальные значения весой нейронов, используя другое значение случайного рассеивания (10, 20, 30, 40). Заново выполнить поиск минимума стандартной ошибки.

Содержание отчета о работе:

Значения стандартной ошибки для обучающей и контрольной выборки при различных значениях случайного рассеивания начальных весов нейронов:

Случайное

Обучающая

Контрольная

рассеивание

выборка

выборка

 

 

 

10

 

 

 

 

 

20

 

 

 

 

 

30

 

 

 

 

 

40

 

 

 

 

 

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

Контрольные вопросы:

Что такое нормализация данных?

В каком диапазоне изменяются значения функции активации?

Сколько нейронов содержится в скрытом слое построенной в работе нейронной сети?

Почему нейронная сеть является нелинейной моделью зависимости между факторами и откликом?

Почему результат построения нейронной сети зависит от начальных значений весов нейронов?

Можно ли задать начальные значения весов нейронов от 0 до 1? Как это повлияет на результаты построения сети?

В каком диапазоне изменяются значения весов нейронов?

Для чего используется генератор случайных чисел в этой работе?

Какие программы и встроенные функции Excel используются в этой работе? Какова задача каждой из программ и функций?

Соседние файлы в предмете Информационные системы