[Из песочницы] Машинное обучение для всех, кто изучал математику в восьмом классе

Привет, Хабр! Представляю вашему вниманию перевод статьи «Machine Learning for Anyone Who Took Math in Eighth Grade» автора Kyle Gallatin.

Машинное обучение

Я обычно замечаю, что искусственный интеллект объясняется одним из двух способов: через все более сенсационную призму различных медиа, или через плотную научную литературу, пронизанную излишним языком и специфическими для области терминами.

Между этими крайностями существует менее публикуемая область, где, я думаю, литература должна немного активизироваться. Новости о «прорывах», по типу этого глупого робота София поднимают хайп вокруг искусственного интеллекта, и может показаться, что это чем-то похоже на человеческое сознание, в то время как в действительности, София не умнее чем SmarterChild у AOL Instant Messenger.

Научная литература может быть еще хуже, заставляя даже самого искушенного исследователя закрывать глаза после нескольких абзацев бессмысленного псевдоинтеллектуального мусора. Чтобы правильно оценить AI, люди должны в целом понимать что это такое на самом деле. И все что нужно чтобы понять основы искусственного интеллекта, это немного математики средней школы.

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


Основы искусственного интеллекта и машинного обучения

Типичный, классический искусственный интеллект это все, что имитирует человеческий интеллект. Это может быть что угодно — от ботов для видеоигр до сложных платформ, таких как Deepmind Alphago.

Искусственный интеллект; машинное обучение; глубокое обучение
Игнорируйте «Глубокое обучение» — в этом контексте, это тоже самое что машинное. Изображение: Geospatial World

Машинное обучение — это подмножеством искусственного интеллекта. Это позволяет машинам «учиться» на реальных данных вместо того, чтобы действовать по набору предопределенных правил.

Но что означает «учиться»? Это может быть не так футуристично, как кажется.

Мое любимое объяснение: машинное обучение — это просто $inline$y = mx+b$inline$ на крэке. Если вы смотрели что-то вроде Black Mirror, довольно легко начать представлять современный искусственный интеллект как сознательное существо — то, что думает, чувствует и принимает сложные решения. Это еще более распространено в СМИ, где AI последовательно олицетворяется, а затем сравнивается со Skynet из Терминатора, или фильмом Матрица.

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

Не беспокойтесь если вы не дружите с математическими функциями, потому что не помните или не используете их. Чтобы уловить суть, нам нужно запомнить всего несколько простых вещей: есть вход ($inline$x$inline$), и есть выход ($inline$y$inline$), и функция — это то, что происходит между входом и выходом — связь между ними.


Мы можем заставить компьютер взглянуть на входящие ($inline$x$inline$) и выходящие ($inline$y$inline$) данные, и выяснить, что связывает их вместе.

Примером супер-упрощенного искусственного интеллекта может быть функция выраженная как $inline$y = mx+b$inline$. Мы уже знаем $inline$x$inline$ и $inline$y$inline$ (из таблицы ниже); нам просто нужно найти $inline$m$inline$ и $inline$b$inline$, чтобы понять, какова связь между $inline$x$inline$ и $inline$y$inline$.

Таблица: Kyle Gallatin

Для этого шаблона, чтобы получить $inline$y$inline$ из $inline$x$inline$, нам нужно умножить $inline$x$inline$ на 1($inline$m$inline$) и добавить 1($inline$b$inline$). Так выйдет функция $inline$y = 1x + 1$inline$.

Отлично! Мы определили что $inline$m = 1$inline$ и $inline$b = 1$inline$. Мы просто взяли некоторые данные (из таблицы выше) и создали функцию, которая их описала. По сути, это и есть машинное обучение. Теперь используя полученную функцию, мы можем сделать предположение чему будет равен $inline$y$inline$, для других данных на входе $inline$x$inline$.

