НейроГалактика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



ЛИНЕЙНАЯ АЛГЕБРА (ЛА)

Сообщений 1 страница 7 из 7

1

Большая просьба, чтобы не «зашумлять» текст, все возможные вопросы по ЛА и другим темам, крые нами будут рассматриваться, задавать в «Обсуждение теории»: https://neuralgalaxy.mybb.ru/viewtopic.php?pid=260#p260

В начале было слово… А потом была линейная алгебра (ЛА)! Да, именно она самая. И знание её основ полезно для изучения теории НС, анализа ВР, крые мы будет рассматривать в практическом приложении к трейдингу. Буду писать очень просто, для полных чайников (коим и я был года 3 тому назад).
Со школы, наверное, многие помнят, что вектор – это направленный отрезок. Забудьте об этом. На самом деле вектор – это просто упорядоченный список чисел. Каждое такое число – это координата в соотв. «измерении». Вектора, крые мы рассматриваем, всегда начинаются изнуля. Напр., если текущее приращение цены D(0)=10 пт, а предыдущее D(-1)=20 пт. Это можно представить в виде вектора: d=[10 20], а в графическом виде.

0

2

Ясно, что концепция вектора как направленного отрезка здесь не имеет особого смысла. Тем не менее, такие объекты называют векторами. Т.е. сам термин просто стал употребляться в расширенном смысле.
Вектора обозначаются жирными маленькими буквами, напр., х = [1 2]. Бывают векторы-строки, как наш х и векторы-столбцы:
y= [1|
     |2].
Обычно по умолчанию, когда говорят про вектор, то имеют ввиду вектор-столбец. Но поскольку верстать текст с такими векторами не удобно пишут так: a=[1 2]’ или a=[1 2]^t. Значок «‘» или «t» - означает операцию транспонирования. Смысл её очень прост: она превращает вектор-строку/столбец в вектор-столбец/строку, как бы разворачивая его на прямой угол. Напр., y’=x и наоборот x’=y. Ну, я думаю, тут всё понятно.

