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

Perekrestenko2013DeepLearning

.pdf
Скачиваний:
17
Добавлен:
03.06.2015
Размер:
463.8 Кб
Скачать

Порождение нейронных сетей с экспертно-заданными функциями активации

(ИОИ-9) 1

Порождение нейронных сетей с экспертно-заданными функциями активации

Д. О. Перекрестенко

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

Ключевые слова: Deep Learning, Restricted Boltzmann machine, Deep Belief Networks, прогнозирование временных рядов, нейронная сеть авторегрессия, выделение тренда, краткосрочное прогнозирование, макроэкономическое моделирование.

Введение

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

Требуется по конечному числу известных точек в прошедшие моменты времени построить максимально точный прогноз расположения точек в ближайшем будущем. Ранее для решения проблем прогнозирования применяли дву-трехслойные нейронные сети [5]. В [4] показано существенную вычислительную сложность применения данных методов на практике при прогнозировании быстро меняющихся функций, т.е. функций часто изменяющих свои значения в интересующей области. Действительно, для удовлетворительной кусочно-линейной аппроксимации таких функций будет требоваться слишком много кусков, при этом зависимость количества этих кусков от входных данных может иметь экспоненциальный рост. Типичный пример быстро меняющейся функции - булева функция четности с количеством переменных n. Для ее представления методу опорных векторов потребуется O(2n) обучающих примеров и параметров. При представлении этой функции в виде композиции нелинейных функций требуется: для нейронной сети с одним скрытым слоем - O(n2) параметров (нейронов в каждом слое), для сети с n скрытыми слоями - O(n), и всего O(1) параметров для рекуррентной нейронной сети [5]. Булевская функция, представленная n-слойной сетью с O(n) параметрами, может требовать уже O(2n) параметров, будучи представленной в двухслойной сети [3].

До недавнего времени многослойные нейронные сети не применялиcь, так как они считались непригодными для обучения [2]. Метод градиентного спуска вместе с обратным распространением ошибки показывал себя хорошо на обучении одно/двуслойных сетей, но для большего количества скрытых слоев он, практически, бесполезен, так как чем глубже слой, тем меньще на него влияет обучение. Но в 2006 году был предложен хороший алгоритм обучения Deep Belief Networks(DBN), другими словами, глубоких(многослойных) сетей [2]. Это жадный послойный алгоритм, названный Deep Learning, его ключевая особенность состоит в том, что верхние слои отображают абстрактные характеристики входных данных, тогда как низкоуровневые свойства объекта сохраняются в нижних слоях. Нейронной сетью сначала изучаются простейшие взаимосвязи, а на них строятся более абстрактные сущности.

Данная работа состоит из четырех частей, в первой части - математическая постановка задачи, во второй части описываются алгоритмы Deep Learning и его конкуренты - многослойная сеть с градиентным методом обучения и Madaline. В третьей части проведен вычислительный эксперимент для синтетических данных и реальных - потребления электроэнергии [6], а также приведена оценка качества алгоритмов. Четвертая часть - заключительная, в ней приводятся выводы о целесообразности применения алгоритмов Deep Learning к данному классу задач.

Постановка задачи прогнозирования

Рассмотриваются одномерные временные ряды – ряды, в которых каждому моменту времени сопоставляется вещественное число.

x = x(t) j t = 1; : : : ; n

Машинное обучение и анализ данных, 2013. Т. 1, № 5.

Machine Learning and Data Analysis, 2013. Vol. 1 (5).

Порождение нейронных сетей с экспертно-заданными функциями активации (ИОИ-9) 2

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

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

1

I

 

 

 

Xi

(0.1)

E =

2

(di yi)2;

 

 

=1

 

где di - требуемые значения выхода, yi - реальные выходные сигналы, а I - количество нейронов выходного слоя. Задача состоит в нахождении параметров Pmin, задающих минимум для каждой модели обучения, и в последующем сравнении полученных минимумов между собой:

Pmin = arg minE(Ni; m);

(0.2)

Ni;m

где m - число слоев в сети, а Ni - число нейронов на каждом слое.

Методы решения

MADALINE.

Нейронная сеть, cостоящая из распределительных нейронов и одного выходного нейрона, имеющего сигмоидную функцию активации:

1

y = f (S) = 1 e S ;

PJ

