Статьи

Первый текст ликбеза по высшей математике от ресурса Quantstart. Адаптированный перевод[1]  статьи “Scalars, Vectors, Matrices and Tensors - Linear Algebra for Deep Learning (Part 1)”. Материал значительно дополнен и расширен вставками, комментариями и примечаниями переводчика, а также полезными ссылками на литературу. 

 

Содержание:

Переводы-рерайты других статей ресурса Quantstart, ранее размещенные на Rusforexclub, смотрите по ссылкам:

Тактическое распределение активов (TAA). Систематический подход

Систематический трейдинг. простые или сложные торговые стратегии - что лучше?

 

“Не беспокойтесь о ваших трудностях в математике. Поверьте, мои все равно больше”

(Альберт Эйнштейн)

 

 

Предисловие переводчика

Высшая математика - критично необходимая штука для алгоритмического трейдера. Без нее никуда. Она фундамент любой, самой простой, инвестиционной стратегии, зашитой в скрипт. К сожалению, далеко не всякий новичок в систематической торговле (пусть он и программист) владеет предметом даже в объеме двухлетнего стандартного ВТУЗовского[2] курса. 

Теме математической подготовки ресурс Rusforexclub уделяет особое значение. Выделена отдельная категория - “Финансовая математика”. На ее страницах читатель найдет дюжину статей по различным математическим понятиям, полезным трейдеру, причем не только алгоритмическому. 

Популярно, доступно, на конкретных примерах рассказано о теории вероятностей и корреляции, математическом моделировании и методе Монте Карло, случайном блуждании и временных рядах. Уделено внимание ключевым аспектам математического анализа, включая частные производные высших порядков, ц целому ряду других явлений “царицы наук”.

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

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

 

Введение. Определение линейной алгебры

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

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

<Вставка переводчика>[3]

Из Википедии:

Линейная алгебра - раздел алгебры, изучающий объекты линейной природы: векторные (или линейные) пространства, линейные отображения, системы линейных уравнений, Среди основных инструментов, используемых в линейной алгебре - определители, матрицы, сопряжение. Тензорное исчисление обычно (в целом или частично) также считается составными частями линейной алгебры”.

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

 

Важность линейной алгебры для алготрейдинга

Линейная алгебра - краеугольный камень алгоритмической механики, и в конечном итоге - сложных количественных стратегий.  

Многие алгоритмы контролируемого машинного обучения построены на оптимизации функции потерь (Loss function)[4] путем настройки параметров модели. Вводятся частные производные, для упрощения вычислений группируемые в матрицы. Подобная конструкция позволяет эффективно нащупать связи между параметрами модели и функцией потерь. С помощью линейной алгебры строятся самые элементарные модели машинного обучения, например, линейная регрессия (авторегрессионная модель). 

Один из главных моментов в обучении - освоение векторных и матричных обозначений, “алфавита”  линейной алгебры. Это раздвинет кругозор инвестора, даст возможность знакомиться с опытом коллег, прорабатывать профильные публикации, и как следствие - создавать современные прибыльные количественные методики. 

Линейная алгебра дает рецепты параллелизации ряда операций через векторизацию. 

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

Такая философия применяется в основных Python-библиотеках - NumPy, SciPy, Scikit-Learn, Pandas и Tensorflow. Графические процессоры (Graphics Processing Unit, GPU), разработанные под архитектуру линейной алгебры, позволили резко увеличить продуктивность глубокого (машинного) обучения.  

Положения линейной алгебры, как раздела непрерывной математики, могут вступать в некоторое противоречие с реализацией торговых моделей в дискретной вычислительной среде. Возникают проблемы “переполнения” (overflow) или “недостаточности” (underflow) - пределов эффективной передачи слишком больших и слишком малых чисел.

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

<Вставка переводчика>

Из Википедии:

“В математике факторизация - декомпозиция объекта (например, числа, полинома или матрицы) в произведение других объектов, или факторов, которые, будучи перемноженными, дают исходный объект. Например, число 15 факторизуется на простые числа 3 и 5, а полином (x2 − 4) факторизуется, раскладывается на (x − 2)(x + 2). В результате факторизации во всех случаях получается произведение более простых объектов, чем исходный”.

Для матрицы факторизация выражается в процедуре разложения (из Википедии):

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

Виды разложения матрицы включают Lower Upper LU-разложение, QR-разложение и сингулярное SVD-разложение[5].  Они неотъемлемые компоненты семейства алгоритмов машинного обучения, включая линейный метод наименьших квадратов (Linear Least Squares, LLC) и метод главных компонент (Principal Component Analysis, PCA). 

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

 

