Блог им. ch5oh

Блеск и нищета ИСКУСТВЕННЫХ нейронных сетей

    • 20 февраля 2020, 20:00
    • |
    • ch5oh
  • Еще

В связи с хайпом вокруг искуственных нейронных сетей стало интересно: насколько реально обучить сеть или дерево или иную технологию машинного обучения для восстановления вида неизвестной функции по следующим значениям обучающей выборки:

  • x==4 тогда  y==40
  • x==61 тогда  y==80
  • x==117 тогда  y==120

Сеть или дерево должна вычислить значение этой функции для аргумента   x==97853

 

Философский подтекст состоит в том, что человек в состоянии определить вид этой функции совершенно достоверно и получить нулевую ошибку на валидационной выборке любого размера и сложности.

 

Если технологии ML не могут дать адекватного ответа на этот вопрос, то могут ли они в принципе быть полезны в торговле?

 

UPDATE 1: За прошедшие несколько часов 2 человека однозначно продемонстрировали способность восстановить вид искомой функции. Что подтверждает простоту озвученной задачки.


Также в голове примерно нарисовалось понимание, как будут решать Деревья. Они разобьют числовую ось на отрезки (точки разбиения насколько понимаю будут выбраны случайным образом) после чего предложат либо кусочно-постоянную либо кусочно-линейную функцию в качестве интерполяции. После чего будут нести всякую чушь и требовать увеличения объёма обучающей выборки. Причем желательно, чтобы в неё входили примеры в том числе в области 100 000.

 

Что же касается основного вопроса данной заметки, то уважаемый ves2010  предлагает считать сетки и ML в целом полезными, ЕСЛИ предварительно грамотно декомпозировать задачу и выделить им ровно тот участок работы, с которым они скорее всего смогут справиться.

 

UPDATE 2: функция следующая.

Посчитать количество цифр в десятичной записи числа и умножить на 40.

Человек решает если и не мгновенно, то вполне в состоянии уловить данную зависимость, потратив несколько часов внимания.
Причем уловив связь, он будет давать правильный ответ даже на стозначных числах.

 

★3
идея в том, 
счас граль спалю по пьяни… потом минут через 10 удолю нах

avatar

ves2010

ves2010, Пральна.

Называется это так:
Декомпозиция -> Оптимизация частей -> Синтез

На выходе получается Грааль   

avatar

_sg_

_sg_, что является целевой функцией всей системы примерно понятно. А что является целевой функцией для каждой отдельной части?
avatar

ch5oh

_sg_, идея в том, что изначально должна быть рабочая архитектура… вообще тема ботостроения — решенный и закрытый вопрос… есть овердокуя разделов математики на тему… кого то этому учили… а кому то приходится изобретать велосипед 
avatar

ves2010

ves2010, что это за «разделы математики» такие полезные? АСУ?
avatar

ch5oh

ves2010, наверное, что-то не догоняю.

 

Вроде бы проще заставить нейронку строить весь дом (миллиард домов) и только вешать ярлыки «нравится/ерунда», чем объяснить ей почему один «порог внутри бота» хороший, а другой — «плохой».

 

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

avatar

ch5oh

ch5oh, все решает ахитектура… т.е бот это не творожок однородный… у него части есть

avatar

ves2010

ну, конечно, тебя(меня), тупого, обыгрывает нейросеть, а не ты сам себя на кукан сажаешь.
avatar

For_post

ничего не понял, но было очень интересно 
avatar

товарищ масон

Если б данных было побольше чем 3 точки — я бы сказал, что можно на них натравить полиномиальную регрессию, а для выбора степени полинома использовать кросс-валидацию по случайным подвыборкам. И получилась бы модель вида y=a+b*x, с R^2=1 in-sample (судя по представленным данным) и неизвестным R^2 out-of-sample. Но для экстраполяции полиномы типа y(x)=a+b*x+c*x^2+… годятся плохо, т.к. быстро уходят на ±inf. И это надо держать в голове, когда полиномы используются в таких целях.
Если технологии ML не могут дать адекватного ответа на этот вопрос, то могут ли они в принципе быть полезны в торговле?
Вместо того, чтобы выдумывать очередную зверскую модель для улыбки/поверхности волатильности, можно скормить историю улыбок чему-то подобному и оно вам вытащит факторы, отвечающие за сдвиг/наклон/кривизну улыбок. То же самое с поверхностями; как минимум, добавится фактор, отвечающий за инверсию term structure.

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

