Справочник автора/Искусственный интеллект: различия между версиями

Материал из Posmotreli
Перейти к навигации Перейти к поиску
(Новая страница: «{{WIP}} '''Искусственный интеллект''' — общее название реальных и вымышленных компьютерных программ, алгоритмов и устройств, позволяющих машинно решать задачи, традиционно считающиеся человеческими. Это определение, как и сами границы понятия, очень расп...»)
Метка: отменено
м (1 версия импортирована)
(нет различий)

Версия 17:52, 8 мая 2022

Dw-worker.jpgСтройплощадка, наденьте каску!
Эта статья сейчас в процессе написания. Автор планирует нечто объёмное и застрачивает сюда текст по частям. Пожалуйста, дождитесь завершения работы, и только потом редактируйте: не создавайте неудобства себе и автору.


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

Терминологический вопрос

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

Какие задачи решает

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

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

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

Подходы к решению задач

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

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

Мозг человека — сложное устройство, эволюционно адаптированное к хорошему решению ряда задач. Львиная доля его деятельности на этом поприще нашему собственному сознанию незаметна. Как и у животных, у человека сильно развито интуитивное, внелогическое мышление. Передвигаясь на ногах, пережевывая пищу, переводя зрительные ощущения в восприятие конкретных пространственных образов, мы можем почти не задумываться об этом. Бессознательная деятельность мозга быстра, отточена эволюцией на протяжении сотен миллионов лет, хорошо оптимизирована и непохожа на то, что мы обычно называем интеллектом, при этом составляя его важнейшую часть. (Далее она будет для простоты называться интуитивной; это не означает, что в ней есть что-то неалгоритмическое или даже мистическое, это означает, что она недоступна непосредственно сознанию и ее алгоритмы существенно отличаются от таких, какие мы привыкли осмыслять как алгоритмы.)

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

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

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

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

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

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

Несмотря на то, что большинство алгоритмов сейчас строится с аналитическим подходом, существуют и аналоги интуитивного подхода для компьютеров. Это, например, перцептрон, нейронные сети, машинное обучение и существенная часть того, что сейчас называется Data Science. (Многие из задач, решаемых этими инструментами, как раз являются традиционно человеческими и, следовательно, их машинное решение — это ИИ.) Идея такова: мы не знаем или знаем плохо, как можно семантизировать какую-либо предметную область (эволюция тоже не знала, так что аналогия машинных «интуитивных» алгоритмов с человеческими ближе, чем такая же для аналитических), но мы сами как-то умеем решать, так что давайте построим сложную систему, которая будет тренироваться подобно тому, как тренируются наши рефлексы, и попытаемся научить ее выдавать правильные ответы. Сейчас подобные алгоритмы успешно работают с распознаванием образом, задачами классификации, прогнозированием поведения сложных систем и в других областях. Несмотря на успешность и бурный рост этой области, нельзя не отметить, что такой подход к решению задач по сути мало чем отличается от поиска решения уравнения подбором вместо анализа. ИИ, работающий подобным образом и пытающийся предсказать траекторию камня, не будет ничего знать о законах физики, зато, покопавшись в своей базе данных, куда записаны другие траектории, и экстраполировав из каких-либо общих соображений имеющуюся, он с определенной вероятностью предскажет новую траекторию. То же делает человек, ловящий мяч в полете (см. выше про то, как мы берем яблоко со стола; в случае с мячом внутренние процессы и машины, и человека будут достаточно похожи — в сравнении с аналитическим подходом, конечно).

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

Слабый и сильный

Сингулярность

Проблема дружественного ИИ

Самоосознание

Антропоморфизм

См. также

Что почитать