Развитие искусственного интеллекта в последние несколько лет шло колоссальными темпами: лишь всемирно известного ChatGPT от компании OpenAI с 2018 года вышло 4 версии. Развитие это не только количественное, хотя областей применения моделей глубокого обучения становится всё больше, но и качественное: в некоторых задачах DL-машины добиваются результатов, превосходящих способности человека, например в распознавании объектов на фотографиях или в создании фальсифицированных материалов (deepfake). Чтобы идти в ногу со временем, чтобы овладевать конкурентными преимуществами, необходимо искать пути интеграции этого инструмента в собственную деятельность. Социология не исключение.
Тезис о невозможности соединять ИИ и социологические исследования давно опровергнут: в таких задачах, где есть гайд и строгие последовательности, где всё расписано по шагам, математика и алгоритмы приносят наибольшую пользу. Этих задач в социологии более чем достаточно: классификация материала (текстового, визуального, звукового) на предзаданные классы, предсказание уровня той или иной переменной (например, лояльности к тем или иным социальным явлениям) по набору известных характеристик, сжатое изложение текстов, генерация рекомендаций на базе истории взаимодействия и многое другое. Предположение о неприменимости искусственного интеллекта к предметам социологических исследований следует отбросить.
Другим препятствием применения ИИ в социологической работе выступает представление о том, что машинное обучение — прерогатива исключительно математиков и программистов, что человек с гуманитарным образованием не способен к взаимодействию с миром ИИ, к построению собственных моделей. Возможно, до определённого момента данное суждение было отчасти истинно, но сейчас мы вряд ли можем говорить так, оставаясь честными с самими собой, и причина этих перемен — возникновение множества сервисов, приложений и библиотек, облегчающих вхождение нематематиков и неайтишников в мир глубокого обучения. Одно из таких решений — библиотека fastai для языка программирования Python и книга «Глубокое обучение с fastai и PyTorch» Джереми Ховарда и Силвейна Гуггера, миссия которой — доказать читателю, что с минимальными знаниями Python и он способен добиваться впечатляющих результатов в решении популярных задач с помощью ML, не будучи «доктором математических наук» или «ботаном».
Авторы начинают со следующего тезиса: глубокое обучение — для всех. Они сразу же разрушают ряд распространённых мифов:
- для DL нужно много математики? — нет, достаточно программы старших классов школы;
- для нейросетей нужно много данных? — не всегда, встречаются рекордные результаты с использованием менее 50 элементов данных;
- для DL нужно дорогое оборудование? — нет, вы можете работать посредством бесплатных интернет-ресурсов.
Принципы, заложенные Ховардом и Гуггером в их книгу, пропитывают каждую её страницу: вы получаете целостное знание, которое сначала предлагает для вас завершённое решение определённой проблемы, находящейся в области приложения DL, а затем рассматривает это решение и алгоритм его получения вплоть до самостоятельного написания программного кода (что вовсе не обязательно!); каждое передаваемое авторами знание обязательно сопровождается практическим примером; сложное объясняется максимально простым и понятным языком; основная цель книги (и библиотеки fastai) — сломить барьеры, отделяющие «обывателя» от использования нейросетей.
После изложения принципов авторы переходят к небольшой теоретической части, объясняющей, что такое машинное обучение, глубокое обучение, нейросети и т.п. Затем начинается практика, длящаяся вплоть до последней страницы.
Практика поделена на два раздела (первый — часть II, второй — части III–IV): для тех, кто хочет применять уже готовые нейросетевые архитектуры к своим задачам (beginner-уровень), и для тех, кто хочет создавать архитектуры самостоятельно. В целом для добавления инструмента ИИ в копилку методов, которые Вы можете с успехом применять в своей работе, вполне достаточно первого раздела; второй же не менее интересен и полезен, но он потребует большего умения работы с кодом. Кстати, о коде: если вы ранее не интересовались программированием, не стоит его бояться. Язык Python и многие библиотеки для него написаны таким образом, что вы будто бы говорите программе, что делать, и говорите вполне привычными английскими словами, например: sum(array) — посчитай сумму значений списка, DataFrame.value_counts() — для каждого уникального значения фрейма (массива) данных выведи количество его вхождений во фрейм (массив) и т.д. К тому же разработчики fastai в документации к библиотеке приводят очень подробные гайды, которые вы сможете использовать в качестве шаблонов для ваших данных. Так что взаимодействие с нейросетями в рамках Python посредством fastai сродни нажатию клавиш в SPSS или Excel, только вместо клика по кнопке вы вызываете необходимые функции текстом.
В первом разделе Ховард и Гуггер разбирают такие задачи, решаемые ИИ, как классификация изображений, где каждое изображение относится только к одному классу; классификация изображений, где каждому изображению соответствует множество классов; регрессия изображений; построение рекомендательных систем; регрессия на основе табличных данных; классификация на основе табличных данных; классификация текстов на заданные классы; генерация текстов. Одна из базовых концепций fastai — transfer learning, т.е. взятие модели, показывающей наилучший или близкий к лучшему результат на типовой задаче (как раз они и перечислены выше, и к этим задачам сообществом ML разрабатываются наборы данных, позволяющие через соревнование тестировать точность, мощность разных архитектур), приведение её последнего слоя к виду, который позволил бы решить конкретно Вашу задачу (т.е. если у вас 5 классов фото, fastai предлагает взять зарекомендовавшую себя в классификации изображений модель ResNet и заменить число выходов её последнего слоя на 5, чтобы классифицировать фото на ваши классы), и обучение сначала этого последнего слоя, т.к. тело модели уже продемонстрировало хороший результат на задаче известного соревнования, а такие задачи зачастую сложнее и обширнее, чем ваша, следовательно, в ходе их решения нейросеть научилась выявлять важные элементы данных, которые с большой долей вероятности будут полезны и в вашем случае, а после, если результаты неудовлетворительные и если уже имеющихся «фильтров» данных недостаточно, обучение и всей модели. Данного набора задач и соответствующего набора инструментов для их решения достаточно для социолога, погружающегося в мир DL и стремящегося научиться применять достижения этой сферы на практике. По мере развития учёного в этой области он постепенно приходит к комбинации изученных методов, чем получает практически безграничный простор для экспериментов и для инновационных способов работы со своими проблемами.
Следовательно, деятельное знакомство лишь с первым разделом указанной книги уже позволяет социологу добавить в арсенал своих инструментов одну из наиболее мощных технологий нашего времени — нейросети. Заинтересованные же смогут при необходимости углубиться в тему, освоив второй раздел.
Отдельно следует сказать о библиотеке fastai. Эта библиотека, разговор о которой занимает значительную часть книги, действительно очень проста, однако помимо высокоуровневого доступа она включает в себя и более глубокие варианты взаимодействия, поэтому её использование плодородно для пользователя любого уровня знакомства с программированием и нейросетями. За простотой следует и скорость развёртывания решений, поэтому fastai — быстрый способ начать исследование своей проблемы с точки зрения DL: если результаты библиотеки вас устроят, значит, ваша задача, вероятно, не требует архитектурно сложных решений и вы можете достигать успеха, применяя уже имеющиеся модели с их лёгкой корректировкой, и так бывает чаще всего. Если же библиотека не демонстрирует удовлетворительные результаты, скорее всего, задача действительно сложна (либо неэффективно сформулирована) и требует инновационных подходов, новых структур и т.п. Примером применения fastai в действии служит задача методической лаборатории ВЦИОМ по разработке классификатора аудиозаписей неоконченных CATI-интервью длительностью до 20 секунд на заданные классы: около двух месяцев самостоятельной разработки позволили добиться точности в 82%, что хорошо, однако представление звука в виде спектрограмм и классификация их как изображений буквально за 2 дня показала accuracy порядка 87% — значение более чем достойное. Следовательно, простота fastai — не маска, за которой скрывается слабая «трудоспособность»: transfer learning действительно позволяет успешно справляться с большим количеством стоящих перед нами задач, а его реализация в этой библиотеке делает его применение простым и доступным каждому, даже нематематику и некодеру.
Таким образом, «Глубокое обучение с fastai и PyTorch» Джереми Ховарда и Сильвейна Гуггера — mast have литература для современного специалиста любой области деятельности. Эта книга действительно стремится всеми силами из вызывающего ужас у людей, считающих себя неспособными работе с техникой, кодом и математикой, образа ИИ и deep learning сделать дружелюбную, инклюзивную картину, полезный инструмент, применять который — нестрашно, просто и интересно.
P.S. Помимо знания о том, как устроена нейросеть и как её применять в решении своих задач, авторы также указывают и на проблемы в данной области, требующие повышенной осторожности. Так, известна проблема «петли обратной связи», когда результаты работы нейросети, оказавшие воздействие на внешнюю ситуацию (например, результаты, принятые в качестве основания для того или иного действия: полицейские использовали нейросеть для предсказания района с наивысшим уровнем преступности; полицейские установили повышенное наблюдение за предсказанным нейросетью районом; полицейские вследствие интенсивного наблюдения зафиксировали больше правонарушений, чем обычно), подаются для дальнейшего дообучения сети; таким образом, машина как бы сама генерирует последующий обучающий массив, она, «пользуясь возможностью» руками людей изменять реальность, перестаёт выявлять объективные закономерности, поскольку (случайно) установленные ей регулярности проецируются в мир, следовательно, становятся реальными регулярностями, и на их основе машина продолжает строить предсказания. Всё это указывает на необходимость отдавать себе отчёт в правильности применения методов машинного обучения и в частности — в правильности тестирования их результатов.