задачи регрессии в машинном обучении пример

Регрессия в машинном обучении: оптимальный алгоритм

Регрессия используется в ML. Рассмотрим несколько алгоритмов и определим, как их использовать, исходя из преимуществ и недостатков.

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

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

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

Линейная и полиномиальная регрессия

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Начнём с простого. Одномерная (простая) линейная регрессия – это метод, используемый для моделирования отношений между одной независимой входной переменной (переменной функции) и выходной зависимой переменной. Модель линейная.

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

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

Преимущества:

Недостатки:

Нейронные сети

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Нейронная сеть состоит из взаимосвязанных групп узлов, называемых нейронами. Входные данные передаются в эти нейроны в виде линейной комбинации со множеством переменных. Значение, умножаемое на каждую функциональную переменную, называется весом. Затем к этой линейной комбинации применяется нелинейность, что даёт нейронной сети возможность моделировать сложные нелинейные отношения. Чаще всего нейросети бывают многослойными: выход одного слоя передается следующему так, как описано выше. На выходе нелинейность не применяется.

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

Преимущества:

Недостатки:

Дерево принятия решений и Случайный лес

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Начнём с простого случая. Дерево принятия решений – это представления правил, находящихся в последовательной, иерархической структуре, где каждому объекту соответствует узел, дающий решение. При построении дерева важно классифицировать атрибуты так, чтобы создать “чистые” узлы. То есть выбранный атрибут должен разбить множество так, чтобы получаемые в итоге подмножества состояли из объектов, принадлежащих к одному классу, или были максимально приближены к этому, т.е. количество объектов из других классов в каждом из этих множеств было как можно меньше.

“Случайные лес” – совокупность деревьев принятия решений. Входной вектор проходит через несколько деревьев решений. Для регрессии выходное значение всех деревьев усредняется; для классификации используется схема голосования для определения конечного класса.

Источник

5 алгоритмов регрессии в машинном обучении, о которых вам следует знать

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Источник: Vecteezy

Да, линейная регрессия не единственная

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

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

Команда Mail.ru Cloud Solutions перевела статью, автор которой описывает 5 алгоритмов регрессии. Их стоит иметь в своем наборе инструментов наряду с популярными алгоритмами классификации, такими как SVM, дерево решений и нейронные сети.

1. Нейросетевая регрессия

Теория

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

Каждый нейрон передает значения из предыдущей связи через функцию активации, служащую цели обобщения и нелинейности. Обычно активационная функция — это что-то вроде сигмоиды или функции ReLU (выпрямленный линейный блок).

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Источник. Свободное изображение

Но, заменив последнюю функцию активации (выходной нейрон) линейной функцией активации, выходной сигнал можно отобразить на множество значений, выходящих за пределы фиксированных классов. Таким образом, на выходе будет не вероятность отнесения входного сигнала к какому-либо одному классу, а непрерывное значение, на котором фиксирует свои наблюдения нейронная сеть. В этом смысле можно сказать, что нейронная сеть как бы дополняет линейную регрессию.

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

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

Реализация

Используя Keras, построим структуру искусственной нейронной сети, хотя то же самое можно было бы сделать со сверточной нейронной сетью или другой сетью, если последний слой является либо плотным слоем с линейной активацией, либо просто слоем с линейной активацией. (Обратите внимание, что импорты Keras не указаны для экономии места).

model = Sequential()
model.add(Dense(100, input_dim=3, activation=’sigmoid’))
model.add(ReLU(alpha=1.0))
model.add(Dense(50, activation=’sigmoid’))
model.add(ReLU(alpha=1.0))
model.add(Dense(25, activation=’softmax’))

#IMPORTANT PART
model.add(Dense(1, activation=’linear’))

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

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

2. Регрессия дерева решений

Теория

Деревья решений в классификации и регрессии очень похожи, поскольку работают путем построения деревьев с узлами «да/нет». Однако в то время как конечные узлы классификации приводят к одному значению класса (например, 1 или 0 для задачи бинарной классификации), деревья регрессии заканчиваются значением в непрерывном режиме (например, 4593,49 или 10,98).

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Иллюстрация автора

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

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

