Язык машинного обучения может показаться сложным, но концепции на удивление интуитивно понятны.

Такие термины, как «машинное обучение», «глубокое обучение», «нейронные сети», «искусственный интеллект» или «искусственный интеллект», «наука о данных» и другие, были модными словечками последних нескольких лет в сфере технологий. Благодаря достижениям в вычислительной мощности и увеличению объема доступных данных, методы, о которых было известно в течение десятилетий, теперь могут быть реализованы на практике.

Но что они на самом деле означают?

Математические уравнения дают машинам общее представление о том, чему мы научились как люди.

Большинству из нас известно объяснение с высоты 10 000 футов вроде «Все дело в том, чтобы научить компьютеры решать проблемы за нас», но многие люди, вероятно, не знают, что на самом деле происходит под капот. Основы машинного обучения достаточно просты, интуитивно понятны и, что более важно, достаточно интересны, чтобы их мог освоить любой за относительно короткий промежуток времени.

Это простое объяснение того, как машинное обучение используется для обучения компьютера решению проблемы, предназначено для тех, кто не знает машинного обучения, или тех, кто хочет начать с нуля.

Линия наилучшего соответствия

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

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

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

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

Все просто, правда? В машинном обучении это называется «линейная регрессия». Пусть имя вас не пугает. Если вы понимаете все вышесказанное, значит, вы понимаете линейную регрессию. Это простой метод машинного обучения, который помогает делать прогнозы относительно наборов данных, имеющих линейную форму.

Процесс линейной регрессии для машинного обучения выглядит следующим образом:

  1. Соберите точки данных.
  2. Передайте точки данных программе, которая может применить к ним линейную регрессию, чтобы получить наиболее подходящую линию.
  3. Используйте линию наилучшего соответствия, чтобы делать прогнозы относительно новых данных.

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

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

Проблема линейной регрессии

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

Добавление строки, наиболее подходящей к этим данным, может выглядеть так:

Линия наилучшего соответствия неплохо справляется с сопоставлением данных, но похоже, что она могла бы работать намного лучше. Поскольку форма данных не совсем прямая, нарисованная линия наилучшего соответствия не соответствует данным. Это проблема машинного обучения, известная как «недостаточное соответствие»: линия наилучшего соответствия на самом деле не соответствует данным. Но если мы изменим линию наилучшего соответствия на изогнутую, она может работать лучше.

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

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

Выбор точности модели

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

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

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

Или мы могли бы сделать лучшую линию еще более изогнутой для чего-то вроде этого:

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

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

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

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

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

Приложив немного дополнительных усилий, нейронные сети также могут использоваться для ответа на вопросы типа «да / нет» о данных вместо того, чтобы возвращать числа.

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

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

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

Как заставить компьютеры отвечать на вопросы

Что касается методов, рассмотренных до сих пор - линейной регрессии, полиномиальной регрессии и нейронных сетей - мы рассмотрели только то, как мы можем обучить компьютеры давать нам число в зависимости от данных, которые мы им предоставляем. Модель размера и роста обуви дает нам номер роста, когда мы даем номер размера обуви; аналогично модель стоимости дома по количеству комнат дает нам номер стоимости, когда мы даем ему номер комнаты.

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

Хорошая новость заключается в том, что существуют методы машинного обучения, аналогичные тем, которые мы уже видели, которые отвечают на конкретный вопрос вместо того, чтобы указывать число. Модель машинного обучения может быть настроена так, чтобы дать ответ «да / нет» на вопрос о продаже в течение шести недель, когда мы предоставляем некоторые базовые входные данные, такие как количество комнат, стоимость и квадратные метры. Очевидно, что это никогда не может быть идеальной моделью, потому что рынок жилья не следует точным правилам, но модели машинного обучения используются, чтобы дать ответы на эти типы вопросов с высокой степенью точности (в зависимости от качества данных).

Для линейной регрессии задействованным аналогом будет линейная форма логистической регрессии. (Опять же, не позволяйте терминологии сбивать вас с толку. Основные методы на самом деле очень интуитивно понятны.) Он может отвечать на такие вопросы, как «Это спам по электронной почте?» или "Завтра пойдет дождь?" Оба метода - линейная регрессия и логистическая регрессия - позволят вычислить линию наилучшего соответствия, но они отличаются тем, как они используют эту линию. Напоминаем, что вот модель линейной регрессии, которую мы использовали для набора данных, чтобы предсказать нам другое число:

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

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

Если мы хотим ответить на вопросы более сложные, чем те, которые ищут ответы «да / нет», мы могли бы либо использовать метод, известный как полиномиальная логистическая регрессия, либо мы могли бы адаптировать нейронные сети, чтобы иметь возможность обрабатывать эти случаи. Созданные таким образом модели смогут ответить на вопрос типа «Будет ли завтра дождливым, солнечным или снежным?» «Полиномиальная» часть просто означает, что ответ может быть одним из множества вариантов. В этом примере три возможных ответа: дождливый, солнечный или снежный.

Вторая часть этой серии статей о машинном обучении уже доступна, и ее можно найти здесь:



Если вам нравится эта статья и ее формат, возможно, вам понравится моя серия ...



Серия простых руководств
« Серия простых руководств
- это именно то, о чем говорится. medium.com»