Это заметки, которые я сделал лично, когда проходил курс машинного обучения, который читал профессор Эндрю Нг из Стэнфордского университета на 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 функций приведен ниже.

  • Итак, наконец, применение всех этих концепций к набору данных будет алгоритмом линейной регрессии в действии.

Для драгоценных, с терпением.