Реализация

Регрессия дерева решений может быть легко создана в sklearn :

Бонус: близкий родственник дерева решений, алгоритм random forest (алгоритм случайного леса), также может быть реализован в качестве регрессора. Регрессор случайного леса может работать лучше или не лучше, чем дерево решений в регрессии (в то время как он обычно работает лучше в классификации) из-за тонкого баланса между избыточным и недостаточным в природе алгоритмов построения дерева.

3. Регрессия LASSO

Метод регрессии лассо (LASSO, Least Absolute Shrinkage and Selection Operator) — это вариация линейной регрессии, специально адаптированная для данных, которые демонстрируют сильную мультиколлинеарность (то есть сильную корреляцию признаков друг с другом).

Она автоматизирует части выбора модели, такие как выбор переменных или исключение параметров. LASSO использует сжатие коэффициентов (shrinkage), то есть процесс, в котором значения данных приближаются к центральной точке (например среднему значению).

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Иллюстрация автора. Упрощенная визуализация процесса сжатия

Процесс сжатия добавляет регрессионным моделям несколько преимуществ:

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

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

Реализация

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

4. Гребневая регрессия (ридж-регрессия)

Теория

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

Однако самое большое различие между ними в том, что гребневая регрессия использует регуляризацию L2, то есть ни один из коэффициентов не становится нулевым, как это происходит в регрессии LASSO. Вместо этого коэффициенты всё больше приближаются к нулю, но не имеют большого стимула достичь его из-за природы регуляризации L2.

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Сравнение ошибок в регрессии лассо (слева) и гребневой регрессии (справа). Поскольку гребневая регрессия использует регуляризацию L2, ее площадь напоминает круг, тогда как регуляризация лассо L1 рисует прямые линии. Свободное изображение. Источник

В лассо улучшение от ошибки 5 до ошибки 4 взвешивается так же, как улучшение от 4 до 3, а также от 3 до 2, от 2 до 1 и от 1 до 0. Следовательно, больше коэффициентов достигает нуля и устраняется больше признаков.

Однако в гребневой регрессии улучшение от ошибки 5 до ошибки 4 вычисляется как 5² − 4² = 9, тогда как улучшение от 4 до 3 взвешивается только как 7. Постепенно вознаграждение за улучшение уменьшается; следовательно, устраняется меньше признаков.

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

Реализация

Гребневую регрессию в sklearn можно реализовать следующим образом (см. ниже). Как и для регрессии лассо, в sklearn есть реализация для перекрестной проверки выбора лучших из многих обученных моделей.

5. Регрессия ElasticNet

Теория

ElasticNet стремится объединить лучшее из гребневой регрессии и регрессии лассо, комбинируя регуляризацию L1 и L2.

Лассо и гребневая регрессия представляют собой два различных метода регуляризации. В обоих случаях λ — это ключевой фактор, который контролирует размер штрафа:

Источник

5 алгоритмов регрессии в машинном обучении, о которых вам следует знать

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Источник: Vecteezy

Да, линейная регрессия не единственная

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

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

Команда Mail.ru Cloud Solutions перевела статью, автор которой описывает 5 алгоритмов регрессии. Их стоит иметь в своем наборе инструментов наряду с популярными алгоритмами классификации, такими как SVM, дерево решений и нейронные сети.

1. Нейросетевая регрессия

Теория

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

Каждый нейрон передает значения из предыдущей связи через функцию активации, служащую цели обобщения и нелинейности. Обычно активационная функция — это что-то вроде сигмоиды или функции ReLU (выпрямленный линейный блок).

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Источник. Свободное изображение

Но, заменив последнюю функцию активации (выходной нейрон) линейной функцией активации, выходной сигнал можно отобразить на множество значений, выходящих за пределы фиксированных классов. Таким образом, на выходе будет не вероятность отнесения входного сигнала к какому-либо одному классу, а непрерывное значение, на котором фиксирует свои наблюдения нейронная сеть. В этом смысле можно сказать, что нейронная сеть как бы дополняет линейную регрессию.

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

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

Реализация

Используя Keras, построим структуру искусственной нейронной сети, хотя то же самое можно было бы сделать со сверточной нейронной сетью или другой сетью, если последний слой является либо плотным слоем с линейной активацией, либо просто слоем с линейной активацией. (Обратите внимание, что импорты Keras не указаны для экономии места).

model = Sequential()
model.add(Dense(100, input_dim=3, activation=’sigmoid’))
model.add(ReLU(alpha=1.0))
model.add(Dense(50, activation=’sigmoid’))
model.add(ReLU(alpha=1.0))
model.add(Dense(25, activation=’softmax’))

#IMPORTANT PART
model.add(Dense(1, activation=’linear’))

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

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

2. Регрессия дерева решений

Теория

Деревья решений в классификации и регрессии очень похожи, поскольку работают путем построения деревьев с узлами «да/нет». Однако в то время как конечные узлы классификации приводят к одному значению класса (например, 1 или 0 для задачи бинарной классификации), деревья регрессии заканчиваются значением в непрерывном режиме (например, 4593,49 или 10,98).

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Иллюстрация автора

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

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

Реализация

Регрессия дерева решений может быть легко создана в sklearn :

Бонус: близкий родственник дерева решений, алгоритм random forest (алгоритм случайного леса), также может быть реализован в качестве регрессора. Регрессор случайного леса может работать лучше или не лучше, чем дерево решений в регрессии (в то время как он обычно работает лучше в классификации) из-за тонкого баланса между избыточным и недостаточным в природе алгоритмов построения дерева.

3. Регрессия LASSO

Метод регрессии лассо (LASSO, Least Absolute Shrinkage and Selection Operator) — это вариация линейной регрессии, специально адаптированная для данных, которые демонстрируют сильную мультиколлинеарность (то есть сильную корреляцию признаков друг с другом).

Она автоматизирует части выбора модели, такие как выбор переменных или исключение параметров. LASSO использует сжатие коэффициентов (shrinkage), то есть процесс, в котором значения данных приближаются к центральной точке (например среднему значению).

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Иллюстрация автора. Упрощенная визуализация процесса сжатия

Процесс сжатия добавляет регрессионным моделям несколько преимуществ:

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

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

Реализация

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

4. Гребневая регрессия (ридж-регрессия)

Теория

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

Однако самое большое различие между ними в том, что гребневая регрессия использует регуляризацию L2, то есть ни один из коэффициентов не становится нулевым, как это происходит в регрессии LASSO. Вместо этого коэффициенты всё больше приближаются к нулю, но не имеют большого стимула достичь его из-за природы регуляризации L2.

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
Сравнение ошибок в регрессии лассо (слева) и гребневой регрессии (справа). Поскольку гребневая регрессия использует регуляризацию L2, ее площадь напоминает круг, тогда как регуляризация лассо L1 рисует прямые линии. Свободное изображение. Источник

В лассо улучшение от ошибки 5 до ошибки 4 взвешивается так же, как улучшение от 4 до 3, а также от 3 до 2, от 2 до 1 и от 1 до 0. Следовательно, больше коэффициентов достигает нуля и устраняется больше признаков.

Однако в гребневой регрессии улучшение от ошибки 5 до ошибки 4 вычисляется как 5² − 4² = 9, тогда как улучшение от 4 до 3 взвешивается только как 7. Постепенно вознаграждение за улучшение уменьшается; следовательно, устраняется меньше признаков.

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

Реализация

Гребневую регрессию в sklearn можно реализовать следующим образом (см. ниже). Как и для регрессии лассо, в sklearn есть реализация для перекрестной проверки выбора лучших из многих обученных моделей.

5. Регрессия ElasticNet

Теория

ElasticNet стремится объединить лучшее из гребневой регрессии и регрессии лассо, комбинируя регуляризацию L1 и L2.

Лассо и гребневая регрессия представляют собой два различных метода регуляризации. В обоих случаях λ — это ключевой фактор, который контролирует размер штрафа:

Источник

Базовые принципы машинного обучения на примере линейной регрессии

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примерЗдравствуйте, коллеги! Это блог открытой русскоговорящей дата саентологической ложи. Нас уже легион, точнее 2500+ человек в слаке. За полтора года мы нагенерили 800к+ сообщений (ради этого слак выделил нам корпоративный аккаунт). Наши люди есть везде и, может, даже в вашей организации. Если вы интересуетесь машинным обучением, но по каким-то причинам не знаете про Open Data Science, то возможно вы в курсе мероприятий, которые организовывает сообщество. Самым масштабным из них является DataFest, который проходил недавно в офисе Mail.Ru Group, за два дня его посетило 1700 человек. Мы растем, наши ложи открываются в городах России, а также в Нью-Йорке, Дубае и даже во Львове, да, мы не воюем, а иногда даже и употребляем горячительные напитки вместе. И да, мы некоммерческая организация, наша цель — просвещение. Мы делаем все ради искусства. (пс: на фотографии вы можете наблюдать заседание ложи в одном из тайных храмов в Москве).

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

Формализмы

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Машинное обучение — это подраздел искусственного интеллекта, в котором изучаются алгоритмы, способные обучаться без прямого программирования того, что нужно изучать. Линейная регрессия является типичным представителем алгоритмов машинного обучения. Для начала ответим на вопрос «а что вообще значит обучаться?». Ответ на этот вопрос мы возьмем из книги 1997 года (стоит отметить, что оглавление этой книги не сильно отличается от современных книг по машинному обучению).

Говорят, что программа обучается на опыте задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примеротносительно класса задач задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примерв смысле меры качества задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример, если при решении задачи задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примеркачество, измеряемое мерой задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример, возрастает при демонстрации нового опыта задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример.

Можно выделить следующие задачи задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример, решаемые машинным обучением: обучение с учителем, обучение без учителя, обучение с подкреплением, активное обучение, трансфер знаний и т.д. Регрессия (как и классификация) относится к классу задач обучения с учителем, когда по заданному набору признаков наблюдаемого объекта необходимо спрогнозировать некоторую целевую переменную. Как правило, в задачах обучения с учителем, опыт задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примерпредставляется в виде множества пар признаков и целевых переменных: задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример. В случае линейной регрессии признаковое описание объекта — это действительный вектор задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример, а целевая переменная — это скаляр задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример. Самой простой мерой качества задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примердля задачи регрессии является задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример, где задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример— это наша оценка реального значения целевой переменной.

У нас есть задача, данные и способ оценки программы/модели. Давайте определим, что такое модель, и что значит обучить модель. Предиктивная модель – это параметрическое семейство функций (семейство гипотез):

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Получается, что алгоритм обучения — это отображение из набора данных в пространство гипотез. Обычно процесс обучения с учителем состоит из двух шагов:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Но, к сожалению, такой интеграл не посчитать, т.к. распределение задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примернеизвестно, иначе и задачи не было бы. Но мы можем посчитать эмпирическую оценку риска, как среднее значение функции стоимости:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Тогда, согласно принципу минимизации эмпирического риска, мы должны выбрать такую гипотезу задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример, которая минимизирует задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

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

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Эмпирический риск (функция стоимости) принимает форму среднеквадратичной ошибки:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

строки матрицы задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример— это признаковые описания наблюдаемых объектов. Один из алгоритмов обучения задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примертакой модели — это метод наименьших квадратов. Вычислим производную функции стоимости:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

приравняем к нулю и найдем решение в явном виде:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Поздравляю, дамы и господа, мы только что с вами вывели алгоритм машинного обучения. Реализуем же этот алгоритм. Начнем с датасета, состоящего всего из одного признака. Будем брать случайную точку на синусе и добавлять к ней шум — таким образом получим целевую переменную; признаком в этом случае будет координата задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

А теперь реализуем алгоритм обучения, используя магию NumPy:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Как мы видим, линия не очень-то совпадает с настоящей кривой. Среднеквадратичная ошибка равна 0.26704 условных единиц. Очевидно, что если бы вместо линии мы использовали кривую третьего порядка, то результат был бы куда лучше. И, на самом деле, с помощью линейной регрессии мы можем обучать нелинейные модели.

