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

1393

.pdf
Скачиваний:
7
Добавлен:
07.01.2021
Размер:
1 Мб
Скачать

SuperCharts и Wall Street Analyst. Зачастую эти данные непосредст-

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

В NeuroShell Trader имеется обширная библиотека из более чем 800 технических индикаторов. Помимо стандартных индикаторов, таких как скользящие средние (moving averages), норма изменения

(rate–of–change) или стохастические линии (stochastics), NeuroShell Trader дает возможность реализовать собственные индикаторы путем комбинации готовых функций из внушительного списка, в который входят условия «если–то», арифметические операторы, тригонометрические функции и многое другое.

Однако одним из основных достоинств рассматриваемого продукта является то, что нейронные сети являются встроенными, а не являются чем-то привнесенным извне и используемым отдельно. Они присутствуют в меню под рубрикой «Predictions»(Прогнозы) наряду с «Indicators»(Индикаторами) и «Data»(Данными). Мастер прогноза (Prediction Wizard) позволяет выбрать то, что пользователь хочет предсказывать.

Neuro Builder [14] – продукт, принадлежащий к категории наукоемких, высокотехнологичных, узкопрофессиональных инструментов. В своей категории – специализированные программы для финансовых аналитиков – программа занимает пограничное положение между коммерческими программами и заказными системами. Она может быть использована как самостоятельный продукт, может выступать составной частью сложного аналитического комплекса.

Технология применения программы Neuro Builder ориентирована на регулярность получения результатов и экономию рабочего времени аналитика. Так, программа Neuro Builder обеспечивает минимальный период прогнозирования, соответствующий одним суткам. В конце торгового дня в базу данных программы заносятся цены завершившегося дня, и программа запускается на обработку новых данных по заранее подготовленному сценарию. Контроль оператора в процессе счета не требуется. В начале следующего торгового дня по результатам обсчета уже можно получить прогноз цен закрытия этого дня. Таким образом, основное время работы программы приходится на ночь, и задача – прогноз на день вперед – решена. Участие пользователя состоит в подготовке корректных сценариев для работы программы и обеспечении бесперебойной подачи питания компьютеру, на котором запущена программа. Особенно хочется подчеркнуть, что

10

пакет Neuro Builder разработан отечественной фирмой «РосБизнесКонсалтинг» [11].

Нейронные сети находят свое применение для решения широкого спектра задач от фундаментальных исследований и разведочного анализа данных до прогнозирования в бизнесе и инженерных приложений, для диагностики технического состояния сложных устройств [12]. Особенно следует отметить программный пакет STATISTICA Neural Networks, который является коммерческим, универсальным пакетом нейросетевого анализа фирмы Statsoft (США), и в настоящее время он полностью русифицирован и поставляется российской ком-

панией Softline.

3. ПРИМЕНЕНИЕ ПРОГРАММНОГО ПАКЕТА STATISTICA

NEURAL NETWORKS (SNN)

SNN является обширной, мощной и быстрой средой построения и анализа нейросетевых моделей [10].

Программа предоставляет разнообразные функциональные возможности для работы с очень сложными задачами, включающими не только новейшие архитектуры нейронных сетей и алгоритмы обучения, но также и новые подходы в отборе входных данных и построении сети. Кроме того, после проведения заданных экспериментов в простом и понятном виде программы нейросетевые анализы могут быть объединены в новом пользовательском приложении с помощью библиотеки СОМ-функций STATISTICA, которая полностью отражает все функциональные возможности программы, либо с помощью кода на языке С (С++, С#) или Visual Basic, который генерируется программой и помогает запустить полностью обученную нейронную сеть или сетевой ансамбль [9].

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

11

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

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

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

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

идо его завершения.

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

Независимые переменные обрабатываются как входные переменные для нейронных сетей. Эти переменные относят к независимым, так как в рамках нейросетевых архитектур эти переменные не предсказываются по зависимым или каким-либо еще другим переменным.

Непрерывные переменные обычно описывают непрерывные значения, такие как, например, вес или рост.

Категориальные переменные – переменные, содержащие цело-

численные или текстовые значения, которые идентифицируют класс или группу, к которой принадлежит наблюдение [10]. Категориальные переменные относятся к группирующим переменным или переменным с классами. Типичным примером категориальной переменной может служить Пол с двумя значениями, группами или классами Муж и Жен.

Впрограмме могут быть использованы методы решения с помо-

щью инструмента Мастера решений или Конструктора сетей.

Мастер решений одновременно ищет оптимальные сети разных

12

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

Главным свойством Конструктора сетей является то, что с его помощью можно построить сеть по заранее определенным параметрам: типу сети (топологии, архитектуре), количеству скрытых слоев и другим.

Для выбора типа сети необходимо определить:

число входов и выходов, передаточные функции;

каким образом следует соединить их между собой (определить зависимость между переменными);

что взять в качестве входов и выходов ИНС (определить зависимые и независимые переменные).

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

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

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

13

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

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

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

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

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

ной обработки – постпроцессирования данных.

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

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

14

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

Радиальная. Радиальные постсинаптические элементы вычисляют

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

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

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

Деление. Эта функция специально предназначена для использования в регрессионных сетях, и ее не следует использовать где-либо еще. Она ожидает, что один из входных весов равен +1, другой –1, а все остальные – нулю.

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

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

15

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

Пока две специально выбранные входные переменные изменяются (и выводятся вдоль осей X и Y графика), значения остальных переменных сети также должны быть заданы. Это заданные фиксированные значения, и они относятся к «фиксированным независимым». Таким образом, поверхность отклика на самом деле представляет собой двумерный срез N-мерной поверхности отклика, где N – число входных переменных.

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

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

Если все ИНС в ансамбле имеют общий выход, то такой ансамбль оценивает значение для этого выхода, комбинируя выходные значения из отдельных сетей. В задачах классификации (с номинальными выходами) прогнозы комбинируются согласно алгоритму «победитель забирает все» – в качестве выхода используется самый общий класс. В спорном случае на выход поступает «неизвестный» класс. В задачах регрессии (с числовыми переменными) общие прогнозы получаются с помощью процедуры усреднения. В обоих случая используются веса нейронных сетей (обычно все веса равны 1.0).

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

16

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

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

Существует несколько применений ансамблей:

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

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

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

кросс-проверка.

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

Архитектура сети содержит тип сети, число входных и выходных переменных, число слоев и число элементов в каждом слое. Общий формат строки представляет собой:

<тип> <входы>:<слой1>–<слой2>–<слой3>:<выходы>, где число слоев может изменяться. Например, архитектура MLP 2:2–3–1:1 обозначает многослойный персептрон с двумя входными и одной выходной переменными и тремя слоями по 2, 3 и 1 элементу соответствен-

17

но. Для простых сетей число входных и выходных переменных может соответствовать числу нейронов в входном и выходном слоях, но так бывает не всегда [10].

Основные виды нейронных сетей

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

Сеть типа радиальной базисной функции (РБФ) имеет проме-

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

Особенностями сетей РБФ является то, что они используют двухэтапный процесс обучения, расстановка радиальных центров и их отклонений; существует оптимизация выходного слоя.

Классическая РБФ использует тождественную функцию активации на выходном слое, и в этом случае можно использовать линейную оптимизацию (псевдообратные, сингулярное разложение), которая быстрее по сравнению с обучением многослойного персептрона. Однако для задач классификации функция ошибки (кросс-энтропия) часто сочетается с нелинейной (логистической или софтмакс) функцией активации и используется более медленный метод сопряженных градиентов.

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

18

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

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

Самоорганизующаяся карта Кохонена (англ. Self-organizing map

– SOM) – соревновательная нейронная сеть с обучением без учителя, выполняющая задачу кластеризации. Алгоритм обучения ИНС Кохонена изменяет центры на топологической карте, передвигая их ближе к центру кластеров в обучающей выборке. Во время обучения алгоритм выбирает элемент, чей центр находится ближе к обучающему наблюдению. Этот элемент и его окрестность после этого корректируются так, чтобы быть более похожими на обучающее наблюдение.

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

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

Каждый элемент в топологической карте представлен небольшим квадратом, в котором содержится маленький сплошной квадрат. Сплошной квадрат является визуализацией уровня активации элемента – нулевая активация (минимальное расстояние) соответствует максимально большому квадрату, который заполняет внешний квадрат. Малые сплошные квадраты обозначают большие уровни активации[10].

19

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]