Pull to refresh

Comments 82

Довольно сложно увязать все сказанное в кучу даже для специалиста в области семантического анализа.
«Согласованное изменение трактовки слов позволяет выделить пространство контекстов» ломает мой мозг. понятного мало, слов много.
Согласен. Исправил на такое:
«Если проследить за тем от чего зависит разная трактовки одних и тех же слов, то можно выделить тематические области трактовки. Внутри таких областей многие слова будут иметь однозначный определенный темой области смысл. Набор таких тематических областей и есть пространство контекстов».
Возможно, будет понятнее.
«Набор таких тематических областей и есть пространство контекстов». Я вижу нарушение причины и следствия. Контекст — это то, что вне слова-понятия, а не внутри.А смысл, как возможная трактовка, вовсе не обязательно связан с внешним контекстом. Он может его расширять (т е быть параллельным или перпендикулярным), противоречить ему (юмор), или вообще вводить новый. Попробуйте написать программу, и сразу все станет ясно. " Теперь для каждого квадрата, если он содержит границу, можно указать номер направления, наиболее точно соответствующего ориентации границы. «и прочая отпадут сами собой.
В той модели, что описывается смысл не существует сам по себе. Он возникает только как трактовка в одном из контекстов.
Да, все запрограммировано и работает. Возможно, когда буду описывать конкретные реализации станет понятнее.
Гораздо интереснее что она скажет, например, о том: зачем мы нажимаем сильнее на кнопки пульта, у которого садятся батарейки?

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

Дикорастущее дерево гипотез всё-таки должно давать хоть какие-то плоды. Пока их не видно. И съедобны ли они вообще.
Эйнштейн говорил: «Всё следует упрощать до тех пор, пока это возможно, но не более того». Мне кажется, что мозг не сводится к совсем уж простым правилам.
Определенная сложность модели заставляет меня объяснять ее последовательно, шаг за шагом. Если у вас не вырисовывается общей картины или непонятны отдельные части, то это, возможно, моя вина как рассказчика. Но, поверьте, я стараюсь как могу. Но не требуйте показать работающие программы до того момента пока я не буду в состоянии объяснить, как они работают. Наберитесь терпения, всему свое время.
>… мозг не сводится к совсем уж простым правилам.

Но к «простым правилам» должен сводиться нейрон.

>… Определенная сложность модели…

Сама модель не сложна. Переусложнён «животворящий» «элемент автомата».

Кому нейрон должен? Чтобы судить переусложнен нейрон или нет надо знать «правильный ответ», вы знаете?
Уже да. Думаю, что «Эфирный Поток Сознания» («Aether Stream of Consciousness») был самым крупным недостающим фрагментом пазла понимания работы мозга. Всё — в рамках классики. Модель — memoryless. Чудеса — отсутствуют.
Ассоциативная Широковещательная Нейронная сеть (АШНС)
Associative Broadcast Neural Network (ABNN)

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

Ассоциативная Широковещательная Нейронная сеть (АШНС) — это подкласс рекуррентной нейронной сети (recurrent neural network (RNN)), основанный на мгновенном широковещательном распространении выходного паттерна активного нейрона. АШНС — нейронная сеть без памяти. После завершения обучения вся информация о входных образах сохранена в значениях коэффициентов связей между нейронами, и входные данные больше не нужны, то есть в системе отсутствует явное хранение любых представленных ей примеров. Ассоциативные связи между нейронами могут формировать направленный цикл.
Я полагаю, это что-то сугубо из творчества самогó Алексея Морозова. По крайней мере, гугленье данной темы привело только в «БольшойФорум», где просто совсем какая-то полуэзотерическая тема.

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

Кстати, в той теме был задет интересный момент насчёт «Закона Рибо», когда инволюция памяти происходит в обратном порядке, от свежих воспоминаний до глубоких детских воспоминаний и привычек. И правда создаётся впечатление, что дендритные деревья, вырастая, добавляют свежую и более детальную информацию на «кончиках». В этом смысле сами ветвления дендритных структур представляются как постоянно идущее уточнение вариантов полей значений/смыслов.
Я покажу основную биологию контекстов в следующей части. Несколько позже покажу алгоритмы пространственной организации, и тогда многое встанет на место.
>… это что-то сугубо из творчества самогó Алексея Морозова…

:) Однако меня уже обвиняют в плагиате.
>… плагиат…

