КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Параллельная обработка информации
Основные свойства ИНС Используемый алгоритм обучения работы сети. Жизненный цикл ИНС как адаптивной системы состоит из этапа обучения и этапа решения (моделирования) задач. Парадигмы обучения (определяются доступностью необходимой информации): - обучение с учителем, когда для каждого входного вектора существует целевой вектор, представляющий собой требуемый выход, т.е. наличие обучающей пары, например, метод обратного распространения ошибки; - обучение без учителя, когда сеть учится самостоятельно формировать выходные векторы для каждого вектора из обучающего множества, например, методом Хебба [7]; - смешанное обучение, часть весов определяется посредством обучения с учителем, а другая часть с помощью алгоритмов самообучения [5].
Рис. 3. Варианты наиболее распространенных архитектур ИНС
ИНС – вычислительная система с большим количеством параллельно работающих нейронов в качестве простейших процессоров и множеством связей между ними, что обеспечивает высокую скорость обработки информации. Способность к обучению – адаптация ИНС к предъявляемой обучающей выборке путем модификации ее параметров. Самообучение – формирование выходов ИНС как реакции на входные воздействия, которое может происходить самостоятельно. Способность к адаптации – в условной начальной неопределенности и изменяющихся условиях работы достижение стабильного состояния ИНС путем корректировки параметров, структуры и управляющих воздействий ИНС. Универсальность обработки информации – способности ИНС к обобщению, абстрагированию, ассоциациям. Свойство надежности – отказ некоторой части нейронов не при- водит к нарушению функционирования всей ИНС при условии содержания в сети большого, избыточного количества нейронов. Построение ИНС для решения поставленной задачи заключается в выборе типа соединений нейронов (нейросетевой топологии), определении вида передаточных (активационных) функций элементов и обучения путем модификации весовых коэффициентов (синоптических весов) межнейронных связей. Процесс обучения ИНС включает формирование обучающей выборки, содержащей сведения о моделируемом объекте или явлении, выполнение принятого алгоритма обучения сети и тестирование обученной ИНС. В качестве примеров коммерческого применения ИНС можно привести следующие: 1) выявление степени рисков при выдаче кредитов банками. Путем анализа сведений по фирме и бизнес-плану кредита [1]; 2) прогнозирование валютного курса с учетом параметров экономической и политической обстановки страны [8]; 3) диагностика болезни пациентов на основании мониторинга артериального давления, результатов анализов, электрокардиограммы и других данных пациента [1]; 4) диагностика элементов добывающих систем механизированного фонда нефтегазовых скважин с использованием самоорганизующихся ИНС (карт) Кохонена на основании таблицы диагностических признаков, которая содержит контролируемые и вычисляемые параметры, нормальные и дефектные состояния [3, 4].
2. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА РЕАЛИЗАЦИИ ИНС
Сегодня разработано значительное количество коммерческих программных продуктов, пригодных для применения там, где возникает необходимость использования технологии нейровычислений. Существуют универсальные нейросетевые пакеты, предназначенные для решения любых задач, которые можно решить при помощи нейронных сетей, от распознавания речи и образов до решения задач прогнозирования (например, Brain Maker Pro, NeuroSolution) [12, 13]. Существует класс нейросетевых программных продуктов, предназначенных исключительно для решения задач прогнозирования временных рядов. Эти продукты ориентированы на финансовых работников – трейдеров, биржевых аналитиков и т.д., обладают дружественным графическим интерфейсом и проектируются таким образом, чтобы человек, имеющий даже поверхностное представление о нейронных сетях, смог быстро их освоить. К таким программным продуктам относятся: Neuro Builder, NeuroShell Day Trader, BioComp Profit, NeuroScalp. Наиболее популярные сегодня в России следующие программные продукты, реализующие нейросетевые подходы к решению задач прогнозирования: Brain Maker Professional, NeuroShell Day Trader, Neuro Builder хх. Пакет Brain Maker Professional [15] предназначен для построения нейронных сетей обратного распространения. Пакет включает в себя программу подготовки и анализа исходных данных NetMaker, программу построения, обучения и запуска нейросетей BrainMaker, а также набор утилит широкого назначения. Программный пакет ориентирован на широкий круг задач – от создания прогностических приложений до организации систем распознавания образов и нейросетевой памяти. Следует отметить, что организация внутреннего представления нейросетевых моделей является «прозрачной» и легко доступной для программного наращивания. В программе BrainMaker предусмотрена система команд для пакетного запуска. Существует интерфейсная программа-функция для включения обученных сетей в программы пользователя. В целом пакет может быть интегрирован в программный комплекс целевого использования. Она предназначена для построения нейросети по некоторым исходным установкам, обучения в различных режимах, изменения параметров сети. Программа имеет значительное количество контрольных функций для оптимизации процесса обучения. Помимо этого, программа предоставляет ряд методов анализа чувствительности выходов сети к различным вариациям входных данных, при этом формируется подробный отчет, в соответствии с которым можно дополнительно оценить степень функциональной зависимости входных и выходных значений. NeuroShell Day Trader [16] – нейросетевая система, которая достаточно легка в использовании. NeuroShell Trader имеет, как и в других стандартных программах, «графический» пользовательский интерфейс. NeuroShell Trader с легкостью читает стандартные текстовые файлы, а также работает с файлами в формате MetaStock и файлами данных в формате, используемом программами TradeStation, 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 обеспечивает минимальный период прогнозирования, соответствующий одним суткам. В конце торгового дня в базу данных программы заносятся цены завершившегося дня, и программа запускается на обработку новых данных по заранее подготовленному сценарию. Контроль оператора в процессе счета не требуется. В начале следующего торгового дня по результатам обсчета уже можно получить прогноз цен закрытия этого дня. Таким образом, основное время работы программы приходится на ночь, и задача – прогноз на день вперед – решена. Участие пользователя состоит в подготовке корректных сценариев для работы программы и обеспечении бесперебойной подачи питания компьютеру, на котором запущена программа. Особенно хочется подчеркнуть, что пакет Neuro Builder разработан отечественной фирмой «РосБизнес-Консалтинг» [11]. Нейронные сети находят свое применение для решения широкого спектра задач от фундаментальных исследований и разведочного анализа данных до прогнозирования в бизнесе и инженерных приложений, для диагностики технического состояния сложных устройств [12]. Особенно следует отметить программный пакет STATISTICA Neural Networks, который является коммерческим, универсальным пакетом нейросетевого анализа фирмы Statsoft (США), и в настоящее время он полностью русифицирован и поставляется российской компанией Softline. 3. ПРИМЕНЕНИЕ ПРОГРАММНОГО ПАКЕТА STATISTICA NEURAL NETWORKS (SNN) SNN является обширной, мощной и быстрой средой построения и анализа нейросетевых моделей [10]. Программа предоставляет разнообразные функциональные возможности для работы с очень сложными задачами, включающими не только новейшие архитектуры нейронных сетей и алгоритмы обучения, но также и новые подходы в отборе входных данных и построении сети. Кроме того, после проведения заданных экспериментов в простом и понятном виде программы нейросетевые анализы могут быть объединены в новом пользовательском приложении с помощью библиотеки СОМ-функций STATISTICA, которая полностью отражает все функциональные возможности программы, либо с помощью кода на языке С (С++, С#) или Visual Basic, который генерируется программой и помогает запустить полностью обученную нейронную сеть или сетевой ансамбль [9]. Для построения нейронной сети в программе необходимо выбрать переменные, которые влияют на результат, числовые или номинальные. Переменные других типов следует преобразовать в указанные типы либо объявить незначащими. Необходимо иметь порядка сотен или тысяч наблюдений; чем больше в задаче переменных, тем больше нужно наблюдений. Между количеством наблюдений и количеством параметров существует зависимость: с ростом количества переменных количество требуемых наблюдений растет нелинейно, но согласно эвристическим правилам, связывающим число необходимых наблюдений с размером сети, число наблюдений должно быть в десять раз больше числа связей в сети. Но существует такое понятие, как «проклятие размерности», когда каждый дополнительный входной элемент сети – это новая размерность в пространстве данных; наблюдения «несут» в себе небольшую информацию, являются нелинейными. При «проклятии размерности» невозможно правильно определить веса категорий. В случае необходимости можно работать с наблюдениями, содержащими пропущенные значения. Если данных достаточное количество, необходимо убрать из рассмотрения наблюдения с пропущенными значениями. Если объем данных незначительный, то нужно использовать группы и повторные выборки. Длительность анализа – промежуток времени, за который происходит обучение, тестирование, предсказание и другие действия с сетью, т.е. процесс работы пользователя с программой с начала анализа и до его завершения. В программе осуществляется выбор входных, выходных переменных. Эта группа содержит описания переменных в двух списках: зависимые (выходные переменные) и независимые (входные переменные). Эти переменные могут быть использованы для обучения новой или существующей сетей и для вычисления предсказанных значений и остатков. Более зависимые или выходные переменные предсказываются по значениям независимых переменных. Независимые переменные обрабатываются как входные переменные для нейронных сетей. Эти переменные относят к независимым, так как в рамках нейросетевых архитектур эти переменные не предсказываются по зависимым или каким-либо еще другим переменным. Непрерывные переменные обычно описывают непрерывные значения, такие как, например, вес или рост. Категориальные переменные – переменные, содержащие целочисленные или текстовые значения, которые идентифицируют класс или группу, к которой принадлежит наблюдение [10]. Категориальные переменные относятся к группирующим переменным или переменным с классами. Типичным примером категориальной переменной может служить Пол с двумя значениями, группами или классами Муж и Жен. В программе могут быть использованы методы решения с помощью инструмента Мастера решений или Конструктора сетей. Мастер решений одновременно ищет оптимальные сети разных типов (например, многослойные персептроны и радиальные базисные функции) и может вести бесконечный поиск, хотя после некоторого, априори неизвестного промежутка времени, маловероятно сделать дальнейшее улучшение. (Исключение: в некоторых простых случаях, таких как линейные сети, поиск может остановиться сам.) Мастер решений требует (и хорошо его использует) гораздо больше времени при решении некоторых задач, особенно понижения размерности (автоматическое определение входов) и, в меньшей степени, определения сложности (автоматическое определение числа скрытых элементов). Главным свойством Конструктора сетей является то, что с его помощью можно построить сеть по заранее определенным параметрам: типу сети (топологии, архитектуре), количеству скрытых слоев и другим. Для выбора типа сети необходимо определить: - число входов и выходов, передаточные функции; - каким образом следует соединить их между собой (определить зависимость между переменными); - что взять в качестве входов и выходов ИНС (определить зависимые и независимые переменные). Обучение ИНС осуществляется путем последовательного перебора входных векторов с одновременной подстройкой весов в соответствии с определенной процедурой. В процессе обучения веса сети постепенно становятся такими, чтобы каждый входной вектор вырабатывал выходной вектор. ИНС обучается, чтобы для некоторого множества входов давать желаемое (или, по крайней мере, сообразное с ним) множество выходов. Каждое такое входное (или выходное) множество рассматривается как вектор. Ожидаемым результатом после обучения служит выявление зависимостей между входными параметрами и выходным. Результат обучения зависит от ошибок проверочных и обучающих данных, если на проверочных данных ошибка уменьшается, то сеть действительно выполняет обобщение. Если ошибка на обучающих данных продолжает уменьшаться, а ошибка на тестовых данных увеличивается, значит сеть перестала выполнять обобщение и просто «запоминает» обучающие данные. Это явление называется переобучением сети (оверфиттингом). В процессе обучения могут проявиться проблемы – паралич или попадание сети в локальный минимум поверхности ошибок, в таких случаях обучение обычно прекращают. При построении нейронных сетей осуществляется формирование наблюдений, которые принадлежат разным выборкам. В программе используются следующие выборки: обучающая, тестирующая, игнорируемая и контрольная. Выборка – множество случаев (испытуемых, объектов, событий, образцов), с помощью определённой процедуры выбранных из генеральной совокупности для участия в исследовании. Наблюдения в обучающей выборке используются, чтобы обучить сеть (т.е. чтобы оценить веса сети и другие параметры); наблюдения в контрольной выборке используются для проведения «независимой проверки» качества сети во время обучения, чтобы предотвратить переподгонку данных (т.е. чтобы определить момент остановки обучения сети); наблюдения в тестовой выборке совсем не используются при обучении сети (процедуре оценивания), но полностью обученная сеть будет применена к этим наблюдениям как последняя независимая проверка окончательного качества сети; наблюдения в выборке не учитываются во время обучения или при окончательной оценке сети, но могут быть использованы позже для запуска обученной сети для получения результатов. Автоматическое завершение процесса обучения наступает, когда все примеры обрабатываются сетью с допустимой погрешностью. После этого можно применять обученную сеть для обработки произвольных входных данных. Всякая нейронная сеть принимает на входе числовые значения и выдает на выходе также числовые значения. Передаточная функция для каждого элемента сети обычно выбирается таким образом, чтобы ее входной аргумент мог принимать произвольные значения, а выходные значения лежали бы в строго ограниченном диапазоне. При решении реальных задач методами нейронных сетей требуются этапы предварительной обработки – препроцессирования и заключительной обработки – постпроцессирования данных. В пакете SNN поддерживаются три типа постсинаптических активационных (передаточных) функций, которые применяются к входным сигналам элемента, его весам и порогам и выдают уровень активации этого элемента. Линейная. Линейные постсинаптические элементы берут взвешенную сумму своих входов и сдвигают ее на пороговое значение. Говоря в векторных терминах, берется скалярное произведение вектора весов и входного вектора и к нему добавляется пороговое значение. Выходные значения линейных постсинаптических элементов одинаковы вдоль гиперплоскостей в пространстве входных наборов. Такие элементы стремятся осуществить классификацию, разбивая пространство входов на части с помощью системы гиперплоскостей. Радиальная. Радиальные постсинаптические элементы вычисляют квадрат расстояния между двумя точками в N-мерном пространстве (где N – число входов), соответствующими входному вектору и вектору весов данного элемента. Радиальные постсинаптические элементы выдают одинаковые выходные значения вдоль гиперсфер в пространстве входов. Такие элементы стремятся осуществить классификацию, измеряя расстояния от входных наборов до эталонных точек в пространстве входов (координаты этих эталонных точек хранятся в весах элементов). Квадрат расстояния, вычисленный радиальным элементом, умножается на пороговое значение (которое здесь, по сути, выражает собой меру отклонения радиального элемента), и в результате получается входное значение данного элемента. Линейные постсинаптические элементы используются в многослойных персептронах и линейных сетях, а также в последних слоях сетей на радиальных базисных функциях, вероятностных и регрессионных сетей. Радиальные элементы используются во втором слое сетей Кохонена, базисных функциях, сетях для кластеризации, вероятностных и регрессионных сетях. Они не используются ни в каких других слоях сетей стандартной архитектуры, так как программа не обучает их. Деление. Эта функция специально предназначена для использования в регрессионных сетях, и ее не следует использовать где-либо еще. Она ожидает, что один из входных весов равен +1, другой –1, а все остальные – нулю. Влияние изменения двух входных (независимых) переменных на прогноз выходной переменной показывает Поверхность отклика, что является обобщением Графика отклика. Поверхность, изображенная в трехмерном пространстве, представляет отклик одной или нескольких переменных (в нейронной сети) в зависимости от двух входных переменных при постоянных остальных. Входные переменные должны быть числовыми. Выходная переменная может быть числовой или номинальной (номинальные переменные могут принимать конечное множество значений). В последнем случае по умолчанию выводится отклик доверительного уровня (активация выходного нейрона), который является непрерывным и поэтому может быть удобно визуализирован. Можно вместо этого вывести порядковые значения (1, 2, 3 и т.д.) в соответствии с классами, в этом случае график отклика состоит из нескольких поверхностей, отвечающих разным классам. Пока две специально выбранные входные переменные изменяются (и выводятся вдоль осей X и Y графика), значения остальных переменных сети также должны быть заданы. Это заданные фиксированные значения, и они относятся к «фиксированным независимым». Таким образом, поверхность отклика на самом деле представляет собой двумерный срез N-мерной поверхности отклика, где N – число входных переменных. Набор нейронных сетей, которые используются в совокупности при построении прогноза, называется ансамблем. Поддерживаются два вида ансамблей: выходные ансамбли и доверительные ансамбли. Выходные ансамбли являются самым общим видом. В выходном ансамбле можно сочетать любые наборы нейронных сетей. Если ИНС имеют различные выходы, то итоговый ансамбль будет иметь несколько выходов. Поэтому выходной ансамбль можно использовать в качестве составной выходной модели, в которой каждый прогноз формируется отдельно. Если все ИНС в ансамбле имеют общий выход, то такой ансамбль оценивает значение для этого выхода, комбинируя выходные значения из отдельных сетей. В задачах классификации (с номинальными выходами) прогнозы комбинируются согласно алгоритму «победитель забирает все» – в качестве выхода используется самый общий класс. В спорном случае на выход поступает «неизвестный» класс. В задачах регрессии (с числовыми переменными) общие прогнозы получаются с помощью процедуры усреднения. В обоих случая используются веса нейронных сетей (обычно все веса равны 1.0). Доверительные ансамбли имеют больше ограничений, чем выходные ансамбли. Прогнозы нейронных сетей комбинируются на уровне выходных нейронов. При этом кодирование выходных переменных должно быть одинаковым для всех членов. Учитывая это ограничение, для решения задач регрессии использовать доверительные ансамбли нельзя (поскольку задача заключается в построении того же выхода, что и выход ансамбля; однако перед нормированием должно выполняться усреднение). Таким образом, доверительные ансамбли можно использовать только для решения задач классификации. Преимущество использования доверительного ансамбля в задачах классификации заключается в том, что такой ансамбль оценивает общие доверительные уровни для различных классов, а не просто выбирает некоторый класс. Существует несколько применений ансамблей: - ансамбли легко объединяют ИНС, которые строят прогнозы для связанных переменных. При этом необязательно, чтобы все такие переменные объединялись в одну сеть. Составные выходы нейронных сетей часто страдают от смешивания скрытых нейронов и строят в итоге неэффективные прогнозы. Используя ансамбль, каждый выход можно предсказать по отдельности; - ансамбли предоставляют хороший метод противодействия переобучению и улучшают обобщающие способности. Усреднение прогнозов по всем моделям с различной структурой и/или обучение на основе различных множеств данных позволяет уменьшить дисперсию модели, не увеличивая смещение модели. Таким образом, ансамбли можно эффективно сочетать с технологиями построения выборок. Теоретически доказано, что ожидаемая производительность ансамбля не меньше средней производительности его членов; - ансамбли отображают среднюю производительность и значения ошибок для своих членов. Можно, используя различные выборки, провести несколько экспериментов и сохранить их результаты в одном ансамбле. Затем, используя эти методы, можно получить усредненные оценки производительности отдельных сетей. Обычно для оценки производительности сети используется кросс-проверка. В программе Statistica на вкладке Сети/Ансамбли для доступа к опциям просмотра сетей и ансамблей можно сохранить в файле сети (.snn) или использовать опцию Открыть файл сети, чтобы открыть существующий файл сети в текущей рабочей области. Архитектура сети содержит тип сети, число входных и выходных переменных, число слоев и число элементов в каждом слое. Общий формат строки представляет собой: <тип> <входы>:<слой1>–<слой2>–<слой3>:<выходы>, где число слоев может изменяться. Например, архитектура MLP 2:2–3–1:1 обозначает многослойный персептрон с двумя входными и одной выходной переменными и тремя слоями по 2, 3 и 1 элементу соответственно. Для простых сетей число входных и выходных переменных может соответствовать числу нейронов в входном и выходном слоях, но так бывает не всегда [10].
Дата добавления: 2015-06-04; Просмотров: 876; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |