timing_solution (timing_solution) wrote,
timing_solution
timing_solution

Categories:

Нейронная сеть глубокого обучения (DLN) в Timing Solution

От автора программы:

Надо признать, мы немного упустили революцию, которая случилась в науке нейронных сетей. Это происходило в течение последних нескольких лет. Примерами проблем, которые сейчас решает нейросеть, являются: распознавание изображений, распознавание речи. Это то, что делают Google, Apple, Microsoft. Я полагаю, что нечто подобное делает и Tesla (движение автомобилей управляется компьютером). Все эти успехи стали возможными с применением технологий Deep Learning Neural Network. Обновление, которое появилось в Timing Solution несколько лет назад, является нашим первым шагом на пути к последним разработкам в сфере нейросетей.

Позвольте мне вкратце объяснить, что это такое. Нейронная сеть глубокого обучения (Deep Learning Neural Network, DLN) - это нейронная сеть со многими скрытыми слоями. В Timing Solution раньше было только 2 слоя. Обновление увеличило число возможных слоев до 5, с возможностью добавить еще 5.

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

- один слой должен быть в состоянии распознать геометрическую форму объекта; итак, если у нас имеется 10 различных таких форм на выбор, этот слой должен иметь как минимум 10 + 1 нейрон. А лучше - больше (пусть будет, скажем, 20 нейронов).

- второй нейронный слой отвечает за распознавание цвета. Любой цвет можно описать как комбинацию из красного, зеленого и синего (RGB), поэтому во втором слое должно быть 4 нейрона.

- наконец, третий слой отвечает за текстуру. Допустим, у наших объектов в наличии 5 различных текстур. Таким образом, третий слой должен состоять как минимум из 6 нейронов; пусть будет 10.

Итак, в Timing Solution вы можете построить нейронную сеть глубокого обучения (DLN) для данного примера с тремя слоями следующим образом:



Как видите, мы просто определяем количество скрытых слоев и количество нейронов в каждом слое - устанавливаем топологию NN. Так что теперь в модуле NN в настройках вы можете указать топологию/структуру NN. Всего вы можете настроить до 5 скрытых слоев.

Проблема, которая может возникнуть на этом этапе очевидна - недостаток мощности компьютера. Если количество скрытых слоев в обучаемой модели будет больше 4, нейросеть будет оптимизировать ее СЛИШКОМ МЕДЛЕННО; и тем более, если мы запустили нейросеть с 5-ю скрытыми слоями. Я рекомендую увеличить в этом случае скорость обучения (LR), это здесь:



Установите LR на значение Fast, Boost1 или, возможно, Boost2. Но будьте очень осторожны с использованием слишком высоких значений LR, типа Boost3 - это не рекомендуется: скорость повысится, но результаты могут быть хуже (падает точность работы).

Последнее примечание: эта новая нейронная сеть глубокого обучения (DLN) доступна только подписчикам Terra. Здесь действительно начинается terra incognita, я пока не знаю, как такая сеть будет работать на фондовом рынке, и будет ли она когда-нибудь работать здесь должным образом... Почему? Нейронная сеть глубокого обучения (DLN) показывают хорошие результаты для задач распознавания и классификации, в то время как наша задача другая - мы работаем с прогнозированием в самой сложной сфере - финансовой. Все это требует исследований. Итак, то что мы можем сделать сейчас, это поработать с различными параметрами параметрами нейронной сети глубокого обучения (DLN) - и наблюдать за результатами.

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

Ответ автора:
Давайте вычислим сложность стандартной нейросети с одним скрытым слоем, пусть это будет динамическая (Dynamic) модель с 810 входами, одним скрытым слоем с 32 нейронами и одним выходом:



Здесь:

- количество соединений (=количеству дендритов) между 1-м и 2-м слоями = 801x32
- количество связей между 2-м и 3-м слоями = 32x1 = 32


Всего будет 25632+32=25664 соединений между нейронами.

Если же мы возьмем нейросеть с 5 скрытыми слоями, типа этого:



То количество связей между всеми нейронами будет следующим:

801x32 + 32x16 + 16x16 + 16x16 + 16x16 + 16 = 26928

Видите ли, сложность практически одинакова: 25664 против 26928.

И относительно дополнительных слоев скрытых нейронов:

Я не обнаружил значительного влияния скрытых слоев на результаты обучения для нейросети хотя бы с 1-2 скрытыми слоями; возможно, нейронная сеть глубокого обучения (DLN) работает по-другому...

Вот пример обучения нейросети:



Зеленая линия здесь, классическая динамическая модель с 1 слоем: 401 входами - 32 скрытыми нейронами в этом одном слое (сложность в районе 12 000)

Красная линия, модель с двумя слоями: 401 входов - 1000 нейронов в первом слое - 16 нейронов во второй

Результат работы, как видите, практически один тот же. Но я рекомендую проверять все теории, никто не знает точно, как работают в сложной реальности финансов нелинейные системы вроде нейросетей.


Tags: [Нейросетевой анализ в Timing Solution], [модули Тerra], [модуль Neural Net], [статьи Сергея Тарасова]
Subscribe

Posts from This Journal “[Нейросетевой анализ в Timing Solution]” Tag

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments