Введение в аналитику больших массивов данных

Введение в когнитивный анализ данных

Показывать лекцию целиком

 

Уважаемые коллеги, я хочу в начале несколько слов сказать о своем отношении к проблеме больших данных. Недавно я разговаривал по телефону с моим другом, классиком прикладной статистики Сергеем Артемьевичем Айвозяном нам на эту тему, он говорит, что он сейчас читает книжку по анализу больших данных, она на него произвела очень большое впечатление, и он сказал, что создается такое впечатление, что это революция не только в прикладном статистическом анализе и вообще в анализе данных, но в науке в целом, потому что это открывает новые способы познания мира, буквально чего бы это ни касалось. Основная парадигма, которая, так сказать, просматривается в этом направлении, в утрированном виде может быть сформулирована так, как ее сформулировал в свое время Незнайка знаменитый. Он сказал, если человек знает все, то ум ему уже не нужен. То есть, если в пространстве характеристик описываются какие-то объекты, и наблюдений над этими объектами было много, то в этом пространстве образуется большое скопление, большое количество экспериментальных данных, фактов данных, по поводу которых известно к чему приводит такое-то состояние, такое-то состояние, и, поэтому, когда приходит новый объект, характеристики которого известны, и нужно предсказать его будущее состояние, то достаточно посмотреть в это пространство, найти несколько ближайших соседей, то есть самые похожие ситуации там найти и посмотреть, какие следствия из этих условий были. Дальше как-нибудь воспользоваться этой подсказкой для предсказания следствий из этих конкретных фактов. На самом-то деле до этого еще пока далековато, во многих областях еще, особенно там, где прорывные научные исследования, где только начинается накопление экспериментальных данных этого, конечно, не удастся сделать, поэтому, так скажем, ум еще пока нужен. Даже если уже будет много данных, все равно возникает просто новая задача теперь. Вместо того, чтобы тратить усилия, в будущем это, конечно, тратить усилия на то, чтобы сформулировать какую-нибудь математическую модель, иногда в таком сложном виде аналитическом, необходимо разработать эффективные поиски в огромном массиве данных похожих объектов, эта тоже задача возникает. Кроме того, нужно еще думать, как же с соседями поступать, как им подражать, усреднять ли значения целевой характеристики этих самых соседей, или применять какие-то другие решающие правила. Короче говоря, методы анализа данных сохранят свою актуальность и в этом фантастическом будущем.

Наш короткий цикл лекций посвящен как раз анализу данных как таковых, вне зависимости от того, это малые данные, средние данные или большие данные. Слово «когнитивный» здесь, это не просто дань моде, это сейчас очень модно - все эти методы называть когнитивными, но по существу это некоторые отличия методов от всех предыдущих. Главное отличие состоит в том, что сами методы очень сильно ориентированы на человека, то есть человек является источником идей, как на самом деле нужно анализировать данные, надо смотреть, как это делает человек - непрерывно он этим занимается, и надо иметь ввиду, что и результат будет потом предъявлен человеку. Евгений Николаевич говорил, что специалист в области анализа данных должен обладать многими хорошими свойствами, в том числе уметь хорошо преподнести полученный результат пользователю, чтобы он понял это и использовал для своей пользы. Методы когнитивного анализа ориентированы именно на то, чтобы моделировать, по возможности близкие модели делать к тому, как делает человек, анализирует данные, как проходит процесс познания как таковой, и также предъявлять результаты в очень простом, легко интерпретируемом виде.

Поэтому наш коллектив работает в этой области, в области анализа данных мы работаем давно, уже более сорока лет, а вот именно такой аспект, когнитивность, пожалуй мы интуитивно, так сказать, на это набрели лет 10 назад, и вот сейчас интенсивно это направление развиваем. Кроме авторов этого курса, наши сотрудники Ольга Кутненко, Владимир Дюбанов, Дмитрий Леванов и Вадим Татарников принимали активное участие в разработке методов, о которых я буду рассказывать, за что мы им, естественно, очень благодарны.

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

Немножко истории. Анализ данных, ясно, что эта область, охвачиваемая более широким кругом проблем, который называется искусственный интеллект, ну вот по поводу истории искусственного интеллекта: над созданием машины, которая думает, люди думали давно, но раньше это думали так же, примерно, как о ковре-самолете - как мечта, которая в общем-то понятно, что никогда не реализуется, было бы хорошо. Интересно, что у Гете в Фаусте есть сцена, когда он приходит в лабораторию научную и смотрит, один студент, наверное, или магистрант, по тем временам не знаю как называлось, он сидит и изобретает машину, которая должна мыслить. Но серьезно исследования этой проблемы начались в 20 веке и, пожалуй, вехой такой важной является первый международный конгресс по искусственному интеллекту, который состоялся в 1969 году. Народу съехалось много, там было порядка 800 участников из всех стран мира. Мне посчастливилось тоже участвовать в этом конгрессе, послушать людей и кое-что самому рассказывать. Главная проблема, которая там обсуждалась, которой касались все докладчики - а что же такое искусственный интеллект? Определения к тому времени не было, впрочем, как до сих пор, такого строгого, конструктивного определения, поэтому рассматривали самые разные варианты. Самым ходовым примером был пример с тестами Тьюринга.

Тьюринг предложил следующий тест: представьте себе, что в одной комнате сидит эксперт, а в другой комнате есть две системы: одна система - это человек, а вторая - это компьютер, который претендует называться интеллектуальным. Эксперт задает им вопросы, через какую-нибудь связь, печатную, допустим, задает вопросы и система A отвечает на этот вопрос, система B отвечает на этот вопрос. Любые вопросы, и за заданное время эксперт должен определить, какая система человек, а какая машина. Если ему это не удается, значит система обладает интеллектом, если ее нельзя отличить от человека по такому поведению. Интересная такая игра, но неконструктивная и, кроме того, результат может быть совершенно случайным и не будет отражать на самом деле уровень развития этого машинного интеллекта.

Более конструктивным является определение Дональда Микки из эдинбургского университета, который говорил, что считает, что интеллектуальная система должна обладать следующими свойствами: она должна уметь строить модель проблемной ситуации, создавать план действий с использованием этой модели, уметь изменять план, если встречаются какие-нибудь неожиданные ситуации и, наконец, использовать опыт удач и неудач для улучшения модели. Это уже ближе, так сказать, к делу, тут уже в сжатом виде основные проблемы, которые нужно решать на пути достижения системы.

В 1972 году в Шотландии по приглашению Дональда Микки состоялся международный симпозиум по робототехнике, где тоже поднимались проблемы искусственного интеллекта и спорили опять же, что такое искусственный интеллект. И решили так: вот давайте мы сформулируем некоторые задачи, решение которых по нашему мнению требует действительно интеллекта у человека, который решает такие задачи. Если машина будет в состоянии их решить, то будем считать, что машина обладает искусственным интеллектом. Составили такие 10 проблем, назвали это Декатлон, некоторые из этих проблем успешно развивались за это время, некоторые решены достаточно глубоко. Скажем, первое - шахматные программы. Мы хорошо знаем, что машинные шахматные программы играют уже с гроссмейстерами, и иногда очень успешно. Машинное творчество в области музыки, живописи, поэзии - этим когда-то увлекались, последнее время что-то не помню интересных результатов, новых каких-нибудь, поиграли, ну действительно то-то машина там может, но все это было воспринято как не очень. Впрочем, вот такой был Зарипов в Москве, в вычислительном центре, который математик, кандидат физ.-мат. наук, но кроме того он музыкант профессиональный, виолончелист, и он провёл в московском радио такой эксперимент - он исполнил несколько произведений для виолончели, часть из которых написана людьми, а часть написана машиной по его программам. И слушателям был предложен вопрос — угадайте, какую мелодию написал человек, а какую машина. Он рассказывает, что было любопытно читать: «Да ну что вы, никогда никакая машина такого сочинить не может» - большинство по поводу всех мелодий так говорило. На самом деле, значит, уже на таком уровне, но он брал малоизвестное произведение, если бы он взял какие-то мировые шедевры, узнали бы. Короче говоря, публика уже не смогла отличить, что машинное, что не машинное, так что тут тоже некоторые продвижения есть. Машина, выдерживающая тест Тьюринга, это я рассказал. Машинное доказательство теорем - были в свое время интересные работы в этой области, в области алгебры логики программы, которые доказывали теоремы, в области геометрии, и там большой прорыв получился, когда научились в программу машинную вставлять чертежи, машина стала понимать чертежи, это сразу ограничило огромное количество ложных ходов и доказательства были достаточно хорошими. Но, правда, общее заключение самих авторов этих программ то, что все-таки это получаются доказательства не человеческие. Некоторые вещи человек горит «ну, что очевидно», и дальше не рассуждает, а машина, она этого не понимает, и она пытается доказать каждое свое слово, короче говоря, реальный эффект от этих программ был невысоким. Программы индуктивного вывода - в те времена это только начинало развиваться, сейчас это вовсю используется, об этом мы тоже будем говорить, это в нашем курсе будет излагаться. Автоматическое реферирование развивается интенсивно, над этим работают, ну и близкая к этому проблема автоматического перевода - это вечная проблема в области искусственного интеллекта, по поводу которой было много уже раз «вот-вот все получится», ну получается такой подстрочник в лучшем случае, пока еще нельзя сказать, что это хорошие программы. Распознавание, синтез речи — да, уже это достигло уровня такого, что уже есть практически применяемая система, управляемая голосом человека, но еще до качества распознавания на уровне человеческого еще далековато. Автоматическое вождение автомобилей - это в последнее время актуальная тема, и уже ходят по некоторым городам автомобили, которыми управляет автомат. Роботы сборщики машин, роботы планетоходы - это тоже интенсивно продвигается до сих пор. То есть, можно сказать, что основная часть этих проблем продвинулась, в некоторых достаточно далеко. Собирались тогда через 10 лет собраться, подвести итоги, но через 10 лет люди уже как-то немножко забыли об этом споре и итоги подводить - не было такого.

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

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