где S = j=1 wijxj - суммарный сигнал полученный i-ым нейроном, называется адаптивным нейронным элементом или ADALINE (ADAptive LInear NEuron). Фактически, эта однослойная сеть является персептроном Розенблатта, главное отличие в том, что выходной сигнал ADALINE непрерывный, тогда как у персептрона он бинарный. Непрерывность выхода сети является следствием непрерывности сигмоидной функции активации. Любую однослойную нейронную сеть с произвольным количеством нейронов выходного слоя можно представить в виде суперпозиции сетей с одним выходом (ADALINE), поэтому однослойную нейронную сеть со множественным выходом назвали MADALINE (Many ADALINE).

Обучение MADALINE.

Для обучения сети Уидроу и Хофф предложили алгоритм [11] основанный на минимизации среднеквадратичной ошибки:

1

I

 

 

 

Xi

(0.3)

" =

2

(di yi)2;

 

 

=1

 

где di - требуемые значения выхода, yi - реальные выходные сигналы, J и I - количество входов и выходов соответственно. Так как yi зависит от весов ребер wij, соединяющих i-й выход со входом:

J

 

Xj

(0.4)

yi = f ( wijxj);

=1

 

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

4wij =

@"

;

(0.5)

@wij

, где - коэффициент скорости обучения. Согласно (??) и (??),

@"

=

 

@"

 

@yi

;

(0.6)

@wij

 

 

 

@yi @wij

 

Порождение нейронных сетей с экспертно-заданными функциями активации

(ИОИ-9) 3

J

 

 

 

 

 

 

 

где yi = f (Si) и Si = Pj=1 wijxj. Следовательно, получаем

 

 

 

 

@yi =

@f (Si) @Si = f0

(S

)x

:

 

 

 

 

 

 

 

i

j

 

@wij

 

 

 

@Si @wij

 

 

 

Дифференцируя (??) по yi, получим:

@"

@yi = (di yi):

Подставляя все это в (??), в итоге получаем:

4wij = ( (di yi)f0 (Si)xj) = (di yi)f0 (Si)xj:

Это общий случай, для любой функции активации, однако f (Si) - известная функция, и

f0 (Si) = f (Si)(1 f (Si)):

Подставляя (??) в (??), получим:

4wij = (di yi)f (Si)(1 f (Si))xj = (di yi)yi(1 yi)xj:

(0.7)

(0.8)

(0.9)

(0.10)

(0.11)

Тем самым получена итерационная формула для обучения MADALINE или однослойного персептрона:

wij(t + 1) = wij(t) + 4wij;

(0.12)

4wij = ixj;

(0.13)

где i = (di yi)yi(1 yi). Данный метод получил названия - обобщенное -правило. Его преимущество перед основным - большая точность и скорость сходимости.

Многослойный персептрон. Так как однослойный персептрон не в состоянии решить задачи, в которых входы персептронов не могут быть разделены пороговой прямой, были введены многослойные сети. Они состоят из входного и выходного слоев, так же как и MADALINE, но, кроме того, они имеют некоторое количество дополнительных обрабатывающих слоев, называемых скрытыми. Выход каждого нейрона n 1-го слоя соединен с каждым входом нейронов n-го слоя.

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

Алгоритм обратного распространения ошибки. Этот алгоритм, применяющийся для обучения многослойных сетей, стал известен в 1986 г., благодаря работе Румельхарта, Хилтона и Вильямса [12]. Этот алгоритм является обобщением -правила для случая обучения многослойного персептрона. Для начала рассмотрим двухслойную сеть, имеющую N входов, I выходов и скрытый слой из J нейронов. Корректировка синаптических весов между скрытым и выходным схоями:

wij(t + 1) = wij(t) + 4wij;

(0.14)

4wij = iyj;

(0.15)

i = (di yi)yi(1 yi);

(0.16)

Попробуем корректировать синаптические веса между входом и скрытым слоем точно также, т.е. заменим индекс i на j, а j на n.

4wjn = jyn;

(0.17)

j = (dj yj)yj(1 yj);

(0.18)

Однако, в скрытом слое необходимо знать ошибку (dj yj), которая неизвестна, т.к. dj - неизвестно. В [12] за ошибку приняли суммарные ошибки с выходного слоя, помноженные на соответствующие синаптические веса, т.е.

I

 

Xi

(0.19)

(dj yj) = iwij;

=1

 

Порождение нейронных сетей с экспертно-заданными функциями активации (ИОИ-9) 4

Подставляя (??) в (??) и (??), получим

(0.20)

4wjn = jxn;

I

 

j = yj(1 yj) X iwij;

(0.21)

i=1

