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

Что такое машинное обучение?

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

«Машинное обучение» - это термин, состоящий из большого количества алгоритмов.

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

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

Виды алгоритмов машинного обучения

Существует два основных типа алгоритмов машинного обучения - обучение с учителем и обучение без учителя. У них нет сложных различий.

Обучение с учителем

Для понимания контролируемого обучения мы возьмем самый популярный пример прогнозирования цен на жилье.

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

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

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

Полученные нами данные называются «обучающими данными».

Теперь это данные, которые мы должны ввести в модель, и эта модель будет предсказывать цены на дома в этом конкретном городе.

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

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

Обучение без учителя

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

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

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

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

Итак, мы видим, что обучение без учителя так же важно, как и обучение с учителем, и не менее интересно, чем обучение с учителем.

Можем ли мы действительно считать это «обучением»?

Мы, люди, работаем на основе своего опыта, у нас есть импульсы.

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

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

Возможно, через 20–30 лет мы бы изобрели некоторые алгоритмы, которые позволят создать сильный и продвинутый искусственный интеллект.

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

Попробуем подумать об алгоритмах

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

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

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

Вы можете потратить много часов на поиск чисел, которые хотите сложить или вычесть, но вы не сможете найти идеальные числа. Также будет сложно, когда будет колебание реальной цены.

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

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

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

Простой и утомительный способ определить эти веса:

  1. Установите вес всех параметров равным 1.
  2. Рассчитайте ориентировочную цену для каждого дома и сверьте ее с фактической ценой из базы данных. Вы должны проверить, насколько вы далеки от настоящего ответа.
  3. Предположим, у вас есть 500 наборов данных, тогда вам нужно сделать это методом проб и ошибок и попытаться найти веса, которые идеально подходят для вашей базы данных.
  4. Если вам каким-то образом удалось узнать суммы, значит, вы успешно нашли алгоритм для оценки стоимости жилья.

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

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

Линейная регрессия

Линейная регрессия - это алгоритм обучения с учителем, в котором прогнозируемый результат является непрерывным и имеет постоянный наклон.

В простом алгоритме линейной регрессии используется форма пересечения наклона, где m и b - переменные, которым наш алгоритм пытается «научиться» для получения наиболее точного результата.

В выражении x представляет входные данные, а y представляет прогнозируемый результат.

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

Как делать прогнозы?

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

Вес - коэффициент радиопеременной.

Радио - это независимая переменная, которая также называется функцией.

Смещение - это точка пересечения линии с осью y.

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

Точки, которые вы видите, - это фактические продажи компании при ее бюджете на рекламу на радио, а все точки, которые лежат на линии, - это прогнозируемые продажи.

Функция стоимости

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

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

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

Основная цель - максимально снизить стоимость, чтобы можно было повысить точность модели.

Стоимость - это выражение, приведенное ниже:

куда,

N - общее количество наблюдений.

y i - фактическое значение наблюдения

mx i + c - наш прогноз

Градиентный спуск

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

В нашей функции стоимости есть два параметра, которые мы можем изменить: вес m и смещение b.

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

Дело в том, что для того, чтобы найти значения m и b, мы должны сделать затраты минимальными, а градиентный спуск - очень эффективный алгоритм.

Наша функция стоимости:

Формула, которую мы получили в результате частичного дифференцирования, выглядит следующим образом:

Цель градиентного спуска - сходиться в точке локального минимума.

Теперь нам нужно обновить значение m, используя градиентный спуск.

Обновление m выглядит следующим образом:

m = m - (альфа). (частная производная стоимости относительно m)

Обновление c выглядит следующим образом:

б = б - (альфа). (частная производная стоимости по отношению к b)

Здесь,

альфа - это скорость обучения или скорость, с которой мы найдем локальный минимум.

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

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

Проверка

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

Позвольте мне показать вам историю затрат:

Как видно на рисунке выше, функция стоимости уменьшается с количеством итераций.

Резюме

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

Интересно, как модель будет работать в реальной жизни. Я бы позволил тебе подумать об этом!

Что ж, это самый простой алгоритм, который существует для обучения с учителем.

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

Я бы отложил множественную регрессию на другой раз.

Как узнать больше?

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