Полиномиальная регрессия

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

perror
10.26704
20.22495
30.08217
50.05862
70.05749
100.0532
135.76155

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

Вернемся к полиному 13-ой степени, с ним явно что-то не так. По идее, мы ожидаем, что полином 13-ой степени будет описывать тренировочный набор данных еще лучше, но результат показывает, что это не так. Из курса линейной алгебры мы помним, что обратная матрица существует только для несингулярных матриц, т.е. тех, у которых нет линейной зависимости колонок или строк. В методе наименьших квадратов нам необходимо инвертировать следующую матрицу: задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример. Для тестирования на линейную зависимость или мультиколлинеарность можно использовать число обусловленности матрицы. Один из способов оценки этого числа для матриц — это отношение модуля максимального собственного числа матрицы к модулю минимального собственного числа. Большое число обусловленности матрицы, или же наличие одного или нескольких собственных чисел близких к нулю свидетельствует о наличии мультиколлинеарности (или нечеткой мультиколлиниарности, когда задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример). Такие матрицы называются слабо обусловленными, а задача — некорректно поставленной. При инвертировании такой матрицы, решения имеют большую дисперсию. Это проявляется в том, что при небольшом изменении начальной матрицы, инвертированные будут сильно отличаться друг от друга. На практике это всплывет тогда, когда к 1000 семплов, вы добавите всего один, а решение МНК будет совсем другим. Посмотрим на собственные числа полученной матрицы, нас там ждет сюрприз:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Все так, numpy вернул два комплекснозначных собственных значения, что идет вразрез с теорией. Для симметричных и положительно определенных матриц (каковой и является матрица задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример) все собственные значения должны быть действительные. Возможно, это произошло из-за того, что при работе с большими числами матрица стала слегка несимметричной, но это не точно ¯\_(ツ)_/¯. Если вы вдруг найдете причину такого поведения нумпая, пожалуйста, напишите в комменте.

UPDATE (один из членов ложи по имени Андрей Оськин, с ником в слаке skoffer, без аккаунта на хабре, подсказывает):

Есть только одно замечание — не надо пользоваться формулой `(X^T X^<-1>) X^T` для вычисления коэффициентов линейной регрессии. Проблема с расходящимися значениями хорошо известна и на практике используют `QR` или `SVD`.

Ну, то есть вот такой кусок кода даст вполне приличный результат:

Перед тем как перейти к следующему разделу, давайте посмотрим на амплитуду параметров полиномиальной регрессии. Мы увидим, что при увеличении степени полинома, размах значений коэффициентов растет чуть ли не экспоненциально. Да, они еще и скачут в разные стороны.

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примерРегуляризация

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Новая функция стоимости примет вид:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Вычислим производную по параметрам:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

И найдем решение в явном виде:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Для такой матрицы число обусловленности будет равно: задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример, где задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример— это собственные числа матрицы. Таким образом, увеличивая параметр регуляризации мы уменьшаем число обусловленности, а обусловленность задачи улучшается.

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

perror
10.26748
20.22546
30.08803
100.05833
120.05585
130.05638

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

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примеррегуляризация

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Тогда задача примет вид:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Посчитаем производную по параметрам модели (надеюсь уважаемые господа не будут пинать меня, за то, что я вжух и взял производную по модулю):

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

а в задаче появляется еще один гиперпараметр задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример, отвечающий за скорость спуска, его в машинном обучении называют скоростью обучения (learning rate).
Запрограммировать такой алгоритм не составит труда, но нас ждет еще один сюрприз:

Получим такую вот эволюцию ошибки:

Даже при такой небольшой скорости обучения, ошибка все равно растет и очень даже стремительно. Причина в том, что каждый признак измеряется в разных масштабах, от небольших чисел у полиномиальных признаков 1-2 степени, до огромных при 12-13 степени. Для того чтобы итеративный процесс сошелся, необходимо либо выбрать экстремально мелкую скорость обучения, либо каким-то образом нормализовать признаки. Применим следующее преобразование к признакам и попробуем запустить процесс еще раз:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

