plakhov: (Default)
[personal profile] plakhov
Ну что, развлеклись? Теперь за работу.

До начала этого года я был уверен, что человеческий интеллект с точки зрения теории вычислительной сложности является какой-то неразрешимой загадкой. Люди практически непрерывно решают задачи построения когнитивных моделей по большому набору входов большой размерности, что выглядит подозрительно похожим на решение NP-полных задач. Я даже было думал, что все эти тысячи теоретиков что-то проглядели, и пытался, опираясь на работы Leslie Valiant'а, решить Monotone Parity-P за полином малой размерности. Какие-то интересные штуки я даже придумал, но все это получилось не особенно практично. Похоже, на халяву решать произвольные NP-полные задачи таки невозможно, и лет через 30 алгебраические геометры нам расскажут, почему.

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

Для начала определимся с целями.
"Слабый" AI - это общее название для набора технологий (как уже существующих, так и находящихся в разработке), имитирующих те или иные аспекты умственной деятельности человека. Это размытая область, она различным пересекается с machine learning, статистикой, теорией оптимального управления, робототехникой, статистической лингвистикой, и т.д и т.п. Современные поисковики - самый типичный пример технологий этого класса.

Strong AI - это светлая мечта фантастов, машина, проходящая тест Тьюринга, и могущая заменить или превзойти человека в любом роде деятельности кроме порнофильмов.

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

Таким этапом предлагается считать появление вычислительно приемлемых алгоритмов unsupervised learning, единообразно и в режиме реального времени решающих следующие задачи:
- парсинг естественного языка
- распознавание объектов на изображениях и видео
- распознавание речи
- установление структурированных ассоциативных связей в "сенситивной каше", состоящей из всего вышеперечисленного
Этого недостаточно, чтобы клепать автоматических Платонов, Невтонов и прочих Перельманов, но вполне достаточно для того, чтобы сделать типичного "тупого робота" из классической фантастики, которому можно доверить водить автомобили, поезда и танки, который сможет полностью заменить людей на производстве (за исключением инженеров-технологов), а также собирать урожай, доить коров и встречаться со стиральной машиной. Назовем это, скажем, medium AI.

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

1) Были концептуальные трудности, связанные с тем, что не существует "единственно верного способа" ни поделить единый сенсорный поток на разные "объекты", ни понять, что перед нами один и тот же объект. Схожие проблемы неединственности и нечеткости возникают и с понятиями "синонимов", с таксономиями, и т.д. и т.п. Судя по всему, они благополучно разрешены при помощи структуры, называющейся lattice-ordered monoid of concepts (далее LOMoC). В работах А. Кларка (не Артура, а Александра, прошу заметить) эти идеи развиваются для парсинга естественных языков. К сожалению, в его статьях описывается странноватая модель обучения, в которой нужен учитель, ученик может выполнять вычислительно крайне громоздкие операции (что-то типа O(n7), где n - количество известных ему примеров фраз языка), да и объем коммуникаций "учителя" с "учеником" тоже нездорово большой. Тем не менее, уже сейчас это на вид сильно лучше и иерархии Хомского, и подавляющего большинства других языковых моделей. Читать можно начинать с Cla10 (pdf)

LOMoC серьезно использует тот факт, что мы работаем именно со строками, т.е. "топология" входа линейна, а не 0-мерна (вход - множество или мультимножество), не двумерна (изображение), и тем более не является экзотической (скажем, когда вход - совокупность последовательных двумерных изображений, которые иногда аннотированы строками или множествами тэгов).

Но аналогичные структуры можно по аналогии построить и для других топологий, заменив операцию свертки строки и контекста соответствующей операцией конкатенации связного подмножества входа и его локального контекста. Вот только степени полиномов станут совсем кошмарными. Тем не менее, давайте пофантазируем (пока что) и представим себе, что это сделано. Какую генеративную модель "естественных изображений" смогла бы "понять" такая система? (здесь и далее, чтобы понять, откуда я взял дальнейшее, вам придется прочитать Кларка и, главное, понять его; а если так, то с вероятностью по меньшей мере 25% вы сидите слева от меня за соседним компьютером)

Неплохую. Например, с одной стороны, она поймет, что бывают "глаза", "рты" и "уши", поймет, что "лицо" - это правильно расположенная совокупность оных, поймет на произвольном изображении "лица", где там что (не зная, как что называется, а просто выделив соответствующие концепты). В то же время она будет знать, что Мона Лиза - это не только "лицо", но и "картина" (в смысле принадлежности к соответствующему concept class), а также что это та же самая картина, что и на входе номер 1358 (в смысле принадлежности к еще более узкому концепту). По картинке разным, частично пересекающимся или включающим друг друга ее подмножествам она сопоставит разные концепты. Сможет, например, парсить детские рисунки, правильно понимая, на какой объект реального мира это похоже, или отличать фото человека от фото портрета этого человека, висящего на стене.

2) Ну а как же нам свести размерность полинома к необходимой нам для поточных realtime алгоритмов сложности expected O(n1+epsilon), и заодно избавиться от необходимости в явном "учителе"? Для этого нам придется вспомнить, что есть такая чудесная штука, как locality sensitive hashes. В web search с их помощью, в частности, ищут плотные двудольные подграфы в ориентированных графах "кто на кого ссылается", и таким образом вычисляют спам. Это уже успешно решенная задача, и решается она за О(числа вершин). Посмотри теперь на другой граф, а именно вот какой. Он двудольный, в нем вершины - это контексты и подмножества входов, а ребра отвечают на вопрос "какие подвходы встретились в каких контекстах". Что такое плотный двудольный подграф в нем? Ой, да это же и есть "концепт" Кларка!

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

Вот в общем-то и все. Пора писать medium AI.

Сейчас я активно мониторю новые статьи про locality sensitive hashing (см. вчерашнюю запись в этом же журнале), и занимаюсь на работе чем-то максимально близким, что нашлось - semi-supervised извлечением и классификацией объектов из пользовательских запросов по их контекстам. Естественно, я пользуюсь при этом гораздо более "прикладными" методами, но, тем не менее, эта вся идея работает, черт возьми, я это вижу глазами.

Тем не менее, парсить естественные языки, кажется, для первого этапа сложновато. Начать нужно, скажем, с распознавания изображений общего назначения по этой схеме. По изображению искать "смысловые" near duplicates для его частей в имеющейся базе. Не знаю, буду ли я этим заниматься, но это неважно. Не я так кто-нибудь еще, не к 2017, так к 2025-му.

Date: 2010-04-01 03:29 pm (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
В прекрасной игре DeusEx настоящий ИИ (ну, половина его) развился из фильтра писем, который работал на пресловутый "eschelon", а для гражданских притворялся спам-фильтром.

Date: 2010-04-01 06:34 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Я в такие сценарии (и им подобные, вроде разумных компьютерных вирусов Симмонса) ну совсем не верю. Все-таки спам-фильтры и т.п. - это совершенно стандартные примеры weak AI, там все понятно, в том числе и ограничения.

Date: 2010-04-01 07:12 pm (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
Это всё ж первоапрельски-шуточное. Типа "фантасты давно предсказали".

Кстати, для "эшелона", поди, был более глубокий анализ текста, требующий некоторой разумности — заказчику понравилось, и понеслось :)

Date: 2010-04-01 03:31 pm (UTC)
From: [identity profile] mad-beaver.livejournal.com
Я понял, в чем хохма!

Пост озаглавлен "Как нам построить strong AI"

А в тексте речь идет о medium 8)

Date: 2010-04-01 06:32 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Чорт!
А еще Гулин сидит слева от меня, а не справа, как я сначала написал

Date: 2010-04-02 05:09 am (UTC)
From: [identity profile] mad-beaver.livejournal.com
А как-нибудь по-человечески можно объяснить, в чем суть, что такое LOMoC, чтобы не читать все творчество Артура Кларка?

Что каждое слово в отдельности означает, понятно. А вместе - зогадко.

А вообще, сволочи вы все левополушарные :)
Я лично, пока картинку не увижу или не представлю, нихера не понимаю, и вы этим пользуетесь, чтобы издеваться 8)

Date: 2010-04-02 03:11 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Напомни мне в понедельник, если еще не потеряешь интерес, ок?
Тут просто надо бы как следует написать, а времени ну никак нет.
Если вкратце - строишь вот такую структуру http://en.wikipedia.org/wiki/Formal_concept_analysis для связных подмножеств входа (в случае языка - подстрок), после чего вводишь на ней дополнительную(ые) операцию(и), соответствующие конкатенации.

Date: 2010-04-03 07:36 am (UTC)
From: [identity profile] mad-beaver.livejournal.com
Ага, спасибо, прочитал. Вроде что-то понял.
Есть один глупый вопрос - если мы строим LOMoC на тексте, что является объектами? Строки, что ли? 8)

Однако твой процесс построения medium AI, c моей точки зрения, все еще выглядит так:
1. Берем большой кусок сенсорных данных
2. Строим на нем LOMoC
3. Определяем операцию конкатенации
4. ?????
5. PROFIT

Дело в том, что все применения, что ты назвал для medium AI, уже вполне успешно решаются. То есть, роботы уже могут водить самолеты, поезда и танки и работать практически везде на производстве.
Главное, чего им не хватает - это возможности легко понимать, что именно их биологические хозяева лопочут на своем нерегулярном естественном языке.

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

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

Date: 2010-04-03 02:53 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Объектами у Кларка являются подстроки "грамматичных" строк, а "свойствами" (множества которых задают концепты) - "строка может появиться в таком-то контексте".

Про то, чему соответствуют "вопросики" в 4, я уже отписался faceted_jacinth'у тут: http://plakhov.livejournal.com/127307.html?thread=2167883#t2167883

Date: 2010-04-03 05:01 pm (UTC)
From: [identity profile] mad-beaver.livejournal.com
Кстати, а учитывается каким-то образом частота обнаружения концептов во входном потоке?

И как это все будет выглядеть вот, скажем, на таком примере?

Предположим, есть текст: "Катя торопливо идет, поминутно поправляя солнечные очки и громко цокая каблучками босоножек".

Задаем вопросы:
- в какое время дня предположительно имеет место сцена?
- в какое время года?
- в городе или в лесу?
- сколько Кате лет?

Любой нормальный человек, не Шерлок Холмс, на такие вопросы легко ответит - с оговорками и разной долей уверенности, конечно - но ответит.

А как будет робот отвечать?

Очевидно, извлекая из памяти соответствующие концепты.

Глобально я это понимаю, а вот как это будет конкретно реализовываться? :)

Я так понимаю, для начала тебе граф описания сцены неплохо бы постоить, и он будет совсем не похож на любые синтаксические графы, которые можно построить по данному тексту. И чем здесь может помочь LOMoC?

Date: 2010-04-03 05:08 pm (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
Вот есть opencyc, он по идее на подобные вопросу умеет отвечать. Как? (Можно посмотреть в исходниках, ага.)

Date: 2010-04-01 04:13 pm (UTC)
From: (Anonymous)
"Обратись к врачам" и "Знакомства для секса в твом городе без смс". После такого пригодятся.

Chulup.

Date: 2010-04-01 04:20 pm (UTC)
From: [identity profile] nature_wonder.livejournal.com
Мне вас жаль.

Date: 2010-04-01 04:56 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Да вы просто завидуете.

Date: 2010-04-01 04:28 pm (UTC)
From: [identity profile] lyuden.livejournal.com
Выше отметились те оставшиеся 4 человека которые прочитали и поняли Кларка.

Date: 2010-04-01 05:34 pm (UTC)

Date: 2010-04-01 06:35 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Что, настолько все плохо?

Date: 2010-04-01 07:16 pm (UTC)
From: [identity profile] bvn-mai.livejournal.com
По моему наоборот - все это можно сделать. У Вас нет знакомого с парой миллионов свободных долларов?

Date: 2010-04-02 03:15 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Есть, конечно. Не знаю, насколько свободных, зато гораздо больше, чем с парой.

Date: 2010-04-03 05:05 pm (UTC)
From: [identity profile] bvn-mai.livejournal.com
Коллега, очень приятно иметь дело с умным человеком, - конечно 2 миллиона это только аванс, чтобы начать шевелиться. Короче, в понедельник я возвращаюсь из командировки, и мы сразу приступаем к строительству medium AI.
:)

Date: 2010-04-01 06:51 pm (UTC)
From: [identity profile] itman.livejournal.com
Подозрительно, что его, видимо, не особо цитируют.

Date: 2010-04-02 07:30 am (UTC)
From: [identity profile] plakhov.livejournal.com
У меня такое ощущение, что он не той аудитории об этом рассказывает. Лингвист, не знакомый плотно с теорией алгоритмической сложности, просто не понимает, чем эта его модель отличается от еще стопитисот аналогичных. Кларк об этом подозревает, судя по всему, и об одном и том же пишет уже года три, каждый раз пытаясь пересказать так, чтобы стало понятнее.

Date: 2010-04-01 08:17 pm (UTC)
From: [identity profile] cafone.livejournal.com
Раскопал в своих залежах ссылку на вот такую статеечку (http://expert.ru/printissues/expert/2009/45/interview_eto_budut_russkie_glaza/). Авось тебе будет интересно :)

Date: 2010-04-02 07:27 am (UTC)
From: [identity profile] plakhov.livejournal.com
Спасибо

Date: 2010-04-02 01:16 am (UTC)
From: (Anonymous)
Пересказать Алексу Ваш пост или не надо?

Date: 2010-04-02 07:27 am (UTC)
From: [identity profile] plakhov.livejournal.com
Перескажите, пожалуйста. А то он, судя по статьям, почему-то уверен, что решает проблему natural language acquisition, и годами пытается рассказать обо всём этом лингвистам так, чтобы они, наконец, поняли. :)

Date: 2010-04-02 06:17 am (UTC)
From: [identity profile] malaya-zemlya.livejournal.com
О, Когда я последний раз плотно читал про концепты, задачу их определения подозревали на NP-hardness.
Если это не хохма, то у меня вдруг появилась вера в будущее.

Date: 2010-04-02 01:56 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Прикольно, правда для тупого робота, водящего машину, вроде бы недостаточно, в силу полного отсутствия рефлексии. То есть можно будет использовать это как составную часть, которая умеет собственно распознавать входной поток, а дальше уже обычный алгоритм (в смысле, написанный на обычном языке программирования -- как их называть, чтобы отличать от таких штук?) решает, куда рулить, наказывает распознавалку за ошибки етс.

Date: 2010-04-02 03:02 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Я распространяться не стал особенно, но тут как раз всё понятнее. "Причинно-следственные связи" прямо выражаются в терминах LOMoC-подобных структур, а поверх них уже можно тупо любой планировщик писать, хоть прямо из "AI:Modern Approach".
Т.е. кастомизировать все это добро, конечно, надо будет, но не намного серьезнее, чем правильная целевая функция, и вшитая "модель тела".

Date: 2010-04-02 02:42 pm (UTC)
From: [identity profile] musasy.livejournal.com
У меня есть мысль, что машина, которая будет осознавать себя подобно человеку, должна не иметь доступа к тем частям своего устройства, которые занимаются низкоуровнемым обслуживанием сознания — распознанием образов, установлением ассоциативных связей, поиском по памяти и т.д. Возможно, "тайна сознания" человека заключается именно в том, что эти процессы в собственном мозгу скрыты от сознания.
Для меня критерий разумности — способность в твроческой переработке информации и потребность в ней.

Date: 2010-04-02 02:54 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Не про твою мысль, а скорее о том, почему мне такие мысли вообще сложно обсуждать. Дело в том, что я давно взял за правило не пользоваться интроспекцией (и прочими самонаблюдениями) в рассуждениях об интеллекте. Сразу после того, как узнал, что это в когнитивной психологии забанено уже лет 50 как. Ну и, соответственно, не вижу смысла высказывать гипотезы в такой форме, что проверить их можно только с помощью интроспекции.

Date: 2010-04-02 03:19 pm (UTC)
From: [identity profile] musasy.livejournal.com
Короче, я понял, что понижаю уровень дискуссии. Извиняюсь. ))

Date: 2010-04-04 07:12 am (UTC)
From: [identity profile] http://users.livejournal.com/_foreseer/
Hinton strikes back интересно, что он не привел результат своих же людей, что добавление новых уровней ничего не дает, если использовать более качественное обучение. Тем не менее про картинки и звук - прикольно.

Date: 2010-04-05 08:17 am (UTC)
From: [identity profile] areoh.livejournal.com
Лет десять назад читал про парсинг естественного языка, но как тогда так и сейчас не понятно одно. Вот распарсили предложение "На столе лежит зеленое яблоко", узнали где сказуемое, подлежащее, глагол и все такое, но это ж надо засунуть в какую то базу знаний, разве нет? В языках программирования - это AST, которое потом трансформируют толи байт код толи в другой язык. Иначе какой смысл в парсере?

Profile

plakhov: (Default)
plakhov

August 2017

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 27th, 2025 04:46 pm
Powered by Dreamwidth Studios