Привет, Хабр! Представляю вашему вниманию перевод статьи "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$.


$inline$x$inline$ (вход) $inline$y$inline$ (выход)
1 2
2 3
3 4
4 5

Таблица: 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% случаев. Мы просто нуждаемся в этом, чтобы придумать наилучшую возможную функцию, которая подходит для большинства случаев.




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

Комментарии (13)


  1. submagic
    25.04.2019 20:30

    Спасибо. Продолжение будет?


    1. flacoshinobi Автор
      26.04.2019 14:18

      Вас интересует продолжение конкретно этой статьи или подобных по ML в общем? Если первое то лучше спросить у автора оригинала, если второе — возможно


      1. submagic
        26.04.2019 14:24

        И то, и другое, естественно. Тема очень интересная (а тут ещё и изложение удачное).


  1. pavlick
    25.04.2019 21:20

    кажется, что в этой статье не хватает букв


    1. flacoshinobi Автор
      26.04.2019 14:19

      Где именно?


      1. pavlick
        26.04.2019 14:20

        Да по всему тексту.

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


        1. flacoshinobi Автор
          26.04.2019 14:24

          Там должны были быть формулы. Похоже, они у вас не отображаются


  1. Bhudh
    26.04.2019 01:44

    Больше, запятых, богу, запятых.
    Серьёзно. Вычитывать надо перед публикацией.
    Приводить в порядок пунктуацию, грамматику, стилистику (а у многих — и орфографию).
    Не просто «закинул в гугл-транслейт, убрал явные ляпы (не все), быстро опубликовал».
    Особенно доставили такие красивые эллипсы Эйлера… с недоубранными рассогласованиями слов, кривой пунктуацией и ужасным синтаксисом перевода в целом.


    1. flacoshinobi Автор
      26.04.2019 14:23

      Тогда, может быть, вам следовало указать на ошибки и места где они допущены


      1. Bhudh
        26.04.2019 18:59

        через все более сенсационную призму различных медиа>,< или через плотную научную литературу
        в то время как в действительности>,< София не умнее>,< чем SmarterChild у AOL Instant Messenger.
        И все>,< что нужно>,< чтобы понять
        Тогда, может быть, вам следовало указать на ошибки и места>,< где они допущены
        Указал. Далее — везде.
        Если желаете: список могу в личку.


        1. flacoshinobi Автор
          29.04.2019 15:13

          Спасибо! Исправлю. За список буду благодарен более


  1. nad_oby
    26.04.2019 10:27
    +1

    В мобильной версии Chrome и Firefox все формулы превратились в тыкву.
    Интересно насколько сложно прикрутить к хабру рендеринг MathML на сервере и отдавать убогим картинку.
    А то как Хабр в транспорте читать...


  1. pop70
    26.04.2019 14:25

    Самое прикольное, что и «настоящий» интеллект и обучение сводятся к тому же.