"Новый нейронный" - проект Open Source движка нейронной сети для платформы MetaTrader 5. - страница 36

 
TheXpert:

ЕМНИП, когнитрон представляет из себя нечто похожее.

Ждем продолжения :)

То же что когнитрон Фукишимы. HMAX и когнитрон довольно близко описывают функциональность разных слоёв зрительной коры.
 
TheXpert:

Надо информация по

-Conjugate gradient descent

-BFGS

В своё время подробно изучил почти все методы обучения сетей прямого рапсространения. Уверен что из градиетных спусков, метод Левенберга-Маркадта самый лучший (https://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm). Всегда находит более лучший минимум чем всякие BACKPROPы и RPROPы и даже быстрее. То что я выложил в BPNN (какой-то RPROP) это детская баловня по сравнению с LM. BFGS более трудоёмкий и результат не лучше чем у LM.
Levenberg–Marquardt algorithm - Wikipedia, the free encyclopedia
Levenberg–Marquardt algorithm - Wikipedia, the free encyclopedia
  • en.wikipedia.org
The LMA interpolates between the Gauss–Newton algorithm (GNA) and the method of gradient descent. The LMA is more robust than the GNA, which means that in many cases it finds a solution even if it starts very far off the final minimum. For well-behaved functions and reasonable starting parameters, the LMA tends to be a bit slower than the GNA...
 

Попытаюсь теперь изложить свою идею построения нейронных сетей для анализа ценовых паттернов. Тех кто прочёл мои лекции 2 и 3 сразу поймёт. Суть состоит в классификации ценовых паттернов по типу Buy, Sell, or Hold. Цена на определённом промежутке времени (допустим 100 баров), фильтруется слоем простых нейронов S1. Входные веса этих нейронов описывают импульсные харакетристики фильтров. В примере зрительной коры, эти веса описывали прямые отрезки разного наклона и длины в двухмерном пространстве изображения. В котировках мы тоже имеем двумерное пространство: время и цена. Можно предположить что веса S1 фильтров в нашем случае тоже описывают прямые отрезки в пространстве время-цена двух возможных наклонов: верх и вниз. Угол наклона зависит от длины каждого фильтра. Эти длины можно заранее выбрать, например 4, 8, 16, 32 баров. Каждый фильтр представляет собой прямую линию, нормированную так чтобы сумма всех значений была равна нулю, а сумма квадратов равна 1 (или другая нормализация). В следующем слою, назовём его S2, формируются более сложные паттерны из отрезков слоя S1, и т.д. На выходе этого многослойного преобразования котировок, имеем цифровой код описывающий текущий паттерн, причём коды паттернов похожих друг на друга, но по-разному растянутых по времени и по цене, одинаковы. Эти коды подаются на входы Support Vector Machine (SVM), которая заранее обучена определять условия Buy, Sell, or Hold на исторических паттернах. Проблема здесь это определить форму фильтров в слоях S1, S2, и т.д. Я выбрал прямые отрезки и их комбинации для упрощения. Кстати, в моделе зрительной коры HMAX все формы пространственных фильтров выбраны заранее на основе биологических экспериментов. Нам нужно найти алгоритм автоматического определения этих фильтров. Такие алгоритмы уже были разработаны для зрительного слоя V1 (von der Malsburg, Linsker, Miller, LISSOM, Olshausen). Мы можем позаимствовать их для нашей задаче классификации ценовы паттернов.

 
gpwr:
В своё время подробно изучил почти все методы обучения сетей прямого рапсространения. Уверен что из градиетных спусков, метод Левенберга-Маркадта самый лучший (https://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm). Всегда находит более лучший минимум чем всякие BACKPROPы и RPROPы и даже быстрее. То что я выложил в BPNN (какой-то RPROP) это детская баловня по сравнению с LM. BFGS более трудоёмкий и результат не лучше чем у LM.

Согласен! Например в NeuroSolutions метод Левенберга-Маркадта сходится там, где другие методы встают на локальных минимумах,

однако  LM требует значительных вычислительных ресурсов. Время на один проход больше

 
gpwr:

...

Каждый фильтр представляет собой прямую линию, нормированную так чтобы сумма всех значений была равна нулю, а сумма квадратов равна 1 (или другая нормализация).

...

Я сейчас не имею доказательств, но интуиция мне подсказывает что это двойное условие противоречиво,

сумма равна 0, а сумма квадратов равна 1

будет исполнятся для очень узкого числа вариантов. Если я не прав пните.

 
Urain:

Я сейчас не имею доказательств, но интуиция мне подсказывает что это двойное условие противоречиво,

сумма равна 0, а сумма квадратов равна 1

будет исполнятся для очень узкого числа вариантов. Если я не прав пните.

Нет, не противоречиво. Например, фильтр длиной 2 бара со значениями -0.707 и +0.707 удовлетворяет условиям нормировки. Преимуществом первого условия (сумма значений равна нулю) является то что не нужно убирать среднюю из котировок. Второе условие (сумма квадратов равна нулю) позволяет ограничить сумму цена1*фильтр1+цена2*фильтр2 (это выход нашего фильтра) внутри какого-то диапазона. Проблема сейчас это определить значения фильтра (фильтр1,фильтр2,...,фильтрN) произвольной длины N. Можно выбрать прямую линию растянутую между -фильтрMAX и +фильтрMAX, но это будет упрощением. С большей точностью фильтр будет похож на принципиальную компоненту котировок (PCA). Но это будет не эффективно. Более перспективно если искать форму фильтров как независимые компоненты котировки (ICA) налагая условие минимального количества таких компонент (условие разряжённости - sparsity). Позже выставлю лекцию 4 где всё объясню.
 
TheXpert:

Понятно. Но завязан именно на NN. Будет завязан вернее.

Я боюсь, чтобы не получилось что-нить типа "AWVREMGVTWNN" :) , главное суть передать, нюансы не так важны.

Meta Neuro Solution ?
 
Meta Neuro Engine (MNE)
 
gpwr:
Meta Neuro Engine (MNE)

Meta EngiNeuro  (MEN)   (c)

ну и мы значит инженейры :)

 
Cool. I like it.