Скаляр

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

Скаляр - отдельное число. Допустим, запись x∊R говорит о том, что скаляр (число) x принадлежит (является элементом) действительных (вещественных) чисел. 

<Вставка переводчика>

Из Википедии:

Скаляр (латинское scalaris - ступенчатый) - величина, полностью определяемая в любой координатной системе одним числом или функцией, которое не меняется при изменении пространственной системы координат.

Скаляр всегда описывается одним числом”.

Делается упор на неизменность (инвариантность) скаляра относительно изменения системы координат, что кардинально отличает его от вектора (смотрите ниже).

Примеры скаляров в быту и физике - длина, площадь, время, масса, плотность, температура, поток (излучения).

Скаляр обозначается одним числом (значением). 

В машинном обучении используются различные наборы (множества) чисел: N - натуральные (1, 2, 3, ...), Z - целые (0, +/-1, +/-2 …),  Q - рациональные (вида m/n, где m, n - целые числа, n отлично от нуля).

 

Вектор

Вектор - упорядоченный набор (массив) отдельных чисел. В линейной алгебре вектор рассматривается как элемент векторного (линейного) пространства. 

<Вставка переводчика>

Двумерное векторное пространство - плоскость. Трехмерное векторное пространство - окружающий нас трехмерный мир. В общем случае, n-мерное векторное пространство формируется из n-мерных векторов. “Одномерное векторное пространство” можно понимать как ненаправленный отрезок, на котором отмечаются (отмеряются) скалярные величины. 

Из Википедии:

Вектор (латинское vector - несущий) - в простейшем случае математический объект, характеризующийся величиной и направлением”. В данном определении речь идет о векторе в геометрии и физике - “направленном отрезке”, наборе из двух чисел (координат). Физические примеры - радиус-вектор, скорость, момент силы. 

 

1 QS мат 1вектор1

Вектор AB

(Википедия)

 

n-мерный вектор может быть представлен так:

2 QS мат 1вектор2

(Википедия)

 

или так:

3 QS мат 1вектор3

(Quantstart)

 

Для того, чтобы при записи отличить вектор от скаляра, принято применять сверху стрелку или черту (“крышку”, не путать с обозначением среднего), а также жирный и готический шрифты:

4 QS мат 1вектор4

(Википедия)

 

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

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

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

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

 

Матрица

Матрица - прямоугольный массив чисел. Матрица вида (m x n) содержит m строк и n столбцов. Каждая строка и столбец матрицы - вектора, поэтому можно говорить о (m x n) - мерном векторном пространстве, заданном в форме матрицы (таблицы). 

<Вставка переводчика>

Из Википедии:

Матрица - математический объект, записываемый в виде прямоугольной таблицы (...) целых, действительных или комплексных чисел, который представляет собой совокупность строк и столбцов, на пересечении которых находятся его элементы. Количество строк и столбцов задает размер матрицы”.

Матрица А размером (m x n) с элементами aij: a11, … amn имеет такие формы записи:

5 QS мат 1матрица1

(Википедия)

 

Короткие варианты:

6 QS мат 1матрица2

(Википедия, Quantstart)

 

или очень лаконично: A=(aij)

Если m=n, имеем квадратную матрицу. 

i-ая строка матрицы А:

7 QS мат 1матрица стр

(Википедия)

 

j-ый столбец матрицы А:

8 QS мат 1матрица столб

(Википедия)

 

Полностью перекликается с вектором-строкой и вектором-столбцом

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

Скаляр, инвариантный относительно смены системы координат, характеризующий квадратную матрицу - ее определитель или детерминант. Определитель матрицы А, записывается как det(A), |A| или ΔA. 

В приложениях широкое распространение получила так называемая матрица линейного отображения - матрица, выражающая линейное отображение[6] в некотором базисе (системе базисных векторов, простыми словами - системе координат). 

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

 

Тензор

<Изложение переводчика>

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

Общая трактовка от интернет-энциклопедии звучит следующим образом:

Тензор (латинское tensus - напряженный) - применяемый в математике и физике вид линейного многокомпонентного алгебраического объекта (объекта линейной алгебры), заданного на векторном пространстве V конечной размерности n. В физике в качестве V обычно выступает физическое 3-мерное пространство или 4-мерное пространство-время, а компонентами тензора являются координаты (проекции) взаимосвязанных физических величин”.

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