Eugene Logunov

Eugene Logunov, > "и оно вам вытащит факторы, отвечающие за сдвиг/наклон/кривизну улыбок."

Если эти факторы действительно содержатся в цене. А если это экзогенные факторы? Типа твитов или новых санкций? Или цены на нефть?

 

И, кстати, хорошо бы ещё определиться с тем, имеется ли всё-таки лаговая связь между нефтью и нашим рынком или все эти величины по сути независимы, а двигаются синхронно только за счет наличия неназванного фундаментального фактора?..

avatar

ch5oh

ch5oh, 
Типа твитов или новых санкций?
Нужно принять как данность, что есть информация, которую мы узнаём по факту, и прогнозировать её бесполезно. Если мы не самые быстрые — то появление такой информации представляет риск.

Но если Трамп прежде чем твитнуть какую-нибудь укню лайкает пару-тройку твитов или отвечает на какой-нибудь коммент — это в корне меняет дело :)
имеется ли всё-таки лаговая связь
Тут можно и без ML обойтись.
avatar

Eugene Logunov

Eugene Logunov, есть нюанс. Иногда мы бегаем за нефтью, а иногда нефть бегает за нами. Полагаю, что в условиях переменной лаговости статистические модели поиска причинности загрустят.

 

Хотя не щупал их серьёзно. Пробельчик в исследованиях… =/

avatar

ch5oh

ch5oh, От переключения режимов как такового грустить причин нет. Проблемы возникают тогда, когда режимы переключаются слишком быстро, чтобы их обнаруживать, либо на самом деле никакого переключения (и причинно-следственной зависимости) нет.
avatar

Eugene Logunov

kot_vezdehot, скажите, Вы не родственник случайно Kot_Begemot ? =)

avatar

ch5oh

Когда нет своих мозгов придумывают искусственные. Зачем вам нейросеть если рынок ходит по четким правилам. Дебилы на хаях шортят на лоях заходят в бай, на этом строится вся суть.

А по вашим точкам можно построить бесконечное количество функций, с разными вариантами ответа.
avatar

Евгений

Евгений, хм. Для «дебилов» очень неплохой алгоритм действий «продавать хай, покупать лоу».

Осталось определиться с тем, где нам взять информацию «сейчас хай, пора шортить» или «сейчас лоу, пора покупать». У Вас есть такой классификатор?
avatar

ch5oh

ch5oh, для этого нужно иметь 2 глаза и график
avatar

Евгений

Евгений, очевидно, Вы относите себя к этой категории людей. Мои поздравления.
avatar

ch5oh

kot_vezdehot, давайте я через некоторое время напишу, чтобы не портить удовольствие коллегам. Могу даже Вам в личку отдельно его сообщить.

 

Один человек уже написал ответ (мне в личку). Так что здесь нет ничего сверхъестественного. Даже стесняюсь приглашать к разговору местных математиков. Для них это не задача вообще.

 

Но вопрос не в задаче. Вопрос именно в потенциальной полезности нейронок для нашего дела, если они даже с такой задачкой могут испытывать сложности.

 

ПС Вот тут, кстати, даже плач Ярославны об этом имеется. (Осторожно: много букв)

https://habr.com/ru/post/488568/

avatar

ch5oh

здесь нет ничего сверхъестественного

ch5oh, ничего сверхъестественного для человека, которого натаскивали на схожих «задачах» (даже не клетчатой бумажке), а  продвинуто обученный ухватит суть мгновенно. Для рынка же нужно сначала самостоятельно поставить задачу, как кто-то здесь уже однажды писал, и лишь потом искать подходы к решению.
Для второго этапа несколько подрихтованные нейросетки вполне даже годятся.
avatar

