Определение структуры нейронной сети
Определение структуры нейронной сети предполагает задание ее архитектуры (число слоев, число нейронов на каждом слое), а также функции активации нейронов.
При использовании многослойного перцептрона для решения задач аппроксимации функций (в т.ч. и задач прогнозирования) нет необходимости в числе скрытых слоев больше одного. Таким образом, предлагается использовать нейронную сеть, имеющую в своем составе входной, один скрытый и выходной слои. Число нейронов первого (то есть входного) слоя n(1) зависит от количества входных факторов и глубины ретроспективной выборки по каждому фактору и определяется по формуле:
, (5.2)
где P – число входных факторов, kp – глубина ретроспективной выборки по p-ому фактору.
Таким образом, число нейронов входного слоя равно числу элементов входных данных.
Выходной слой содержит один нейрон, выход которого представляет собой полученное в результате работы нейронной сети значение прогноза.
При необходимости получения одновременно нескольких выходных значений (например, котировок продажи и покупки ценной бумаги) предпочтительнее не увеличивать число выходных нейронов, а обучать несколько отдельных нейронных сетей, каждая из которых имеет один выход. В пользу предлагаемого подхода свидетельствуют результаты исследований. Так, в частности, в результате экспериментов было установлено, что точность прогноза нейросети с двумя выходами хуже, чем двух нейросетей с единственным выходом при обучении на одних и тех же данных.
Число нейронов второго (скрытого) уровня n(2) первоначально предлагается принимать равным полусумме числа нейронов входного и выходного слоев:
, (5.3)
В процессе определения и настройки параметров нейронной сети число скрытых нейронов может варьироваться с целью увеличения точности прогноза. При этом порядок их количества можно приблизительно оценить с помощью теоремы Колмогорова и следствия из нее. В соответствии с этими теоретическими результатами непрерывную функцию можно аппроксимировать с любой точностью при помощи трехслойной нейронной сети, которая имеет N входных, 2*N+1 скрытых и один выходной нейрон.
Таким образом, число 2*N+1 теоретически можно считать верхней границей для числа нейронов на скрытых уровнях. Однако данная оценка справедлива для наилучшей сети, соответствующей глобальному минимуму адаптивного рельефа ошибки в пространстве весов. На практике достичь глобального минимума обычно не удается. Кроме того, имея 2*N+1 скрытых нейронов, сеть способна в точности запомнить обучающие примеры. В то же время в реальности от нее требуется их обобщить, выявив скрытые закономерности.
Таким образом, оценка Колмогорова по сути сделана для другой задачи и в данном случае служит лишь ориентиром. В ходе экспериментов эмпирическим путем было установлено, что число скрытых нейронов может составлять от N/2 до 3N.
В качестве функции активации нейронов предлагается использовать биполярную сигмоиду. Сигмоидная функция традиционно используется в сетях типа «многослойный перцептрон» так как она является гладкой, дифференцируемой, а ее производная выражается через саму функцию, что важно для обучения сети. В тоже время рациональная сигмоида с областью определения [0;1] имеет недостаток, связанный с ее несимметричностью отностительно оси абсцисс, который уменьшает скорость обучения. Поэтому в данной лабораторной работе предлагается применять биполярную сигмоидную функцию. Эксперименты показали, что область определения биполярной функции не оказывает существенного влияния на процесс обучения. Для определенности в дальнейшем будет использоваться функция с областью определения [-1;1].