Это заметки, которые я сделал лично, когда проходил курс машинного обучения, который читал профессор Эндрю Нг из Стэнфордского университета на Coursera. Зарегистрироваться на курс можно бесплатно, он охватывает интуитивную математику, лежащую в основе классических алгоритмов, таких как линейная регрессия, логистическая регрессия, нейронные сети и K-средние, и это лишь некоторые из них. В этой статье я предоставлю подробное руководство — простой способ понять классический алгоритм линейной регрессии с нуля.
Что такое машинное обучение?
Артур Сэмюэл описал это как «область исследования, которая дает компьютерам возможность учиться без явного программирования».
Более формальное определение было дано Томом Мишелем как:
«Говорят, что компьютерная программа учится на опыте E в отношении некоторого класса задач T и показателя производительности P, если ее производительность при выполнении задач в T, измеряемая P, улучшается с опытом E».
Пример: игра в шашки. E = опыт многих игр в шашки T = задача игры в шашки. P = вероятность того, что программа выиграет следующую игру. В общем, любую проблему машинного обучения можно отнести к одной из двух широких классификаций: обучение с учителем и обучение без учителя.
- Обучение с учителем обычно имеет два типа проблем: проблемы регрессии и проблемы классификации. Когда данные находятся в парах вход-выход, вы разрабатываете функцию обучения, которая сопоставляет новый вход с выходом на основе ранее изученных пар вход-выход из собранных вами данных.
- Неконтролируемое обучение – это когда вам даются данные без меток, и мы склонны замечать/узнавать закономерность в данных с помощью алгоритмов. Например, группировка похожих новостных статей под одной карточкой в Новостях Google. Или попробуйте классифицировать своих сотрудников по какой-либо категории с учетом их производительности, пунктуальности и других характеристик.
В этой статье давайте подробнее рассмотрим контролируемое обучение, в основном, подробно разберем алгоритм линейной регрессии.
Контролируемое обучение
Мы собираемся смоделировать функцию для сопоставления линии наилучшего соответствия с заданными данными. Например, прогнозирование цен на жилье по набору данных из 100 домов, проданных по разным ценам. Мы будем моделировать линейную функцию и использовать ее для прогнозирования новой точки данных с заданным набором признаков. Это касается постановки задачи регрессии. Принимая во внимание, что в постановке задачи классификации у нас есть дискретные выходные значения, которые мы прогнозируем, используя модель, основанную на предоставленных данных. Например, классификация того, что кто-то страдает от рака — это либо 0, либо 1 — Да или Нет.
Линейная регрессия — подробный обзор
Всегда лучше понимать всю математику, лежащую в основе этого алгоритма, шаг за шагом, шаг за шагом. Прямое выполнение функции гипотезы, стоимости, оптимизации и всего хорошего, что содержится в нескольких абзацах, может в конечном итоге оставить вас с полной двусмысленностью. Поэтому мы будем идти шаг за шагом. Давайте начнем.
ФУНКЦИЯ МОДЕЛЬ И СТОИМОСТЬ
- Итак, в основном нам дан набор данных, который имеет пары входных и выходных данных. Вот некоторая базовая терминология, связанная с этим набором данных:
- m = общее количество обучающих примеров. Пусть x обозначает функцию, заданную в наборе, а y обозначает результат. Тогда пара (xi, yi) называется обучающим примером. Может быть несколько функций, x1i,x2i..xni, которые имеют только один выход; йи. Теперь опишем функцию гипотезы h(x).
- Гипотеза принимает параметры тета, с помощью которых мы вычисляем линию наилучшего соответствия (линию регрессора). Когда у нас есть один признак, скажем, x, тогда гипотеза h(x) = theta0+theta1*x.
- Функция стоимости используется для измерения точности нашей гипотезы h. При этом средние результаты гипотезы вычитаются из исходных выходных значений. Вот представление функции стоимости:
- Наша главная цель — минимизировать функцию стоимости, чтобы получить очень близкую гипотезу к набору данных.
ФУНКЦИЯ СТОИМОСТИ — ИНТУИЦИЯ
- Когда мы отображаем функцию стоимости с осью x в качестве входных данных для гипотезы и осью y в качестве значения функции стоимости, то результирующий график будет идеальной параболой. Как было сказано ранее, нам нужно минимизировать функцию стоимости.
- Для набора данных (0,0), (1,1), (2,2), (3,3) тета0 = 0 и тета1 = 1 являются глобальным минимумом гипотезы, и он идеально подходит, что не является всегда так — Как мы увидим оптимизацию позже.
Краткий обзор более сложных функций гипотез
- Таким образом, по мере увеличения количества функций набора данных возрастает и сложность визуализации графика. Итак, для двух функций мы можем построить контурный график функции стоимости. А для задачи линейной регрессии всегда существует глобальный минимум.
- График функции стоимости двух функций может выглядеть следующим образом: эллиптический параболоид.
- А контурные графики вышеизложенного выглядят так, как показано ниже.
ГРАДИЕНТНЫЙ СПУСК: ПУТЬ К ГЛОБАЛЬНОМУ МИНИМУМУ
- Используя функцию стоимости, гипотезу, мы используем алгоритм градиентного спуска, чтобы медленно, но верно добраться до глобального минимума/локального минимума данного контурного графика. Основная цель этого состоит в том, чтобы:
- Итак, у нас есть входные данные: тета0, тета1,… тетаN. Здесь мы обновляем эти значения в соответствии с градиентным спуском. У нас есть скорость обучения альфа, установленная на какое-то крошечное значение, такое как 0,001, которое можно варьировать в зависимости от набора данных и умножать его на частную производную функции стоимости по тетай. (i=1,2,3…n).
- Мы делаем крошечные шаги от начальной точки, как показано, с видом на направление, которое заставляет нас идти вниз максимально.
- Важным ограничением, которое следует учитывать для достижения хорошего градиентного спуска, является выбор правильного значения альфы. Если альфа слишком мала, может потребоваться много времени/множество итераций, чтобы достичь глобального/локального минимума. Если значение альфа слишком велико, то градиентный спуск может расходиться и вылетать за пределы графика.
АЛГОРИТМ ИНТУИЦИИ
- Принимая во внимание наличие только одного параметра, скажем, Theta1, и когда на графике отображается его функция стоимости, мы можем ясно видеть градиентный спуск в действии.
- Наша формула для одного параметра заключалась в обновлении тета1 до сходимости, как указано в приведенном выше алгоритме. При этом у нас может быть два конкретных случая:
- Когда наклон отрицательный, значение тета 1 в конечном итоге увеличивается.
- Когда наклон положительный, значение тета 1 уменьшается в зависимости от скорости обучения/альфа.
- Здесь важно отметить, что по мере того, как мы приближаемся к глобальному минимуму, значение частного сходится или стремится к нулю. Что, возможно, дает нам лучший параметр для гипотезы, которую мы выбираем.
ЛИНЕЙНАЯ РЕГРЕССИЯ В ДЕЙСТВИИ
- Итак, весь алгоритм здесь основан на двух основных концепциях: функция стоимости вместе с гипотезой и алгоритм градиентного спуска.
- Когда градиентный спуск находит глобальный/локальный минимум данной гипотезы, у нас будут близкие значения тета для прогнозирования. Больше функций, больше тета-значений. Весь градиентный спуск для 2 функций приведен ниже.
- Итак, наконец, применение всех этих концепций к набору данных будет алгоритмом линейной регрессии в действии.
Для драгоценных, с терпением.