старый трейдер

Дайте ответ уже!
avatar

Vanger

Никак. Ни сети, ни ML не занимаются экстраполяцией.
avatar

Kot_Begemot

Kot_Begemot, Ваше высказывание создаёт у меня когнитивный диссонанс. Ровно это нам обещано индустрией МЛ: способность восстановить ЛЮБУЮ функцию  y=f(x)  по достаточно большой обучающей выборке пар (x; y). Здесь под x понимается многомерный вектор любой большой размерности.
avatar

ch5oh

ch5oh, что вас удивляет, если я только подтвердил ваши слова, высказанные в основном тексте? 
avatar

Kot_Begemot

Kot_Begemot, Вы написали, что «сети не занимаются экстраполяцией».

Но везде и всюду написано, что именно этим они и занимаются. Вся цель обучения нейронки состоит в том, чтобы она получила способность давать «правильные» ответы (то есть правильные y) в том числе в ситуации, когда в неё пихают незнакомый «невиданный ранее» вектор x.
avatar

ch5oh

ch5oh, везде написано что сеть восстанавливает регрессию f(x) на интервале данных, но нигде не написано, что она, при этом, ещё и занимается экстраполяцией.

Нейронщики, чтобы научить сеть экстраполировать, обычно делают предположение о некотором виде масштабируемости данных и перед отправкой вектора x в сеть приводят его к некоторому «нормированному» виду x', чтобы он приближённо напоминал те вектора, на которых сеть обучалась. Без этого — никуда.
avatar

Kot_Begemot

Kot_Begemot, После обучения сети в неё можно подпихивать любые данные. Например, картинки незнакомых котиков или новые рукописные цифры, которые мы сами только что нарисовали. Это и есть «экстраполяция» в моём понимании. Вы же не можете объявить картинку сфинкса «аутлайером» и просто кинуть OutOfRangeException. Или сказать, что Сетке «не нравится» белый персидский кот на белом фоне.

avatar

ch5oh

ch5oh, если считать, что нейронка это некоторый «чёрный ящик», то её вход, конечно, можно засорять любым мусором — и так сойдёт!

(Будет настроение, после клиринга отпишу подробнее)
avatar

Kot_Begemot

y=200? Вся проблема в начале., но это еще полбеды — есть еще и скрытые процессы  могут включиться, а могут и нет(история до и после не важно). тип твитов президента сША.
avatar

Jkrsss

Тут вроде путаница имеется. Ml применяется не когда мало данных и явная зависимость, а когда много данных и неявная зависимость. Вопрос эффективности ml давно не стоит. Это все равно что сомневаться в эволюции или в округлости земли — можно понадувать щеки, но какой смысл.
avatar

ПBМ

ПBМ, в этой задаче можно дать дофига данных. Но машина всё равно так и будет лажать на out-of-sample.

ЕСЛИ хитропопый датасайнтист не разработает для неё процедуру предварительной подготовки данных.

 

И тут парадокс. Если нам всё равно нужен хитропопый датасайнтист, то в чем смысл? Новые рабочие места создавать? Вся мишура с МЛ моментально осыпается и они превращаются в груду хлама.

 

Кстати, блестящая демонстрация этого тезиса буквально недавно попадалась. Сеть научили опознавать животных по фоткам. 95% точность или даже больше. Теперь берем фотографию белки. Сеть говорит: "Белка". Вносим на картинку исчезающие изменения, которые человеческий глаз даже еле замечает. Ну, там чуть размазалось, тут слегка зарябило. Ерунда. Сеть говорит: "Золотая рыбка". И где вся магия МЛ???

avatar

ch5oh

ch5oh, у людей тоже есть баги и много

avatar

ПBМ

ch5oh, именно так. Без хитрожопого оператора вся система превращается в груду мусора.
avatar

wrmngr

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

ПBМ

ПBМ, вроде, деревья решений традиционно считают частью МЛ? =) Ну, типа, что машина сама генерирует цепочку условий, которые надо проверить и по которым надо пройти, чтобы получить ответ.

 

А что касается «мало данных и неявная зависимость»… Ну, вроде, сетки и на мизерные выборки в 150 точек с бешеной и крайне яркой сезонностью ставят. Конечно, это скорее «фо фан» упражнения, но всё же...

avatar

ch5oh

ch5oh, ну вот набросал из того что было..
результат не совсем верный (что-то там не так считается), но у нас же тупая машина, ей простительно

( ( 4 + 4 ) / 2 + 4 / 5 ) + 35 = 40.0: 40

( ( 61 + 4 ) / 2 + 61 / 5 ) + 35 = 79.9: 80 

( ( 117 + 4 ) / 2 + 117 / 5 ) + 35 = 119.10000000000001: 120

просто поздно уже, да и силы уже не те в пятницу :)

считает криво… где-то ошибка у меня, но близко.

и да, я понимаю, что в задаче целочисленная арифметика

avatar

ПBМ

ПBМ, кстати, это же Вы подогнали дерево под предъявленные данные.

А сколько это дерево насчитает на x==97853 ?

( ( 97853 + 4 ) / 2 + 97853 / 5 ) + 35 =
= 48928,5 + 19570,6 + 35 =
68534,1

Правильно понял?
А люди говорят "200" должен быть ответ.

avatar

ch5oh

ch5oh, сдаюсь ;)
avatar

ПBМ

Философский подтекст состоит в том, что человек в состоянии определить вид этой функции совершенно достоверно и получить нулевую ошибку на валидационной выборке любого размера и сложности.

Ну для MLя просто мало данных. Если вы дадите ей много данных (хотя бы значения для x от 1 до 10^6, например) — ML тоже может научиться вычислять значения как надо. Опять же, нужен человек, который поможет со структурой задачи — т.е. подскажет, что y кратно 40 только. А совсем без человека-подсказчика на этапе обучения ML и не работает, это вам любой нормальный спец в этом области расскажет.
avatar

MadQuant

MadQuant, буквально двумя комментариями выше сокрушался на этот счет:

smart-lab.ru/blog/595697.php#comment10687822

 

Может, МЛ вообще не работает? Или работает совсем не так, как нам его преподносят с восторгом в голосе и пеной у рта? Нам же что говорят проповедники: "Готовишь данные на входе, показываешь данные на выходе. Дальше машина долго гоняет электрончики из угла в угол — и вуаля." Причем проповедники же не уточняют, насколько тщательно готовился набор картинок для MNIST и сколько там предварительных нормировок было сделано. И что если взять с потолка другую картинку как бы тоже рукописной цифры, то с большой вероятностью сетка облажается. Точнее, не будет там никаких «99% на тестовой выборке».

avatar

ch5oh

ch5oh, компьютер ничего не знает про десятичную запись и что в ней может быть сколько-то цифр. Он вообще числа по циферкам не записывает.

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

В ML магии нет, инжиниринг фич никто не отменял. Чтобы обучить полезную модель, надо очень внимательно подумать какие ей показывать фичи и ещё что немаловажно — какие таргеты.

Тогда всё начинает сходиться туда куда нужно, но это нифига не само собой происходит.
Пафос Респектыч, получается замкнутый круг. Чтобы решить задачу нужен человек, который её фактически решит (ака «правильно подготовит фичи»). Но нам-то наоборот обещают, что Сети будут сами строить граф вычислений в том числе в тех случаях, когда человек не может разобраться в проблеме и «подготовить фичи».
avatar

ch5oh

ch5oh, не знаю кто вам такое обещает, наверное он хочет вам что-то продать.

Подготовить фичи эквивалентно как вы говорите решению задачи только пока фич одна-две. Как только фич становится больше, а зависимость становится сложнее — для поиска приближения этой зависимости нужны методы ML. Но подать на вход алгоритма такие фичи и таргеты, между которыми вообще есть зависимость — это обязанность дата саентиста.