Все стало сильно лучше.
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Нарисуем теперь все графики:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

perror
10.27204
20.23794
30.24118
100.18083
120.16069
130.15425

Если посмотреть на коэффициенты, мы увидим, что большая часть из них близка к нулю (то, что у 13-ой степени коэффициент совсем не нулевой, можно списать на шум и малое количество примеров в обучающей выборке; так же стоит помнить, что теперь все признаки измеряются в одинаковых шкалах).

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример
задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Описанный способ построения регрессии называется LASSO регрессия. Очень хотелось бы думать, что дядька на коне бросает веревку и ворует коэффициенты, а на их месте остается нуль. Но нет, LASSO = least absolute shrinkage and selection operator.

Байесовская интерпретация линейной регрессии

Две вышеописанные регуляризации, да и сама лининейная регрессия с квадратичной функцией ошибки, могут показаться какими-то грязными эмпирическими трюками. Но, оказывается, если взглянуть на эту модель с другой точки зрения, с точки зрения байесовой статистики, то все становится по местам. Грязные эмпирические трюки станут априорными предположениями. В основе байесовой статистики находится формула Байеса:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

В то время как в байесовом подходе интересуются апостериорным распределением:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Часто получается так, что интеграл, полученный в результате байесового вывода, крайне нетривиален (в случае линейной регрессии это, к счастью, не так), и тогда нужна точечная оценка. Тогда мы интересуемся максимумом апостериорного распределения (MAP = maximum a posteriori):

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Давайте сравним ML и MAP гипотезы для линейной регрессии, это даст нам четкое понимание смысла регуляризаций. Будем считать, что все объекты из обучающей выборки были взяты из общей популяции независимо и равномерно распределенно. Это позволит нам записать совместную вероятность данных (правдоподобие) в виде:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

удобнее будет прологарифмировать это выражение:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

Найдем MAP оценку параметров линейной регрессии, для этого придется задать какое-нибудь априорное распределение на параметры модели. Пусть для начала это будет опять нормальное распределение: задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример.

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Если расписать логарифм этого выражения, то вы легко увидите, что добавление нормального априорного распределения — это то же самое, что и добавление задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примернормы к функции стоимости. Попробуйте сделать это сами. Также станет ясно, что варьируя регуляризационный параметр, мы изменяем дисперсию априорного распределения: задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример.

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Теперь на график добавились круги, исходящие от центра — это плотность априорного распределения (круги, а не эллипсы из-за того, что матрица ковариации данного нормального распределения диагональна, а на диагонали находится одно и то же число). Точками обозначены различные решения MAP задачи. При увеличении параметра регуляризации (что эквивалентно уменьшению дисперсии), мы заставляем решение отдаляться от ML оценки и приближаться к центру априорного распределения. При большом значении параметра регуляризации, все параметры будут близки к нулю.

Естественно мы можем наложить и другое априорное распределение на параметры модели, например распределение Лапласа, тогда получим то же самое, что и при задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении примеррегуляризации.

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Тогда апостериорное распределение примет вид:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Глобальная динамика не изменилась: увеличиваем параметр регуляризации — решение приближается к центру априорного распределения. Также мы можем наблюдать, что такая регуляризация способствует нахождению разреженных решений: вы можете видеть два участка, на которых сначала один параметр равен нулю, затем второй параметр (в конце оба равны нулю).

И на самом деле два описанных регуляризатора — это частные случаи наложения обобщенного нормального распределения в качестве априорного распределения на параметры линейной регрессии:

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

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

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

задачи регрессии в машинном обучении пример. Смотреть фото задачи регрессии в машинном обучении пример. Смотреть картинку задачи регрессии в машинном обучении пример. Картинка про задачи регрессии в машинном обучении пример. Фото задачи регрессии в машинном обучении пример

Заключение

Здесь вы найдете jupyter notebook со всем вышеописанным и несколькими бонусами. Отдельное спасибо тем, кто осилил этот текст до конца.

Желающим копнуть эту тему глубже, рекомендую:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *