- Нейрон и принципы построения нейронных сетей
- Функции активации
- Методы инициализации весовых коэффициентов нейронной сети
- Обучение нейронной сети
- Приемы повышения сходимости нейронных сетей
- Искусственный интеллект в трейдинге
Нейрон и принципы построения нейронных сетей
В работе «Логическое исчисление идей, относящихся к нервной активности» Уоррен Мак-Каллок и Вальтер Питтс предложили математическую модель нейрона и описали базовые принципы организации нейронных сетей. Математическая модель искусственного нейрона включает два этапа вычислений. По аналогии с нейроном человека в математической модели искусственного нейрона дендриты представлены вектором числовых значений X, который подается на вход искусственного нейрона. Зависимость значения нейрона от каждого конкретного входа определяется вектором весовых коэффициентов W. Первый этап вычислений модели искусственного нейрона реализован в виде произведения вектора исходных сигналов на вектор весовых коэффициентов, что с математической точки зрения дает взвешенную сумму исходных данных.
где:
- n — количество элементов во входной последовательности;
- wi — весовой коэффициент i-го элемента последовательности;
- xi — i-ый элемент входной последовательности.
Весовые коэффициенты определяют чувствительность нейрона к изменениям конкретного входного значения и могут быть как положительными, так и отрицательными. Тем самым имитируется работа возбуждающих и тормозящих сигналов. Значения весовых коэффициентов, удовлетворяющие решению конкретной задачи, подбираются в процессе обучения нейронной сети.
Как уже говорилось ранее, на аксоне нейрона появляется сигнал только после накопления критического значения в теле клетки. В математической модели искусственного нейрона этот этап реализован путем введения некой функции активации.
И здесь возможны вариации. В первых моделях использовалась простая функция сравнения взвешенной суммы входящих значений с неким пороговым значением. Такой подход имитировал природу биологического нейрона, который может быть возбужден или находиться в покое. График такой функции активации нейрона будет с резким перепадом значения в точке порогового значения.
![График пороговой функции активации нейрона График пороговой функции активации нейрона](/ru/neurobook/img/act_step.png)
График пороговой функции активации нейрона.
В 1960 году в свет вышла работа Бернарда Видроу (Bernard Widrow) и Маршиан Хофф (Marcian Hoff) «Adaptive switching circuits», в которой была представлена машина адаптивной линейной классификации Adaline. Данный труд показал, что использование непрерывных функций активации нейрона позволит решать больший круг задач с меньшей погрешностью. С тех пор и до нашего времени в качестве функций активации нейрона широко используются различные сигмовидные функции. В таком варианте получается более сглаженный график функции математической модели нейрона.
![График логистической функции (Сигмоида) График логистической функции (Сигмоида)](/ru/neurobook/img/act_sigmoid.png)
График логистической функции (Сигмоида)
Различные варианты функций активации, их преимущества и недостатки обсудим в следующей главе книги. В общем виде математическую модель искусственного нейрона схематично можно изобразить в нижеследующем виде.
![Схема математической модели нейрона Схема математической модели нейрона](/ru/neurobook/img/neuron.png)
Схема математической модели нейрона
Рассмотренная математическая модель нейрона позволяет дать логический ответ Истина или Ложь на основании анализа исходных данных. Рассмотрим действие модели на примере поиска свечной модели «Пин-бар».
Согласно классической модели Пин-бар, размер «Носа» свечи должен, как минимум, в 2,5 раза превышать размер тела и второй тени. Математически это можно представить так:
или
![Пин-бар Пин-бар](/ru/neurobook/img/pin_bar.png)
Пин-бар
В соответствии с математической моделью нейрона, на вход нейрона мы будет подавать три значения: размеры носа, тела и тени свечи. Весовыми коэффициентами будут 1, −2,5 и −2,5, соответственно. Сразу надо сказать, что веса мы не будем считать при конструировании нейронной сети. Они будут подбираться в процессе ее обучения.
Функцией активации будет логическое сравнение взвешенной суммы с нулем. Если взвешенная сумма входных значений больше нуля, то свечной паттерн найден и нейрон будет активирован. На выходе нейрона будет 1. Если взвешенная сумма меньше нуля, то паттерн не найден. Нейрон остается деактивирован и на выходе нейрона будет 0.
Теперь у нас есть нейрон, который будет реагировать на свечной паттерн Пин-бар. Но обратите внимание, что в бычьем паттерне носом будет нижняя тень, а в медвежьем — верхняя. То есть если мы подаем на вход нейрона вектор значений, содержащий последовательно верхнюю тень, тело и нижнюю тень свечи, то для определения паттерна нам требуется два нейрона: один будет определять бычью модель, а второй медвежью.
Значит ли это, что нам потребуется создавать программу для каждого паттерна отдельно? Нет. Мы объедим их в единую модель нейронной сети.
В нейронной сети все нейроны группируются в последовательные слои. По расположению и назначению нейронные слои подразделяются на входной, скрытый и выходной. Входной и выходной слои всегда по одному, а вот количество скрытых слоев может быть различно, в зависимости от сложности поставленной задачи.
Количество нейронов во входном слое соответствует количеству исходных данных. В нашем примере их три: верхняя тень, тело, нижняя тень.
Скрытый слой в нашем случае состоит из двух нейронов, определяющих бычий и медвежий паттерн. Количество скрытых слоев и нейронов в них задается при проектировании нейронной сети и определяется ее архитектором в зависимости от сложности решаемой задачи.
Количество скрытых слоев определяет, каким образом пространство входных данных делится на подклассы. Нейронная сеть с одним скрытым слоем делит пространство входных данных гиперплоскостью. Наличие двух скрытых слоев позволяет сформировать в пространстве входных данных выпуклую область. Третий скрытый слой дает возможность формировать практически любые области в пространстве.
Количество нейронов в срытом слое определяется количеством искомых признаков на каждом уровне.
Количество нейронов в выходном слое определяется архитектором нейронной сети в зависимости от возможных вариантов решений поставленной задачи. Для решения бинарных задач и задач регрессии бывает достаточно одного нейрона. Для задач классификации количество нейронов будет соответствовать конечному количеству классов.
Исключением является бинарная классификация, когда все объекты делятся на два класса. В таком случае достаточно одного нейрона, так как вероятность отнесения объекта ко второму классу P2 равна разнице между единицей и вероятностью отнесения объекта к первому классу P1.
В нашем примере выходной слой будет содержать только один нейрон, который выдаст результат, открывать сделку или нет и в каком направлении. Для этого бычьему паттерну установим вес 1, а медвежьему — вес −1. В результате сигналом на покупку будет 1, на продажу — значение −1. Ноль будет означать отсутствие торгового сигнала.
![Модель перцептрона Модель перцептрона](/ru/neurobook/img/perceptron.png)
Модель перцептрона
Такая модель нейронной сети была предложена Фрэнком Розенблаттом в 1957 году и получила название Перцептрон. Данная модель является одной из первых моделей искусственных нейронных сетей. Она способна выстраивать ассоциативные связи между входными данными и результирующим действием. В реальной жизни это можно сопоставить с реакцией человека на сигнал светофора.
Конечно, перцептрон не лишен недостатков, есть ряд ограничений при его использовании. Но за годы исследований были достигнуты хорошие результаты применения перцептрона в задачах классификации и аппроксимации. К тому же были разработаны механизмы обучения перцептрона, с которыми мы познакомимся чуть позже.