Пафос Респектыч, так никто ж не знает априорно есть зависимость или нет. Поэтому берут таблицу на 200 столбцов со всеми мыслимыми фичами — и вперед.

 

А «обещает» — индустрия МЛ. Проповедники сингулярного будущего.

avatar

ch5oh

ch5oh, всех мыслимых фич — это будет 200000 столбцов. Чтобы получилось 200 столбцов полезных фич уже нужен фичё инжиниринг.

Так где такое обещают-то, пруфы есть? Видосик там или статейка с фамилией? А то я сам как-то не встречал.

Пафос Респектыч, 

Общая постановка задачи обучения по прецедентам
Имеется множество объектов (ситуаций) и множество возможных ответов (откликов, реакций). Существует некоторая зависимость между ответами и объектами, но она неизвестна. Известна только конечная совокупность прецедентов — пар «объект, ответ», называемая обучающей выборкой. На основе этих данных требуется восстановить неявную зависимость, то есть построить алгоритм, способный для любого возможного входного объекта выдать достаточно точный классифицирующий ответ. Эта зависимость не обязательно выражается аналитически, и здесь нейросети реализуют принцип эмпирически формируемого решения. Важной особенностью при этом является способность обучаемой системы к обобщению, то есть к адекватному отклику на данные, выходящие за пределы имеющейся обучающей выборки.


Классические задачи, решаемые с помощью машинного обучения


Регрессия, как правило, выполняется с помощью обучения с учителем на этапе тестирования, является частным случаем задач прогнозирования.


Источник:

Машинное обучение

 

Видосики, ага. «Решение всех проблем человечества — квантовый МЛ». Как ещё новых адептов привлечь? Только наобещать золотые горы.

 

avatar

ch5oh

ch5oh, не ну вы накопипастили самую романтическую часть вводных, там же сразу же следующим абзацем говорится, что:

Данная постановка является обобщением классических задач аппроксимации функций. В классических задачах аппроксимации объектами являются действительные числа или векторы. В реальных прикладных задачах входные данные об объектах могут быть неполными, неточными, нечисловыми, разнородными. Эти особенности приводят к большому разнообразию методов машинного обучения.

А дальше надо в зависимости от реальной прикладной задачи выбирать подходящий метод, и дальше длинный список. По идее это всё надо знать хотя бы поверхностно что для чего. Универсальной методы нет (((
Пафос Респектыч, да я не против «оговорок». Меня просто удивляет, что инет переполнен материалами на тему «распознаем чиселку» или «отличим сволочь от мерзавца по фото», но при этом провал в области time-series forecasting. Если, конечно, не принимать во внимание наивняк, начинающийся со слов «скачаем днёвки гугла с яхуфинанс и засунем их в сетку из трёх полносвязных слоёв».
avatar

ch5oh

ch5oh, ну не всякий тайм сериес легко зафорекастить. Рынки трудно, потому что шума много а данных мало, нестационарность опять же.

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

Вообще рынки предсказывать это такая довольно нишевая задача для кучки упоротых, ей не так много народа занимается как может показаться, а грамотного так и того меньше.
ch5oh, для простых задач (типа распознавания цифр или лиц) 99% там, безусловно, есть. Это реально несложно. Вот с прогнозированием временных рядов — в особенности цен — проблемы, именно потому что данные остационарить сложно.
avatar

MadQuant

MadQuant, это «реально несложно», если сначла разработать методику стандартизации картинок, правильно? Чтобы лицо было определенного относительного размера, в определенном положении при определенном освещении. В принципе, можно ещё сразу вычислить стандартные характеристики типа «расстояния между зрачками» и ключевые метрики лицевой геометрии. Тогда сетке вообще думать не нужно будет насколько понимаю.
avatar

ch5oh

С точки зрения компьютера, надо по нескольким точкам угадать функцию
f(x) = 40*ceil(log10(x))

Таких чудес не бывает )))
Пафос Респектыч, а люди угадывают.
Может, действительно кто-то и теханализ умеет делать?.. =)
avatar

