К старту курса о машинном и глубоком обучении делимся мнением Мэтью Стюарта, соискателя степени кандидата наук в Гарварде, который, по собственному признанию, устал слышать эти дебаты, повторяющиеся в социальных сетях и в моём университете практически ежедневно. Они сопровождаются несколько туманными заявлениями. Автор считает, что в этом виноваты обе стороны дебатов и надеется, что к концу этой статьи у читателей будет более обоснованная позиция в отношении этих несколько расплывчатых терминов. Неопределённых утверждений, которые автор часто слышит на эту тему, есть несколько, а самое распространённое из них звучит приблизительно так: Основное различие между машинным обучением (далее — ML) и статистикой заключается в их назначении. Модели ML разработаны, чтобы делать максимально точные прогнозы. Статистические модели — для выводов о взаимосвязях между переменными. Хотя технически это верно, формулировка не даёт чёткого или удовлетворительного ответа. Чтобы вы представляли, насколько далеко зашла дискуссия, в журнале Nature Methods опубликована статья, где описывается разница между статистикой и ML. Вопреки распространённому мнению ML существует десятилетиями. От него отказались из-за больших требований к вычислениям и ограничений вычислительной мощности того времени, однако в последние годы ML из-за большого количества данных после информационного взрыва переживает возрождение. Итак, если ML и статистика — синонимы, почему мы не видим, что кафедры статистики в каждом университете закрываются или преображаются в кафедры "машинного обучения"? Потому, что это не одно и то же. Основное отличие ML и статистики — в назначении, однако утверждение о том, что ML направлено на точные предсказания, тогда как статистические модели предназначены для выводов, практически бессмысленно, если вы не разбираетесь в этих понятиях. Мы должны понимать, что статистика и статистические модели — это не одно и то же.  Статистика — это математическое исследование данных. Если у вас нет данных, вы не можете заниматься статистикой.  Статистическая модель — это модель для данных, используемая либо чтобы сделать вывод о взаимосвязях внутри них, либо чтобы создать модель, способную предсказывать будущие значения. Часто эти два понятия идут рука об руку, поэтому проясним две вещи:  Чем статистика отличается от ML? Чем статистические модели отличаются от ML? Существует множество статистических моделей, которые могут прогнозировать, но их прогнозы не отличаются точностью. Точно так же модели ML дают различные степени интерпретируемости, от хорошо интерпретируемой регрессии лассо до непроницаемых нейронных сетей, но последние жертвуют интерпретируемостью ради предсказательной силы. Не вдаваясь в детали, это достаточно хороший ответ для большинства людей, однако иногда такое объяснение оставляет наедине с непониманием различий между ML и статистическим моделированием. Посмотрим на пример с линейной регрессией. Кажется, сходство методов статистического моделирования и ML заставило людей предполагать, что это синонимы. Наиболее очевиден пример линейной регрессии, она, вероятно, является основной причиной недопонимания.  Линейная регрессия — статистический метод, мы можем обучить линейный регрессор и получить тот же результат, что и статистическая регрессионная модель минимизации квадратичной ошибки между точками данных. В одном случае делается то, что называется "обучением" модели, оно предполагает использование подмножества данных, и мы не знаем, насколько хорошо будет работать модель, пока не "протестируем" её на тестовом наборе данных, которых не было во время обучения. Здесь задача ML — получить наилучшие показатели на тестовом наборе. В случае статистической модели мы находим прямую, которая минимизирует среднеквадратичную ошибку по всем данным, предполагая, что данные являются линейным регрессором с добавлением случайного шума, который обычно имеет гауссовский характер. В обучающем и тестовом наборах нет необходимости.  Во многих случаях, особенно в исследованиях (в примере с датчиком ниже), смысл модели заключается в том, чтобы охарактеризовать связь между данными и нашей итоговой переменной, а не делать прогнозы о будущих данных. Эта процедура называется статистическим выводом, в отличие от предсказания. Однако мы всё ещё можем работать с этой моделью в целях прогнозирования, прогноз также может оказаться основной целью, но способ оценки модели не будет содержать тестовый набор, вместо набора он будет содержать оценку значимости и надёжности параметров модели. Цель машинного обучения с учителем — получение модели, которая может делать повторяющиеся предсказания. Как правило, нам не важна интерпретируемость модели, хотя лично я рекомендую всегда тестировать её, чтобы убедиться, что предсказания модели действительно небессмысленные.  Машинное обучение — о результатах и, наверное, о работе в компании, где ценность характеризуется исключительно показателями.  Статистическое моделирование более направлено на поиск взаимосвязей между переменными и значимости этих взаимосвязей, а также на прогнозирование. Чтобы на конкретном примере показать разницу между этими двумя процедурами, я приведу личный пример. Я — эколог и работаю в основном с сенсорными данными. Если я пытаюсь доказать, что датчик способен реагировать на определённый вид стимулов (например, на концентрацию газа), то, чтобы определить, является ли реакция сигнала статистически значимой, воспользуюсь статистической моделью.  Я бы также попытался понять эту взаимосвязь и проверить её повторяемость, чтобы точно охарактеризовать реакцию датчика и на основе этих данных сделать выводы. Есть факты, которые возможно проверить: является ли отклик линейным, можно ли отнести его к концентрации газа, а не к случайному шуму в датчике и т. д. Напротив, я могу получить массив из 20 различных датчиков и использовать его, чтобы попытаться предсказать реакцию моего нового датчика. Это странно, если вы немного знаете о сенсорах, но сейчас это важная область экологической науки.  Модель с 20 различными переменными, предсказывающая результат работы датчика, явно имеет дело с предсказанием, и я не ожидаю, что она будет особенно интерпретируемой. Эта модель из-за нелинейности — результата химической кинетики и взаимосвязи между физическими переменными и концентрацией газа, вероятно, будет чем-то экзотичнее статистической модели, например нейронной сетью. Хотелось бы, чтобы модель можно было понять, но я буду вполне доволен, пока возможны точные прогнозы. Если я пытаюсь доказать взаимосвязь переменных до степени статистической значимости, чтобы опубликовать её в научной статье, то воспользуюсь статистической моделью, а не моделью ML, потому что меня больше волнует взаимосвязь переменных, а не прогнозирование. Составление прогнозов всё равно может быть важным, но отсутствие интерпретируемости большинства алгоритмов ML затрудняет доказательство взаимосвязей в данных. На самом деле это большая проблема в академических исследованиях, когда учёные используют алгоритмы без их понимания и получают спекулятивные выводы. Должно быть ясно, что эти два подхода различаются целью, несмотря на использование схожих средств её достижения. При оценке алгоритма ML для подтверждения точности используется тестовый набор, в то время как для статистической модели анализ параметров регрессии с помощью доверительных интервалов, тестов на значимость и других тестов может использоваться для оценки легитимности модели. Поскольку эти методы дают одинаковый результат, легко понять, откуда происходит предположение, что они одинаковы. Я думаю, заблуждение довольно хорошо отражено в якобы остроумной картинке, сравнивающей статистику и ML. Однако смешение двух терминов только из-за того, что они оба используют одни и те же фундаментальные понятия вероятности, неоправданно. Если утверждать, что машинное обучение — это просто превознесённая статистика, также можно сделать следующие утверждения: Физика — это просто превознесённая математика. Зоология — это просто превознесённое коллекционирование марок. Архитектура — это просто превознесённое строительство замков из песка. Эти заявления нелепы, все они основаны на смешении терминов на основе схожих идей. Физика построена на математике, это применение математики для понимания явлений. Физика также включает аспекты статистики, и современная форма последней обычно строится на основе теории множеств Цермело – Френкеля в сочетании с теорией мер для создания вероятностных пространств. У них много общего, потому что они исходят из одного корня и применяют схожие идеи для достижения логического завершения. Аналогично архитектура и строительство песчаных замков, вероятно, имеют много общего, хотя я не архитектор и не могу обосновать объяснения, но это явно не одно и то же. Прежде чем продолжить, я кратко проясню ещё два распространённых заблуждения по нашему вопросу. Первое: ИИ не отличается от ML, а наука о данных — это просто статистика. Спорить с аргументами трудно, поэтому всё пройдёт быстро. Наука о данных — это, по сути, применяемые к данным разного размера вычислительные и статистические методы. К ним можно отнести исследовательский анализ данных, когда данные изучаются и визуализируются, чтобы помочь учёному лучше понять их и сделать из них выводы.  Наука о данных также включает преобразование сырых данных в форму, пригодную для анализа, а также предварительную обработку данных, предполагая определённый уровень знания компьютерных наук, поскольку она включает программирование, установку соединений и конвейеров между базами данных, веб-серверами и т. д.  Для работы со статистикой необязательно использовать компьютер, но без него невозможно заниматься наукой о данных. Вы можете ещё раз убедиться, что, хотя последняя работает со статистикой, это явно не одно и то же. Точно так же машинное обучение — не то же самое, что искусственный интеллект, на самом деле ML — подмножество ИИ. Это очевидно: мы обучаем машину делать обобщающие выводы о типе данных на основе предыдущих данных. Прежде чем мы обсудим, чем различаются статистика и ML, поговорим об их сходстве. Мы уже слегка касались этого вопроса в предыдущих разделах. ML построено на основе статистики. Это очевидно, поскольку оно связано с данными, а данные должны быть описаны с помощью статистической базы. Однако механика статистики, расширяемая в термодинамику для большого числа частиц, также построена на статистике. Понятие давления и температуры на самом деле о статистике. Вот почему невозможно описать температуру или давление молекулы, это чепуха.  Температура — проявление средней выделяемой при столкновениях молекул энергии. В случае большого их количества логично, что мы можем описать температуру. Вы согласитесь, что термодинамика и статистика — это одно и то же? Нет, термодинамика использует статистику, чтобы помочь нам понять взаимодействие работы и тепла в виде транспортных явлений.  Термодинамика строится не только на статистике, но и на многих других элементах; ML опирается на большое количество областей математики и компьютерных наук: Теория ML из математики и статистики. Алгоритмы ML из таких областей, как оптимизация, матричная алгебра, интегральное исчисление. Реализации ML на основе концепций компьютерных наук и инженерии: трюки ядра, хеширование признаков). Когда человек начинает программировать на Python, берёт библиотеку sklearn и использует её алгоритмы, многие понятия абстрагируются, так что различия увидеть трудно. Здесь абстракция привела к невежеству в смысле содержания ML. Основное различие между статистикой и машинным обучением — в том, что статистика основана исключительно на вероятностных пространствах и вся выводится из теории множеств; она о том, как группировать числа в категории (подмножества), а затем накладывать на это множество меру, чтобы гарантировать, что суммарное значение всех чисел равно 1. Это называется вероятностным пространством. Статистика не делает никаких других предположений, кроме этих понятий множеств и мер. Поэтому, когда мы задаём вероятностное пространство в строгих математических терминах, мы задаём три вещи, то есть вероятностное пространство, которое обозначается (Ω, F, P), состоит из трёх компонентов: Пространства выборок, то есть множества всех возможных исходов. Множества событий, F, где каждое событие — это множество исходов с любым их количеством. Назначения вероятностей событиям, P; то есть функция от событий к вероятностям. ML базируется на теории статистического обучения, она, в свою очередь, основывается на аксиоматическом понятии вероятностных пространств. Эта теория разработана в 1960-х годах и развивает традиционную статистику. Категорий ML несколько, я сосредоточусь на обучении с учителем, которое проще всего объяснить, хотя, погружённое в математику, оно всё равно несколько эзотерично. Статистическая теория обучения в случае обучения с учителем говорит нам, что у нас есть набор данных S = {(xi, yi)}. Иными словами, есть набор данных из n точек данных, каждая из которых описывается другими значениями (признаками), представленными x, эти признаки отображаются определённой функцией, чтобы дать значения y.  То есть мы знаем, что у нас есть эти данные, цель — найти функцию, которая отображает значения x в значения y. Множество всех возможных функций, которые могут описывать данное отображение, называется пространством гипотез.  Чтобы найти функцию, мы должны дать алгоритму способ "научиться" тому, как эффективнее подойти к решению проблемы. Этот способ называется функцией потерь. Итак, для каждой гипотезы (предполагаемой функции), которая у нас есть, мы должны оценить, как эта функция работает, посмотрев на значение её ожидаемого риска по всем данным. Ожидаемый риск — это, в сущности, сумма функции потерь, умноженная на вероятностное распределение данных. Если бы мы знали совместное распределение вероятностей отображения, то легко нашли бы наилучшую функцию. Однако в общем случае распределение неизвестно, поэтому лучший вариант — предположить самую подходящую функцию, а затем эмпирически решить, является ли эта функция потерь лучшей. Это называется эмпирическим риском.  Затем мы можем сравнивать различные функции и искать гипотезу с минимальным ожидаемым риском, то есть гипотезу, которая даёт минимальное значение (называемое инфимумом) из всех гипотез по данным. Однако алгоритм имеет тенденцию обманывать, минимизировать функцию потерь путём чрезмерной подгонки к данным [переобучения], поэтому после обучения функции на обучающем наборе эта функция проверяется на тестовом наборе данных, которых не было в обучающем наборе. Природа определения ML вводит проблему переобучения и обосновывает необходимость обучающего и тестового множества при выполнении машинного обучения. В статистике это необязательно: мы не пытаемся минимизировать эмпирический риск. Алгоритм обучения, который выбирает функцию, минимизирующую эмпирический риск, называется эмпирической минимизацией риска. В традиционном её толковании мы пытаемся минимизировать ошибку между некоторыми данными, чтобы найти функцию, которая может описывать данные. Здесь обычно используется средняя квадратичная ошибка. Мы возводим её в квадрат, чтобы положительные и отрицательные ошибки не нивелировали друг друга. Затем мы можем решить задачу нахождения коэффициентов регрессии в закрытой форме.  Если взять функцию потерь как среднюю квадратичную ошибку и выполнить эмпирическую минимизацию риска, как утверждает теория статистического обучения, мы получим тот же результат, что и традиционный линейный регрессионный анализ. Так происходит просто потому, что эти решения эквивалентны, точно так же, как выполнение метода максимального правдоподобия на этих же данных даст вам тот же результат.  Максимальное правдоподобие имеет другой способ достижения той же цели, но никто не будет спорить и говорить, что максимальное правдоподобие — это то же самое, что и линейная регрессия. Простейший случай явно не помогает дифференцировать эти методы. Ещё один важный момент: в традиционных статистических подходах нет понятия обучающего и тестового наборов, но мы используем метрики, которые помогают оценить работу модели; процедура оценки отличается, но оба метода способны дать нам статистически надёжные результаты. Другой момент: традиционный статистический подход дал нам оптимальное решение, потому что оно имело закрытую форму. Метод не проверял другие гипотезы и не сходился к решению, тогда как метод ML пробовал множество моделей и сходился к окончательной гипотезе, совпадающей с результатом алгоритма регрессии. Если бы мы использовали другую функцию потерь, результаты не сошлись бы. С кусочно-линейной потерей (которая не дифференцируются с помощью стандартного градиентного спуска, поэтому потребовались бы другие методы, такие как проксимальный градиентный спуск), то результаты окажутся другими. Окончательное сравнение можно провести, рассмотрев смещение модели. Можно попросить алгоритм ML проверить линейные модели, а также полиномиальные модели, экспоненциальные модели и т. д., чтобы увидеть, подходят ли эти гипотезы к данным лучше, учитывая нашу априорную функцию потерь. Это сродни увеличению пространства релевантных гипотез.  В традиционном статистическом смысле мы выбираем одну модель и можем оценить её точность, но не можем автоматически заставить её выбрать лучшую модель из 100 различных. Очевидно, что в модели всегда присутствует погрешность из-за выбранного алгоритма. Она неизбежна, поскольку поиск произвольной оптимальной для набора данных функции — NP-полная задача. На самом деле это глупый вопрос. Что касается статистики и ML, то машинное обучение не существовало бы без статистики, но оно полезно в современную эпоху. Сравнение машинного обучения и статистических моделей немного сложнее. Если вы просто хотите создать алгоритм, с высокой точностью прогнозирующий цены на жильё, или использовать данные при определении вероятности заражения человека определёнными видами заболеваний, то, скорее всего, лучше применять машинное обучение. Если вы пытаетесь доказать взаимосвязь переменных или сделать выводы из данных, то лучшим подходом, скорее всего, окажется статистическая модель. Если у вас нет большого опыта в статистике, вы всё равно можете изучать ML и использовать его, предлагаемая библиотеками машинного обучения абстракция делает их довольно простыми для использования неспециалистом. Но вам всё равно необходимо некоторое понимание лежащих в их основе статистических идей, чтобы предотвратить перебор моделей и получение ошибочных выводов. Если вы заинтересованы в более глубоком изучении статистической теории обучения, существует множество книг и университетских курсов по этой теме. Вот несколько курсов лекций, которые я рекомендую (англ.): MIT. Статистическая теория обучения и её приложения. Университет Иллинойса. Статистическая теория обучения. Если хочется углубиться в вероятностные пространства, то я предупреждаю вас, что это довольно тяжёлая математика, обычно она рассматривается только на курсах статистики для выпускников. Вот несколько хороших источников по этой теме (англ.): Университет Йювяскюля. Введение в теорию вероятности. Университет Квинсленда. Краткое введение в вероятность. Эта статья не только показывает разницу между ML и статистикой, но и напоминает, что достижения будущего часто скрыты в решениях, которые в прошлом заводили в тупик. Над изобретателем булевой логики смеялись, а глубокие нейронные сети не находили признания десятилетиями, но сегодня именно они во многом помогают нам, поэтому, если вы не хотите оставаться в cтороне, приходите на наши курсы по Machine Learning и Deep Learning или присмотритесь к флагманскому курсу по Data Science, который завершается специализацией в машинном обучении, включает 13 проектов для портфолио и, конечно, работу с HR. Также вы можете узнать, как начать карьеру или прокачаться в Data Engineering, в аналитике данных или в других направлениях: Data Science и Machine Learning Профессия Data Scientist Профессия Data Analyst Курс «Математика для Data Science» Курс «Математика и Machine Learning для Data Science» Курс по Data Engineering Курс «Machine Learning и Deep Learning» Курс по Machine Learning  Python, веб-разработка Профессия Fullstack-разработчик на Python Курс «Python для веб-разработки» Профессия Frontend-разработчик Профессия Веб-разработчик  Мобильная разработка Профессия iOS-разработчик Профессия Android-разработчик  Java и C# Профессия Java-разработчик Профессия QA-инженер на JAVA Профессия C#-разработчик Профессия Разработчик игр на Unity  От основ — в глубину Курс «Алгоритмы и структуры данных» Профессия C++ разработчик Профессия Этичный хакер  А также: Курс по DevOps