Важнейшие операции над векторами:
1. Сложение/вычитание: очень просто – складываются соотв. элты векторов: x+y=[1+1 2+2]=[2 4]
2. Скалярное произведение (dot product или inner product у буржуев):
То же очень просто – перемножаются соотв элты, а потом - складываются: a=[2 3], b=[1 2]. Пишут: <a, b>=2*1 + 3*2=7. Т.е. в результате СП получается не вектор, а скаляр – обычное число.
СП очень важная операция. Стоит как следует вникнуть в неё. СП – своего рода мера схожести двух векторов. Оно равно нулю, когда векторы находятся под прямым углом (ортогональны), т.е. «смотрят» в максимально разные стороны. И, наоборот, чем меньше угол между ними (т.е., чем больше их направления совпадают), тем СП больше. Оно максимально когда вектора лежат на одной прямой, т.е. полностью совпадают. Координатные оси – это тоже вектора (т.н. «базисные вектора». СП геометрически это проекция одного вектора на другой. Напр., на рисунке СП вектора с координатной осью D(0) равна 10: <d, D(0)>=10*1+20*0=10. Так получается потому, что оси ортогональны. Почему умножаем на один? Потому что, «цена деления» принята нами в 1 пт. (т.е. мы умножаем на единичный вектор вида [1 0]). С осью D(-1): 10*0+20*1=20. Вектор больше направлен вертикально, поэтому его СП с осью D(-1) больше.
Т.е. СП получается так: длина проекции (т.е. отрезка от 0 до 10 или от 0 до 20 на рисунке) умножается на «цену деления» (т.е. длину вектора, на который осуществляется проекция).Бррр, надеюсь, понятно изложил. Привожу ещё для наглядности второй рисунок:

0

3

Матрицы великие и ужасные…
Лучше всего думать о матрице как о системе векторов. Матрицы бывают квадратные и прямоугольные. Обозначают большими жирными буквами. Матрицы также как и вектора можно транспонировать, напр.:
     |1  4  7|
М=|2  5  8|
     |3  6  9|

     |1  2  3|
М'=|4  5  6|
     |7  8  9|

Думаю, тут всё понятно...

Визуально матрицу можно представить так:

0

4

Основная операция - умножение вектора на матрицу. Можно и матрицу на матрицу. Кому интересно - в инд. порядке.
Напр.: a=[2 1]
W=|2  0|
      |0  3|
a*W=b
b=[4 3]

0

5

Т.е. a сначала умножается на первый вектор-столбец W (v1) - получаем первый элемент b, потом на второй вектор-столбец (v2), получаем второй элемент b.
Мы видим, что W растянула вектор a вдоль оси абсцисс в 2 раза, вдоль оси ординат - в 3. Т.е. W задаёт некоторое линейное преобразование: сжатие/растяжение, поворот.
Нормальная (невырожденная матрица) каждому входному вектору сопоставляет уникальное значение выходного. Обратная матрица W^-1 задает обр. преобразование:

|0.5  0.0|
|0.0  1/3|

Умножьте на нее b. Что получили?

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

|1  0  0|
|0  1  0|
|0  0  1|

Поумножайте на нее любые вектора. Неправда ли, удобно и гениально. Диагональная матрица удобна тем, что сразу ясно, что она делает с векторами. Сразу видно во сколько раз она растягивает вектор в каждом направлении. У недиагональной матрицы направления зависимы, поэтому труднее понять, что она делает. Но мы с этим справимся. Обычно при умножении на матрицу вектор вращается. Однако у каждой матрицы есть такой вектор, который при умножении не меняет направления, а только может растягиваться. Это т.н. «собственный вектор». А число, в которое он растягивается - собственное значение вектора. Нахождение этих векторов в общем случае довольно сложная процедура. Однако у симметричных матриц (оч. важный класс матриц!) она имеет простую геометрическую интерпретацию (первый СВ проходит посередине угла векторов сост. матрицу, а второй ему перпендикулярен, в многомерном случае тоже происходит что-то вроде этого):

0

6

Т.о., недиагональная симметричная матрица растягивает вектор в направлении своих СВ на коэффициенты соответствующие их СЗ. На рисунке такие векторы обозначены e1 и e2. Любой вектор лежащий вдоль осей новой координатной системы x’ и y’ является СВ, т.е. не вращается при умножении на матрицу W. Мы видим, что наша матрица растягивает входной вектор в направлении первого своего СВ (е1) в 3 раза, а в направлении второго СВ (e2) – оставляет неизменным (т.е. умножает на 1).
СВ задают ортогональный базис. Поэтому их нахождение – оч. полезная и важная операция. Подробнее об этом будет в стат. анализе сказано.

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

Да, кстати НС, напр., МСП тоже выполняют матричные операции. Напр., МСП умножает входной вектор-столбец на матрицу весов (у неё столько строк, сколько нейронов в скрытом слое). Получается вектор net, компоненты которого пропускаются через нелинейность в скрытом слое. На выходе получается новый вектор, размерность которого равна кол-ву скрытых нейронов. Он умножается на матрицу (вернее, обычно на вектор-строку, поскольку у нас на выходе, как правило, 1 переменная) и получается скаляр, напр., прогноз будущего значения цены. :) А линейные сети, напр., адаптивные фильтры вообще всецело находятся в царстве линейной алгебры.
Всё. Для начала ЛА хватит. Все, кто заинтересовался - почитайте учебник. Хотя бы по диагонали... :)

P.S. Кстати, без ЛА вы не смогли бы полюбоваться моими прекрасными рисунками в этом разделе – векторная графика – Adobe Illustrator :)

0

7

ТЕРЕ!

ООООО ! ГОСПОДИ)
КАК ВСПОМНЮ линейку на первом курсе так чуть на монитор не вырвыло)))
А вот что теперь оказываеться полезная штука??))
С уважением, Александр.

0