Учимся программировать в среде Metatrader (mql). Урок 34. Пишем нейросеть.
Автор megabax   
17.05.2018 г.
unit AIObj

Учимся программировать в среде Metatrader (mql). Урок 34. Пишем нейросеть.

Чтобы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находится здесь.


На прошлом уроке я обещал, что мы будем писать нейросеть. Удобнее всего было бы использовать классы. В отличии от mql4,  в mql5 классы есть, и соответственно, ООП. Давайте сначала изучим эти самые классы.

Итак, пусть нам надо создать нейросеть (см. также Теория нейронных сетей. Урок 1. Модель нейрона и Теория нейронных сетей. Урок 3. Типы нейронных сетей). В ней несколько слоев. В каждом слое могут быть несколько нейронов. А у каждого нейрона существуют весовые коэффициенты. В пределах слоя число весовых коэффициентов нейрона, как правило, одинаковое. В принципе, у некоторых экзотических нейронных сетей может быть и разное, но у нас будет одинаковое. Впрочем, в разных слоях количество весовых коэффициентов у нейронов различное. Да и в каждом слое разное количество нейронов.

Чем определяется количество весовых коэффициентов? Количеством входов нейронов. На первом слое - это количество входов нейросети. На второй - это количество нейронов на первом слое. На всех последующих слоях количество весов нейронов равно количество нейронов на предыдущем слое, так как каждый выход нейрона идет на вход следующего слоя. Последний слой - это уже выходы нейросети.

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

...

...