Как компьютеры распознают шаблоны

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

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

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

Эти первые пять примеров содержат ежемесячные примеры описательной информации и заработной платы.

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

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

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

A + (отработанные часы * B) + (возраст * C) = зарплата

Где А, В и С — неизвестные переменные.

Для любых A, B и C существует единственная плоскость.

Возьмем список ‹A,B,C› и назовем его θ. После этого давайте выберем случайное число для каждого. Это создает плоскость.

Эта плоскость похожа на формулу, выделенную жирным шрифтом. Он принимает два числа и возвращает Z. В зависимости от трех чисел тета плоскость принимает различную форму.

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

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

Стоимость(Зарплата_в_тысячах, прогнозируемая зарплата) = сумма((Зарплата_в_тысячах-прогнозируемая зарплата)²)

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

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

.

Остается вопрос: в каком направлении мы двигаем θ?

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

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

Затем мы обновляем θ, используя следующую формулу:

θ = θ-∇Cost() …где ∇Cost() — градиент

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

С нашим новым θ мы вычисляем новые предсказания. Затем мы вычисляем новую стоимость и новый градиент. Это приводит к следующему циклу.

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

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

Вот наша финальная модель

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

Это график, представляющий нашу модель.

Слева представлены входные данные для модели: возраст и количество отработанных часов.

Данные перемещаются слева направо по трем каналам. Чем шире канал, обозначенный θ[i], тем больше выход справа. Верхняя строка представляет 1*θ[0]

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

Математика записывается как ‹1, возраст, количество отработанных часов›*θ = прогноз заработной платы

Посмотрите часть 2 здесь: