Лучший Форекс-брокер – компания «Альпари». Более 2 млн. клиентов из 150 стран. На рынке – с 1998 года. Выгодные торговые условия, ECN-счета с доступом к межбанковской ликвидности и моментальным исполнением, спреды – от 0 пунктов, кредитное плечо – до 1:1000, положительные отзывы реальных трейдеров.
Книги по Forex и биржевой торговле
Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика

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

Один из лучших Форекс-брокеров – компания «Forex4you». Быстрое исполнение, более 150 торговых инструментов, технический анализ от «Trading Central». Разрешен скальпинг, любые торговые советники и стратегии. Один из лучших Форекс-брокеров – компания «AMarkets». На рынке – с 2007 года. Более 250 торговых инструментов, исполнение – от 0,03 сек, ECN-счета с прямым доступом к межбанковской ликвидности. Максимальный процент успешных клиентов по сравнению с другими брокерскими организациями.
Уникальные торговые условия для трейдинга валютными парами USD/RUB и EUR/RUB от одного из наиболее надежных Форекс-брокеров – компании «NPBFX» (Форекс от Нефтепромбанка). Минимальный депозит – от $10.

ОБЗОР ОБУЧЕНИЯ

Целью обучения сети является такая подстройка ее весов, чтобы приложение некоторого множества входов приводило к требуемому множеству выходов. Для краткости эти множества входов и выходов будут называться векторами. При обучении предполагается, что для каждого входного вектора существует парный ему целевой вектор, задающий требуемый выход. Вместе они называются обучающей парой. Как правило, сеть обучается на многих парах. Например, входная часть обучающей пары может состоять из набора нулей и единиц, представляющего двоичный образ некоторой буквы алфавита. На рис. 3.4 показано множество входов для буквы «А», нанесенной на сетке. Если через квадрат проходит линия, то соответствующий нейронный вход равен единице, в противном случае он равен нулю. Выход может быть числом, представляющим букву «А», или другим набором из нулей и единиц, который может быть использован для получения выходного образа. При необходимости распознавать с помощью сети все буквы алфавита, потребовалось бы 26 обучающих пар. Такая группа обучающих пар называется обучающим множеством.

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

Обучение сети обратного распространения требует выполнения следующих операций:

1. Выбрать очередную обучающую пару из обучающего множества; подать входной вектор на вход сети.
2. Вычислить выход сети.
3. Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей пары).
4. Подкорректировать веса сети так, чтобы минимизировать ошибку.
5. Повторять шаги с 1 по 4 для каждого вектора обучающего множества до тех пор, пока ошибка на всем множестве не достигнет приемлемого уровня.

Операции, выполняемые шагами 1 и 2, сходны с теми, которые выполняются при функционировании уже обученной сети, т. е. подается входной вектор и вычисляется получающийся выход. Вычисления выполняются послойно. На рис. 3.3 сначала вычисляются выходы нейронов слоя j, затем они используются в качестве входов слоя k, вычисляются выходы нейронов слоя k, которые и образуют выходной вектор сети.

На шаге 3 каждый из выходов сети, которые на рис. 3.3 обозначены OUT, вычитается из соответствующей компоненты целевого вектора, чтобы получить ошибку. Эта ошибка используется на шаге 4 для коррекции весов сети, причем знак и величина изменений весов определяются алгоритмом обучения (см. ниже).

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

На шаги 1 и 2 можно смотреть как на «проход вперед», так как сигнал распространяется по сети от входа к выходу. Шаги 3, 4 составляют «обратный проход», здесь вычисляемый сигнал ошибки распространяется обратно по сети и используется для подстройки весов. Эти два прохода теперь будут детализированы и выражены в более математической форме.


Знаете ли Вы, что: таким широким разнообразием инвестиционных возможностей, какое предоставляет компания Альпари, не может больше похвастаться ни один Форекс-брокер.


Пополните торговый счет на сумму от 100 долларов США / 100 евро / 5000 рублей и получайте cashback до 60% со спреда от одного из наиболее надежных Форекс-брокеров – компании «NPBFX» (Форекс от Нефтепромбанка). Выгодные торговые условия, разрешен скальпинг и высокочастотная торговля, любые торговые советники и стратегии, вывод каждой сделки на межбанк. Мощная аналитика, бесплатные обучающие материалы, готовые торговые стратегии в Аналитическом портале. На рынке – с 1996 года.

Проход вперед. Шаги 1 и 2 могут быть выражены в векторной форме следующим образом: подается входной вектор Х и на выходе получается вектор Y. Векторная пара вход-цель Х и Т берется из обучающего множества. Вычисления проводятся над вектором X, чтобы получить выходной вектор Y.

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

Этот процесс может быть выражен в сжатой форме с помощью векторной нотации. Веса между нейронами могут рассматриваться как матрица W. Например, вес от нейрона 8 в слое 2 к нейрону 5 слоя 3 обозначается w8,5. Тогда NET-вектор слоя N может быть выражен не как сумма произведений, а как произведение Х и W. В векторном обозначении N = XW. Покомпонентным применением функции F к NET-вектору N получается выходной вектор О. Таким образом, для данного слоя вычислительный процесс описывается следующим выражением:

О = F(XW).

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

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