ch5oh

ch5oh, ещё раз, люди угадают если задачу понятно записать. Если же например переписать числа в восьмеричной системе счисления и не сказать об этом — то не угадает никто.

То есть фича о количестве цифр может и неявно, но присутствует в формулировке задачи, а компьютеру её взять будет неоткуда.

Как вариант — нужно много точек данных, тогда он может сможет догадаться, но засада в том что на том же рынке много данных взять неоткуда. Поэтому возвращаемся к важности фиче инжиниринга.

Может кто-то и теханализ умеет делать, несомненно. Первый признак — такой человек сможет сказать что вот тут его скорее всего можно будет сделать, а вот — тут скорее всего нельзя.

UPDATE 2: функция следующая.

Посчитать количество цифр в десятичной записи числа и умножить на 40.


А откуда следует, что функция именно такая? Их бесконечное количество.
Чем эта лучше других?
Вот машинное обучение по заданным критериям и отвечает на последний вопрос.
avatar

MS

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

MS, будем считать, что был установлен телепатический контакт между мной и (минимум) двумя абонентами. Я задумал эту функцию и привел 3 точки для примера. А люди мои мысли прочитали.

 

На рынке тоже самое. «Рынок» задумывает функцию, а мы её угадываем явно или неявно. Кто хорошо угадывает — тот молодец живет припеваючи.

avatar

ch5oh

ch5oh, у вас фора перед ИИ. вы и те двое других решали много (несколько) похожих задач и решили и эту тоже.
а ИИ для теста вы берёте нулёвую, которая такую ещё никогда не видела.

люди ведь тоже много косячат. 
avatar

ПBМ

ПBМ, не спорю, что «люди много косячат».

Зато машина имеет передо мной колоссальное преимущество: объём памяти, скорость и безошибочность вычислений.

avatar

ch5oh

MS, Это довольное просто если знаешь такие понятия как характеристика и мантисса числа. Да и что такое линеаризация.
avatar

Jkrsss

Jkrsss, а если знаешь что-то другое, то и решение станет другим? Забавно.
avatar

MS

MS, Нет. истина есть  истина. Если истина не истина то это противоречие. Между истиной и противоречией ничего нет. Забавно что это понимает только элита.
avatar

Jkrsss

Jkrsss, у Вас мышление своеобразное. Выше написано, что нет одной истины.
avatar

MS

Посчитать количество цифр в десятичной записи числа и умножить на 40.
Человек решает если и не мгновенно, то вполне в состоянии уловить данную зависимость, потратив несколько часов внимания.

Если взять что-то посложнее — то человек покажет результат не лучше машинленинга, причём не только в задаче экстраполяции, но и в задаче интерполяции.

Пример:
x y
2 199981
3 199982
5 199984
7 199986
11 199990
13 200001
17 1599984
19 1599986
21 1599988
23 1599990
Вопросы:
1. Найти пропущенные значения при x от 2 до 23.
2. Найти значения функции при x=1 и x=25.
avatar

Eugene Logunov

Eugene Logunov, больше всего смущает переход от 11 к 13. Без него это просто кусочно-линейная функция.

 

ПС Впечатляет, что Вы в 4 часа ночи размышляете над такими вопросами. =)

avatar

ch5oh

блин, почитал что за формула...
ну конечно мой прототип не мог этого сделать.
потому что __Я__ предусмотрел в нём только операции 

final Operator[] allOps = {add, sub, mul, div, pow};

если туда добавить функцию numberCount и определить её как количество цифр, то дерево построится с полпинка

говорит ли это что-то плохое о самом подходе или «нереальности обучить»?
ни в малейшей степени.

вот есть стиральная машина. она делает простую работу — крутит барабан и греет воду.
или есть посудмоечная машина — крутит поливалку и греет воду.
они делают дело порой медленее и иногда хуже чем человек.
но бесполезны ли они?

avatar

ПBМ

ПBМ, это ещё раз говорит о том, что так называемый «машин лёрнинг» и «искуственный интеллект» пока что не более чем модный хайп. По сути, Вы просто ещё раз сказали старый тезис, известный про нейронки уже лет 10: "Чтобы нейронка начала решать задачу, сначала задачу должен решить человек".


Но если человек уже решил задачу прогнозирования рынка (путем придумывания «правильных фич»), то дальше ему уже и нейронка особо не нужна. Можно использовать классические методы.
avatar

ch5oh

ch5oh, про не особо нужна — см выше пример про стиралку и посудомойку.
если мало — возьмите автобус или авто.
человек умеет ходить. за кой чёрт ему авто? он итак дойдёт.
avatar

ПBМ

ПBМ, давайте ближе к нашей теме.


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

 

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

avatar

ch5oh

ch5oh, 
Если человек стопудово знает, какие фичи вляют на клоуз следующего бара 
это мягко говоря слишком сильное предположение
avatar

ПBМ

ПBМ, в этом топике Вы не первый, кто упирает на то, что «без правильных фич ML — хлам». Но что есть «правильная фича»? По определению, это некий ряд данных, который действительно оказывает влияние на прогнозируемую величину (на клоуз следующего бара).

 

Получается, мы ходим по кругу: без «правильных фич» МЛ — хлам, а с «правильными фичами» он нам как бы и не нужен уже.

avatar

ch5oh

ch5oh, я про фичи не говорил. 
это скорее — список разрешенных операций.
грубо говоря вот есть программа которая должна научиться играть в шахматы, но вы при программировании «забываете» ей сказать что ферзь может ходить по диагоналям.
а потом хохочете что она косячит в элементарных вещах.

нужен, не нужен, это так себе спор, вкусовщина же.

вашу позицию можно переформулировать (что вы уже сами сделали чуть выше) — если можно обойтись без ML — без него надо/можно/стоит обойтись. понятно, что с этим утверждением спорить сложно и не нужно.

как я понимаю, человеческое знание работает таким образом, что не всегда всё кристально ясно и понятно. даже людям не всегда «хватает фич».
и такое в последние годы уже не только в новых науках типа экономики, но и в физике и даже в математике (см Синъити Мотидзуки)

может и придёт тот день, когда всё станет 42. но пока до него далеко вроде бы.

PS: что-то туго далась ваша задача. но всё-таки спрограммил. сперерывами на поиграть с детьми, отметить 23 и тп. думаю теперь моя программа сможет найти и более сложные решения, типа:

X=3; Y=3;
X=13; Y=65;
X=511; Y=487;
X=12345; Y=??? 

avatar

ПBМ

ПBМ, Ваша программа прекрасна, но это не та функция, которая была изначально задумана. Хотите верьте, хотите нет. «Правильную» функцию написал в конце топика в UPDATE2.

 

С уважением,

avatar

ch5oh

ch5oh, Обычно нулевая ошибка in-sample = огромная ошибка out-of-sample. Так что при помощи ML никто и не подбирает идеально точные модели.
avatar

Eugene Logunov

ch5oh, я может быть не понятно написал, виноват.
вашу функцию я прочёл. и даже комментировал по ней, начиная в 13:03 (вы мне отвечали).

я поясню ещё две детали:
1. я сделал _другую_ функцию, другую задачу. на основе «фич» из вашей. т.е. все фичи известны: +, -, *, /, pow, число_цифр. 
осталось мелочь — показать что программный поиск не нужен.

2. ну если честно, тут большая путаница, что есть машин лёрнинг, а что нет. если считать что всё что накапливает состояние в процессе работы методом проб и ошибок = машин лёрнинг, то моя программа — именно лёрнинг. и она одинаково легко решает и вашу оригинальную задачу. и задачу которую я придумал.

а вот человек, сдаётся мне, от второй задачи легко опухнет.
avatar

ПBМ


....все тэги
2010-2020
UPDONW