Скачиваний:
29
Добавлен:
07.11.2020
Размер:
259.6 Кб
Скачать

ГУАП

КАФЕДРА № 82

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

доцент

В.С. Блюм

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №4

Интеллектуальный анализ данных. Метод нейронной сети

по курсу: ИНТЕЛЛЕКТУАЛЬНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР.

подпись, дата

инициалы, фамилия

Санкт-Петербург 20

Цель работы: разобрать применения метода нейронной сети к заданным наборам данных.

Выполнение лабораторной работы:

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

  • Разобрать пример применения метода нейронной сети к заданному набору данных.

Необходимо в библиотеке Samples найти папку processes, далее 01_Learner (рисунок 1)

Рисунок 1 - папка примеров 01_Learner

Следующим шагом выбираем готовый процесс 03_NeuralNetwork (рисунок 2).

Рисунок 2 - готовая модель нейронной сети

Открываем выбранную модель. В области «Процесс» наблюдаем полученный результат (рисунок 3).

Рисунок 3 - полученная модель нейронной сети

Необходимо проверить параметры процедуры Neural Net.

hidden layers (скрытые слои) - этот параметр описывает имя и размер всех скрытых слоев. Оставляем с базовыми настройками (рисунок 4). Используется только для отображения модели.

Рисунок 4 - настройка скрытых слоев

training cycle (тренировочные циклы). Данный параметр указывает количество циклов обучения, используемых для обучения нейронной сети. При обратном распространении выходные значения сравниваются с правильным ответом, чтобы вычислить значение некоторой предопределенной функции ошибки. Ошибка возвращается через сеть. Используя эту информацию, алгоритм корректирует вес каждого соединения, чтобы уменьшить значение функции ошибки на некоторое небольшое значение. Этот процесс повторяется n раз. n можно указать с помощью этого параметра. Возможный диапазон от 1 до +бесконечности. Я оставляю стандартное значение 200.

learning rate (скорость обучения) - этот параметр определяет, насколько мы меняем веса на каждом шаге. Не может быть = 0. По умолчанию = 0.1.

momentum (импульс) - импульс просто добавляет часть предыдущего обновления веса к текущему. Это предотвращает локальные максимумы и сглаживает направления оптимизации. Диапазон: от 0 до 1. Здесь это 0.01.

error epsilon (ошибка эпсилон). Этот показатель обозначает, что оптимизация остановится, если ошибка обучения становится ниже этого значения эпсилона. Диапазон: от 0 до + ∞. В данном примере это 0.01 (рисунок 5).

Рисунок 5 – параметры

После запуска процесса была получена нейронная сеть (рисунок 6). На ней представлены входные данные (input), скрытые нейроны, которые выполняют промежуточные функции (hidden) и итоговый результат (output). Можно заметить, что более «весомые» связи от входных нейтронов – темнее.

Рисунок 6 - нейронная сеть

Стоит также уточнить, что изначально значения всех атрибутов проходят функцию активации, т.е. нормализуются. В данном случае используется Сигмоид. Это самая распространенная функция активации, ее диапазон значений [0,1]. Именно на ней показано большинство примеров в сети, также ее иногда называют логистической функцией. Но сигмоид используется только при отсутствии отрицательных значений.

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

На выходе мы имеем линейную регрессию из 4-х показателей. Порог активации = 1,182 .

Рисунок 7 - текстовое представление

  • Для самостоятельной работы мне понадобится подходящий набор данных. Необходимо будет применить к этому набору метод нейронных сетей – Перцептрон. Единственный подходящий из мне доступных – набор Ripley Set (проблема в том, что этот оператор не может обрабатывать полиноминальные атрибуты) (рисунок 8)

Рисунок 8 - метод Перцептрон

Однослойный персептрон получает на вход сигнал, заданный вектором  и на выходе выдает число

,

где

.

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

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

Атрибуты Ripley Set att1 и att2 сгенерированы смесью двух гауссовых распределений.

Проверю и если необходимо задам нужные параметры Perceptron.

rounds (туры) - указывает количество каналов данных, используемых для адаптации гиперплоскости, по умолчанию: 3

learning rate(скорость обучения) - определяет, сколько весов нужно менять на каждом шаге. Это не должно быть 0. Гиперплоскость адаптируется к каждому примеру с этой скоростью. Диапазон: 0,0 - 1,0. У нас это 0.05.

Рисунок 9 - параметры Perceptron

После запуска процесса получены следующие данные:

Разделяющая гиперплоскость 1 и 0.

Весовые коэффициенты w(att1) = 0.011, w(att2) = 0.064. Они указывают силу влияния конкретной характеристики на выходное значение.

Рисунок 10 - результаты нейронной сети Perceptron

Вывод: я ознакомился с методом нейронных сетей. Научился строить в среде RapidMiner модели NeuralNet и Perceptron.

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

  1. Сколько нейронов у человека?

Примерно 85млрд нейронов

  1. Откуда получает входные сигналы искусственный нейрон?

Входные данные – готовые исходные данные, либо выходные сигналы других нейронов нейронной сети.

  1. Какую роль играет «функция активации»?

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

  1. В чём особенность рекуррентной нейронной сети?

Рекуррентные нейронные сети (RNN) — сети с циклами, которые хорошо подходят для обработки последовательностей.

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

  1. Сколько наблюдений нужно иметь для обучения сети?

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

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