Может кто–нибудь пояснить принцип простейшей нейронной сети, способной распознавать буковки со смещением и/или поворотом?

А какие вообще есть подходы к нейронным сетям?

Есть ли хорошая и главное доступная литература на этот счет?

image

вообще, давайте поговорим об этом

GD Star Rating
loading...
Принцип простейшей нейронной сети, 1.0 out of 10 based on 2 ratings
Tagged with →  

112 Responses to Принцип простейшей нейронной сети

  1. SdDoctor:

    очень интересно в какой отрасли находят применения нейронные сети??
    если вас не затруднит пояснить )

  2. Sbalr:

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

  3. Rean:

    распознавание образов — лиц, звуков, текстов.

  4. Rean:

    не совсем так. если сеть откровенно неудачно выбрана, то тренировать ее придется пау тысяч лет.

  5. Sbalr:

    так ведь выбор–то не особенно большой.

    я когда с нейро–нечеткими сетями пытался разобраться, интересный тезис прочитал: «Нейросети — хер знает как они работают, зато обучаются. Нечеткие контроллеры — ясно, как работают, но не обучаются.».

  6. SdDoctor:

    тренировка чего?

  7. Sbalr:

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

  8. Si11:

    очень активно используют в распознавании текста. Те же капчи, после долгого обучения способны кое–как их распознавать. Вроде как ещё на биржах, но не увере что это очень эффективно.

  9. SdDoctor:

    простите мне мою неосведомлённость но жутко хочется вникнуть )

  10. SdDoctor:

    а распозновании текста для програм? а также в различного рода сканерах?

  11. Si11:

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

  12. Sbalr:

    тренировка сети.

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

    В идеальном случае после такой тренировки ты показываешь сети новую фотку, и она уверенно узнает в ней Мариванну из соседней квартиры.

    сейчас специалисты набегут и скажут что я все переврал :–)

  13. SdDoctor:

    а есть наглядный пример принципа построения простейшей нейро сети?

  14. Si11:

    В таких программах особенно. Но там более хитрая система, она не просто читает символы, а, вроде как, определяет шрифт и уже по нему производит дальнейшее скоростное распознавание. Сканер ничем от программы, по сути, не отличается. То–же ПО внутри.

  15. Sbalr:

    тебя точно на гугле не забанили?

  16. Si11:

    да простят меня хаброфобы, но довольно простые примеры видел вот тут: //habrahabr.ru/blogs/artificial_int…
    Конкретно, есть даже простой пример с распознаванием цифр.

  17. SdDoctor:

    ну ты знаешь в таком деле я привык слушать знающего человека )
    ведь в гугл поиск наглядного примера может занять очень много времени ))

  18. SdDoctor:

    спасибо ))) погрузился в изучение вопроса )))

  19. 905xela:

    А вообще зачем они вам, гуглите pattern discovery, datamining. Там много хорошего есть, могу простенькую лекцию скинуть.

  20. 905xela:

    Что тебя так удивило?

  21. 905xela:

    Мариванну не узнает, но Петю с Васей не спутает.

  22. 4neg:

    мне интересен принцип, подход.
    Да, кинь, было бы круто.

    Аids: не суетись, будь добр)

  23. SdDoctor:

    а простейшая аналогия как я понял это человеческий мозг )

  24. R_akhsap:

    я бы даже сказал — эдементарнейшая.. или тривиальная

  25. NiNew:

    Коротко и на пальцах принцип простейшей нейронной сети, способной распознавать буковки:
    Есть нейросеть, у которой связи имеют случайные веса (за терминологией в википедию, там же можно увидеть искусственный нейрон). Задача обучения — изменить веса так, чтобы сеть правильно распознавала известный набор букв. Для этого на вход подается множество различных образов каждой из букв. Веса меняются по какому–либо из алгоритмов (их известно много) до тех пор, пока в каждом образе не будет верно распознана буква из исходного набора. На этом обучение завершается и можно использовать сеть по назначению, т.е. распознавать зашумленные/искаженные/и т.д. буквы из исходного набора. Т.е. физический смысл обучения — выделить из множества примеров одной буквы наиболее общие характерные для нее черты. Чем больше входная обучающая выборка, чем меньше выходное множество, тем точнее будет работать нейросеть при прочих равных.
    Да, буква может подаваться например следующим образом: изображение бьется на квадраты, для каждого квадрата определяется цвет, числовое значение которого подается на соответствующий квадрату вход нейросети.

  26. 4neg:

    Спасибо, но это понятно и довольно просто. Вопрос именно о распознавании буковок с смещением или вращением. Вот, что мне не понятно.
    Обучают, каждый образ вращая и смещая, или все таки каким–то нормальным способом? )

  27. ReDad:

    а разве система сама в процессе распознавания не может вращать картинку с изображением символа, каждый раз пикселизируя по–новой?

  28. 905xela:

    Там веса имеют связи между нейронами. Веса меняются благодаря обучению. Есть входящие и исходящие синапсы. Как только сигнал на нейроне достигнет пороговой величиный — нейрон активируется шлет другим нейронам сигнал.
    Тоесть начальный уровень это скажем матрица, промежуточный уровень где соединены все со всеми и выходной уровень, где считываешь значение А, или Б.

  29. 905xela:

    Пороговые значения тоже можно менять.

  30. NiNew:

    тут зависит от степени смещения/вращения. При небольших — компенсируется обучающей выборкой с такими же смещениями/вращениями в разные стороны.
    Если вообще не факт, что изображение будет близко к горизонтальному, то требуется предварительная обработка. Можно, конечно, вращать изображение с определенным шагом и подавать каждый раз на вход сети, но ресурсозатраты на это будут расти пропорционально количеству таких поворотов. Можно еще выстроить каскад из нескольких систем, из которых первые менее ресурсозатратны, чем последние. В таком случае задача «легкой» системы — предположить линию горизонта на изображении. Это все очень индивидуально, зависит от конкретной решаемой задачи. А задача «тяжелой» уже точно поределить принадлежность изображения к классу.
    Вообще, искажения, связанные с поворотами, — одна из наиболее сложных базовых задач в распознавании образов.

  31. 905xela:

    //rapidshare.com/files/339496802/AL…
    Вот тут все про перцептроны.

  32. 905xela:

    Что тут сложного, обучающую выборку нужно нормальную просто.

  33. 905xela:

    А вообще перцептрон такую задачу не поднимет, я и сам порой не могу распознать ваши буковки.

  34. 4neg:

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

    NiNew говорит, что это одна из самых сложных задач — это уже пол–ответа и он меня расстраивает

  35. 905xela:

    Я тебе советую на специальной блоге пост создать. Sleep — постдок в computer science как раз по этому направлению.

  36. 4neg:

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

  37. M0dnar:

    пост невероятных открытий

  38. 905xela:

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

  39. 905xela:

    Глянь файл, который я скинул, там все проблемы описаны. Но нейронные сети это всего навсего старенький классификатор. Тот же SVM более перспективен. Хотя и не так круто выглядит.

  40. Sbalr:

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

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

  41. 4neg:

    Метод опорных векторов (SVM — support vector machines)?
    почитаю.

    Я только начал знакомиться с НС, но помоему они чертовски перспективны, только вот подход к ним очень ограниченный. Но это все пока пустое

  42. 4neg:

    блабла.
    Я не общим принцепом, а принципом НС интересуюсь.

  43. NiNew:

    ну хорошо, не сложная, а затратная. Больше вариативность => меньше общих признаков => ниже точность. Компенсировать в общем случае можно, на практике зависит от конкретных условий.

  44. Sbalr:

    нобелевку получит сеть, распознающая тексты на аптечных рецептах и в карточках больных.

  45. Sbalr:

    понятно, просто поговорить. ну ок.

  46. 4neg:

    посмотрел в вики — ничерта не понял) … гиперплоскость и зазор между гиперплоскостью и двумя параллельными гиперплоскостями…
    за пдф благодарю

  47. 4neg:

    интересует не подход к задаче, а подход к построению НС.

  48. 905xela:

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

  49. ReDad:

    а что за блог, маякни?

  50. Ff3:

    по распознаванию образов неплохо должна справлятьсясеть Хопфилда . А вообще у С.Хайкина много более подробно по данному вопросу

  51. Peels:

    Не читайте Гайкина! Нет, правда. При всем уважении к уровню формализма и количеству материала, его книга покалечит вам психику и не принесет много толку. Почитайте лучше вот (+ см. все книжки в разделе «Customers who bought this also bought…» на той странице). Когда в этих разберетесь — можете взяться за Гайкина.

    А сеть Хопфилда к задаче классификации не очень хорошо применима.

  52. Ff3:

    кстати да, Хайкин для начала формирования понимания практически непригоден.

  53. HtroNx:

    Вообще — для распознавания изображений с вращением, изменением масштаба и тд — хорошо подходит нейронная сеть типа Неокогнитрон
    На русском про сети этого типа написано в книге «Уоссермен — Нейрокомпьютерная техника: Теория и практика» (//neuroschool.narod.ru/books/nntech…
    вообще эта книга для первого знакомства с нейросетями — одна из лучших на русском языке.
    Потом можно заглянуть сюда — есть несколько интересных статей по распознаванию изображений нейросетями

  54. Peels:

    Неокогнитрон этот — штука 1980 года, а книжка Вассермана — 1989го. Ничего не имею против хороших книг по теме, но не могу не заметить что за последние 20 лет ух как много всего произошло. Вся область распознавания образов ожила, расцвела и наконец–то «заработала» после периода тотального застоя в 70х и 80х. Поэтому я б рекомендовал что–нибудь поновее. Вся концепция машинного обучения сейчас рассматривается совсем не так, как ее рассматривали тогда.

  55. HtroNx:

    Ну — если я правильно понял — человеку хочется познакомиться с нейросетями, причем по ближе к практике — на русском — Уоссермен самое то для начала ( еще есть «Осовский — Нейронные сети» — тож неплохая книга)

    Ну а если вообще — изучать машинное обучение — то конечно нужны другие книги
    И начинать надо не с нейронных сетей естественно 🙂

  56. Peels:

    Та же книжка Бишопа по ссылке выше в одной из первых глав, кстати, покрывает тематику нейросетей. Но при этом она покрывает ее так, что человеку будет понятно что, к чему, и почему (я не знаю, правда, есть ли ее русский перевод). В отличие от этого, многие «старые» издания (включая Гайкина, кстати) оставляют слишком много недосказанностей и производят общее впечатление типа «ну вот как–то так оно почему–то работает, но почему — мы не в курсе и умалчиваем, наверное потому что мозг так устроен».

    И еще, если надо «на практике», то чем книжки читать лучше взять программулину какую–нибудь и поиграть с ней чуток. А вот потом уже книжки читать (но насколько я понял автор поста как раз в этой ситуации).

  57. HtroNx:

    Та же книжка Бишопа по ссылке выше в одной из первых глав, кстати, покрывает тематику нейросетей. Но при этом она покрывает ее так, что человеку будет понятно что, к чему, и почему (я не знаю, правда, есть ли ее русский перевод.
    Всеж Бишоп сложноват для начинающего.
    И да — покрывает — но самые начала (про сети разной топологии и обучение без учителя в сетях он например вообще не говорит)
    нет — русского перевода нет.

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

    Ну не 🙂 Хайкин все что нужно проговаривает — и про сходимость перцептрона и про связь с байесовским классификатором — и даже про теорему об универсальной аппроксимации упоминает (о которой вообще редко упоминают — непонятно почему)
    просто он сложно обо всем этом пишет — и захватывает уж очень большой объем материала — поэтому некоторые вещи просто в массе теряются.

    И еще, если надо «на практике», то чем книжки читать лучше взять программулину какую–нибудь и поиграть с ней чуток. А вот потом уже книжки читать (но насколько я понял автор поста как раз в этой ситуации).

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

  58. Peels:

    Теорема об универсальной аппроксимации и сходимости перцептрона абсолютно не отвечает на главный вопрос — с какой стати система должна суметь «научиться». Почему, посмотрев на тренировочные данные, сеть должна подобрать именно ту модель, которая будет «работать» и на тестовых. Как это контролировать и от чего это зависит.
    Вот этот вопрос старые книжки осторожно обходят стороной (и если не считать старых статистических результатов, о которых никто не помнил, простые ответы были переоткрыты лишь в 90х).
    Чем зацикливаться на нейронных сетях, их ножках и топологиях лучше при первом ознакомлении с темой попытаться охватить, пусть неглубоко, но весь спектр принципов, и лишь потом уже, при желании, углубляться туда или сюда. Другими словами, «каждого, кто начинает интересоваться нейросетями» я бы в первую очередь отвел от этой темы в сторону. Это я как человек, который «начал интересоваться нейросетями» и потратил поначалу немало сил на Гайкина и прочую литературу говорю.

    Простая и на пальцах — это Data Mining которая идет в комплекте с Weka. Но у нее тоже перевода наверное нет. Вообще в этой области без английского трудно пока.

  59. HtroNx:

    Теорема об универсальной аппроксимации и сходимости перцептрона абсолютно не отвечает на главный вопрос — с какой стати система должна суметь «научиться». Почему, посмотрев на тренировочные данные, сеть должна подобрать именно ту модель, которая будет «работать» и на тестовых.

    Это намек что нужно начинать с теории статистического обучения? Ну 🙂
    Яж говорил о сложности — особенно для просто начинающего/увлекающегося.
    Тут бы теорему об универсальной аппроксимации (как доказательство возможности подхода) и градиентные методы оптимизации (в приложении к алгоритму обратного распростр ошибки) — хорошо себе уяснить — уже для начала нормально будет.

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

    Не–не–не 🙂 Тут надо разделять 2 вопроса — как оно работает и почему оно работает.
    Для ответа на вопрос «как» — отлично подходят Уоссермен или Осовский
    а вот для вопроса «почему» — уже нужно изучать машинное обучение вообще.
    Я по опыту знаю — когда спрашивают про «нейросеть распознающую буквы» — обычно интересуются как раз вопросом «как» — работает/сделать самому и т.д.

    Да и вообще — без ножек, кружочков, соединений — исчезает романтика нейросетей, магия которая и привлекает людей — уходит 🙂

    Вообще в этой области без английского трудно пока.

    Это да.

  60. 4neg:

    Я можно сказать обычный зевака — прочел случайно в одном тексте пару предложений о том как схематично работают нейроны — и тутже изрядно поразился родившейся в голове картине) Словом, оценил мощь системы, о которой ровном счетом ничего не слышал. Размечтался, придумал сразу пару штук и только потом дошло, что слышал о сетях — вот и полез смотреть что к чему.
    И так как принцип примитивной нс, распознающей буквы, я придумал сходу, решил что и дальше смогу поупрожнять свой ум и решить для вращения или сдвига там — но оказалось на этом этапе все во сто крат сложнее и неподъемнее.

    Я матанализ там или что то еще специализированное не знаю, мне интересен принцип, идея, ядро.

    Мне бы очень хотелось бы понять, как сеть превращается в мат. модель?
    Как решают вопрос зациклинности при обратных связях?
    Что будет если нейрон наделить логикой и памятью?
    Есть ли системы, где связи создаются и уничтожаются?
    А где система может сама создавать нейроны?
    А где нейроны могут сближаться или отталкиваться по принципу одновременного срабатывания и образовывать на этом принципе более тесные связи — ассоциации?

    только вот язык математики мне тяжело воспринимать

  61. Peels:

    А я вот убежден что для простого ответа на вопрос «как» не нужно вообще влезать в нейросети. Те же деревья (ID3, C4.5) — это гораздо проще, визуальнее и понятнее. Или возьми ты линейную модель. Только не начинай с рассказов о таинственных ножках и хитром методе «обратного распространения ошибки». Неужели не проще сказать «ребят, а давайте попробуем представить, что, например

    ОценкаПоЛитературе = A*СколькоЧасовВДеньУчусь + Б*СколькоЧасовВДеньИграю.

    Как вы думаете, у этой фантазии может быть смысл? Почему? Чему будут равны A и Б? Как догадались? А в общем случае как найти? Будет работать? А для других задач?»

    И копать вот отсюда. Без ножек, кружочков и всей этой романтики и магии, которая лишь усложняет и затуманивает суть.

  62. Peels:

    Мне бы очень хотелось бы понять, как сеть превращается в мат. модель?

    Сеть — это и есть математическая модель. Это всего лишь твое предположение, что алгоритм распознавания чего–то там можно выразить в виде s(Ax+b) при правильно подобранных параметрах А и Б.

    Как решают вопрос зациклинности при обратных связях?

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

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

    Есть ли системы, где связи создаются и уничтожаются?
    «Несуществующая связь» проще всего моделируется связью с весом 0. Самые вменяемые алгоритмы обучения нейросетей зачастую следят за тем, чтобы как можно больше связей имели бы маленький (желательно нулевой) вес. Поэтому можно сказать что да, «связи создаются и уничтожаются», хотя на практике это имеет смысл только когда система время от времени переучивается (что опять же, нечастый случай, обычно один раз выучил — и используй).

    А где система может сама создавать нейроны?
    Есть статистические модели, которые можно, при желании, рассматривать как «сети бесконечного размера», где при тренировке система сама «выбирает нужные нейроны». Но тут от формализма нейросети только вред (как и вообще почти везде — он мешает пониманию сути).

    А где нейроны могут сближаться или отталкиваться по принципу одновременного срабатывания и образовывать на этом принципе более тесные связи — ассоциации?

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

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

  63. HtroNx:

    Понятно.

    Ну только — еще раз сразу предупрежу — Peels правильно говорил о том что основная идея и принцип — он намного глубже чем нейроны с ножками — и в любом случае — есть потом будет желания понять «почему» оно все работает — нужно будет залезать в серьезные теоретические вещи по поводу машинного обучения.

    Но можно и попробовать нейросети и оставаясь в рамках прикладного подхода
    По этому — еще раз — выше давал ссылку на книжку Уоссермена
    А вот Осовский Нейронные сети для обработки информации
    Наглядно — на пальцах — и проще уже действительно некуда 🙂

    Сразу скажу — я сам с нейросетями знаком только как с одной из концепций машинного обучения — по этому не специалист по ним

    Мне бы очень хотелось бы понять, как сеть превращается в мат. модель? — об этом в самом начале книг подробно рассказывается.

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

    Что будет если нейрон наделить логикой и памятью?
    Есть ли системы, где связи создаются и уничтожаются?
    А где система может сама создавать нейроны?

    это 3 не корректных вопроса 🙂
    Если подробней познакомиться с концепцией нейросетей — они отпадут.

    А где нейроны могут сближаться или отталкиваться по принципу одновременного срабатывания и образовывать на этом принципе более тесные связи — ассоциации?

    Если я правильно понял вопрос — примерно да.
    это «сети/карты с самоорганизаций» называется — про них тож есть в книжках.

  64. HtroNx:

    И копать вот отсюда. Без ножек, кружочков и всей этой романтики и магии, которая лишь усложняет и затуманивает суть.

    А людям нужна романтика 🙂 «Нейронные сети» — это же гениальный бренд! SVM — да ну блин, скучно — машины какие то, а «нейросети» — это звучит 🙂

    Кружки и стралки — они конечно чуть затуманивают — за то и привлекают. Да и потом — это можно воспринимать нейросети как абстрактную модель — для удобства восприятия.
    Как программировать — можно и без всяких наворотов типа ООП — на ассемблере — но с наворотами веселее 🙂

  65. 905xela:

    Бионика. Вспомню еще генетические алгоритмы.

  66. Peels:

    Ну вот ты уже надеюсь понял что у меня нелюбовь к этому бренду и я поэтому яростно пытаюсь от него отговаривать. Детская травма, понимаете ли. Сам с Гайкина начинал потому что.

    Уж если приводить аналогии с уровнями восприятия аля ООП и ассемблер, то НС — это как раз тот еще ассемблер. Даже не ассемблер а brainfuck — сложно, непонятно, но зачаровывает и все вокруг говорят что оно Turing complete.

    Не начинайте изучать программирование на brainfuck!

  67. Peels:

    Кстати в отличие от НС, «генетические алгоритмы» — это не голый модный бренд. Как метод решения задач оптимизации они вполне просты, понятны, и поддаются анализу.

  68. 905xela:

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

  69. Ltseug:

    Только если Мариванна есть в банке данных сети.

  70. HtroNx:

    Бионика. Вспомню еще генетические алгоритмы.
    Вот кстати да — как раз из той же серии — «очарование искуственной жизни» 🙂

  71. Peels:

    Тогда еще Ant Colony Optimization не забываем!
    И ALife всякое, хоть оно уже и не по теме.

  72. HtroNx:

    Кстати в отличие от НС, «генетические алгоритмы» — это не голый модный бренд. Как метод решения задач оптимизации они вполне просты, понятны, и поддаются анализу.

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

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

    Ну вот ты уже надеюсь понял что у меня нелюбовь к этому бренду и я поэтому яростно пытаюсь от него отговаривать. Детская травма, понимаете ли. Сам с Гайкина начинал потому что.

    Да понятно 🙂 Видимо потому что я специально ни когда в нейросети не сильно не углублялся — такого негатива у меня нет.
    Да и хайкинская книжка — на мой вкус — очень даже ничего (если ее ни как учебник рассматривать конечно — а как справочник 🙂

    Уж если приводить аналогии с уровнями восприятия аля ООП и ассемблер, то НС — это как раз тот еще ассемблер. Даже не ассемблер а brainfuck — сложно, непонятно, но зачаровывает и все вокруг говорят что оно Turing complete.

    Тут ты уже совсем несправедливо перекритиковываешь 🙂
    Как раз — нейросети это что то вроде питона или руби — понятно, легко, а главное — наглядно.

    А вот если писать все в формальной математической нотации — то как раз вот это для большинства и будет brainfuck.

  73. HtroNx:

    Тогда еще Ant Colony Optimization не забываем!
    И ALife всякое, хоть оно уже и не по теме.

    о да 🙂 ALife — вот уж где брендинг в чистом виде :))

  74. Peels:

    Ну может у нас разное понимание термина «понятное». Например, в названии «генетический алгоритм» уже сокрыта полезная интуиция, объясняющая что к чему:

    «Почему алгоритм работает? Потому что он как естественный отбор» — это понятно.

    В случае с нейронными сетями ты изначально не понимаешь почему должна работать нейронная сеть, поэтому вот это совсем не то же самое, что выше:

    «Почему алгоритм работает? Потому что он как нейронная сеть».

    И я же не о нотации тут говорю, те же самые decision trees которые я упомянул уже ничуть не менее визуальны чем нейронные сети.
    И когда ты работаешь с ними, ты знаешь что нужно сделать, видишь результат, и можешь с ним осмысленно работать, понимая где что подкручивать. Многие другие алгоритмы вообще не требуют человеческого вмешательства — щелк и готово. Вот это аналог «питона». А нейронная сеть, сколько бы ты книжек про нее ни прочитал будет всегда довольно капризным беспринципным черным ящиком, который нужно конфигурировать, «тренировать», и прочим образом тыркаться наугад пока не повезет. Ничего легкого в них нет. А наглядность обманчива ибо она не дает тебе информации о том, что же на самом деле представляет из себя та или иная сеть.

  75. 4neg:

    Сеть — это и есть математическая модель.

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

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

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

    Нужен другой подход, вероятно? Нет там на горизонте ничего?)

    Поправьте, если я где то заблуждаюсь.

  76. Peels:

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

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

  77. HtroNx:

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

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

    Что значит «обманчива»? в любом случает — отражение структуры на какие то объекты (типа нейронов — с ножками) — легче себе представить чем «композицию сходящегося ряда полиномов» 🙂

    Например, в названии «генетический алгоритм» уже сокрыта полезная интуиция, объясняющая что к чему:
    «Почему алгоритм работает? Потому что он как естественный отбор» — это понятно.

    Так это мы просто называем одну одну непонятную вещь с помощью другой непонятной вещи. (а что б понять почему он действительно работает — тут уже нужно не про мутации и отборы говорить — а про стохастические методы оптимизации 🙂
    Это ведь точно так же как говорят «почему нейросеть работает — так это нейроны обучаются как у нас в мозгу» — тоже самое 🙂

  78. HtroNx:

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

    Ну здрасти 🙂 Не дезориентируй людей 😉 Конечно занимаются.
    Просто некоторые научные школы в области машинного обучения — нейросети не любят и не считают серьезными — это да.
    Ну так есть ученые которые вообще все область AI фигней считают 🙂 — и ничего — это не мешает 🙂

  79. Peels:

    В этой области нет каких–то там некоторых научных школ. Есть одно общепризнанное коммьюнити с основными конференциями NIPS и ICML.

    И если просто взять списки статей с последних из них, ты легко увидишь что никого я не дезориентирую. Если термин нейросеть и упоминается там раза три–четыре на тыщупицот статей, то и то в основном лишь ради красного словца.

  80. 4neg:

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

  81. HtroNx:

    Смотри :
    Я к тому, что математика не справляется (мой мозг и подавно), если мы сделаем сеть достаточно большой, если там будет много слоев, обратная связь, а в каждом нейроне еще, скажем память 5 предыдущих сигналов и логика реакции на это.

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

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

    Вот это я правда не совсем понял 🙂

    База данных или «квейк» — как правильно сказал Peels — это уже область применения математической логики/теории алгоритмов. В этой области как раз — все более менее понятно, научно обоснованно и много чего уже придумано/разработано.

  82. 4neg:

    А вот интересно, кто именно занимается, и можно ли о них узнать?
    В россии есть такие?

  83. HtroNx:

    В этой области нет каких–то там некоторых научных школ. Есть одно общепризнанное коммьюнити с основными конференциями NIPS и ICML.

    Да я не конкретно про тех кто занимается «статистической теорией машинного обучения» говорю — про машинно обучение вообще.
    У нейросетевиков свои конференции — ESANN, ICANN — свои журналы, свое сообщество — и там они как раз только о нейросетях и говорят 🙂

  84. HtroNx:

    А вот интересно, кто именно занимается, и можно ли о них узнать? В россии есть такие?
    Конечно есть — на сколько помню даже несколько российских конференций ежегодных проходят по нейросетям

  85. Peels:

    Так это не проблемы нейро сетей — это как проблема общей теории машинного обучения

    Ну здрасьте. Почему–то когда и использую тот же SVM или там дерево, или линейную модель — я даю алгоритму данные, щелкаю кнопочкой, и ура–готово. Можно радоваться или переживать качеству результата, но по крайней мере я знаю что получаю.

    С нейросетями я с какого–то фигу должен указывать какие–то нейроны, выбирать количество слоев, зачастую разбираться в абсолютно не относящихся к делу аспектах типа «насколько заранее остановить градиентный метод чтобы не ‘переучиться'», и заниматься прочей бессмысленной бредней ради того чтобы получить субоптимальное решение без каких–либо гарантий.

    не что не может описать что происходит в таких сложных структурах.

    Дык в том то и дело, что для машинного обучения не нужны «сложные и непонятные структуры». Все делается простыми и понятными методами на порядок лучше нежели непонятными нейросетями.

    это сейчас больше экспериментальная область

    Она уже пятьдесят лет эта экспериментальная область. ПЯТЬДЕСЯТ! И че толку?

    Что значит «обманчива»?

    Ну когда я рисую байесову сеть типа «Настроение < — Погода» я в этой картинке сразу вижу что погода влияет на настроение. Когда я рисую decision tree типа

    «Дома <–––плохая — (Погода) ––хорошая–––> Гулять»

    Я тоже сразу вижу что к чему.

    А вот визуализация нейронов — это самообман. Она ничего не скажет по существу о том, как работает сеть и почему. С тем же успехом можно смотреть и на саму формулу f(*) = s(As(Bx + c)+d), она визуально ничуть не сложнее.

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

  86. 4neg:

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

  87. Peels:

    Ну во–первых, ICANN по масштабу с NIPSом не сравнится (и вообще, туда шлют то, что не приняли на NIPS, приписывая слово Neural для пущей важности).

    Во–вторых, из публикуемых даже там статей едва ли половина затрагивает собственно тематику нейросетей, а из тех, что затрагивают, часть делает это из вежливости (а по сути работает все равно на другой модели), часть занимается вопросами когнитивного восприятия (spiking neurons и все такое, к этому посту отношения не имеет), а оставшаяся часть патриотов просто мусолит одни и те же давно решенные вопросы под разными соусами.

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

  88. HtroNx:

    Почему–то когда и использую тот же SVM или там дерево, или линейную модель — я даю алгоритму данные, щелкаю кнопочкой, и ура–готово.

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

    Дык в том то и дело, что для машинного обучения не нужны «сложные и непонятные структуры». Все делается простыми и понятными методами на порядок лучше нежели непонятными нейросетями.

    Ну — ненужны для простых случаев 🙂 А тот же самый вопрос с которого все началось — распознавание изображений с смещением поворотом преобразованиями и т.д. — уже ни какой линейный классификатор не способен. А НС вроде справляются 🙂

    Она уже пятьдесят лет эта экспериментальная область. ПЯТЬДЕСЯТ! И че толку?

    Ты очень не справедлив в своем гневе на НС :))
    Много чего интересного наработано — но конечно — не все еще понятно. Ну так — AI вообще область молодая.

    А вот визуализация нейронов — это самообман. Она ничего не скажет по существу о том, как работает сеть и почему. С тем же успехом можно смотреть и на саму формулу f(*) = s(As(Bx + c)+d), она визуально ничуть не сложнее.

    Ну — и да и нет 🙂 Сам вот этот вот процес композиции из однородных элементов — он в виде НС представлен все же более наглядно чем в виде формул.

    Про мутации и отборы я все же не согласен. Я могу на пальцах объяснить как работает естественный отбор и почему применение этой же логики сработает в компьютере.

    Ну дык — вот именно что «как» оно работает ты объяснишь.
    А вот «почему » оно работает — нет. Почему вообще именно такая последовательность действий приводит к оптимуму? а не какая ни будь другая? 🙂 Это уже совсем другой вопрос — и там уже нужно не про мутации с отбором говорить.

    Я ж не спорю — уровень абстрактности в самой концепции НС — высокий, и да –может быть скрывающий ты математическую концепцию которая за всем этим стоит.
    Но как практический (или экспериментальный) инструмент — НС — вполне нормальная вещь.
    (не обязательно помнить уравнения Максвелла что бы пользоваться электричеством 🙂

  89. HtroNx:

    Да просто ты ненавидишь нейросети и все что с ними связанно!!!11

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

    Ну да — но я еще раз повторю — зато в области НС нароботано много практического/эмпирического материала –который еще только нужно будет обработать в рамках теории машинного обучения. Да и не только в этой области кстати.

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

    То есть — просто так выбрасывать НС на помойку — ну ни как нельзя 🙂

  90. HtroNx:

    буду читать и вникать в тему.

    Вот это правильно! 🙂
    рад если что то смог подсказать. И вообще — отлично поговорили! 🙂

  91. Peels:

    и все — вперед — только кнопку нажимай.

    Ага, тока работать будет хреново. Там без тюнинга никак.

    уже ни какой линейный классификатор не способен. А НС вроде справляются 🙂

    Здрасьте, с каких пор и с какой стати это они «справляются». Пока ручками правильные фичеры не накрутишь никто там ни с чем не справится. Нет в НС никакой магии и сверхъестественных возможностей.

    Много чего интересного наработано

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

    Сам вот этот вот процес композиции из однородных элементов…

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

    А вот «почему» оно работает — нет.

    Да что ты прямо. Без проблем объясню и как, и почему. В отличие от принципов работы мозга там–то как раз все просто и интуитивно.

    как.. инструмент — НС — вполне нормальная вещь

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

  92. Peels:

    Ну почему сразу на помойку. Пусть в чулане полежат. Там самое место.

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

    Или вот пример. Возьмем синусный ряд Фурье. Он стотыщ лет уже как жив–здоров и все про него известно и понятно. Давай запишем первые 5 членов:
    f(*) = a1 sin(*) + a2 sin(2*) + a3 sin(3*) + a4 sin(4*) + a5 sin(5*).

    ВАУ, ДА ЭТО ЖЕ НЕЙРОННАЯ СЕТЬ ИЗ ОДНОГО СЛОЯ С СИНУСОИДНЫМИ НЕЙРОНАМИ!!! ДА У НЕЕ ЖЕ ЕСТЬ СВОЙСТВО УНИВЕРСАЛЬНОЙ АПРОКСИМАЦИИ ДЛЯ НЕЧЕТНЫХ ФУНКЦИЙ!!! О ЧУДО!! и пошло–поехало.

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

  93. HtroNx:

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

    Ну тут я в принципе согласен — только на счет понятности — вот тут не очень. На пальцах на много легче объяснить как работает НС чем допустим SVM.

    Ага, тока работать будет хреново. Там без тюнинга никак.

    Для определенного класса задач — нормально оно будет работать и без тюнинга 🙂 Ну правда — если бы оно не работало — никому бы оно точно не было интересно.

    Здрасьте, с каких пор и с какой стати это они «справляются». Пока ручками правильные фичеры не накрутишь никто там ни с чем не справится. Нет в НС никакой магии и сверхъестественных возможностей.

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

    Что ты с этими нейронами сделаешь? Ты имена им хотя бы дать можешь? Разбиение на части, при котором частям нельзя дать имен или как–либо вменяемо идентифицировать — бессмысленно.

    Я их группирую в слои — и уж этими слоями оперирую. И имена слоям естественно дают 🙂

    Да что ты прямо. Без проблем объясню и как, и почему. В отличие от принципов работы мозга там–то как раз все просто и интуитивно.

    «Выбираешь лучших, смешиваешь — и получаешь еще более лучших?» 🙂

  94. HtroNx:

    Вот например зачем относить карты Кохонена к нейросетям. Что это дает?

    Потому что Кохонен получил их именно как развитие нейросетей.
    Потому что они появились в этой парадигме и понятны в ней.

    ВАУ, ДА ЭТО ЖЕ НЕЙРОННАЯ СЕТЬ ИЗ ОДНОГО СЛОЯ С СИНУСОИДНЫМИ НЕЙРОНАМИ!!!

    ыы :)) Какой хороший злой пример.

    Но допустим — с простыми вещами — да. Но вот какие ни будь там динамические сети с обратными связями — уже так просто не разложишь даже математически.
    А уж как там все в них все происходит — наша любимая теория стат обучения даже близко не подобралась. А кружочки и стрелочки — хоть как то позволяют с ними работать 🙂

  95. Peels:

    На пальцах на много легче объяснить как работает НС чем допустим SVM.

    Если тебе так хочется смотреть, то SVM — это просто однослойная сеть с гауссовыми (или иногда еще какими–нибудь) нейронами. А линейная SVM — это просто один нейрон. Если тебя устраивает объяснение перцпетрона–как–нейросети, это должно тоже устроить, вроде бы. Но толку–то что, от такого «объяснения»?

    Ну правда — если бы оно не работало — никому бы оно точно не было интересно.

    А я не говорю что не будет работать. Говорю что запаришься тюнить. И даже если бы не работало, было бы интересно мозговедам.

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

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

    Я их группирую в слои — и уж этими слоями оперирую. И имена слоям естественно дают 🙂

    Входной, первый, второй, третий, выходной слой, да?

    «Выбираешь лучших, смешиваешь — и получаешь еще более лучших?»

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

  96. 905xela:

    В евристике все имеет право на жизнь, что лучше чем перебор. Это ведь только способ поиска решений.

  97. HtroNx:

    Если тебе так хочется смотреть, то SVM — это просто однослойная сеть с гауссовыми (или иногда еще какими–нибудь) нейронами.

    Не–не–не )) Как объяснить на пальцах SVM — без применения нейросетевых терминов?

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

    Ну здрасте. От тебя такое слышать вообще странно.
    Так в том и смысл — что пытается выковыривать сама, а не «ручками».
    Если делать «ручками» — какой тогда вообще смысл в машинном распознавании образов? Можно нанять 1000 индусов на аутсорсинг — они все ручками распознают :))

    Входной, первый, второй, третий, выходной слой, да?
    Ну да — причем отличаются они не только именами но и функциями которые выполняют.

    На каждом шагу мы добавляем к имеющейся популяции случайный набор слегка модифицированных особей. После этого убираем неудачных.

    Ну и — именно я об этом и говорил )) Стохастическая оптимизация, метод Монте–Карло и т.д. Зачем тут вся эта кунсткамера с «особями» «естественным отбором» «скрешиванием» и т.д.? Это точно такая же абстракция которая тебе не нравиться в нейросетях.

  98. Peels:

    Не–не–не )) Как объяснить на пальцах SVM — без применения нейросетевых терминов?

    Ну во–первых, чем тебе «нейросетевое» объяснение не нравится. Раз оно устраивает тебя для нейросетей, должно устроить и для остальных вещей (в смысле, что если я зарисую ее шариками, то ты же поймешь как будто). Но я согласен с тем, что «нейросетевое» объяснение ничего на самом деле не объясняет, ни для SVM ни для нейросетей.
    Есть много разных способов объяснить SVM. Линейная SVM это например обычная линейная модель, т.е. например ести ты хочешь по весу и росту предсказать пол, то твоя модель будет: «Если (рост умножить на х, плюс вес, умножить на у больше z) то мужик». Как веса и константы подбираются алгоритмом обывателю понимать не обязательно.

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

    Если делать «ручками» — какой тогда вообще смысл в машинном распознавании образов?

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

    Ну да — причем отличаются они не только именами но и функциями которые выполняют.

    «Функция первого слоя», «второго слоя», «третьего»? Это очень понятно!

    Зачем тут вся эта кунсткамера с «особями» «естественным отбором» «скрешиванием» и т.д.? Это точно такая же абстракция которая тебе не нравиться в нейросетях.

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

  99. Zansteps:

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

  100. Sbalr:

    я таки думаю что если не делать из НС или ГА некую универсальную кочергу, определённые задачи они могут решать с *удовлетворительным* качеством.

  101. Zansteps:

    Если им не отводить роль хрустального шара для предсказывания, то да, инструмент хороший.

  102. Sbalr:

    ты вроде сам себе противоречишь. таки бубен или хороший инструмент? :–)

  103. Zansteps:

    В смысле для предсказывания будущего это бубен (но там всё практически бубен, weak form of EMH пока не опровергли :)).

    А например для оптимизации (задача коммивояжера как вариант) порой можно хорошо использовать.

  104. Tokder:

    Как раз темой интересовался про фондовые рынки и генетические алгоритмы.
    Совсем–совсем не работает? Ни на каких периодах? Не подкинешь пару хороших статей по теме?

  105. Zansteps:

    Я больше нейросетями увлекался, из генетических алгоритмов одну или две статьи только читал, для общего развития.

    На компе у себя нашёл такое:
    «Is Technical Analysis in the Foreign Exchange Market Profitable? A Genetic Programming Approach.» Christopher Neely; Paul Weller; Rob Dittmar. The Journal of Financial and Quantitative Analysis, Vol. 32. Само по себе не шибко интересно, но довольно много ссылок, думаю можно начать копать в этом направление. Ну или хотя бы можно просто посмотреть названия журналов, кто подобное публикует и перебрать брутфорсом 🙂

    А про прогнозирование фондовых рынков 🙂 Есть у нас на факультете такой Грааль для молодых студентов. После 2–3 года, когда вроде основы финансов люди начинают понимать, а юношеский максимализм ещё не прошёл, многие загораются идеей найти способ предсказывать движение рынка в кратко–среднесрочной перспективе. Профессура посмеивается, но особо не мешает, так как это хороший стимул для студента получше изучить математику или статистику или программирование. Подходы разные, кому нелинейные эконометрические модели импонируют, кому теханализ, кому нейросети (как я). Конец, как правило, одинаков, проигравшись пару лет с новой игрушкой, студент начинает понимать, что не всё так радужно как хотелось и возвращается обратно в лоно классических финансов.

  106. Tokder:

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

  107. Peels:

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

    В принципе у меня есть один знакомый, утверждающий (точнее, не отрицающий) что четагдетакакто там у него получалось (точнее, что не неполучалось :). Однако в детали вдаваться от категорически отказывается.

    Но я повторюсь еще раз — нейросеть для предсказывания чего–либо — это обычно очень слабенький заход.

  108. Zansteps:

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

  109. Tokder:

    Скальпинг–боты точно работают. По крайне мере так утверждает мой приятель, работающий на довольно высокой позиции в Тройке, а сам я скальпингом не интересовался. Врет нибось. :):)

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

  110. 4neg:

    существуют ли модели НС, способные запомнить последовательность сигналов?
    Например, я играю для НС несколько простых мелодий, затем по первым трем нотам она может сыграть продолжение этой мелодии.

    Есть/нет? Намекните о чем почитать.
    Я так понял, все популярные модели нс на это не способны?

  111. YkBotanik:

    можно построить сеть из нескольких нейронов; каждый обучать на буквах с определенным смещением (одним подавать, скажем, близки к вертикальным, а другим — близкие к горизонтальным).

  112. Peels:

    Стандартный статистический подход к этому — авторегрессивная модель. По сути, модель, предсказывающая по К предыдущим нотам, L следующих. Ее можно без проблем реализовать и в виде нейронной сети, принцип тот же. Второй популярный подход — state–space модели, у которых помимо параметра «текущее значение в последовательности» есть и параметр «внутреннее состояние модели», который изменяется в процессе обработки последовательности. С ними сложнее, ибо они чаще всего нестабильны, особенно в режиме без обратной связи. Для стабилизации таких моделей используются всякие модификации.

    Для любителей магии и эзотерики могу посоветовать рекуррентную нейронную сеть а–ля LSTM или сеть Элмана. Они по сути являются вариациями на тему state–space, но вместо понятной теории там тупо соединены нейроны из выхода на вход с надеждой на то что «авось как–нибудь да сработает». Тренировать их сложно, результат нестабилен и ненадежен. Поэтому все, что может сделать рекуррентная сеть, на порядок лучше, чище и понятнее реализует какая–либо более простая и вменяемая авторегрессивная или, скажем state–space модель.

Добавить комментарий