Хотите стать экспертом в области компьютерного зрения и обнаружения объектов?

Подпишитесь на новый практический курс

В этой части лекций мы поговорим о простейших «мл-моделях» - полиномах.

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

Начнем с магии:

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

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

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

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

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

Наша интерполяция методом наименьших квадратов может быть определена как система m линейных уравнений и n коэффициентов с m ›n:

X - это матрица Вандермонда нашей матрицы x, которая представляет собой геометрическую прогрессию значений в каждой позиции. Итак, если у нас есть значение 3 и полином 3-го порядка, тогда ряды Вандермонда для него будут 1, 3, 9, 27.

Наше решение заключается в решении этой проблемы минимизации.

Что дает нам уравновешенность

В коде мы можем видеть небольшую часть, которая нормализует ввод, мы можем передать его, если изображение нормализуется до [0,1] перед запуском интерполяции.

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

Итак, теперь вы можете попробовать создать свои собственные фильтры Instagram с помощью нескольких строк кода или скопировать стиль другого.

Код

Вы можете запустить весь этот код в Google Colab.

Служба поддержки

Станьте покровителем и поддержите наше сообщество, чтобы оно делало больше интересных статей и руководств

Еще больше интересных вещей о линейной алгебре