Смекни!
smekni.com

Системы в экономике (стр. 16 из 135)

Вопрос о построении сети решается в два этапа:

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

· подбор весов (обучение) сети.

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

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

Большой размер нейросети приводит к затруднению обучения (для сети с 50 входами и 20 нейронами это задача оптимизации в 1000-мерном пространстве). Также уменьшаются обобщающие свойства сети, она начинает просто запоминать обучающую выборку. Такая сеть будет отлично "прогнозировать" на обучающей выборке, но на новых данных прогноз будет плохим. Чтобы избежать эффекта запоминания объем данных должен быть достаточно большим. Например, для прогнозирования российских акций на день вперед минимальный рекомендуемый размер выборки - около 200-250 дней.

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

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

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

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

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

Среди различных конфигураций искуственных нейронных сетей (НС) встречаются такие, при классификации которых по принципу обучения, строго говоря, не подходят ни обучение с учителем, ни обучение без учителя. В таких сетях весовые коэффициенты синапсов рассчитываются только однажды перед началом функционирования сети на основе информации об обрабатываемых данных, и все обучение сети сводится именно к этому расчету. С одной стороны, предъявление априорной информации можно расценивать, как помощь учителя, но с другой - сеть фактически просто запоминает образцы до того, как на ее вход поступают реальные данные, и не может изменять свое поведение, поэтому говорить о звене обратной связи с "миром" (учителем) не приходится. Из сетей с подобной логикой работы наиболее известны сеть Хопфилда и сеть Хэмминга, которые обычно используются для организации ассоциативной памяти.

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

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

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

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

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

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

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

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

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

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