Тензор совсем нетривиальное явление в математике и физике. Для того, чтобы пояснить его суть “на пальцах”, начнем, в известном смысле, с конца. С записи.

Традиционно тензор обозначается так:

9 QS мат 1тензор

(Википедия)

 

где: s, r - пара натуральных чисел, параметры тензора T, именуемые его валентностями.

Важная характеристика тензора T - его ранг (s+r). Тензор, как и все в линейной алгебре, определяется на некоем векторном пространстве V. Размерность пространства V (пусть будет n) и ранг тензора (s+r) задает число его компонент в данном пространстве. Оно равно ns+r

Приходим к тому, что тензор - многомерная (n-мерная) матрица (таблица) вида 

n x n x n...x n. Здесь число множителей n соответствует рангу тензора. (s+r). 

Ситуация упрощается на частных случаях.

Ранг = 0, имеем скаляр.

Ранг = 1 - одномерный вектор.

Ранг = 2 - двумерная квадратная матрица. 

Ранг = 3 - трехмерный куб. 

Ранг = 4 - четырехмерный “куб”, предположим, в континууме “пространство-время”. Попытайтесь вообразить, побудьте немного в роли Альберта Эйнштейна.

Другими словами, скаляр - тензор нулевого ранга, вектор - тензор первого ранга, а матрица - тензор второго ранга. 

В заключение приведем более или менее строгое толкование тензора, как набора компонент (многоиндексного объекта).

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

Над тензорами одинаковой валентности можно проводить линейные операции - умножать на скаляр и складывать. Для тензоров произвольной валентности вводится понятие тензорного произведения. Роль скалярной характеристики тензора, инвариантной (неизменной) относительно смены системы координат выполняет так называемый инвариант тензора, в частности его “след”[7].

 

перевод, обработка, комментарии и примечания

Владимира Наливайского

 

В основе изложения статья “Scalars, Vectors, Matrices and Tensors - Linear Algebra for Deep Learning (Part 1)”, опубликованная на ресурсе Quantstart. 

Источник изображения на заставке - ресурс Quantstart.

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

Примечания 

  1. Под адаптированным переводом понимается достаточно точное следование исходному материалу, с возможными отступлениями и пояснениями.  Конкретные вещи - формулы, скрипты, графики и пр. (а также комментарии к ним) изложены максимально близко к оригиналу (часто скопированы). Ответственность за их корректность и ясность интерпретации несет автор исходника. 
  2. ВТУЗ - высшее техническое учебное заведение, форма ВУЗа, получившая распространение в СССР. 
  3. Записью <курсив> обозначены вставки и комментарии переводчика.
  4. Функция потерь (Loss function) - “функция, которая в теории статистических решений характеризует потери при неправильном принятии решений на основе наблюдаемых данных. Если решается задача оценки параметра сигнала на фоне помех, то функция потерь является мерой расхождения между истинным значением оцениваемого параметра и оценкой параметра”. Задача оптимизации сводится к минимизации функции потерь. Смотрите источники 2 и 3.
  5. Об этих и других разложениях матриц смотрите источник 5.
  6. Линейным отображением векторного пространства V (...) в векторное пространство W (...) (линейным оператором из V в W) называется отображение f:V→W, удовлетворяющее условию линейности: f(x+y)=f(x)+f(y) и f(kx)=kf(x), для всех x, y принадлежащих V; k (если упрощенно) - числовая константа. Смотрите источник 9.
  7. Желающим несколько глубже понять суть тензора можно порекомендовать источник 14, а тем, кто хотел бы взяться за предмет всерьез - источник 15 (пособие в pdf-формате можно скачать по ссылке). 

Список источников (Википедия/Wikipedia, если не оговорено иное)

  1. “Линейная алгебра”.
  2. “Функция потерь”.
  3. “Loss function”.
  4. “Факторизация”.
  5. “Разложение матрицы”.
  6. “Скаляр”.
  7. “Вектор (математика)”.
  8. “Матрица (математика)”.
  9. “Линейное отображение”.
  10. “Базис”.
  11. “Тензор”.
  12. “Тензорное исчисление”.
  13. “Определитель”.
  14. “Краткое введение в тензоры”, Alexander Kalinin, Habr.com, 01.07.2015.
  15. “Тензорная алгебра и тензорный анализ”, Е.Н. Вильчевская, Санкт-Петербургский государственный политехнический университет, 2012.