Искусственный интеллект и Большие Данные. Без хайпа и наукообразия
Евгений Шуремов
Книга содержит краткое изложение базовой проблематики, связанной с системами искусственного интеллекта, интеллектуальными информационными системами, технологиями Big Data и Data Mining. Изложение ориентировано на минимально подготовленных читателей, желающих получить общее представление по данным темам. Особое внимание уделено фундаментальным ограничениям возможностей реального применения этих чрезмерно «распиаренных» технологий.
Искусственный интеллект и Большие Данные
Без хайпа и наукообразия
Евгений Шуремов
© Евгений Шуремов, 2019
ISBN 978-5-0050-2072-7
Создано в интеллектуальной издательской системе Ridero
Введение
Данная публикация содержит краткое изложение базовой проблематики, связанной с системами искусственного интеллекта, интеллектуальными информационными системами, технологиями Больших Данных (Big Data) и методами раскопки данных (Data Mining), ставшими весьма популярными в последние годы. В отличие от большинства авторов, пишущих на эту тему, автор книги не склонен к бравурному оптимизму в отношении достижений в этой сфере.
Поэтому, если Вы оптимист, свято верующий в радужные перспективы интеллектуальных информационных технологий – НЕ читайте эту книгу. В особенности её последние главы и, тем более, заключение. Я не хочу, чтобы Вы расстроились. Живите в своём мире, копайтесь в больших данных в надежде получить прорывные результаты, так же как копались старатели времён «золотых лихорадок» в надежде намыть увесистые слитки золота в тоннах песка. Кому-то это удалось, но большинству – нет. Учите роботов играть в футбол или морщить лоб, как бы изображая человеческие эмоции, и считая, что это и есть настоящий искусственный интеллект. Блажен, кто верует, – легко тому на свете.
Если же Вы махровый скептик или хотя бы иногда сомневались в «алых парусах», то не исключено, что книга будет Вам чем-то полезной. Начинается всё как обычно в толстых талмудах изложением классики вопроса с уклоном в «за здравие», но ближе к концу всё больше тянуло писать «за упокой». Хотя и не без политеса реверансов модному поветрию.
Изложение ориентировано на минимально подготовленных читателей, желающих получить общее представление по данной теме. Поэтому здесь нет ни одной формулы или маловразумительных наукообразных схем, которыми изобилует большое число публикаций по рассматриваемой проблематике. Все объяснения делаются, что называется «на пальцах». К сожалению, это получилось не везде. Возможно, лучше получится в последующих изданиях. В изложении не удалось избежать некоторых специфических терминов и общепринятых аббревиатур из области информационных технологий. Но даже, если Вам они не знакомы, то всё сделано так, чтобы это не помешало целостному восприятию.
Предполагается, что книга будет иметь Интернет-поддержку на сайте автора http://shurem.ru в разделе Поддержка книг. С пожеланиями и предложениями можно обратиться по адресу shurem@mail.ru (mailto:shurem@mail.ru)
Системы искусственного интеллекта
Понятие искусственного интеллекта
На настоящий момент не существует единого и всеобъемлющего понятия того, что такое «интеллект» (от лат. intellectus – «ум, рассудок, «разум»). Обычно под этим термином подразумевают способность индивида решать задачи приспособления к изменяющимся условиям внешней среды за счёт целенаправленного использования и преобразования имеющихся у него знаний об окружающем мире. Для возможности решения задач адаптации к изменяющимся внешним условиям, индивид должен обладать некоторой совокупностью знаний об окружающем его мире и способностью к их применению и целенаправленной трансформации для разрешения конкретной проблемы. При этом возможность целенаправленной трансформации знаний возникает только тогда, когда имеющиеся знания определённым образом упорядочены, то есть индивид имеет некое целостное представление об окружающей его внешней среде или хотя бы той её части, которая непосредственно связана с вновь возникшей проблемой.
В данной интерпретации интеллектуальной задачей является такая задача, решение которой невозможно только за счёт прямого применения уже имеющегося опыта. Для возможности решения такого рода задач индивид должен быть способен к накоплению и обобщению опыта, знаний и навыков. При наличии этих способностей индивид может адаптироваться к изменяющимся условиям внешней среды, выражающимся в новых знаниях о проблемной ситуации. В этом смысле интеллект – это некоторый универсальный механизм обобщения знаний, способный разрабатывать на основе имеющихся знаний алгоритмы решения разнообразных конкретных задач.
Долгое время считалось, что способностью к интеллектуальной деятельности – накоплению, обобщению и трансформации знаний в целях выработки решений и получения новых знаний – обладает только человек. На протяжении долгого времени философы вели споры о процессе познания мира человеком, а нейрофизиологи и психологи создавали различные теории, объясняющие механизмы человеческого мышления. В середине XX века были созданы первые компьютеры, возможности которых в части накопления и преобразования данных существенно превосходили человеческие. Поэтому закономерно возник вопрос: могут ли компьютеры достигнуть уровня возможностей обобщения и трансформации знаний человеком?
На этой основе возникло новое научное направление, посвящённое исследованиям в области искусственного интеллекта, основной целью которых является создание искусственных систем, способных накапливать и обобщать знания в целях их последующей трансформации для решения задач, возникающих в конкретной предметной области.
Искусственный интеллект (ИИ; англ. artificial intelligence, AI) – это наука и технологии создания искусственных систем, способных решать интеллектуальные задачи.
В такой интерпретации системы ИИ (СИИ) не обязательно должны воспроизводить механизмы человеческого мышления, но и могут основываться на каких-то иных принципах. Эту точку зрения впервые представил Джон Маккарти на конференции в Дартмутском университете в 1956 году, указав на то, что исследователи и создатели СИИ не должны ограничиваться только используемыми людьми методами накопления, обобщения и трансформации знаний, если это требуется для решения конкретных проблем.
Существует и другая точка зрения, в соответствии с которой интеллект является исключительно свойством биологической сущности. В соответствии с ней под искусственным интеллектом понимается научное направление, связанное с программно-аппаратным моделированием интеллектуальной человеческой деятельности.
Искусственный интеллект как наука связан со множеством других научных направлений: философией, биологией, психологией, кибернетикой и другими, в совокупности с ними образуя более общую науку – когнитологию. Философов интересует: что вообще такое ИИ; возможно ли его создание; какими могут быть последствия создания ИИ для человечества. Психологи разрабатывают проблемы моделирования процессов анализа и принятия человеком решений в неопределённых ситуациях. Кибернетики изучают способы формализованного представления знаний и процессов их целенаправленной трансформации в компьютерных системах, а также методы создания, развития и эксплуатации интеллектуальных информационных систем.
Основной вопрос: «может ли машина мыслить?» до сих пор не имеет и ещё долго не будет иметь единого ответа. С точки зрения Христианства это невозможно, поскольку только Бог может наделить что-либо разумом, как наделил разумом человека. Поэтому создать устройство, способное мыслить, человек может только исполняя волю Божию. То есть попросту говоря под контролем и руководством Бога, перенося на устройство благодать Божию. С точки зрения буддистов неприемлемо само представление о том, что неодушевлённые материальные предметы способны к возможности осознания и познанию чего-либо. По мнению марксистов, как наиболее последовательных сторонников диалектического мышления, любое сложное техническое устройство, даже работающее по очень сложному алгоритму, является только перенесённой на него функцией человека. Следовательно, оно только выполняет определённые действия, которым его «научил» человек. В противоположность им большинство кибернетиков считают, что машина сможет мыслить, если научится манипулировать системой некоторым образом формализованных знаний, получая и накапливая новые знания в процессе решения конкретных задач. При этом, по мнению многих из них, она ещё и превзойдёт человека в решении многих задач за счёт практически неограниченной памяти и вычислительных возможностей.
Проблемы развития ИИ ставят на обсуждение также много этических вопросов. Прежде всего, обсуждаются глобальные риски, которые могут возникнуть, если внечеловеческий ИИ не будет запрограммирован на дружественность к человеку. То есть, если машина всё-таки может мыслить, то она в конце концов превзойдёт человека во всём и не факт, что посчитает наличие людей на Земле целесообразным.
Значительное внимание ИИ уделяют и деятели искусства. По этому поводу написано множество книг и снято большое число фильмов. В научно-фантастической литературе и фильмах то и дело возникают сюжеты, согласно которым ИИ пытается выйти из под контроля человека и доминировать над миром. Некоторые писатели рассматривают проблему глобальных изменений в обществе, вызванных возможной «киборгизацией» людей за счёт интеграции живой материи и имплантированных в тело технических устройств.
История развития систем искусственного интеллекта
Традиционно историю развития систем искусственного интеллекта начинают с середины XX века, ознаменовавшейся появлением первых компьютеров и внедрением термина «Artificial Intelligence» – Искусственный Интеллект. Однако ещё в XIX веке в России коллежский советник Семён Николаевич Корсаков (1787—1853) уже ставил задачу усиления возможностей человеческого ума за счёт применения специальных технических устройств. В 1832 г. он опубликовал описание нескольких механических устройств («интеллектуальных машин»), предназначенных для частичной механизации решения задач поиска, сравнения и классификации. В конструкции этих машин предполагалось применение перфорированных карт, выполнявших функции современных баз знаний. «Интеллектуальные машины» С. Н. Корсакова предназначались для определения наиболее подходящих для конкретных пациентов лекарств на основании данных о симптомах их заболеваний.
С появлением и быстрым развитием электронных вычислительных машин (ЭВМ), наряду с массовой разработкой их неинтеллектуальных, но весьма востребованных приложений для самых разных сфер деятельности, закономерно возникли вопросы относительно возможностей их применения для решения интеллектуальных задач. Это потребовало решения множества сложных научно-практических задач и с тех пор новое научное направление получило бурное развитие.
В 1943 г. нейробиолог Уоррен Мак-Каллок и математик Уолтер Питтс в статье «Логическое исчисление идей, присущих нервной деятельности», основываясь на модели нервной системы как сложной сети взаимосвязанных нейронов, выдвинули идею о том, что логика поведения живых существ может быть описана сетью двоичных переключателей, имеющих состояния «Включено» и «Выключено». В предложенной ими модели нервной системы узлы связаны друг с другом таким образом, что активность каждого них управляется активностью других узлов в предшествующие моменты времени. То есть конкретный узел перейдёт состояние «Включено» только в том случае, когда некоторое значительное число смежных с ним узлов также имеют состояние «Включено». В дальнейшем, высказанные авторами статьи предложения стали основой для формирования многих идей построения самоорганизующихся систем, в частности, искусственных нейронных сетей.
В 1949 году Дональд Хебб предложил первый работающий алгоритм обучения искусственных нейронных сетей.
В 1950 году британский математик Алан Тьюринг опубликовал в журнале «Mind» статью «Вычислительная машина и интеллект», в которой описал тест для проверки программы на интеллектуальность. Он предложил поместить исследователя и программу в разные комнаты и до тех пор, пока исследователь не определит, кто за стеной – человек или программа, считать поведение программы разумным. Это было одно из первых определений интеллектуальности, то есть А. Тьюринг предложил называть интеллектуальным такое поведение программы, которое будет моделировать разумное поведение человека. В настоящее время уже существуют и активно эксплуатируются системы искусственного интеллекта, общение с которыми человек не может отличить от общения с другим человеком, то есть уверенно проходящие тест Тьюринга.
В 1956 году прошёл первый большой научный семинар, посвящённый искусственному интеллекту. Вскоре после его окончания (1956—1959 гг.) Джон Маккарти разработал LISP – язык программирования, впоследствии широко применявшийся для разработки СИИ.
В 1958 Френк Розенблатт разработал однослойный перцептрон и продемонстрировал его возможности для решения задач классификации. Перцептрон до сих пор используют для решения задач распознавания образов, прогнозирования погоды и в других приложениях ИИ
В 1959 году Гербертом Саймоном и Клиффордом Шоу был создан так называемый «Универсальный решатель задач» (англ. General Problem Solver, GPS) – компьютерная программа, в которой впервые были разделены знания и правила вывода. Программа успешно самостоятельно воспроизводила доказательства теорем эвклидовой геометрии и логики предикатов, решала шахматные задачи и другие головоломки, но реальные задачи решать не могла, поскольку для них поиск цепочки логического вывода приводил к непосильному для обработки компьютером в ограниченное время числу перебора промежуточных шагов.
В 1964 году Сергей Маслов опубликовал работу «Обратный метод установления выводимости в классическом исчислении предикатов», где впервые был предложен метод автоматического поиска доказательства теорем на основе исчисления предикатов.
В 1965 году в Стэнфордском университете создана экспертная система Dendral, предназначенная для определения молекулярной структуры неизвестного органического соединения, использовавшая эвристические знания и достигшая уровня эксперта в данной области.
С 1965 года начинает разрабатываться теория нечётких множеств. В 1965 году Лофти Заде в работе «Нечеткие множества» изложил основы математического аппарата теории нечётких множеств и в 1969 году представил её развитие в работе «Нечёткие алгоритмы».
В 1966 году Валентин Турчин разработал язык программирования Рефал, предназначенный для символьных вычислений (алгебраические преобразования); переводов с одного искусственного или естественного языка на другой; решения задач искусственного интеллекта.
В 1968—69 гг. психолог Росс Квиллиан ввёл понятие семантических сетей для моделирования структуры долговременной памяти человека. В дальнейшем семантические сети стали одним из наиболее популярных способов представления знаний, особенно в системах машинного перевода.
В 1969 году Марвин Минский опубликовал формальное доказательство ограниченности перцептрона и показал его неспособность решать задачи с инвариантностью представлений. Результатом этого стало резкое снижение интереса исследователей проблем ИИ к нейронным сетям.
В начале 1970-х и далее активно разрабатывается теория эволюционных алгоритмов, предназначенных для математического описания процессов естественного отбора в популяциях путём моделирования процессов мутации в живых организмах (Инго Рехенберг: «Эволюционные стратегии – оптимизация технических систем по принципам биологической информации», 1973; Джон Холланд: «Адаптация в естественных и искусственных системах», 1975).
В 1972 году группой сотрудников Марсельского университета во главе с Аленом Колмероэ был разработан PROLOG – язык логического программирования, основанный на исчислении предикатов, используемый для описания данных и логики их обработки. Программа на Прологе не содержит обычных для большинства языков программирования управляющих конструкций: условных операторов и операторов цикла, но позволяет описать модель фрагмента исследуемой предметной области на основе применяемых в ней терминов.
В 1972 году Теуво Кохонен и Джеймс Андерсон независимо друг от друга предлагают новый тип нейронных сетей.
В 1973 Лофти Заде предложил теорию мягких вычислений, а также теорию вербальных вычислений и представлений.
В начале-середине 1970-х гг. в Стенфордском университете разработана медицинская экспертная система MYCIN, предназначенная для диагностирования бактерий, вызывающих бактериемию и менингит, а также предлагавшая рекомендации о необходимом составе и количестве антибиотиков для их лечения в зависимости от веса больного. Особенностью системы была реализация методов формирования выводов и принятия решений в условиях неопределённости на базе ненадежной и недостаточной информации. Процесс разработки занял около 6 лет, а базовым инструментом был язык программирования Lisp.
В 1974 году Пол Вербос и Александр Галушкин независимо разрабатывают алгоритм обратного распространения ошибки для обучения многослойных перцептронов.
В 1975 Марвин Минский в работе «Фреймы для представления знаний» изложил теорию фреймов, которая часто используется как механизм для представления знаний в компьютерных системах.
В 1977 году Эбрахим Мамдани разработал алгоритмы применения нечёткой логики в приближенном рассуждении на основе методов лингвистического синтеза.