Виды и принципы предварительной обработки

Содержание

ГЛАВА 3. ОСНОВЫ ПОСТРОЕНИЯ И ПРИМЕНЕНИЯ НЕЙРОННЫХ СЕТЕЙ.. 2

3.1. Основные операции при работе с нейронной сетью.. 2

3.2. Предварительная обработка информации. 3

3.2.1. Виды и принципы предварительной обработки. 3

3.2.2. Обработка аномалий, противоречий и дубликатов. 5

3.2.3. Восстановление пропущенных компонентов данных. 6

3.2.4. Трансформация данных. 13

3.2.4.1. Виды трансформации данных. 13

3.2.4.2. Кодирование данных. 14

3.2.4.3. Масштабирование (шкалирование) данных. 17

3.2.4.4. Ортогонализация и декорреляция входных векторов. 19

3.2.5. Понижение размерности исходных данных. 22

3.2.5.1. Выбор информативных признаков. 22

3.2.5.2. Использование метода главных компонент. 25

3.3. Ресэмплинг и сэмплинг. 27

3.4. Интерпретация ответов сети. 30

3.5. Показатели качества работы нейронной сети. 31

3.6. Построение (конструирование) нейронной сети. 34

3.6.1. Способность нейронной сети к обобщению.. 34

3.6.2. Оптимизация структуры сети. 36

3.7. Общие подходы к обучению нейронных сетей. 42

3.8. Оценивание и сравнение нейросетевых моделей. 45

3.9. Ансамбли нейросетевых моделей. 51

3.9.1. Понятие ансамбля моделей. 51

3.9.2. Бэггинг. 53

3.9.3. Бустинг. 54

3.10. Вопросы для самопроверки. 56

Библиографический список к главе 3. 57

ГЛАВА 3. ОСНОВЫ ПОСТРОЕНИЯ И ПРИМЕНЕНИЯ НЕЙРОННЫХ СЕТЕЙ

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

Основные операции при работе с нейронной сетью

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

Прежде чем строить нейронную сеть, необходимо сформировать обучающую выборку — множество входных данных и соответствующих выходных данных, на которых сеть будет обучаться и тестироваться. Реальные данные могут содержать ошибки, пропуски, могут быть представлены в разных форматах. Нейронная сеть может обрабатывать только числовые данные, а исходные данные могут включать как числа, так и качественные признаки ("больной‑здоровый", "годен‑негоден"), текстовые данные, изображения. Не все признаки, характеризующие объект исследования, оказывают одинаковое влияние на результат работы сети. Поэтому надо отбирать наиболее важные признаки. Поэтому необходима предварительная (препроцессорная) обработка данных [1, 2], заключающаяся в кодировании, масштабировании данных, заполнении пропусков данных, отборе признаков, уменьшении размерности и других операциях.

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

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

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

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

Предварительная обработка информации

Виды и принципы предварительной обработки

При конструировании и использовании нейронных сетей важную роль играет предварительная обработка данных. Образно охарактеризовал ситуацию с предварительной обработкой Т. Кохонен, создатель класса нейронных сетей, названных его именем: "Нельзя пренебрегать предобработкой. Нейросетевые алгоритмы — это не машина для производства сосисок, где с одного конца подается сырье (данные), а с другого получаются результаты. Для каждой задачи необходим тщательный выбор вектора признаков, а этот этап до сих пор большей частью выполняется вручную"[1]. При рассмотрении предварительной обработки информации учтем рекомендации по предварительной (препроцессорной) обработке информации для нейронных сетей [1–5] и более общие рекомендации для аналитических систем [6–7]. Можно выделить следующие операции предварительной обработки информации.

1. Формирование обучающей выборки. Необходимо определить количество обучающих данных и оценить их качество. Определение количества обучающих данных представляет сложную проблему, связанную с размерностью данных и сложностью сети. Чем выше размерность данных, тем больше данных нужно для обучения сети. Но слишком большой объем обучающей выборки может привести к переобучению сети — потери обобщающей способности. Поэтому объем выборки определяется экспериментально с учетом сложности сети. Необходимо также провести проверку качества обучающей выборки. Для этого, прежде всего, проводятся статистические проверки на гладкость распределения обучающих данных. Необходимо также провести проверку входных данных на соответствие нормальному закону распределения, так многие статистические методы и приемы применимы только для нормально распределенных данных. Если данные распределены не по нормальному закону, то следует применять непараметрические методы, которые позволяют исследовать данные без каких-либо допущений о характере распределения переменных, в том числе при нарушении требования нормальности распределения. "Нормальность" распределения необходимо учитывать при заполнении пропусков данных и в алгоритмах обработки. Например, если данные распределены не по нормальному закону, то, строго говоря, пропуски нельзя заполнять средним значением. Пропуски следует заполнять с учетом вероятностью распределения данных.

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

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

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

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

Общим принципом для многих шагов препроцессорной обработки является принцип максимизации энтропии [3, 5]. Задача нейросетевого моделирования — найти статистически достоверные зависимости между входными и выходными переменными. Единственным источником информации для нейронной сети являются примеры из обучающей выборки. Чем больше информации принесет каждый пример, тем лучше используются имеющиеся в нашем распоряжения данные.

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

Виды и принципы предварительной обработки - student2.ru

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

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

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

Наши рекомендации