Интересная часть это то, как вы учите машину, находить какая функция лучше всего описывает данные, но когда вы с этим закончите, то, что у вас получится — это, как правило, некоторая форма $inline$y = mx + b$inline$. Как только мы получим эту функцию, мы также можем построить ее на графике:
Линейное уравнение
Скриншот из видео Tecmath

Для более подробного объяснения функций, у Math Is Fun есть интуитивно понятный и простой сайт (даже если название является для вас потенциальным красным флажком, и сайт выглядит так, как будто их веб-дизайнер сбежал когда-то в начале 2000-х).


Люди не сумеют подсчитать, машины сумеют

Очевидно, $inline$y = 1x + 1$inline$ — это очень простой пример. Единственная причина, по которой существует машинное обучение, заключается в том, что люди не могут смотреть на миллионы входящих и выходящих точек данных, и придумывать сложную функцию для описания результатов. Вместо этого мы можем обучить компьютер делать это за нас.

В любом случае, должно быть достаточно данных, чтобы найти правильную функцию. Если у нас есть только по одной точки данных для $inline$x$inline$ и $inline$y$inline$, ни мы, ни машина не могли бы предсказать только одну точную функцию. В исходном примере, где $inline$x = 1$inline$ и $inline$y = 2$inline$, функция может быть $inline$y = 2x$inline$, $inline$y = x + 1$inline$, $inline$y = ([x + 1] \cdot 5 — 9)^5 + 1$inline$ или многими другими. Если у нас недостаточно данных, функция, которую найдет машина, может привести к большому количеству ошибок, когда мы попытаемся использовать её для большего количества данных.

Кроме того, реальные данные не всегда так совершенны. В приведенном ниже примере машина определила несколько функций, которые соответствуют большей части данных, но линия не проходит через каждую точку. В отличие от прошлого примера с таблицей из математического класса, данные, собранные из реального мира, более непредсказуемы и никогда не могут быть описаны полностью.

Регрессионный анализ
Это базовый пример показывает как машина учится чтобы лучше всего описать представленные данные. Изображение: Towards Data Science

Наконец, последнее, что люди не могут сделать, это посмотреть на кучу переменных. Это просто с помощью $inline$x$inline$ и $inline$y$inline$, но что если входящих переменных больше? Что если на $inline$y$inline$ влияет $inline$x^1$inline$, $inline$x^2$inline$, … $inline$x^{100}$inline$. Очень быстро функции могут становиться все более сложными (для людей).


Машинное обучение и искусственный интеллект в реальном мире

Давайте посмотрим на реальный пример. Я работаю в области фармацевтики, поэтому предположим, что у нас есть набор данных, связанных с раком, который имеет две входящие переменные отвечающие размеру опухоли — радиус и периметр, и выход, с двумя потенциальными значениями, является ли опухоль доброкачественной или метастатической (потенциально опасной для жизни). Это может показаться сложным, но нам всего-то нужно применить знакомую концепцию $inline$y = mx + b$inline$:


  • $inline$y$inline$ является диагнозом, и может быть 0 (доброкачественный) или 1 (метастатический).
  • $inline$x_1$inline$ — радиус.
  • $inline$x_2$inline$ — периметр.
  • У каждого $inline$x$inline$ есть свой неизвестный $inline$m$inline$; давайте назовем их $inline$нечто_1$inline$ и $inline$нечто_2$inline$.
  • $inline$b$inline$ — неизвестная постоянная.

Как теперь выглядит наше линейное уравнение? Не сильно отличается от примера выше:

$$display$$диагноз = (нечто_1 \cdot радиус) + (нечто_2 \cdot периметр) + неизвестная$$display$$

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

Конечно, даже самые подробные, многофакторные данные не идеальны, поэтому и наша модель машинного обучения тоже не будет. Но нам не нужно, чтобы это было правильно в 100% случаев. Мы просто нуждаемся в этом, чтобы придумать наилучшую возможную функцию, которая подходит для большинства случаев.


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

© Habrahabr.ru