Хотите стать экспертом в области компьютерного зрения и обнаружения объектов?
Подпишитесь на новый практический курс
В этой части лекций мы поговорим о простейших «мл-моделях» - полиномах.
Но сами по себе полиномы - это всего лишь некоторая функция, поэтому мы также поговорим об их интерполяции и попробуем составить их методом наименьших квадратов.
Начнем с магии:
Как мы видим, мы можем интерполировать наше уравнение полинома 2-го порядка очень точно (зеленая линия полностью покрывает красную линию).
С полиномом порядка N вы можете интерполировать практически любую функцию. Единственное исключение - периодические функции, поскольку полином не периодичен.
Итак, что мы можем сделать с этой штукой? - Например, мы можем использовать его, чтобы найти фильтр кривых преобразования тонов из двух изображений.
Этот фильтр создает функцию, которая изменяет изображение на уровне + глобальные значения. Это один из фильтров, который не снижает качество фото (потому что эти функции являются непрерывными и, следовательно, очень точными. Единственное ограничение - это размер поплавка компьютера)
Итак, после того, как мы увидим эти примеры, давайте попробуем понять, как работает интерполяция.
Прежде всего, вы должны знать, что интерполяция - это практически любой алгоритм, который пытается создать новые данные из уже просмотренных данных. Итак, любой алгоритм ML - это интерполяция. Ваш мозг работает, интерполируя данные каждую секунду вашей жизни.
Единственное различие между ними - уровень сложности.
Сегодня мы поговорим о методе наименьших квадратов, который мы будем вычислять с использованием простых матричных операций (как и все вещи в ML, если что-то не является матричной операцией - это очень плохо, потому что мы не можем использовать графический процессор на полной мощности)
Наша интерполяция методом наименьших квадратов может быть определена как система m линейных уравнений и n коэффициентов с m ›n:
X - это матрица Вандермонда нашей матрицы x, которая представляет собой геометрическую прогрессию значений в каждой позиции. Итак, если у нас есть значение 3 и полином 3-го порядка, тогда ряды Вандермонда для него будут 1, 3, 9, 27.
Наше решение заключается в решении этой проблемы минимизации.
Что дает нам уравновешенность
В коде мы можем видеть небольшую часть, которая нормализует ввод, мы можем передать его, если изображение нормализуется до [0,1] перед запуском интерполяции.
И, наконец, простой способ использовать интерполяцию для получения стиля изображения без предварительного
Итак, теперь вы можете попробовать создать свои собственные фильтры Instagram с помощью нескольких строк кода или скопировать стиль другого.
Код
Вы можете запустить весь этот код в Google Colab.
Служба поддержки
Еще больше интересных вещей о линейной алгебре
Линейная алгебра. Совмещение точек с SVD в трехмерном пространстве
Проблема в сторонуdatascience.com