Настройка нейронной сети на решение прикладных задач. Методика решения задач в нейросетевом базисе
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция 2
Тема: Настройка нейронной сети на решение прикладных задач
1. Методика решения задач в нейросетевом базисе
Использование ИНС для решения задач, аппроксимации неизвестной
функции, предсказания значений временного ряда, требует проведения ряда
предварительных процедур, связанных с кодированием входной и выходной
информации, выбором архитектуры ИНС, алгоритмов обучения, способов
оценки и интерпретации получаемых результатов и т. д., т. е. настройки ИНС
на конкретную задачу пользователя.
При конструировании нейронных сетей разработчик имеет, как правило, следующие исходные данные: размерность вектора входного сигнала(ов);
размерность вектора выходного сигнала(ов); формулировку решаемой задачи; точность решения задачи.
При этом он должен определить и назначить: вид топологии сети; общее число нейронов в сети и число нейронов по слоям; вид функции активации нейронов; способ задания коэффициентов синаптической связи; метод
доказательства работоспособности новой сети.
Рассмотрим более подробно технологию настройки НС на решение
прикладной задачи на рисунках 1 и 2.
Рисунок 1 – Технология настройки НС на решаемую задачу
Рисунок 2 – Схема обучения ИНС
Технология настройки НС является итерационной процедурой. Если
построенная модель НС не удовлетворяет требованиям пользователя или
технического задания, приходится многократно возвращаться к отдельным
блокам для уточнения параметров модели.
Основные этапы методики.
1.
Математическая постановка задачи.
2.
Геометрическая постановка задачи.
3.
Нейросетевая постановка задачи:
3.1) описание исходных данных;
3.2) определение входного сигнала НС;
3.3) формирование функционала первичной оптимизации НС при решении поставленной задачи;
3.4) определение выходного сигнала НС;
3.5) определение желаемого выходного сигнала НС;
3.6) определение вектора сигнала ошибки нейронной сети при решении задачи;
3.7) формирование функционала вторичной оптимизации НС через
сигналы в системе оптимизации НС;
3.9) аналитическое определение преобразования, осуществляемое НС;
выбор конкретной структуры сети;
3.10) нахождение аналитического выражения для градиента функционала вторичной оптимизации поставленной задачи;
3.11) формирование алгоритма настройки НС при решении поставленной задачи;
3.12) выбор начальных условий при настройке сети;
3.13) выбор типовых входных сигналов для тестирования процесса решения задачи;
3.14) разработка плана эксперимента.
2. Предварительная обработка данных
При подготовке набора сырых входных данных для тренировки
нейронной сети нужно выполнить следующие шаги:
1. Классификация данных по типу. Каждый вход или выход нейронной
сети может изменяться либо непрерывным образом, либо представлять набор
дискретных значений. Тип каждой переменной необходимо идентифицировать, так как каждый тип требует своего подхода при кодировании.
2. Вычисление глобальной статистики. Для некоторых методов подготовки данных необходимо знать статистические свойства каждой переменной, используемой для тренировки. Для непрерывных данных должны быть
вычислены среднее значение, стандартное отклонение, максимум и минимум. Для дискретных данных необходимо определить количество различающихся случаев (значений, которые может принимать каждая из переменных
или категорий, из которых они выбираются).
3. Удаление выбросов. Девяносто пять процентов данных, распределенных по нормальному закону, находятся внутри интервала ограниченного
удвоенным значением стандартного отклонения в окрестности среднего значения. Исключение из рассмотрения данных, находящихся вне указанного
интервала является простейшим способом удаления выбросов. Удаление выбросов способствует более успешному обучению сети. Если же эти значения
являются принципиальными для исследуемой задачи, тогда данные должны
быть кодированы и собраны таким образом, чтобы правильно отобразить их
важность.
4. Количество тренировочных данных. Существует множество факторов, влияющих на количество данных, необходимых для тренировки сети.
Один из главных факторов - размерность данных. Чем больше переменных,
тем больше данных требуется для тренировки сети. Эта проблема может
быть решена либо увеличением набора данных, либо уменьшением их размерности.
5. Построение выборки из набора данных. Для очень больших наборов
данных не всегда можно выполнить комплексный анализ на полном наборе.
В таких случаях допустимо построить случайную выборку из данных, на основании которой и сделать заключения о методе предварительной обработки
данных. Выборка должна быть случайной, должна включать данные со значениями из всего диапазона изменения и включать достаточно данных, чтобы
быть репрезентативной. После построения выборки необходимо сравнить
среднее значение и диапазон изменения с аналогичными параметрами полного набора, чтобы убедиться в том, что выборка выполнена правильно. Следующие процедуры могут быть выполнены на выборке, а не на полном наборе данных. Тем не менее сеть необходимо тренировать на полном наборе
данных.
6. Проверка качества. Для построения хорошо сбалансированной модели важно, чтобы распределение тренировочных данных было гладким. Желательно также выполнить статистические тесты, чтобы убедиться в том, что
данные содержат информацию, достаточную для решения поставленной задачи.
7. Понижение размерности. Нейронная сеть с большим количеством
входных элементов содержит большое количество весовых коэффициентов
(весов). Сеть с большим количеством весов требует (иногда экспоненциально) большого количества тренировочных данных. Аналогично, теория дискретизации утверждает, что имеет место экспоненциальная зависимость
между размерностью данных и количеством точек дискретизации для корректного описания данных. Уменьшение количества входов сети позволяет
использовать меньше данных, обеспечивая приемлемый уровень сложности
сети.
8. Шкалирование данных. Выходные данные должны быть шкалированы (преобразованы) к диапазону, который соответствует диапазону выходных значений сжимающей функции активации выходного слоя. Сигмоидальная функция, например, имеет диапазон выходных значений от 0 до 1. Часто
бывает удобным привести входные данные к тому же диапазону. Шкалирование может быть линейным или нелинейным, в зависимости от распределения данных. Наиболее часто используемые методы шкалирования - линейное, логарифмическое и "мягкое" (softmax). Можно также разделить данные
на несколько диапазонов с различными факторами шкалирования.
9. Кодирование данных. Если данные были преобразованы, может возникнуть необходимость кодировать их перед предъявлением сети. Шкалированные численные данные могут быть использованы непосредственно, либо
после дополнительного преобразования. Категорийные данные всегда необходимо кодировать.
Общим принципом для многих шагов препроцессорной обработки является принцип максимизации энтропии. Задача нейросетевого моделирования – найти статистически достоверные зависимости между входными и выходными переменными. Единственным источником информации для
нейронной сети являются примеры из обучающей выборки.
Чем больше информации принесет каждый пример, тем лучше используются имеющиеся в нашем распоряжения данные.
Пусть нам дана дискретная случайная величина, которая может принимать N значений с вероятностями,
. Тогда величина
называется энтропией данной случайной величины (энтропия измеряется в битах). Содержательный смысл энтропии такой. Если мы, например,
храним в памяти N значений этой случайной величины (при этом i встречается с вероятностью pi) то каким бы совершенным ни был наш код, мы все равно потратим в среднем не меньше E*N бит.
Чем больше энтропия, тем меньше вероятность того, что случайная величина постоянно принимает некое определенное значение. Если значения
некоторой переменной равномерно распределены в некотором интервале, то
энтропия этой величины максимальна.
Простейшей моделью входных данных нейронной сети можно считать
их интерпретацию в качестве отсчетов некоторой случайной величины. Таким образом, чем больше энтропия входных данных, тем больший объем информации мы имеем на входе сети и тем лучше будет обучаться сеть.
3. Шкалы представления исходных данных в ИНС
Шкалой называется тройка
где Е – некоторая «эмпирическая система» с отношениями E={S, R}, в
которой S – множество свойств объектов, a R – множество отношений между объектами по этим свойствам;
N– некоторая знаковая система (обычно числовая), может быть представлена в следующем виде:
N=M, Р1, Р2 ..., Рп,
где М – множество чисел (например, множество всех действительных
чисел), а Р – определенные отношения на числах, выбранных так, чтобы с их
помощью однозначно отображались соответствующие отношения R из эмпирической системы;
φ - конкретный способ отображения Е на Ν.
Упорядоченная тройка <Е, Ν, φ> называется абсолютной шкалой, если
ее допустимое преобразование является тождественным преобразованием.
Примером может служить шкала, опирающаяся на процедуру счета. Результатом измерения при этом является число, выражающее количество элементов во множестве. Если это число заменить другим, то потеряется основная
информация о множестве.
Примером шкалы более слабого типа является шкала отношений. Для
шкалы отношений допустимым преобразованием данных является умножение их на одно и то же число (масштабирование, например φ(x)=аx, а> 0).
Примером шкалы отношений является шкала для измерения длины, веса,
производительности.
Шкала интервалов допускает положительные линейные преобразования (φ является положительным линейным преобразованием тогда, когда для
каждого х φ(x) = ах + b, где b – действительное число, а – положительное
действительное число. Это означает, что здесь можно менять как начало отсчета, так и единицы измерения. Примеры шкалы интервалов: шкала для измерения температуры, давления, промежутков времени и т. п.
Шкала порядка – это шкала, допустимым преобразованием которой является произвольное монотонное преобразование, т. е. такое, при котором не
изменяется порядок чисел. Количество разных используемых значений чисел
в общем случае не ограничено. При измерениях в шкалах такого типа полу-
чаем информацию лишь о том, в каком порядке объекты следуют друг за
другом по какому-то свойству. Примером может служить шкала, по которой
измеряется твердость материала, схожесть объектов, типы алгоритмов решения конкретной задачи, способы диспетчеризации вычислительного процесса
и т. д. К этой группе шкал относится большинство шкал, используемых,
например, в социологических исследованиях. Частным случаем шкал порядка служат балльные шкалы, используемые, например, в практике спортивного судейства или оценок знаний в школе. Количество баллов, используемых в
этих шкалах, фиксировано.
Самой простой шкалой является шкала наименования. Для этих шкал
требуется, чтобы их допустимые преобразования были всего лишь взаимно
однозначными. В этих шкалах числа употребляются только с целью придания предметам или объектам имен. Кроме сравнения на совпадение, любые
арифметические действия над цифрами, обозначающими имена, бессмысленны. Переменные, представляемые в шкале наименований, называются
номинальными.
Выходные переменные обязательно должны быть масштабированы в
диапазоне изменения функции активации нейронов выходного слоя [0, 1] или
[-1, 1]. Масштабы входных и выходных переменных не связаны. Если выход
сети представляет величину, значение которой необходимо анализировать,
например, прогнозируемый курс валюты, обратным шкалированием выходную величину приводят к исходному диапазону значений.
4. Способы предобработки
Нейронная сеть может обрабатывать только числовые данные. Однако
исходные данные, подаваемые на НС, могут включать номинальные переменные, указывающие на принадлежность к одному из нескольких классов,
даты, целочисленные значения, текстовые строки, графические данные и т.
д., поэтому необходимо кодирование данных.
С целью удобства работы проводят статистическую обработку данных,
исключение аномальных наблюдений, а также нормирование и центрирование данных для того, чтобы каждая компонента входного вектора данных
лежала на отрезке [0,1] или [-1,1].
При известном диапазоне изменения входной переменной, например
[xmin, xmax], целесообразно использовать простейший вид преобразования,
выполняемый по формуле (1):
где [а, b] – диапазон приемлемых входных сигналов;
[xmin, xmax] – диапазон изменения значений входной переменной х;
р – преобразованный входной сигнал, подаваемый на вход НС.
При кодировании параметров исследуемых объектов необходимо учитывать тип переменных, которые описывают этот объект: непрерывные, дис-
кретные или качественные, количественные.
Качественные переменные (признаки) принимают конечное число значений. Примером качественных признаков может служить состояние больного (тяжелое, средней тяжести, среднее, удовлетворительное и т. д.), знания
студентов по определенному предмету (отличные, хорошие, не очень хорошие, отсутствие каких-либо знаний), характеристика погоды (хорошая, плохая, солнечная, дождливая) и т. п. Если качественная переменная принимает
два значения, ее называют бинарной.
Качественные признаки могут быть упорядоченными, частично упорядоченными или неупорядоченными. Соответственно различается и их кодировка. Известно, что любой частично упорядоченный признак можно представить в виде комбинации нескольких упорядоченных и неупорядоченных
признаков. Исходя из этого, далее будет рассмотрено кодирование только
упорядоченных и неупорядоченных признаков.
Упорядоченные качественные признаки кодируются в шкале порядка.
Поскольку никакие два состояния неупорядоченного признака не связаны
отношением порядка, их нельзя кодировать разными величинами одного и
того же входного сигнала сети. Поэтому для кодирования неупорядоченных
качественных признаков целесообразно использовать шкалу наименований и
рассматривать переменные, соответствующие этим признакам, как номинальные.
При кодировании количественных переменных, принимающих числовые значения, необходимо учитывать содержательное значение признака,
расположение признака в интервале значений, точность измерения его значений.
Стандартные преобразования для каждого элемента исходной выборки
X могут быть выполнены следующим образом:
где хi – i-я координата входного вектора;
n – размерность вектора X;
M(x) – выборочная оценка математического ожидания JC (сред-нее
значение);
– выборочная оценка среднего квадратичного
отклонения.
Если эти преобразования не делать, то необходимо выбирать пределы
изменения параметров нейрона в зависимости от данных.
Дополнительно рассмотрим три вида предобработки числовых данных
модулярный, позиционный и функциональный. Основная идея этих методов
состоит в том, чтобы сделать значимыми малые изменения больших величин.
Например, если значение входной переменной может достигать 1000, а для
ответа существенным является изменение этой переменной на 1, то это изменение не будет улавливаться НС. Для того чтобы эти изменения могли быть
учтены НС, в рассмотренных ниже методах каждая входная переменная кодируется не единственным значением, а вектором, формируемым по определенным правилам.
Для простоты изложения сути методов предположим, что в каждом
примере ответ ИНС является вектором чисел из диапазона изменения выходных сигналов [а, b].
Модулярная предобработка. Зададимся набором положительных чисел
y1 ...,ук. Определим операцию сравнения по модулю для действительных чисел следующим образом:
где Int(x/у) – функция, вычисляющая целую часть величины х путем
отбрасывания дробной части.
Кодирование входного признака X при модулярной предобработке вектором Z проводят по следующей формуле:
где zi – i-я компонента вектора Z.
Функциональная предобработка. Рассмотрим общий случай функциональной предобработки, отображающей входной признак X. В k-мерный
признак Z.
Выберем k чисел, удовлетворяющих следующим условиям:
Тогда i-я координата вектора Ζ вычисляется по формуле
Позиционная предобработка. Основная идея позиционной предобработки совпадает с принципом построения позиционных систем счисления.
Выберем положительную величину у такой, что yk ≥ (xmax-хmin). Сдвинем
признак x так, чтобы он принимал только неотрицательные значения. В качестве сигналов сети будем использовать результат простейшей предобработки
двоичных цифр представления сдвинутого признака x, формулы вычисления
которых приведены ниже: