Если мы представили какой-то объект в виде вектора чисел (каждое число как-то характеризует объект), то множество таких объектов, описанных в виде векторов, как правило, объединяют в матрицу. Вычисления над матрицами более эффективны и наглядны, чем над каждым вектором отдельно. На данный момент реализованы очень эффективные алгоритмы для многих операций над матрицами, которые преобразовывают матрицу в целом или частично, а не итеративно проходя и меняя каждый из её элементов.
Задачи машинного обучения в большой своей массе сводятся к нахождению принципов того как одни объекты зависят от других или как выразить одни объекты через другие, так как одни объекты у нас есть, а другие хотелось бы узнать. Например, имея описание квартиры, определить время необходимое на её продажу квартиры. Если квартиру мы представим в виде вектора, а все квартиры, которые надо проанализировать в виде матрицы X, то результат нашей функции предсказания - время реализации каждой квартиры - представляется в виде вектора y:
Функция predict может быть реализовано сколь угодно сложным образом. Например, мы можем представить, что каждый признак квартиры (рассмотрим здесь два признака - её стоимость и популярность района) по разному влияют на время реализации квартиры. Например, чем выше популярность района, тем, скорее всего, меньше времени понадобится на поиск покупателей. Стоимость квартиры же, вероятно, наоборот с ростом будет только увеличивать время продажи квартиры. Таким образом мы можем определить конкретный коэффициент влияния того или иного признака на результат и поиск времени реализации квартиры выразить следующей формулой:
В общем виде подобный тип зависимости можно выразить в виде линейного уравнения:
Либо в нашем случае - это будет система линейных уравнений по количеству анализируемых квартир:
Я думаю, достаточно очевидно к чему я клоню. Представим коэффициенты виде отдельного вектора w:
Тогда всё выражение по предсказанию времени реализации квартир в виде вектора y из матрицы признаков квартир X, используя коэффициенты w можно записать следующим образом:
На уровне элементов это бы выглядело так:
То есть умножение матрицы на вектор раскладывается в систему линейных уравнений, описанных выше. Формально умножение X * w можно описать так:
Если внимательно посмотреть на формулу умножения Xw = y в виде элементов, то можно представить, что матрица X в данном случае - это функция преобразования вектора w из размерности n в размерность m. Мысль о том, что матрица - может представлять собой функцию преобразования, меня немного впечатлила. В дальнейшем, мы еще вернемся к этой идее и разовьём её.
На этот раз получилось вообще не практично, но мы немного коснулись конкретного прикладного аспекта функций-предсказаний и я неплохо так потренировался в составлении формул на LaTeX. Так последнее выражение Xw описывается следующим образом: