buriy
0
Нужно переводить суть термина, а не заниматься пословным переводом.
Поэтому давайте для начала поймем, что ничего никуда в данном случае не «вкладывается» (т.е. это вам не вложенная в одну геометрическую фигуру другая геометрическая фигура). Если кто-то так и говорит, то это или профессиональный термин или жаргон. Причём, боюсь, скорее это жаргон переводчиков, а не термин математиков. В сфере CS данный термин не используется. Да и multitran не истина в последней инстанции, нормальной модерации там нет.
А что же происходит, если не «процесс вложения»?
Мы получаем векторное представление для наших именованных понятий.
Погружение? Мы тоже так по-русски не говорим.
В крайнем случае, можно использовать вариант «ищем (рас)положение векторов слов в (векторном) пространстве». Смысл действия именно такой.
Но, увы, «расположение» и «положение» — не термины, мы не можем их использовать без окружающих уточняющих слов в надежде на понимание. А «векторное представление» — это сложившийся термин в CS, хотя и использующееся в несколько ином значении («векторное представление полигона» — набор координат и/или векторов, использующийся для задания полигона в векторном пространстве).
Поэтому я считаю, что оба не правы. Сложившегося термина для данного понятия нет.
Но если выбрать термин, какой он будет?
Из пространства числовых идентификаторов объектов мы негеометрическим образом получаем координаты объектов в векторном пространстве.
Слово «вложение» имеет другой смысл и поэтому режет слух, т.к. ассоциируется с вложенным треугольником, т.е. геометрическими действиями внутри одного пространства.
Термин «представление» не до конца отражает суть явления, но внутреннего противоречия вроде бы не вызывает, т.к. используется для близких понятий — для результата негеометрического процесса отображения одного пространства в другое.
Если у кого-либо есть варианты лучше, то предлагайте. Почему понятия «проекция» и «отображение» тоже не очень хорошо подходят, теперь, думаю, понятно — во-первых, это снова термины, во-вторых, как термины, они подразумевают геометрические действия внутри метрических пространств, и как правило также уменьшение размерности, а не её увеличение.
Наше же «вложение» — по-факту скорее «векторное расширение»: приписывание векторных значений одномерным идентификаторам.
buriy
+1
И как cqrs предлагает справляться с проблемой консистентности изменений?
Как теперь делать создание нового пользователя и получение его id?
Как поиск его по имени пользователя? А если кто-то другой это имя пользователя в это же время зарегистрировал, как мы сможем это понять и не начать использовать чужую запись?
Как я понимаю, ваша описанная схема вообще не дружит с транзакциями.
Можно придумать обходные пути (двухфазный коммит, версионирование), но это уже усложнение, а не упрощение. Подобные усложнения приходится использовать для big data, но это вынужденная мера, а не преимущество подхода.
А вот если бы вы разрешили командам одновременно писать и получать данные, а запросам бы запретили писать — то уже стало бы удобнее этим пользоваться.
buriy
0
Вам самолёт или махолёт? Шашечки или ехать?
Да, это имитация, как и любая модель, но уже неплохая имитация, и я объяснил выше, почему так происходит.
И one-shot/few shot learning для нейросетей тоже есть, если надо — но ценой качества. Как и у человека, кстати.
А в го я не научусь хорошо играть, читая правила — а лишь только играть по правилам. Это два разных вида научения, и один — интуитивный — компьютеру намного проще повторить, он требует меньше логического интеллекта, которого у животных нет или почти нет, и у человека тоже мало — потому что логическому интеллекту нужно на порядки больше мозгов!
Но тут прогресс тоже есть, погуглите по «neural networks relation learning», на маленьких задачах с этим тоже справились не хуже человека, как видите. Принципиального барьера нет.
По собаку и изменение нескольких пикселей отвечу так: вы выбираете удобные для себя примеры, чтобы показать, как далеко нейросетям до людей. Но нет, нейросетям не настолько далеко до людей.
На «контрпримерах» из разноцветных пикселей я тоже вижу «банан» или «панду» — хоть и едва-едва, это значит, что нейросеть видит даже в чём-то *лучше* человека, да и визуальные глюки у людей бывают тоже, а действовать по словесной команде попробуйте научить кошку, у которой нейронов не меньше, чем у собаки. Да, кстати, попробуйте собаку научить играть в игру го по правилам.
Да, и, применяя вашу логику так же избирательно, как и вы: кошка и собака — это тоже плохая внешняя имитация результата, да?
Вы просто идеалист: вам подавай всё и сразу. Ну, удачи тогда, ждите, пока мощность вырастет, раз уж неплохо работающая имитация вам не нравится.
buriy
0
>— Да, только для задачи например перевода, они используются не все.
Ну хорошо, пусть десятая часть мозга. Это что-то меняет?
>— Эти оценки очень условные. Как раз потому что никто не знает, как оно работает на самом деле.
На таком оценочном уровне — знают.
>AlphaGo не умеет играть в шахматы.
А я вот умею играть в шахматы, но не умею играть в го. Но это показывает лишь то, что меня не тренировали играть в го.
Но и в случае человека и компьютера, это не принципиальная проблема, а вопрос качества и быстродействия.
Вот почитайте: https://research.googleblog.com/2017/06/multimodel-multi-task-machine-learning.html
>Нет ни одного устройства с аналогичными возможностями, пусть даже работающего медленно.
Да откуда берутся такие ваши смелые но расплывчатые заявления? RL вполне успешно работает на практике, квадракоптер я вам показывал, просто людям нужно непременно чтобы качественно и в real-time.
Какие именно «аналогичные возможности» вам нужно, которых нет?
buriy
0
>Зачем вы весь этот тред смешиваете процесс сбора данных с его анализом? Анализ — это высшая психическая деятельность, она задействует множество специализированных зон мозга и может растянуться на годы, а некоторые индивиды вообще ею редко пользуются.
А почему вы считаете, что анализ данных бывает лишь сознательный?
Например, то, что вы котёнка узнаёте как котёнка (и даже если вы не знаете, что это котёнок), разве не результат анализа окружающего мира?