Используя эту идею, получаем алгоритм обучения для произвольного числа слоев. Алгоритм обратного распространения ошибки имеет существенные недостатки: при скорости обучения, не стремящейся к нулю, метод может расходиться [1]. Если же скорость обучения сделать малой, то обучение не "доходит"до дальних слоев. С этими проблемами справляется алгоритм Deep Learning.

Deep Learning. Концепция Deep Learning состоит в том, чтобы так проинициализировать веса синаптических связей между скрытыми слоями, чтобы алгоритм обратного распространения ошибки работал лучше, чем при произвольно заданных весах. В [2] предложено предобучать многослойный персептрон жадным алгоритмом. Алгоритм базируется на Deep Belief Network, сети, состоящей из последовательно соединенных Restricted Boltzmann Machines (RBM ). Веса инициализируются таким образом: первая RBM обучается на входных данных и формирует веса между входным и первым слоями. На выходных данных из первой RBM обучается вторая, у которой вход совпадает с выходом первой, а выход со входом третьей. Дальше инициализируются веса между вторым и третьим слоями и так далее. После проведенной таким образом инициализации, стандартным алгоритмом обратного распространения ошибки обучается вся сеть в целом. До сих пор строго не доказано [1], что данный алгоритм показывает себя лучше, чем при произвольно заданных весах. На практике алгоритм показывает себя лучше стандартного на 10% при простых входных данных и на 15-30% на данных со сложными взаимосвязями [2].

Restricted Boltzmann Machine. RBM - тип стохастической рекурентной нейронной сети, состоящей из двух слоев - видимого и скрытого, причем, каждый нейрон видимого соединен с каждый нейроном скрытого, при этом отсутствуют внутрислоевые связи. Другими словами, есть состояния, которые можно наблюдать (видимые нейроны) и ряд состояний, которые скрыты, и поэтому не можно напрямую увидеть их состояние (скрытые нейроны), но можно сделать вероятностный вывод относительно скрытых состояний, опираясь на наблюдаемые состояния. Обучив такую модель, мы получаем возможность делать выводы относительно видимых состояний, зная скрытые, и тем самым генерировать данные из того вероятностного распределения, на котором обучена данная модель.

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

RBM - энергетическая сеть. Пускай в сети n видимых нейронов и m скрытых. Тогда энергия системы:

n

m

n m

XX XX

E(v; h) = aivi

bjhj

wijvihj;

(0.22)

i

j

i j

 

где wij веc между i-ым нейроном видимого и j-ым скрытого слоя, ai смещение видимого нейрона, bj - смещение скрытого нейрона, vi состояние видимого нейрона, hj состояние скрытого нейрона.

Нейросеть будет вычислять совместную вероятность всевозможных пар v и h следующим образом:

p(v; h) =

1

e E(v;h);

(0.23)

 

 

Z

 

где Z - нормализатор (пускай есть N образов v, и M образов h):

 

N

M

 

 

 

 

 

 

 

Z = XXe E(v(r);h(t));

 

 

(0.24)

 

r

t

 

 

 

 

 

 

 

Полная вероятность вектора v:

 

 

 

 

 

 

 

 

 

M

 

 

1

M

 

(t)

 

 

P (v) = Xt

P (v; h(t)) =

 

Xt

e E(v;h

 

);

(0.25)

Z

 

Вероятность h при заданном v (т.к. hi друг от друга не зависят при заданном v):

 

 

 

M

 

 

 

 

 

 

 

P (hjv) = Yt

P (hj; v);

 

 

(0.26)

Порождение нейронных сетей с экспертно-заданными функциями активации

(ИОИ-9) 5

Пропуская некоторое количество вычислений, перейдем к результату, полученному в [2]:

 

@lnP (v(k))

 

M

 

 

 

 

N

M

 

 

 

 

 

= Xt

(k)

 

(t)

P (h(t)jv(k)) Xr

Xt

(r)

(t)

P (h(t)jv(k)):

 

 

 

vi

hj

vi

hj

 

@wij

По определению матожидания:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@lnP (v(k))

(k)

hj]data M[vihj]model:

 

 

 

 

 