:) Пожалуй, расскажу развёрнуто, что и как «с паттернами». Алексей Редозубов уже несколько лет публикует научно-популярные статьи на темы о мозге. У него есть две или три книги на эти темы и даже научная статья от 2014 года под названием «Pattern-wave model of brain function. Mechanisms of information processing.» Году в 2012 после просмотра его восьмичасового видео на тему «Логика эмоций и мышления» мной впервые была выражена критика о том, что всё это — пустое, и что нужно заниматься тем, чем все занимаются — паттернами, а не логикой эмоций. Так или иначе, но его «Pattern-wave model» от 2014 года — это был шаг в верном направлении. Но, к сожалению, сделав это шаг, Алексей свернул не туда, куда нужно. В мозг зачем-то полезла голография. На данный момент, после, можно сказать, титанических усилий Алексей Редозубов вышел на публику с релизом его идеи: «Логика сознания. Волны в клеточном автомате. Дендритные волны. Голографическая память в клеточном автомате». Читая всю эту «логику» и пытаясь разобраться, что, зачем и почему, у меня в период с 31 августа 2016 года по 4 сентября 2016 года созрела альтернативная гипотеза, которую я и назвал «Широковещательное распространение паттернов нейронов мозга», и которая имеет совсем другие свойства, чем клеточный автомат. С чем Алексей Редозубов, в принципе, согласен. Гипотезе «широковещательного распространения паттернов нейронов мозга» нет и двух недель. Однако обвинять меня в плагиате, думаю, неуместно.

Морозов Алексей Александрович
Нижний Новгород
12 сентября 2016 года
Вы как-то излишне агрессивно пытаетесь пиарить ваше абсолютное знание. Это несовсем уместно в этих комментариях. Напишите статью о ваших идеях и выразите себя. Удачи вам и интересного обсуждения ваших идей.
>… интересного обсуждения ваших идей…

:) Непременно. Спасибо.
Не знаю, откуда Вы увидели обвинение в плагиате, я лишь отметил что упомянутый Вами «Эфирный Поток Сознания» («Aether Stream of Consciousness») — сугубо Ваша (@AlekseiMorozov19730316Ru) придумка, и ссылаться до более глубоких источников, в сущности, некуда.
:) Поясню для пользы дела. Феномен, который я назвал «Эфирный Поток Сознания» («Aether Stream of Consciousness») — это реальное трехмерное распространение кодов выходных паттернов активных нейронов в проводящей среде вокруг нейронов посредством электрических колебаний. Отмечу, что речь вовсе не о паттерне группы активных нейронов (у Алексея Редозубова, в его автомате есть паттерн группы активных элементов автомата), а о сумме электрических колебаний от кодов нескольких выходных паттернов (по одному выходному паттерну на каждый активный нейрон). Именно в этом причина гибкой мультиассоциативности нейронов в реальной биологической нейронной сети. Само название, разумеется, для красоты и популяризации гипотезы широковещательного распространения (выходных) паттернов нейронов мозга.

«One more thing...» Всегда скептически относился к приватизации идей и, тем более, направлений в исследованиях. Нет никакого смысла тормозить прогресс ради собственной выгоды, регалий и тому подобного. Поэтому и стараюсь «отправить в свободное плавание» появившуюся у меня идею.
«о сумме электрических колебаний от кодов нескольких выходных паттернов»… т.е. электромагнитная волна, я правильно понял? Есть ли у нее гармоники?
>… электромагнитная волна, я правильно понял?

Нейроны находятся, по сути, внутри проводящей среды, то есть они как бы «опутаны» проводами. Скорее всего, пока уместнее всего говорить о колебаниях электрического тока. Если ЭМВ, то надо вводить в модель ещё и сущность «антенны». Это — пока лишнее.
Значит, активность паттерна кодируется фазовыми характеристиками тока?
Всё «хуже» гораздо. Направленные трёхмерный «приёмник» и трёхмерный «передатчик» нейрона могут принимать трёхмерный электрический сигнал и посылать его. Распространяющиеся сигналы, разумеется, накладываются. В итоге эта каша образует «Эфирный Поток Сознания». Разобраться с этим сможет только кроссдисциплинарный проект. Для начала нужна примитивная модель с некими абстрактными «паттернами». Кроме обычного «кабельного» веса «кабельной» связи, необходимо добавить «эфирный» вес этой же «кабельной» связи. Вот и всё. Получаем этот самый «эфирный» паттерн — совокупность «эфирных» весов обычной «кабельной» связи. Далее — обучаем полученную таким образом Ассоциативную Широковещательную Нейронную сеть (АШНС), то есть
Associative Broadcast Neural Network (ABNN). АШНС(ABNN) ждёт своих «героев».
А есть хоть какие-то веские основания считать, что импульсы передаются электрическими сигналами помимо классической электростатической ионной деполяризации через мембрану?
Просто совершенно не ясно про какие провода/эфир вообще речь. Создаётся впечатление, что речь о какой-то эзотерике.
>импульсы передаются
>электрическими сигналами

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

А это уже «распространения волны в среде» (причем в жутко неоднородной), Вы как-то определитесь, за белых или за красных -)
Никто и не говорит, что гипотеза широковещательного распространения паттернов нейронов мозга — «не глубокая». Но это не «волны дендритов в клеточном автомате» Алексея Редозубова, если Вы на это намекаете. Вы же это, надеюсь, понимаете.
Вы тоже открыли автоволны. Они бывают и трёхмерные, и восьмимерные, и перемещающиеся в виде зарядов, в виде концентрации нейромедиаторов, в виде подрыгиваний дендритов — т.е., просто в виде локальных событий активных однородных элементов, составляющих среду (причём, в одной кибернетической системе возможно рассмотрение нескольких автоволновых систем одновременно, на каждом уровне выделяя различные свойства среды — свойства дендритов, нейронов, кортикальных колонок, альянсов колонок и так вплоть до социальных и экономических агентов и групп агентов). Для моделирования интеллектуальных функций людей in silico не так важно, как работает конкретный биологический мозг, можно абстрагироваться от самой физики/биологии процесса, взяв только ключевые параметры типа скорости реакции элемента среды и его «ёмкость», имеющие смысл «на границах» рассматриваемого объекта (для мозга, к примеру, граничными могут быть свойства сигналов с моторных и сенсорных нейронов или обобщённые бихевиористские события типа «подопытный нажал красную кнопку»). Тот же самый перцептрон — это не просто инженерный поиск «методом тыка» с мотивом «сделать как в бионейроне, вдруг, начнёт проявлять какие-то необычные свойства», а математическая целесообразная абстракция о том, что важно и не важно для предсказания поведения обобщённого класса систем, называемых динамическими, нелинейными и открытыми в рамках решения конкретной задачи классификации сигналов, т.е., это математическое решение, проистекающее из одного из вариантов _формализации_задачи,_решаемой_реальным_мозгом. Спайковая нейросеть в самом своём обобщённом принципе — это и есть _исчерпывающая_ абстрактная модель мозга в условиях самой абстрактной постановки задачи — «описать мозг в терминах кибернетической системы», с точки зрения кибернетики чего-то ещё в мозгу нет и быть не может, все подробности являются лишь способом «реализации» в природе этой «предельной» кибернетической модели. Искать, какими пестиками и тычинками реализовывается функция мультиплексирования, к примеру, или ассоциирования сигналов, если мы саму эту функцию уже и так сформулировали, особого смысла нет — всё равно самые «предельные» виды биологической реализации этих функций не будут магическим образом выдавать новые математические принципы, любая «магия» для исследователя будет шумом из сигналов о том, о чём он и не пытался узнать из модели. В теме построения ИИ острее стоят задачи не об устройстве нейросети, а об организации процесса обучения, который и накладывает архитектурные ограничения на эту нейросеть. Проблема не в том, как соединить нейроны, а в том, как соединить эту кучку нейронов с реальностью, с полезными задачами и источниками неформализованных знаний (в пределе — как подключить ИИ к человеческой культуре, в которой у него сформируется то самое сознание с квалиями, о которых тут рассуждают так, будто это не культурные, лингвистические конструкты, а объективные элементы кибернетических систем). (Это, возможно, не персональный ответ именно вам, а вообще «мысли вслух» по поводу сложившейся в комментариях дискуссии.)
Эти заряженные частицы — это ионы. Насколько я понимаю, они никакими _особыми_ проводящими свойствами по сравнению с другими молекулами (включая молекулы воды) не обладают. Это же обычный электролит. И любая проводящая структура в нашем мире трёхмерна. А импульс (спайк) — это следствие электростатического перемещения отдельных молекул-ионов, а не электронов, как в проводнике.
>… Эти заряженные частицы — это ионы.…

В мозге много всякой всячины. Кровь, например. Какая структура цепей работает при широковещательном распространении паттернов нейронов мозга — проще проверить, чем «вывести».

Разобраться с этим сможет только кроссдисциплинарный проект. Для начала нужна примитивная модель с некими абстрактными «паттернами».

Я правильно понял, что Вы еще с этим не разобрались? Т.е. Вы не знаете, как именно это работает.

Направленные трёхмерный

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

:) Нет. Увы. Вы поняли неправильно.

>фазированная антенная решётка

