вторник, 3 марта 2009 г.

Машина мыслить... может!

От людей, не работающих в области ИИ, я часто слышу такие слова:

"Машина основывается на имеющихся данных и только. Пусть количество этих данных будет великО, а качество -- сложнО...

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

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

Все дело в том, что в большинстве своем эти инструменты построены на основе императивного программирования -- разработчик задает в программе жесткий алгоритм решения задачи. Поэтому такая программа не может
  • решить задачу другим способом
  • или обработать не предусмотренные программистом при разработке входные данные.
Да, она будет работать быстро, будет делать только то, что вы в нее заложили... Но будет тупа, как пробка :)


Ах, да! Еще вы можете кусочки чужих решений всовывать в свои решения :) Прямо как в LEGO!

Если это ваш идеал (как разработчика) -- не стоит читать остаток статьи. Не тратьте время, не тревожьте душу! Ступайте и плодите такой софт себе на здоровье! Кришна вам в помощь.

А с оставшимися мы продолжим дальше.


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


Конечно, они были весьма не удовлетворены императивным подходом и обратили свою неудовлетворенность в другую сторону.

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

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

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


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

Бот может перестраивать последовательности действий по убиению врагов в зависимости от их действий.

Или разбивать целое на подзадачи.

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


В результате мы переходим на более высокий уровень абстракции (по-сравнению с императивным подходом). Тут программа уже работает с кусками алгоритмов и состояниями фрагментов объектной модели, как с типами данных!!! Это просто потрясающе!!!

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

Но ничего не дается даром. В данном случае приходится платить:
  • производительностью, но только до тех пор, пока мы не найдем новые способы оптимизации работы таких систем. Конечно, более интеллектуальные, чем развертывание циклов или inline-подстановки вызовов функций!
  • сложностью разработки. Есть проблема обучения такой системы. Ей ведь не скажешь, как нужно делать. Необходимо сконструировать ее знания так, чтобы она поступала нужным способом :)


А затем появились агенты и все стало еще веселее :)


воскресенье, 22 февраля 2009 г.

Автономность -- самое главное в агентах?

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

По ходу этого процесса я постараюсь делиться с общественностью наиболее интересными идеями.

Сегодня поговорим про автономность. Со всей ответственностью заявляю:

Самое главное свойство агентных систем с точки зрения массового потребителя -- автономность!

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



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


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

Сейчас такие задачи есть в любой области деятельности: от бытовой и до промышленности. Т.е. области, которые требуют одних лишь навыков, выполняются при помощи спинного мозга человека и которые вполне можно полностью автоматизировать уже на текущем технологическом уровне. Могу навскидку перечислить несколько:
  • Оцифровка бумажных книг (промышленные решения уже есть).
  • Администрирование серверов и другого ПО (самоадминистрирующиеся БД уже появились).
  • Электронный секретарь-помощник, следящий за вашими планами, задачами, контактами, покупками, потоками информации, пытающейся затопить ваш мозг и п.т.
  • Системы безопасности (современные решения от Kaspersky и Symantec становятся все более комплексными и умными).
  • Системы моделирования и оценки инженерных решений -- проникновение ИИ в данную область позволит еще больше автоматизировать инженерный поиск, и тем самым существенно ускорить разработку ПО, оборудования и устройств.
  • Уничтожение ближнего своего.

Как только подобные решения достигнут массового рынка, и смогут взаимодействовать друг с другом, наступят очень интересные времена:
  1. Прогресс ускорится еще больше
  2. Творческие личности и нонконформисты станут востребованы как никогда и получат в свои руки мощнейшие инструменты, автоматизирующие выполнение их замыслов
  3. Труд агентов-исполнителей станет дешевле и качественнее человеческого
  4. Появится огромная армия безработных. Китай и Индия разорятся(?) :)
  5. ...
А что думаете по этому поводу ВЫ???


среда, 21 января 2009 г.

Новый формат сайта про агентов! Уже скоро!

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

Этот тренд замечательно охарактеризовал Филип К. Дик: в романе "Убик" у него окружающий мир медленно превращается в дерьмо :)

Но не все в нашем мире становится со временем только хуже. Вокруг кризис, а мы -- развиваемся. Агентам после Нового Года вдруг стало тесно в формате блога, поэтому мы открываем специализированный портал по агентам на основе технологии wiki.

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

Будет много интересного, но постепенно: последние новости мирового сообщества по агентам, информация по учебным курсам, информация о наших проектах и наработки по агентам.

В настоящее время ведутся работы. Как только мы будем готовы выйти на публику -- сразу же размещу тут ссылку.

Вот! Не пейте с Дедом Морозом на брудершафт!

пятница, 9 января 2009 г.

"Искусственный интеллект. Современный подход". Новое издание уже на подходе???

Копаясь в очередной раз в 3 часа ночи на Amazon.com, случайно наткнулся на весьма интересную информацию. Похоже, грядет новое переиздание Библии Искусственного Интеллекта от Стюарта Рассела (University of California, Berkeley) и Питера Норвига (Google Inc.). Судите сами:


Artificial Intelligence (3rd Edition) (Hardcover) by Stuart Russell, Peter Norvig

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

  • Hardcover: 1108 pages
  • Publisher: Prentice Hall; 3 edition (July 11, 2009)
  • Language: English
  • ISBN-10: 0136042597

Product Description

The long-anticipated revision of this #1 selling book offers the most comprehensive, state of the art introduction to the theory and practice of artificial intelligence for modern applications. Intelligent Agents. Solving Problems by Searching. Informed Search Methods. Game Playing. Agents that Reason Logically. First-order Logic. Building a Knowledge Base. Inference in First-Order Logic. Logical Reasoning Systems. Practical Planning. Planning and Acting. Uncertainty. Probabilistic Reasoning Systems. Making Simple Decisions. Making Complex Decisions. Learning from Observations. Learning with Neural Networks. Reinforcement Learning. Knowledge in Learning. Agents that Communicate. Practical Communication in English. Perception. Robotics. For computer professionals, linguists, and cognitive scientists interested in artificial intelligence.


воскресенье, 23 ноября 2008 г.

Научные журналы по разработке ПО

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

Почему? Все просто: кризис, оптимизация и автоматизация процессов разработки ПО… ну вы меня поняли :)

Возможно, кому-то будут полезны ссылки на ведущие научные журналы в области разработки ПО. Естественно, все на английском. Список журналов экспортирован из delicious.