Это второй день моего участия в Gengwen Challenge, чтобы узнать подробности о мероприятии, пожалуйста, проверьте:Обновить вызов.
Эта статья представляет собой заметки о курсе машинного обучения г-на Ли Хунъи, портал курса ?. [Машинное обучение 2021] Прогноз количества зрителей на этом канале (Часть 1) — Введение в основные концепции машинного обучения
Как ютубер, все, что его волнует, — это трафик этого канала, чтобы он знал, сколько он может заработать. Итак, можем ли мы найти функцию, входом которой является информация о фоне ютуба, а выходом — общее количество просмотров этого канала на следующий день.
Итак, как нам найти эту функцию дальше? Процесс машинного обучения для поиска этой функции разделен на три этапа.Мы будем использовать прогноз количества зрителей канала Youtube, чтобы проиллюстрировать, как работают эти три этапа.
Шаг 1: Напишите функцию с неизвестными параметрами
Проще говоря, давайте сначала угадаем, как выглядит математическая формула искомой нами функции F.
Например, давайте сделаем здесь предварительное предположение и запишем его так.
Примечание: Функция, которую мы называем Моделью; b, w в литературе принято называть Parameter, а китайцы переводятся в параметры, w мы называем Weight, b называем Bias; xₗ — это общее количество людей, которые читали в предыдущий день, который мы знаем, называемый Feature; Поэтому мы часто слышим, как люди говорят, что модель модели — это функция с неизвестным параметром в машинном обучении.
где y — это то, что мы собираемся предсказать, скажем, количество зрителей сегодня, а xₗ — общее количество зрителей на этом канале в предыдущий день. b и w — неизвестные параметры, мы не знаем, какими должны быть w и b, мы просто предполагаем, что они могут быть. Почему это предположение? Это предположение часто исходит из вашего понимания сути проблемы, которая заключается в знании предметной области.
Итак, откуда мы знаем, что функция F, предсказывающая количество кликов в будущем, должна быть равна количеству кликов за предыдущий день, умноженному на w плюс b? Возможно, мы думаем, что количество кликов сегодня всегда будет каким-то образом связано с количеством кликов вчера, поэтому мы умножаем количество кликов вчера на значение, но оно не будет точно таким же, поэтому добавьте ab, чтобы внести поправку, когда Это прогноз количества кликов сегодня.
Шаг 2: Определите потери
Потеря также является функцией.Вход этой функции - это параметры в нашей модели, то есть наши b и w выше.Выходное значение представляет собой этот набор неизвестных параметров.Когда установлено определенное значение, это значение хорошо или нет , хорошо.
В качестве конкретного примера предположим, что теперь мы устанавливаем неизвестные параметры равнымиb = 0.5k
,w = 1
, то функция, которую мы используем для прогнозирования количества будущих кликов, становится следующей.
Как рассчитать этот убыток? Мы должны вычислить это из обучающих данных, В этой задаче наши обучающие данные — это количество просмотров этого канала в прошлом. Например, мы знаем количество кликов в день с 2017 по 2020 год.Далее мы можем рассчитать Loss.Подставляем в эту функцию количество кликов на 2 января 2017 года, чтобы увидеть прогнозируемые результаты сколько.
Таким образом, согласно этой функции, если количество кликов 2 января равно 4,9 тыс., то количество кликов на следующий день должно быть 5,4 тыс., но фактическое количество кликов на следующий день равно 7,5 тыс., что является заниженной оценкой. возможности. Рассчитайте этот разрыв и возьмите его абсолютное значение, которое представлено e2, и значение равно 2,1k.
Затем у нас есть данные за три года с 1 января 2017 года по 31 декабря 2020 года. Это реальное значение называется меткой.
Примечание: Для машинного обучения требуется метка, а метка ссылается на правильное значение.
Точно так же предскажите количество кликов 3 января на основе количества кликов 2 января и рассчитайте абсолютное значение разницы от истинного значения. Таким же образом можно рассчитать ошибку прогноза каждого дня за последние три года, и ошибка каждого дня представлена маленькой буквой e.
Затем сложите их и усредните, чтобы получить нашу потерю.
Примечание: Big N представляет количество данных для обучения и тестирования; Большой L — Loss.Чем больше L, тем хуже группа w и b, в противном случае — тем лучше.
На самом деле e имеет разные методы расчета.В предыдущем примере мы рассчитали разницу между абсолютным значением y и ŷ.Убыток, полученный с помощью этого метода расчета разницы, называется средней абсолютной ошибкой, сокращенно MAE. Если она рассчитывается как квадрат вычитания y и ŷ, она называется среднеквадратической ошибкой, сокращенно MSE.
На самом деле между MSE и MAE есть очень тонкие различия, и какой метод использовать, как правило, измеряется на основе потребностей и понимания задачи.
Шаг 3: Оптимизация оптимизации
Далее мы вступаем в третий шаг машинного обучения, Третий шаг — решить задачу оптимизации. Взяв приведенный выше пример в качестве примера, нужно найти w и b, которые могут минимизировать наше значение Loss, Мы называем их w * и b *, указывая, что они являются лучшим набором w и b. Как показано на рисунке ниже, я попробовал разные параметры, а затем рассчитал его Loss.Нарисованная контурная карта называется Error Surface, что на китайском языке можно назвать поверхностью ошибок.
Как этого добиться? Здесь метод оптимизации, который мы используем, называется «Градиентный спуск», что переводится на китайский язык как «градиентный спуск».
Для простоты предположим, что у нас есть только один неизвестный параметр — w. Когда вы подставляете w на разные значения, вы получите разные потери.Эта кривая является поверхностью ошибки, но поскольку есть только один параметр, нарисованная поверхность ошибки является одномерной.
1. Выберите начальную точку w₀
Сначала случайным образом выберите начальную точку w₀, а затем рассчитайте, когдаw = w0
Каков дифференциал w к потерям, когда , то есть его наклон.
Если наклон отрицательный, это означает, что левая сторона выше, а правая ниже, поэтому мы перемещаем его вправо, чтобы сделать Loss меньше, то есть увеличить значение w; в противном случае переходим к вправо, то есть уменьшить значение w . В дополнение к наклону есть еще одна вещь, влияющая на размер темпа, здесь она представлена буквой η, которая называется скоростью обучения, что в переводе с китайского означает скорость обучения. Видно, что если η относительно велико, обновление Loss происходит быстрее, и наоборот. Эта скорость обучения устанавливается нами самими.В машинном обучении мы называем это гиперпараметрами, которые можно назвать гиперпараметрами на китайском языке.
2. Рассчитать w1
Чтобы сдвинуть w⁰ на один шаг вправо, чтобы получить w¹, выраженное в математическом выражении, w⁰ минус η и умноженное на результат дифференцирования, дает w¹.
Следующий шаг — проделать ту же операцию несколько раз, постоянно перемещая позицию w.
3. Когда вы останавливаетесь?
Цель перемещения w состоит в том, чтобы найти наименьший Loss, и часто бывают две ситуации, которые в конце концов остановят движение.
- Первое условие – потеря терпения. Предположим, мы установили, что он не будет обновляться после 1 миллиона обновлений, тогда параметры не будут обновляться после указанного количества обновлений.
- Существует еще одна возможность идеальной остановки, то есть ее дифференциальное значение рассчитывается точно равным 0. В это время, wT = WT+1, наш параметр больше не будет двигаться.
Локальные минимумы Локальные минимумы — ложная проблема
Из вышеприведенного рисунка мы обнаружили, что положение wT, где останавливается параметр, похоже, не находит наименьший Loss, и есть меньший Глобальный минимум, но на самом деле это ложная проблема, сначала поверьте этому факту, а затем объясните принцип.
несколько параметров
Только что упомянутый пример имеет только один параметр, на самом деле наша модель имеет два параметра w и b, и принцип точно такой же, как и с одним параметром. Дайте ему случайные начальные значения w⁰ и b⁰, а затем рассчитайте дифференцирование w и b и Loss соответственно.После расчета обновите значения w и b в соответствии с вышеуказанными шагами, и, наконец, вы можете найти лучшее w* и лучшее b*, что минимизирует наши потери.
Резюме и исправление
На данный момент мы освоили три этапа машинного обучения, которые вместе называются обучением.
Мы вычисляем Loss на данных с известными ответами, то есть делаем вид, что не знаем количество просмотров на следующий день, а затем используем эту функцию для прогнозирования и расчета ее ошибки. Но что нас действительно волнует, так это количество будущих просмотров, о которых мы не знаем Следующее, что нужно сделать, это использовать эту функцию, чтобы действительно предсказать количество будущих просмотров.
Средняя ошибка получается после предсказания, обозначаемой L'. Вы можете отправить эту модель для прогнозирования данных за предыдущий день, кажется, что синяя линия просто сдвинула красную линию вправо на день. Присмотревшись к красной линии, я обнаружил, что это цикл каждые семь дней, и всегда есть два дня в цикле, которые особенно низкие, поэтому наша модель, учитывающая только один день, явно плоха.
Если наша модель ссылается на данные за предыдущие семь дней, прогноз может быть более точным, поэтому нам необходимо модифицировать модель. Обычно модификация модели часто исходит из понимания этой проблемы, то есть знаний предметной области.
Итак, вначале, когда мы вообще не понимали задачу, мы просто написали случайное y=b+wx₁, что не очень хорошо сработало, затем мы посмотрели на реальные данные и пришли к выводу, что существует цикл каждые семь дней, Значит надо было написать новую модель с учетом количества просмотров за первые семь дней.
Примечание: Нижний индекс j представляет несколько дней назад, а j равен от 1 до 7, то есть данные за один день, два дня назад и семь дней назад.
Мы берем данные семидневной давности, умножаем их на разные веса, суммируем их и добавляем смещение, чтобы получить прогнозируемый результат. Конечно, вы также можете учитывать 28 дней, то есть количество зрителей в каждый день предыдущего месяца, чтобы предсказать количество зрителей в следующий день.
Умножьте функцию на вес и добавьте смещение, как указано выше, чтобы получить прогнозируемый результат.Такая модель имеет общее название, называемое линейной моделью. Далее я попытаюсь улучшить линейную модель.
Сборник терминов
английский | китайский язык |
---|---|
Model | Модель |
Parameter | параметр |
Weight | Веса |
Bias | отклонение |
Domain Knowledge | базовые знания |
Loss | функция потерь |
MAE(mean absolute error) | средняя абсолютная ошибка |
MSE(mean square error) | среднеквадратическая ошибка |
Optimization | оптимизация |
Error Surface | Поверхность ошибки |
Gradient Descent | градиентный спуск |
Local Minima | локальные минимумы |
Global Minima | глобальный минимум |
Linear Model | Линейная модель |