Мысли об искусственном интеллекте
Спонсор поста - Быстрое получение гражданства РФ иностранными гражданами.
Искусственный интеллект на то и искусственный, что его кто-то должен создать, и, судя по всему, делать это придётся человеку. Просто так ничто из ничего не рождается, поэтому идеи по созданию ИИ нужно подсматривать в готовых реализациях - наша с Вами жизнь.
Всем интересующимся вопросом ИИ советую почитать соответствующую литературу. Я же её не читал, поэтому буду говорить, вероятно, глупости, но они ценны как раз тем, что я не читал всех этих книг.
Одной из главных задач проектирования ИИ является реализация поведенческой модели, анализ её в зависимости от разных условий и внешних воздействий и прогнозирование её состояния в перспективе. Я думаю, что ИИ можно построить только по пути решения задачи от частного к общему, а ни в коем случае не наоборот. Поясняю на примере: существует город, в нём улицы, по ним катаются машины. Предположим, что задача всех автомобилистов - двигаться постоянно, не останавливаясь.
При реализации модели поведения (и других моделей, к слову сказать) часто рассматривают систему элементов как единое целое, будь то автомобили, солдаты или какие-либо другие объекты. Все эти элементы обладают единым коллективным разумом. Вспомните каких-нибудь монстров из RPG или шутера, один засёк Вас, и вот - Вы уже цель каждого монстра на уровне. Такую систему просчитать элементарно, ибо всё поведение шаблонно и зависит лишь от одного набора факторов.
В действительности поведение на дорогах (раз уж мы взяли этот пример, то продолжим о нём) определяется Правилами Дорожного Движения и в какой-то мере личными качествами водителей. В замкнутой системе (город) каждый элемент (водитель) не знает о каждом элементе, а знает лишь только о тех, которые попадают в его поле зрения. Таким образом, решения он принимает, опираясь только на доступную ему информацию. В разрезе целой системы это означает практически бесконечное усложнение внутренних взаимодействий и отношений, которые невозможно точно просчитать за приемлемое время, если рассматривать всю систему в целом. Вот это я и называю настоящей поведенческой моделью, которая является, по сути, поведением сети самостоятельных узлов, принимающих собственные решения, не опираясь на коллективный разум. Заметьте, что мгновенный слепок состояний этих узлов уникален и никогда не должен повториться.
Этим я попытался показать, что реализовать модель поведения, основанную на ИИ, можно, только описав каждый элемент и его персональную модель поведения. Собственно, это практически невозможно при необходимости в сотне-другой элементов, но, к счастью, это и не требуется. Нужно лишь присмотреться к однотипным объектам получше.
Определение поведения всех объектов (здесь и далее речь идёт об однотипных объектах) складывается из уровней:
- Общие правила поведения, определённые для группы или типа объектов. В случае с автомобилями - ПДД.
- Индивидуальные характеристики-коэффициенты объекта, которые назначаются при инициализации случайным образом. Для автомобилей: износ деталей, смелость/глупость/уверенность водителя, легитимность прав водителя, его опыт и стаж.
- Наличие и воспринимаемые состояние и информация от объектов, попадающих в область восприятия объекта. Ключевое слово - воспринимаемое. Оно может не совпадать на 100% с реальным состоянием анализируемого объекта. Например, шум от автомобиля можно интерпретировать неверно и, соответственно, скорость его или расстояние воспринимается неверно. Нужно научить ИИ ошибаться.
Ещё лучше, если каждый объект будет строить “предположения” о дальнейшем развитии событий, оценивать их вероятности и подстраивать свою линию поведения под предполагаемый сюжет. Повторюсь, я сейчас говорю только о поведенческой модели. Процесс и физика передвижения - это дело не ИИ, а физического движка игры/приложения.
Критика здесь мной излагаемых мыслей может быть очень многогранной, не спорю. Но как программист уж точно могу сказать, что мощностей современных компьютеров хватит, чтобы одновременно просчитывать несколько десятков сложных объектов на сцене (часть системы) одновременно. Главное - грамотная реализация.