"Новый нейронный" - проект Open Source движка нейронной сети для платформы MetaTrader 5. - страница 34
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Попробую до него достучатся - пропадает надолго. Статью, бы конечно иметь по теме OpenCL with MQL5 было бы очень хорошо. Особенно сейчас.
Как успехи? JavaDev больше месяца в скайпе на связь не выходит.
Это кусок кода от него, демонстрирующий работу OpenCL
[05.06.2011 17:29:59] JavaDev: __kernel void MFractal( \r\n" " float x0, \r\n" " float y0, \r\n" " float x1, \r\n" " float y1, \r\n" " uint max, \r\n" " __global uint *out) \r\n" " {//------------------------------------------ \r\n" " size_t w = get_global_size(0); \r\n" " size_t h = get_global_size(1); \r\n" " size_t gx = get_global_id(0); \r\n" " size_t gy = get_global_id(1); \r\n" " float dx = x0 + gx * (x1-x0) / (float) w; \r\n" " float dy = y0 + gy * (y1-y0) / (float)h; \r\n" " float x = 0; \r\n" " float y = 0; \r\n" " float xx = 0; \r\n" " float yy = 0; \r\n" " float xy = 0; \r\n" " uint i = 0; \r\n" " while ((xx+yy)<4 && i<max) { \r\n" " xx = x*x; \r\n" " yy = y*y; \r\n" " xy = x*y; \r\n" " y = xy+xy+dy; \r\n" " x = xx-yy+dx; \r\n" " i++; \r\n" " } \r\n" " if (i == max) { \r\n" " out[w*gy+gx] = 0; \r\n" " } else { \r\n" " out[w*gy+gx] = (uint)((float)0xFFFFFF/(float)max)*i; \r\n" " } \r\n" " }//-------------------------------------------- \r\n" int calcOCL() { ulong startTime = GetTickCount(); CL_STATUS status; cl_mem data_buf; data_buf = ctx.CreateBuffer(CL_MEM_ALLOC_HOST_PTR,CL_MEM_READ_WRITE,m_SizeX*m_SizeY,FLOAT,status); if (status!=CL_SUCCESS) { Alert("CreateBuffer: ", EnumToString(status)); return (-1); } float x0 = -2; float y0 = -0.5; float x1 = -1; float y1 = 0.5; uint max = iterations; kernel.SetArg(0,x0); kernel.SetArg(1,y0); kernel.SetArg(2,x1); kernel.SetArg(3,y1); kernel.SetArg(4,max); kernel.SetArg(5,data_buf); uint offset[2] = {0,0}; uint work [2]; work[0]= m_SizeX; work[1]= m_SizeY; uint group [2]; group [0] = wgs; group [1] = 1; status = queue.NDRange(kernel, 2, offset, work, group); oclFlush(queue); for (int y=0;y<m_SizeY;y++) { status = queue.ReadBuffer(data_buf,true,y*m_SizeX,m_SizeX,Line[y].Pixel); if (status!=CL_SUCCESS) { Alert("ReadBuffer: ", EnumToString(status)); break; } } oclFinish(queue); data_buf.Release(); queue.Release(); uint endTime = GetTickCount(); return (int)(endTime-startTime); } uint calcMQL() { uint startTime = GetTickCount(); float x0 = -2; float y0 = -0.5; float x1 = -1; float y1 = 0.5; uint max = iterations; uint w = m_SizeX; uint h = m_SizeY; for (uint gy =0;gy<h;gy++) { for (uint gx =0;gx<w;gx++) { float dx = x0 + gx * (x1-x0) / w; float dy = y0 + gy * (y1-y0) / h; float x = 0; float y = 0; float xx = 0; float yy = 0; float xy = 0; uint i = 0; while ((xx+yy)<4 && i<max) { xx = x*x; yy = y*y; xy = x*y; y = xy+xy+dy; x = xx-yy+dx; i++; } if (i == max) { Line[gy].Pixel[gx]=0; } else { Line[gy].Pixel[gx] = (int) (((float)i/max)*0xFFFFFF); } } } uint endTime = GetTickCount(); return (int)(endTime-startTime); } };Как успехи? JavaDev больше месяца в скайпе на связь не выходит.
Я с ним связался, JavaDev следит за темой.
Лекция 1 здесь https://www.mql5.com/ru/forum/4956/page23
Лекция 2. Биологические методы пробразования информации
Я ненадолго оставлю принцип разряжённости в сетях и кратко рассмотрю суть биологического преобразования информации. Потом всё свяжу вместе. Для примера рассмотрим преобразование информации в зрительной коре. Эта тема далека от трейдинга, но помогает черпнуть умные мысли. Кстати, многие сети такие как карты Кохонена и методы самобучения весов были введены в попытках моделирования зрительной коры. Итак, зрительная информация преобразуется в элекрические сигналы фоторецепторными клетками сетчатки, затем фильтруется ганглионарными клетками сетчатки (RGC) и затем посылается в зрительную кору через реле-клетки LGN, назначение которых пока плохо понятно. Ганглионарные клетки сетчатки действуют как полосовые пространственные фильтры, выделяя контуры обьектов. Принцип их работы очень похож на функцию выделения границ (edge detection) в фотошопе. Это довольно интересно что мы воспринимаем мир через границы объектов. В зрительной коре мозга, отфильтрованное изображение проходит через несколько нейронных слоёв с заумными названиями и абривиатурами. Существует два канала преобразования зрительной информации: канал "что", осуществляющий распознование объектов, и параллельный канал "где" для локализации объектов и восприятия их движения. Нам интересен первый канал, состоящий из двумерных слоёв V1, V2, V4, и IT, которые организованы параллельно сетчатке (не в пространстве, а функционально). Строение этих слоёв довольно сложное. Электрические сигналы передаются от ганглионарных клеток сетчатки к V1, от V1 к V2, и т.д. Клетки одного слоя берут свои входы от клеток предыдущего слоя (прямое распространение сигнала), а также от своих соседей (внутрислойные рекуррентные связи). Существуют также обратные связи, которыми часто пренебрегают в силу их плохого понимания. Преобразование информации в зрительной коре можно графически представить в следующем упрощённом виде:
Simple cells S1 (простые клетки S1) лежат в V1. Они представляют собой фильтры элементарных фрагментов контуров (границ объектов), то есть коротких отрезков линий с разным углом наклона, разной длины, разной полярности (светлая линия на тёмном фоне, тёмная линия на светлом фоне), и разным расположением в двумерном пространстве. Каждая S1 клетка по существу "смотрит" на определённый участок изображения через узкую "щель" определённого наклона и длины и реагирует только тогда когда контур в этом участке совпадает по наклону, длинe и полярности с "щелью".
Complex cells C1 (сложные клетки C1) тоже лежат в V1 слое. Они как и простые клетки S1 реагируют на короткие отрезки контуров определённого наклона и длины в определённом участке изображения, но менее чувствительны к параллельным сдвигам этих отрезков (shift invariance).
Simple cells S2 (простые клетки S2) лежат в слоях V2 и V4. Они представляют собой пространственные фильтры более сложных фигур, состоящих из двух прямых отрезков разного наклона и длины (например, Г, T, L, V, X). Они реагируют на эти фигуры в разных местах изображения.
Complex cells C2 (сложные клетки C1) лежат в слоях V2 и V4. Они тоже представляют собой пространственные фильтры более сложных фигур, состоящих из двух прямых отрезков разного наклона и длины , но менее чувствительны к параллельным сдвигам этих фигур.
View cells (или simple cells S3) лежат в слое IT. Они реагируют на ещё более сложные фигуры разной ориентации и размера (объекты).
Object selective sells (или complex cells C3) тоже лежат в слое IT. Они тоже реагируют на объекты разной ориентации и размера, но независимо от их расположения.
Такое многослойное преобразование зрительной информации позволяет нашему мозгу распознать объект независимо от его расположения в изображении, его ориентации и размера. Распознавание (классификация) объекта осуществляется в следующем слою зрительной коры, называемом prefrontal cortex (PFC).
Как назовем?
А ты логотип думай :)
Как назовем?
Meta Universal Neural Network (MUNN)
Или ты на универсальность не претендуешь?
претендуешь?