Искусственный интеллект. Время бежит, вещи меняются…
В одном из очередных ток-шоу родители возмущались сыном, который в свободное время погружается в виртуальный мир, придуманный. Но при этом ему советуют почитать Гоголя, Дюма, Пушкина… В конце концов, сын не выдержал и ответил, что те же книги — это тоже придуманные миры, чем ошарашил присутствующих. Противостояние поколений? Нет, обыкновенное развитие общества. В данном случае стоит напомнить, что "техно-" в переводе с древнегреческого означает не что иное как "мастерство". Многие сейчас несерьезно или очень настороженно относятся к достижениям в области искусственного интеллекта, а некоторые недопонимают всю важность того, что происходит в этом сегменте сейчас, насколько необходима подготовка нашего общества к внедрению в него компьютеров в качестве неотъемлемых участников.
На самом деле, зря так часто ругают молодежь за излишнюю увлеченность компьютерными технологиями. Дело в том, что на базе игр, современных обучающих программ, математического моделирования ситуаций откатываются новые уровни и механизмы взаимодействия, и можно сказать, как бы угрожающе это ни звучало, о появлении "цифрового", или "технического", общества, где компьютеры и люди станут выступать на равных. Нет, это не фантастика, а констатация. И речь идет не о сообществе, а об обществе. Даже сейчас все выбранные стратегии и тактики в любой из отраслей можно качественно оценивать как материально, так и позиционно, и вместо интуитивного поведения почти всегда приветствуется точный математический расчет. Например, сегодня самой стандартной задачей в рамках изучения искусственного интеллекта является поиск оптимального маршрута по выбранной карте. Если раньше (20-40 лет назад) по этому поводу производились серьезнейшие научные исследования, то сейчас такая операция является типовой. Разработана методология некоторых стандартных стратегий поиска, составляются деревья поиска и т.д. Но, по существу, это самый тривиальный случай — при желании такие расчеты может произвести обычный человек, не обладающий большими интеллектуальными способностями. Хотя многие уже полагаются только на компьютерные программы. Но есть задачи и гораздо сложнее. К тому же, их решения явно указывают на наличие человеческого интеллектуального предела, который лучше подсчитывать не по количеству нейронов нашего мозга, сравнивая с транзисторами, отнюдь…
***
К примеру, мы знаем, что мастер спорта по шахматам может просчитать ситуацию на несколько ходов вперед. Изначально кажется, все просто, но давайте подумаем: а что это значит математически? Каждый ход подразумевает возможность изменения позиции в среднем на 40 вариантов. Исходя из этого, при расчете двух ходов наперед мы подразумеваем 40 в квадрате вариантов развития ситуации, то есть 1600. Если расчет идет на пять ходов вперед, то мы получаем 40 в пятой степени вариантов, а это, если записать числами, 102.400.000. Чем же так интересно решение именно шахматных задач? По существу, хоть мы программным образом и выбираем наиболее оптимальный ход, на самом деле рассчитываем возможность влияния на незнакомый программе интерфейс игрока для того, чтобы добиться необходимого результата — победы. Для отсечения неперспективных ветвей поиска, а следовательно, уменьшения количества расчетов, в рамках такого ПО предусматриваются специальные блоки оценочных функций. Причем они не только высчитывают материальную оценку по количеству фигур на доске, ведь соотношение сил во многом зависит и от позиции. Поэтому при выборе того или иного хода руководствуются множеством параметров. Мало того, для качественной оценки компьютерная программа (или профессиональный игрок) должна думать не только за себя, но и за соперника, то есть рассчитывать оптимальные варианты и с его стороны. Тогда оценка будет наиболее качественной. Наиболее интересно в этом плане выглядят соревнования различных программ. Ведь не секрет, что большинство из них подразумевает собственную структуру и организацию вложенных алгоритмов, хоть иногда и сделанных по идентичной методологии. А интересно в данном случае одно: играющая программа... не знает как устроена другая, даже не подозревает, на каком языке программирования та написана и на базе какого компьютера работает. Все взаимодействие происходит только в рамках шахматной доски — игрового поля, или, говоря более техническим языком, общего интерфейса взаимодействий. Да, многие из профессионалов сейчас вспомнят новые технологии в программировании — к примеру, компоненториентированное или интерфейсноориентированное. Практически именно об этом идет речь. Но интерфейсноориентированное программирование (та же технология COM) подразумевает наличие ведомого и ведущего элементов системы. В ситуации с шахматами задачей ИИ программы является подчинение соперника, превращения его в ведомый элемент своей схемы (побеждает сильнейший), хотя изначально они находятся в позиции равных. Все большей частью зависит от качества вложенных алгоритмов и — самое главное — реализации оценочной функции.
Немного непонятно, причем же здесь шахматы по отношению к нашему быту? ОК. Допустим, мы рассчитываем сложную экономическую модель, которая должна предсказать появление кризисных ситуаций, а также возможности выхода из них. В учет нужно брать огромное количество различных параметров, зачастую плотно взаимосвязанных между собой, а в некоторых случаях эти взаимосвязи прослеживаются неявно, но существуют. Например: улучшение уровня жизни > рождаемость > потребность в иностранной рабочей силе > активное проявление новой культуры > изменение политической ситуации. И это только одна из возможных цепей взаимосвязи. Таким образом, говоря простыми словами, при каком-либо конкретном ходе оказывается прямое воздействие на состояние системы. Выгодно это или нет? Для этого нужна комплексная системная оценка, причем не только материальная, к расчетам чего мы все привыкли, но и позиционная. Мало того, расчеты должны предусматривать не только текущий момент, но и будущее. Взаимодействие модулей через общие интерфейсы на позиции равных (а не ведущих или ведомых) также заслуживает отдельного внимания. Например, у нас есть программа, которая рассчитывает оптимальные действия для указанной выше цепочки. Но есть и другая программа, которая отвечает за какой-либо сегмент сельского хозяйства. Например, высчитывает эффективность применения удобрений, зависимость влияния этого действия на окружающую среду и т.п. И основной задачей их взаимодействия является соблюдение баланса и выработка необходимых решений. При использовании ведущего и ведомого элементов команда будет производиться "сверху вниз", и это старый метод, практически подразумевающий отсутствие ИИ как такового. Если же они общаются на равных, то решение вырабатывается совместно, примерно так, как это происходит в шахматных партиях. Например, если первая система предупреждает о таком-то ходе, она проверяет, как поведет себя другая, и как это действие, в конце концов, повлияет на собственные параметры, их состояние. Ведь на самом деле неспроста такая дисциплина, как искусственный интеллект, очень много заимствует из математической статистики и анализа. Это ее мощнейшие структурные блоки. А почему мы активно вспоминаем шахматы? Дело в том, что принятие решения в данной ситуации очень сильно напоминает алгоритм поиска лучшего хода с выбором наиболее оптимальных ветвей, формированием стеков LIFO и т.д.
В завершение
Тривиальный вопрос о том, стоит ли сейчас передавать управление компьютеру? Это больше относится к телепрограммам сенсаций. Процесс передачи происходит сейчас естественным путем, например, с автоматизацией множества отдельных специализаций и производственных процессов. Насчет передачи полноценного управления… Для того, чтобы превзойти лучших игроков мира по шахматам (людей, обладающих недюжинным интеллектом), разработчикам программ понадобилось около 50-60 лет. И как, например, для вас, современников, будет звучать такой вопрос: компьютер DeepBlue может заменить чемпиона мира по шахматам? Большинство ответит, что сможет, несмотря на принципиальное отличие человека и машины. Поэтому самым главным моментом при формировании новых поколений является реализация полноценного и взаимовыгодного общения между человеческим обществом и компьютерными системами, которые стали уже неотъемлемой частью жизни наших современников.
Кристофер, christopher@tut.by
На самом деле, зря так часто ругают молодежь за излишнюю увлеченность компьютерными технологиями. Дело в том, что на базе игр, современных обучающих программ, математического моделирования ситуаций откатываются новые уровни и механизмы взаимодействия, и можно сказать, как бы угрожающе это ни звучало, о появлении "цифрового", или "технического", общества, где компьютеры и люди станут выступать на равных. Нет, это не фантастика, а констатация. И речь идет не о сообществе, а об обществе. Даже сейчас все выбранные стратегии и тактики в любой из отраслей можно качественно оценивать как материально, так и позиционно, и вместо интуитивного поведения почти всегда приветствуется точный математический расчет. Например, сегодня самой стандартной задачей в рамках изучения искусственного интеллекта является поиск оптимального маршрута по выбранной карте. Если раньше (20-40 лет назад) по этому поводу производились серьезнейшие научные исследования, то сейчас такая операция является типовой. Разработана методология некоторых стандартных стратегий поиска, составляются деревья поиска и т.д. Но, по существу, это самый тривиальный случай — при желании такие расчеты может произвести обычный человек, не обладающий большими интеллектуальными способностями. Хотя многие уже полагаются только на компьютерные программы. Но есть задачи и гораздо сложнее. К тому же, их решения явно указывают на наличие человеческого интеллектуального предела, который лучше подсчитывать не по количеству нейронов нашего мозга, сравнивая с транзисторами, отнюдь…
***
К примеру, мы знаем, что мастер спорта по шахматам может просчитать ситуацию на несколько ходов вперед. Изначально кажется, все просто, но давайте подумаем: а что это значит математически? Каждый ход подразумевает возможность изменения позиции в среднем на 40 вариантов. Исходя из этого, при расчете двух ходов наперед мы подразумеваем 40 в квадрате вариантов развития ситуации, то есть 1600. Если расчет идет на пять ходов вперед, то мы получаем 40 в пятой степени вариантов, а это, если записать числами, 102.400.000. Чем же так интересно решение именно шахматных задач? По существу, хоть мы программным образом и выбираем наиболее оптимальный ход, на самом деле рассчитываем возможность влияния на незнакомый программе интерфейс игрока для того, чтобы добиться необходимого результата — победы. Для отсечения неперспективных ветвей поиска, а следовательно, уменьшения количества расчетов, в рамках такого ПО предусматриваются специальные блоки оценочных функций. Причем они не только высчитывают материальную оценку по количеству фигур на доске, ведь соотношение сил во многом зависит и от позиции. Поэтому при выборе того или иного хода руководствуются множеством параметров. Мало того, для качественной оценки компьютерная программа (или профессиональный игрок) должна думать не только за себя, но и за соперника, то есть рассчитывать оптимальные варианты и с его стороны. Тогда оценка будет наиболее качественной. Наиболее интересно в этом плане выглядят соревнования различных программ. Ведь не секрет, что большинство из них подразумевает собственную структуру и организацию вложенных алгоритмов, хоть иногда и сделанных по идентичной методологии. А интересно в данном случае одно: играющая программа... не знает как устроена другая, даже не подозревает, на каком языке программирования та написана и на базе какого компьютера работает. Все взаимодействие происходит только в рамках шахматной доски — игрового поля, или, говоря более техническим языком, общего интерфейса взаимодействий. Да, многие из профессионалов сейчас вспомнят новые технологии в программировании — к примеру, компоненториентированное или интерфейсноориентированное. Практически именно об этом идет речь. Но интерфейсноориентированное программирование (та же технология COM) подразумевает наличие ведомого и ведущего элементов системы. В ситуации с шахматами задачей ИИ программы является подчинение соперника, превращения его в ведомый элемент своей схемы (побеждает сильнейший), хотя изначально они находятся в позиции равных. Все большей частью зависит от качества вложенных алгоритмов и — самое главное — реализации оценочной функции.
Немного непонятно, причем же здесь шахматы по отношению к нашему быту? ОК. Допустим, мы рассчитываем сложную экономическую модель, которая должна предсказать появление кризисных ситуаций, а также возможности выхода из них. В учет нужно брать огромное количество различных параметров, зачастую плотно взаимосвязанных между собой, а в некоторых случаях эти взаимосвязи прослеживаются неявно, но существуют. Например: улучшение уровня жизни > рождаемость > потребность в иностранной рабочей силе > активное проявление новой культуры > изменение политической ситуации. И это только одна из возможных цепей взаимосвязи. Таким образом, говоря простыми словами, при каком-либо конкретном ходе оказывается прямое воздействие на состояние системы. Выгодно это или нет? Для этого нужна комплексная системная оценка, причем не только материальная, к расчетам чего мы все привыкли, но и позиционная. Мало того, расчеты должны предусматривать не только текущий момент, но и будущее. Взаимодействие модулей через общие интерфейсы на позиции равных (а не ведущих или ведомых) также заслуживает отдельного внимания. Например, у нас есть программа, которая рассчитывает оптимальные действия для указанной выше цепочки. Но есть и другая программа, которая отвечает за какой-либо сегмент сельского хозяйства. Например, высчитывает эффективность применения удобрений, зависимость влияния этого действия на окружающую среду и т.п. И основной задачей их взаимодействия является соблюдение баланса и выработка необходимых решений. При использовании ведущего и ведомого элементов команда будет производиться "сверху вниз", и это старый метод, практически подразумевающий отсутствие ИИ как такового. Если же они общаются на равных, то решение вырабатывается совместно, примерно так, как это происходит в шахматных партиях. Например, если первая система предупреждает о таком-то ходе, она проверяет, как поведет себя другая, и как это действие, в конце концов, повлияет на собственные параметры, их состояние. Ведь на самом деле неспроста такая дисциплина, как искусственный интеллект, очень много заимствует из математической статистики и анализа. Это ее мощнейшие структурные блоки. А почему мы активно вспоминаем шахматы? Дело в том, что принятие решения в данной ситуации очень сильно напоминает алгоритм поиска лучшего хода с выбором наиболее оптимальных ветвей, формированием стеков LIFO и т.д.
В завершение
Тривиальный вопрос о том, стоит ли сейчас передавать управление компьютеру? Это больше относится к телепрограммам сенсаций. Процесс передачи происходит сейчас естественным путем, например, с автоматизацией множества отдельных специализаций и производственных процессов. Насчет передачи полноценного управления… Для того, чтобы превзойти лучших игроков мира по шахматам (людей, обладающих недюжинным интеллектом), разработчикам программ понадобилось около 50-60 лет. И как, например, для вас, современников, будет звучать такой вопрос: компьютер DeepBlue может заменить чемпиона мира по шахматам? Большинство ответит, что сможет, несмотря на принципиальное отличие человека и машины. Поэтому самым главным моментом при формировании новых поколений является реализация полноценного и взаимовыгодного общения между человеческим обществом и компьютерными системами, которые стали уже неотъемлемой частью жизни наших современников.
Кристофер, christopher@tut.by
Компьютерная газета. Статья была опубликована в номере 37 за 2008 год в рубрике технологии