На рис. 3.5 показан процесс обучения для одного веса от нейрона р в скрытом слое j к нейрону q в выходном слое k. Выход нейрона слоя k, вычитаясь из целевого значения (Target), дает сигнал ошибки. Он умножается на производную сжимающей функции [OUT(1 – OUT)], вычисленную для этого нейрона слоя k, давая, таким образом, величину ?.

? = OUT(1 – OUT)(Target – OUT)

Затем ? умножается на величину OUT нейрона j, из которого выходит рассматриваемый вес. Это произведение в свою очередь умножается на коэффициент скорости обучения ? (обычно от 0,01 до 1,0), и результат прибавляется к весу. Такая же процедура выполняется для каждого веса от нейрона скрытого слоя к нейрону в выходном слое.

Следующие уравнения иллюстрируют это вычисление:

?wpq,k = ? ?q,k OUT
wpq,k(n+1) = wpq,k(n) + ?wpq,k

где wpq,k(n) – величина веса от нейрона p в скрытом слое к нейрону q в выходном слое на шаге n (до коррекции); отметим, что индекс k относится к слою, в котором заканчивается данный вес, т. е., согласно принятому в этой книге соглашению, с которым он объединен; wpq,k(n+1) – величина веса на шаге n + 1 (после коррекции); ?q,k – величина ? для нейрона q, в выходном слое k; OUTp,j – величина OUT для нейрона р в скрытом слое j.

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

(см. рис. 3.6). Когда значение ? получено, веса, питающие первый скрытый уровень, могут быть подкорректированы с помощью уравнений (3.5) и (3.6), где индексы модифицируются в соответствии со слоем.

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

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

1. Умножить о-вектор выходного слоя Dk на транспонированную матрицу весов W’k, соединяющую скрытый уровень с выходным уровнем.
2. Умножить каждую компоненту полученного произведения на производную сжимающей функции соответствующего нейрона в скрытом слое.

В символьной записи

Dj = DkW’k $[0j $(I – 0j)],

где оператор $ в данной книге обозначает покомпонентное произведение векторов, Оj – выходной вектор слоя j и I – вектор, все компоненты которого равны 1.

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

Импульс. В работе [7] описан метод ускорения обучения для алгоритма обратного распространения, увеличивающий также устойчивость процесса. Этот метод, названный импульсом, заключается в добавлении к коррекции веса члена, пропорционального величине предыдущего изменения веса. Как только происходит коррекция, она «запоминается» и служит для модификации всех последующих коррекций. Уравнения коррекции модифицируются следующим образом:

?wpq,k(n+1)= ? ?q,k OUTp,j + ??wpq,k(n)
wpq,k(n+1) = wpq,k(n) + ?wpq,k(n+1)

где (? – коэффициент импульса, обычно устанавливается около 0,9.

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

В работе [8] описан сходный метод, основанный на экспоненциальном сглаживании, который может иметь преимущество в ряде приложений.

?wpq,k(n+1)= (1-?) ?q,k OUTp,j + ??wpq,k(n)

Затем вычисляется изменение веса

wpq,k(n+1) = wpq,k(n) + ??wpq,k(n+1),

где ? коэффициент сглаживания, варьируемый и диапазоне от 0,0 до 1,0. Если ? равен 1,0, то новая коррекция игнорируется и повторяется предыдущая. В области между 0 и 1 коррекция веса сглаживается величиной, пропорциональной ?. По-прежнему, ? является коэффициентом скорости обучения, служащим для управления средней величиной изменения веса.

Яндекс.Метрика
Лучшие брокеры:
Лучший Форекс-брокер 2019 года – компания «Альпари». Более 2 млн. клиентов из 150 стран. На рынке – с 1998 года. Выгодные торговые условия, ECN-счета с доступом к межбанковской ликвидности и моментальным исполнением, спреды – от 0 пунктов, кредитное плечо – до 1:1000, положительные отзывы реальных трейдеров.
Один из лучших Форекс-брокеров 2019 года – компания «Exness». Исполнение – от 0,01 сек, бесконечное кредитное плечо, более 120 валютный пар для торговли, моментальный вывод средств, ни одной отмены клиентского ордера без согласия самого клиента за всю историю компании. Любые торговые стратегии и советники разрешены.
Один из лучших Форекс-брокеров 2019 года – компания «Forex4you». Быстрое исполнение, более 150 торговых инструментов, технический анализ от «Trading Central». Разрешен скальпинг, любые торговые советники и стратегии.
Лучший Форекс-брокер 2019 года – компания «Альпари». Более 2 млн. клиентов из 150 стран. На рынке – с 1998 года. Выгодные торговые условия, ECN-счета с доступом к межбанковской ликвидности и моментальным исполнением, спреды – от 0 пунктов, кредитное плечо – до 1:1000, положительные отзывы реальных трейдеров.
Содержание Далее
Один из лучших Форекс-брокеров – компания «AMarkets». На рынке – с 2007 года. Более 250 торговых инструментов, исполнение – от 0,03 сек, ECN-счета с прямым доступом к межбанковской ликвидности. Максимальный процент успешных клиентов по сравнению с другими брокерскими организациями. Forex: пять шагов к успешному трейдингу Один из лучших Форекс-брокеров – компания «Forex4you». Быстрое исполнение, более 150 торговых инструментов, технический анализ от «Trading Central». Разрешен скальпинг, любые торговые советники и стратегии.