= M[vi

 

 

 

@wij

 

Таким образом получаем правила обучения модели RBM, где как и ранее - скорость обучения.

4wij = (M[vihj]data M[vihj]model);

(0.27)

(0.28)

(0.29)

4ai = (vi M[vi]model);

(0.30)

4bj = (M[hj]data M[hj]model):

(0.31)

Алгоритм можно упростить, избавившись от матожиданий. Пример - алгоритм Contrastive Divergence. Приводится в виде, описанном в [13]

1.Cостояние видимых нейронов приравнивается к входному образу.

2.Выводятся вероятности состояний скрытого слоя .

3.Каждому нейрону скрытого слоя ставится в соответствие состояние ¾1¿ с вероятностью, равной его текущему состоянию.

4.Выводятся вероятности видимого слоя на основании скрытого.

5.Если текущая итерация меньше k, то возврат к шагу 2.

6.Выводятся вероятности состояний скрытого слоя.

Численный эксперимент

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

Прогнозирование функции

 

y = 0:1 cos(0:3x) + 0:5

(0.32)

Прогнозирование функции

 

y = (10 sin x + 5 sin(3x))=20

(0.33)

Прогнозирование функции

 

y = (sin(15x) + 2 sin(7x) + 10 cos(0:5x) + 15 sin(0:2x))=30

(0.34)

Реальные данные по потреблению электроэнергии в Турции

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

Порождение нейронных сетей с экспертно-заданными функциями активации

(ИОИ-9) 6

MADALINE с обучением по дельта правилу

Сеть продемонстрировала очень хороший результат прогнозирования простых данных, таких как функции (4.1) и (4.2) (графики (1),(2)). Причем, сеть показала себя хорошо даже при прогнозировании на период, значительно превышающий размер обучающей выборки функции (рис.(3), (4)), и этот результат достигнут уже при 5 входах. Для более сложной функции (4.3) на (рис.(5), (6)) показано, что при малом количестве входов сеть обучается недостаточно: при 5 входах сеть так и не достигла требуемой точности за 100000 итераций (рис.(5)), тогда как при 15 входах ошибка прогноза - E = 0:34367 достигнута за 91035 итераций (рис.(6)). При 25 – результат еще лучше - E = 0:11027 и 1804, соответственно. На графике (7) зависимость качества прогнозирования от количества входов показана более детально. Видно, что при количестве входов меньше 10, прогноз имеет очень существенную ошибку, которая становится приемлемой только при 13-16 нейронах входного слоя. Метод MADALINE не справился с прогнозированием реальных данных - (рис.(8), (9)). Метод либо расходился при больших , либо не сходился за достаточное количество итераций.

Сравнение стандартной инициализации и Deep Learning для многослойной сети

Анализировались сети с одним и двумя скрытыми слоями. Начальные веса инициализировались в первом случае произвольными числами в диапазоне (-0.05, 0.05), во втором - значениями, полученными из предварительно запущенных алгоритмов Madaline, с помощью которых инициализировались начальные веса, тем самым реализовалась модификация Deep Learning. Далее проводилась тонкая настройка сети с помощью метода градиентного спуска. Deep Learning показал себя существенно лучше уже при одном скрытом слое, прогнозирование простой функции (4.1) до среднеквадратичной ошибки обучения - E = 0:05 потребовало 2811 итераций метода, при этом была достигнута ошибка прогноза Ep = 0:01204. При стандартной инициализации эта задача потребовала 4943 итерации, и ошибка прогнозирования была больше - E = 0:01872. Используя два скрытых слоя, требуется всего 881 итерация, ошибка - Ep = 0:01384. Прогнозирование более сложной функций (4.2) дало подобный результат - 8694 итерации для стандартного метода и более, чем в 5 раз меньше для двух- и трехслойслойных сетей - 1526 и 1416 итераций, соответственно. На рисунках (10), (11), (12) показан процесс обучения многослойных сетей при разном количестве входных нейронов. Для этого процесса характерен быстрый скачок ошибки сначала к определенному значению, причем размер скачка прямо пропорционален количеству нейронов, а после скачка - скорость обучения сетей с большим количеством нейронов стремилась к 0. Оптимальным количеством входов для всех сетей оказалось число 7. С задачей прогнозирования фуннкции (4.3) и реальными данными многослойные сети за приемлемое время не справились, хотя проблема состояла не в выходе за допустимое количество итераций - 100000, а в том, что конфигурация INTEL Celeron 877 c 4 Gb оперативной памяти производила каждую итерацию около 20 секунд, что растягивало расчеты на несколько дней. По этой же причине не были исследованы сети с количеством скрытых слоев больше 10 на сложных данных. Все же результаты, полученные на функциях (4.1) и (4.2) позволяют сделать вывод, что в среднем жадный алгоритм Deep Learning дает выигрыш в 5 раз в скорости (количестве итераций), а также среднеквадратичная ошибка у данного метода на 40% ниже, чем у метода стандартной инициализации.

Заключение

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

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

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

Чем более сложной является функция, тем больше Madaline нужно нейронов входного слоя для ее прогнозирования.

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

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

Порождение нейронных сетей с экспертно-заданными функциями активации

(ИОИ-9) 7

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

Порождение нейронных сетей с экспертно-заданными функциями активации

(ИОИ-9) 8

data/MadalineSin1Comp.png

Рис. 1: Сравнение сетей Madaline с разными параметрами на примере прогнозирования функции (4.1)

data/MadalineSin2Comp.png

Рис. 2: Сравнение сетей Madaline с разными параметрами на примере прогнозирования функции (4.2)

data/AdalineSinLong.png

Рис. 3: Прогнозирование функции (4.1) на период, превышающий обучающую выборку, однослойная сеть

data/AdalineSin2Long.png

Рис. 4: Прогнозирование функции (4.2) на период, превышающий обучающую выборку, однослойная сеть

data/AdalineSin3Long(5).png

Рис. 5: Прогнозирование функции (4.3) на период, превышающий обучающую выборку, однослойная сеть 5 нейронов входного слоя

data/AdalineSin3Long(15).png

Рис. 6: Прогнозирование функции (4.3) на период, превышающий обучающую выборку, однослойная сеть 15 нейронов входного слоя

data/MadalineSin3Comp.png

Рис. 7: Сравнение сетей Madaline с разными параметрами на примере прогнозирования функции (4.3)

data/MadalineREALDATA2.png

Рис. 8: Прогнозирование потребления электроэнергии в Турции, однослойная сеть

data/MadalineREALDATA3.png

Рис. 9: Прогнозирование потребления электроэнергии в Турции, увеличена спрогнозировнная часть, однослойная сеть

data/ErrorDeep2.png

Рис. 10: Процесс обучения нейронной сети Deep Learning с одним скрытым слоем

data/ErrorDeep3.png

Рис. 11: Процесс обучения нейронной сети Deep Learning с двумя скрытыми слоями

data/Error.png

Рис. 12: Процесс обучения нейронной сети со стандартной инициализацией с одним скрытым слоем

Порождение нейронных сетей с экспертно-заданными функциями активации

(ИОИ-9) 9

Литература

[1]Bengio, Y. Learning Deep Architectures for AI

[2]Hinton, G. E.; Osindero, S.; Teh, Y. A fast learning algorithm for deep belief nets// Neural Computation, 2006, 18 (7): 1527–1554.

[3]Utgo , P.; Stracuzzi, D. Many-layered learning// Neural Computation, 2002, 14, 2497-2539.

[4]Bengio, Y.; Lamblin, P.; Popovici, D.; Larochelle, H. Greedy layer-wise training of deep networks// Neural Information Processing Systems, 2007, 153-160.

[5]Haykin S. Neural Networks and Learning Machines// Prentice Hall, 2009.

[6]Временные ряды прогнозирования электроэнергии, http://www.neural-forecasting- competition.com (05.06.2013)

[7]LeCun, Y.; Bottou, L.; and Ha ner, P. Gradient-basedlearning applied to document recognition, Proceedings of the IEEE, 1998, 86(11): 2278–2324.

[8]Larochelle, H.; Erhan, D.; Courville, A.; Bergstra, J., and Bengio, Y. An empirical evaluation of deep architectures on problems with many factors of variation// Proceedings of the 24-th International Conference on Machine Learning, 2007, pp. 473–480.

[9]Larochelle, H.; Bengio, Y.; Louradour, J.; Lamblin, P. Exploring strategies for training deep neural networks// Journal of Machine Learning Research, vol. 10, pp. 1–40, 2009.

[10]Ясницкий Л.Н. Введение в искусственный интеллект, Издательский центр ¾Академия¿, 2005.

[11]Widrow B., Ho M.E. Adaptive switching circuits, IRE WESTCON Conferention Record, 1960.

[12]Rummelhart D.E., Hilton G.E, Williams R.J. Learning internal representations by error propagation, In McClelland et al., 1986.

[13]Реализация Restricted Boltzmann machine на С, http://habrahabr.ru/post/159909/ (05.06.2013)

[14]Рудой Г.И. Выбор функции активации при прогнозировании нейронными сетями// Journal of Machine Learning and Data Analysis, Vol. 1, pp. 16-40, 2011.

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