наподобии, но только для электрического тока и обязательно «трёхмерная», а не «плоская».
наподобии, но только для электрического тока и обязательно «трёхмерная», а не «плоская»

срочно патентовать!
Вы мыслите «прошлым». В будущем — там же ИИ, и патенты — уже мусор.
Это всё разумно, только тест Тьюринга на самом деле не имеет отношения к мышлению, и лучшие программы на сегодня его проходят. Тест Тьюринга показывает только возможность имитировать человеческую письменную речь.

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

Собственно, и средний человек больше имитирует обработку смысла, чем в действительности производит её. В предельном случае, Вы мне говорите: “Добрый вечер!”, я Вам отвечаю: “Добрый вечер!”. Смысла ноль, чистое подражание обучающим примерам диалогов (на чём, кстати, построено преподавание иностранного языка в ряде методик).

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

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

Насколько мне известно, программа Веселова и Демченко официально прошла тест Тьюринга.
Насчет «официально прошла» это очень мягко говоря сильное преувеличение. Как вы првильно заметили, ответить на “Добрый вечер!” фразой “Добрый вечер!” не требует особого интеллекта. Тест Тьюринга нисколько не устарел. Стоит просто вкладывать в него правильный смысл. Программа должна не продержаться 3 минуты, обтекаемо уходя от ответов, а доказать в допросе с пристрастием свою состоятельность.
Насчет оптимизации весь вопрос в том как ее сделать. Чему собственно и посвящена эта часть.
>… Насчет оптимизации…

Очередная ошибка в том, что Вы пытаетесь «впихнуть» выявленные закономерности сущностей высокого уровня в «чудесную» низкоуровневую модель, да ещё и «привязать» эту модель к реальной биологической нейронной сети.
Цитирую википедию: «Представим себе изолированную комнату, в которой находится Джон Сёрл, который не знает ни одного китайского иероглифа. Однако у него есть записанные в книге точные инструкции по манипуляции иероглифами вида «Возьмите такой-то иероглиф из корзинки номер один и поместите его рядом с таким-то иероглифом из корзинки номер два», но в этих инструкциях отсутствует информация о значении этих иероглифов и Сёрл просто следует этим инструкциям подобно компьютеру.» А вот английская википедия: " It takes Chinese characters as input and, by following the instructions of a computer program, produces other Chinese characters, which it presents as output. "
(В 1980м году — когда Сёрль описал Китайскую комнату — в использовании понятия «компьютерная программа» нет ничего необычного)
А поскольку там ничего не сказано про необходимость наличия «всех комбинаций символов» (и т.п.), то никакого комбинаторного взрыва нет.
Сёрл говорит о том, что, если разум алгоритмичен, то можно вести разумный диалог, не имея субъектности. Это само по себе никак не относится к предмету настоящего обсуждения, и, на мой взгляд, и так самоочевидно.
Вы правы. Просто пример с китайской комнатой получил широкую известность и часто используется «не по прямому назначению».
Субъективность — штука непростая. О наличии или отсутствии субъективности внешнему наблюдателю рассуждать практически невозможно. Проблема «китайской комнаты» — это достаточно классическая софистика, к сожалению очень распространившаяся. Зачем-то отдельным элементам системы (нейронам) пытаются навязать свойства всей системы (мышление). Это как ткнуть пальцем в коленчатый вал, и многозначительно провозгласить его несамодостаточность и неспособность к созданию целенаправленной тяги.

Гипотетический «философский зомби», в случае симуляции процессинга сигналов от рецепторов, перестаёт быть таковым, поскольку за счёт этого обретает свои квалии.
Из процессинга сигналов от рецепторов автоматически не следует появление квалиа. Обрабатывать сигналы может программа из десяти строк, но квалиа у неё нет. (Хотя элиминативисты могут сказать, что квалиа вообще нет).
Так-то — да. Та же видеокамера хоть и «видит» — даже с не банальным процессингом квалию не образует.

Что такое квалиа? Это просто самый низкий уровень восприятия сигнала, идущего от рецепторов. И способность этот низкий уровень возбуждать через обратную связь (как минимум для работы механизма вызова и укрепления памяти). Для того чтобы это восприятие можно было назвать полноценной квалией, нужен «полный цикл» — от процессинга рецепторных сигналов, через низкоуровневые преобразователи (например, фурье-подобное разложение в кохлеарном органе), через фильтры-классификаторы разного уровня абстрагирования и динамические ассоциативные цепочки с обратными связями, и вплоть до моторики (цвет тоже перестаёт восприниматься без саккадной моторики).

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

