
- •Министерство образования и науки Российской Федерации
- •Цель лекции
- •План лекции
- •1 Происхождение вычислительных машин
- •2 Изучение алгоритмов
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Биты и их хранение
- •2 Оперативная память
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Устройства внешней памяти
- •3 Хранение и поиск файлов
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Представление числовых значений
- •2 Хранение целых чисел
- •3 Хранение дробей
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Представление текста
- •2 Представление изображений
- •Достоинства пиксельной графики
- •Недостатки пиксельной графики
- •Достоинства векторной графики
- •Недостатки векторной графики
- •3 Представление звука
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Сжатие изображений
- •2 Ошибки передачи данных
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Архитектура эвм
- •2 Связь процессора с другими устройствами
- •3 Другие архитектуры
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Машинный язык
- •2 Пример машинного языка
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Выполнение программы
- •2 Пример выполнения программы
- •3 Программы и данные
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Логические операции
- •2 Операции сдвига
- •3 Арифметические операции
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Эволюция операционных систем
- •2 Архитектура операционных систем
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Понятие процесса
- •2 Управление процессами
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Классификация сетей
- •2 Сетевые протоколы*
- •3 Безопасность сетей
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Понятие алгоритма
- •2 Представление алгоритма
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Теория решения задач
- •2 Общие методы решения задач
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Алгоритм последовательного поиска
- •2 Управление циклами
- •3 Алгоритм сортировки методом вставки
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Алгоритмы поиска и сортировки
- •2 Управление рекурсией
- •3 Разработка рекурсивных процедур
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Эффективность алгоритмов
- •2 Верификация программ
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Эволюция и классификация языков программирования
- •2 Концепции традиционного программирования
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Процедурные единицы
- •2 Реализация языка программирования
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Объектно-ориентированное программирование
- •2 Декларативное программирование
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Структуры данных
- •Integer Scores (2.9).
- •2 Статические и динамические структуры
- •3 Указатели
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Массивы
- •2 Списки
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Структура и функции стека
- •2 Реализация стека
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Очереди
- •2 Деревья
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Пользовательские типы данных
- •Int Age;
- •2 Классы
- •Int *StackEntries;
- •3 Стандартная библиотека шаблонов
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Роль операционной системы
- •2 Последовательные файлы
- •3 Вопросы программирования
- •0000000010000110
- •001100010011001100110100
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Основные положения индексации
- •2 Вопросы программирования
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Основные положения хеширования
- •2 Вопросы программирования
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Общие вопросы
- •2 Система управления базой данных
- •3 Поддержка целостности баз данных
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Модели баз данных
- •2 Реляционная модель баз данных
- •3 Объектно-ориентированные базы данных
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Интеллект и машины
- •2 Распознавание образов
- •3 Мышление
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Искусственные нейронные сети
- •2 Генетические алгоритмы
- •Контрольные вопросы
- •Невычислимые функции Цель лекции
- •План лекции
- •1 Основы машины Тьюринга
- •2 Невычислимая функция
- •3 Сложность задач
- •Листинг 1. Процедура MergeLists для объединения двух упорядоченных списков
- •Листинг 2. Алгоритм сортировки слиянием, реализованный в процедуре MergeSort
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Шифрование с открытым ключом
- •2 Модульная арифметика
- •Контрольные вопросы
- •Литература
- •Internet-ресурсы
Контрольные вопросы
1. Какие существуют модели баз данных?
2. В чем особенности реляционной базы данных?
3. В чем особенности объектно-ориентированной базы данных?
4. Какие функции возлагаются на систему управления базой данных.
6. Для чего предназначен язык SQL?
Лекция № 32 Машины и интеллект
Цель лекции
Изучить возможности и перспективы создания и развития искусственного интеллекта.
План лекции
1. Интеллект и машины.
2. Распознавание образов.
3. Мышление.
Главная цель ученых, занимающихся информационными технологиями, — создать машины, которые смогут общаться с собеседниками традиционными человеческими способами и продолжать развитие без вмешательства людей. Для этого требуется, чтобы машина «понимала», или осознавала, какая информация ей передана, и могла сделать выводы путем каких-либо умозаключений, исходя из полученных данных.
Как осознание, так и понимание лежат в области здравого смысла, который, хоть и является естественным для человеческого разума, но, очевидно, достаточно сложен для машин. В результате исследования в области, связанной с созданием искусственного интеллекта (artificial intelligence), все так же остаются на начальном уровне развития, если оценивать их цель связанные с ней ожидания.
1 Интеллект и машины
Хотя компьютеры часто персонифицируют, между их свойствами и свойствами человеческого разума есть важное отличие. Современные компьютеры могут быстро и правильно выполнять точно определенные задачи. Однако машины не обладают здравым смыслом. При возникновении ситуации, не предусмотренной программистом, производительность компьютера резко падает. В противоположность этому, человеческий ум зачастую теряется в сложных вычислениях, но обладает свойством понимания и осмысления. Поэтому, даже если машина превзойдет человека в вычислениях, связанных с ядерной физикой, то человек скорее осознает полученный результат и определит, какие вычисления потребуются далее.
Конечный результат или имитация. Если мы хотим создать машины, которые смогут решать сложные задачи без человеческого вмешательства, необходимо сделать машины более похожими на людей в том смысле, чтобы они обладали возможностью (или, по крайней мере, имитировали возможность) рассуждать. Осознав это требование, специалисты по вычислительной технике обратились к другим ученым — психологам и биологам — в надежде найти правила, которые можно применить к созданию более гибких компьютеров и программ. Теперь зачастую бывает трудно провести границу между исследованиями в этих новых областях и исследованиями, относящимися к вычислительной технике. Различие состоит скорее не в том, что уже сделано, но в целях. Например, психолог пытается глубже проникнуть в человеческий разум и узнать о процессах мышления; а ученый, специализирующийся на компьютерах, старается создать более умные машины.
Чтобы прояснить ситуацию, предположим, что специалист по вычислительной технике и психолог отдельно друг от друга приступили к работе над проектом по созданию программы для игры в покер. Компьютерный специалист захочет применить теорию вероятностей и статистику, чтобы получить программу, которая будет рассчитывать шансы, наугад блефовать, не выказывать эмоций и в результате максимизировать свои шансы на выигрыш. Психолог, с другой стороны, может разработать программу на основе теорий о человеческом мышлении и поведении. В результате проект может вылиться в создание нескольких различных программ; например, одна из них сможет играть агрессивно, а другую, напротив, можно будет легко запугать. В отличие от программы специалиста по компьютерам, программа психолога сможет «эмоционально втянуться» в игру и. проиграть все свои средства.
Истоки искусственного интеллекта. У попыток создания машин, имитирующих человеческое поведение, большая история, но многие согласятся, что современная область исследования искусственного интеллекта зародилась в 1950 году после выхода книги «Computing Machinery and Intelligence», автором которой является Алан Тьюринг (Alan Turing). Именно в этой книге Тьюринг высказал мысль о том, что машину можно запрограммировать для имитации интеллектуальных процессов. Название новой научной области — искусственный интеллект — впервые прозвучало несколько лет спустя в теперь уже легендарном проекте Джона Мак-Карти (John McCarthy). В нем говорилось, что «изучение искусственного интеллекта, которое будет проводиться летом 1956 года в Дартмутском колледже», исследует «предположение о том, что любой аспект обучения или любая другая возможность интеллекта теоретически может быть так точно описана, что машина будет в состоянии имитировать ее».
Обдумав это, можно понять, что главной Цель лекциию для компьютерного специалиста будет, вероятно, конечный результат действия программы. Такой подход называется ориентированным на конечный результат (performance oriented). В противоположность этому, психолог был бы более заинтересован в понимании процессов естественного интеллекта, а этот проект рассматривал бы как возможность проверки теорий, строя на их основе компьютерные модели. С этой точки зрения разработка «интеллектуальной» программы является лишь побочным продуктом другого исследования — понимания человеческого мышления и поведения. Этот подход называется имитационно-ориентированным (simulation oriented).
Другой пример различий между ориентированным на конечный результат и имитационно-ориентированным подходами можно найти в области обработки естественных языков и в лингвистике. Эти две области тесно связаны и используют возможности друг друга, хотя основные их цели различаются. Лингвисты изучают, как люди применяют естественные языки, а исследователи естественных языков заинтересованы в создании машин, которые смогут «понимать» языки. Системы обработки естественных языков, такие как переводчики документов и системы распознавания языковых команд, в большой степени зависят от знаний, полученных лингвистами, но зачастую обеспечивают полезные функции для ограниченной среды, для которой разрабатывается определенная система. Например, оболочка операционной системы не должна знать различные значения слова сору (это существительное или глагол?; есть ли у него какой-либо скрытый или переносный смысл?), ей необходимо лишь отличать его от других слов, таких как rename и delete. Таким образом, система обработки естественного языка может выполнить задачу правильно, хоть и не «красиво» с точки зрения лингвиста.
Тест Тьюринга. И ориентированный на производительность, и имитационно-ориентированный подходы значительны и вносят большой вклад в исследования искусственного интеллекта. Однако они также поднимают незаметные с первого взгляда философские вопросы по этой дисциплине. Представьте, например, обсуждение, которое может развиться, если спросить группу людей, демонстрируют ли интеллект программы для игры в покер, созданные компьютерным специалистом и психологом, и если да, какая же программа умнее. Определяется ли интеллект программы способностью выиграть или возможностью быть похожей на человека?
Второе мнение разделял Алан Тьюринг, который в 1950 году разработал тест (сейчас известный как тест Тьюринга (Turing test)) для оценки интеллекта машины. Предложение Тьюринга заключалось в том, что человек, который называется опрашивающим, общался с субъектом теста посредством системы ручного ввода текста, не зная, является ли этим субъектом тоже человек или машина. Интеллект машины признавался в случае, когда опрашивающий не мог определить, с кем он общался — с машиной или с человеком. Таким образом, тест Тьюринга оценивает способность машины быть похожей на человека. Тьюринг полагал, что к 2000 году у машин будет 30-процентный шанс пройти 5-минутный тест Тьюринга — и это предположение оказалось на удивление точным.
Известный пример сценария теста Тьюринга получился из программы DOCTOR (версии более общей системы под названием ELIZA), созданной Джозефом Вайзенбаумом в середине 60-х годов. Эта интерактивная программа представляла психологическое собеседование с психоаналитиком по фамилии Роджериан, причем компьютер играл роль доктора, а пользователь — пациента. На самом деле все, что делал DOCTOR — реструктурировал предложения, высказанные пациентом, согласно некоторым хорошо определенным правилам, и выводил их на экран. Например, на предложение «Я сегодня очень устал» DOCTOR мог ответить «Почему ты думаешь, что ты сегодня очень устал?» Если DOCTOR не мог распознать структуру предложения, он просто отвечал что-то типа «Продолжай» или «Очень интересно».
При создании программы DOCTOR Вайзенбаум основывался на изучении общения на естественных языках. С этой точки зрения психотерапия играла второстепенную роль, обеспечивая среду (или поле деятельности) для работы программы. К беспокойству Вайзенбаума, несколько психологов предложили использовать эту программу для настоящих сеансов психотерапии. (Теория Роджериана состоит в том, что пациент, а не психоаналитик должен вести дискуссию во время сеанса, и поэтому, как он представлял, компьютер может управлять дискуссией так же, как это делает врач.) Более того, DOCTOR производил настолько сильное впечатление понимающего человека, что многие, кто общался с ним, внезапно обнаруживали, что рассказывают о личных мыслях и чувствах, и во многих случаях становятся ведомой стороной машинного диалога в вопросах и ответах. В каком-то смысле, DOCTOR прошел тест Тьюринга. В результате обнаружились новые этические и технические проблемы.
Даже если машина пройдет тест Тьюринга, будет ли она считаться разумной? В действительности основная сложность при определении, обладает машина разумом или нет, заключается в определении, является ли машина на самом деле разумной или это только видимость. Интеллект — это внутренняя характеристика, существование которой определяется извне только косвенно в контексте диалога, состоящего из вопросов и реакций на них. Но доказывают ли разумные ответы фактическое существование интеллекта?
Машина для решения головоломки из восьми фишек. Если такие философские вопросы возникли уже при зарождении теории искусственного интеллекта, неудивительно, что эта тема ассоциируется с аурой загадочности, которую зачастую эксплуатируют средства массовой информации, писатели-фантасты и режиссеры зрелищных фильмов. К счастью, сейчас нам не требуется решать этические вопросы, мы всего лишь хотим исследовать, как можно запрограммировать машину, чтобы она выглядела разумной. Подойдем к решению, начав с обсуждения устройства машины с элементарными интеллектуальными характеристиками.
Наша машина имеет вид коробки, оборудованной захватом, видеокамерой и манипулятором с резиновым наконечником, который не скользит при передвижении фишки (рис. 1).
Рисунок 1 – Машина для решения головоломки
Представьте, что эта машина установлена на столе, где лежит головоломка из восьми фишек. Такая головоломка представляет собой восемь квадратных плиток, помеченных цифрами от 1 до 8, лежащих в открытой коробке, вмещающей 9 таких фишек (три строки и три столбца). Среди фишек есть одно свободное место, на которое можно передвинуть любую из соседних фишек. В данный момент головоломка собрана, как показано на рис. 2.
Рисунок 2 – Собранная головоломка
Мы начинаем с того, что берем фишки и перемещаем их, последовательно выталкивая произвольно выбранные фишки на свободное место. Затем мы включаем машину, и захват начинает раскрываться и закрываться, как бы прося головоломку. Мы помещаем ее в захват, и он фиксирует головоломку. Через некоторое время манипулятор опускается и начинает толкать фишки внутри коробки (в каком-то порядке), пока не будет восстановлен исходный порядок. После этого машина отпускает головоломку и автоматически выключается. Так как такая машина должна обладать элементарными возможностями восприятия и мышления, на основе ее дизайна мы будем рассматривать темы двух следующих разделов.