Блог им. afecn19

Нейросети. Part 4.

Напомню был сгенерирован DateFrame со 100 бессмысленными фичами и одной осмысленной, для проверки могет ML или не могет. Как оказалось GradientalBoosting могет и еще как, RF могет, но хуже. Что покажут нейросети? Нейросетей много, архитектур много, настраивать их не просто, я предложил решить задачу нейросети со следующей архитектурой:

model = Sequential()
model.add(Convolution1D(input_shape = (101, 1),
nb_filter=16,
filter_length=4,
border_mode='same'))

model.add(BatchNormalization())
model.add(LeakyReLU())
model.add(Dropout(0.5))

model.add(Convolution1D(nb_filter=8,
filter_length=4,
border_mode='same'))

model.add(BatchNormalization())
model.add(LeakyReLU())
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(64))
model.add(BatchNormalization())
model.add(LeakyReLU())
model.add(Dense(2))
model.add(Activation('softmax'))

  Тут все как положено — сверточная нейросеть, модная функция активации ReLU, широкой рукой накиданные Dropoutы и BatchNormalization, несколько слоев чтобы похвастаться не просто об обучении, а о глубоком обучении. Обучал на 100, 500 и 1500 эпохах. При увеличении числа эпох росла accuracy на train и на test, далеко превосходя заложенную accuracy ряда. При попытках использовать обученную нейросетку для прогноз получался один большой пфук.
По табличке:

Названия строк Колич    target
1 5480 0,56
-1 3280 0,45
Общий итог 8760 0,52

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

Названия строк Колич    target
1 26579 0,54
1 4548 0,51
2 4944 0,51
3 5189 0,52
4 5803 0,52
5 6095 0,61
Общий итог 26579 0,54

Вот прогноз события 1 с разбивой по Week. Если бы нейросеть сообразила что все дело в этой фиче а остальные просто мусор, то число прогнозов события 1 для week=5 значительно превосходила бы то же самое для остальных значений week, но как мы видим это не так, да их побольше но разве что на чуть чуть. Использование порога в 55% принципиально ничего не поменяло:

Названия строк Колич    target
1 16326 0,55
1 2517 0,52
2 2917 0,52
3 3067 0,53
4 3703 0,53
5 4122 0,62
Общий итог 16326 0,55

  Вывод очень простой-мы скормили нейросетке 100 фальшивых фич и 1 реальную. Нейросеть не смогла найти настоящую, вместо этого она с упоением придумала липовые зависимости между фальшивками (причем каким то образом стругая эти зависимости, прогнозы каким то образом оказывались лучше чем простое подбрасывание монетки). То есть можно предположить, что если вы попробуете закинуть в нейросетку много много фичей для прогноза на фондовом рынке, из которых многие не имеют никакого значения, в надежде что нейросетка то разберется, что стоящее, а что мусор, то ничего подобного-нейросетка из многих многих бессмыслиц способна найти псевдо связи, а до той или тех стоящих  фичей дало даже не дойдет! Вот вам и наглядная демонстрация почему нейсросетки на фондовом рынке не могут.
 
★2
11 комментариев
Ахаха, ну то что у тебя не получилось, не значит что ни у кого не получится. Кстати, ты видимо плохо диплёрнинг учил, а иначе знал бы, что совершенно точно доказано, что любую задачу можно представить в виде одноуровневой нейронной сети и вопрос только в правильно количестве нейронов.  Название теоремы этой позабыл уже. 
avatar

Gravizapa, Колмогорова, не? Я вообще ни одним местом не специалист в дипленинге. А если вам есть что рассказать или показать-так милости просим, расскажите, покажите

 

avatar
Марат, Я тоже не спец.  ВОт это я имел ввиду. 

Аппроксимация[править | править код]

Основная статья: Аппроксимация

Нейронные сети могут аппроксимировать непрерывные функции. Доказана обобщённая аппроксимационная теорема[18]: с помощью линейных операций и каскадного соединения можно из произвольного нелинейного элемента получить устройство, вычисляющее любую непрерывную функцию с некоторой наперёд заданной точностью. Это означает, что нелинейная характеристика нейрона может быть произвольной: от сигмоидальной до произвольного волнового пакета или вейвлетасинуса или многочлена. От выбора нелинейной функции может зависеть сложность конкретной сети, но с любой нелинейностью сеть остаётся универсальным аппроксиматором и при правильном выборе структуры может достаточно точно аппроксимировать функционирование любого непрерывного автомата.

avatar
Gravizapa, Если я ничего не забыл. Но там такая зависимость, что при сходимости функций сети и нашей задачи, нам будет все время больше нейронов нужно ( но это просто ГИГАНСКИ ПРИМЕРНОЕ определение)))
avatar
Марат, Опять же, я не читал всех стате, что вы там делаете толком. Но ведь может быть кучу всего. оверфиттинги. андерфиттинги, прохие тестовые данные. Зачем несколько слоев? В общем я к чему. Нельзя говорить что что-то не подходить так просто. )) Просто пока не получилось.
avatar
Теорема Черча, опровергающая возможность создания нейронной сети.
avatar
нейрологика на стороне bye-side плохо работает, потому что там большая часть информации — это фейк… на стороне sell-side нейрологика работает прекрасно уже много лет
  Ну все-таки правильную фичу они нашли. А так конечно при 100 разных фичах (по типу орел-решка) при сотнях тысяч измерений вероятность что какая-то фича покажет положительный результат — она ОЧЕНЬ велика. Вероятность 20(!!!) подряд выпадения решки — один на миллион. Вроде бы крайне мала. А теперь прикиньте когда вы кидаете 100 монет по 100 тысяч раз.
avatar
Вероятно, у Вас не очень качественный датчик случайных чисел. И сеть это обнаружила. 
avatar

SergeyJu, я об этом тоже подумал, ведь для дней недели от 1 до 4 верность прогноза была 52-53%. Однако по этой логике получается что чуть некорректно сгенерированные случайные ряды он обнаружил, а ряд где явно указанно на перкос в событиях (60% на 40%) — нет. Нелогичненько

 

avatar
Приверженцы поиска грааля в нейросетях пытаются майнить биткойн на калькуляторе. Явления одного порядка примерно.
Не, теоретически это возможно. Но когда начнёшь и осознаешь несоизмеримость этой затеи, остаётся только искать смайлик рука-лицо

Прежде чем создавать нейросети для торговли, горе-кулибинам от ML следует оценить, чем их сеть будет лучше имеющихся аналогов (собственная голова). Если ничем, то и результат будет такой же — никакой.
avatar

теги блога Марат

....все тэги



UPDONW
Новый дизайн