Давайте посмотрим последовательно, из чего состоит процесс познания. Представим себе, что мы начинаем изучать какой-то объект и смотрим его характеристики, для простоты две характеристики: X и Y. Поначалу наш протокол - это белый лист, мы не знаем, что там может быть, чего не может быть. Если спросить, какое значение у X будет, если Y равен какому-то значению, вот там пунктирная горизонтальная линия, то ответ будет такой: от 0 до максимума. Ничего более определенного. То есть наша нулевая гипотеза, она фактически эквивалентна утверждению «в этом мире все возможно», а толку от таких гипотез для практики, как мы знаем, никакого. Но потом мы начинаем вести наблюдения, звездочками - это наш протокол заполняется фактами, данными, мы на него смотрим, на эти факты, и ничего светлого в голову не приходит. Да, теперь мы видим, что в этих точках факт, значит такой факт возможен, а в других точках, где нет звездочек, мы не знаем, возможен или нет, и предсказать по этим данным затрудняемся. Вот следующая гипотеза, она примерно такая же, как и нулевая гипотеза. А потом, скажем, накопились факты на втором слайде, и нам пришла в голову мысль, а не аппроксимировать или эти факты таким осторожным утверждением, что экспериментальные данные будут получаться где-то так в районе диагонали. На всякий случай широкая полоса остается как допустимые факты, а вот заштрихованная область - это то, что недопустимо. Значит, мы утверждаем - в этом мире не могут встретиться факты, такие, которые бы отражались вот в эти заштрихованные углы. Это утверждение уже рискованное, просто нам не встретилось сейчас, а завтра может встретиться, но эта гипотеза все-таки уже более полезная, смотрите, при том же значении Y мы теперь говорим, что X может находиться в диапазоне, который там выделен по горизонтальной линии, более узкий диапазон, то есть неопределенность уменьшилась благодаря этой гипотезе, это хорошо. Продолжаем эксперимент и обнаружим, что, действительно, наша гипотеза подтверждается, точки ложатся куда-то вдоль диагонали, можно сузить, рискнуть, коридор, то есть повысить риск быть опровергнутыми. Мы утверждаем, что теперь невозможно то, что попадает в эти более широкие заштрихованные области, и тогда предсказание, как вы видите, гипотезы h2 более конкретное, более полезное, более точное. И, наконец, счастливый случай, который переживал по-видимому Ом, когда открыл свой закон, наблюдая за электрическими цепями - да все они лежат вдоль диагонали и уравнение там Y равно, значит, напряжение равно току, умноженному на сопротивление. Все точки должны удовлетворять вот этой функции, все, что будет отступать от этого, уже нарушает этот закон. То есть это самая высокая степень возможного опровержения. Потенциальная опровержимость, как мы говорим, самая высокая, и вот такая гипотеза, она максимально полезна для практики и, если она подтверждается, то очень хорошо, люди в нее верят и пользуются этим как незыблемым знанием.

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

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

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