Философскому зомби достаточно иметь представление о красном цвете, такое, как, например, имеет компьютер, кодирующий его тройкой чисел (255, 0, 0) или длиной волны 700 нм. Этого достаточно для приобретения всех внешних признаков опыта, связанного с восприятием красного цвета. Однако, человек не измеряет красный цвет, а непосредственно его ощущает в своём восприятии, что и называется квалиа.
А кто сказал Вам, что «непосредственное ощущение цвета в восприятии» — не есть ассоциативное тэгирования того самого триплета (255, 0, 0), который на самом деле от рецепторов и приходит (плюс-минус)? _Ощущение_ красного цвета затрагивает все уровни, вплоть до первичных зон, а «представление» (фантазирование) красного цвета до первичной зоны просто не добирается, оставаясь на ассоциациях хоть и низкого уровня, но всё же не первичного (иначе такое низкоуровневое воображение будет обладать свойством галлюцинации, и перекрывать реальное восприятие).

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

А все вопросы-ответы предусматривать и не нужно. Чтобы понимать человеческую речь на 95%, достаточно знать 3 тысячи слов (это если на английском), а количество комбинаций этих слов в предложения ограничено правилами языка и здравым смыслом, так что количество повседневных фраз и даже «вопросов с подковыркой» довольно ограниченное количество.

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

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

Китайская комната не способна вести мало мальски длинную бесседу.

Если использовать поиск с учётом контекста, можно вести сколь угодно длинные беседы, если они хотя бы частично похожи на те, что уже были в прошлом обучаемого чат-бота. Пример:
А1: Какие фильмы ты любишь?
Б1: Люблю Терминатор: Генезис.
А2: А кто твой любимый герой из этого фильма?
Б2: Конечно же Папс!

В данном случае ответ Б2 на вопрос А2 ищется с учётом контекста А1-Б1. В памяти чат-бота может быть сохранена ассоциативная цепочка А1->Б1->А2->Б2->..., у каждого узла которой свой контекст (nil (если это начало диалога), A1, А1-Б1, А1-Б1-А2 и т.д.).

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

Слишком быстро происходит комбинаторный взрыв.

Избежать КВ можно, если «свёртывать» («сворачивать») базу данных. Ведь в текстовой БД всегда есть группы похожих друг на друга слов/фраз. Можно обозначить эти группы одним похожим на все слова группы словом (скажем, это «общее» слово), и искать сначала по общим словам, а только найдя наиболее подходящее общее слово, искать среди его частных. Пример: база из 1000 слов, свёртываем до 100 групп, в каждой из которых 10 слов, и тогда нам нужно произвести 110 операций сравнения вместо 1000 — выигрыш по скорости поиска почти в 10 раз. Конечно, реальная БД может плохо свёртываться, тут уж как повезёт… Может, ещё что придумаю для ускорения…

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

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

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

И потом, ТТ даже не все люди могут пройти. Тут всё зависит от судей. С судьями-«кисами» и оригинальным ограничением в 5 минут (Тьюринг предлагал именно 5 минут) даже примитивный чат-бот наберёт больше 50%, потому что по уровню IQ и знаниям «киса» и чат-бот примерно равны, а, может, чат-бот даже начитаннее. С другой стороны, сама «киса» с дотошными судьями-программистами (или судьями-математиками, судьями-физиками и т.д., короче, любой «интеллектуально продвинутый» человек) вряд ли сможет набрать даже 30% — её просто примут за чат-бота, прикидывающегося дурочкой.

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

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

Если уж пытаться «вывести бота на чистую воду», то некоторые методы могут вывести совсем не того, кого нужно. Ведь обычный человек не знает сложных уравнений или китайских иероглифов, с трудом может прочитать |33t $p3@k (а времени на ответ мало) или быстро решить логическую задачку, и вряд ли помнит, кто президент в Нигерии или что там было в истории заснеженной и населённой пьяными медведями с балалайками древней Руси (про медведей и балалайки уж точно все знают). А ведь на ТТ в качестве противоположности ИИ набираются обычные люди, а не многократные победители «кто хочет стать миллионером».
Как всегда все дело в мелочах. Это только кажется, что имея около 5000 общеупоребимых слов легко перебрать все короткие беседы. Даже для одного предложения это триллионы вариантов. Но самое главное, что нельзя ограничивать размер той части бесседы, которую надо принимать в рачсет. Для людей весь жизненный опыт, а не только последние несколько предложений могут влиять на ответ. Если же усложнять чат бота что-бы он принимал во внимание весь полученный опыт и правильно определял контксты повествования, то это рано или поздно приведет к той схеме, что описана в статье.
А почему вы считаете, что нужно перебирать все беседы или что-то ограничивать?
Весь смысл в том, чтобы алгоритм сжимал беседы до компактного ядра, которое можно описать конечной программой, для этого даже не нужны «все беседы» (более того, живой человек тоже не умеет отвечать на все вопросы мира).
Также никто в китайской комнате не ограничивает возможность запоминания опыта.
«Сжимать беседы до компактного ядра». А как вы будете получать это ядро? Не захочется ли вам выделить главный смысл? Слова многозначны, как вы будете выбирать правильную интерпретацию, ведь от этого зависит ответ?
> А как вы будете получать это ядро?
Ну, например, нейросетями. Они же отличный аппроксиматор произвольных функций, в том числе, неплохо умеют сжимать информацию (по сути, строить сжимающее преобразование).
Можно подготовить обучающее множество с целью построить алгоритм сжатия. Те же word2vec и glove неплохо это делают для слов, потом с помощью обученных векторов слов процедура повторяется для фраз. Если же потом повторить процедуру для реплик вопрос-ответ (вместо фраз), то можно получить и модель, описанную в работах про Dynamic Memory Networks ( https://arxiv.org/abs/1506.07285 и др. ).
>Не захочется ли вам выделить главный смысл?
«Главного смысла» нет, в зависимости от целей и опыта, наиболее важной и полезной информацией может быть разная информация.
А правильное значение слов (если вы об этом) выбирается, исходя из темы разговора, знаний о мире и соседних слов. Это обучаемая вещь, но, в любом случае, я не понимаю, причём тут перебор всех возможных бесед, и особенно, во время работы программы.
Я вижу противоречие — «это обучаемая вещь» и отсутствие «перебор всех возможных бесед». А на чем происходит обучение?
Обучение происходит на а) части предыдущих бесед
и б) происходит сохранение полученных в ходе бесед знаний — можно считать это видом обучения, если очень хочется.
Но я искренне не понимаю, зачем нужен перебор всех возможных бесед.
Чтобы воспользоваться беседой (фразой) для обучения ее надо предварительно правильно интерпретировать. Иначе одни и те же слова, использованные в разных фразах в разных смыслах, создадут огромную техническую сложность. Только когда информация приведена к контексту с ней можно начитнать что-то делать. Этот принцип хорошо прослеживается в сверточных сетях.
Переберать надо не все беседы, а все контексты.
А выбор подходящего контекста с помощью нейросетевой классификации или регрессии вы не рассматриваете, только полный перебор?
Это совсем разные вещи. Например, то что делает сверточная сеть не реализовать другими способами. А сверточная сеть — это частный случай контекстного подхода.
«сжимал беседы до компактного ядра» — это процедура изменяющая первичные данные (память). Если не сохранять первичное «воспоминание», то будут одни «иллюзии» (именно эти недостатки и были перечислены ниже)
А в чём проблема и сжимать беседы, и сохранять первичные воспоминания? (Китайская комната этого не запрещает)
В том, что про это не говорится явно. И если первоначальные воспоминания сохраняются, то зачем обманываться, говоря, что работаем с неким компактным представлением этих данных, а не с самими данными? Ведь в итого это «компактное ядро» будет постоянно пересчитываться от первичных данных, дабы убрать накапливаемую погрешность (ошибку).
>то зачем обманываться, говоря, что работаем с неким компактным представлением этих данных, а не с самими данными?
Ну, наверное, потому что мы действительно работаем с компактным представлением данных?
Данные не обязаны храниться, часть данных может храниться для последующего воспроизведения или доучивания.
>Ведь в итого это «компактное ядро» будет постоянно пересчитываться от первичных данных, дабы убрать накапливаемую погрешность (ошибку).
Нет, есть алгоритмы online learning, не требующие многократного воспроизведения данных.
А ошибки в основном возникают не от отсутствия оригинальных данных, а от неправильных обобщений.
Мы спорим «в какой цвет будем красить стены» -)

Мне неизвестны иные механизмы борьбы с «дефектами» возникающими из-за последовательности подачи данных кроме полного перебора полученных данных. И я не говорю, что требуется постоянный перебор, возможны оптимизации, но они не исключают полностью потребность в полном переборе.
Это только кажется, что имея около 5000 общеупоребимых слов легко перебрать все короткие беседы. Даже для одного предложения это триллионы вариантов.

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

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

Человек может удерживать фокус на каком-то наборе информации только около 15 минут, потом он непроизвольно забывает, о чём думал, если эта информация не успела оставить след в постоянной памяти. Вот недавно на Хабре была статья про то, что нужно записывать всё, что обсуждается на совещаниях разработчиков — почему? Потому что даже за час совещания люди могут от 4 до 12 и более раз «потерять нить диалога», т.е. забыть, что обсуждалось только что. Так устроена наша кратковременная память. Вот и машине не нужно в подробностях помнить всё, что обсуждалось три часа назад.

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

Но нужно проверять на практике, стоит ли вообще такая игра свеч или нет. Может, можно сделать проще…
Как тогда смотреть фильмы, там полтора часа и надо следить за всеми деталями. С сериалами, вообще, — беда.
Число возможных вариантов беседы, даже, за 15 минут, даже со всеми ограничениями, много больше чем число шахматных парий.
По собственному опыту сужу — в конце просмотра фильма я помню только общий смысл фильма и штук пять самых ярких сцен, въевшихся в долговременную память. Когда пересматриваю фильм второй раз — постоянно ощущение «о! а вот это я не помню вообще!», потому что фокус скачет по кадрам и выхватывает лишь что-то отдельное, а ещё меньше из этого выхваченного уходит в долговременную память…

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

Возможно, это лично у меня такая плохая память. :D

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

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

Когда мы говорим компьютеру: “Сири, какая сейчас погода?” и он сообщает нам погоду, то это реальный искусственный интеллект, хотя, возможно, очень слабый. А когда, в ответ на вопрос, компьютер посылает нас в известном направлении, потому что у него депрессия, то это хороший результат по Тьюрингу, но совершенно не требующий анализа смысла речи и вообще интеллектуальных действий в традиционном понимании.
Тест Тьюринга, насколько я его понимаю, призван как раз выявить те границы познания мира субъектом. Он позволяет выявить ассоциативные рамки, способности к эмоциям и эмпатии, и к решению различных задач.
Не просто диалог, а скорее как «беседа с психологом», с очень обращением особого внимания на «когнитивные дыры» субъекта.
Алексей, написано познавательно, но несколько тяжеловато из-за абстрактности.
Был бы признателен за один или несколько простейших примеров для каждого определения. Сами же говорите, для понимания нужен одинаковый опыт. Примеры — простейший способ получения опыта.
Кроме того, они позволят понять, что вы ничего не упустили в определениях (например, см. п. 2 ниже про время).
Пришлось несколько раз перечитывать и мучительно согласовывать ваши термины с используемыми в области Machine Learning.
И вот что выяснилось:
1) То, что вы описали — это байесовский классификатор, осложнённый некоторым дополнительным обучением и вспомогательными алгоритмами преобразования.
Так что можно было описать всё намного компактнее, дать ссылки и использовать устоявшуюся терминологию.
У данного механизма известные проблемы:
— самовозбуждение при совмещении с unsupervised learning ( побеждающий класс накапливает ещё больше опыта и ещё чаще побеждает — впрочем, можно исправить бустингом, ценой небольшой потери в качестве и наличия дополнительного подстроечного параметра в формуле бустинга)
— невозможность несуществующего, она же «закрытость множества классов»: если интерпретации ещё не было, то вероятность её получения — ноль (можно исправить сглаживанием, но тоже ухудшает качество, особенно при «one-shot learning» — запоминании при однократном предъявлении)
— накопление ошибок со временем при совмещении с unsupervised learning (никто никогда не избавляется от возникших ошибок преобразования, наоборот, они со временем укрепляются — что с этим-то делать? это вопрос, терзающий всех в мире, пытающихся создать искусственный интеллект или хотя бы повторить естественный)
2) Понятие «концепт» и «последовательность концептов», описанные в начале статьи, не используются, как и временная связь — видимо, предполагается одновременное использование всех слов из последовательности концептов — но об этом ни слова в статье, ни подтверждения, не опровержения.
3) И самое главное. Вопрос, как выглядят «интерпретации» и контекстно-зависимый алгоритм преобразования — не раскрыт.
Ни слова также не сказано об обучении — а ведь, как я сказал выше, данная схема не работает сама по себе, без «интеллекта», находящемся где-то в другом месте.
По сути, описанное в статье — это лишь классификатор, который можно редуцировать до расчёта вероятностей вхождения в различные классы по числу упоминаний этих классов в памяти (и, в случае «мягкой классификации» — умноженной на вероятность данного класса в данной интерпретации).
Сами алгоритмы преобразования и вопросы их близости вы пока что обошли стороной.

Из плюсов — вы дали крайне занимательный «вид сбоку» на привычную машинерию.

P.S. Я бы ещё вместо слова «контекст» использовал что-то типа «группа алгоритмов» или «контекст применения алгоритмов», чтобы подчеркнуть то, что ваш контекст — это не сущность, а набор функций.
P.P.S. Кстати, у Джеффа Хокинса «spatial pooler» действует крайне похоже на ваш алгоритм.
Несколько позже я опишу конкретные реализации и постараюсь шаг за шагом описать, что и как происходит. Сейчас я попробовал дать только самое общее представление. Далее я покажу, что практически все методы, используемые в машинном обучении находят свое место в этой модели. Но есть и принципиальные различия между классическими подходами и тем, как выглядят их аналогии. Заимствование терминов и названий методов за которыми уже есть устоявшееся четкое понимание может сильно запутать. По ходу повествования я укажу на аналогии и проведу сравнение.
Ошибка закралась в понимании «контекста», это не функция, а некая закономерность в данных. Конечно можно назвать выделение фитч функцией преобразования, тогда и здесь «контекст» станет функцией.

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

Такой подход позволяет увидев объект лишь раз распознать его в другом «ракурсе» (при условии что он приводится к первичному аффинными преобразованиями). Т.е. при распознавании получаем пару объект-контекст. Это не joint learning, так как выход один, а не несколько.
Это не всегда позволяет распознать объект в другом ракурсе — т.к. объект с другого ракурса или с течением времени может выглядеть по-другому. С удовольствием погляжу на решение вами именно этой проблемы.
Т.е. контекст вы не получаете на выходе, а только сам объект перебором контекстов?
Получается пара «контекст-объект». Это можно интерпретировать как, например, «слева-сверху — квадрат»
при условии что он приводится к первичному аффинными преобразованиями

Это обязательно условие для 100% распознавая.

Объекты которые изменились должны иметь не изменившуюся часть по которой можно было бы выдвинуть гипотезу, иначе нет возможно их сопоставить.
Эмм… ребенок старше трёх лет умеет узнавать игрушку, скрывшуюся из поля зрения и вернувшуюся обратно. Это же умеет и весьма несложный алгоритм под названием predator.
Чтобы узнать, что вернулась таже игрушка, а не другая между ними должно быть что-то общее. Можно, конечно ориентироваться на траекторию движения игрушки и время, но это другая история.
Между ними есть общее — они выглядят похоже до и после операции :) Тот же самый это объект или нет — никто не знает, это философский вопрос :), а значит, это всегда вопрос веры больше, чем реального наблюдения — бывают подмены и предметов и людей, и невнимательность, мешающая осознать подмену.
То, что человек обладает этим навыком, это неоспоримый факт. И, мне кажется, это умение обязательно нужно при качественном анализе текста — а значит, этот тест вполне можно использовать как лакмусовую бумажку для проверки качества алгоритма анализа текста (в датасетах парафраз так и делается — заменой части фразы легко получить противоречие, которое программа должна обнаружить). Тот же самый тест можно делать и с картинками — если на фото женщина держит телефон в руке, а рядом идёт мужчина, то аннотация «мужчина с телефоном» будет неправильной. Текущие алгоритмы QA и photo captioning пока что крайне редко этот тест проходят — неплохо находя объекты, они не всегда их правильно объединяют. Посмотрим, что будет у вас.
А тут мнение относительно молодого, не имеющего основательных знаний в этой области и недавно перенесшего инсульт(выражение мысли часто сумбурно), делайте поправку на восприятие:
Заголовок спойлера
Отлично! Неплохо собранная информация в одной голове, это видимо был большой труд.
С основной идеей согласен. Контекст, фреймы — это все похоже на сферического коня в вакууме(т.е. мяч) — такое повествование подходит для диссертации или докторской, не для построения логической цепи в голове собеседника.
Восприятие информации, поиск смысла и разбор звука и визуальной — упрощайте все, все что только можно. Восприятие информации — для начала приведите пример как только что родившийся ребенок разберет что такое хорошо а что такое плохо. Вы пытаетесь представить модели действующие на уровне сформировавшегося индивидуума — зачем?
Одна мысль что не дает мне покоя — а есть ли вообще воспоминания? Это явно комплекс чего-то друго что нами воспринимается как целая сущность(иначе воспоминания невозможно было бы изменить, состояния только 1 или 0). На мой взгляд мозг хранит в себе лишь паттерны действий, а воспоминание — лишь обман восприятия работы самого себя.
По поводу искусственного интелекта — имхо, пока мы не наделим намишу инструментами доступными нам — не ждите того же интеллекта.
Sign up to leave a comment.

Articles