>Тогда чего вы прицепились к этой модели Алексея? Сами говорите, что она ближе к мозгу и аналогична другим авторитетным моделям.
Сложный вопрос. У меня скорее пока претензии к unsupervised learning с помощью модели Алексея, но может, ему просто нужно опубликовать ещё статьи и дополнить или исправить то, что уже есть.
>Вообще непонятно, как можно советовать мне Нументу (кстати, спасибо, но я её знаю со времён её раннего появления) и хаять эту модель. Вы уж определились бы к какому лагерю принадлежите, одно другое исключает.
Увы, тут тоже всё небинарно.
У Numenta тоже модель работает, просто её итоговое качество оказывается достаточно низким на доступных вычислительных мощностях (по сравнению с нейросетями, скажем), и, опять же, на доступных мощностях, она не решает те проблемы, о возможности решения которых она с пафосом заявляет.
>Вы слишком зашорены классическими нейронными сетями.
Вот тут вы сильно неправы. Я, скорее, сфокусирован на качестве результата — и это, кстати, моя основная претензия к нейросетям, т.к. их качество всё ещё достаточно низкое для больших задач.
buriy
0
1) Слишком хорошо вы про человека отзываетесь.
2) Способна нейросеть на обучение с однократным предъявлением. Просто тогда итоговое качество хуже, чем от миллиарда подкручиваний — как и у человека, кстати. Если новое запоминается слишком сильно, то старое забывается или искажается. Помните анекдот про «Темно, как у негра где?».
3) Вы сравниваете нейросеть и человека. А лучше сравнивать программу, включающую нейросети, и человека. Нейросеть — лишь часть решения, как и у человека нейроны коры — лишь часть мозга и человека. Уж программу, умеющую запоминать с одного предъявления, несложно написать, правда?
buriy
0
Алексей, пишите посты, описывайте на видео.
При понятном описании, повторить рабочую схему, сравнить её с другими решениями или убедиться в её неработоспособности и найти ошибки — достаточно быстрое дело.
buriy
0
>>на железе в миллион раз более слабом, чем мозг человека.
>А почему мы еще не сделали аналог, который будет так же быстро работать? >Может потому что мы еще не знаем, как он работает? Железо работает на частотах в гигагерцы, а биологические клетки на уровне сотни герц.
Только, по оценкам, биологических нейронов у человека 10^11 и памяти между ними 10^14 бит, а процессоров в видеокарте тысяча, хоть и в 10^5 раз более быстрых, и памяти на видеокарте 10^10 бит. В лучшем случае получите разницу в 1000-10000 раз по мощности. У нас нет времени ждать годы для их обучения, поэтому компьютеры обучают за дни — вот вам ещё фактор в 100х.
Итого, по очень грубой прикидке: домашний компьютер без видюшки или смартфон — в миллион раз медленнее мозга, с видюшкой — в 100 тыс раз, серверная ферма — в 1000 раз.
Осознали теперь масштабы?
Вы старые посты Алексея читали? Он там даже свою оценку мощности мозга предлагает — в 10^16.
Специализированные чипы тоже пытаются делать, но на видюшки уже спрос есть, а для специализированных чипов стоит проблема курицы и яйца: когда нет софта и нет железа, нужно одновременно делать и то и другое и чтобы они друг к другу подходило — а это гораздо дольше. (И внвестиции в такие длительные проекты труднее найти)
buriy
+1
Да всё у нас правильно с теориями.
Но вы забываете про главное: нейросети всё ещё в миллион раз меньше человеческого мозга по вычислительной мощности на единицу времени.
На маленьких задачах (по затратам выч. мощности) и при достаточности тренировочных данных нейросети уже обгоняют среднего, а иногда даже лучшего человека. Примеры таких задач приводить или сами знаете?
Чтение по губам, распознавание звуков и речи с ограниченным словарём, распознавание рукописных цифр и букв, распознавание дорожных знаков и иероглифов. Внутри Gboard и Swiftkey — нейросети.
Вот недавно распознавание позиции на доске 19х19 пикселей лучше лучшего человека научилась делать (это я про AlphaGo).

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

> Кошка распознает объекты и действует в соответствии с результатом.
Нейросети тоже. Есть робомашины, есть baxter, вот вам даже квадракоптер: https://geektimes.ru/post/289105/
Просто поймите: от кота надёжности никто не требует, а к роботу предъявляются повышенные требования. Робомашина не может водить на уровне среднего человека: чтобы её выпустили на дорогу, она должна водить хотя бы на уровне профессионального водителя. А робопылесос не должен бояться проходящих людей и обнюхивать другие пылесосы, или внезапно отказываться работать и убегать.
>Причем двухмесячный котенок справляется с этим лучше, чем любая существющая нейросеть.
Это не так. В очередной раз вы приукрашиваете действительность.
buriy
0
>>Понимаете, нету у человека локализации анализа в каком-то определённом месте мозга.
>Есть. Неважно как это назвать, важно то, что на некотором уровне появляется осознание отдельных объектов (сущностей), их поведения, и оценка времени и акуальности («горит сейчас / горел до этого»). В сетчатке вы такой обработки не найдете, и сеть, построенная только на этих принципах, способности естественного интеллекта проявлять не будет. Что в общем-то и заметно по текущей ситуации в этой области.
В процессоре вы тоже не найдёте места, в котором появляется осознание отдельных объектов, значит ли это, что на процессорах не реализовать компьютерное сознание в принципе?

>>я HTM CLA тоже делал и визуализировал, bloom filter и sparse encoding использовал в реальных задачах
>У вас есть искусственный интеллект, который можно использовать как аналог естественного в реальных задачах? Или хотя бы теория, как его сделать? Или хотя бы теория, как работает естественный интеллект и почему именно так?
Нет. Да. Да.
У нас уже есть различные куски искусственного интеллекта, но не всё в целом — в основном, отстаёт работа с текстом.
>Это не аргумент «сперва добейся», это напоминание, что нейросети, которые вы делали и использовали, пока способностей естественного интеллекта не проявляют. Поэтому неважно, сколько у вас них опыта. Раз они не работают, значит нужны другие подходы.
Всё сложнее. У кошки есть нейроны, но говорить по-человечески она не умеет. Значит ли это, что у неё вообще нет интеллекта?
Можно ли прийти к интеллекту, решая постепенно разные подзадачи и объединяя их в цельную систему, или же нужно обязательно всю систему строить разом и на основе единой вычислительной платформы?

>>В плане реализации чего-либо — я бы поостерёгся опираться на подобную непроверенную технологию
>Как можно проверить технологию, не создавая реализацию? Даже наоборот, аргумент «работает же» гораздо лучше всяких теоретических доказательств. Если работает, конечно.
Можно проверить, смоделировав в голове, или построив упрощённую или аналогичную модель. Но так можно и ошибиться.

>>Да уже много книг и статей написано, я на некоторые даже ссылался.
>Только воз и ныне там. Эти нейросети нельзя использовать вместо естественного интеллекта.
Ни в одной задаче нельзя, или в некоторых задачах всё-таки можно?
buriy
0
>Это адаптирование к входным данным Можете назвать это анализом, только это анализ на уровне понятий клетки.
Понимаете, нету у человека локализации анализа в каком-то определённом месте мозга. В ваше определение «анализа» или попали бы и нейроны глаза, или не попала бы большая часть нейронов мозга.
Может, просто неудачный термин для того, что вы хотели описать…
>У вас претензии вида «а вот у меня в нейросети не работало, значит и у вас не будет работать»
Я не только в нейросети такое делал, я HTM CLA тоже делал и визуализировал: смотрел, что учат нейроны, как происходит обучение, как самонастраиваются перцептивные поля, и как два слоя друг с другом взаимодействуют.
И, понимаете, верхнеуровневая логика и проблематика от нейросетей вообще не отличается, хотя детали, конечно, немного отличаются.
А ещё я bloom filter и sparse encoding использовал в реальных задачах — наверное, я и в этом что-то понимаю теперь?
>и «а сделайте вот этот пример, в котором даже человеку непонятно, какая следующая цифра»
Ну придумайте любой другой тест на стабильность-пластичность, если этот вам некомфортен. Последовательности есть у Алексея в этой статье, поэтому я и предложил тест на последовательности.
>Но подход у меня был не математический, а практический — продумать весь путь обработки информации на уровне реакции отдельных нейронов.
Так понимаете, не зря говорят «great minds thinks alike» — когда вы пытаетесь построить архитектуру, вариантов не так много, и все люди приходят примерно к одним и тем же идеям. Только кто-то их потом скрупулёзно исследует и вычисляет их применимость на реальных задачах, а кто-то лишь строит «свою уникальную модель», и умышленно или неумышленно скрывает недостатки.
В плане идей — да, почитать статьи Алексея, переосмыслить другие знания — вполне можно. В плане реализации чего-либо — я бы поостерёгся опираться на подобную непроверенную технологию.
>Если у вас есть другое логичное объяснение, напишите статью, это будет полезнее, чем придирки в комментариях
Да уже много книг и статей написано, я на некоторые даже ссылался.
>Здесь описывается другой подход, который может и похож на существущие, но в нем дается объяснение, почему они работают.
Тут скорее что-то типа «автор так круто рассказывает, я многое переосмыслил в своей голове, пусть он даже считает, что 2+2*2=137». Можно к этому по-разному относиться, я отношусь одним образом, вы — другим.
buriy
0
У вас модель supervised или unsupervised?
Если supervised — то это аналог обычной нейросети с backpropagation. Да, известно, что оно работает, есть лишь один недостаток: требует supervision, а это очень сильно ограничивает круг решаемых задач, например, в синтактическо-семантическом анализе языка всё по-прежнему плохо, т.к. нет больших качественных датасетов.
Но это непохоже на человеческий мозг, которому посвящена большая часть статей Алексея. Т.е., получается, Алексей развивает не одну модель, а несколько разных — может, потом он их и объединит, но сейчас это непонятный микс из нескольких моделей.
Если unsupervised — то есть HTM CLA, и есть spiking neural networks. Такие модели в целом ближе к мозгу. Они тоже это всё отлично реализуют, и не сильно отличаются от модели Алексея — ведь у всех общий объект для моделирования. Но они относительно медленные — потому как более сложные для моделирования. Аналог в мире нейросетей — autoencoders, реализации разные, но обычно они быстрые и могут обработать много данных. Вот например: https://blog.keras.io/building-autoencoders-in-keras.html
И у unsupervised-моделей есть один недостаток: подобные модели склонны к выучиванию того, что интересно им, а не экспериментатору. Когда это экспериментатора устраивает, и датасета для supervised learning нет, ими вполне себе пользуются. Качество обычно хуже supervised, в том числе и из-за той проблемы, о которой я говорил выше: подобные модели склонны путать корреляцию и реально присутствующую закономерность. У однослойных спайковых сетей есть для защиты порог отсечения, который можно легко настроить под задачу. У многослойных спайковых сетей с этим труднее — и отсюда возможны различные проблемы, связанные с качеством генерализации (https://ru.wikipedia.org/wiki/Обобщение_понятий) и с возможным накоплением ошибок (из-за отсутствия/недостатка целевой обратной связи).
Так что посмотрим, как Алексей справится с перечисленными проблемами.

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

>Так что, по крайней мере, меня, buriy, не надо приписывать к девушкам с обманутыми надеждами, я уже получил от статей Алексея пользу.
1) Я думаю, вы бы получили ещё больше пользы, если бы почитали статьи по тем же нейросетям и вообще по ML.
2) Вы вполне могли от Алексея получить не только пользу, но и какие-то заблуждения ( заметьте, та же проблема, что и с unsupervised learning :D ), в то время, как в других источниках информация «чище», потому что она подкреплена практическими измерениями.
Например, очень рекомендую книжку http://neuralnetworksanddeeplearning.com по нейросетям,
HTM CLA — про модель от Numenta (есть русский перевод: https://numenta.com/assets/pdf/whitepapers/hierarchical-temporal-memory-cortical-learning-algorithm-0.2.1-ru.pdf ).
И в википедии:
https://en.wikipedia.org/wiki/Spiking_neural_network
https://en.wikipedia.org/wiki/Autoencoder
https://en.wikipedia.org/wiki/Machine_learning
buriy
0
Но в статье описан механизм удаления кластеров.

Да, есть такое описание, один в один повторяющее механизм temporal layer из модели HTM CLA. Но, вы, может быть, не обратили внимание, что в некоторой части данной статьи описано обучение с учителем, supervised learning, а не unsupervised learning, который должен делать человеческий мозг в соответствующих областях. Это ключевой момент. Уверения автора о сходимости в данной статье распространяются именно на supervised learning. А я как раз и утверждаю, что при unsupervised learning подобная модель вполне может накапливать ошибки со временем, и в режиме supervised learning у человека она работать не может — это противоречит наблюдаемым данным о строении мозга.

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

Применяя вашу логику, если некоторое существо (животное, компьютер или ребёнок) не знает, что камень перед ним красный, зелёный или круглый (не имеет соответствующего понятия), то он его не может видеть. Видите логическую ошибку? Так что, пожалуйста, дайте определение понятия «анализируется», которое вы применяете, и мы разберём, что именно анализируется нейроном, который вы, верные своей привычке к манипулированию, внезапно подменили на on- и off- клетки и две секунды, вероятно, надеясь оказаться неправым лишь частично, но даже тут оказались полностью не правы (т.к. ганглионарные клетки преимущественно адаптируются к быстрому изменению освещённости, а биполярные к медленному, о чём в википедии явно не написано, но упомянуто в книге по ссылке ниже — а что это, как не анализ ситуации, происходящий одновременно с запоминанием результатов этого анализа — и, кстати, «границы линий» в основном определяются в зоне мозга V1, а ганглионарные и биполярные нервные клетки — располагаются в сетчатке глаз).
Хоть бы википедию почитали, прежде чем аргументированно спорить, вот вам русские статьи, их вполне достаточно:
https://ru.wikipedia.org/wiki/Ганглионарная_клетка
https://ru.wikipedia.org/wiki/Биполярные_клетки_сетчатки
https://ru.wikipedia.org/wiki/Зрительная_кора
А вот момент, который пришлось поискать в книжке: https://books.google.ru/books?id=CepVYuTHYmIC&pg=PA55&lpg=PA55&dq=биполярные+клетки+адаптация+к+освещенности&source=bl&ots=UJHi08UPnG&sig=IRp0tJ9vTraNTQchrtQf5avVwIQ&hl=en&sa=X&redir_esc=y#v=onepage&q=%D0%B1%D0%B8%D0%BF%D0%BE%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5%20%D0%BA%D0%BB%D0%B5%D1%82%D0%BA%D0%B8%20%D0%B0%D0%B4%D0%B0%D0%BF%D1%82%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BA%20%D0%BE%D1%81%D0%B2%D0%B5%D1%89%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8&f=false
Вот примерно такого же уровня у меня и претензии к постам Алексея: на взгляд «неспециалистов» всё стройно и логично, как в учебнике, а копнёшь глубже — и видно, что местами (подчёркиваю, местами!) выдаётся желаемое за действительное.
Я даже объясняю, почему это происходит — потому что теория не равна практике, и предлагаю примеры, чтобы в этом убедиться. Вероятно, часть материала у Алексея пока отработана лишь теоретически на основе переосмысления чужих моделей и данных нейронаук. Но, пока вы не попробуете описанное в литературе реализовать тем или иным образом, вы и не заметите ошибок и нестыковок.
buriy
0
Они со временем исчезают

В вашей бездоказательной теории?
Или может вы хотите сказать, что информация «2 секунды назад горел желтый светофор» анализируется на уровне ON-OFF клеток.

А вы расшифруйте понятие «анализируется» для начала.
buriy
0
Насколько я понял из статьи, то да, в этом компоненте на выходе будут воспоминания и желтого и красного светофора. Но не в виде сигнала активности, а в виде запомненных кодов. И входной сигнал будет сверяться с этими кодами. И уже потом один из кодов будет давать активный сигнал.

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

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

Вы упростили до уровня неправды. На самом деле, на каждом нейроне информация и запоминается, и анализируется, и неправильно было бы думать иначе.
buriy
0
простую задачу с предсказанием следующей цифры в случайным образом динамически меняемой последовательности (123123123321321321241241241442442442… ) и попробуйте реализовать её в вашей системе


Губа не дура. Пойдёте с ней казино банкротить?

Ваша ирония здесь неуместна. И человек на уровне неокортекса, и нейросетевые алгоритмы умеют данную задачу с некоторой точностью решать. Понятно, что 100% точности никогда не будет. Но эта точность — это один из множества способов измерить стабильность и пластичность модели. Алексей критиковал некоторое время назад в другой статье нейросети за (якобы) низкое значение этого параметра, так почему бы не проверить его модель? Данную проверку можно реализовать за пару часов.
buriy
0
>Это уже аналитика, это более сложная модель, чем описана в статье.
Ну, тогда вопрос в том, включает ли «более сложная модель» описанный в этой статье компонент, или она совсем другая. Мне казалось, что первый вариант, иначе зачем тогда эта статья в этом цикле.
> На первых уровнях обработки информации вообще ничего не запоминается, происходит просто преобразование, результаты которого передаются дальше.
То есть, запоминание параметров преобразования — это не память, по вашему? И если неправильные параметры преобразования запомнятся — это, по вашему, не будет проблемой?
buriy
0
Нет, я считаю, что я говорю об этом не зря. Не знаю, что вы собираетесь рассказать в будущем, но описанный на данный момент кусок текущей модели не будет на сложных реальных задачах работать так, как декларируется, а, из-за выбранного вами стиля повествования, другие люди будут воспринимать данную серию статей как обучающие материалы (что предполагает работоспособность описываемой модели).
Ну да ладно, не буду больше комментировать неочевидные вещи.
buriy
0
Вы хотели сказать, откуда у Алексея возьмётся на выходе код жёлтого — модель-то не моя.
1) Я утверждаю, что в достаточно сложной модели (из нескольких зон коры) он точно появится со временем — ведь ассоциации в текущей модели никогда не ослабевают.
И может даже появиться в модели одной зоны коры — если неправильно настроены параметры, или, например, если иногда светофор горит и жёлтым и красным, а иногда только жёлтым или только красным, и вы его видите с разного расстояния, в разных координатах и при наличии шума (чтобы нельзя было отмахнуться от проблемы с помощью выучивания локальных корреляций, обосновывая, что нейроны для красного все рядом, нейроны для жёлтого далеко от них). После этого от неправильной ассоциации в текущей модели будет невозможно избавиться, не забыв одновременно другую полезную информацию. Я это моделировал несколько лет назад. Там даже вводился дополнительный коэффициент переучивания, но он сам по себе не помогал. И, по моему мнению, RL у человека для этого не применяется, а используется система хранения и обновления воспоминаний и таламические ядра для адаптации и построения визуальных гипотез.
2) «Это модель сенсорного восприятия» — т.е. правильно ли я вас понял, что вы считаете, что модель Алексея можно применять только для зоны коры человека V1, но уже не для V2 — ведь в V2 уже нет сенсорной информации? А вот у человека неокортекс устроен одинаково и в V1 и в V2, и в V4. И Алексей утверждает, что он строит не абстрактную модель сенсорного восприятия, а модель человеческого мозга — поэтому сравнивать то, что получилось на выходе, имеет смысл, и имеет смысл объединять модели разных зон коры вместе, и видеть, как вроде бы стройная модель одной зоны коры внезапно перестаёт работать на практике.
Наверное, Алексею пока мои выводы подтверждать или опровергать не интересно. Но если я прав, то тогда он вселяет в вас бездоказательную веру в модель, которая не работает на практике.
buriy
–1
Действительно, наверное, мне не стоит развеивать заблуждения, которые подхватывают потом другие люди.
buriy
0
Пока с вашей стороны следуют весьма голословные и общие заявления, и уже год от вас нет какой-либо приличной попытки ответа на мой вопрос.
Не забудьте показать, как RL (=reinforcement learning — я вижу, вы мне уже зачем-то начали пытаться рассказывать, что это такое) вам поможет с задачей переучивания. Это, как я вижу, основная претензия к текущей модели — её принципиальная неспособность избавляться от неправильных ассоциаций и ложных закономерностей, при этом не забывая истинные закономерности. См. выше примеры задач, где вы могли бы проиллюстрировать, как на самом деле работает в вашей системе нейропластичность, и насколько она в ней работает.
Обратите внимание на очень простую задачу с предсказанием следующей цифры в случайным образом динамически меняемой последовательности (123123123321321321241241241442442442… ) и попробуйте реализовать её в вашей системе.
buriy
0
Вы попробуйте смоделировать ситуацию с запоминанием, переучиванием и забыванием в динамике.
Причём так, чтобы параметры системы (забывание) не менять на ходу.
Предлагаю вам сделать пост, который посвятить именно формированию проверочных датасетов, которые позволят ответить на вопрос области применимости или неприменимости вашей системы в конкретных ситуациях.
Потому что пока вы ориентируетесь на один способ применения, вы имеете возможность выставить параметры (время забывания, время срабатывания) так, как нужно для конкретной задачи — иногда даже меняя их в тысячи раз, но эта модель не соответствует мозгу, где эти параметры не имеют такого огромного диапазона для изменения. (Кажется, я намекал на это ещё два года назад.)

Например, ваша текущая система, описанная в этом посте, ограничена свойствами autoencoder-ов — фиксирования и некоторого обобщения действительности (в статике и динамике). Обеспечение одновременно забывания и долговременной памяти для неё — не реализуемо без отдельной подсистемы памяти и подсистемы внимания, и отдельных сложных правил взаимодействия с подсистемой памяти и внимания.

Можете взять примеры тестов для HTM и нейронных сетей, например:
* статический mnist — угадывание текущей цифры, запоминание и выдача следующей цифры
* динамический mnist — угадывание цифры по попиксельной или построчной информации о ней — т.е. сначала нейромодулю даются пиксели первой строчка цифры, потом вторые, итд. ( есть такая работа для сравнения: http://www.gitxiv.com/posts/7j5JXvP3kn5Jf8Waj/irnn-experiment-with-pixel-by-pixel-sequential-mnist#! )
* moving mnist — http://www.cs.toronto.edu/~nitish/unsupervised_video/ — предсказание следующего кадра видео для движущихся цифр из mnist, и просто угадывание текущей цифры по движущейся картинке (я как раз тестировал HTM на таком тесте и результаты на единицу вычислительной мощности были весьма скромными, а наилучшие результаты были намного хуже нейросетей).
* запоминание и предсказание следующей цифры в случайной, но повторяющейся последовательности цифр (скажем, 123123123...), потом смена последовательности (12312321321321) и автоматически нейросеть должна теперь предсказывать цифры новой последовательности, не выдавая цифры старой последовательности.
* для игр посложнее, можете взять задачи с площадки openai, например, обогнав state-of-the-art и набрав миллион очков в pacman-е и сравнившись с комбинированным code+RL решением от maaluba:
https://www.wired.com/story/mircosoft-ai-ms-pac-man/ :)

Потому что не забывайте про весьма опасное для научных исследований когнитивное заблуждение, которое называется «поиск только позитивных результатов»: ( https://wiki.lesswrong.com/wiki/Positive_bias, https://en.wikipedia.org/wiki/Confirmation_bias, https://ru.wikipedia.org/wiki/Склонность_к_подтверждению_своей_точки_зрения, https://ru.wikipedia.org/wiki/Принятие_желаемого_за_действительное )
Информация о том, где система не работает (и почему), зачастую несёт намного больше пользы, чем информация о реальных способах применения, хотя, конечно, важно и то, и другое.
buriy
0
>В модели нет проблем с одновременной выдачей множества результатов. Это же разряженный битовый массив.
Например, пусть поменялась ситуация: цвет светофора, за которым система следит, сменился с желтого на красный. Тогда выдача системой и старого результата, и нового, в виде logical OR — т.е., и кода для «желтого», и кода для «красного» — не имеет смысла.
Понимаете теперь, в чём сложность? Нужно старый результат забыть, потому что он теперь неправильный, а не выдавать одновременно все возможные результаты «потому, что можем».
buriy
0
>И я правильно понимаю, что эта модель способна обучаться новому без потери предыдущего опыта (так как, собственно, перезаписи в ней нет, а есть только уточнение, очистка от шума)?
В некоторых искусственных ситуациях — да. Но на практике опыт часто бывает противоречив. Если новый опыт будет противоречить старому, то как модель сможет выдавать оба разных противоречащих друг другу предсказания одновременно?
buriy
0
Репозиторий — https://github.com/mjibson/go-dsp
buriy
+1
Устранить все ошибки невозможно не потому, что нейросеть чёрный ящик, а потому что
а) язык противоречив и неоднозначен.
б) нейросети хорошо обучаются только до этого уровня шума неоднозначности, но не ниже.
в) у нас нет большой базы данных, снимающей все неоднозначности
Нейросети вполне можно отлаживать или сконвертировать в другой формат, но я посмотрю, как вы на действительно большой задаче будете потом редактировать вывод нейросети и сколько времени это у вас займёт.
В русском языке много неоднозначностей и в морфологии, и в синтаксисе, и в семантике.
buriy
0
Вы в этой статье реализовали обучение с учителем (задаёте «правильный ответ» для вашего вычислительного модуля), в то же время сами утверждаете, что кора реализует обучение без учителя (по сути, представляя из себя много автоенкодеров).
Так какой вариант верный?
Вариант с автоенкодерами чреват гипервозбуждением участков коры и эпилепсией, вариант обучения с учителем — тривиальный и никак не решает проблему одновременно высокой стабильности-пластичности (у вас получилась высокая стабильность, но низкая пластичность).
Вообще, так получается, что ограничение соединений между частями мозга нужно в основном именно для защиты от перевозбуждения и для изоляции взаимодействия сигналов от разных органов чувств, иначе (в самом мягком случае) возникает синестезия, которая скорее вредит, чем помогает.
Вот как раз именно на этот вопрос вы пока неудовлетворительно отвечаете: почему в мозгу информация не перепутывается в кашу? В вашей модели эта возможность присутствует — подхватили автоенкодеры неправильную ассоциацию, как им потом от неё избавиться?
А как механизм обучения с учителем спасается от этого, мы и так знаем (шаг в сторону, и учитель по руке палкой бьёт).
buriy
0
Да пожалуйста, гуглите по слову «форманты». Скажем, image
В 60е-70е годы так распознавание речи и работало… ;) Впрочем, для некоторых языков даже хватало.
buriy
0
>Я говорю о том, что к вопросу надо подходить фундаментально — это позволит потом быстрее и дешевле
Это в вас говорит профессиональная деформация.
«Фундаментально» — это как? Знать всё про ассемблер и коды машинных команд, смотреть вывод компилятора в бинарном коде, знать формат IP-пакетов и ISO иерархию TCP-стека? Много лет изучать теорию, не решая практические задачи? Решать задачу каждый раз самому вместо использования чужих решений? Придумывать вместо однократного решения задачи общий алгоритм решения произвольной похожей задачи? Или как-то ещё?
И всё это для чего? Чтобы научиться идеально решать эту задачу и похожие?
Проблема лишь в том, что фундаментальность — антоним практичности. Вы предлагаете годы страдать, чтобы потом за 5 минут прилететь. А в чём выгода такой стратегии на практике для предпринимателя? У него задачи каждый раз разные. Для наёмного работника — да, есть выгода в том, что вы будете уметь много раз для каждого клиента решать одну и ту же задачу (или похожие). А в бизнесе нужно решение сейчас, когда ещё нет конкурентов, а не через годы, когда это будут уметь делать все за 5 минут.
Не поймите неправильно, специалисты тоже нужны, я лишь говорю, что в некоторых ситуациях подход генералиста лучше — и это именно принципиально другой подход, вынужденно вызванный разнообразием и шириной решаемых проблем, и именно генералист предпочтёт использовать готовый рецепт при возможности.
Просто не считайте, что при этом генералисты чем-то хуже специалистов — да, у них может и нет фундаментального подхода и глубины знаний VK API, но если они при меньшем опыте работы справятся с конкретной задачей быстрее вас — то может такая стратегия тоже имеет смысл?
buriy
0
Я с вами крайне несогласен. И аналогию вы мою про кафе и поваров проигнорировали зря. И вряд ли приведёте мне ссылки на какие-либо исследования, обосновывающие вашу позицию — ведь это ваши умозрительные умозаключения о связи наличия рецептов решения задач и уровне программистов. Я считаю, что наборы рецептов (cookbook-и) — полезны, что изучение чужого кода улучшает инженерные навыки, и, кстати, рецепты часто размещаются в той же документации.
И вообще, инженерия — это навык решать практические задачи наиболее подходящими методами, в том числе, используя имеющиеся куски кода и компоненты, если так лучше для конкретной задачи, а не навык делать всегда всё с нуля, к которому вы пытаетесь всё свести. Следующим шагом вы скажете, «а чего пользоваться API вконтакте», или что «почему-то нет API для моего ЯП, буду сам гонять HTTP запросы», потом и до ассемблера дойдёте, а потом вообще пойдёте проектировать свой компьютер. Где граница между «коробочным» мышлением и «правильным»?
У нас в стране и так слишком много инженеров-формалистов, презирающих всех, кто делает что-либо не по правилам, придуманными этими формалистами, и слишком мало инженеров-предпринимателей.
А среди предпринимателей приоритеты стоят наоборот: время и стоимость решения проблемы имеет значение, а опыт, получаемый подрядчиком от изучения документации и его экспериментов с API, или гармония цветов проводов соединений за передней панелью — не имеет какого-либо существенного значения.
buriy
0
А давайте не будет кафе и ресторанов, и еду готовить нужно будет каждому самому для себя. И зачем вообще кому-то нужны кафе и рестораны? Если им будут готовить еду другие люди, то люди, которые вырастают с кафе и ресторанами, уже не станут сами поварами!
:)
В общем, имхо, всё хорошо в меру.
Гуглить можно и так, и эдак — и документацию, и конкретный рецепт для конкретного случая. И в обоих случаях что-то найдётся полезное. Разве это не замечательно?
buriy
–1
>Никакие вероятности за эти 5 минут не изменились.
Прям уж никакие? Посмотрите сами на график, разве у него нулевая плотность в какой-либо точке?
https://ru.wikipedia.org/wiki/Распределение_Пуассона
Да, если мы выкинули решку, то вероятность в следующий раз выпадения орла та же. Но вероятность выпадения орла за эти два раза — больше вероятности выпадения орла за один раз.
buriy
0
Посмотрите с другой стороны: Допустим к вам пришло 2 покупателя, а у вас всего одна корова…
Распределение Пуассона не означает всюду нулевую плотность вероятности, просто вместо «1 клиент придёт в течение 10 минут» у нас есть «1 клиент придёт в течение 10 минут с вероятностью 95%», «два клиента за 10 минут с вероятностью 50%» и мы можем на эти проценты уже делать ставки.
Я ещё не добрался до выч. моделирования, поэтому могу только рассуждать устно и приблизительно.
buriy
0
А может ли быть оптимальное сочетание коров быть «1 на складе + 1 в процессе доставки»? Тогда вы будете говорить, что дозаказывать нужно в момент предпоследней продажи? Может ли быть заказ в момент предпоследней продажи плюс K*T часов выгоднее?
buriy
0
А что автор говорит по поводу непрерывности этой величины? Подтверждает? Я быстро просматривал, но нигде не нашёл.
Если непрерывно, то тогда формулы будут другими и крайним мой рассмотренный случай скорее всего не будет.
buriy
0
Ок. В выходные, если будет время, сделаю формулы и вычисления для крайних случаев.
Давайте ещё тогда пройдёмся по условиям задачи.
Время за простой коровы — оно считается по факту наличия коровы на начало каждого конкретного часа или за фактическое время её нахождения в стойле до момента продажи? (дискретное или вещественное?) Я считал дискретным, ибо сказано «проедает корма на u рублей за единицу времени».
buriy
0
>А дозаказ по расписанию приводит к тому, что если клиентов мало то вы терпите убытки из-за содержания, а если много то терпите убытки из-за недостачи.
То же самое рассуждение применимо и к дозаказу в момент покупки.
Но я всё же говорил про крайние случаи, когда оптимальное количество товаров на складе — единица.
Если у нас случай, когда много заказов и много покупок — то
а) нет существенного колебаний количества клиентов
б) выгоды от дозаказа только в момент начала очередного часа от дозаказа в момент покупки я не вижу никакой.
Возможно, я неудачно выразился, под дозаказом по расписанию я имел в виду дозаказ в определённые моменты времени, но не фиксированный по количеству.
buriy
0
Нет, я тоже имел в виду пуассонов процесс, при нём вполне можно посчитать среднее время покупки.
На суть рассуждения это не повлияет — дозаказ в момент покупки может иметь упущенную выгоду из-за наличия момента, когда коровы ещё не пришли, и лучше бы их заказать и не дожидаться очередной продажи.
buriy
–1
Уважаемый минусующий, пожалуйста, просветите, что не так.
Любая стратегия опирается на планирование, а идеальная стратегия — на планирование на бесконечный срок вперёд.
Если у нас есть возможность посмотреть «то, что выпало прямо сейчас» только через 10 ставок, то подобное планирование имеет вполне реальный смысл.
Если же вы имели в виду, что можно построить более хорошую стратегию, имея возможность сразу же посмотреть то, что выпало прямо сейчас — то вы частично правы, иногда это можно сделать, иногда — стратегию улучшить таким образом нельзя.
Например, представьте, что у вас 1000 монет, и вы можете делать только ставки стоимостью 1 монету. Тогда вы вполне можете делать ставки на 10 раундов вперёд.
buriy
0
>При некоторых условиях — да, так и есть. Но и контрпример легко подобрать.
>Будьте добры, подберите. А то у меня не получилось.
Если покупатели приходят раз в час, а доставка коров занимает неделю, то заказ коров по расписанию будет ничуть не хуже, чем дозаказ в момент покупки. Если числа некратные (доставка — 4 часа, покупка — раз в 3 часа), то дозаказ по расписанию может быть лучше дозаказа в момент покупки.