Еще, кроме чисто содержательных аспектов, гипотеза отличается формой изложения: более простые изложения, более сложные изложения. Тут вспоминается то, что методологической литературе называется «Бритва Оккама». Средневековый мудрец Оккам сформулировал: «Не плоди рассуждений больше сущности», то есть делай максимально простое объяснение этой сущности. Каждую сущность можно объяснить разными способами: через несколько точек, например, можно провести прямую, а можно ведь провести не только прямую, более сложную, так, чтобы через эти точки проходила. Так вот, нужно выбирать самое простое объяснение, практика показывает, что это самая полезная вещь. И еще характеристика — изящество. Математики говорят - красивые доказательства теорем, и другие такие утверждения. По поводу этих характеристик - характеристика простоты очень глубоко исследовалась, например, профессор Мамчур Елена книги на эту тему писала, о простоте в науке, много примеров в истории науки, когда эти критерии, неформальные критерии играли большую роль в выборе теории, например, открытие структуры молекулы ДНК. Три человека, собравшись в Лондоне, усиленно занимались этой задачей. Они сделали следующее: они построили такие квадратики металлические с усиками и с дырочками, каждый из них атом вещества белкового, и из этих атомов стали собирать конструкцию молекулы. Собирали так, чтобы все усики нашли свои отверстия, чтобы не было лишних ножек пустых или незанятых отверстий. И в конце концов, после долгих попыток, сделали это. Можно было бы вздохнуть - вот она, молекула, но походили, походили они вокруг этого сооружения и сказали — нет, этого быть не может, это очень некрасиво. Не может природа такого урода создавать и на нем содержать жизнь. Разрушили это дело и после следующей волны попыток собрали наконец. Оказалась двойная спираль, и один из них, специалист в области электронной микроскопии, потом действительно удалось ему показать, что это именно так, то есть этот факт оказаться неопровержимым. Так что вот такие критерии, как простота, красота теорий - это тоже, оказывается, важный фактор эмпирической гипотезы.

Когда мы видим такой объект, в котором есть сама гипотеза, ее характеристики, вот они все тут перечислены, вот это мы и называем закономерностью или знанием. То есть это тоже гипотеза, но если хорошее значение этих характеристик, то мы уже уважительно относимся, мы говорим - это уже такая закономерность, видите — проверенная, видите — объясненная слегка и так далее.

Общая схема усиления гипотез, то, что я рассказывал, может быть представлена такой картинкой - вот видите, начинается она с того, что имеется какая-то исходная гипотеза h0, добавляется протокол pr0, которые объединяются каким-то таинственным механизмом F. Вот это самый, самый интересный момент во всей этой истории. В результате этот самый механизм говорит, а давайте-ка мы предположим вот то-то. Это вот следующая гипотеза h1, который сильнее, чем h0, к которому при продолжении экспериментов pr1 добавляем, и снова этот же механизм или такой же механизм смотрит на это и уже с этих позиций говорит, а теперь можно ее усилить, можно предположить, что вот то-то и то-то, и так далее до бесконечности, вернее, до такого конца, когда мы получаем неусиливаемую гипотезу. Вот тот самый закон Ома, вроде бы уже проще ничего, кроме этого, придумать и нельзя. Так что усиление гипотез состоит в улучшении этих характеристик. Можно разные характеристики гипотезы усиливать: вот по этой лесенке, значит, увеличивать потенциальную опровержимость, сужая коридор допустимости. Можно увеличивать подтвержденность, добавляя и добавляя новые эксперименты, которые подтверждают эту гипотезу. Можно искать более глубокое объяснение, это тоже полезно, очень хорошо работает на гипотезу, но можно переформулировать в более простой форме, более доступной, тоже полезно. Ну и закономерность с высокими значениями этих параметров называется уже теорией. Мы на нашей конференции недавней вели широкую дискуссию, чем отличается гипотеза от теории - именно этим, более высокими значениями этих характеристик. Тут нет количественного скачка, точнее, количество перерастает в качество скачком. Вот мы относились к этому как просто к сырому материалу, а потом, когда мы его как следует обкатали, доказали еще больше и так далее, мы уже оценили - все мы разработали теорию такого-то процесса, можете ей пользоваться для пользы дела, считать чего-то и так далее. Поэтому, вот такие закономерности с высокими значениями характеристик почтительно называются законом природы. Это тоже, как я уже отмечал, эмпирические гипотезы, но с очень высокими значениями этих характеристик.

Вернуться к учебному плану