Елена Капаца
Машинное обучение доступным языком
Введение
Приступая к изучению машинного обучения, студенты легко и непринужденно добиваются… запутанности. Пара-тройка непонятных терминов или неясностей при расчете – и все: мозг теряет нить и начинает воспринимать “по диагонали”. Продираться через непонятное довольно трудоёмко. Не каждый день у нас есть ресурс догугливать непонятное. Не каждый запрос в Google даст лаконичный понятный ответ.
Моя задача – описать детали этой мозаики языком, понятным старшекласснику. Я намеренно буду избегать формул, потому что знаю: каждая из них сокращает число читателей. Однако в книге будет код, и он будет расширенно комментироваться.
Минимальное требование к читателю – знание основ Python. Книга фокусируется на машинном обучении, и потому останавливаться на терминах вроде “переменной” и “списка” я не буду.
Если вы чувствуете, что пересиливаете себя при чтении, лучше сделайте перерыв. В Data Science будет предостаточно информации, однако в этой книге я постаралась собрать повторяющиеся в работе термины. Добиться их понимания особенно важно.
Некоторые главы будут базироваться на полноценных моделях и скриптах. В машинном обучении принято использовать так называемые ноутбуки – наборы ячеек с исполняемыми кусками кода:
Все используемые в дальнейшем ноутбуки можно открыть, запустить и скопировать себе для дальнейших экспериментов. Инструменты ML имеют свойство совершенствоваться, а это значит, что спустя 3-4 года после выхода книги некоторые участки кода вам придется отлаживать с помощью поисковиков.
Машинное обучение – это абстрактная концепция. Ее основные компоненты стоит описывать просто, пускай даже это вызовет раздражение профессионалов. Эта книга – серия взаимосвязанных статей. Их основная цель – осветить основные и популярные термины во взаимосвязи друг с другом. Ключевые понятия при первом упоминании я буду дополнять англоязычным термином. Так вы всегда сможете с легкостью отыскать дополнительные материалы.
Немалое влияние на меня оказал бестселлер Максима Ильяхова и Людмилы Сарычевой “Пиши, сокращай”. Потому эта книга написана в информационном стиле1 и изобилует упрощениями. Если вы сохраните по прочтении ощущение удобства чтения и желание взбираться на эту познавательную гору дальше, то моя цель достигнута.
Вы всегда можете “напитаться” полноценными зубодробительными статьями на моем сайте helenkapatsa.ru.
Приятного чтения! Я буду рада вашим предложениям и фидбэку в целом ([email protected]). Вы также можете запросить PDF-версию с цветовой разметкой кода. Это упростит восприятие материала.
Машинное обучение
Что же это такое? Машинное обучение (machine learning, ML) – наука о том, как заставить компьютеры выполнять объемную вычислительную задачу без явного программирования.
Классическим алгоритмам дают точные и полные правила для выполнения задачи, моделям Машинного обучения – данные. Мы говорим, что «подгоняем модель к данным» или «модель обучена на данных».
Проиллюстрируем это на простом примере. Предположим, мы хотим спрогнозировать цену дачного дома на основе:
• площади
• размера придомового участка
• количества комнат.
Мы могли бы попытаться построить классический алгоритм, который решает эту проблему. Этот алгоритм возьмет три вышеупомянутых признака (feature) и выдаст прогнозируемую цену на основе явного правила. Но на практике эта формула часто неочевидна.
Однако мы хотим автоматизировать этот процесс и построить модель. Она будет корректировать формулу сама каждый раз, когда появляются новые примеры цен на жилье. В целом, ML невероятно полезно для задач, когда мы располагаем неполной или слишком обильной информацией для программирования вручную. В этих случаях мы можем предоставить имеющиеся сведения и позволить ей «изучить» недостающую. Затем алгоритм будет использовать статистические методы для извлечения недостающих знаний.
Машинное обучение способно выполнять широкий спектр задач:
• оценки стоимости чего угодно
• изменение изображений
• помощь на письме
• обработка звука
• генерация текста и многие другие.
Представьте, что Машинное обучение – это конвейер по сборке автомобилей. И первое, что потребуется для его работы – металл, различные композитные материалы, и в конечном итоге, топливо. Вся эта троица олицетворяет данные.
Данные
Данные – основа основ в ML. В контексте науки принято рассматривать два типа: традиционные и большие (big data).
Традиционные данные структурированы и хранятся в базах, управляемых с одного компьютера. На самом деле, эпитет «традиционный» введен для ясности: это помогает подчеркнуть различия с большими.
Большие данные, в свою очередь, массивнее, чем традиционные, по ряду характеристик:
• типы (числа, текст, изображения, аудио, видео и проч.)
• скорость извлечения и вычисления
• объем (тера-, пета-, эксабайты и проч.).
Набор однотипных данных, выделенный с целью обучения модели, называют датасетом (dataset). Их разделяют на следующие категории:
Классическая таблица
Здесь каждая строка имеет одинаковый набор характеристик-столбцов. Такие таблицы – датафреймы (dataframe) обычно хранятся либо в файлах форматов .csv, .parquet, либо в базах данных:
Датасет о результативности футбольных команд
Текстовый документ
(document) Отдельно взятой единицей здесь является блок (corpus). Например, книгу можно рассматривать как датасет, состоящий из абзацев – корпусов.
“… После обучения в Университете Вашингтона Болл опубликовала статью в Journal of the American Chemical Society и отправилась на Гавайи, чтобы стать магистром химии. В 1915 г. она впервые среди женщин и афроамериканцев получила степень магистра в Гавайском колледже, где осталась преподавать”.
Корпус из книги-датасета Рейчел Свайби “52 упрямые женщины”
Графы
(graph) Здесь отдельно взятая единица – это связь между объектами:
Граф социальной сети
Аудиодорожки
Здесь довольно очевидно: аудиозаписи. Помимо распознавания речи ML решает обширный спектр задач с помощью таких данных: очистка от шумов, написание музыки.
Временной ряд
(time series) Здесь каждая точка привязана к временной оси x и, как правило, взаимосвязана с окружающими ее соседями.
Цена акции LG на момент открытия биржи на протяжении года
Последовательные данные
(sequence data) Состоят из набора отдельных объектов, таких как слова или буквы. Здесь нет временных меток; вместо этого есть позиции в упорядоченной последовательности: