Приступая к изучению машинного обучения, студенты легко и непринужденно добиваются… запутанности. Пара-тройка непонятных терминов или неясностей при расчете – и все: мозг теряет нить и начинает воспринимать “по диагонали”. Продираться через непонятное довольно трудоёмко. Не каждый день у нас есть ресурс догугливать непонятное. Не каждый запрос в 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) Состоят из набора отдельных объектов, таких как слова или буквы. Здесь нет временных меток; вместо этого есть позиции в упорядоченной последовательности:
На картинке справа яркий пример: геном – набор генов в хромосоме.
(geospatial data) Здесь каждая точка имеет координаты:
Трафик аэропортов США
Здесь единицей является отдельная картинка. Видео рассматривается как набор картинок.
Датасет рукописных цифр